summaryrefslogtreecommitdiff
path: root/librabbitmq/CMakeLists.txt
diff options
context:
space:
mode:
authorAlan Antonuk <aega@med.umich.edu>2012-10-02 12:03:01 -0400
committerAlan Antonuk <alan.antonuk@gmail.com>2012-11-14 22:46:33 -0500
commit433b8e00ec8842bc5520eb92614d415512b9bec5 (patch)
tree9b01ea452a68f5cb4b10412faf0cb9c3e5f36ab2 /librabbitmq/CMakeLists.txt
parent6aa5779d74353f03e56d0c5079885ec2535011a8 (diff)
downloadrabbitmq-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.txt67
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)