1
- # add_sycl_library_unittest(test_suite_name sycl_extra_flags
1
+ # add_sycl_library_unittest(test_suite_name sycl_extra_flags
2
2
# file1.cpp file2.cpp ...)
3
3
#
4
- # sycl_extra_flags: Clang extra compiler flags, e.g.
4
+ # sycl_extra_flags: Clang extra compiler flags, e.g.
5
5
# "-fsycl-unnamed-lambdas;-fsycl-device-code-split"
6
6
#
7
7
# Will compile the list of files together using clang.
@@ -17,40 +17,34 @@ macro(add_sycl_library_unittest test_suite_name)
17
17
set (CXX_COMPILER clang++ )
18
18
if (MSVC )
19
19
set (CXX_COMPILER clang-cl.exe )
20
- set (LIB_POSTFIX ".lib" )
21
- else ()
22
- set (LIB_PREFIX "-l" )
23
20
endif ()
24
21
25
22
set (DEVICE_COMPILER_EXECUTABLE ${LLVM_RUNTIME_OUTPUT_INTDIR} /${CXX_COMPILER} )
26
23
set (_OUTPUT_BIN ${CMAKE_CURRENT_BINARY_DIR} /${test_suite_name}Tests )
27
24
set (_TESTS_TARGET ${test_suite_name} Tests )
28
25
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" )
31
28
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} > )
34
31
endforeach ()
35
-
32
+
36
33
# Enable exception handling on Windows
34
+ # Appends extra libraries not available in LIBPATH
37
35
if (WIN32 )
36
+ set (_INTERNAL_LINKER_FLAGS /link /SUBSYSTEM:CONSOLE )
38
37
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 )
41
40
endif ()
42
41
43
42
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} " )
46
45
endforeach ()
47
46
endif ()
48
47
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
-
54
48
get_target_property (GTEST_INCLUDES llvm_gtest INCLUDE_DIRECTORIES )
55
49
foreach (_dir ${GTEST_INCLUDES} )
56
50
# Avoid -I when _dir contains an empty generator expression.
@@ -64,13 +58,14 @@ macro(add_sycl_library_unittest test_suite_name)
64
58
${_INTERNAL_EXTRA_FLAGS}
65
59
${INCLUDE_COMPILER_STRING}
66
60
${_LIBRARIES}
61
+ ${_INTERNAL_LINKER_FLAGS}
67
62
BYPRODUCTS ${CMAKE_CURRENT_BINARY_DIR} /${_TESTS_TARGET}
68
63
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
69
64
COMMAND_EXPAND_LISTS )
70
65
71
66
add_dependencies (${_BIN_TARGET} sycl )
72
67
foreach (_lib ${ARG_LIBRARIES} )
73
- add_dependencies (${_BIN_TARGET} ${_TARGET_DEPENDENCIES} )
68
+ add_dependencies (${_BIN_TARGET} ${_TARGET_DEPENDENCIES} )
74
69
endforeach ()
75
70
76
71
add_dependencies (SYCLUnitTests ${_BIN_TARGET} )
@@ -79,17 +74,18 @@ macro(add_sycl_library_unittest test_suite_name)
79
74
set_target_properties (${_TESTS_TARGET} PROPERTIES
80
75
IMPORTED_LOCATION ${CMAKE_CURRENT_BINARY_DIR} )
81
76
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
+
95
91
endmacro ()
0 commit comments