Scope package options to avoid changing the local scope (#235)

* Fix #222

* Fix #222

* move policy change and local options to cpm_add_subdirectory

* change default policy as well

see https://gitlab.kitware.com/cmake/cmake/-/issues/20312

* add test

* update check to not use the NOT operator

(interestingly it works as expected locally)

* simplify test by not using options

* check options in tests

Co-authored-by: Lars Melchior <TheLartians@users.noreply.github.com>
This commit is contained in:
flagarde
2021-03-25 22:59:34 +08:00
committed by GitHub
parent 259f1be8e2
commit ee08119642
5 changed files with 97 additions and 19 deletions

View File

@@ -1,3 +1,14 @@
function(dependency_function)
message("called external method")
endfunction()
cmake_minimum_required(VERSION 3.0 FATAL_ERROR)
option(DEFINE_ALTERNATIVE_FUNCTION "define the alternative function" OFF)
option(LEAKED_OPTION "this option will be leaked to the outer scope" OFF)
if(NOT DEFINE_ALTERNATIVE_FUNCTION)
function(dependency_function)
message("called external method")
endfunction()
else()
function(alternative_dependency_function)
message("called alternative external method")
endfunction()
endif()