From db14e19554dfac96e5da569c595b6fc395b010f7 Mon Sep 17 00:00:00 2001 From: mrabine Date: Fri, 30 Jan 2026 13:24:39 +0100 Subject: [PATCH 1/2] use GNU install dirs --- CMakeLists.txt | 2 ++ core/CMakeLists.txt | 8 +++---- core/tests/CMakeLists.txt | 43 +++++++++++++++++++++++++++++++++++ crypto/CMakeLists.txt | 8 +++---- crypto/tests/CMakeLists.txt | 6 +++++ data/CMakeLists.txt | 8 +++---- data/tests/CMakeLists.txt | 15 ++++++++++++ fabric/CMakeLists.txt | 8 +++---- fabric/tests/CMakeLists.txt | 4 ++++ services/CMakeLists.txt | 8 +++---- services/tests/CMakeLists.txt | 12 ++++++++++ 11 files changed, 102 insertions(+), 20 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 9f7a2297..4f1c92f9 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -5,6 +5,8 @@ set(CMAKE_CXX_STANDARD 14) set(CMAKE_CXX_STANDARD_REQUIRED ON) set(CMAKE_CXX_EXTENSIONS OFF) +include(GNUInstallDirs) + file(STRINGS "${PROJECT_SOURCE_DIR}/VERSION" JOIN_VERSION) string(REGEX REPLACE "([0-9]+)\\.[0-9]+\\.[0-9]+.*" "\\1" JOIN_VERSION_MAJOR ${JOIN_VERSION}) string(REGEX REPLACE "[0-9]+\\.([0-9])+\\.[0-9]+.*" "\\1" JOIN_VERSION_MINOR ${JOIN_VERSION}) diff --git a/core/CMakeLists.txt b/core/CMakeLists.txt index cc9443a1..9b892452 100644 --- a/core/CMakeLists.txt +++ b/core/CMakeLists.txt @@ -64,13 +64,13 @@ target_link_libraries(${JOIN_CORE} install(TARGETS ${JOIN_CORE} EXPORT joinTargets - LIBRARY DESTINATION lib - ARCHIVE DESTINATION lib - PUBLIC_HEADER DESTINATION include/join + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} + ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} + PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/join ) configure_file(${JOIN_CORE}.pc.in ${JOIN_CORE}.pc @ONLY) -install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${JOIN_CORE}.pc DESTINATION lib/pkgconfig) +install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${JOIN_CORE}.pc DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig) if(JOIN_ENABLE_TESTS) add_subdirectory(tests) diff --git a/core/tests/CMakeLists.txt b/core/tests/CMakeLists.txt index 7be397de..38ed0554 100644 --- a/core/tests/CMakeLists.txt +++ b/core/tests/CMakeLists.txt @@ -5,171 +5,214 @@ find_package(GTest REQUIRED) add_executable(error.gtest error_test.cpp) target_link_libraries(error.gtest ${JOIN_CORE} GTest::gtest_main) gtest_discover_tests(error.gtest) +install(TARGETS error.gtest RUNTIME DESTINATION ${CMAKE_INSTALL_DATADIR}/${PROJECT_NAME}/test) add_executable(utils.gtest utils_test.cpp) target_link_libraries(utils.gtest ${JOIN_CORE} GTest::gtest_main) gtest_discover_tests(utils.gtest) +install(TARGETS utils.gtest RUNTIME DESTINATION ${CMAKE_INSTALL_DATADIR}/${PROJECT_NAME}/test) add_executable(filesystem.gtest filesystem_test.cpp) target_link_libraries(filesystem.gtest ${JOIN_CORE} GTest::gtest_main) gtest_discover_tests(filesystem.gtest) +install(TARGETS filesystem.gtest RUNTIME DESTINATION ${CMAKE_INSTALL_DATADIR}/${PROJECT_NAME}/test) add_executable(traits.gtest traits_test.cpp) target_link_libraries(traits.gtest ${JOIN_CORE} GTest::gtest_main) gtest_discover_tests(traits.gtest) +install(TARGETS traits.gtest RUNTIME DESTINATION ${CMAKE_INSTALL_DATADIR}/${PROJECT_NAME}/test) add_executable(variant.gtest variant_test.cpp) target_link_libraries(variant.gtest ${JOIN_CORE} GTest::gtest_main) gtest_discover_tests(variant.gtest) +install(TARGETS variant.gtest RUNTIME DESTINATION ${CMAKE_INSTALL_DATADIR}/${PROJECT_NAME}/test) add_executable(reactor.gtest reactor_test.cpp) target_link_libraries(reactor.gtest ${JOIN_CORE} GTest::gtest_main) gtest_discover_tests(reactor.gtest) +install(TARGETS reactor.gtest RUNTIME DESTINATION ${CMAKE_INSTALL_DATADIR}/${PROJECT_NAME}/test) add_executable(realtimetimer.gtest realtimetimer_test.cpp) target_link_libraries(realtimetimer.gtest ${JOIN_CORE} GTest::gtest_main) gtest_discover_tests(realtimetimer.gtest) +install(TARGETS realtimetimer.gtest RUNTIME DESTINATION ${CMAKE_INSTALL_DATADIR}/${PROJECT_NAME}/test) add_executable(monotonictimer.gtest monotonictimer_test.cpp) target_link_libraries(monotonictimer.gtest ${JOIN_CORE} GTest::gtest_main) gtest_discover_tests(monotonictimer.gtest) +install(TARGETS monotonictimer.gtest RUNTIME DESTINATION ${CMAKE_INSTALL_DATADIR}/${PROJECT_NAME}/test) add_executable(sharedmem.gtest sharedmem_test.cpp) target_link_libraries(sharedmem.gtest ${JOIN_CORE} GTest::gtest_main rt) gtest_discover_tests(sharedmem.gtest) +install(TARGETS sharedmem.gtest RUNTIME DESTINATION ${CMAKE_INSTALL_DATADIR}/${PROJECT_NAME}/test) add_executable(spsc.gtest spsc_test.cpp) target_link_libraries(spsc.gtest ${JOIN_CORE} GTest::gtest_main rt) gtest_discover_tests(spsc.gtest) +install(TARGETS spsc.gtest RUNTIME DESTINATION ${CMAKE_INSTALL_DATADIR}/${PROJECT_NAME}/test) add_executable(mpsc.gtest mpsc_test.cpp) target_link_libraries(mpsc.gtest ${JOIN_CORE} GTest::gtest_main rt) gtest_discover_tests(mpsc.gtest) +install(TARGETS mpsc.gtest RUNTIME DESTINATION ${CMAKE_INSTALL_DATADIR}/${PROJECT_NAME}/test) add_executable(mpmc.gtest mpmc_test.cpp) target_link_libraries(mpmc.gtest ${JOIN_CORE} GTest::gtest_main rt) gtest_discover_tests(mpmc.gtest) +install(TARGETS mpmc.gtest RUNTIME DESTINATION ${CMAKE_INSTALL_DATADIR}/${PROJECT_NAME}/test) add_executable(spscendpoint.gtest spscendpoint_test.cpp) target_link_libraries(spscendpoint.gtest ${JOIN_CORE} GTest::gtest_main rt) gtest_discover_tests(spscendpoint.gtest) +install(TARGETS spscendpoint.gtest RUNTIME DESTINATION ${CMAKE_INSTALL_DATADIR}/${PROJECT_NAME}/test) add_executable(mpscendpoint.gtest spscendpoint_test.cpp) target_link_libraries(mpscendpoint.gtest ${JOIN_CORE} GTest::gtest_main rt) gtest_discover_tests(mpscendpoint.gtest) +install(TARGETS mpscendpoint.gtest RUNTIME DESTINATION ${CMAKE_INSTALL_DATADIR}/${PROJECT_NAME}/test) add_executable(mpmcendpoint.gtest spscendpoint_test.cpp) target_link_libraries(mpmcendpoint.gtest ${JOIN_CORE} GTest::gtest_main rt) gtest_discover_tests(mpmcendpoint.gtest) +install(TARGETS mpmcendpoint.gtest RUNTIME DESTINATION ${CMAKE_INSTALL_DATADIR}/${PROJECT_NAME}/test) add_executable(mutex.gtest mutex_test.cpp) target_link_libraries(mutex.gtest ${JOIN_CORE} GTest::gtest_main) gtest_discover_tests(mutex.gtest) +install(TARGETS mutex.gtest RUNTIME DESTINATION ${CMAKE_INSTALL_DATADIR}/${PROJECT_NAME}/test) add_executable(recursivemutex.gtest recursivemutex_test.cpp) target_link_libraries(recursivemutex.gtest ${JOIN_CORE} GTest::gtest_main) gtest_discover_tests(recursivemutex.gtest) +install(TARGETS recursivemutex.gtest RUNTIME DESTINATION ${CMAKE_INSTALL_DATADIR}/${PROJECT_NAME}/test) add_executable(sharedmutex.gtest sharedmutex_test.cpp) target_link_libraries(sharedmutex.gtest ${JOIN_CORE} GTest::gtest_main rt) gtest_discover_tests(sharedmutex.gtest) +install(TARGETS sharedmutex.gtest RUNTIME DESTINATION ${CMAKE_INSTALL_DATADIR}/${PROJECT_NAME}/test) add_executable(condition.gtest condition_test.cpp) target_link_libraries(condition.gtest ${JOIN_CORE} GTest::gtest_main) gtest_discover_tests(condition.gtest) +install(TARGETS condition.gtest RUNTIME DESTINATION ${CMAKE_INSTALL_DATADIR}/${PROJECT_NAME}/test) add_executable(sharedcondition.gtest sharedcondition_test.cpp) target_link_libraries(sharedcondition.gtest ${JOIN_CORE} GTest::gtest_main rt) gtest_discover_tests(sharedcondition.gtest) +install(TARGETS sharedcondition.gtest RUNTIME DESTINATION ${CMAKE_INSTALL_DATADIR}/${PROJECT_NAME}/test) add_executable(semaphore.gtest semaphore_test.cpp) target_link_libraries(semaphore.gtest ${JOIN_CORE} GTest::gtest_main) gtest_discover_tests(semaphore.gtest) +install(TARGETS semaphore.gtest RUNTIME DESTINATION ${CMAKE_INSTALL_DATADIR}/${PROJECT_NAME}/test) add_executable(sharedsemaphore.gtest sharedsemaphore_test.cpp) target_link_libraries(sharedsemaphore.gtest ${JOIN_CORE} GTest::gtest_main rt) gtest_discover_tests(sharedsemaphore.gtest) +install(TARGETS sharedsemaphore.gtest RUNTIME DESTINATION ${CMAKE_INSTALL_DATADIR}/${PROJECT_NAME}/test) add_executable(thread.gtest thread_test.cpp) target_link_libraries(thread.gtest ${JOIN_CORE} GTest::gtest_main) gtest_discover_tests(thread.gtest) +install(TARGETS thread.gtest RUNTIME DESTINATION ${CMAKE_INSTALL_DATADIR}/${PROJECT_NAME}/test) add_executable(threadpool.gtest threadpool_test.cpp) target_link_libraries(threadpool.gtest ${JOIN_CORE} GTest::gtest_main) gtest_discover_tests(threadpool.gtest) +install(TARGETS threadpool.gtest RUNTIME DESTINATION ${CMAKE_INSTALL_DATADIR}/${PROJECT_NAME}/test) add_executable(macaddress.gtest macaddress_test.cpp) target_link_libraries(macaddress.gtest ${JOIN_CORE} GTest::gtest_main) gtest_discover_tests(macaddress.gtest) +install(TARGETS macaddress.gtest RUNTIME DESTINATION ${CMAKE_INSTALL_DATADIR}/${PROJECT_NAME}/test) add_executable(ipaddress.gtest ipaddress_test.cpp) target_link_libraries(ipaddress.gtest ${JOIN_CORE} GTest::gtest_main) gtest_discover_tests(ipaddress.gtest) +install(TARGETS ipaddress.gtest RUNTIME DESTINATION ${CMAKE_INSTALL_DATADIR}/${PROJECT_NAME}/test) add_executable(endpoint.gtest endpoint_test.cpp) target_link_libraries(endpoint.gtest ${JOIN_CORE} GTest::gtest_main) gtest_discover_tests(endpoint.gtest) +install(TARGETS endpoint.gtest RUNTIME DESTINATION ${CMAKE_INSTALL_DATADIR}/${PROJECT_NAME}/test) add_executable(protocol.gtest protocol_test.cpp) target_link_libraries(protocol.gtest ${JOIN_CORE} GTest::gtest_main) gtest_discover_tests(protocol.gtest) +install(TARGETS protocol.gtest RUNTIME DESTINATION ${CMAKE_INSTALL_DATADIR}/${PROJECT_NAME}/test) add_executable(unixdgramsocket.gtest unixdgramsocket_test.cpp) target_link_libraries(unixdgramsocket.gtest ${JOIN_CORE} GTest::gtest_main) gtest_discover_tests(unixdgramsocket.gtest) +install(TARGETS unixdgramsocket.gtest RUNTIME DESTINATION ${CMAKE_INSTALL_DATADIR}/${PROJECT_NAME}/test) add_executable(unixstreamsocket.gtest unixstreamsocket_test.cpp) target_link_libraries(unixstreamsocket.gtest ${JOIN_CORE} GTest::gtest_main) gtest_discover_tests(unixstreamsocket.gtest) +install(TARGETS unixstreamsocket.gtest RUNTIME DESTINATION ${CMAKE_INSTALL_DATADIR}/${PROJECT_NAME}/test) add_executable(netlinksocket.gtest netlinksocket_test.cpp) target_link_libraries(netlinksocket.gtest ${JOIN_CORE} GTest::gtest_main) gtest_discover_tests(netlinksocket.gtest) +install(TARGETS netlinksocket.gtest RUNTIME DESTINATION ${CMAKE_INSTALL_DATADIR}/${PROJECT_NAME}/test) add_executable(unixstreamacceptor.gtest unixstreamacceptor_test.cpp) target_link_libraries(unixstreamacceptor.gtest ${JOIN_CORE} GTest::gtest_main) gtest_discover_tests(unixstreamacceptor.gtest) +install(TARGETS unixstreamacceptor.gtest RUNTIME DESTINATION ${CMAKE_INSTALL_DATADIR}/${PROJECT_NAME}/test) add_executable(rawsocket.gtest rawsocket_test.cpp) target_link_libraries(rawsocket.gtest ${JOIN_CORE} GTest::gtest_main) gtest_discover_tests(rawsocket.gtest) +install(TARGETS rawsocket.gtest RUNTIME DESTINATION ${CMAKE_INSTALL_DATADIR}/${PROJECT_NAME}/test) add_executable(udpsocket.gtest udpsocket_test.cpp) target_link_libraries(udpsocket.gtest ${JOIN_CORE} GTest::gtest_main) gtest_discover_tests(udpsocket.gtest) +install(TARGETS udpsocket.gtest RUNTIME DESTINATION ${CMAKE_INSTALL_DATADIR}/${PROJECT_NAME}/test) add_executable(icmpsocket.gtest icmpsocket_test.cpp) target_link_libraries(icmpsocket.gtest ${JOIN_CORE} GTest::gtest_main) gtest_discover_tests(icmpsocket.gtest) +install(TARGETS icmpsocket.gtest RUNTIME DESTINATION ${CMAKE_INSTALL_DATADIR}/${PROJECT_NAME}/test) add_executable(tcpsocket.gtest tcpsocket_test.cpp) target_link_libraries(tcpsocket.gtest ${JOIN_CORE} GTest::gtest_main) gtest_discover_tests(tcpsocket.gtest) +install(TARGETS tcpsocket.gtest RUNTIME DESTINATION ${CMAKE_INSTALL_DATADIR}/${PROJECT_NAME}/test) add_executable(tcpsocketstream.gtest tcpsocketstream_test.cpp) target_link_libraries(tcpsocketstream.gtest ${JOIN_CORE} GTest::gtest_main) gtest_discover_tests(tcpsocketstream.gtest) +install(TARGETS tcpsocketstream.gtest RUNTIME DESTINATION ${CMAKE_INSTALL_DATADIR}/${PROJECT_NAME}/test) add_executable(tcpacceptor.gtest tcpacceptor_test.cpp) target_link_libraries(tcpacceptor.gtest ${JOIN_CORE} GTest::gtest_main) gtest_discover_tests(tcpacceptor.gtest) +install(TARGETS tcpacceptor.gtest RUNTIME DESTINATION ${CMAKE_INSTALL_DATADIR}/${PROJECT_NAME}/test) add_executable(tlserror.gtest tlserror_test.cpp) target_link_libraries(tlserror.gtest ${JOIN_CORE} GTest::gtest_main) gtest_discover_tests(tlserror.gtest) +install(TARGETS tlserror.gtest RUNTIME DESTINATION ${CMAKE_INSTALL_DATADIR}/${PROJECT_NAME}/test) add_executable(tlssocket.gtest tlssocket_test.cpp) target_link_libraries(tlssocket.gtest ${JOIN_CORE} GTest::gtest_main) gtest_discover_tests(tlssocket.gtest) +install(TARGETS tlssocket.gtest RUNTIME DESTINATION ${CMAKE_INSTALL_DATADIR}/${PROJECT_NAME}/test) add_executable(tlssocketstream.gtest tlssocketstream_test.cpp) target_link_libraries(tlssocketstream.gtest ${JOIN_CORE} GTest::gtest_main) gtest_discover_tests(tlssocketstream.gtest) +install(TARGETS tlssocketstream.gtest RUNTIME DESTINATION ${CMAKE_INSTALL_DATADIR}/${PROJECT_NAME}/test) add_executable(tlsacceptor.gtest tlsacceptor_test.cpp) target_link_libraries(tlsacceptor.gtest ${JOIN_CORE} GTest::gtest_main) gtest_discover_tests(tlsacceptor.gtest) +install(TARGETS tlsacceptor.gtest RUNTIME DESTINATION ${CMAKE_INSTALL_DATADIR}/${PROJECT_NAME}/test) add_executable(openssl.gtest openssl_test.cpp) target_link_libraries(openssl.gtest ${JOIN_CORE} GTest::gtest_main) gtest_discover_tests(openssl.gtest) +install(TARGETS openssl.gtest RUNTIME DESTINATION ${CMAKE_INSTALL_DATADIR}/${PROJECT_NAME}/test) diff --git a/crypto/CMakeLists.txt b/crypto/CMakeLists.txt index 7fe811b3..8e83e61f 100644 --- a/crypto/CMakeLists.txt +++ b/crypto/CMakeLists.txt @@ -40,13 +40,13 @@ target_link_libraries(${JOIN_CRYPTO} install(TARGETS ${JOIN_CRYPTO} EXPORT joinTargets - LIBRARY DESTINATION lib - ARCHIVE DESTINATION lib - PUBLIC_HEADER DESTINATION include/join + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} + ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} + PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/join ) configure_file(${JOIN_CRYPTO}.pc.in ${JOIN_CRYPTO}.pc @ONLY) -install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${JOIN_CRYPTO}.pc DESTINATION lib/pkgconfig) +install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${JOIN_CRYPTO}.pc DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig) if(JOIN_ENABLE_TESTS) add_subdirectory(tests) diff --git a/crypto/tests/CMakeLists.txt b/crypto/tests/CMakeLists.txt index 8d83ffac..0f64b047 100644 --- a/crypto/tests/CMakeLists.txt +++ b/crypto/tests/CMakeLists.txt @@ -5,23 +5,29 @@ find_package(GTest REQUIRED) add_executable(base64.gtest base64_test.cpp) target_link_libraries(base64.gtest ${JOIN_CRYPTO} GTest::gtest_main) gtest_discover_tests(base64.gtest) +install(TARGETS base64.gtest RUNTIME DESTINATION ${CMAKE_INSTALL_DATADIR}/${PROJECT_NAME}/test) add_executable(digesterror.gtest digesterror_test.cpp) target_link_libraries(digesterror.gtest ${JOIN_CRYPTO} GTest::gtest_main) gtest_discover_tests(digesterror.gtest) +install(TARGETS digesterror.gtest RUNTIME DESTINATION ${CMAKE_INSTALL_DATADIR}/${PROJECT_NAME}/test) add_executable(digest.gtest digest_test.cpp) target_link_libraries(digest.gtest ${JOIN_CRYPTO} GTest::gtest_main) gtest_discover_tests(digest.gtest) +install(TARGETS digest.gtest RUNTIME DESTINATION ${CMAKE_INSTALL_DATADIR}/${PROJECT_NAME}/test) add_executable(hmac.gtest hmac_test.cpp) target_link_libraries(hmac.gtest ${JOIN_CRYPTO} GTest::gtest_main) gtest_discover_tests(hmac.gtest) +install(TARGETS hmac.gtest RUNTIME DESTINATION ${CMAKE_INSTALL_DATADIR}/${PROJECT_NAME}/test) add_executable(tlskey.gtest tlskey_test.cpp) target_link_libraries(tlskey.gtest ${JOIN_CRYPTO} GTest::gtest_main) gtest_discover_tests(tlskey.gtest) +install(TARGETS tlskey.gtest RUNTIME DESTINATION ${CMAKE_INSTALL_DATADIR}/${PROJECT_NAME}/test) add_executable(signature.gtest signature_test.cpp) target_link_libraries(signature.gtest ${JOIN_CRYPTO} GTest::gtest_main) gtest_discover_tests(signature.gtest) +install(TARGETS signature.gtest RUNTIME DESTINATION ${CMAKE_INSTALL_DATADIR}/${PROJECT_NAME}/test) diff --git a/data/CMakeLists.txt b/data/CMakeLists.txt index 6e7a82c8..729e0eb5 100644 --- a/data/CMakeLists.txt +++ b/data/CMakeLists.txt @@ -48,13 +48,13 @@ target_link_libraries(${JOIN_DATA} install(TARGETS ${JOIN_DATA} EXPORT joinTargets - LIBRARY DESTINATION lib - ARCHIVE DESTINATION lib - PUBLIC_HEADER DESTINATION include/join + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} + ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} + PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/join ) configure_file(${JOIN_DATA}.pc.in ${JOIN_DATA}.pc @ONLY) -install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${JOIN_DATA}.pc DESTINATION lib/pkgconfig) +install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${JOIN_DATA}.pc DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig) if(JOIN_ENABLE_TESTS) add_subdirectory(tests) diff --git a/data/tests/CMakeLists.txt b/data/tests/CMakeLists.txt index fdc88b25..103ff329 100644 --- a/data/tests/CMakeLists.txt +++ b/data/tests/CMakeLists.txt @@ -5,57 +5,72 @@ find_package(GTest REQUIRED) add_executable(dtoa.gtest dtoa_test.cpp) target_link_libraries(dtoa.gtest ${JOIN_DATA} GTest::gtest_main) gtest_discover_tests(dtoa.gtest) +install(TARGETS dtoa.gtest RUNTIME DESTINATION ${CMAKE_INSTALL_DATADIR}/${PROJECT_NAME}/test) add_executable(stringview.gtest stringview_test.cpp) target_link_libraries(stringview.gtest ${JOIN_DATA} GTest::gtest_main) gtest_discover_tests(stringview.gtest) +install(TARGETS stringview.gtest RUNTIME DESTINATION ${CMAKE_INSTALL_DATADIR}/${PROJECT_NAME}/test) add_executable(streamview.gtest streamview_test.cpp) target_link_libraries(streamview.gtest ${JOIN_DATA} GTest::gtest_main) gtest_discover_tests(streamview.gtest) +install(TARGETS streamview.gtest RUNTIME DESTINATION ${CMAKE_INSTALL_DATADIR}/${PROJECT_NAME}/test) add_executable(value.gtest value_test.cpp) target_link_libraries(value.gtest ${JOIN_DATA} GTest::gtest_main) gtest_discover_tests(value.gtest) +install(TARGETS value.gtest RUNTIME DESTINATION ${CMAKE_INSTALL_DATADIR}/${PROJECT_NAME}/test) add_executable(saxerror.gtest saxerror_test.cpp) target_link_libraries(saxerror.gtest ${JOIN_DATA} GTest::gtest_main) gtest_discover_tests(saxerror.gtest) +install(TARGETS saxerror.gtest RUNTIME DESTINATION ${CMAKE_INSTALL_DATADIR}/${PROJECT_NAME}/test) add_executable(packreader.gtest packreader_test.cpp) target_link_libraries(packreader.gtest ${JOIN_DATA} GTest::gtest_main) gtest_discover_tests(packreader.gtest) +install(TARGETS packreader.gtest RUNTIME DESTINATION ${CMAKE_INSTALL_DATADIR}/${PROJECT_NAME}/test) add_executable(packwriter.gtest packwriter_test.cpp) target_link_libraries(packwriter.gtest ${JOIN_DATA} GTest::gtest_main) gtest_discover_tests(packwriter.gtest) +install(TARGETS packwriter.gtest RUNTIME DESTINATION ${CMAKE_INSTALL_DATADIR}/${PROJECT_NAME}/test) add_executable(jsonerror.gtest jsonerror_test.cpp) target_link_libraries(jsonerror.gtest ${JOIN_DATA} GTest::gtest_main) gtest_discover_tests(jsonerror.gtest) +install(TARGETS jsonerror.gtest RUNTIME DESTINATION ${CMAKE_INSTALL_DATADIR}/${PROJECT_NAME}/test) add_executable(jsonreader.gtest jsonreader_test.cpp) target_link_libraries(jsonreader.gtest ${JOIN_DATA} GTest::gtest_main) gtest_discover_tests(jsonreader.gtest) +install(TARGETS jsonreader.gtest RUNTIME DESTINATION ${CMAKE_INSTALL_DATADIR}/${PROJECT_NAME}/test) add_executable(jsonwriter.gtest jsonwriter_test.cpp) target_link_libraries(jsonwriter.gtest ${JOIN_DATA} GTest::gtest_main) gtest_discover_tests(jsonwriter.gtest) +install(TARGETS jsonwriter.gtest RUNTIME DESTINATION ${CMAKE_INSTALL_DATADIR}/${PROJECT_NAME}/test) add_executable(jsoncanonicalizer.gtest jsoncanonicalizer_test.cpp) target_link_libraries(jsoncanonicalizer.gtest ${JOIN_DATA} GTest::gtest_main) gtest_discover_tests(jsoncanonicalizer.gtest) +install(TARGETS jsoncanonicalizer.gtest RUNTIME DESTINATION ${CMAKE_INSTALL_DATADIR}/${PROJECT_NAME}/test) add_executable(roundtrip.gtest roundtrip_test.cpp) target_link_libraries(roundtrip.gtest ${JOIN_DATA} GTest::gtest_main) gtest_discover_tests(roundtrip.gtest) +install(TARGETS roundtrip.gtest RUNTIME DESTINATION ${CMAKE_INSTALL_DATADIR}/${PROJECT_NAME}/test) add_executable(parse.gtest parse_test.cpp) target_link_libraries(parse.gtest ${JOIN_DATA} GTest::gtest_main) gtest_discover_tests(parse.gtest) +install(TARGETS parse.gtest RUNTIME DESTINATION ${CMAKE_INSTALL_DATADIR}/${PROJECT_NAME}/test) file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/data DESTINATION ${CMAKE_CURRENT_BINARY_DIR}) +install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/data DESTINATION ${CMAKE_INSTALL_DATADIR}/${PROJECT_NAME}/test) add_executable(zstream.gtest zstream_test.cpp) target_link_libraries(zstream.gtest ${JOIN_DATA} GTest::gtest_main) gtest_discover_tests(zstream.gtest) +install(TARGETS zstream.gtest RUNTIME DESTINATION ${CMAKE_INSTALL_DATADIR}/${PROJECT_NAME}/test) diff --git a/fabric/CMakeLists.txt b/fabric/CMakeLists.txt index 3d8f6d7c..c692780b 100644 --- a/fabric/CMakeLists.txt +++ b/fabric/CMakeLists.txt @@ -38,13 +38,13 @@ target_link_libraries(${JOIN_FABRIC} install(TARGETS ${JOIN_FABRIC} EXPORT joinTargets - LIBRARY DESTINATION lib - ARCHIVE DESTINATION lib - PUBLIC_HEADER DESTINATION include/join + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} + ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} + PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/join ) configure_file(${JOIN_FABRIC}.pc.in ${JOIN_FABRIC}.pc @ONLY) -install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${JOIN_FABRIC}.pc DESTINATION lib/pkgconfig) +install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${JOIN_FABRIC}.pc DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig) if(JOIN_ENABLE_TESTS) add_subdirectory(tests) diff --git a/fabric/tests/CMakeLists.txt b/fabric/tests/CMakeLists.txt index bf191e5b..4bb05786 100644 --- a/fabric/tests/CMakeLists.txt +++ b/fabric/tests/CMakeLists.txt @@ -5,15 +5,19 @@ find_package(GTest REQUIRED) add_executable(arp.gtest arp_test.cpp) target_link_libraries(arp.gtest ${JOIN_FABRIC} GTest::gtest_main) gtest_discover_tests(arp.gtest) +install(TARGETS arp.gtest RUNTIME DESTINATION ${CMAKE_INSTALL_DATADIR}/${PROJECT_NAME}/test) add_executable(resolver.gtest resolver_test.cpp) target_link_libraries(resolver.gtest ${JOIN_FABRIC} GTest::gtest_main) gtest_discover_tests(resolver.gtest) +install(TARGETS resolver.gtest RUNTIME DESTINATION ${CMAKE_INSTALL_DATADIR}/${PROJECT_NAME}/test) add_executable(interface.gtest interface_test.cpp) target_link_libraries(interface.gtest ${JOIN_FABRIC} GTest::gtest_main) gtest_discover_tests(interface.gtest) +install(TARGETS interface.gtest RUNTIME DESTINATION ${CMAKE_INSTALL_DATADIR}/${PROJECT_NAME}/test) add_executable(interfacemanager.gtest interfacemanager_test.cpp) target_link_libraries(interfacemanager.gtest ${JOIN_FABRIC} GTest::gtest_main) gtest_discover_tests(interfacemanager.gtest) +install(TARGETS interfacemanager.gtest RUNTIME DESTINATION ${CMAKE_INSTALL_DATADIR}/${PROJECT_NAME}/test) diff --git a/services/CMakeLists.txt b/services/CMakeLists.txt index 93f90b20..70893f02 100644 --- a/services/CMakeLists.txt +++ b/services/CMakeLists.txt @@ -46,13 +46,13 @@ target_link_libraries(${JOIN_SERVICES} install(TARGETS ${JOIN_SERVICES} EXPORT joinTargets - LIBRARY DESTINATION lib - ARCHIVE DESTINATION lib - PUBLIC_HEADER DESTINATION include/join + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} + ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} + PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/join ) configure_file(${JOIN_SERVICES}.pc.in ${JOIN_SERVICES}.pc @ONLY) -install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${JOIN_SERVICES}.pc DESTINATION lib/pkgconfig) +install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${JOIN_SERVICES}.pc DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig) if(JOIN_ENABLE_TESTS) add_subdirectory(tests) diff --git a/services/tests/CMakeLists.txt b/services/tests/CMakeLists.txt index ed0326fe..dc19cb65 100644 --- a/services/tests/CMakeLists.txt +++ b/services/tests/CMakeLists.txt @@ -5,47 +5,59 @@ find_package(GTest REQUIRED) add_executable(cache.gtest cache_test.cpp) target_link_libraries(cache.gtest ${JOIN_SERVICES} GTest::gtest_main) gtest_discover_tests(cache.gtest) +install(TARGETS cache.gtest RUNTIME DESTINATION ${CMAKE_INSTALL_DATADIR}/${PROJECT_NAME}/test) add_executable(chunkstream.gtest chunkstream_test.cpp) target_link_libraries(chunkstream.gtest ${JOIN_SERVICES} GTest::gtest_main) gtest_discover_tests(chunkstream.gtest) +install(TARGETS chunkstream.gtest RUNTIME DESTINATION ${CMAKE_INSTALL_DATADIR}/${PROJECT_NAME}/test) add_executable(httperror.gtest httperror_test.cpp) target_link_libraries(httperror.gtest ${JOIN_SERVICES} GTest::gtest_main) gtest_discover_tests(httperror.gtest) +install(TARGETS httperror.gtest RUNTIME DESTINATION ${CMAKE_INSTALL_DATADIR}/${PROJECT_NAME}/test) add_executable(httprequest.gtest httprequest_test.cpp) target_link_libraries(httprequest.gtest ${JOIN_SERVICES} GTest::gtest_main) gtest_discover_tests(httprequest.gtest) +install(TARGETS httprequest.gtest RUNTIME DESTINATION ${CMAKE_INSTALL_DATADIR}/${PROJECT_NAME}/test) add_executable(httpresponse.gtest httpresponse_test.cpp) target_link_libraries(httpresponse.gtest ${JOIN_SERVICES} GTest::gtest_main) gtest_discover_tests(httpresponse.gtest) +install(TARGETS httpresponse.gtest RUNTIME DESTINATION ${CMAKE_INSTALL_DATADIR}/${PROJECT_NAME}/test) add_executable(http.gtest http_test.cpp) target_link_libraries(http.gtest ${JOIN_SERVICES} GTest::gtest_main) gtest_discover_tests(http.gtest) +install(TARGETS http.gtest RUNTIME DESTINATION ${CMAKE_INSTALL_DATADIR}/${PROJECT_NAME}/test) add_executable(https.gtest https_test.cpp) target_link_libraries(https.gtest ${JOIN_SERVICES} GTest::gtest_main) gtest_discover_tests(https.gtest) +install(TARGETS https.gtest RUNTIME DESTINATION ${CMAKE_INSTALL_DATADIR}/${PROJECT_NAME}/test) add_executable(mailsender.gtest mailsender_test.cpp) target_link_libraries(mailsender.gtest ${JOIN_SERVICES} GTest::gtest_main) gtest_discover_tests(mailsender.gtest) +install(TARGETS mailsender.gtest RUNTIME DESTINATION ${CMAKE_INSTALL_DATADIR}/${PROJECT_NAME}/test) add_executable(mailrecipient.gtest mailrecipient_test.cpp) target_link_libraries(mailrecipient.gtest ${JOIN_SERVICES} GTest::gtest_main) gtest_discover_tests(mailrecipient.gtest) +install(TARGETS mailrecipient.gtest RUNTIME DESTINATION ${CMAKE_INSTALL_DATADIR}/${PROJECT_NAME}/test) add_executable(mailmessage.gtest mailmessage_test.cpp) target_link_libraries(mailmessage.gtest ${JOIN_SERVICES} GTest::gtest_main GTest::gmock_main) gtest_discover_tests(mailmessage.gtest) +install(TARGETS mailmessage.gtest RUNTIME DESTINATION ${CMAKE_INSTALL_DATADIR}/${PROJECT_NAME}/test) add_executable(smtp.gtest smtp_test.cpp) target_link_libraries(smtp.gtest ${JOIN_SERVICES} GTest::gtest_main) gtest_discover_tests(smtp.gtest) +install(TARGETS smtp.gtest RUNTIME DESTINATION ${CMAKE_INSTALL_DATADIR}/${PROJECT_NAME}/test) add_executable(smtps.gtest smtps_test.cpp) target_link_libraries(smtps.gtest ${JOIN_SERVICES} GTest::gtest_main) gtest_discover_tests(smtps.gtest) +install(TARGETS smtps.gtest RUNTIME DESTINATION ${CMAKE_INSTALL_DATADIR}/${PROJECT_NAME}/test) From d157dbcdfe2eb71c0e5f3671658f83183d3e8bcb Mon Sep 17 00:00:00 2001 From: mrabine Date: Fri, 30 Jan 2026 13:27:05 +0100 Subject: [PATCH 2/2] update join version --- VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/VERSION b/VERSION index 227cea21..38f77a65 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -2.0.0 +2.0.1