[Cmake-commits] CMake branch, next, updated. v3.3.0-2143-g1dac5ab

Chuck Atkins chuck.atkins at kitware.com
Tue Aug 11 09:46:24 EDT 2015


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "CMake".

The branch, next has been updated
       via  1dac5ab737d1286f1e023fad3c0b26d2d57566a3 (commit)
       via  279714548e5cc50e515c0c9c09c17d9ec45420b1 (commit)
      from  b0190e6d2273999a93481ff0a03f38e94c05c6e2 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=1dac5ab737d1286f1e023fad3c0b26d2d57566a3
commit 1dac5ab737d1286f1e023fad3c0b26d2d57566a3
Merge: b0190e6 2797145
Author:     Chuck Atkins <chuck.atkins at kitware.com>
AuthorDate: Tue Aug 11 09:46:23 2015 -0400
Commit:     CMake Topic Stage <kwrobot at kitware.com>
CommitDate: Tue Aug 11 09:46:23 2015 -0400

    Merge topic 'add-link-search-static-properties-defaults' into next
    
    27971454 Allow LINK_SEARCH_{START,END}_STATIC props to have default values.


http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=279714548e5cc50e515c0c9c09c17d9ec45420b1
commit 279714548e5cc50e515c0c9c09c17d9ec45420b1
Author:     Chuck Atkins <chuck.atkins at kitware.com>
AuthorDate: Fri Aug 7 15:11:57 2015 -0400
Commit:     Chuck Atkins <chuck.atkins at kitware.com>
CommitDate: Tue Aug 11 09:39:36 2015 -0400

    Allow LINK_SEARCH_{START,END}_STATIC props to have default values.
    
    Use the CMAKE_LINK_SEARCH_START_STATIC and CMAKE_LINK_SEARCH_END_STATIC
    variables to initialize the LINK_SEARCH_START_STATIC and
    LINK_SEARCH_END_STATIC target properties respectively.

diff --git a/Help/prop_tgt/LINK_SEARCH_END_STATIC.rst b/Help/prop_tgt/LINK_SEARCH_END_STATIC.rst
index fe105bd..cf9c871 100644
--- a/Help/prop_tgt/LINK_SEARCH_END_STATIC.rst
+++ b/Help/prop_tgt/LINK_SEARCH_END_STATIC.rst
@@ -10,5 +10,9 @@ paths are not known or (in some cases) are in implicit link
 directories for the platform.  By default CMake adds an option at the
 end of the library list (if necessary) to set the linker search type
 back to its starting type.  This property switches the final linker
-search type to -Bstatic regardless of how it started.  See also
-LINK_SEARCH_START_STATIC.
+search type to -Bstatic regardless of how it started.
+
+This property is initialized by the value of the variable
+CMAKE_LINK_SEARCH_END_STATIC if it is set when a target is created.
+
+See also LINK_SEARCH_START_STATIC.
diff --git a/Help/prop_tgt/LINK_SEARCH_START_STATIC.rst b/Help/prop_tgt/LINK_SEARCH_START_STATIC.rst
index ca899fe..2e0f9bd 100644
--- a/Help/prop_tgt/LINK_SEARCH_START_STATIC.rst
+++ b/Help/prop_tgt/LINK_SEARCH_START_STATIC.rst
@@ -11,4 +11,9 @@ directories for the platform.  By default the linker search type is
 assumed to be -Bdynamic at the beginning of the library list.  This
 property switches the assumption to -Bstatic.  It is intended for use
 when linking an executable statically (e.g.  with the GNU -static
-option).  See also LINK_SEARCH_END_STATIC.
+option).
+
+This property is initialized by the value of the variable
+CMAKE_LINK_SEARCH_START_STATIC if it is set when a target is created.
+
+See also LINK_SEARCH_END_STATIC.
diff --git a/Help/prop_tgt/LINK_SEARCH_END_STATIC.rst b/Help/variable/CMAKE_LINK_SEARCH_END_STATIC.rst
similarity index 68%
copy from Help/prop_tgt/LINK_SEARCH_END_STATIC.rst
copy to Help/variable/CMAKE_LINK_SEARCH_END_STATIC.rst
index fe105bd..8a9951d 100644
--- a/Help/prop_tgt/LINK_SEARCH_END_STATIC.rst
+++ b/Help/variable/CMAKE_LINK_SEARCH_END_STATIC.rst
@@ -1,5 +1,5 @@
-LINK_SEARCH_END_STATIC
-----------------------
+CMAKE_LINK_SEARCH_END_STATIC
+----------------------------
 
 End a link line such that static system libraries are used.
 
@@ -10,5 +10,9 @@ paths are not known or (in some cases) are in implicit link
 directories for the platform.  By default CMake adds an option at the
 end of the library list (if necessary) to set the linker search type
 back to its starting type.  This property switches the final linker
