unitybuild_skip.cmake 921 B

123456789101112131415161718192021222324252627282930
  1. project(unitybuild_skip C)
  2. set(srcs "")
  3. foreach(s RANGE 1 8)
  4. set(src "${CMAKE_CURRENT_BINARY_DIR}/s${s}.c")
  5. file(WRITE "${src}" "int s${s}(void) { return 0; }\n")
  6. list(APPEND srcs "${src}")
  7. endforeach()
  8. add_library(tgt SHARED ${srcs})
  9. set_target_properties(tgt PROPERTIES UNITY_BUILD ON)
  10. set_source_files_properties(${CMAKE_CURRENT_BINARY_DIR}/s1.c
  11. PROPERTIES HEADER_FILE_ONLY ON)
  12. set_source_files_properties(${CMAKE_CURRENT_BINARY_DIR}/s2.c
  13. PROPERTIES SKIP_UNITY_BUILD_INCLUSION ON)
  14. set_source_files_properties(${CMAKE_CURRENT_BINARY_DIR}/s3.c
  15. PROPERTIES COMPILE_OPTIONS "val")
  16. set_source_files_properties(${CMAKE_CURRENT_BINARY_DIR}/s4.c
  17. PROPERTIES COMPILE_DEFINITIONS "val")
  18. set_source_files_properties(${CMAKE_CURRENT_BINARY_DIR}/s5.c
  19. PROPERTIES COMPILE_FLAGS "val")
  20. set_source_files_properties(${CMAKE_CURRENT_BINARY_DIR}/s6.c
  21. PROPERTIES INCLUDE_DIRECTORIES "${CMAKE_CURRENT_BINARY_DIR}")