@@ -24,55 +24,39 @@ endif()
2424if (CMAKE_CUDA_COMPILER)
2525 enable_language (CUDA)
2626 find_package (CUDAToolkit REQUIRED)
27- add_library (tensorarray_core SHARED ${TensorArray_Core_cc} ${TensorArray_Core_cu} )
28- add_library (tensorarray_core_static STATIC ${TensorArray_Core_cc} ${TensorArray_Core_cu} )
29-
30- set_property (TARGET tensorarray_core PROPERTY CUDA_STANDARD 17)
31- set_property (TARGET tensorarray_core PROPERTY CUDA_STANDARD_REQUIRED ON )
32- set_property (TARGET tensorarray_core PROPERTY CUDA_EXTENSIONS OFF )
33- set_property (TARGET tensorarray_core PROPERTY CUDA_SEPARABLE_COMPILATION ON )
34- target_include_directories (tensorarray_core PRIVATE $<$<COMPILE_LANGUAGE:C,CXX>:${CUDAToolkit_INCLUDE_DIRS} >)
35- target_link_libraries (tensorarray_core PRIVATE $<$<LINK_LANGUAGE:C,CXX>:CUDA::cublas>)
36-
37- set_property (TARGET tensorarray_core_static PROPERTY CUDA_STANDARD 17)
38- set_property (TARGET tensorarray_core_static PROPERTY CUDA_STANDARD_REQUIRED ON )
39- set_property (TARGET tensorarray_core_static PROPERTY CUDA_EXTENSIONS OFF )
40- set_property (TARGET tensorarray_core_static PROPERTY CUDA_SEPARABLE_COMPILATION ON )
41- target_include_directories (tensorarray_core_static PRIVATE $<$<COMPILE_LANGUAGE:C,CXX>:${CUDAToolkit_INCLUDE_DIRS} >)
42- target_link_libraries (tensorarray_core_static PRIVATE $<$<LINK_LANGUAGE:C,CXX>:CUDA::cublas>)
43-
27+ add_library (tensorarray_core_object OBJECT ${TensorArray_Core_cc} ${TensorArray_Core_cu} )
28+ set_property (TARGET tensorarray_core_object PROPERTY CUDA_STANDARD 17)
29+ set_property (TARGET tensorarray_core_object PROPERTY CUDA_STANDARD_REQUIRED ON )
30+ set_property (TARGET tensorarray_core_object PROPERTY CUDA_EXTENSIONS OFF )
31+ set_property (TARGET tensorarray_core_object PROPERTY CUDA_SEPARABLE_COMPILATION ON )
32+ target_include_directories (tensorarray_core_object PRIVATE $<$<COMPILE_LANGUAGE:C,CXX>:${CUDAToolkit_INCLUDE_DIRS} >)
33+ target_link_libraries (tensorarray_core_object PRIVATE $<$<LINK_LANGUAGE:C,CXX>:CUDA::cublas>)
4434 if (MSVC )
45- target_compile_definitions (tensorarray_core PRIVATE TENSOR_ARRAY_CORE_EXPORTS)
35+ target_compile_definitions (tensorarray_core_object PRIVATE TENSOR_ARRAY_CORE_EXPORTS)
4636 endif ()
4737
4838 # find_package(CUDAToolkit REQUIRED)
4939 # set(CMAKE_CUDA_ARCHITECTURES 52 75 89)
5040 # set(CMAKE_CUDA_SEPARABLE_COMPILATION ON)
5141 # list(APPEND CMAKE_CUDA_FLAGS "--default-stream per-thread")
5242else ()
53- add_library (tensorarray_core SHARED ${TensorArray_Core_cc} )
54- add_library (tensorarray_core_static STATIC ${TensorArray_Core_cc} )
43+ add_library (tensorarray_core_object OBJECT ${TensorArray_Core_cc} )
5544endif ()
5645
5746
5847# file(MAKE_DIRECTORY "include/tensor_array/core")
5948
60- set_property (TARGET tensorarray_core PROPERTY C_STANDARD 11)
61- set_property (TARGET tensorarray_core PROPERTY C_STANDARD_REQUIRED ON )
62- set_property (TARGET tensorarray_core PROPERTY C_EXTENSIONS OFF )
63-
64- set_property (TARGET tensorarray_core PROPERTY CXX_STANDARD 17)
65- set_property (TARGET tensorarray_core PROPERTY CXX_STANDARD_REQUIRED ON )
66- set_property (TARGET tensorarray_core PROPERTY CXX_EXTENSIONS OFF )
67-
49+ set_property (TARGET tensorarray_core_object PROPERTY C_STANDARD 11)
50+ set_property (TARGET tensorarray_core_object PROPERTY C_STANDARD_REQUIRED ON )
51+ set_property (TARGET tensorarray_core_object PROPERTY C_EXTENSIONS OFF )
6852
69- set_property (TARGET tensorarray_core_static PROPERTY C_STANDARD 11 )
70- set_property (TARGET tensorarray_core_static PROPERTY C_STANDARD_REQUIRED ON )
71- set_property (TARGET tensorarray_core_static PROPERTY C_EXTENSIONS OFF )
53+ set_property (TARGET tensorarray_core_object PROPERTY CXX_STANDARD 17 )
54+ set_property (TARGET tensorarray_core_object PROPERTY CXX_STANDARD_REQUIRED ON )
55+ set_property (TARGET tensorarray_core_object PROPERTY CXX_EXTENSIONS OFF )
7256
73- set_property ( TARGET tensorarray_core_static PROPERTY CXX_STANDARD 17)
74- set_property ( TARGET tensorarray_core_static PROPERTY CXX_STANDARD_REQUIRED ON )
75- set_property ( TARGET tensorarray_core_static PROPERTY CXX_EXTENSIONS OFF )
57+ # shared and static libraries built from the same object files
58+ add_library (tensorarray_core SHARED $<TARGET_OBJECTS:tensorarray_core_object> )
59+ add_library ( tensorarray_core_static STATIC $<TARGET_OBJECTS:tensorarray_core_object> )
7660
7761install (
7862 TARGETS tensorarray_core
@@ -98,3 +82,4 @@ install(
9882
9983add_library (TensorArray::core ALIAS tensorarray_core)
10084add_library (TensorArray::core_static ALIAS tensorarray_core_static)
85+ add_library (TensorArray::core_object ALIAS tensorarray_core_object)
0 commit comments