Skip to content

Commit a053235

Browse files
Alcpzjoeatodd
authored andcommitted
[SYCL][COMPAT] Fixed missing libraries when linking unittests
1 parent ac97108 commit a053235

File tree

2 files changed

+42
-46
lines changed

2 files changed

+42
-46
lines changed
Lines changed: 29 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1-
# add_sycl_library_unittest(test_suite_name sycl_extra_flags
1+
# add_sycl_library_unittest(test_suite_name sycl_extra_flags
22
# file1.cpp file2.cpp ...)
33
#
4-
# sycl_extra_flags: Clang extra compiler flags, e.g.
4+
# sycl_extra_flags: Clang extra compiler flags, e.g.
55
# "-fsycl-unnamed-lambdas;-fsycl-device-code-split"
66
#
77
# Will compile the list of files together using clang.
@@ -17,40 +17,34 @@ macro(add_sycl_library_unittest test_suite_name)
1717
set(CXX_COMPILER clang++)
1818
if(MSVC)
1919
set(CXX_COMPILER clang-cl.exe)
20-
set(LIB_POSTFIX ".lib")
21-
else()
22-
set(LIB_PREFIX "-l")
2320
endif()
2421

2522
set(DEVICE_COMPILER_EXECUTABLE ${LLVM_RUNTIME_OUTPUT_INTDIR}/${CXX_COMPILER})
2623
set(_OUTPUT_BIN ${CMAKE_CURRENT_BINARY_DIR}/${test_suite_name}Tests)
2724
set(_TESTS_TARGET ${test_suite_name}Tests)
2825
set(_BIN_TARGET ${_TESTS_TARGET}_bin)
29-
set(_TARGET_DEPENDENCIES
30-
"llvm_gtest_main;llvm_gtest;LLVMTestingSupport;LLVMSupport;LLVMDemangle")
26+
set(_LLVM_TARGET_DEPENDENCIES
27+
"llvm_gtest_main;llvm_gtest;LLVMTestingSupport;LLVMSupport;LLVMDemangle")
3128

32-
foreach(_lib ${_TARGET_DEPENDENCIES})
33-
list(APPEND _LIBRARIES $<TARGET_FILE:${_lib}>)
29+
foreach(_lib ${_LLVM_TARGET_DEPENDENCIES})
30+
list(APPEND _LIBRARIES $<TARGET_LINKER_FILE:${_lib}>)
3431
endforeach()
35-
32+
3633
# Enable exception handling on Windows
34+
# Appends extra libraries not available in LIBPATH
3735
if(WIN32)
36+
set(_INTERNAL_LINKER_FLAGS /link /SUBSYSTEM:CONSOLE)
3837
list(APPEND _INTERNAL_EXTRA_FLAGS "/EHs")
39-
set(LIBRARIES_PREFIX ${CMAKE_BINARY_DIR}/lib/)
40-
list(APPEND _LIBRARIES $<TARGET_FILE:sycl>)
38+
list(APPEND _LIBRARIES $<TARGET_LINKER_FILE:sycl>)
39+
list(APPEND _LIBRARIES ${LLVM_LIBRARY_OUTPUT_INTDIR}/sycl-devicelib-host.lib)
4140
endif()
4241

4342
if(UNIX)
44-
foreach(_lib "pthread;dl;ncurses")
45-
list(APPEND _LIBRARIES "-l${_lib}">)
43+
foreach(_lib "pthread" "dl" "ncurses")
44+
list(APPEND _LIBRARIES "-l${_lib}")
4645
endforeach()
4746
endif()
4847

49-
if (SYCL_ENABLE_COVERAGE)
50-
list(APPEND _INTERNAL_EXTRA_FLAGS "-fprofile-instr-generate")
51-
list(APPEND _INTERNAL_EXTRA_FLAGS "-fcoverage-mapping")
52-
endif()
53-
5448
get_target_property(GTEST_INCLUDES llvm_gtest INCLUDE_DIRECTORIES)
5549
foreach(_dir ${GTEST_INCLUDES})
5650
# Avoid -I when _dir contains an empty generator expression.
@@ -64,13 +58,14 @@ macro(add_sycl_library_unittest test_suite_name)
6458
${_INTERNAL_EXTRA_FLAGS}
6559
${INCLUDE_COMPILER_STRING}
6660
${_LIBRARIES}
61+
${_INTERNAL_LINKER_FLAGS}
6762
BYPRODUCTS ${CMAKE_CURRENT_BINARY_DIR}/${_TESTS_TARGET}
6863
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
6964
COMMAND_EXPAND_LISTS)
7065

