From fb77c2c54bc341e76a83f646e6d75662c44179fc Mon Sep 17 00:00:00 2001 From: Chuck Atkins Date: Fri, 14 Aug 2015 11:48:01 -0400 Subject: try_compile: Propogate the CMAKE_LINK_SEARCH_ variables --- Help/command/try_compile.rst | 7 +++++++ Help/variable/CMAKE_LINK_SEARCH_END_STATIC.rst | 5 +++-- Help/variable/CMAKE_LINK_SEARCH_START_STATIC.rst | 5 +++-- Source/cmCoreTryCompile.cxx | 10 ++++++++++ 4 files changed, 23 insertions(+), 4 deletions(-) diff --git a/Help/command/try_compile.rst b/Help/command/try_compile.rst index 9a70885..23c26ad 100644 --- a/Help/command/try_compile.rst +++ b/Help/command/try_compile.rst @@ -96,5 +96,12 @@ the try_compile call of interest, and then re-run cmake again with Other Behavior Settings ^^^^^^^^^^^^^^^^^^^^^^^ +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_LINK_SEARCH_START_STATIC` +* :variable:`CMAKE_LINK_SEARCH_END_STATIC` + Set the :variable:`CMAKE_TRY_COMPILE_CONFIGURATION` variable to choose a build configuration. diff --git a/Help/variable/CMAKE_LINK_SEARCH_END_STATIC.rst b/Help/variable/CMAKE_LINK_SEARCH_END_STATIC.rst index 8a9951d..673f5d8 100644 --- a/Help/variable/CMAKE_LINK_SEARCH_END_STATIC.rst +++ b/Help/variable/CMAKE_LINK_SEARCH_END_STATIC.rst @@ -13,6 +13,7 @@ back to its starting type. This property switches the final linker search type to -Bstatic regardless of how it started. This variable is used to initialize the target property -LINK_SEARCH_END_STATIC for all targets. +:prop_tgt:`LINK_SEARCH_END_STATIC` for all targets. If set, it's +value is also used by the :command:`try_compile` command. -See also CMAKE_LINK_SEARCH_START_STATIC. +See also :variable:`CMAKE_LINK_SEARCH_START_STATIC`. diff --git a/Help/variable/CMAKE_LINK_SEARCH_START_STATIC.rst b/Help/variable/CMAKE_LINK_SEARCH_START_STATIC.rst index 715db4b..223702c 100644 --- a/Help/variable/CMAKE_LINK_SEARCH_START_STATIC.rst +++ b/Help/variable/CMAKE_LINK_SEARCH_START_STATIC.rst @@ -14,6 +14,7 @@ when linking an executable statically (e.g. with the GNU -static option). This variable is used to initialize the target property -LINK_SEARCH_START_STATIC for all targets. +:prop_tgt:`LINK_SEARCH_START_STATIC` for all targets. If set, it's +value is also used by the :command:`try_compile` command. -See also CMAKE_LINK_SEARCH_END_STATIC. +See also :variable:`CMAKE_LINK_SEARCH_END_STATIC`. diff --git a/Source/cmCoreTryCompile.cxx b/Source/cmCoreTryCompile.cxx index ffb349e..9411555 100644 --- a/Source/cmCoreTryCompile.cxx +++ b/Source/cmCoreTryCompile.cxx @@ -470,6 +470,16 @@ int cmCoreTryCompile::TryCompileCode(std::vector const& argv) { fprintf(fout, "set(CMAKE_POSITION_INDEPENDENT_CODE \"ON\")\n"); } + if (const char *lssDef = this->Makefile->GetDefinition( + "CMAKE_LINK_SEARCH_START_STATIC")) + { + fprintf(fout, "set(CMAKE_LINK_SEARCH_START_STATIC \"%s\")\n", lssDef); + } + if (const char *lssDef = this->Makefile->GetDefinition( + "CMAKE_LINK_SEARCH_END_STATIC")) + { + fprintf(fout, "set(CMAKE_LINK_SEARCH_END_STATIC \"%s\")\n", lssDef); + } /* Put the executable at a known location (for COPY_FILE). */ fprintf(fout, "set(CMAKE_RUNTIME_OUTPUT_DIRECTORY \"%s\")\n", -- cgit v0.12