From cc7b68a365fe8afae781937f781fe90d69f4ebdc Mon Sep 17 00:00:00 2001 From: Ben Clayton Date: Mon, 2 Dec 2019 13:43:14 +0000 Subject: [PATCH] CMakeLists.txt: Make it easier to control options from dependee projects. --- CMakeLists.txt | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index b8eda57..ac15424 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -22,14 +22,20 @@ project(cppdap C CXX) ########################################################### # Options ########################################################### -option(CPPDAP_WARNINGS_AS_ERRORS "Treat warnings as errors" OFF) -option(CPPDAP_BUILD_EXAMPLES "Build example applications" OFF) -option(CPPDAP_BUILD_TESTS "Build tests" OFF) -option(CPPDAP_ASAN "Build dap with address sanitizer" OFF) -option(CPPDAP_MSAN "Build dap with memory sanitizer" OFF) -option(CPPDAP_TSAN "Build dap with thread sanitizer" OFF) -option(CPPDAP_INSTALL_VSCODE_EXAMPLES "Build and install dap examples into vscode extensions directory" OFF) -option(CPPDAP_INSTALL "Create dap install target" OFF) +function (option_if_not_defined name description default) + if(NOT DEFINED ${name}) + option(${name} ${description} ${default}) + endif() +endfunction() + +option_if_not_defined(CPPDAP_WARNINGS_AS_ERRORS "Treat warnings as errors" OFF) +option_if_not_defined(CPPDAP_BUILD_EXAMPLES "Build example applications" OFF) +option_if_not_defined(CPPDAP_BUILD_TESTS "Build tests" OFF) +option_if_not_defined(CPPDAP_ASAN "Build dap with address sanitizer" OFF) +option_if_not_defined(CPPDAP_MSAN "Build dap with memory sanitizer" OFF) +option_if_not_defined(CPPDAP_TSAN "Build dap with thread sanitizer" OFF) +option_if_not_defined(CPPDAP_INSTALL_VSCODE_EXAMPLES "Build and install dap examples into vscode extensions directory" OFF) +option_if_not_defined(CPPDAP_INSTALL "Create dap install target" OFF) ########################################################### # Directories