mirror of
https://github.com/FairRootGroup/FairMQ.git
synced 2025-10-13 00:31:14 +00:00
CMake: Issue a warning if build option requirements are not met
This commit is contained in:
parent
7a0d348bd4
commit
1055f035ff
|
@ -31,17 +31,26 @@ include(CTest)
|
||||||
|
|
||||||
|
|
||||||
# Build options ################################################################
|
# Build options ################################################################
|
||||||
include(CMakeDependentOption)
|
fairmq_build_option(BUILD_FAIRMQ "Build FairMQ library and devices."
|
||||||
option(BUILD_FAIRMQ "Build FairMQ library and devices." ON)
|
DEFAULT ON)
|
||||||
cmake_dependent_option(BUILD_TESTING "Build tests." OFF "BUILD_FAIRMQ" OFF)
|
fairmq_build_option(BUILD_TESTING "Build tests."
|
||||||
cmake_dependent_option(BUILD_NANOMSG_TRANSPORT "Build nanomsg transport." OFF "BUILD_FAIRMQ" OFF)
|
DEFAULT OFF REQUIRES "BUILD_FAIRMQ")
|
||||||
cmake_dependent_option(BUILD_OFI_TRANSPORT "Build experimental OFI transport." OFF "BUILD_FAIRMQ" OFF)
|
fairmq_build_option(BUILD_NANOMSG_TRANSPORT "Build nanomsg transport."
|
||||||
cmake_dependent_option(BUILD_DDS_PLUGIN "Build DDS plugin." OFF "BUILD_FAIRMQ" OFF)
|
DEFAULT OFF REQUIRES "BUILD_FAIRMQ")
|
||||||
cmake_dependent_option(BUILD_PMIX_PLUGIN "Build PMIx plugin." OFF "BUILD_FAIRMQ" OFF)
|
fairmq_build_option(BUILD_OFI_TRANSPORT "Build experimental OFI transport."
|
||||||
cmake_dependent_option(BUILD_EXAMPLES "Build FairMQ examples." ON "BUILD_FAIRMQ" OFF)
|
DEFAULT OFF REQUIRES "BUILD_FAIRMQ")
|
||||||
option(BUILD_SDK "Build the FairMQ controller SDK." OFF)
|
fairmq_build_option(BUILD_DDS_PLUGIN "Build DDS plugin."
|
||||||
option(BUILD_DOCS "Build FairMQ documentation." OFF)
|
DEFAULT OFF REQUIRES "BUILD_FAIRMQ")
|
||||||
option(FAST_BUILD "Fast production build. Not recommended for development." OFF)
|
fairmq_build_option(BUILD_PMIX_PLUGIN "Build PMIx plugin."
|
||||||
|
DEFAULT OFF REQUIRES "BUILD_FAIRMQ")
|
||||||
|
fairmq_build_option(BUILD_EXAMPLES "Build FairMQ examples."
|
||||||
|
DEFAULT ON REQUIRES "BUILD_FAIRMQ")
|
||||||
|
fairmq_build_option(BUILD_SDK "Build the FairMQ controller SDK."
|
||||||
|
DEFAULT OFF)
|
||||||
|
fairmq_build_option(BUILD_DOCS "Build FairMQ documentation."
|
||||||
|
DEFAULT OFF)
|
||||||
|
fairmq_build_option(FAST_BUILD "Fast production build. Not recommended for development."
|
||||||
|
DEFAULT OFF)
|
||||||
################################################################################
|
################################################################################
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -480,3 +480,41 @@ function(build_bundled package bundle)
|
||||||
|
|
||||||
message(STATUS "Building bundled ${package} - done")
|
message(STATUS "Building bundled ${package} - done")
|
||||||
endfunction()
|
endfunction()
|
||||||
|
|
||||||
|
macro(fairmq_build_option option description)
|
||||||
|
cmake_parse_arguments(ARGS "" "DEFAULT;REQUIRES" "" ${ARGN})
|
||||||
|
|
||||||
|
if(ARGS_DEFAULT)
|
||||||
|
set(__default__ ON)
|
||||||
|
else()
|
||||||
|
set(__default__ OFF)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if(ARGS_REQUIRES)
|
||||||
|
include(CMakeDependentOption)
|
||||||
|
set(__requires__ ${ARGS_REQUIRES})
|
||||||
|
string(REGEX REPLACE " +" ";" __requires_condition__ "${__requires__}")
|
||||||
|
if(${__requires_condition__})
|
||||||
|
else()
|
||||||
|
if(${option})
|
||||||
|
message(WARNING "Cannot enable build option ${option}, depending options are not set: ${__requires_condition__}.")
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
else()
|
||||||
|
set(__requires__)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if(__requires__)
|
||||||
|
cmake_dependent_option(${option} ${description} ${__default__} ${__requires__} OFF)
|
||||||
|
else()
|
||||||
|
option(${option} ${description} ${__default__})
|
||||||
|
endif()
|
||||||
|
|
||||||
|
set(__default__)
|
||||||
|
set(__requires__)
|
||||||
|
set(__requires_condition__)
|
||||||
|
set(ARGS_DEFAULT)
|
||||||
|
set(ARGS_REQUIRES)
|
||||||
|
set(option)
|
||||||
|
set(description)
|
||||||
|
endmacro()
|
||||||
|
|
Loading…
Reference in New Issue
Block a user