unitybuild_skip.cmake 986 B

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