-search type to -Bstatic regardless of how it started.  See also
-LINK_SEARCH_START_STATIC.
+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.
+
+See also CMAKE_LINK_SEARCH_START_STATIC.
diff --git a/Help/prop_tgt/LINK_SEARCH_START_STATIC.rst b/Help/variable/CMAKE_LINK_SEARCH_START_STATIC.rst
similarity index 73%
copy from Help/prop_tgt/LINK_SEARCH_START_STATIC.rst
copy to Help/variable/CMAKE_LINK_SEARCH_START_STATIC.rst
index ca899fe..715db4b 100644
--- a/Help/prop_tgt/LINK_SEARCH_START_STATIC.rst
+++ b/Help/variable/CMAKE_LINK_SEARCH_START_STATIC.rst
@@ -1,5 +1,5 @@
-LINK_SEARCH_START_STATIC
-------------------------
+CMAKE_LINK_SEARCH_START_STATIC
+------------------------------
 
 Assume the linker looks for static libraries by default.
 
@@ -11,4 +11,9 @@ directories for the platform.  By default the linker search type is
 assumed to be -Bdynamic at the beginning of the library list.  This
 property switches the assumption to -Bstatic.  It is intended for use
 when linking an executable statically (e.g.  with the GNU -static
-option).  See also LINK_SEARCH_END_STATIC.
+option).
+
+This variable is used to initialize the target property
+LINK_SEARCH_START_STATIC for all targets.
+
+See also CMAKE_LINK_SEARCH_END_STATIC.
diff --git a/Source/cmComputeLinkInformation.cxx b/Source/cmComputeLinkInformation.cxx
index c16472e..12dddd2 100644
--- a/Source/cmComputeLinkInformation.cxx
+++ b/Source/cmComputeLinkInformation.cxx
@@ -522,9 +522,10 @@ bool cmComputeLinkInformation::Compute()
   // libraries are found.
   const char* lss =
       this->Target->Target->GetProperty("LINK_SEARCH_END_STATIC");
-  if(cmSystemTools::IsOn(lss))
+  if(lss)
     {
-    this->SetCurrentLinkType(LinkStatic);
+    this->SetCurrentLinkType(
+      cmSystemTools::IsOn(lss) ? LinkStatic : LinkShared);
     }
   else
     {
@@ -862,7 +863,8 @@ void cmComputeLinkInformation::ComputeLinkTypeInfo()
   const char* lss =
       this->Target->Target->GetProperty("LINK_SEARCH_START_STATIC");
   this->StartLinkType = cmSystemTools::IsOn(lss)? LinkStatic : LinkShared;
-  this->CurrentLinkType = this->StartLinkType;
+  this->CurrentLinkType = LinkUnknown;
+  this->SetCurrentLinkType(this->StartLinkType);
 }
 
 //----------------------------------------------------------------------------
diff --git a/Source/cmTarget.cxx b/Source/cmTarget.cxx
index d3170e4..2e765ac 100644
--- a/Source/cmTarget.cxx
+++ b/Source/cmTarget.cxx
@@ -306,6 +306,8 @@ void cmTarget::SetMakefile(cmMakefile* mf)
     this->SetPropertyDefault("CXX_STANDARD", 0);
     this->SetPropertyDefault("CXX_STANDARD_REQUIRED", 0);
     this->SetPropertyDefault("CXX_EXTENSIONS", 0);
+    this->SetPropertyDefault("LINK_SEARCH_START_STATIC", 0);
+    this->SetPropertyDefault("LINK_SEARCH_END_STATIC", 0);
     }
 
   // Collect the set of configuration types.
