use qt5-fix-implib-ext.patch from Alexpux/MINGW-packages

This commit is contained in:
Martchus 2016-03-27 22:49:10 +02:00
parent 0ed8306a64
commit bc86ed1045
6 changed files with 264 additions and 3 deletions

View File

@ -75,7 +75,7 @@ md5sums=('d6b6cfd333c22829c6c85fc52ceed019'
'd0eb81aef1a21c65813fe4ddabbc4206'
'87cbd116c75ced1b075bf266f2455d50'
'62d2977e57fccf1f16d7ea6bf06d3279'
'e1cafa2bc3d11496a5617ddb78283038')
'207420d43e997d1d41ef9684ef7fb715')
_architectures="x86_64-w64-mingw32 i686-w64-mingw32"
# Helper functions for the split builds

View File

@ -0,0 +1,87 @@
From f09d23b9cd22771e04f49b386e3b67df8ad108c3 Mon Sep 17 00:00:00 2001
From: Ray Donnelly <mingw.android@gmail.com>
Date: Mon, 10 Mar 2014 22:59:39 +0000
Subject: [PATCH] win32-g++: Add QMAKE_EXTENSION_IMPORTLIB defaulting to 'a'
This is to allow the MSYS2 project to set it to 'dll.a' so
that static and shared Qt libraries can be installed into
the same prefix without conflicting.
To change it, you should pass -device-option to configure.
Change-Id: I9ee49d2aef46e21f31b97611de2fc6d3070e288a
---
mkspecs/features/create_cmake.prf | 5 +++--
qmake/generators/win32/mingw_make.cpp | 15 +++++++++++++--
qmake/generators/win32/mingw_make.h | 1 +
3 files changed, 17 insertions(+), 4 deletions(-)
diff --git a/mkspecs/features/create_cmake.prf b/mkspecs/features/create_cmake.prf
index 82e2812..2d8a043 100644
--- a/mkspecs/features/create_cmake.prf
+++ b/mkspecs/features/create_cmake.prf
@@ -214,8 +214,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 6d5764f..77e910b 100644
--- a/mkspecs/win32-g++/qmake.conf
+++ b/mkspecs/win32-g++/qmake.conf
@@ -92,7 +92,7 @@
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
diff --git a/qmake/generators/win32/winmakefile.cpp b/qmake/generators/win32/winmakefile.cpp
index 6d5764f..77e910b 100644
--- a/qmake/generators/win32/winmakefile.cpp
+++ b/qmake/generators/win32/winmakefile.cpp
@@ -85,10 +85,14 @@
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]);
@@ -233,9 +237,12 @@
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");
--
1.9.0

View File

@ -75,7 +75,7 @@ md5sums=('d6b6cfd333c22829c6c85fc52ceed019'
'd0eb81aef1a21c65813fe4ddabbc4206'
'87cbd116c75ced1b075bf266f2455d50'
'62d2977e57fccf1f16d7ea6bf06d3279'
'e1cafa2bc3d11496a5617ddb78283038')
'207420d43e997d1d41ef9684ef7fb715')
_architectures="x86_64-w64-mingw32 i686-w64-mingw32"
# Helper functions for the split builds

View File

@ -0,0 +1,87 @@
From f09d23b9cd22771e04f49b386e3b67df8ad108c3 Mon Sep 17 00:00:00 2001
From: Ray Donnelly <mingw.android@gmail.com>
Date: Mon, 10 Mar 2014 22:59:39 +0000
Subject: [PATCH] win32-g++: Add QMAKE_EXTENSION_IMPORTLIB defaulting to 'a'
This is to allow the MSYS2 project to set it to 'dll.a' so
that static and shared Qt libraries can be installed into
the same prefix without conflicting.
To change it, you should pass -device-option to configure.
Change-Id: I9ee49d2aef46e21f31b97611de2fc6d3070e288a
---
mkspecs/features/create_cmake.prf | 5 +++--
qmake/generators/win32/mingw_make.cpp | 15 +++++++++++++--
qmake/generators/win32/mingw_make.h | 1 +
3 files changed, 17 insertions(+), 4 deletions(-)
diff --git a/mkspecs/features/create_cmake.prf b/mkspecs/features/create_cmake.prf
index 82e2812..2d8a043 100644
--- a/mkspecs/features/create_cmake.prf
+++ b/mkspecs/features/create_cmake.prf
@@ -214,8 +214,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 6d5764f..77e910b 100644
--- a/mkspecs/win32-g++/qmake.conf
+++ b/mkspecs/win32-g++/qmake.conf
@@ -92,7 +92,7 @@
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
diff --git a/qmake/generators/win32/winmakefile.cpp b/qmake/generators/win32/winmakefile.cpp
index 6d5764f..77e910b 100644
--- a/qmake/generators/win32/winmakefile.cpp
+++ b/qmake/generators/win32/winmakefile.cpp
@@ -85,10 +85,14 @@
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]);
@@ -233,9 +237,12 @@
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");
--
1.9.0

View File

@ -75,7 +75,7 @@ md5sums=('d6b6cfd333c22829c6c85fc52ceed019'
'd0eb81aef1a21c65813fe4ddabbc4206'
'87cbd116c75ced1b075bf266f2455d50'
'62d2977e57fccf1f16d7ea6bf06d3279'
'e1cafa2bc3d11496a5617ddb78283038')
'207420d43e997d1d41ef9684ef7fb715')
_architectures="x86_64-w64-mingw32 i686-w64-mingw32"
# Helper functions for the split builds

View File

@ -0,0 +1,87 @@
From f09d23b9cd22771e04f49b386e3b67df8ad108c3 Mon Sep 17 00:00:00 2001
From: Ray Donnelly <mingw.android@gmail.com>
Date: Mon, 10 Mar 2014 22:59:39 +0000
Subject: [PATCH] win32-g++: Add QMAKE_EXTENSION_IMPORTLIB defaulting to 'a'
This is to allow the MSYS2 project to set it to 'dll.a' so
that static and shared Qt libraries can be installed into
the same prefix without conflicting.
To change it, you should pass -device-option to configure.
Change-Id: I9ee49d2aef46e21f31b97611de2fc6d3070e288a
---
mkspecs/features/create_cmake.prf | 5 +++--
qmake/generators/win32/mingw_make.cpp | 15 +++++++++++++--
qmake/generators/win32/mingw_make.h | 1 +
3 files changed, 17 insertions(+), 4 deletions(-)
diff --git a/mkspecs/features/create_cmake.prf b/mkspecs/features/create_cmake.prf
index 82e2812..2d8a043 100644
--- a/mkspecs/features/create_cmake.prf
+++ b/mkspecs/features/create_cmake.prf
@@ -214,8 +214,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 6d5764f..77e910b 100644
--- a/mkspecs/win32-g++/qmake.conf
+++ b/mkspecs/win32-g++/qmake.conf
@@ -92,7 +92,7 @@
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
diff --git a/qmake/generators/win32/winmakefile.cpp b/qmake/generators/win32/winmakefile.cpp
index 6d5764f..77e910b 100644
--- a/qmake/generators/win32/winmakefile.cpp
+++ b/qmake/generators/win32/winmakefile.cpp
@@ -85,10 +85,14 @@
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]);
@@ -233,9 +237,12 @@
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");
--
1.9.0