mirror of
https://github.com/oxen-io/oxen-mq.git
synced 2023-12-13 21:00:31 +01:00
Don't install when building as a static subdirectory
This is making lokimq headers & static lib get installed when lokimq is used as a project subdirectory, which is very annoying. This adds an option for enabling the install lines, and only enables it if doing a shared library or a top-level project build.
This commit is contained in:
parent
253f1ee66e
commit
b1543513bb
1 changed files with 51 additions and 44 deletions
|
@ -16,9 +16,22 @@ message(STATUS "lokimq v${LOKIMQ_VERSION}")
|
||||||
set(LOKIMQ_LIBVERSION 0)
|
set(LOKIMQ_LIBVERSION 0)
|
||||||
|
|
||||||
|
|
||||||
option(BUILD_SHARED_LIBS "Build shared libraries instead of static ones" ON)
|
if(CMAKE_PROJECT_NAME STREQUAL PROJECT_NAME)
|
||||||
|
set(lokimq_IS_TOPLEVEL_PROJECT TRUE)
|
||||||
|
else()
|
||||||
|
set(lokimq_IS_TOPLEVEL_PROJECT FALSE)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
|
||||||
|
option(BUILD_SHARED_LIBS "Build shared libraries instead of static ones" ON)
|
||||||
|
set(lokimq_INSTALL_DEFAULT OFF)
|
||||||
|
if(BUILD_SHARED_LIBS OR lokimq_IS_TOPLEVEL_PROJECT)
|
||||||
|
set(lokimq_INSTALL_DEFAULT ON)
|
||||||
|
endif()
|
||||||
|
option(LOKIMQ_BUILD_TESTS "Building and perform lokimq tests" ${lokimq_IS_TOPLEVEL_PROJECT})
|
||||||
|
option(LOKIMQ_INSTALL "Add lokimq libraries and headers to cmake install target; defaults to ON if BUILD_SHARED_LIBS is enabled or we are the top-level project; OFF for a static subdirectory build" ${lokimq_INSTALL_DEFAULT})
|
||||||
|
option(LOKIMQ_INSTALL_CPPZMQ "Install cppzmq header with lokimq/ headers (requires LOKIMQ_INSTALL)" ON)
|
||||||
|
|
||||||
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake")
|
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake")
|
||||||
|
|
||||||
configure_file(lokimq/version.h.in lokimq/version.h @ONLY)
|
configure_file(lokimq/version.h.in lokimq/version.h @ONLY)
|
||||||
|
@ -95,7 +108,6 @@ set_target_properties(lokimq PROPERTIES
|
||||||
function(link_dep_libs target linktype libdirs)
|
function(link_dep_libs target linktype libdirs)
|
||||||
foreach(lib ${ARGN})
|
foreach(lib ${ARGN})
|
||||||
find_library(link_lib-${lib} NAMES ${lib} PATHS ${libdirs})
|
find_library(link_lib-${lib} NAMES ${lib} PATHS ${libdirs})
|
||||||
message(STATUS "FIND ${lib} FOUND ${link_lib-${lib}}")
|
|
||||||
if(link_lib-${lib})
|
if(link_lib-${lib})
|
||||||
target_link_libraries(${target} ${linktype} ${link_lib-${lib}})
|
target_link_libraries(${target} ${linktype} ${link_lib-${lib}})
|
||||||
endif()
|
endif()
|
||||||
|
@ -110,6 +122,7 @@ if(TARGET sodium)
|
||||||
target_link_libraries(libzmq_vendor INTERFACE sodium)
|
target_link_libraries(libzmq_vendor INTERFACE sodium)
|
||||||
endif()
|
endif()
|
||||||
else()
|
else()
|
||||||
|
include(FindPkgConfig)
|
||||||
pkg_check_modules(sodium REQUIRED libsodium IMPORTED_TARGET)
|
pkg_check_modules(sodium REQUIRED libsodium IMPORTED_TARGET)
|
||||||
|
|
||||||
if(BUILD_SHARED_LIBS)
|
if(BUILD_SHARED_LIBS)
|
||||||
|
@ -134,6 +147,8 @@ export(
|
||||||
NAMESPACE lokimq::
|
NAMESPACE lokimq::
|
||||||
FILE lokimqTargets.cmake
|
FILE lokimqTargets.cmake
|
||||||
)
|
)
|
||||||
|
|
||||||
|
if(LOKIMQ_INSTALL)
|
||||||
install(
|
install(
|
||||||
TARGETS lokimq
|
TARGETS lokimq
|
||||||
EXPORT lokimqConfig
|
EXPORT lokimqConfig
|
||||||
|
@ -158,7 +173,6 @@ install(
|
||||||
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/lokimq
|
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/lokimq
|
||||||
)
|
)
|
||||||
|
|
||||||
option(LOKIMQ_INSTALL_CPPZMQ "Install cppzmq header with lokimq/ headers" ON)
|
|
||||||
if(LOKIMQ_INSTALL_CPPZMQ)
|
if(LOKIMQ_INSTALL_CPPZMQ)
|
||||||
install(
|
install(
|
||||||
FILES cppzmq/zmq.hpp
|
FILES cppzmq/zmq.hpp
|
||||||
|
@ -171,15 +185,8 @@ install(
|
||||||
FILES ${CMAKE_CURRENT_BINARY_DIR}/liblokimq.pc
|
FILES ${CMAKE_CURRENT_BINARY_DIR}/liblokimq.pc
|
||||||
DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig
|
DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig
|
||||||
)
|
)
|
||||||
|
|
||||||
if(CMAKE_PROJECT_NAME STREQUAL PROJECT_NAME)
|
|
||||||
set(lokimq_IS_TOPLEVEL_PROJECT TRUE)
|
|
||||||
else()
|
|
||||||
set(lokimq_IS_TOPLEVEL_PROJECT FALSE)
|
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
option(LOKIMQ_BUILD_TESTS "Building and perform lokimq tests" ${lokimq_IS_TOPLEVEL_PROJECT})
|
|
||||||
if(LOKIMQ_BUILD_TESTS)
|
if(LOKIMQ_BUILD_TESTS)
|
||||||
add_subdirectory(tests)
|
add_subdirectory(tests)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue