diff options
author | Alan Antonuk <aega@med.umich.edu> | 2012-10-02 12:03:01 -0400 |
---|---|---|
committer | Alan Antonuk <alan.antonuk@gmail.com> | 2012-11-14 22:46:33 -0500 |
commit | 433b8e00ec8842bc5520eb92614d415512b9bec5 (patch) | |
tree | 9b01ea452a68f5cb4b10412faf0cb9c3e5f36ab2 /librabbitmq/CMakeLists.txt | |
parent | 6aa5779d74353f03e56d0c5079885ec2535011a8 (diff) | |
download | rabbitmq-c-github-ask-433b8e00ec8842bc5520eb92614d415512b9bec5.tar.gz |
CMake: build both static and shared libs in one build
Diffstat (limited to 'librabbitmq/CMakeLists.txt')
-rw-r--r-- | librabbitmq/CMakeLists.txt | 67 |
1 files changed, 45 insertions, 22 deletions
diff --git a/librabbitmq/CMakeLists.txt b/librabbitmq/CMakeLists.txt index c0b2c79..07cea7a 100644 --- a/librabbitmq/CMakeLists.txt +++ b/librabbitmq/CMakeLists.txt @@ -82,29 +82,52 @@ set(RABBITMQ_SOURCES add_definitions(-DAMQP_BUILD) -if (NOT BUILD_SHARED_LIBS) - add_definitions(-DAMQP_STATIC) -endif() - -add_library(rabbitmq ${RABBITMQ_SOURCES}) - -if (WIN32) - set_target_properties(rabbitmq PROPERTIES VERSION ${RMQ_VERSION} OUTPUT_NAME rabbitmq.${RMQ_SOVERSION}) -else () - set_target_properties(rabbitmq PROPERTIES VERSION ${RMQ_VERSION} SOVERSION ${RMQ_SOVERSION}) -endif () - -if (DEFINED SOCKET_LIBRARIES) - target_link_libraries(rabbitmq ${SOCKET_LIBRARIES}) -endif () - -install(TARGETS rabbitmq - RUNTIME DESTINATION bin - LIBRARY DESTINATION lib - ARCHIVE DESTINATION lib - PUBLIC_HEADER DESTINATION include) +if (BUILD_SHARED_LIBS) + add_library(rabbitmq SHARED ${RABBITMQ_SOURCES}) + + if (WIN32) + set_target_properties(rabbitmq PROPERTIES VERSION ${RMQ_VERSION} OUTPUT_NAME rabbitmq.${RMQ_SOVERSION}) + else (WIN32) + set_target_properties(rabbitmq PROPERTIES VERSION ${RMQ_VERSION} SOVERSION ${RMQ_SOVERSION}) + endif (WIN32) + + if (DEFINED SOCKET_LIBRARIES) + target_link_libraries(rabbitmq ${SOCKET_LIBRARIES}) + endif () + + install(TARGETS rabbitmq + RUNTIME DESTINATION bin + LIBRARY DESTINATION lib + ) + set(RMQ_LIBRARY_TARGET rabbitmq) +endif (BUILD_SHARED_LIBS) + +if (BUILD_STATIC_LIBS) + add_library(rabbitmq-static STATIC ${RABBITMQ_SOURCES}) + + set_target_properties(rabbitmq-static PROPERTIES COMPILE_DEFINITIONS AMQP_STATIC) + if (WIN32) + set_target_properties(rabbitmq-static PROPERTIES VERSION ${RMQ_VERSION} OUTPUT_NAME librabbitmq.${RMQ_SOVERSION}) + else (WIN32) + set_target_properties(rabbitmq-static PROPERTIES VERSION ${RMQ_VERSION} SOVERSION ${RMQ_SOVERSION} OUTPUT_NAME rabbitmq) + endif (WIN32) + + if (DEFINED SOCKET_LIBRARIES) + target_link_libraries(rabbitmq-static ${SOCKET_LIBRARIES}) + endif () + + install(TARGETS rabbitmq-static + ARCHIVE DESTINATION lib + ) + + if (NOT DEFINED RMQ_LIBRARY_TARGET) + set(RMQ_LIBRARY_TARGET rabbitmq-static) + endif () +endif (BUILD_STATIC_LIBS) install(FILES amqp.h ${CMAKE_CURRENT_BINARY_DIR}/amqp_framing.h ${STDINT_H_INSTALL_FILE} - DESTINATION include) + DESTINATION include + ) +set(RMQ_LIBRARY_TARGET ${RMQ_LIBRARY_TARGET} PARENT_SCOPE) |