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")
|
SET(CMAKE_FIND_LIBRARY_SUFFIXES ".so" ".a")
|
||||||
|
|
||||||
# basically all general purpose OSs support shared libs
|
# 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
|
SET (CMAKE_SKIP_RPATH "NO" CACHE BOOL
|
||||||
"If set, runtime paths are not added when using shared libraries.")
|
"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
|
#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_C_FLAGS "") # -pic
|
||||||
SET(CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS "") # -shared
|
SET(CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS "") # -shared
|
||||||
|
@ -8,5 +8,5 @@
|
|||||||
# and/or ${CMAKE_SYSTEM_NAME}-<compiler_basename>-${CMAKE_SYSTEM_PROCESSOR}.cmake
|
# and/or ${CMAKE_SYSTEM_NAME}-<compiler_basename>-${CMAKE_SYSTEM_PROCESSOR}.cmake
|
||||||
|
|
||||||
# (embedded) targets without operating system usually don't support shared libraries
|
# (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 "cmAddLibraryCommand.h"
|
||||||
|
|
||||||
|
#include "cmake.h"
|
||||||
|
|
||||||
// cmLibraryCommand
|
// cmLibraryCommand
|
||||||
bool cmAddLibraryCommand::InitialPass(std::vector<std::string> const& args)
|
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
|
STATIC. But at this point we know only the name of the target, but not
|
||||||
yet its linker language. */
|
yet its linker language. */
|
||||||
if ((type != cmTarget::STATIC_LIBRARY) &&
|
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 ";
|
std::string msg = "ADD_LIBRARY for library ";
|
||||||
msg += args[0];
|
msg += args[0];
|
||||||
|
@ -128,6 +128,7 @@ cmake::cmake()
|
|||||||
cmTarget::DefineProperties(this);
|
cmTarget::DefineProperties(this);
|
||||||
cmMakefile::DefineProperties(this);
|
cmMakefile::DefineProperties(this);
|
||||||
cmTest::DefineProperties(this);
|
cmTest::DefineProperties(this);
|
||||||
|
cmake::DefineProperties(this);
|
||||||
|
|
||||||
#ifdef __APPLE__
|
#ifdef __APPLE__
|
||||||
struct rlimit rlp;
|
struct rlimit rlp;
|
||||||
@ -2930,6 +2931,18 @@ int cmake::ExecuteLinkScript(std::vector<std::string>& args)
|
|||||||
return result;
|
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,
|
void cmake::DefineProperty(const char *name, cmProperty::ScopeType scope,
|
||||||
const char *ShortDescription,
|
const char *ShortDescription,
|
||||||
const char *FullDescription,
|
const char *FullDescription,
|
||||||
|
@ -312,6 +312,9 @@ class cmake
|
|||||||
bool IsPropertyDefined(const char *name, cmProperty::ScopeType scope);
|
bool IsPropertyDefined(const char *name, cmProperty::ScopeType scope);
|
||||||
bool IsPropertyChained(const char *name, cmProperty::ScopeType scope);
|
bool IsPropertyChained(const char *name, cmProperty::ScopeType scope);
|
||||||
|
|
||||||
|
// Define the properties
|
||||||
|
static void DefineProperties(cmake *cm);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
cmPropertyMap Properties;
|
cmPropertyMap Properties;
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user