From b15f4e9b86bc3dc31b6a01c0ffc30747f467ec1f Mon Sep 17 00:00:00 2001 From: Chuck Atkins Date: Mon, 24 Aug 2015 22:56:31 -0400 Subject: try_compile: Propogate CMP0065 to the generated project. Set policy CMP0065 to the value used in the calling project. Set the the value of CMAKE_ENABLE_EXPORTS if set in the calling project to initialize the target property appropriately. --- Help/command/try_compile.rst | 3 +++ Source/cmCoreTryCompile.cxx | 10 ++++++++++ 2 files changed, 13 insertions(+) diff --git a/Help/command/try_compile.rst b/Help/command/try_compile.rst index 1ed24df..28dae80 100644 --- a/Help/command/try_compile.rst +++ b/Help/command/try_compile.rst @@ -100,6 +100,7 @@ If set, the following variables are passed in to the generated try_compile CMakeLists.txt to initialize compile target properties with default values: +* :variable:`CMAKE_ENABLE_EXPORTS` * :variable:`CMAKE_LINK_SEARCH_START_STATIC` * :variable:`CMAKE_LINK_SEARCH_END_STATIC` * :variable:`CMAKE_POSITION_INDEPENDENT_CODE` @@ -107,5 +108,7 @@ default values: If :policy:`CMP0056` is set to ``NEW``, then :variable:`CMAKE_EXE_LINKER_FLAGS` is passed in as well. +The current setting of :policy:`CMP0065` is set in the generated project. + Set the :variable:`CMAKE_TRY_COMPILE_CONFIGURATION` variable to choose a build configuration. diff --git a/Source/cmCoreTryCompile.cxx b/Source/cmCoreTryCompile.cxx index 9411555..e489ad2 100644 --- a/Source/cmCoreTryCompile.cxx +++ b/Source/cmCoreTryCompile.cxx @@ -481,6 +481,16 @@ int cmCoreTryCompile::TryCompileCode(std::vector const& argv) fprintf(fout, "set(CMAKE_LINK_SEARCH_END_STATIC \"%s\")\n", lssDef); } + /* Set the appropriate policy information for ENABLE_EXPORTS */ + fprintf(fout, "cmake_policy(SET CMP0065 %s)\n", + this->Makefile->GetPolicyStatus(cmPolicies::CMP0065) == + cmPolicies::NEW ? "NEW" : "OLD"); + if(const char *ee = this->Makefile->GetDefinition( + "CMAKE_ENABLE_EXPORTS")) + { + fprintf(fout, "set(CMAKE_ENABLE_EXPORTS %s)\n", ee); + } + /* Put the executable at a known location (for COPY_FILE). */ fprintf(fout, "set(CMAKE_RUNTIME_OUTPUT_DIRECTORY \"%s\")\n", this->BinaryDirectory.c_str()); -- cgit v0.12