CMakeLists.txt 827 B

1234567891011121314151617181920
  1. project(ObjectLibraryB C)
  2. if("${CMAKE_GENERATOR}" MATCHES "Visual Studio 6")
  3. # VS 6 generator does not use per-target object locations.
  4. set(vs6 _vs6)
  5. endif()
  6. # Add -fPIC so objects can be used in shared libraries.
  7. # TODO: Need property for this.
  8. if(CMAKE_SHARED_LIBRARY_C_FLAGS AND NOT WATCOM)
  9. set(CMAKE_C_FLAGS "${CMAKE_SHARED_LIBRARY_C_FLAGS} ${CMAKE_C_FLAGS}")
  10. endif()
  11. add_library(B OBJECT b1.c b2.c)
  12. target_include_directories(B PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})
  13. target_compile_definitions(B PUBLIC B_DEF)
  14. add_library(Bexport OBJECT b1${vs6}.c b2${vs6}.c)
  15. set_property(TARGET Bexport PROPERTY COMPILE_DEFINITIONS Bexport)
  16. target_include_directories(Bexport PRIVATE $<TARGET_PROPERTY:B,INTERFACE_INCLUDE_DIRECTORIES>)
  17. target_compile_definitions(Bexport PRIVATE $<TARGET_PROPERTY:B,INTERFACE_COMPILE_DEFINITIONS>)