weak_library.cmake 732 B

1234567891011121314151617181920
  1. enable_language(C)
  2. if(CMAKE_C_COMPILER_ID STREQUAL "AppleClang")
  3. set(CMAKE_LINK_LIBRARY_USING_weak_library "PATH{-weak_library <LIBRARY>}NAME{LINKER:-weak-l<LIB_ITEM>}")
  4. set(CMAKE_LINK_LIBRARY_USING_weak_library_SUPPORTED TRUE)
  5. else()
  6. # feature not yet supported for the other environments
  7. set(CMAKE_LINK_LIBRARY_USING_whole_library_SUPPORTED FALSE)
  8. endif()
  9. add_library(lib SHARED base.c lib.c unref.c)
  10. set_property(TARGET lib PROPERTY OUTPUT_NAME base)
  11. add_executable(main main.c)
  12. target_link_libraries(main PRIVATE "$<LINK_LIBRARY:weak_library,lib>")
  13. add_executable(main2 main.c)
  14. target_link_directories(main2 PRIVATE "$<TARGET_FILE_DIR:lib>")
  15. target_link_libraries(main2 PRIVATE "$<LINK_LIBRARY:weak_library,base>")