| cmake_minimum_required (VERSION 2.6) |
| project(Export C) |
| |
| # We need ansi C support. |
| if(CMAKE_ANSI_CFLAGS) |
| set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${CMAKE_ANSI_CFLAGS}") |
| endif(CMAKE_ANSI_CFLAGS) |
| |
| add_library(testExe1lib STATIC testExe1lib.c) # not exported |
| add_executable(testExe1 testExe1.c) |
| target_link_libraries(testExe1 testExe1lib) |
| set_property(TARGET testExe1 PROPERTY VERSION 4) |
| |
| add_library(testExe2libImp SHARED testExe2libImp.c) |
| set_property(TARGET testExe2libImp PROPERTY LIBRARY_OUTPUT_DIRECTORY impl) |
| add_library(testExe2lib SHARED testExe2lib.c) |
| target_link_libraries(testExe2lib testExe2libImp) |
| set_property(TARGET testExe2lib PROPERTY LINK_INTERFACE_LIBRARIES "") |
| add_executable(testExe2 testExe2.c) |
| set_property(TARGET testExe2 PROPERTY ENABLE_EXPORTS 1) |
| set_property(TARGET testExe2 PROPERTY LINK_INTERFACE_LIBRARIES testExe2lib) |
| |
| add_library(testLib1 STATIC testLib1.c) |
| add_library(testLib2 STATIC testLib2.c) |
| target_link_libraries(testLib2 testLib1) |
| |
| add_library(testLib3Imp SHARED testLib3Imp.c) |
| set_property(TARGET testLib3Imp PROPERTY LIBRARY_OUTPUT_DIRECTORY impl) |
| add_library(testLib3 SHARED testLib3.c) |
| target_link_libraries(testLib3 testLib3Imp) |
| set_property(TARGET testLib3 PROPERTY LINK_INTERFACE_LIBRARIES "") |
| set_property(TARGET testLib3 PROPERTY VERSION 1.2) |
| set_property(TARGET testLib3 PROPERTY SOVERSION 3) |
| |
| add_library(testLib4 SHARED testLib4.c) |
| set_property(TARGET testLib4 PROPERTY FRAMEWORK 1) |
| |
| add_executable(testExe3 testExe3.c) |
| set_property(TARGET testExe3 PROPERTY MACOSX_BUNDLE 1) |
| |
| # Install and export from install tree. |
| install( |
| TARGETS |
| testExe1 testLib1 testLib2 testExe2 testLib3 testLib4 testExe3 |
| testExe2lib |
| EXPORT exp |
| RUNTIME DESTINATION bin |
| LIBRARY DESTINATION lib NAMELINK_SKIP |
| ARCHIVE DESTINATION lib |
| FRAMEWORK DESTINATION Frameworks |
| BUNDLE DESTINATION Applications |
| ) |
| install( |
| TARGETS |
| testExe2libImp testLib3Imp |
| EXPORT exp |
| RUNTIME DESTINATION bin |
| LIBRARY DESTINATION lib/impl |
| ARCHIVE DESTINATION lib/impl |
| ) |
| install(EXPORT exp NAMESPACE exp_ DESTINATION lib/exp) |
| |
| # Export from build tree. |
| export(TARGETS testExe1 testLib1 testLib2 testLib3 |
| testExe2libImp testLib3Imp |
| NAMESPACE bld_ |
| FILE ExportBuildTree.cmake |
| ) |
| export(TARGETS testExe2 testLib4 testExe3 testExe2lib |
| NAMESPACE bld_ |
| APPEND FILE ExportBuildTree.cmake |
| ) |