diff options
author | Brad King <brad.king@kitware.com> | 2008-01-31 13:05:34 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2008-01-31 13:05:34 (GMT) |
commit | afd7d4ca4c5a4855b6f932af644e09a886b20a3d (patch) | |
tree | c7c17086f25cac2e89f20e613397f80eb257513c | |
parent | 3a05425309dd19f4c91febdf96b4ac3fc1d17ce5 (diff) | |
download | CMake-afd7d4ca4c5a4855b6f932af644e09a886b20a3d.zip CMake-afd7d4ca4c5a4855b6f932af644e09a886b20a3d.tar.gz CMake-afd7d4ca4c5a4855b6f932af644e09a886b20a3d.tar.bz2 |
ENH: Add target property LINK_SEARCH_END_STATIC to help people building static binaries on some platforms.
-rw-r--r-- | Source/cmComputeLinkInformation.cxx | 10 | ||||
-rw-r--r-- | Source/cmTarget.cxx | 12 |
2 files changed, 21 insertions, 1 deletions
diff --git a/Source/cmComputeLinkInformation.cxx b/Source/cmComputeLinkInformation.cxx index 1e340c0..ec55c45 100644 --- a/Source/cmComputeLinkInformation.cxx +++ b/Source/cmComputeLinkInformation.cxx @@ -340,7 +340,15 @@ bool cmComputeLinkInformation::Compute() // Restore the target link type so the correct system runtime // libraries are found. - this->SetCurrentLinkType(this->StartLinkType); + const char* lss = this->Target->GetProperty("LINK_SEARCH_END_STATIC"); + if(cmSystemTools::IsOn(lss)) + { + this->SetCurrentLinkType(LinkStatic); + } + else + { + this->SetCurrentLinkType(this->StartLinkType); + } // Compute the linker search path. this->ComputeLinkerSearchDirectories(); diff --git a/Source/cmTarget.cxx b/Source/cmTarget.cxx index 6575140..e007367 100644 --- a/Source/cmTarget.cxx +++ b/Source/cmTarget.cxx @@ -285,6 +285,18 @@ void cmTarget::DefineProperties(cmake *cm) "This is the configuration-specific version of LINK_FLAGS."); cm->DefineProperty + ("LINK_SEARCH_END_STATIC", cmProperty::TARGET, + "End a link line such that static system libraries are used.", + "Some linkers support switches such as -Bstatic and -Bdynamic " + "to determine whether to use static or shared libraries for -lXXX " + "options. CMake uses these options to set the link type for " + "libraries whose full paths are not known or (in some cases) are in " + "implicit link directories for the platform. By default the " + "linker search type is left at -Bdynamic by the end of the library " + "list. This property switches the final linker search type to " + "-Bstatic."); + + cm->DefineProperty ("LINKER_LANGUAGE", cmProperty::TARGET, "What tool to use for linking, based on language.", "The LINKER_LANGUAGE property is used to change the tool " |