CMakeLists.txt 976 B

12345678910111213141516171819202122232425262728
  1. add_library(c_headers_1 STATIC empty.c)
  2. target_sources(c_headers_1
  3. PUBLIC FILE_SET HEADERS BASE_DIRS "${CMAKE_CURRENT_SOURCE_DIR}" FILES error.c other.c
  4. PRIVATE FILE_SET a TYPE HEADERS BASE_DIRS "${CMAKE_CURRENT_SOURCE_DIR}" FILES h1.h
  5. )
  6. target_sources(c_headers_1
  7. PUBLIC FILE_SET b TYPE HEADERS BASE_DIRS "$<1:${CMAKE_CURRENT_SOURCE_DIR}/dir>" FILES "$<1:${CMAKE_CURRENT_SOURCE_DIR}/dir/h2.h>"
  8. )
  9. target_sources(c_headers_1
  10. INTERFACE FILE_SET c TYPE HEADERS BASE_DIRS "${CMAKE_CURRENT_SOURCE_DIR}" FILES h3.h
  11. )
  12. source_group("Source Files" FILES "${CMAKE_CURRENT_SOURCE_DIR}/other.c")
  13. add_library(c_headers_2 STATIC empty.c)
  14. target_sources(c_headers_2
  15. INTERFACE FILE_SET HEADERS BASE_DIRS "${CMAKE_CURRENT_SOURCE_DIR}" FILES h1.h
  16. )
  17. install(TARGETS c_headers_1
  18. FILE_SET HEADERS DESTINATION include COMPONENT Headers
  19. FILE_SET b DESTINATION include/dir
  20. FILE_SET c
  21. # Non-extant FILE_SET should be ignored
  22. FILE_SET d
  23. )
  24. install(TARGETS c_headers_2)