unify handling of library prefixes and extensions
make sure that all specs define QMAKE_{PREFIX,EXTENSION}_{SH,STATIC}LIB, and adjust the code to make halfways consistent use of these variables, in particular on windows; Win32MakefileGenerator::getLibTarget() is gone as a result, as is QMAKE_CYGWIN_SHLIB. still, tons of hardcoded "lib" references remain in the unix generator, because no-one cares. Change-Id: I6ccf37cc562f6584221c94fa27b2834412e4e4ca Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
This commit is contained in:
parent
3e6d172638
commit
f734599629
@ -74,6 +74,9 @@ QMAKE_LFLAGS_WINDOWS = /SUBSYSTEM:WINDOWS
|
|||||||
QMAKE_LFLAGS_EXE = \"/MANIFESTDEPENDENCY:type=\'win32\' name=\'Microsoft.Windows.Common-Controls\' version=\'6.0.0.0\' publicKeyToken=\'6595b64144ccf1df\' language=\'*\' processorArchitecture=\'*\'\"
|
QMAKE_LFLAGS_EXE = \"/MANIFESTDEPENDENCY:type=\'win32\' name=\'Microsoft.Windows.Common-Controls\' version=\'6.0.0.0\' publicKeyToken=\'6595b64144ccf1df\' language=\'*\' processorArchitecture=\'*\'\"
|
||||||
QMAKE_LFLAGS_DLL = /DLL
|
QMAKE_LFLAGS_DLL = /DLL
|
||||||
QMAKE_LFLAGS_LTCG = /LTCG
|
QMAKE_LFLAGS_LTCG = /LTCG
|
||||||
|
QMAKE_PREFIX_SHLIB =
|
||||||
|
QMAKE_EXTENSION_SHLIB = dll
|
||||||
|
QMAKE_PREFIX_STATICLIB =
|
||||||
QMAKE_EXTENSION_STATICLIB = lib
|
QMAKE_EXTENSION_STATICLIB = lib
|
||||||
|
|
||||||
QMAKE_LIBS_CORE = kernel32.lib user32.lib shell32.lib uuid.lib ole32.lib advapi32.lib ws2_32.lib
|
QMAKE_LIBS_CORE = kernel32.lib user32.lib shell32.lib uuid.lib ole32.lib advapi32.lib ws2_32.lib
|
||||||
|
@ -12,5 +12,6 @@ QMAKE_YACCFLAGS_MANGLE += -p $base -b $base
|
|||||||
QMAKE_YACC_HEADER = $base.tab.h
|
QMAKE_YACC_HEADER = $base.tab.h
|
||||||
QMAKE_YACC_SOURCE = $base.tab.c
|
QMAKE_YACC_SOURCE = $base.tab.c
|
||||||
QMAKE_PREFIX_SHLIB = lib
|
QMAKE_PREFIX_SHLIB = lib
|
||||||
|
QMAKE_EXTENSION_SHLIB = so
|
||||||
QMAKE_PREFIX_STATICLIB = lib
|
QMAKE_PREFIX_STATICLIB = lib
|
||||||
QMAKE_EXTENSION_STATICLIB = a
|
QMAKE_EXTENSION_STATICLIB = a
|
||||||
|
@ -62,6 +62,9 @@ QMAKE_LFLAGS_LTCG = /LTCG
|
|||||||
QMAKE_LIBS_NETWORK = ws2.lib
|
QMAKE_LIBS_NETWORK = ws2.lib
|
||||||
QMAKE_LIBS_OPENGL =
|
QMAKE_LIBS_OPENGL =
|
||||||
QMAKE_LIBS_COMPAT =
|
QMAKE_LIBS_COMPAT =
|
||||||
|
QMAKE_PREFIX_SHLIB =
|
||||||
|
QMAKE_EXTENSION_SHLIB = dll
|
||||||
|
QMAKE_PREFIX_STATICLIB =
|
||||||
QMAKE_EXTENSION_STATICLIB = lib
|
QMAKE_EXTENSION_STATICLIB = lib
|
||||||
|
|
||||||
QMAKE_LIBS_EGL = libEGL.lib
|
QMAKE_LIBS_EGL = libEGL.lib
|
||||||
|
@ -70,6 +70,9 @@ QMAKE_LFLAGS_WINDOWS = /SUBSYSTEM:WINDOWS
|
|||||||
QMAKE_LFLAGS_EXE = /MANIFEST:NO
|
QMAKE_LFLAGS_EXE = /MANIFEST:NO
|
||||||
QMAKE_LFLAGS_DLL = /MANIFEST:NO /DLL
|
QMAKE_LFLAGS_DLL = /MANIFEST:NO /DLL
|
||||||
QMAKE_LFLAGS_LTCG = /LTCG
|
QMAKE_LFLAGS_LTCG = /LTCG
|
||||||
|
QMAKE_PREFIX_SHLIB =
|
||||||
|
QMAKE_EXTENSION_SHLIB = dll
|
||||||
|
QMAKE_PREFIX_STATICLIB =
|
||||||
QMAKE_EXTENSION_STATICLIB = lib
|
QMAKE_EXTENSION_STATICLIB = lib
|
||||||
|
|
||||||
QMAKE_LIBS += runtimeobject.lib
|
QMAKE_LIBS += runtimeobject.lib
|
||||||
|
@ -6,7 +6,7 @@
|
|||||||
|
|
||||||
MAKEFILE_GENERATOR = UNIX
|
MAKEFILE_GENERATOR = UNIX
|
||||||
QMAKE_PLATFORM = cygwin unix posix
|
QMAKE_PLATFORM = cygwin unix posix
|
||||||
CONFIG += incremental
|
CONFIG += incremental unversioned_libname
|
||||||
QMAKE_INCREMENTAL_STYLE = sublib
|
QMAKE_INCREMENTAL_STYLE = sublib
|
||||||
|
|
||||||
QMAKE_COMPILER = gcc
|
QMAKE_COMPILER = gcc
|
||||||
@ -56,7 +56,6 @@ QMAKE_LFLAGS_PLUGIN = $$QMAKE_LFLAGS_SHLIB
|
|||||||
QMAKE_LFLAGS_SONAME = -Wl,-soname,
|
QMAKE_LFLAGS_SONAME = -Wl,-soname,
|
||||||
QMAKE_LFLAGS_THREAD =
|
QMAKE_LFLAGS_THREAD =
|
||||||
QMAKE_LFLAGS_RPATH = -Wl,-rpath,
|
QMAKE_LFLAGS_RPATH = -Wl,-rpath,
|
||||||
QMAKE_CYGWIN_SHLIB = 1
|
|
||||||
|
|
||||||
QMAKE_LIBS =
|
QMAKE_LIBS =
|
||||||
QMAKE_LIBS_DYNLOAD = -ldl
|
QMAKE_LIBS_DYNLOAD = -ldl
|
||||||
@ -64,6 +63,7 @@ QMAKE_LIBS_X11 = -lXext -lX11
|
|||||||
QMAKE_LIBS_OPENGL = -lGL
|
QMAKE_LIBS_OPENGL = -lGL
|
||||||
QMAKE_LIBS_THREAD = -lpthread
|
QMAKE_LIBS_THREAD = -lpthread
|
||||||
QMAKE_PREFIX_SHLIB = lib
|
QMAKE_PREFIX_SHLIB = lib
|
||||||
|
QMAKE_EXTENSION_SHLIB = dll
|
||||||
QMAKE_PREFIX_STATICLIB = lib
|
QMAKE_PREFIX_STATICLIB = lib
|
||||||
QMAKE_EXTENSION_STATICLIB = a
|
QMAKE_EXTENSION_STATICLIB = a
|
||||||
|
|
||||||
|
@ -54,13 +54,13 @@ win32 {
|
|||||||
} else {
|
} else {
|
||||||
equals(TEMPLATE, lib) {
|
equals(TEMPLATE, lib) {
|
||||||
static {
|
static {
|
||||||
QMAKE_RESOLVED_TARGET = $${QMAKE_RESOLVED_TARGET}$${LIBPREFIX}$${TARGET}.a
|
QMAKE_RESOLVED_TARGET = $${QMAKE_RESOLVED_TARGET}$${LIBPREFIX}$${TARGET}.$${QMAKE_EXTENSION_STATICLIB}
|
||||||
} else: plugin|unversioned_libname {
|
} else: plugin|unversioned_libname {
|
||||||
QMAKE_RESOLVED_TARGET = $${QMAKE_RESOLVED_TARGET}$${LIBPREFIX}$${TARGET}.so
|
QMAKE_RESOLVED_TARGET = $${QMAKE_RESOLVED_TARGET}$${LIBPREFIX}$${TARGET}.$${QMAKE_EXTENSION_SHLIB}
|
||||||
} else {
|
} else {
|
||||||
TEMP_VERSION = $$VERSION
|
TEMP_VERSION = $$VERSION
|
||||||
isEmpty(TEMP_VERSION):TEMP_VERSION = 1.0.0
|
isEmpty(TEMP_VERSION):TEMP_VERSION = 1.0.0
|
||||||
QMAKE_RESOLVED_TARGET = $${QMAKE_RESOLVED_TARGET}$${LIBPREFIX}$${TARGET}.so.$${TEMP_VERSION}
|
QMAKE_RESOLVED_TARGET = $${QMAKE_RESOLVED_TARGET}$${LIBPREFIX}$${TARGET}.$${QMAKE_EXTENSION_SHLIB}.$${TEMP_VERSION}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
QMAKE_RESOLVED_TARGET = $${QMAKE_RESOLVED_TARGET}$${TARGET}
|
QMAKE_RESOLVED_TARGET = $${QMAKE_RESOLVED_TARGET}$${TARGET}
|
||||||
|
@ -87,6 +87,8 @@ QMAKE_LFLAGS_GCSECTIONS = -Wl,--gc-sections
|
|||||||
QMAKE_LFLAGS_USE_GOLD = -fuse-ld=gold
|
QMAKE_LFLAGS_USE_GOLD = -fuse-ld=gold
|
||||||
QMAKE_LINK_OBJECT_MAX = 10
|
QMAKE_LINK_OBJECT_MAX = 10
|
||||||
QMAKE_LINK_OBJECT_SCRIPT = object_script
|
QMAKE_LINK_OBJECT_SCRIPT = object_script
|
||||||
|
QMAKE_PREFIX_SHLIB =
|
||||||
|
QMAKE_EXTENSION_SHLIB = dll
|
||||||
QMAKE_PREFIX_STATICLIB = lib
|
QMAKE_PREFIX_STATICLIB = lib
|
||||||
QMAKE_EXTENSION_STATICLIB = a
|
QMAKE_EXTENSION_STATICLIB = a
|
||||||
|
|
||||||
|
@ -70,6 +70,9 @@ QMAKE_LFLAGS_CONSOLE = /SUBSYSTEM:console
|
|||||||
QMAKE_LFLAGS_WINDOWS = /SUBSYSTEM:windows
|
QMAKE_LFLAGS_WINDOWS = /SUBSYSTEM:windows
|
||||||
QMAKE_LFLAGS_DLL = /DLL
|
QMAKE_LFLAGS_DLL = /DLL
|
||||||
QMAKE_LFLAGS_LTCG = $$QMAKE_CFLAGS_LTCG
|
QMAKE_LFLAGS_LTCG = $$QMAKE_CFLAGS_LTCG
|
||||||
|
QMAKE_PREFIX_SHLIB =
|
||||||
|
QMAKE_EXTENSION_SHLIB = dll
|
||||||
|
QMAKE_PREFIX_STATICLIB =
|
||||||
QMAKE_EXTENSION_STATICLIB = lib
|
QMAKE_EXTENSION_STATICLIB = lib
|
||||||
|
|
||||||
QMAKE_LIBS =
|
QMAKE_LIBS =
|
||||||
|
@ -45,14 +45,6 @@ QT_BEGIN_NAMESPACE
|
|||||||
void
|
void
|
||||||
UnixMakefileGenerator::init()
|
UnixMakefileGenerator::init()
|
||||||
{
|
{
|
||||||
if(project->isEmpty("QMAKE_EXTENSION_SHLIB")) {
|
|
||||||
if(project->isEmpty("QMAKE_CYGWIN_SHLIB")) {
|
|
||||||
project->values("QMAKE_EXTENSION_SHLIB").append("so");
|
|
||||||
} else {
|
|
||||||
project->values("QMAKE_EXTENSION_SHLIB").append("dll");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
ProStringList &configs = project->values("CONFIG");
|
ProStringList &configs = project->values("CONFIG");
|
||||||
if(project->isEmpty("ICON") && !project->isEmpty("RC_FILE"))
|
if(project->isEmpty("ICON") && !project->isEmpty("RC_FILE"))
|
||||||
project->values("ICON") = project->values("RC_FILE");
|
project->values("ICON") = project->values("RC_FILE");
|
||||||
@ -702,7 +694,6 @@ UnixMakefileGenerator::defaultInstall(const QString &t)
|
|||||||
} else if(project->first("TEMPLATE") == "app") {
|
} else if(project->first("TEMPLATE") == "app") {
|
||||||
target = "$(QMAKE_TARGET)";
|
target = "$(QMAKE_TARGET)";
|
||||||
} else if(project->first("TEMPLATE") == "lib") {
|
} else if(project->first("TEMPLATE") == "lib") {
|
||||||
if(project->isEmpty("QMAKE_CYGWIN_SHLIB")) {
|
|
||||||
if (!project->isActiveConfig("staticlib")
|
if (!project->isActiveConfig("staticlib")
|
||||||
&& !project->isActiveConfig("plugin")
|
&& !project->isActiveConfig("plugin")
|
||||||
&& !project->isActiveConfig("unversioned_libname")) {
|
&& !project->isActiveConfig("unversioned_libname")) {
|
||||||
@ -713,7 +704,6 @@ UnixMakefileGenerator::defaultInstall(const QString &t)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
for(int i = 0; i < targets.size(); ++i) {
|
for(int i = 0; i < targets.size(); ++i) {
|
||||||
QString src = targets.at(i).toQString(),
|
QString src = targets.at(i).toQString(),
|
||||||
dst = escapeFilePath(filePrefixRoot(root, targetdir + src.section('/', -1)));
|
dst = escapeFilePath(filePrefixRoot(root, targetdir + src.section('/', -1)));
|
||||||
|
@ -56,11 +56,6 @@ QString MingwMakefileGenerator::escapeDependencyPath(const QString &path) const
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
QString MingwMakefileGenerator::getLibTarget()
|
|
||||||
{
|
|
||||||
return QString("lib" + project->first("TARGET") + project->first("TARGET_VERSION_EXT") + ".a");
|
|
||||||
}
|
|
||||||
|
|
||||||
QString MingwMakefileGenerator::getManifestFileForRcFile() const
|
QString MingwMakefileGenerator::getManifestFileForRcFile() const
|
||||||
{
|
{
|
||||||
return project->first("QMAKE_MANIFEST").toQString();
|
return project->first("QMAKE_MANIFEST").toQString();
|
||||||
@ -230,8 +225,7 @@ void MingwMakefileGenerator::init()
|
|||||||
QString destDir = "";
|
QString destDir = "";
|
||||||
if(!project->first("DESTDIR").isEmpty())
|
if(!project->first("DESTDIR").isEmpty())
|
||||||
destDir = Option::fixPathToTargetOS(project->first("DESTDIR") + Option::dir_sep, false, false);
|
destDir = Option::fixPathToTargetOS(project->first("DESTDIR") + Option::dir_sep, false, false);
|
||||||
project->values("MINGW_IMPORT_LIB").prepend(destDir + "lib" + project->first("TARGET")
|
project->values("MINGW_IMPORT_LIB").prepend(destDir + project->first("LIB_TARGET"));
|
||||||
+ project->first("TARGET_VERSION_EXT") + ".a");
|
|
||||||
project->values("QMAKE_LFLAGS").append(QString("-Wl,--out-implib,") + fileVar("MINGW_IMPORT_LIB"));
|
project->values("QMAKE_LFLAGS").append(QString("-Wl,--out-implib,") + fileVar("MINGW_IMPORT_LIB"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -47,7 +47,6 @@ protected:
|
|||||||
QString escapeDependencyPath(const QString &path) const;
|
QString escapeDependencyPath(const QString &path) const;
|
||||||
ProString escapeDependencyPath(const ProString &path) const { return MakefileGenerator::escapeDependencyPath(path); }
|
ProString escapeDependencyPath(const ProString &path) const { return MakefileGenerator::escapeDependencyPath(path); }
|
||||||
virtual ProString fixLibFlag(const ProString &lib);
|
virtual ProString fixLibFlag(const ProString &lib);
|
||||||
QString getLibTarget();
|
|
||||||
virtual QString getManifestFileForRcFile() const;
|
virtual QString getManifestFileForRcFile() const;
|
||||||
bool writeMakefile(QTextStream &);
|
bool writeMakefile(QTextStream &);
|
||||||
void init();
|
void init();
|
||||||
|
@ -318,14 +318,12 @@ void Win32MakefileGenerator::processVars()
|
|||||||
|
|
||||||
void Win32MakefileGenerator::fixTargetExt()
|
void Win32MakefileGenerator::fixTargetExt()
|
||||||
{
|
{
|
||||||
if (project->isEmpty("QMAKE_EXTENSION_STATICLIB"))
|
|
||||||
project->values("QMAKE_EXTENSION_STATICLIB").append("lib");
|
|
||||||
if (project->isEmpty("QMAKE_EXTENSION_SHLIB"))
|
|
||||||
project->values("QMAKE_EXTENSION_SHLIB").append("dll");
|
|
||||||
|
|
||||||
if (!project->values("QMAKE_APP_FLAG").isEmpty()) {
|
if (!project->values("QMAKE_APP_FLAG").isEmpty()) {
|
||||||
project->values("TARGET_EXT").append(".exe");
|
project->values("TARGET_EXT").append(".exe");
|
||||||
} else if (project->isActiveConfig("shared")) {
|
} else if (project->isActiveConfig("shared")) {
|
||||||
|
project->values("LIB_TARGET").prepend(project->first("QMAKE_PREFIX_STATICLIB")
|
||||||
|
+ project->first("TARGET") + project->first("TARGET_VERSION_EXT")
|
||||||
|
+ '.' + project->first("QMAKE_EXTENSION_STATICLIB"));
|
||||||
project->values("TARGET_EXT").append(project->first("TARGET_VERSION_EXT") + "."
|
project->values("TARGET_EXT").append(project->first("TARGET_VERSION_EXT") + "."
|
||||||
+ project->first("QMAKE_EXTENSION_SHLIB"));
|
+ project->first("QMAKE_EXTENSION_SHLIB"));
|
||||||
project->values("TARGET").first() = project->first("QMAKE_PREFIX_SHLIB") + project->first("TARGET");
|
project->values("TARGET").first() = project->first("QMAKE_PREFIX_SHLIB") + project->first("TARGET");
|
||||||
@ -782,11 +780,6 @@ void Win32MakefileGenerator::writeRcFilePart(QTextStream &t)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
QString Win32MakefileGenerator::getLibTarget()
|
|
||||||
{
|
|
||||||
return QString(project->first("TARGET") + project->first("TARGET_VERSION_EXT") + ".lib");
|
|
||||||
}
|
|
||||||
|
|
||||||
QString Win32MakefileGenerator::defaultInstall(const QString &t)
|
QString Win32MakefileGenerator::defaultInstall(const QString &t)
|
||||||
{
|
{
|
||||||
if((t != "target" && t != "dlltarget") ||
|
if((t != "target" && t != "dlltarget") ||
|
||||||
@ -833,7 +826,7 @@ QString Win32MakefileGenerator::defaultInstall(const QString &t)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if(project->isActiveConfig("shared") && !project->isActiveConfig("plugin")) {
|
if(project->isActiveConfig("shared") && !project->isActiveConfig("plugin")) {
|
||||||
QString lib_target = getLibTarget();
|
ProString lib_target = project->first("LIB_TARGET");
|
||||||
QString src_targ = escapeFilePath(
|
QString src_targ = escapeFilePath(
|
||||||
(project->isEmpty("DESTDIR") ? QString("$(DESTDIR)") : project->first("DESTDIR"))
|
(project->isEmpty("DESTDIR") ? QString("$(DESTDIR)") : project->first("DESTDIR"))
|
||||||
+ lib_target);
|
+ lib_target);
|
||||||
|
@ -66,7 +66,6 @@ protected:
|
|||||||
void processVars();
|
void processVars();
|
||||||
void fixTargetExt();
|
void fixTargetExt();
|
||||||
void processRcFileVar();
|
void processRcFileVar();
|
||||||
virtual QString getLibTarget();
|
|
||||||
static QString cQuoted(const QString &str);
|
static QString cQuoted(const QString &str);
|
||||||
virtual QString getManifestFileForRcFile() const;
|
virtual QString getManifestFileForRcFile() const;
|
||||||
};
|
};
|
||||||
|
Loading…
Reference in New Issue
Block a user