From 00f5f014c66e0c3b5f85d7a549be6a8f7da388fc Mon Sep 17 00:00:00 2001 From: Armin Novak Date: Tue, 25 Feb 2020 16:17:47 +0100 Subject: [PATCH] Fixed CMake channel dependencies for variables. --- channels/CMakeLists.txt | 20 ++++++++++++++------ cmake/ConfigOptions.cmake | 6 +++--- 2 files changed, 17 insertions(+), 9 deletions(-) diff --git a/channels/CMakeLists.txt b/channels/CMakeLists.txt index b006448c7..9ebc06246 100644 --- a/channels/CMakeLists.txt +++ b/channels/CMakeLists.txt @@ -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) diff --git a/cmake/ConfigOptions.cmake b/cmake/ConfigOptions.cmake index 23366a3d9..eafcf30f4 100644 --- a/cmake/ConfigOptions.cmake +++ b/cmake/ConfigOptions.cmake @@ -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)