C-WHOLE_ARCHIVE.cmake 700 B

12345678910111213141516171819202122
  1. enable_language(C)
  2. add_library(base STATIC base.c unref.c)
  3. target_compile_definitions(base PUBLIC STATIC_BASE)
  4. add_library(lib SHARED lib.c)
  5. target_link_libraries(lib PRIVATE "$<LINK_LIBRARY:WHOLE_ARCHIVE,base>")
  6. target_link_options(lib PRIVATE -sSIDE_MODULE)
  7. add_executable(main main.c)
  8. target_link_libraries(main PRIVATE lib)
  9. target_link_options(main PRIVATE -sMAIN_MODULE)
  10. add_library(circular1 STATIC circular1.c)
  11. add_library(circular2 STATIC circular2.c)
  12. target_link_libraries(circular1 PRIVATE circular2)
  13. target_link_libraries(circular2 PRIVATE circular1)
  14. add_executable(main_circular main_circular.c)
  15. target_link_libraries(main_circular PRIVATE $<LINK_LIBRARY:WHOLE_ARCHIVE,circular1>)