7166
add_dependencies(${_BIN_TARGET} sycl)
7267
foreach(_lib ${ARG_LIBRARIES})
73-
add_dependencies(${_BIN_TARGET} ${_TARGET_DEPENDENCIES})
68+
add_dependencies(${_BIN_TARGET} ${_TARGET_DEPENDENCIES})
7469
endforeach()
7570

7671
add_dependencies(SYCLUnitTests ${_BIN_TARGET})
@@ -79,17 +74,18 @@ macro(add_sycl_library_unittest test_suite_name)
7974
set_target_properties(${_TESTS_TARGET} PROPERTIES
8075
IMPORTED_LOCATION ${CMAKE_CURRENT_BINARY_DIR})
8176

82-
# Check target (Unix Only)
83-
add_custom_target(check-sycl-${test_suite_name}
84-
${CMAKE_COMMAND} -E
85-
env LD_LIBRARY_PATH="${CMAKE_BINARY_DIR}/lib"
86-
env SYCL_CONFIG_FILE_NAME=null.cfg
87-
env SYCL_DEVICELIB_NO_FALLBACK=1
88-
env SYCL_CACHE_DIR="${CMAKE_BINARY_DIR}/sycl_cache"
89-
${CMAKE_CURRENT_BINARY_DIR}/${test_suite_name}
90-
)
91-
92-
add_dependencies(check-sycl-${test_suite_name} ${_BIN_TARGET})
93-
add_dependencies(check-sycl-unittests-libs check-sycl-${test_suite_name})
94-
77+
# Check target for Linux
78+
if (UNIX)
79+
add_custom_target(check-${test_suite_name}
80+
${CMAKE_COMMAND} -E
81+
env LD_LIBRARY_PATH="${CMAKE_BINARY_DIR}/lib"
82+
env SYCL_CONFIG_FILE_NAME=null.cfg
83+
env SYCL_DEVICELIB_NO_FALLBACK=1
84+
env SYCL_CACHE_DIR="${CMAKE_BINARY_DIR}/sycl_cache"
85+
${CMAKE_CURRENT_BINARY_DIR}/${_TESTS_TARGET}
86+
)
87+
add_dependencies(check-${test_suite_name} ${_BIN_TARGET})
88+
add_dependencies(check-sycl-unittests-libs check-${test_suite_name})
89+
endif()
90+
9591
endmacro()

sycl/unittests/syclcompat/CMakeLists.txt

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -16,18 +16,18 @@
1616

1717
set(SYCL_EXTRA_FLAGS "-fsycl-unnamed-lambda;-fsycl-device-code-split=per_kernel")
1818

19-
# add_custom_target(check-sycl-syclcompat)
20-
# add_dependencies(check-sycl-unittests check-sycl-syclcompat)
19+
if (UNIX)
20+
add_custom_target(check-syclcompat)
21+
add_dependencies(check-sycl-unittests check-syclcompat)
22+
endif()
2123

22-
# add_sycl_library_unittest(syclcompat-base
23-
# SYCL_EXTRA_FLAGS
24-
# ${SYCL_EXTRA_FLAGS}
25-
# SOURCES
26-
# Dim.cpp
27-
# Defs.cpp)
24+
add_sycl_library_unittest(syclcompat-base
25+
SYCL_EXTRA_FLAGS
26+
${SYCL_EXTRA_FLAGS}
27+
SOURCES
28+
Dim.cpp
29+
Defs.cpp)
2830

29-
# add_dependencies(check-sycl-syclcompat check-sycl-syclcompat-base)
30-
31-
add_sycl_unittest(syclcompat-baseTests OBJECT
32-
Dim.cpp
33-
Defs.cpp)
31+
if (UNIX)
32+
add_dependencies(check-syclcompat check-syclcompat-base)
33+
endif()

0 commit comments

Comments
 (0)