diff --git a/CMakeLists.txt b/CMakeLists.txt index 29f5ee3d..717e38a5 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -10,6 +10,7 @@ set(CMAKE_CXX_STANDARD_REQUIRED YES) include(CMakePushCheckState) include(CheckCXXSourceCompiles) +include(GNUInstallDirs) find_package(CapnProto REQUIRED) find_package(Threads REQUIRED) @@ -70,7 +71,7 @@ add_library(multiprocess STATIC target_include_directories(multiprocess PUBLIC $ $ - $ + $ ${CAPNP_INCLUDE_DIRECTORY}) target_link_libraries(multiprocess PRIVATE CapnProto::capnp) target_link_libraries(multiprocess PRIVATE CapnProto::capnp-rpc) @@ -78,11 +79,14 @@ target_link_libraries(multiprocess PRIVATE CapnProto::kj) target_link_libraries(multiprocess PRIVATE CapnProto::kj-async) set_target_properties(multiprocess PROPERTIES PUBLIC_HEADER "${MP_PUBLIC_HEADERS}") -install(TARGETS multiprocess EXPORT Multiprocess - ARCHIVE DESTINATION lib COMPONENT lib - PUBLIC_HEADER DESTINATION include/mp COMPONENT lib) +install(TARGETS multiprocess EXPORT libmultiprocess-lib + ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT lib + PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/mp COMPONENT lib) install(FILES "${CMAKE_CURRENT_BINARY_DIR}/pkgconfig/libmultiprocess.pc" - DESTINATION "lib/pkgconfig" COMPONENT lib) + DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig COMPONENT lib) +install(EXPORT libmultiprocess-lib + NAMESPACE Libmultiprocess:: + DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake COMPONENT lib) add_custom_target(install-lib COMMAND ${CMAKE_COMMAND} -DCOMPONENT=lib -P ${CMAKE_CURRENT_BINARY_DIR}/cmake_install.cmake VERBATIM) @@ -90,7 +94,7 @@ add_dependencies(install-lib multiprocess) add_executable(mpgen src/mp/gen.cpp $) target_include_directories(mpgen PRIVATE $) -target_include_directories(mpgen PUBLIC $ $) +target_include_directories(mpgen PUBLIC $ $) target_link_libraries(mpgen PRIVATE CapnProto::capnp) target_link_libraries(mpgen PRIVATE CapnProto::capnp-rpc) target_link_libraries(mpgen PRIVATE CapnProto::capnpc) @@ -100,11 +104,14 @@ set_target_properties(mpgen PROPERTIES INSTALL_RPATH_USE_LINK_PATH TRUE) set_target_properties(mpgen PROPERTIES PUBLIC_HEADER include/mp/proxy.capnp) -install(TARGETS mpgen EXPORT Multiprocess - RUNTIME DESTINATION bin COMPONENT bin - PUBLIC_HEADER DESTINATION include/mp COMPONENT bin) +install(TARGETS mpgen EXPORT libmultiprocess-bin + RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT bin + PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/mp COMPONENT bin) install(FILES "include/mpgen.mk" - DESTINATION "include" COMPONENT bin) + DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} COMPONENT bin) +install(EXPORT libmultiprocess-bin + NAMESPACE Libmultiprocess:: + DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake COMPONENT bin) add_custom_target(install-bin COMMAND ${CMAKE_COMMAND} -DCOMPONENT=bin -P ${CMAKE_CURRENT_BINARY_DIR}/cmake_install.cmake VERBATIM) @@ -113,7 +120,5 @@ add_dependencies(install-bin mpgen) configure_file(include/mp/config.h.in "${CMAKE_CURRENT_BINARY_DIR}/include/mp/config.h") configure_file(pkgconfig/libmultiprocess.pc.in "${CMAKE_CURRENT_BINARY_DIR}/pkgconfig/libmultiprocess.pc" @ONLY) -install(EXPORT Multiprocess DESTINATION lib/cmake/Multiprocess) - add_subdirectory(example EXCLUDE_FROM_ALL) add_subdirectory(test EXCLUDE_FROM_ALL)