diff options
Diffstat (limited to '0020-Use-.dll.a-as-import-lib-extension.patch')
-rw-r--r-- | 0020-Use-.dll.a-as-import-lib-extension.patch | 80 |
1 files changed, 80 insertions, 0 deletions
diff --git a/0020-Use-.dll.a-as-import-lib-extension.patch b/0020-Use-.dll.a-as-import-lib-extension.patch new file mode 100644 index 000000000000..1b5d26ab6ff9 --- /dev/null +++ b/0020-Use-.dll.a-as-import-lib-extension.patch @@ -0,0 +1,80 @@ +From e0f3940f8a6df9e347a29d37671fa1bae7d84735 Mon Sep 17 00:00:00 2001 +From: Martchus <martchus@gmx.net> +Date: Sun, 18 Sep 2016 18:26:18 +0200 +Subject: [PATCH 20/26] Use *.dll.a as import lib extension + +--- + mkspecs/features/create_cmake.prf | 5 +++-- + mkspecs/win32-g++/qmake.conf | 2 +- + qmake/generators/win32/winmakefile.cpp | 17 ++++++++++++----- + 3 files changed, 16 insertions(+), 8 deletions(-) + +diff --git a/mkspecs/features/create_cmake.prf b/mkspecs/features/create_cmake.prf +index 4adacf6..0ff1c6d 100644 +--- a/mkspecs/features/create_cmake.prf ++++ b/mkspecs/features/create_cmake.prf +@@ -236,8 +236,9 @@ mac { + CMAKE_PRL_FILE_LOCATION_DEBUG = lib$${CMAKE_QT_STEM}d.prl + CMAKE_PRL_FILE_LOCATION_RELEASE = lib$${CMAKE_QT_STEM}.prl + } else { +- CMAKE_IMPLIB_FILE_LOCATION_DEBUG = lib$${CMAKE_QT_STEM}d.a +- CMAKE_IMPLIB_FILE_LOCATION_RELEASE = lib$${CMAKE_QT_STEM}.a ++ isEmpty(QMAKE_EXTENSION_IMPORTLIB): QMAKE_EXTENSION_IMPORTLIB = a ++ CMAKE_IMPLIB_FILE_LOCATION_DEBUG = lib$${CMAKE_QT_STEM}d.$${QMAKE_EXTENSION_IMPORTLIB} ++ CMAKE_IMPLIB_FILE_LOCATION_RELEASE = lib$${CMAKE_QT_STEM}.$${QMAKE_EXTENSION_IMPORTLIB} + } + } else { + CMAKE_WINMAIN_FILE_LOCATION_DEBUG = qtmain$${QT_LIBINFIX}d.lib +diff --git a/mkspecs/win32-g++/qmake.conf b/mkspecs/win32-g++/qmake.conf +index db92487..607bd3e 100644 +--- a/mkspecs/win32-g++/qmake.conf ++++ b/mkspecs/win32-g++/qmake.conf +@@ -92,7 +92,7 @@ QMAKE_PREFIX_SHLIB = + QMAKE_EXTENSION_SHLIB = dll + QMAKE_PREFIX_STATICLIB = lib + QMAKE_EXTENSION_STATICLIB = a +-QMAKE_LIB_EXTENSIONS = a dll.a ++QMAKE_EXTENSION_IMPORTLIB = dll.a + + QMAKE_LIBS = + QMAKE_LIBS_CORE = -lole32 -luuid -lws2_32 -ladvapi32 -lshell32 -luser32 -lkernel32 -lz -lpcre16 +diff --git a/qmake/generators/win32/winmakefile.cpp b/qmake/generators/win32/winmakefile.cpp +index 543e905..456f21c 100644 +--- a/qmake/generators/win32/winmakefile.cpp ++++ b/qmake/generators/win32/winmakefile.cpp +@@ -80,10 +80,14 @@ Win32MakefileGenerator::parseLibFlag(const ProString &flag, ProString *arg) + bool + Win32MakefileGenerator::findLibraries(bool linkPrl, bool mergeLflags) + { +- ProStringList impexts = project->values("QMAKE_LIB_EXTENSIONS"); +- if (impexts.isEmpty()) +- impexts = project->values("QMAKE_EXTENSION_STATICLIB"); +- QList<QMakeLocalFileName> dirs; ++ ProStringList impexts; ++ if (project->isActiveConfig("staticlib")) { ++ impexts.append(project->values("QMAKE_EXTENSION_STATICLIB")); ++ } else { ++ impexts.append(project->values("QMAKE_EXTENSION_IMPORTLIB")); ++ impexts.append(project->values("QMAKE_EXTENSION_STATICLIB")); ++ } ++ QList<QMakeLocalFileName> dirs; + static const char * const lflags[] = { "QMAKE_LIBS", "QMAKE_LIBS_PRIVATE", 0 }; + for (int i = 0; lflags[i]; i++) { + ProStringList &l = project->values(lflags[i]); +@@ -228,9 +232,12 @@ void Win32MakefileGenerator::fixTargetExt() + if (!project->values("QMAKE_APP_FLAG").isEmpty()) { + project->values("TARGET_EXT").append(".exe"); + } else if (project->isActiveConfig("shared")) { ++ ProString impext = project->first("QMAKE_EXTENSION_IMPORTLIB"); ++ if (impext.isEmpty()) ++ impext = project->first("QMAKE_PREFIX_STATICLIB"); + project->values("LIB_TARGET").prepend(project->first("QMAKE_PREFIX_STATICLIB") + + project->first("TARGET") + project->first("TARGET_VERSION_EXT") +- + '.' + project->first("QMAKE_EXTENSION_STATICLIB")); ++ + '.' + impext); + project->values("TARGET_EXT").append(project->first("TARGET_VERSION_EXT") + "." + + project->first("QMAKE_EXTENSION_SHLIB")); + project->values("TARGET").first() = project->first("QMAKE_PREFIX_SHLIB") + project->first("TARGET"); +-- +2.10.2 + |