diff --git a/Tests/RunCMake/set_property/LINK_SEARCH_STATIC.cmake b/Tests/RunCMake/set_property/LINK_SEARCH_STATIC.cmake
new file mode 100644
index 0000000..70d2fee
--- /dev/null
+++ b/Tests/RunCMake/set_property/LINK_SEARCH_STATIC.cmake
@@ -0,0 +1,73 @@
+project(LinkSearchStatic)
+
+set(CMAKE_LINK_SEARCH_START_STATIC ON)
+add_executable(LinkSearchStartStaticInit1 LinkStatic.c)
+get_target_property(LSSS LinkSearchStartStaticInit1
+  LINK_SEARCH_START_STATIC)
+if(NOT LSSS)
+  message(FATAL_ERROR "Failed to correctly initialize LINK_SEARCH_START_STATIC")
+endif()
+unset(CMAKE_LINK_SEARCH_START_STATIC)
+
+add_executable(LinkSearchStartStaticSet1 LinkStatic.c)
+set_target_properties(LinkSearchStartStaticSet1 PROPERTIES
+  LINK_SEARCH_START_STATIC ON)
+get_target_property(LSSS LinkSearchStartStaticSet1
+  LINK_SEARCH_START_STATIC)
+if(NOT LSSS)
+  message(FATAL_ERROR "Failed to correctly set LINK_SEARCH_START_STATIC")
+endif()
+
+set(CMAKE_LINK_SEARCH_START_STATIC OFF)
+add_executable(LinkSearchStartStaticInit2 LinkStatic.c)
+get_target_property(LSSS LinkSearchStartStaticInit2
+  LINK_SEARCH_START_STATIC)
+if(LSSS)
+  message(FATAL_ERROR "Failed to correctly initialize LINK_SEARCH_START_STATIC")
+endif()
+unset(CMAKE_LINK_SEARCH_START_STATIC)
+
+add_executable(LinkSearchStartStaticSet2 LinkStatic.c)
+set_target_properties(LinkSearchStartStaticSet2 PROPERTIES
+  LINK_SEARCH_START_STATIC OFF)
+get_target_property(LSSS LinkSearchStartStaticSet2
+  LINK_SEARCH_START_STATIC)
+if(LSSS)
+  message(FATAL_ERROR "Failed to correctly set LINK_SEARCH_START_STATIC")
+endif()
+
+set(CMAKE_LINK_SEARCH_END_STATIC ON)
+add_executable(LinkSearchEndStaticInit1 LinkStatic.c)
+get_target_property(LSES LinkSearchEndStaticInit1
+  LINK_SEARCH_END_STATIC)
+if(NOT LSES)
+  message(FATAL_ERROR "Failed to correctly initialize LINK_SEARCH_END_STATIC")
+endif()
+unset(CMAKE_LINK_SEARCH_END_STATIC)
+
+add_executable(LinkSearchEndStaticSet1 LinkStatic.c)
+set_target_properties(LinkSearchEndStaticSet1 PROPERTIES
+  LINK_SEARCH_END_STATIC ON)
+get_target_property(LSSS LinkSearchEndStaticSet1
+  LINK_SEARCH_END_STATIC)
+if(NOT LSSS)
+  message(FATAL_ERROR "Failed to correctly set LINK_SEARCH_END_STATIC")
+endif()
+
+set(CMAKE_LINK_SEARCH_END_STATIC OFF)
+add_executable(LinkSearchEndStaticInit2 LinkStatic.c)
+get_target_property(LSES LinkSearchEndStaticInit2
+  LINK_SEARCH_END_STATIC)
+if(LSES)
+  message(FATAL_ERROR "Failed to correctly initialize LINK_SEARCH_END_STATIC")
+endif()
+unset(CMAKE_LINK_SEARCH_END_STATIC)
+
+add_executable(LinkSearchEndStaticSet2 LinkStatic.c)
+set_target_properties(LinkSearchEndStaticSet2 PROPERTIES
+  LINK_SEARCH_END_STATIC ON)
+get_target_property(LSSS LinkSearchEndStaticSet2
+  LINK_SEARCH_END_STATIC)
+if(NOT LSSS)
+  message(FATAL_ERROR "Failed to correctly set LINK_SEARCH_END_STATIC")
+endif()
diff --git a/Tests/RunCMake/set_property/LinkStatic.c b/Tests/RunCMake/set_property/LinkStatic.c
new file mode 100644
index 0000000..3600977
--- /dev/null
+++ b/Tests/RunCMake/set_property/LinkStatic.c
@@ -0,0 +1,5 @@
+#include <math.h>
+int main(void)
+{
+  return (int)sin(0);
+}
diff --git a/Tests/RunCMake/set_property/RunCMakeTest.cmake b/Tests/RunCMake/set_property/RunCMakeTest.cmake
index 54e63f7..ada8804 100644
--- a/Tests/RunCMake/set_property/RunCMakeTest.cmake
+++ b/Tests/RunCMake/set_property/RunCMakeTest.cmake
@@ -1,3 +1,4 @@
 include(RunCMake)
 
 run_cmake(LINK_LIBRARIES)
+run_cmake(LINK_SEARCH_STATIC)

-----------------------------------------------------------------------

Summary of changes:
 Help/prop_tgt/LINK_SEARCH_END_STATIC.rst           |    8 ++-
 Help/prop_tgt/LINK_SEARCH_START_STATIC.rst         |    7 +-
 .../CMAKE_LINK_SEARCH_END_STATIC.rst}              |   12 ++--
 .../CMAKE_LINK_SEARCH_START_STATIC.rst}            |   11 ++-
 Source/cmComputeLinkInformation.cxx                |    8 ++-
 Source/cmTarget.cxx                                |    2 +
 .../RunCMake/set_property/LINK_SEARCH_STATIC.cmake |   73 ++++++++++++++++++++
 .../set_property}/LinkStatic.c                     |    0
 Tests/RunCMake/set_property/RunCMakeTest.cmake     |    1 +
 9 files changed, 109 insertions(+), 13 deletions(-)
 copy Help/{prop_tgt/LINK_SEARCH_END_STATIC.rst => variable/CMAKE_LINK_SEARCH_END_STATIC.rst} (68%)
 copy Help/{prop_tgt/LINK_SEARCH_START_STATIC.rst => variable/CMAKE_LINK_SEARCH_START_STATIC.rst} (73%)
 create mode 100644 Tests/RunCMake/set_property/LINK_SEARCH_STATIC.cmake
 copy Tests/{LinkStatic => RunCMake/set_property}/LinkStatic.c (100%)


hooks/post-receive
-- 
CMake


More information about the Cmake-commits mailing list