STYLE: change global cmake variable CMAKE_TARGET_SUPPORTS_ONLY_STATIC_LIBS
to the first global cmake property TARGET_SUPPORTS_SHARED_LIBS Alex
This commit is contained in:
parent
5fb7dab541
commit
f8261ff9f7
|
@ -20,7 +20,7 @@ SET(CMAKE_FIND_LIBRARY_PREFIXES "lib")
|
|||
SET(CMAKE_FIND_LIBRARY_SUFFIXES ".so" ".a")
|
||||
|
||||
# basically all general purpose OSs support shared libs
|
||||
SET(CMAKE_TARGET_SUPPORTS_ONLY_STATIC_LIBS FALSE)
|
||||
SET_PROPERTIES(GLOBAL PROPERTIES TARGET_SUPPORTS_SHARED_LIBS TRUE)
|
||||
|
||||
SET (CMAKE_SKIP_RPATH "NO" CACHE BOOL
|
||||
"If set, runtime paths are not added when using shared libraries.")
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
#the compute nodes on BlueGene/L don't support shared libs
|
||||
SET(CMAKE_TARGET_SUPPORTS_ONLY_STATIC_LIBS TRUE)
|
||||
SET_PROPERTIES(GLOBAL PROPERTIES TARGET_SUPPORTS_SHARED_LIBS FALSE)
|
||||
|
||||
SET(CMAKE_SHARED_LIBRARY_C_FLAGS "") # -pic
|
||||
SET(CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS "") # -shared
|
||||
|
|
|
@ -8,5 +8,5 @@
|
|||
# and/or ${CMAKE_SYSTEM_NAME}-<compiler_basename>-${CMAKE_SYSTEM_PROCESSOR}.cmake
|
||||
|
||||
# (embedded) targets without operating system usually don't support shared libraries
|
||||
SET(CMAKE_TARGET_SUPPORTS_ONLY_STATIC_LIBS TRUE)
|
||||
SET_PROPERTIES(GLOBAL PROPERTIES TARGET_SUPPORTS_SHARED_LIBS FALSE)
|
||||
|
||||
|
|
|
@ -16,6 +16,8 @@
|
|||
=========================================================================*/
|
||||
#include "cmAddLibraryCommand.h"
|
||||
|
||||
#include "cmake.h"
|
||||
|
||||
// cmLibraryCommand
|
||||
bool cmAddLibraryCommand::InitialPass(std::vector<std::string> const& args)
|
||||
{
|
||||
|
@ -82,7 +84,8 @@ bool cmAddLibraryCommand::InitialPass(std::vector<std::string> const& args)
|
|||
STATIC. But at this point we know only the name of the target, but not
|
||||
yet its linker language. */
|
||||
if ((type != cmTarget::STATIC_LIBRARY) &&
|
||||
(this->Makefile->IsOn("CMAKE_TARGET_SUPPORTS_ONLY_STATIC_LIBS")))
|
||||
(this->Makefile->GetCMakeInstance()->GetPropertyAsBool(
|
||||
"TARGET_SUPPORTS_SHARED_LIBS") == false))
|
||||
{
|
||||
std::string msg = "ADD_LIBRARY for library ";
|
||||
msg += args[0];
|
||||
|
|
|
@ -128,6 +128,7 @@ cmake::cmake()
|
|||
cmTarget::DefineProperties(this);
|
||||
cmMakefile::DefineProperties(this);
|
||||
cmTest::DefineProperties(this);
|
||||
cmake::DefineProperties(this);
|
||||
|
||||
#ifdef __APPLE__
|
||||
struct rlimit rlp;
|
||||
|
@ -2930,6 +2931,18 @@ int cmake::ExecuteLinkScript(std::vector<std::string>& args)
|
|||
return result;
|
||||
}
|
||||
|
||||
void cmake::DefineProperties(cmake *cm)
|
||||
{
|
||||
cm->DefineProperty
|
||||
("TARGET_SUPPORTS_SHARED_LIBS", cmProperty::GLOBAL,
|
||||
"Does the target platform support shared libraries.",
|
||||
"TARGET_SUPPORTS_SHARED_LIBS is a boolean specifying whether the target "
|
||||
"platform supports shared libraries. Basically all current general "
|
||||
"general purpose OS do so, the exception are usually embedded systems "
|
||||
"with no or special OSs.");
|
||||
}
|
||||
|
||||
|
||||
void cmake::DefineProperty(const char *name, cmProperty::ScopeType scope,
|
||||
const char *ShortDescription,
|
||||
const char *FullDescription,
|
||||
|
|
|
@ -312,6 +312,9 @@ class cmake
|
|||
bool IsPropertyDefined(const char *name, cmProperty::ScopeType scope);
|
||||
bool IsPropertyChained(const char *name, cmProperty::ScopeType scope);
|
||||
|
||||
// Define the properties
|
||||
static void DefineProperties(cmake *cm);
|
||||
|
||||
protected:
|
||||
cmPropertyMap Properties;
|
||||
|
||||
|
|
Loading…
Reference in New Issue