1
0

unitybuild_cxx_group.cmake 906 B

1234567891011121314151617181920212223242526272829
  1. set(CMAKE_INTERMEDIATE_DIR_STRATEGY FULL CACHE STRING "" FORCE)
  2. project(unitybuild_cxx CXX)
  3. set(srcs "")
  4. foreach(s RANGE 1 4)
  5. set(src "${CMAKE_CURRENT_BINARY_DIR}/s${s}.cxx")
  6. file(WRITE "${src}" "int s${s}(void) { return 0; }\n")
  7. list(APPEND srcs "${src}")
  8. endforeach()
  9. foreach(s RANGE 1 2)
  10. set(src "${CMAKE_CURRENT_BINARY_DIR}/odr${s}.cxx")
  11. file(WRITE "${src}" "namespace odr { int s${s}(void) { return 0; } }\n")
  12. list(APPEND srcs "${src}")
  13. endforeach()
  14. add_library(tgt SHARED ${srcs})
  15. set_target_properties(tgt PROPERTIES UNITY_BUILD ON
  16. UNITY_BUILD_MODE GROUP
  17. )
  18. set_source_files_properties(s1.cxx s2.cxx odr1.cxx
  19. PROPERTIES UNITY_GROUP "a"
  20. )
  21. set_source_files_properties(s3.cxx s4.cxx odr2.cxx
  22. PROPERTIES UNITY_GROUP "b"
  23. )