BUG: Fixed shared library version support for Fortran. This addresses bug#3558.
This commit is contained in:
parent
e0e32400af
commit
c9506c30f0
@ -7,4 +7,5 @@ SET(CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG "-Wl,-rpath,")
|
|||||||
SET(CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG_SEP ":")
|
SET(CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG_SEP ":")
|
||||||
SET(CMAKE_SHARED_LIBRARY_SONAME_C_FLAG "-Wl,-soname,")
|
SET(CMAKE_SHARED_LIBRARY_SONAME_C_FLAG "-Wl,-soname,")
|
||||||
SET(CMAKE_SHARED_LIBRARY_SONAME_CXX_FLAG "-Wl,-soname,")
|
SET(CMAKE_SHARED_LIBRARY_SONAME_CXX_FLAG "-Wl,-soname,")
|
||||||
|
SET(CMAKE_SHARED_LIBRARY_SONAME_Fortran_FLAG "-Wl,-soname,")
|
||||||
INCLUDE(Platform/UnixPaths)
|
INCLUDE(Platform/UnixPaths)
|
||||||
|
@ -81,16 +81,25 @@ void cmInstallTargetGenerator::GenerateScript(std::ostream& os)
|
|||||||
{
|
{
|
||||||
// Add shared library installation properties if this platform
|
// Add shared library installation properties if this platform
|
||||||
// supports them.
|
// supports them.
|
||||||
const char* lib_version = this->Target->GetProperty("VERSION");
|
const char* lib_version = 0;
|
||||||
const char* lib_soversion = this->Target->GetProperty("SOVERSION");
|
const char* lib_soversion = 0;
|
||||||
if(!this->Target->GetMakefile()
|
|
||||||
->GetDefinition("CMAKE_SHARED_LIBRARY_SONAME_C_FLAG"))
|
// Versioning is supported only for shared libraries and modules,
|
||||||
|
// and then only when the platform supports an soname flag.
|
||||||
|
cmGlobalGenerator* gg =
|
||||||
|
this->Target->GetMakefile()->GetLocalGenerator()->GetGlobalGenerator();
|
||||||
|
if(const char* linkLanguage = this->Target->GetLinkerLanguage(gg))
|
||||||
{
|
{
|
||||||
// Versioning is supported only for shared libraries and modules,
|
std::string sonameFlagVar = "CMAKE_SHARED_LIBRARY_SONAME_";
|
||||||
// and then only when the platform supports an soname flag.
|
sonameFlagVar += linkLanguage;
|
||||||
lib_version = 0;
|
sonameFlagVar += "_FLAG";
|
||||||
lib_soversion = 0;
|
if(this->Target->GetMakefile()->GetDefinition(sonameFlagVar.c_str()))
|
||||||
|
{
|
||||||
|
lib_version = this->Target->GetProperty("VERSION");
|
||||||
|
lib_soversion = this->Target->GetProperty("SOVERSION");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if(lib_version)
|
if(lib_version)
|
||||||
{
|
{
|
||||||
props += " VERSION ";
|
props += " VERSION ";
|
||||||
|
Loading…
x
Reference in New Issue
Block a user