aboutsummaryrefslogtreecommitdiff
path: root/src/CMakeLists.txt
diff options
context:
space:
mode:
authorGarrett D'Amore <garrett@damore.org>2017-01-15 14:48:09 -0800
committerGarrett D'Amore <garrett@damore.org>2017-01-15 14:48:09 -0800
commit573e08a643bac0af91df90582638f1f765dab429 (patch)
treead745bb81608147304b1bb92aeb682353feedcbd /src/CMakeLists.txt
parent694ad48a9c3b4c3d3a91d323a1601c2c4ebacba9 (diff)
downloadnng-573e08a643bac0af91df90582638f1f765dab429.tar.gz
nng-573e08a643bac0af91df90582638f1f765dab429.tar.bz2
nng-573e08a643bac0af91df90582638f1f765dab429.zip
Compile static *and* shared libraries.
Test code needs to use the static libraries so that they can get access to the entire set of symbols, including private ones that are not exported.
Diffstat (limited to 'src/CMakeLists.txt')
-rw-r--r--src/CMakeLists.txt22
1 files changed, 13 insertions, 9 deletions
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 48294b35..c8168d76 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -2,7 +2,7 @@
# Copyright (c) 2012-2013 Martin Sustrik All rights reserved.
# Copyright (c) 2013 GoPivotal, Inc. All rights reserved.
# Copyright (c) 2015-2016 Jack R. Dunaway. All rights reserved.
-# Copyright 2016 Garrett D'Amore <garrett@damore.org>
+# Copyright 2017 Garrett D'Amore <garrett@damore.org>
#
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the "Software"),
@@ -121,19 +121,23 @@ foreach (f ${NNG_SOURCES})
source_group ("${SRC_GROUP}" FILES ${f})
endforeach ()
-if (NNG_STATIC_LIB)
- add_library (${PROJECT_NAME} STATIC ${NNG_SOURCES})
-else ()
- add_library (${PROJECT_NAME} SHARED ${NNG_SOURCES})
- add_definitions (-DNNG_SHARED_LIB)
- #set_target_properties (${PROJECT_NAME} PROPERTIES SOVERSION "${NNG_ABI_VERSION}")
-endif ()
+# Static libary
+add_library (${PROJECT_NAME}_static STATIC ${NNG_SOURCES})
+
+# Shared library
+add_library (${PROJECT_NAME} SHARED ${NNG_SOURCES})
+target_compile_definitions(${PROJECT_NAME} PRIVATE -DNNG_SHARED_LIB)
+#set_target_properties (${PROJECT_NAME} PROPERTIES SOVERSION "${NNG_ABI_VERSION}")
# Set library outputs same as top-level project binary outputs
set_target_properties (${PROJECT_NAME} PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR})
set_target_properties (${PROJECT_NAME} PROPERTIES LIBRARY_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR})
set_target_properties (${PROJECT_NAME} PROPERTIES ARCHIVE_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR})
+set_target_properties (${PROJECT_NAME}_static PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR})
+set_target_properties (${PROJECT_NAME}_static PROPERTIES LIBRARY_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR})
+set_target_properties (${PROJECT_NAME}_static PROPERTIES ARCHIVE_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR})
+
target_link_libraries (${PROJECT_NAME} ${NNG_REQUIRED_LIBRARIES})
if( THREADS_HAVE_PTHREAD_ARG)
add_definitions (-pthread)
@@ -152,7 +156,7 @@ endif()
#install (
# FILES ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}.pc
# DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig)
-install (TARGETS ${PROJECT_NAME}
+install (TARGETS ${PROJECT_NAME} ${PROJECT_NAME}_static
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}