12345678910111213141516171819202122232425262728293031323334353637383940 |
- set(CMAKE_CUDA_ARCHITECTURES all-major)
- project(unitybuild_c_and_cxx CUDA CXX)
- set(srcs f.cu)
- foreach(s RANGE 1 8)
- set(src_cu "${CMAKE_CURRENT_BINARY_DIR}/s${s}.cu")
- file(WRITE "${src_cu}" "
- int f(int);\n
- int s${s}(void) { return f(${s}); }\n"
- )
- set(src_cxx "${CMAKE_CURRENT_BINARY_DIR}/s${s}.cxx")
- file(WRITE "${src_cxx}" "
- extern \"C\" { \n
- int f(int); \n
- }\n
- int s${s}(void) { return f(${s}); }\n"
- )
- list(APPEND srcs "${src_cu}")
- list(APPEND srcs "${src_cxx}")
- endforeach()
- add_library(tgt SHARED ${srcs})
- set_target_properties(tgt PROPERTIES UNITY_BUILD ON
- UNITY_BUILD_MODE GROUP
- #UNITY_BUILD_BATCH_SIZE will be ignored
- UNITY_BUILD_BATCH_SIZE 2)
- set_source_files_properties(s1.cu s2.cu s3.cu s4.cu
- s1.cxx s2.cxx s3.cxx s4.cxx
- PROPERTIES UNITY_GROUP "a"
- )
- set_source_files_properties(s5.cu s6.cu s7.cu s8.cu
- s5.cxx s6.cxx s7.cxx s8.cxx
- PROPERTIES UNITY_GROUP "b"
- )
|