diff options
| author | Garrett D'Amore <garrett@damore.org> | 2018-02-21 19:17:30 -0800 |
|---|---|---|
| committer | Garrett D'Amore <garrett@damore.org> | 2018-02-21 19:17:30 -0800 |
| commit | 3a0ca04110778a56bcd523fbaba2439a61738e03 (patch) | |
| tree | ad55a99a5ef948e335f4a631949876b5d92cd09a /src/CMakeLists.txt | |
| parent | a4d378030df61760ea4daa2ddbe46b1366f8e977 (diff) | |
| download | nng-3a0ca04110778a56bcd523fbaba2439a61738e03.tar.gz nng-3a0ca04110778a56bcd523fbaba2439a61738e03.tar.bz2 nng-3a0ca04110778a56bcd523fbaba2439a61738e03.zip | |
CMake & CPack improvements.
These are incremental updates... we avoid using install() in the
subdirectories, so that we can adapt properly to them in the
single parent directory.
We have started some of the work to improve support for CPack. This
is still not yet done, but work in progress.
Diffstat (limited to 'src/CMakeLists.txt')
| -rw-r--r-- | src/CMakeLists.txt | 48 |
1 files changed, 27 insertions, 21 deletions
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index b245d6ae..2cf03e45 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -126,6 +126,8 @@ if (NNG_PLATFORM_WINDOWS) ) endif() +set (NNG_HEADERS nng.h) + add_subdirectory(supplemental/base64) add_subdirectory(supplemental/http) add_subdirectory(supplemental/sha1) @@ -178,35 +180,39 @@ target_compile_definitions(${PROJECT_NAME}_static PUBLIC -DNNG_STATIC_LIB) # 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_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} ${PROJECT_NAME}_static + PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}) +set_target_properties (${PROJECT_NAME} ${PROJECT_NAME}_static + PROPERTIES LIBRARY_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}) +set_target_properties (${PROJECT_NAME} ${PROJECT_NAME}_static + 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}) +set_target_properties (${PROJECT_NAME} ${PROJECT_NAME}_static + PROPERTIES FRAMEWORK OFF) target_link_libraries (${PROJECT_NAME} ${NNG_REQUIRED_LIBRARIES}) -if( THREADS_HAVE_PTHREAD_ARG) - add_definitions (-pthread) -endif() -if (CMAKE_THREAD_LIBS_INIT) - target_link_libraries (${PROJECT_NAME} "${CMAKE_THREAD_LIBS_INIT}") -endif() +target_link_libraries (${PROJECT_NAME} Threads::Threads) -# pkg-config file -#configure_file (pkgconfig.in ${PROJECT_NAME}.pc @ONLY) -#install ( -# FILES ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}.pc -# DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig) install (TARGETS ${PROJECT_NAME} ${PROJECT_NAME}_static - ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} - LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} - RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} + FRAMEWORK DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT library + ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT library + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT library + RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT tools ) +# Install the header files. It would be much better if we could use +# the PUBLIC_HEADER facility, but it stupidly flattens the directories. +foreach (f ${NNG_HEADERS}) + get_filename_component(d ${f} DIRECTORY) + install(FILES ${f} + DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/nng/${d} + COMPONENT headers) +endforeach() + # Promote settings to parent set(NNG_REQUIRED_LIBRARIES ${NNG_REQUIRED_LIBRARIES} PARENT_SCOPE) |
