From 573e08a643bac0af91df90582638f1f765dab429 Mon Sep 17 00:00:00 2001 From: Garrett D'Amore Date: Sun, 15 Jan 2017 14:48:09 -0800 Subject: 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. --- src/CMakeLists.txt | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) (limited to 'src/CMakeLists.txt') 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 +# Copyright 2017 Garrett D'Amore # # 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} -- cgit v1.2.3-70-g09d2