Merge pull request #5907 from akallabeth/cmake_channel_dependency_fix
Cmake channel dependency fix
This commit is contained in:
commit
f484b20787
@ -710,15 +710,15 @@ set(ALSA_FEATURE_TYPE "RECOMMENDED")
|
||||
set(ALSA_FEATURE_PURPOSE "sound")
|
||||
set(ALSA_FEATURE_DESCRIPTION "audio input, audio output and multimedia redirection")
|
||||
|
||||
set(PULSE_FEATURE_TYPE "OPTIONAL")
|
||||
set(PULSE_FEATURE_TYPE "RECOMMENDED")
|
||||
set(PULSE_FEATURE_PURPOSE "sound")
|
||||
set(PULSE_FEATURE_DESCRIPTION "audio input, audio output and multimedia redirection")
|
||||
|
||||
set(CUPS_FEATURE_TYPE "OPTIONAL")
|
||||
set(CUPS_FEATURE_TYPE "RECOMMENDED")
|
||||
set(CUPS_FEATURE_PURPOSE "printing")
|
||||
set(CUPS_FEATURE_DESCRIPTION "printer device redirection")
|
||||
|
||||
set(PCSC_FEATURE_TYPE "OPTIONAL")
|
||||
set(PCSC_FEATURE_TYPE "RECOMMENDED")
|
||||
set(PCSC_FEATURE_PURPOSE "smart card")
|
||||
set(PCSC_FEATURE_DESCRIPTION "smart card device redirection")
|
||||
|
||||
|
@ -32,7 +32,8 @@ macro(define_channel_options)
|
||||
string(TOUPPER "CHANNEL_${CHANNEL_NAME}" CHANNEL_OPTION)
|
||||
string(TOUPPER "CHANNEL_${CHANNEL_NAME}_CLIENT" CHANNEL_CLIENT_OPTION)
|
||||
string(TOUPPER "CHANNEL_${CHANNEL_NAME}_SERVER" CHANNEL_SERVER_OPTION)
|
||||
|
||||
string(TOUPPER "${CHANNEL_TYPE}" CHANNEL_TYPE)
|
||||
|
||||
if(${${CHANNEL_CLIENT_OPTION}})
|
||||
set(OPTION_CLIENT_DEFAULT ${${CHANNEL_CLIENT_OPTION}})
|
||||
endif()
|
||||
@ -52,23 +53,30 @@ macro(define_channel_options)
|
||||
set(CHANNEL_DEFAULT ${OPTION_DEFAULT})
|
||||
|
||||
set(CHANNEL_OPTION_DOC "Build ${CHANNEL_NAME} ${CHANNEL_TYPE} channel")
|
||||
option(${CHANNEL_OPTION} "${CHANNEL_OPTION_DOC}" ${CHANNEL_DEFAULT})
|
||||
|
||||
if ("${CHANNEL_TYPE}" STREQUAL "DYNAMIC")
|
||||
CMAKE_DEPENDENT_OPTION(${CHANNEL_OPTION} "${CHANNEL_OPTION_DOC}" ${CHANNEL_DEFAULT} "CHANNEL_DRDYNVC" OFF)
|
||||
else()
|
||||
option(${CHANNEL_OPTION} "${CHANNEL_OPTION_DOC}" ${CHANNEL_DEFAULT})
|
||||
endif()
|
||||
|
||||
endmacro(define_channel_options)
|
||||
|
||||
macro(define_channel_client_options _channel_client_default)
|
||||
string(TOUPPER "CHANNEL_${CHANNEL_NAME}_CLIENT" CHANNEL_CLIENT_OPTION)
|
||||
string(TOUPPER "CHANNEL_${CHANNEL_NAME}" CHANNEL_OPTION)
|
||||
set(CHANNEL_CLIENT_OPTION_DOC "Build ${CHANNEL_NAME} ${CHANNEL_TYPE} channel client")
|
||||
option(${CHANNEL_CLIENT_OPTION} "${CHANNEL_CLIENT_OPTION_DOC}" ${_channel_client_default})
|
||||
cmake_dependent_option(${CHANNEL_CLIENT_OPTION} "${CHANNEL_CLIENT_OPTION_DOC}"
|
||||
|
||||
CMAKE_DEPENDENT_OPTION(${CHANNEL_CLIENT_OPTION} "${CHANNEL_CLIENT_OPTION_DOC}"
|
||||
${_channel_client_default} "${CHANNEL_OPTION}" OFF)
|
||||
endmacro(define_channel_client_options)
|
||||
|
||||
macro(define_channel_server_options _channel_server_default)
|
||||
string(TOUPPER "CHANNEL_${CHANNEL_NAME}_SERVER" CHANNEL_SERVER_OPTION)
|
||||
string(TOUPPER "CHANNEL_${CHANNEL_NAME}" CHANNEL_OPTION)
|
||||
set(CHANNEL_SERVER_OPTION_DOC "Build ${CHANNEL_NAME} ${CHANNEL_TYPE} channel server")
|
||||
option(${CHANNEL_SERVER_OPTION} "${CHANNEL_SERVER_OPTION_DOC}" ${_channel_server_default})
|
||||
cmake_dependent_option(${CHANNEL_SERVER_OPTION} "${CHANNEL_SERVER_OPTION_DOC}"
|
||||
|
||||
CMAKE_DEPENDENT_OPTION(${CHANNEL_SERVER_OPTION} "${CHANNEL_SERVER_OPTION_DOC}"
|
||||
${_channel_server_default} "${CHANNEL_OPTION}" OFF)
|
||||
endmacro(define_channel_server_options)
|
||||
|
||||
@ -287,6 +295,17 @@ endmacro(add_channel_server_library)
|
||||
set(FILENAME "ChannelOptions.cmake")
|
||||
file(GLOB FILEPATHS RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "*/${FILENAME}")
|
||||
|
||||
# We need special treatement for drdynvc:
|
||||
# It needs to be the first entry so that every
|
||||
# dynamic channel has the dependent options available.
|
||||
list(FIND FILEPATHS "drdynvc/${FILENAME}" DRDYNVC_LIST_INDEX)
|
||||
if ("${DRDYNVC_LIST_INDEX}" GREATER "-1")
|
||||
list(GET FILEPATHS ${DRDYNVC_LIST_INDEX} DRDYNVC_LIST_VALUE)
|
||||
list(REMOVE_AT FILEPATHS ${DRDYNVC_LIST_INDEX})
|
||||
list(APPEND FILEPATHS ${DRDYNVC_LIST_VALUE})
|
||||
list(REVERSE FILEPATHS) # list PREPEND is not available on old CMake3
|
||||
endif()
|
||||
|
||||
foreach(FILEPATH ${FILEPATHS})
|
||||
if(${FILEPATH} MATCHES "^([^/]*)/+${FILENAME}")
|
||||
string(REGEX REPLACE "^([^/]*)/+${FILENAME}" "\\1" DIR ${FILEPATH})
|
||||
|
@ -1,7 +1,13 @@
|
||||
|
||||
set(OPTION_DEFAULT OFF)
|
||||
set(OPTION_CLIENT_DEFAULT OFF)
|
||||
set(OPTION_SERVER_DEFAULT OFF)
|
||||
if (IOS OR ANDROID)
|
||||
set(OPTION_DEFAULT OFF)
|
||||
set(OPTION_CLIENT_DEFAULT OFF)
|
||||
set(OPTION_SERVER_DEFAULT OFF)
|
||||
else()
|
||||
set(OPTION_DEFAULT ON)
|
||||
set(OPTION_CLIENT_DEFAULT ON)
|
||||
set(OPTION_SERVER_DEFAULT OFF)
|
||||
endif()
|
||||
|
||||
define_channel_options(NAME "urbdrc" TYPE "dynamic"
|
||||
DESCRIPTION "USB Devices Virtual Channel Extension"
|
||||
|
@ -2,6 +2,7 @@ message("PRELOADING mac cache")
|
||||
set (WITH_MANPAGES OFF CACHE BOOL "man pages")
|
||||
set (CMAKE_BUILD_TYPE "Debug" CACHE STRING "build type")
|
||||
set (WITH_CUPS ON CACHE BOOL "CUPS printing")
|
||||
set (CHANNEL_URBDRC OFF CACHE BOOL "USB redirection")
|
||||
set (WITH_X11 ON CACHE BOOL "Enable X11")
|
||||
set (BUILD_TESTING ON CACHE BOOL "build testing")
|
||||
set (WITH_SANITIZE_ADDRESS ON)
|
||||
|
@ -1,5 +1,6 @@
|
||||
message("PRELOADING windows cache")
|
||||
set (CMAKE_BUILD_TYPE "Debug" CACHE STRING "build type")
|
||||
set (WITH_SERVER "ON" CACHE BOOL "Build server binaries")
|
||||
set (CHANNEL_URBDRC OFF CACHE BOOL "USB redirection")
|
||||
set (BUILD_TESTING ON CACHE BOOL "build testing")
|
||||
set (WITH_SANITIZE_ADDRESS ON)
|
||||
|
@ -71,7 +71,7 @@ CMAKE_DEPENDENT_OPTION(BUILD_COMM_TESTS "Build comm related tests (require comm
|
||||
option(WITH_SAMPLE "Build sample code" OFF)
|
||||
|
||||
option(WITH_CLIENT_COMMON "Build client common library" ON)
|
||||
cmake_dependent_option(WITH_CLIENT "Build client binaries" ON "WITH_CLIENT_COMMON" OFF)
|
||||
CMAKE_DEPENDENT_OPTION(WITH_CLIENT "Build client binaries" ON "WITH_CLIENT_COMMON" OFF)
|
||||
|
||||
option(WITH_SERVER "Build server binaries" OFF)
|
||||
|
||||
@ -81,10 +81,10 @@ option(WITH_CHANNELS "Build virtual channel plugins" ON)
|
||||
|
||||
option(WITH_WINPR_TOOLS "Build WinPR helper binaries" ON)
|
||||
|
||||
cmake_dependent_option(WITH_CLIENT_CHANNELS "Build virtual channel plugins" ON
|
||||
CMAKE_DEPENDENT_OPTION(WITH_CLIENT_CHANNELS "Build virtual channel plugins" ON
|
||||
"WITH_CLIENT_COMMON;WITH_CHANNELS" OFF)
|
||||
|
||||
cmake_dependent_option(WITH_MACAUDIO "Enable OSX sound backend" ON "APPLE;NOT IOS" OFF)
|
||||
CMAKE_DEPENDENT_OPTION(WITH_MACAUDIO "Enable OSX sound backend" ON "APPLE;NOT IOS" OFF)
|
||||
|
||||
if(WITH_SERVER AND WITH_CHANNELS)
|
||||
option(WITH_SERVER_CHANNELS "Build virtual channel plugins" ON)
|
||||
|
Loading…
Reference in New Issue
Block a user