From 3877e7bca7e32a0002de23da80fad0407fe5aab9 Mon Sep 17 00:00:00 2001 From: Martchus Date: Thu, 18 Aug 2016 01:07:18 +0200 Subject: [PATCH] Provide static versions of further Qt modules Also fix problems using the static version with CMake --- devel/qt5/build-order | 2 +- devel/qt5/static-cmake-fixes/create_patch.sh | 1 + .../mkspecs/features/create_cmake.prf | 21 ++- .../data/cmake/Qt5BasicConfig.cmake.in | 17 ++- .../data/cmake/Qt5PluginTarget.cmake.in | 19 +++ .../data/cmake/Qt5PluginTarget.cmake.in.orig | 11 ++ ...-allow-usage-of-static-qt-with-cmake.patch | 132 ++++++++++++++--- ...ustomize-extensions-for-static-build.patch | 4 +- ...orce-static-linkage-of-3rdparty-libs.patch | 12 +- .../qt5-use-pkgconfig-for-harfbuzz.patch | 4 +- qt5-3d/mingw-w64/PKGBUILD | 59 +++++--- qt5-activeqt/mingw-w64/PKGBUILD | 62 +++++--- .../qt5-activeqt-fix-compilation.patch | 8 +- qt5-base/mingw-w64-angle/PKGBUILD | 45 ++++-- ...-allow-usage-of-static-qt-with-cmake.patch | 136 +++++++++++++++--- ...erge-static-and-shared-library-trees.patch | 5 +- qt5-base/mingw-w64-static/PKGBUILD | 45 ++++-- ...-allow-usage-of-static-qt-with-cmake.patch | 136 +++++++++++++++--- ...erge-static-and-shared-library-trees.patch | 5 +- qt5-base/mingw-w64/PKGBUILD | 45 ++++-- ...-allow-usage-of-static-qt-with-cmake.patch | 136 +++++++++++++++--- ...erge-static-and-shared-library-trees.patch | 5 +- qt5-canvas3d/mingw-w64/PKGBUILD | 56 +++++--- qt5-charts/mingw-w64/PKGBUILD | 54 ++++--- qt5-connectivity/mingw-w64/PKGBUILD | 54 ++++--- qt5-datavis3s/mingw-w64/PKGBUILD | 54 ++++--- qt5-declarative/mingw-w64/PKGBUILD | 18 ++- qt5-gamepad/mingw-w64/PKGBUILD | 49 ++++--- qt5-graphicaleffects/mingw-w64/PKGBUILD | 42 ++++-- qt5-imageformats/mingw-w64/PKGBUILD | 49 ++++--- qt5-location/mingw-w64/PKGBUILD | 48 +++++-- qt5-multimedia/mingw-w64/PKGBUILD | 58 +++++--- qt5-quick1/mingw-w64/PKGBUILD | 68 +++++---- qt5-quickcontrols/mingw-w64/PKGBUILD | 42 ++++-- qt5-quickcontrols2/mingw-w64/PKGBUILD | 42 ++++-- qt5-script/mingw-w64/PKGBUILD | 57 ++++---- qt5-scxml/mingw-w64/PKGBUILD | 62 ++++---- qt5-sensors/mingw-w64/PKGBUILD | 51 ++++--- qt5-serialport/mingw-w64/PKGBUILD | 71 ++++----- qt5-svg/mingw-w64/PKGBUILD | 57 ++++---- qt5-tools/mingw-w64/PKGBUILD | 16 +-- qt5-translations/mingw-w64/PKGBUILD | 15 +- qt5-virtualkeyboard/mingw-w64/PKGBUILD | 48 +++++-- qt5-webchannel/mingw-w64/PKGBUILD | 55 ++++--- qt5-webengine/mingw-w64/PKGBUILD | 55 ++++--- qt5-webkit/mingw-w64/PKGBUILD | 71 +++++---- qt5-websockets/mingw-w64/PKGBUILD | 50 ++++--- qt5-winextras/mingw-w64/PKGBUILD | 50 ++++--- qt5-xmlpatterns/mingw-w64/PKGBUILD | 57 ++++---- 49 files changed, 1564 insertions(+), 695 deletions(-) create mode 100644 devel/qt5/static-cmake-fixes/mkspecs/features/data/cmake/Qt5PluginTarget.cmake.in create mode 100644 devel/qt5/static-cmake-fixes/mkspecs/features/data/cmake/Qt5PluginTarget.cmake.in.orig diff --git a/devel/qt5/build-order b/devel/qt5/build-order index a347179f..3e99c5a7 100644 --- a/devel/qt5/build-order +++ b/devel/qt5/build-order @@ -1 +1 @@ -qt5-base qt5-xmlpatterns qt5-declarative qt5-tools qt5-script qt5-location qt5-multimedia qt5-sensors qt5-webchannel qt5-3d qt5-imageformats qt5-location qt5-quickcontrols qt5-quickcontrols2 qt5-translations qt5-svg qt5-websockets qt5-winextras qt5-serialport qt5-canvas3d qt5-connectivity qt5-charts qt5-gamepad qt5-scxml qt5-virtualkeyboard qt5-activeqt qt5-webkit +qt5-base qt5-declarative qt5-tools qt5-xmlpatterns qt5-script qt5-location qt5-multimedia qt5-sensors qt5-webchannel qt5-3d qt5-imageformats qt5-quickcontrols qt5-quickcontrols2 qt5-translations qt5-svg qt5-websockets qt5-winextras qt5-serialport qt5-canvas3d qt5-connectivity qt5-charts qt5-gamepad qt5-scxml qt5-datavis3s qt5-virtualkeyboard qt5-activeqt qt5-webkit diff --git a/devel/qt5/static-cmake-fixes/create_patch.sh b/devel/qt5/static-cmake-fixes/create_patch.sh index 45981ca5..15bbd04e 100755 --- a/devel/qt5/static-cmake-fixes/create_patch.sh +++ b/devel/qt5/static-cmake-fixes/create_patch.sh @@ -1,5 +1,6 @@ f=qt5-allow-usage-of-static-qt-with-cmake.patch diff -Naur mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in{.orig,} > $f +diff -Naur mkspecs/features/data/cmake/Qt5PluginTarget.cmake.in{.orig,} >> $f diff -Naur mkspecs/features/create_cmake.prf{.orig,} >> $f cat qt5-generate-libs-in-prl-for-cmake.patch >> $f diff --git a/devel/qt5/static-cmake-fixes/mkspecs/features/create_cmake.prf b/devel/qt5/static-cmake-fixes/mkspecs/features/create_cmake.prf index 7aa6855b..16665186 100644 --- a/devel/qt5/static-cmake-fixes/mkspecs/features/create_cmake.prf +++ b/devel/qt5/static-cmake-fixes/mkspecs/features/create_cmake.prf @@ -135,17 +135,19 @@ contains(CONFIG, plugin) { CMAKE_PLUGIN_NAME = $$PLUGIN_CLASS_NAME win32 { - isEmpty(CMAKE_STATIC_TYPE) { + mingw { CMAKE_PLUGIN_LOCATION_RELEASE = $$PLUGIN_TYPE/$${TARGET}.dll CMAKE_PLUGIN_LOCATION_DEBUG = $$PLUGIN_TYPE/$${TARGET}d.dll - } else:mingw { - CMAKE_PLUGIN_LOCATION_RELEASE = $$PLUGIN_TYPE/lib$${TARGET}.a - CMAKE_PLUGIN_LOCATION_DEBUG = $$PLUGIN_TYPE/lib$${TARGET}d.a + CMAKE_PLUGIN_LOCATION_RELEASE_STATIC = $$PLUGIN_TYPE/lib$${TARGET}.a + CMAKE_PLUGIN_LOCATION_DEBUG_STATIC = $$PLUGIN_TYPE/lib$${TARGET}d.a } else { # MSVC static CMAKE_PLUGIN_LOCATION_RELEASE = $$PLUGIN_TYPE/$${TARGET}.lib CMAKE_PLUGIN_LOCATION_DEBUG = $$PLUGIN_TYPE/$${TARGET}d.lib + CMAKE_PLUGIN_LOCATION_RELEASE_STATIC = $$PLUGIN_TYPE/$${TARGET}.lib + CMAKE_PLUGIN_LOCATION_DEBUG_STATIC = $$PLUGIN_TYPE/$${TARGET}d.lib } } else { + # this branch is broken by the patch, only apply when building for Windows mac { isEmpty(CMAKE_STATIC_TYPE): CMAKE_PlUGIN_EXT = .dylib else: CMAKE_PlUGIN_EXT = .a @@ -161,7 +163,8 @@ contains(CONFIG, plugin) { } } cmake_target_file.input = $$PWD/data/cmake/Qt5PluginTarget.cmake.in - cmake_target_file.output = $$CMAKE_OUT_DIR/Qt5$${CMAKE_MODULE_NAME}/Qt5$${CMAKE_MODULE_NAME}_$${PLUGIN_CLASS_NAME}.cmake + isEmpty(CMAKE_STATIC_TYPE): cmake_target_file.output = $$CMAKE_OUT_DIR/Qt5$${CMAKE_MODULE_NAME}/Qt5$${CMAKE_MODULE_NAME}_$${PLUGIN_CLASS_NAME}.cmake + else: cmake_target_file.output = $$CMAKE_OUT_DIR/Qt5$${CMAKE_MODULE_NAME}/StaticQt5$${CMAKE_MODULE_NAME}_$${PLUGIN_CLASS_NAME}.cmake !build_pass:QMAKE_SUBSTITUTES += \ cmake_target_file @@ -180,6 +183,8 @@ mod_deps = lib_deps = aux_mod_deps = aux_lib_deps = +aux_compile_defs_static = QT_STATIC QT_DESIGNER_STATIC +contains(QT_CONFIG, angle): aux_compile_defs += QT_OPENGL_ES_2_ANGLE_STATIC # Until CMake 3.0 is the minimum requirement of Qt 5, we need to filter # out header-only modules from dependencies. CMake 3.0 provides INTERFACE # libraries which are equivalent to header-only modules. @@ -197,10 +202,13 @@ CMAKE_MODULE_DEPS = $$join(mod_deps, ";") CMAKE_QT5_MODULE_DEPS = $$join(lib_deps, ";") CMAKE_INTERFACE_MODULE_DEPS = $$join(aux_mod_deps, ";") CMAKE_INTERFACE_QT5_MODULE_DEPS = $$join(aux_lib_deps, ";") +CMAKE_INTERFACE_COMPILE_DEFINITIONS_STATIC = $$join(aux_compile_defs_static, ";") + CMAKE_QT_STEM = Qt$$QT_MAJOR_VERSION$${CMAKE_MODULE_NAME}$${QT_LIBINFIX} mac { + # this branch is broken by the patch, only apply when building for Windows !isEmpty(CMAKE_STATIC_TYPE) { CMAKE_LIB_FILE_LOCATION_DEBUG = lib$${CMAKE_QT_STEM}_debug.a CMAKE_LIB_FILE_LOCATION_RELEASE = lib$${CMAKE_QT_STEM}.a @@ -228,7 +236,7 @@ mac { CMAKE_WINMAIN_FILE_LOCATION_DEBUG = libqt5main$${QT_LIBINFIX}.a CMAKE_WINMAIN_FILE_LOCATION_RELEASE = libqt5main$${QT_LIBINFIX}.a - isEmpty(QMAKE_EXTENSION_IMPORTLIB): QMAKE_EXTENSION_IMPORTLIB = a + isEmpty(QMAKE_EXTENSION_IMPORTLIB): QMAKE_EXTENSION_IMPORTLIB = dll.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} CMAKE_PRL_FILE_LOCATION_DEBUG = $${CMAKE_QT_STEM}d.prl @@ -254,6 +262,7 @@ mac { CMAKE_PRL_FILE_LOCATION_RELEASE_STATIC = $${CMAKE_QT_STEM}-static.prl } } else { + # this branch is broken by the patch, only apply when building for Windows !isEmpty(CMAKE_STATIC_TYPE) { CMAKE_LIB_FILE_LOCATION_DEBUG = lib$${CMAKE_QT_STEM}.a CMAKE_LIB_FILE_LOCATION_RELEASE = lib$${CMAKE_QT_STEM}.a diff --git a/devel/qt5/static-cmake-fixes/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in b/devel/qt5/static-cmake-fixes/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in index 180fd4eb..b52720c9 100644 --- a/devel/qt5/static-cmake-fixes/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in +++ b/devel/qt5/static-cmake-fixes/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in @@ -285,10 +285,19 @@ if (NOT TARGET Qt5::$${CMAKE_MODULE_NAME}) set_property(TARGET Qt5::$${CMAKE_MODULE_NAME} PROPERTY INTERFACE_INCLUDE_DIRECTORIES ${_Qt5$${CMAKE_MODULE_NAME}_OWN_INCLUDE_DIRS}) - set_property(TARGET Qt5::$${CMAKE_MODULE_NAME} PROPERTY - INTERFACE_COMPILE_DEFINITIONS $${MODULE_DEFINE}) - - file(GLOB pluginTargetsMaybe \"${CMAKE_CURRENT_LIST_DIR}/Qt5$${CMAKE_MODULE_NAME}_*.cmake\") + set(interface_compile_definitions $${MODULE_DEFINE}) + if(USE_STATIC_QT_BUILD) + set_property(TARGET Qt5::$${CMAKE_MODULE_NAME} PROPERTY + INTERFACE_COMPILE_DEFINITIONS $${CMAKE_INTERFACE_COMPILE_DEFINITIONS_STATIC} $${MODULE_DEFINE}) + else() + set_property(TARGET Qt5::$${CMAKE_MODULE_NAME} PROPERTY + INTERFACE_COMPILE_DEFINITIONS $${MODULE_DEFINE}) + endif() + if(USE_STATIC_QT_BUILD) + file(GLOB pluginTargetsMaybe \"${CMAKE_CURRENT_LIST_DIR}/StaticQt5$${CMAKE_MODULE_NAME}_*.cmake\") + else() + file(GLOB pluginTargetsMaybe \"${CMAKE_CURRENT_LIST_DIR}/Qt5$${CMAKE_MODULE_NAME}_*.cmake\") + endif() unset(pluginTargets) if (pluginTargetsMaybe) foreach(pluginTarget ${pluginTargetsMaybe}) diff --git a/devel/qt5/static-cmake-fixes/mkspecs/features/data/cmake/Qt5PluginTarget.cmake.in b/devel/qt5/static-cmake-fixes/mkspecs/features/data/cmake/Qt5PluginTarget.cmake.in new file mode 100644 index 00000000..e72be9e3 --- /dev/null +++ b/devel/qt5/static-cmake-fixes/mkspecs/features/data/cmake/Qt5PluginTarget.cmake.in @@ -0,0 +1,19 @@ + +add_library(Qt5::$$CMAKE_PLUGIN_NAME MODULE IMPORTED) + +!!IF !isEmpty(CMAKE_RELEASE_TYPE) +!!IF !isEmpty(CMAKE_STATIC_TYPE) +_populate_$${CMAKE_MODULE_NAME}_plugin_properties($$CMAKE_PLUGIN_NAME RELEASE \"$${CMAKE_PLUGIN_LOCATION_RELEASE_STATIC}\") +!!ELSE +_populate_$${CMAKE_MODULE_NAME}_plugin_properties($$CMAKE_PLUGIN_NAME RELEASE \"$${CMAKE_PLUGIN_LOCATION_RELEASE}\") +!!ENDIF +!!ENDIF +!!IF !isEmpty(CMAKE_DEBUG_TYPE) +!!IF !isEmpty(CMAKE_STATIC_TYPE) +_populate_$${CMAKE_MODULE_NAME}_plugin_properties($$CMAKE_PLUGIN_NAME DEBUG \"$${CMAKE_PLUGIN_LOCATION_DEBUG_STATIC}\") +!!ELSE +_populate_$${CMAKE_MODULE_NAME}_plugin_properties($$CMAKE_PLUGIN_NAME DEBUG \"$${CMAKE_PLUGIN_LOCATION_DEBUG}\") +!!ENDIF +!!ENDIF + +list(APPEND Qt5$${CMAKE_MODULE_NAME}_PLUGINS Qt5::$$CMAKE_PLUGIN_NAME) diff --git a/devel/qt5/static-cmake-fixes/mkspecs/features/data/cmake/Qt5PluginTarget.cmake.in.orig b/devel/qt5/static-cmake-fixes/mkspecs/features/data/cmake/Qt5PluginTarget.cmake.in.orig new file mode 100644 index 00000000..5baf0fdb --- /dev/null +++ b/devel/qt5/static-cmake-fixes/mkspecs/features/data/cmake/Qt5PluginTarget.cmake.in.orig @@ -0,0 +1,11 @@ + +add_library(Qt5::$$CMAKE_PLUGIN_NAME MODULE IMPORTED) + +!!IF !isEmpty(CMAKE_RELEASE_TYPE) +_populate_$${CMAKE_MODULE_NAME}_plugin_properties($$CMAKE_PLUGIN_NAME RELEASE \"$${CMAKE_PLUGIN_LOCATION_RELEASE}\") +!!ENDIF +!!IF !isEmpty(CMAKE_DEBUG_TYPE) +_populate_$${CMAKE_MODULE_NAME}_plugin_properties($$CMAKE_PLUGIN_NAME DEBUG \"$${CMAKE_PLUGIN_LOCATION_DEBUG}\") +!!ENDIF + +list(APPEND Qt5$${CMAKE_MODULE_NAME}_PLUGINS Qt5::$$CMAKE_PLUGIN_NAME) diff --git a/devel/qt5/static-cmake-fixes/qt5-allow-usage-of-static-qt-with-cmake.patch b/devel/qt5/static-cmake-fixes/qt5-allow-usage-of-static-qt-with-cmake.patch index e0486a17..844db1e7 100644 --- a/devel/qt5/static-cmake-fixes/qt5-allow-usage-of-static-qt-with-cmake.patch +++ b/devel/qt5/static-cmake-fixes/qt5-allow-usage-of-static-qt-with-cmake.patch @@ -1,5 +1,5 @@ ---- mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in.orig 2016-08-12 21:50:38.900208800 +0200 -+++ mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in 2016-08-12 21:50:39.047576600 +0200 +--- mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in.orig 2016-08-14 20:44:32.515151700 +0200 ++++ mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in 2016-08-18 23:22:00.447257800 +0200 @@ -59,19 +59,30 @@ set_property(TARGET Qt5::$${CMAKE_MODULE_NAME} APPEND PROPERTY IMPORTED_CONFIGURATIONS ${Configuration}) @@ -91,11 +91,25 @@ !!IF !equals(TEMPLATE, aux) !!IF !isEmpty(CMAKE_BUILD_IS_FRAMEWORK) set_property(TARGET Qt5::$${CMAKE_MODULE_NAME} PROPERTY FRAMEWORK 1) -@@ -243,64 +288,120 @@ - set_property(TARGET Qt5::$${CMAKE_MODULE_NAME} PROPERTY - INTERFACE_COMPILE_DEFINITIONS $${MODULE_DEFINE}) +@@ -240,67 +285,132 @@ -+ file(GLOB pluginTargetsMaybe \"${CMAKE_CURRENT_LIST_DIR}/Qt5$${CMAKE_MODULE_NAME}_*.cmake\") + set_property(TARGET Qt5::$${CMAKE_MODULE_NAME} PROPERTY + INTERFACE_INCLUDE_DIRECTORIES ${_Qt5$${CMAKE_MODULE_NAME}_OWN_INCLUDE_DIRS}) +- set_property(TARGET Qt5::$${CMAKE_MODULE_NAME} PROPERTY +- INTERFACE_COMPILE_DEFINITIONS $${MODULE_DEFINE}) ++ set(interface_compile_definitions $${MODULE_DEFINE}) ++ if(USE_STATIC_QT_BUILD) ++ set_property(TARGET Qt5::$${CMAKE_MODULE_NAME} PROPERTY ++ INTERFACE_COMPILE_DEFINITIONS $${CMAKE_INTERFACE_COMPILE_DEFINITIONS_STATIC} $${MODULE_DEFINE}) ++ else() ++ set_property(TARGET Qt5::$${CMAKE_MODULE_NAME} PROPERTY ++ INTERFACE_COMPILE_DEFINITIONS $${MODULE_DEFINE}) ++ endif() ++ if(USE_STATIC_QT_BUILD) ++ file(GLOB pluginTargetsMaybe \"${CMAKE_CURRENT_LIST_DIR}/StaticQt5$${CMAKE_MODULE_NAME}_*.cmake\") ++ else() ++ file(GLOB pluginTargetsMaybe \"${CMAKE_CURRENT_LIST_DIR}/Qt5$${CMAKE_MODULE_NAME}_*.cmake\") ++ endif() + unset(pluginTargets) + if (pluginTargetsMaybe) + foreach(pluginTarget ${pluginTargetsMaybe}) @@ -134,7 +148,7 @@ + include(${pluginTarget}) + endforeach() + endif() -+ + !!IF !equals(TEMPLATE, aux) !!IF !isEmpty(CMAKE_RELEASE_TYPE) -!!IF !isEmpty(CMAKE_STATIC_WINDOWS_BUILD) @@ -234,7 +248,7 @@ !!ELSE \"$${CMAKE_LIB_FILE_LOCATION_RELEASE}\" !!ENDIF -@@ -311,8 +412,12 @@ +@@ -311,8 +421,12 @@ \"$${CMAKE_IMPLIB_FILE_LOCATION_RELEASE}\" ) !!ENDIF _populate_$${CMAKE_MODULE_NAME}_target_properties(RELEASE \"$${CMAKE_LIB_FILE_LOCATION_RELEASE}\" \"$${CMAKE_IMPLIB_FILE_LOCATION_RELEASE}\" ) @@ -248,7 +262,7 @@ !!ENDIF // CMAKE_RELEASE_TYPE !!ENDIF // CMAKE_FIND_OTHER_LIBRARY_BUILD -@@ -323,28 +428,6 @@ +@@ -323,28 +437,6 @@ ) !!ENDIF // TEMPLATE != aux @@ -277,9 +291,87 @@ !!IF !isEmpty(CMAKE_MODULE_EXTRAS) include(\"${CMAKE_CURRENT_LIST_DIR}/Qt5$${CMAKE_MODULE_NAME}ConfigExtras.cmake\") ---- mkspecs/features/create_cmake.prf.orig 2016-08-12 21:50:38.899179000 +0200 -+++ mkspecs/features/create_cmake.prf 2016-08-12 21:50:38.898909700 +0200 -@@ -228,33 +228,30 @@ +--- mkspecs/features/data/cmake/Qt5PluginTarget.cmake.in.orig 2016-06-10 08:48:56.000000000 +0200 ++++ mkspecs/features/data/cmake/Qt5PluginTarget.cmake.in 2016-08-18 23:22:41.994211700 +0200 +@@ -2,10 +2,18 @@ + add_library(Qt5::$$CMAKE_PLUGIN_NAME MODULE IMPORTED) + + !!IF !isEmpty(CMAKE_RELEASE_TYPE) ++!!IF !isEmpty(CMAKE_STATIC_TYPE) ++_populate_$${CMAKE_MODULE_NAME}_plugin_properties($$CMAKE_PLUGIN_NAME RELEASE \"$${CMAKE_PLUGIN_LOCATION_RELEASE_STATIC}\") ++!!ELSE + _populate_$${CMAKE_MODULE_NAME}_plugin_properties($$CMAKE_PLUGIN_NAME RELEASE \"$${CMAKE_PLUGIN_LOCATION_RELEASE}\") + !!ENDIF ++!!ENDIF + !!IF !isEmpty(CMAKE_DEBUG_TYPE) ++!!IF !isEmpty(CMAKE_STATIC_TYPE) ++_populate_$${CMAKE_MODULE_NAME}_plugin_properties($$CMAKE_PLUGIN_NAME DEBUG \"$${CMAKE_PLUGIN_LOCATION_DEBUG_STATIC}\") ++!!ELSE + _populate_$${CMAKE_MODULE_NAME}_plugin_properties($$CMAKE_PLUGIN_NAME DEBUG \"$${CMAKE_PLUGIN_LOCATION_DEBUG}\") + !!ENDIF ++!!ENDIF + + list(APPEND Qt5$${CMAKE_MODULE_NAME}_PLUGINS Qt5::$$CMAKE_PLUGIN_NAME) +--- mkspecs/features/create_cmake.prf.orig 2016-08-14 20:44:32.513342200 +0200 ++++ mkspecs/features/create_cmake.prf 2016-08-18 22:47:39.606635000 +0200 +@@ -135,17 +135,19 @@ + CMAKE_PLUGIN_NAME = $$PLUGIN_CLASS_NAME + + win32 { +- isEmpty(CMAKE_STATIC_TYPE) { ++ mingw { + CMAKE_PLUGIN_LOCATION_RELEASE = $$PLUGIN_TYPE/$${TARGET}.dll + CMAKE_PLUGIN_LOCATION_DEBUG = $$PLUGIN_TYPE/$${TARGET}d.dll +- } else:mingw { +- CMAKE_PLUGIN_LOCATION_RELEASE = $$PLUGIN_TYPE/lib$${TARGET}.a +- CMAKE_PLUGIN_LOCATION_DEBUG = $$PLUGIN_TYPE/lib$${TARGET}d.a ++ CMAKE_PLUGIN_LOCATION_RELEASE_STATIC = $$PLUGIN_TYPE/lib$${TARGET}.a ++ CMAKE_PLUGIN_LOCATION_DEBUG_STATIC = $$PLUGIN_TYPE/lib$${TARGET}d.a + } else { # MSVC static + CMAKE_PLUGIN_LOCATION_RELEASE = $$PLUGIN_TYPE/$${TARGET}.lib + CMAKE_PLUGIN_LOCATION_DEBUG = $$PLUGIN_TYPE/$${TARGET}d.lib ++ CMAKE_PLUGIN_LOCATION_RELEASE_STATIC = $$PLUGIN_TYPE/$${TARGET}.lib ++ CMAKE_PLUGIN_LOCATION_DEBUG_STATIC = $$PLUGIN_TYPE/$${TARGET}d.lib + } + } else { ++ # this branch is broken by the patch, only apply when building for Windows + mac { + isEmpty(CMAKE_STATIC_TYPE): CMAKE_PlUGIN_EXT = .dylib + else: CMAKE_PlUGIN_EXT = .a +@@ -161,7 +163,8 @@ + } + } + cmake_target_file.input = $$PWD/data/cmake/Qt5PluginTarget.cmake.in +- cmake_target_file.output = $$CMAKE_OUT_DIR/Qt5$${CMAKE_MODULE_NAME}/Qt5$${CMAKE_MODULE_NAME}_$${PLUGIN_CLASS_NAME}.cmake ++ isEmpty(CMAKE_STATIC_TYPE): cmake_target_file.output = $$CMAKE_OUT_DIR/Qt5$${CMAKE_MODULE_NAME}/Qt5$${CMAKE_MODULE_NAME}_$${PLUGIN_CLASS_NAME}.cmake ++ else: cmake_target_file.output = $$CMAKE_OUT_DIR/Qt5$${CMAKE_MODULE_NAME}/StaticQt5$${CMAKE_MODULE_NAME}_$${PLUGIN_CLASS_NAME}.cmake + + !build_pass:QMAKE_SUBSTITUTES += \ + cmake_target_file +@@ -180,6 +183,8 @@ + lib_deps = + aux_mod_deps = + aux_lib_deps = ++aux_compile_defs_static = QT_STATIC QT_DESIGNER_STATIC ++contains(QT_CONFIG, angle): aux_compile_defs += QT_OPENGL_ES_2_ANGLE_STATIC + # Until CMake 3.0 is the minimum requirement of Qt 5, we need to filter + # out header-only modules from dependencies. CMake 3.0 provides INTERFACE + # libraries which are equivalent to header-only modules. +@@ -197,10 +202,13 @@ + CMAKE_QT5_MODULE_DEPS = $$join(lib_deps, ";") + CMAKE_INTERFACE_MODULE_DEPS = $$join(aux_mod_deps, ";") + CMAKE_INTERFACE_QT5_MODULE_DEPS = $$join(aux_lib_deps, ";") ++CMAKE_INTERFACE_COMPILE_DEFINITIONS_STATIC = $$join(aux_compile_defs_static, ";") ++ + + CMAKE_QT_STEM = Qt$$QT_MAJOR_VERSION$${CMAKE_MODULE_NAME}$${QT_LIBINFIX} + + mac { ++ # this branch is broken by the patch, only apply when building for Windows + !isEmpty(CMAKE_STATIC_TYPE) { + CMAKE_LIB_FILE_LOCATION_DEBUG = lib$${CMAKE_QT_STEM}_debug.a + CMAKE_LIB_FILE_LOCATION_RELEASE = lib$${CMAKE_QT_STEM}.a +@@ -228,35 +236,33 @@ CMAKE_WINMAIN_FILE_LOCATION_DEBUG = libqt5main$${QT_LIBINFIX}.a CMAKE_WINMAIN_FILE_LOCATION_RELEASE = libqt5main$${QT_LIBINFIX}.a @@ -287,7 +379,7 @@ - CMAKE_STATIC_WINDOWS_BUILD = "true" - 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 ++ isEmpty(QMAKE_EXTENSION_IMPORTLIB): QMAKE_EXTENSION_IMPORTLIB = dll.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} + CMAKE_PRL_FILE_LOCATION_DEBUG = $${CMAKE_QT_STEM}d.prl @@ -313,24 +405,28 @@ - CMAKE_STATIC_WINDOWS_BUILD = "true" - CMAKE_IMPLIB_FILE_LOCATION_DEBUG = $${CMAKE_QT_STEM}d.lib - CMAKE_IMPLIB_FILE_LOCATION_RELEASE = $${CMAKE_QT_STEM}.lib -+ CMAKE_IMPLIB_FILE_LOCATION_DEBUG = $${CMAKE_QT_STEM}d.lib -+ CMAKE_IMPLIB_FILE_LOCATION_RELEASE = $${CMAKE_QT_STEM}.lib -+ CMAKE_PRL_FILE_LOCATION_DEBUG = $${CMAKE_QT_STEM}d.prl -+ CMAKE_PRL_FILE_LOCATION_RELEASE = $${CMAKE_QT_STEM}.prl - +- - CMAKE_PRL_FILE_LOCATION_DEBUG = $${CMAKE_QT_STEM}d.prl - CMAKE_PRL_FILE_LOCATION_RELEASE = $${CMAKE_QT_STEM}.prl - } else { - CMAKE_IMPLIB_FILE_LOCATION_DEBUG = $${CMAKE_QT_STEM}d.lib - CMAKE_IMPLIB_FILE_LOCATION_RELEASE = $${CMAKE_QT_STEM}.lib - } ++ CMAKE_IMPLIB_FILE_LOCATION_DEBUG = $${CMAKE_QT_STEM}d.lib ++ CMAKE_IMPLIB_FILE_LOCATION_RELEASE = $${CMAKE_QT_STEM}.lib ++ CMAKE_PRL_FILE_LOCATION_DEBUG = $${CMAKE_QT_STEM}d.prl ++ CMAKE_PRL_FILE_LOCATION_RELEASE = $${CMAKE_QT_STEM}.prl ++ + CMAKE_IMPLIB_FILE_LOCATION_DEBUG_STATIC = $${CMAKE_QT_STEM}d.lib + CMAKE_IMPLIB_FILE_LOCATION_RELEASE_STATIC = $${CMAKE_QT_STEM}.lib + CMAKE_PRL_FILE_LOCATION_DEBUG_STATIC = $${CMAKE_QT_STEM}d-static.prl + CMAKE_PRL_FILE_LOCATION_RELEASE_STATIC = $${CMAKE_QT_STEM}-static.prl } } else { ++ # this branch is broken by the patch, only apply when building for Windows !isEmpty(CMAKE_STATIC_TYPE) { + CMAKE_LIB_FILE_LOCATION_DEBUG = lib$${CMAKE_QT_STEM}.a + CMAKE_LIB_FILE_LOCATION_RELEASE = lib$${CMAKE_QT_STEM}.a --- qmake/generators/makefile.cpp 2015-08-26 14:29:10.131124600 +0100 +++ qmake/generators/makefile.cpp 2015-08-26 15:06:33.375635900 +0100 @@ -1006,6 +1006,13 @@ diff --git a/devel/qt5/static-cmake-fixes/qt5-customize-extensions-for-static-build.patch b/devel/qt5/static-cmake-fixes/qt5-customize-extensions-for-static-build.patch index 954cca47..50574ba4 100644 --- a/devel/qt5/static-cmake-fixes/qt5-customize-extensions-for-static-build.patch +++ b/devel/qt5/static-cmake-fixes/qt5-customize-extensions-for-static-build.patch @@ -1,5 +1,5 @@ ---- mkspecs/features/spec_pre.prf.orig 2016-08-12 21:50:39.048053400 +0200 -+++ mkspecs/features/spec_pre.prf 2016-08-12 21:50:39.047826200 +0200 +--- mkspecs/features/spec_pre.prf.orig 2016-08-14 20:44:32.515796400 +0200 ++++ mkspecs/features/spec_pre.prf 2016-08-14 20:44:32.515434700 +0200 @@ -14,9 +14,9 @@ QMAKE_EXT_H_MOC = .cpp QMAKE_EXT_JS = .js diff --git a/devel/qt5/static-cmake-fixes/qt5-enforce-static-linkage-of-3rdparty-libs.patch b/devel/qt5/static-cmake-fixes/qt5-enforce-static-linkage-of-3rdparty-libs.patch index c9774ed6..94d04587 100644 --- a/devel/qt5/static-cmake-fixes/qt5-enforce-static-linkage-of-3rdparty-libs.patch +++ b/devel/qt5/static-cmake-fixes/qt5-enforce-static-linkage-of-3rdparty-libs.patch @@ -1,5 +1,5 @@ ---- src/3rdparty/harfbuzz_dependency.pri.orig 2016-08-12 22:07:40.467953900 +0200 -+++ src/3rdparty/harfbuzz_dependency.pri 2016-08-12 22:08:06.583981900 +0200 +--- src/3rdparty/harfbuzz_dependency.pri.orig 2016-08-14 20:44:32.519965300 +0200 ++++ src/3rdparty/harfbuzz_dependency.pri 2016-08-14 20:44:32.519700600 +0200 @@ -2,5 +2,6 @@ INCLUDEPATH += $$PWD/harfbuzz-ng/include LIBS_PRIVATE += -L$$QT_BUILD_TREE/lib -lqtharfbuzzng$$qtPlatformTargetSuffix() @@ -8,8 +8,8 @@ + CONFIG += link_pkgconfig + PKGCONFIG += harfbuzz } ---- src/3rdparty/pcre_dependency.pri.orig 2016-08-12 21:50:39.136999600 +0200 -+++ src/3rdparty/pcre_dependency.pri 2016-08-12 21:50:39.136802400 +0200 +--- src/3rdparty/pcre_dependency.pri.orig 2016-08-14 20:44:32.521037500 +0200 ++++ src/3rdparty/pcre_dependency.pri 2016-08-14 20:44:32.520762700 +0200 @@ -3,5 +3,6 @@ INCLUDEPATH += $$PWD/pcre LIBS_PRIVATE += -L$$QT_BUILD_TREE/lib -lqtpcre$$qtPlatformTargetSuffix() @@ -18,8 +18,8 @@ + contains(QT_CONFIG, static): LIBS_PRIVATE += -Bstatic -lpcre16 -Wl,-Bdynamic + else: LIBS_PRIVATE += -lpcre16 } ---- src/3rdparty/zlib_dependency.pri.orig 2016-08-12 21:50:39.137774400 +0200 -+++ src/3rdparty/zlib_dependency.pri 2016-08-12 21:50:39.137577500 +0200 +--- src/3rdparty/zlib_dependency.pri.orig 2016-08-14 20:44:32.522086000 +0200 ++++ src/3rdparty/zlib_dependency.pri 2016-08-14 20:44:32.521824500 +0200 @@ -1,7 +1,9 @@ # zlib dependency satisfied by bundled 3rd party zlib or system zlib contains(QT_CONFIG, system-zlib) { diff --git a/devel/qt5/static-cmake-fixes/qt5-use-pkgconfig-for-harfbuzz.patch b/devel/qt5/static-cmake-fixes/qt5-use-pkgconfig-for-harfbuzz.patch index f1141b9b..eb1267e7 100644 --- a/devel/qt5/static-cmake-fixes/qt5-use-pkgconfig-for-harfbuzz.patch +++ b/devel/qt5/static-cmake-fixes/qt5-use-pkgconfig-for-harfbuzz.patch @@ -1,5 +1,5 @@ ---- src/3rdparty/harfbuzz_dependency.pri.orig 2016-08-12 22:07:40.467953900 +0200 -+++ src/3rdparty/harfbuzz_dependency.pri 2016-08-12 22:08:06.583981900 +0200 +--- src/3rdparty/harfbuzz_dependency.pri.orig 2016-08-14 20:44:32.519965300 +0200 ++++ src/3rdparty/harfbuzz_dependency.pri 2016-08-14 20:44:32.519700600 +0200 @@ -2,5 +2,6 @@ INCLUDEPATH += $$PWD/harfbuzz-ng/include LIBS_PRIVATE += -L$$QT_BUILD_TREE/lib -lqtharfbuzzng$$qtPlatformTargetSuffix() diff --git a/qt5-3d/mingw-w64/PKGBUILD b/qt5-3d/mingw-w64/PKGBUILD index d903ebe4..ad4ec172 100644 --- a/qt5-3d/mingw-w64/PKGBUILD +++ b/qt5-3d/mingw-w64/PKGBUILD @@ -4,10 +4,13 @@ # All my PKGBUILDs are managed at https://github.com/Martchus/PKGBUILDs where # you also find the URL of a binary repository. +# Includes dynamic and static versions; if only one version is requried, just +# set $NO_STATIC_LIBS or $NO_SHARED_LIBS. + _qt_module=qt3d pkgname="mingw-w64-qt5-3d" pkgver=5.7.0 -pkgrel=1 +pkgrel=2 arch=('i686' 'x86_64') pkgdesc="C++ and QML APIs for easy inclusion of 3D graphics (mingw-w64)" depends=('mingw-w64-qt5-declarative') @@ -19,7 +22,13 @@ _pkgfqn="${_qt_module}-opensource-src-${pkgver}" source=("https://download.qt.io/official_releases/qt/${pkgver:0:3}/${pkgver}/submodules/${_pkgfqn}.tar.xz") md5sums=('3219ec1a97c155915b1f0f036f13854e') -_architectures="i686-w64-mingw32 x86_64-w64-mingw32" +_architectures='i686-w64-mingw32 x86_64-w64-mingw32' +[[ $NO_STATIC_LIBS ]] || \ + makedepends+=('mingw-w64-qt5-base-static') \ + optdepends+=('mingw-w64-qt5-base-static: use of static libraries') \ + _configurations+=('CONFIG+=static') +[[ $NO_SHARED_LIBS ]] || \ + _configurations+=('CONFIG+=shared') prepare() { cd "${srcdir}/${_pkgfqn}" @@ -32,14 +41,19 @@ build() { cd "${srcdir}/${_pkgfqn}" for _arch in ${_architectures}; do - mkdir -p build-${_arch} && pushd build-${_arch} + for _config in "${_configurations[@]}"; do + msg2 "Building ${_config##*=} version for ${_arch}" + mkdir -p build-${_arch}-${_config##*=} && pushd build-${_arch}-${_config##*=} + ${_arch}-qmake-qt5 ../${_qt_module}.pro ${_config} - ${_arch}-qmake-qt5 ../${_qt_module}.pro - make qmake_all - find ./tools -type f -iname 'Makefile' -exec sed -i "s|-lQt5Bootstrap|-L/usr/$_arch/lib -lQt5Bootstrap|g" {} \; + # Search paths for host standard library (/usr/lib) and for Qt5Bootstrap (/usr/$_arch/lib) are not set correctly by qmake + # hence we need insert those paths manually + make qmake_all + find ./tools -type f -iname 'Makefile' -exec sed -i "s|-lQt5Bootstrap|-L/usr/$_arch/lib -lQt5Bootstrap|g" {} \; - make - popd + make + popd + done done } @@ -47,21 +61,20 @@ package() { cd "${srcdir}/${_pkgfqn}" for _arch in ${_architectures}; do - pushd build-${_arch} + for _config in "${_configurations[@]}"; do + pushd build-${_arch}-${_config##*=} - make INSTALL_ROOT="${pkgdir}" install - - # The .dll's are installed in both bindir and libdir - # One copy of the .dll's is sufficient - rm -f "${pkgdir}/usr/${_arch}/lib/"*.dll - - find "${pkgdir}/usr/${_arch}" -name "*.dll" -exec ${_arch}-strip --strip-unneeded {} \; - find "${pkgdir}/usr/${_arch}" -name "*.a" -o -name "*.dll" | xargs -rtl1 ${_arch}-strip -g - strip --strip-all "${pkgdir}/usr/${_arch}/lib/qt/bin/"* - - popd + make INSTALL_ROOT="$pkgdir" install + # The .dll's are installed in both bindir and libdir, one copy of the .dll's is sufficient + find "${pkgdir}/usr/${_arch}/lib" -maxdepth 1 -name "*.dll" -exec rm {} \; + [ "$NO_STATIC_EXECUTABLES" -a "${_config##*=}" = static -o "$NO_EXECUTABLES" ] && \ + find "${pkgdir}/usr/${_arch}" -name "*.exe" -exec rm {} \; || \ + find "${pkgdir}/usr/${_arch}" -name "*.exe" -exec ${_arch}-strip --strip-all {} \; + find "${pkgdir}/usr/${_arch}" -name "*.dll" -exec ${_arch}-strip --strip-unneeded {} \; + find "${pkgdir}/usr/${_arch}" -name "*.a" -exec ${_arch}-strip -g {} \; + find "${pkgdir}/usr/${_arch}/lib/qt/bin/" -exec strip --strip-all {} \; + find "${pkgdir}/usr/${_arch}/lib/" -iname "*.so.$pkgver" -exec strip --strip-unneeded {} \; + popd + done done - - # .prl files aren't interesting for us - find "${pkgdir}" -name "*.prl" -delete } diff --git a/qt5-activeqt/mingw-w64/PKGBUILD b/qt5-activeqt/mingw-w64/PKGBUILD index c84207ae..d3d1c82d 100644 --- a/qt5-activeqt/mingw-w64/PKGBUILD +++ b/qt5-activeqt/mingw-w64/PKGBUILD @@ -4,10 +4,13 @@ # All my PKGBUILDs are managed at https://github.com/Martchus/PKGBUILDs where # you also find the URL of a binary repository. +# Only includes static versions because this module seems to enforce +# being built as static library. + _qt_module=qtactiveqt pkgname=mingw-w64-qt5-activeqt pkgver=5.7.0 -pkgrel=1 +pkgrel=2 arch=('any') pkgdesc="ActiveX integration framework (mingw-w64)" depends=(mingw-w64-qt5-base) @@ -18,21 +21,20 @@ license=("custom, FDL, GPL3, LGPL") url="https://www.qt.io/" _pkgfqn="${_qt_module}-opensource-src-${pkgver}" source=("https://download.qt.io/official_releases/qt/${pkgver:0:3}/${pkgver}/submodules/${_pkgfqn}.tar.xz" - "qt5-activeqt-fix-compilation.patch" "qtactiveqt-fix-build.patch" "qtactiveqt-win64.patch") md5sums=('e48d79becdad54a2ac67c36d98654f5b' - '86c63b9808b0c8c7a8c2203bee73c42b' '7a7ba436452aa56613b3fbb15684e094' '1264d0274586aec14f96a978b416b048') -_architectures="i686-w64-mingw32 x86_64-w64-mingw32" + +_architectures='i686-w64-mingw32 x86_64-w64-mingw32' +[[ $NO_STATIC_LIBS ]] || \ + makedepends+=('mingw-w64-qt5-base-static') \ + optdepends+=('mingw-w64-qt5-base-static: use of static libraries') \ + _configurations+=('CONFIG+=static') prepare() { cd "${srcdir}/${_pkgfqn}" - # Fix linker error: - # qaxserverbase.cpp:1769: undefined reference to `qt_sendSpontaneousEvent(QObject*, QEvent*)' - patch -p0 -i ../qt5-activeqt-fix-compilation.patch - # Don't try to build stuff which requires windows.h with the native Linux gcc patch -p1 -i ../qtactiveqt-fix-build.patch @@ -43,25 +45,43 @@ prepare() { build() { cd "${srcdir}/${_pkgfqn}" + for _arch in ${_architectures}; do - mkdir -p build-${_arch} && pushd build-${_arch} - ${_arch}-qmake-qt5 ../${_qt_module}.pro - make - popd + for _config in "${_configurations[@]}"; do + msg2 "Building ${_config##*=} version for ${_arch}" + mkdir -p build-${_arch}-${_config##*=} && pushd build-${_arch}-${_config##*=} + ${_arch}-qmake-qt5 ../${_qt_module}.pro ${_config} + make + popd + done done } package() { cd "${srcdir}/${_pkgfqn}" + for _arch in ${_architectures}; do - pushd build-${_arch} - make INSTALL_ROOT="$pkgdir" install - # The .dll's are installed in both bindir and libdir - # One copy of the .dll's is sufficient - rm -f "${pkgdir}/usr/${_arch}/lib/"*.dll - find "${pkgdir}/usr/${_arch}" -name "*.exe" -o -name "*.bat" -o -name "*.def" -o -name "*.exp" -o -name '*.prl' | xargs -rtl1 rm - find "${pkgdir}/usr/${_arch}" -name "*.dll" -exec ${_arch}-strip --strip-unneeded {} \; - find "${pkgdir}/usr/${_arch}" -name "*.a" -o -name "*.dll" | xargs -rtl1 ${_arch}-strip -g - popd + for _config in "${_configurations[@]}"; do + pushd build-${_arch}-${_config##*=} + + make INSTALL_ROOT="$pkgdir" install + find "${pkgdir}/usr/${_arch}/lib" -maxdepth 1 -name "*.dll" -exec rm {} \; + [ "$NO_STATIC_EXECUTABLES" -a "${_config##*=}" = static -o "$NO_EXECUTABLES" ] && \ + find "${pkgdir}/usr/${_arch}" -name "*.exe" -exec rm {} \; || \ + find "${pkgdir}/usr/${_arch}" -name "*.exe" -exec ${_arch}-strip --strip-all {} \; + find "${pkgdir}/usr/${_arch}" -name "*.dll" -exec ${_arch}-strip --strip-unneeded {} \; + find "${pkgdir}/usr/${_arch}" -name "*.a" -exec ${_arch}-strip -g {} \; + [[ -d "${pkgdir}/usr/${_arch}/lib/qt/bin/" ]] && \ + find "${pkgdir}/usr/${_arch}/lib/qt/bin/" -exec strip --strip-all {} \; + find "${pkgdir}/usr/${_arch}/lib/" -iname "*.so.$pkgver" -exec strip --strip-unneeded {} \; + popd + done + done + + # Make sure the executables don't conflict with their mingw-qt4 counterpart + for _arch in ${_architectures}; do + for exe_file in "${pkgdir}/usr/${_arch}/bin/"*.exe; do + [[ -f $exe_file ]] && mv "${exe_file}" "${exe_file%.exe}-qt5.exe" + done done } diff --git a/qt5-activeqt/mingw-w64/qt5-activeqt-fix-compilation.patch b/qt5-activeqt/mingw-w64/qt5-activeqt-fix-compilation.patch index d7e25863..ff2b8359 100644 --- a/qt5-activeqt/mingw-w64/qt5-activeqt-fix-compilation.patch +++ b/qt5-activeqt/mingw-w64/qt5-activeqt-fix-compilation.patch @@ -2,14 +2,14 @@ +++ src/activeqt/control/qaxserverbase.cpp 2012-09-10 22:05:37.913161773 +0200 @@ -4033,12 +4033,10 @@ } - - --#ifdef QT_SHARED // avoid conflict with symbol in static lib + + +-#ifndef QT_STATIC // avoid conflict with symbol in static lib bool qt_sendSpontaneousEvent(QObject *o, QEvent *e) { return QCoreApplication::sendSpontaneousEvent(o, e); } -#endif - + /* Tries to set the size of the control. diff --git a/qt5-base/mingw-w64-angle/PKGBUILD b/qt5-base/mingw-w64-angle/PKGBUILD index 97e3936c..4fd71d71 100644 --- a/qt5-base/mingw-w64-angle/PKGBUILD +++ b/qt5-base/mingw-w64-angle/PKGBUILD @@ -13,14 +13,28 @@ # By default CMake and qmake will link against the dynamic libary. -# To use the static variant with CMake set the following variable before calling find_package: +# To use the static variant with CMake set the following variable before calling find_package for finding a Qt module: # set(USE_STATIC_QT_BUILD ON) -# FIXME: Whether the static variant actually works with CMake has not been tested yet. +# To use a static plugin, add the corresponding imported target, eg. +# target_link_libraries(target ... Qt5::QWindowsIntegrationPlugin) +# Automatically importing static plugins is currently not possible, though. Hence it is required to use Q_IMPORT_PLUGIN, eg. +# #include +# Q_IMPORT_PLUGIN(QWindowsIntegrationPlugin) # To use the static variant with qmake set the following variables (either inside the *.pro file or as qmake argument): # CONFIG+=static -# QMAKE_EXT_PRL=-static.prl -# Setting QMAKE_EXT_PRL is a workaround to prevent qmake from using the *.prl files from the dynamic build. + +# Further Qt modules (those not found in the base repository and hence not included in this package) include by default +# static and dynamic libraries; if only one version is requried, just +# set $NO_STATIC_LIBS or $NO_SHARED_LIBS. + +# By default, executables will not be removed because I find them useful when testing. To remove executables +# set $NO_EXECUTABLES or $NO_STATIC_EXECUTABLES to remove statically linked executables only. +# However, if Qt modules containing tools are built as static and as dynamic library only the dynamically linked +# tools will be present in the package. + +# Qt packages can be built in the following order (for example): +# qt5-base qt5-declarative qt5-tools qt5-xmlpatterns qt5-script qt5-location qt5-multimedia qt5-sensors qt5-webchannel qt5-3d qt5-imageformats qt5-quickcontrols qt5-quickcontrols2 qt5-translations qt5-svg qt5-websockets qt5-winextras qt5-serialport qt5-canvas3d qt5-connectivity qt5-charts qt5-gamepad qt5-scxml qt5-datavis3s qt5-virtualkeyboard qt5-activeqt qt5-webkit # Helper functions for the split builds isStatic() { @@ -82,7 +96,7 @@ md5sums=('184f9460b40752d71b15b827260580c2' 'bab00ccc19d888997f323c80354a7c3f' 'f7e1487de6e85116d9c6bde2eac4fb73' 'bc99c4cc6998295d76f37ed681c20d47' - 'cb6354a788754ac9c84fedfbda34e3b6' + '370218fd439f25ab3f35bd1f14652988' '4fe6523dd1c34398df3aa5a8763530cc' 'f32a768e1acb9785c79c8e93aa266db2' '3bd322551924543553a2bf81b4419a09' @@ -98,7 +112,7 @@ md5sums=('184f9460b40752d71b15b827260580c2' '83139869355c2d46921adb25e47cf0fa' 'b9565219e9252a17fc1b8fb9ee30662c' '20de722808e8a3fb684b0212bef8de46' - '5978bff7f1f915bb96ccc1d25c915f69' + '1dc792faa7761d8d7d2f17170da04d6b' '41ec67d9e5e70e0d6d93b42aebd0e12a' '61c0f9d0095c5a6dec8d14e9ec35a608' 'bba65d27704cf36e148d8f18ad02ad15') @@ -352,13 +366,16 @@ package() { # Keep a couple pri files not found in base mv "${pkgdir}/usr/${_arch}/lib/qt/mkspecs/modules/qt_plugin_"*.pri "${pkgdir}/usr/${_arch}" - # Move pri files back - mkdir -p "${pkgdir}/usr/${_arch}/lib/qt/mkspecs/modules" - mv "${pkgdir}/usr/${_arch}/"*.pri "${pkgdir}/usr/${_arch}/lib/qt/mkspecs/modules" + # remove CMake which are also in base + find "${pkgdir}/usr/${_arch}/lib/cmake" -not -name "Static*.cmake" -exec rm {} \; # Delete duplicate files that are in the base package rm -fR "${pkgdir}/usr/${_arch}/"{include,share} - rm -fR "${pkgdir}/usr/${_arch}/lib/"{qt/bin,qt/mkspecs,cmake} + rm -fR "${pkgdir}/usr/${_arch}/lib/"{qt/bin,qt/mkspecs} + + # Move pri files back + mkdir -p "${pkgdir}/usr/${_arch}/lib/qt/mkspecs/modules" + mv "${pkgdir}/usr/${_arch}/"*.pri "${pkgdir}/usr/${_arch}/lib/qt/mkspecs/modules" else # Shared release # The .dll's are installed in both bindir and libdir, one copy of the .dll's is sufficient @@ -386,11 +403,11 @@ package() { strip --strip-unneeded "${pkgdir}/usr/${_arch}/lib/libQt5Bootstrap"{,DBus}.so.${pkgver} fi - # Applications might be useful as well; keeping them will not hurt anybody I suppose - if ! isStatic; then - find "${pkgdir}/usr/${_arch}" -name "*.exe" -exec ${_arch}-strip --strip-all {} \; - else + # Applications might be useful as well; keeping them by default will not hurt anybody I suppose + if isStatic || [[ $NO_EXECUTABLES ]]; then find "${pkgdir}/usr/${_arch}" -name "*.exe" -exec rm {} \; + else + find "${pkgdir}/usr/${_arch}" -name "*.exe" -exec ${_arch}-strip --strip-all {} \; fi # No use for these files though find "${pkgdir}/usr/${_arch}" \( -name "*.bat" -o -name "*.def" -o -name "*.exp" \) -exec rm {} \; diff --git a/qt5-base/mingw-w64-angle/qt5-allow-usage-of-static-qt-with-cmake.patch b/qt5-base/mingw-w64-angle/qt5-allow-usage-of-static-qt-with-cmake.patch index afd75102..844db1e7 100644 --- a/qt5-base/mingw-w64-angle/qt5-allow-usage-of-static-qt-with-cmake.patch +++ b/qt5-base/mingw-w64-angle/qt5-allow-usage-of-static-qt-with-cmake.patch @@ -1,5 +1,5 @@ ---- mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in.orig 2016-08-08 21:40:29.128136100 +0200 -+++ mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in 2016-08-09 01:09:41.545265900 +0200 +--- mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in.orig 2016-08-14 20:44:32.515151700 +0200 ++++ mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in 2016-08-18 23:22:00.447257800 +0200 @@ -59,19 +59,30 @@ set_property(TARGET Qt5::$${CMAKE_MODULE_NAME} APPEND PROPERTY IMPORTED_CONFIGURATIONS ${Configuration}) @@ -91,11 +91,25 @@ !!IF !equals(TEMPLATE, aux) !!IF !isEmpty(CMAKE_BUILD_IS_FRAMEWORK) set_property(TARGET Qt5::$${CMAKE_MODULE_NAME} PROPERTY FRAMEWORK 1) -@@ -243,64 +288,120 @@ - set_property(TARGET Qt5::$${CMAKE_MODULE_NAME} PROPERTY - INTERFACE_COMPILE_DEFINITIONS $${MODULE_DEFINE}) +@@ -240,67 +285,132 @@ -+ file(GLOB pluginTargetsMaybe \"${CMAKE_CURRENT_LIST_DIR}/Qt5$${CMAKE_MODULE_NAME}_*.cmake\") + set_property(TARGET Qt5::$${CMAKE_MODULE_NAME} PROPERTY + INTERFACE_INCLUDE_DIRECTORIES ${_Qt5$${CMAKE_MODULE_NAME}_OWN_INCLUDE_DIRS}) +- set_property(TARGET Qt5::$${CMAKE_MODULE_NAME} PROPERTY +- INTERFACE_COMPILE_DEFINITIONS $${MODULE_DEFINE}) ++ set(interface_compile_definitions $${MODULE_DEFINE}) ++ if(USE_STATIC_QT_BUILD) ++ set_property(TARGET Qt5::$${CMAKE_MODULE_NAME} PROPERTY ++ INTERFACE_COMPILE_DEFINITIONS $${CMAKE_INTERFACE_COMPILE_DEFINITIONS_STATIC} $${MODULE_DEFINE}) ++ else() ++ set_property(TARGET Qt5::$${CMAKE_MODULE_NAME} PROPERTY ++ INTERFACE_COMPILE_DEFINITIONS $${MODULE_DEFINE}) ++ endif() ++ if(USE_STATIC_QT_BUILD) ++ file(GLOB pluginTargetsMaybe \"${CMAKE_CURRENT_LIST_DIR}/StaticQt5$${CMAKE_MODULE_NAME}_*.cmake\") ++ else() ++ file(GLOB pluginTargetsMaybe \"${CMAKE_CURRENT_LIST_DIR}/Qt5$${CMAKE_MODULE_NAME}_*.cmake\") ++ endif() + unset(pluginTargets) + if (pluginTargetsMaybe) + foreach(pluginTarget ${pluginTargetsMaybe}) @@ -123,8 +137,8 @@ + get_filename_component(_plugindir ${PLUGIN_LOCATION} PATH) + get_filename_component(_plugindirname ${_plugindir} NAME) + get_filename_component(_pluginname ${PLUGIN_LOCATION} NAME) -+ string(REGEX REPLACE \"^lib(.*)\\\\.a\" \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/share/qt5/plugins/${_plugindirname}/\\\\1-static.prl\" plugin_prl_file_location ${_pluginname}) -+ macro_process_plugin_prl_file(${plugin_prl_file_location} ${Configuration} \"share/qt5/plugins\" ${PLUGIN_LOCATION} ) ++ string(REGEX REPLACE \"^lib(.*)\\\\.a\" \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/lib/qt/plugins/${_plugindirname}/\\\\1-static.prl\" plugin_prl_file_location ${_pluginname}) ++ macro_process_plugin_prl_file(${plugin_prl_file_location} ${Configuration} \"lib/qt/plugins\" ${PLUGIN_LOCATION}) + endif() + + endmacro() @@ -134,7 +148,7 @@ + include(${pluginTarget}) + endforeach() + endif() -+ + !!IF !equals(TEMPLATE, aux) !!IF !isEmpty(CMAKE_RELEASE_TYPE) -!!IF !isEmpty(CMAKE_STATIC_WINDOWS_BUILD) @@ -234,7 +248,7 @@ !!ELSE \"$${CMAKE_LIB_FILE_LOCATION_RELEASE}\" !!ENDIF -@@ -311,8 +412,12 @@ +@@ -311,8 +421,12 @@ \"$${CMAKE_IMPLIB_FILE_LOCATION_RELEASE}\" ) !!ENDIF _populate_$${CMAKE_MODULE_NAME}_target_properties(RELEASE \"$${CMAKE_LIB_FILE_LOCATION_RELEASE}\" \"$${CMAKE_IMPLIB_FILE_LOCATION_RELEASE}\" ) @@ -248,7 +262,7 @@ !!ENDIF // CMAKE_RELEASE_TYPE !!ENDIF // CMAKE_FIND_OTHER_LIBRARY_BUILD -@@ -323,28 +428,6 @@ +@@ -323,28 +437,6 @@ ) !!ENDIF // TEMPLATE != aux @@ -277,9 +291,87 @@ !!IF !isEmpty(CMAKE_MODULE_EXTRAS) include(\"${CMAKE_CURRENT_LIST_DIR}/Qt5$${CMAKE_MODULE_NAME}ConfigExtras.cmake\") ---- mkspecs/features/create_cmake.prf.orig 2016-08-08 21:40:29.127094800 +0200 -+++ mkspecs/features/create_cmake.prf 2016-08-08 21:40:29.126828300 +0200 -@@ -228,33 +228,30 @@ +--- mkspecs/features/data/cmake/Qt5PluginTarget.cmake.in.orig 2016-06-10 08:48:56.000000000 +0200 ++++ mkspecs/features/data/cmake/Qt5PluginTarget.cmake.in 2016-08-18 23:22:41.994211700 +0200 +@@ -2,10 +2,18 @@ + add_library(Qt5::$$CMAKE_PLUGIN_NAME MODULE IMPORTED) + + !!IF !isEmpty(CMAKE_RELEASE_TYPE) ++!!IF !isEmpty(CMAKE_STATIC_TYPE) ++_populate_$${CMAKE_MODULE_NAME}_plugin_properties($$CMAKE_PLUGIN_NAME RELEASE \"$${CMAKE_PLUGIN_LOCATION_RELEASE_STATIC}\") ++!!ELSE + _populate_$${CMAKE_MODULE_NAME}_plugin_properties($$CMAKE_PLUGIN_NAME RELEASE \"$${CMAKE_PLUGIN_LOCATION_RELEASE}\") + !!ENDIF ++!!ENDIF + !!IF !isEmpty(CMAKE_DEBUG_TYPE) ++!!IF !isEmpty(CMAKE_STATIC_TYPE) ++_populate_$${CMAKE_MODULE_NAME}_plugin_properties($$CMAKE_PLUGIN_NAME DEBUG \"$${CMAKE_PLUGIN_LOCATION_DEBUG_STATIC}\") ++!!ELSE + _populate_$${CMAKE_MODULE_NAME}_plugin_properties($$CMAKE_PLUGIN_NAME DEBUG \"$${CMAKE_PLUGIN_LOCATION_DEBUG}\") + !!ENDIF ++!!ENDIF + + list(APPEND Qt5$${CMAKE_MODULE_NAME}_PLUGINS Qt5::$$CMAKE_PLUGIN_NAME) +--- mkspecs/features/create_cmake.prf.orig 2016-08-14 20:44:32.513342200 +0200 ++++ mkspecs/features/create_cmake.prf 2016-08-18 22:47:39.606635000 +0200 +@@ -135,17 +135,19 @@ + CMAKE_PLUGIN_NAME = $$PLUGIN_CLASS_NAME + + win32 { +- isEmpty(CMAKE_STATIC_TYPE) { ++ mingw { + CMAKE_PLUGIN_LOCATION_RELEASE = $$PLUGIN_TYPE/$${TARGET}.dll + CMAKE_PLUGIN_LOCATION_DEBUG = $$PLUGIN_TYPE/$${TARGET}d.dll +- } else:mingw { +- CMAKE_PLUGIN_LOCATION_RELEASE = $$PLUGIN_TYPE/lib$${TARGET}.a +- CMAKE_PLUGIN_LOCATION_DEBUG = $$PLUGIN_TYPE/lib$${TARGET}d.a ++ CMAKE_PLUGIN_LOCATION_RELEASE_STATIC = $$PLUGIN_TYPE/lib$${TARGET}.a ++ CMAKE_PLUGIN_LOCATION_DEBUG_STATIC = $$PLUGIN_TYPE/lib$${TARGET}d.a + } else { # MSVC static + CMAKE_PLUGIN_LOCATION_RELEASE = $$PLUGIN_TYPE/$${TARGET}.lib + CMAKE_PLUGIN_LOCATION_DEBUG = $$PLUGIN_TYPE/$${TARGET}d.lib ++ CMAKE_PLUGIN_LOCATION_RELEASE_STATIC = $$PLUGIN_TYPE/$${TARGET}.lib ++ CMAKE_PLUGIN_LOCATION_DEBUG_STATIC = $$PLUGIN_TYPE/$${TARGET}d.lib + } + } else { ++ # this branch is broken by the patch, only apply when building for Windows + mac { + isEmpty(CMAKE_STATIC_TYPE): CMAKE_PlUGIN_EXT = .dylib + else: CMAKE_PlUGIN_EXT = .a +@@ -161,7 +163,8 @@ + } + } + cmake_target_file.input = $$PWD/data/cmake/Qt5PluginTarget.cmake.in +- cmake_target_file.output = $$CMAKE_OUT_DIR/Qt5$${CMAKE_MODULE_NAME}/Qt5$${CMAKE_MODULE_NAME}_$${PLUGIN_CLASS_NAME}.cmake ++ isEmpty(CMAKE_STATIC_TYPE): cmake_target_file.output = $$CMAKE_OUT_DIR/Qt5$${CMAKE_MODULE_NAME}/Qt5$${CMAKE_MODULE_NAME}_$${PLUGIN_CLASS_NAME}.cmake ++ else: cmake_target_file.output = $$CMAKE_OUT_DIR/Qt5$${CMAKE_MODULE_NAME}/StaticQt5$${CMAKE_MODULE_NAME}_$${PLUGIN_CLASS_NAME}.cmake + + !build_pass:QMAKE_SUBSTITUTES += \ + cmake_target_file +@@ -180,6 +183,8 @@ + lib_deps = + aux_mod_deps = + aux_lib_deps = ++aux_compile_defs_static = QT_STATIC QT_DESIGNER_STATIC ++contains(QT_CONFIG, angle): aux_compile_defs += QT_OPENGL_ES_2_ANGLE_STATIC + # Until CMake 3.0 is the minimum requirement of Qt 5, we need to filter + # out header-only modules from dependencies. CMake 3.0 provides INTERFACE + # libraries which are equivalent to header-only modules. +@@ -197,10 +202,13 @@ + CMAKE_QT5_MODULE_DEPS = $$join(lib_deps, ";") + CMAKE_INTERFACE_MODULE_DEPS = $$join(aux_mod_deps, ";") + CMAKE_INTERFACE_QT5_MODULE_DEPS = $$join(aux_lib_deps, ";") ++CMAKE_INTERFACE_COMPILE_DEFINITIONS_STATIC = $$join(aux_compile_defs_static, ";") ++ + + CMAKE_QT_STEM = Qt$$QT_MAJOR_VERSION$${CMAKE_MODULE_NAME}$${QT_LIBINFIX} + + mac { ++ # this branch is broken by the patch, only apply when building for Windows + !isEmpty(CMAKE_STATIC_TYPE) { + CMAKE_LIB_FILE_LOCATION_DEBUG = lib$${CMAKE_QT_STEM}_debug.a + CMAKE_LIB_FILE_LOCATION_RELEASE = lib$${CMAKE_QT_STEM}.a +@@ -228,35 +236,33 @@ CMAKE_WINMAIN_FILE_LOCATION_DEBUG = libqt5main$${QT_LIBINFIX}.a CMAKE_WINMAIN_FILE_LOCATION_RELEASE = libqt5main$${QT_LIBINFIX}.a @@ -287,7 +379,7 @@ - CMAKE_STATIC_WINDOWS_BUILD = "true" - 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 ++ isEmpty(QMAKE_EXTENSION_IMPORTLIB): QMAKE_EXTENSION_IMPORTLIB = dll.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} + CMAKE_PRL_FILE_LOCATION_DEBUG = $${CMAKE_QT_STEM}d.prl @@ -313,24 +405,28 @@ - CMAKE_STATIC_WINDOWS_BUILD = "true" - CMAKE_IMPLIB_FILE_LOCATION_DEBUG = $${CMAKE_QT_STEM}d.lib - CMAKE_IMPLIB_FILE_LOCATION_RELEASE = $${CMAKE_QT_STEM}.lib -+ CMAKE_IMPLIB_FILE_LOCATION_DEBUG = $${CMAKE_QT_STEM}d.lib -+ CMAKE_IMPLIB_FILE_LOCATION_RELEASE = $${CMAKE_QT_STEM}.lib -+ CMAKE_PRL_FILE_LOCATION_DEBUG = $${CMAKE_QT_STEM}d.prl -+ CMAKE_PRL_FILE_LOCATION_RELEASE = $${CMAKE_QT_STEM}.prl - +- - CMAKE_PRL_FILE_LOCATION_DEBUG = $${CMAKE_QT_STEM}d.prl - CMAKE_PRL_FILE_LOCATION_RELEASE = $${CMAKE_QT_STEM}.prl - } else { - CMAKE_IMPLIB_FILE_LOCATION_DEBUG = $${CMAKE_QT_STEM}d.lib - CMAKE_IMPLIB_FILE_LOCATION_RELEASE = $${CMAKE_QT_STEM}.lib - } ++ CMAKE_IMPLIB_FILE_LOCATION_DEBUG = $${CMAKE_QT_STEM}d.lib ++ CMAKE_IMPLIB_FILE_LOCATION_RELEASE = $${CMAKE_QT_STEM}.lib ++ CMAKE_PRL_FILE_LOCATION_DEBUG = $${CMAKE_QT_STEM}d.prl ++ CMAKE_PRL_FILE_LOCATION_RELEASE = $${CMAKE_QT_STEM}.prl ++ + CMAKE_IMPLIB_FILE_LOCATION_DEBUG_STATIC = $${CMAKE_QT_STEM}d.lib + CMAKE_IMPLIB_FILE_LOCATION_RELEASE_STATIC = $${CMAKE_QT_STEM}.lib + CMAKE_PRL_FILE_LOCATION_DEBUG_STATIC = $${CMAKE_QT_STEM}d-static.prl + CMAKE_PRL_FILE_LOCATION_RELEASE_STATIC = $${CMAKE_QT_STEM}-static.prl } } else { ++ # this branch is broken by the patch, only apply when building for Windows !isEmpty(CMAKE_STATIC_TYPE) { + CMAKE_LIB_FILE_LOCATION_DEBUG = lib$${CMAKE_QT_STEM}.a + CMAKE_LIB_FILE_LOCATION_RELEASE = lib$${CMAKE_QT_STEM}.a --- qmake/generators/makefile.cpp 2015-08-26 14:29:10.131124600 +0100 +++ qmake/generators/makefile.cpp 2015-08-26 15:06:33.375635900 +0100 @@ -1006,6 +1006,13 @@ diff --git a/qt5-base/mingw-w64-angle/qt5-merge-static-and-shared-library-trees.patch b/qt5-base/mingw-w64-angle/qt5-merge-static-and-shared-library-trees.patch index 67a2eafe..9e6271a6 100644 --- a/qt5-base/mingw-w64-angle/qt5-merge-static-and-shared-library-trees.patch +++ b/qt5-base/mingw-w64-angle/qt5-merge-static-and-shared-library-trees.patch @@ -21,15 +21,16 @@ --- mkspecs/features/default_post.prf.orig 2012-09-05 23:28:56.827501401 +0200 +++ mkspecs/features/default_post.prf 2012-09-05 23:29:31.617923080 +0200 -@@ -47,3 +50,10 @@ +@@ -47,3 +50,11 @@ QMAKE_INCDIR += $$QMAKE_INCDIR_POST QMAKE_LIBDIR += $$QMAKE_LIBDIR_POST + +win32:contains(CONFIG, static) { + DEFINES += QT_STATIC QT_DESIGNER_STATIC ++ DEFINES -= QT_SHARED + contains(QT_CONFIG, angle): DEFINES += QT_OPENGL_ES_2_ANGLE_STATIC -+ QMAKE_LFLAGS += -static ++ QMAKE_LFLAGS += -static -static-libstdc++ -static-libgcc + QMAKE_EXT_PRL=-static.prl # prevents qmake from finding the prl file for shared libs +} --- configure.orig 2012-12-10 23:51:02.920255366 +0100 diff --git a/qt5-base/mingw-w64-static/PKGBUILD b/qt5-base/mingw-w64-static/PKGBUILD index d1850ec9..b16d3ec5 100644 --- a/qt5-base/mingw-w64-static/PKGBUILD +++ b/qt5-base/mingw-w64-static/PKGBUILD @@ -13,14 +13,28 @@ # By default CMake and qmake will link against the dynamic libary. -# To use the static variant with CMake set the following variable before calling find_package: +# To use the static variant with CMake set the following variable before calling find_package for finding a Qt module: # set(USE_STATIC_QT_BUILD ON) -# FIXME: Whether the static variant actually works with CMake has not been tested yet. +# To use a static plugin, add the corresponding imported target, eg. +# target_link_libraries(target ... Qt5::QWindowsIntegrationPlugin) +# Automatically importing static plugins is currently not possible, though. Hence it is required to use Q_IMPORT_PLUGIN, eg. +# #include +# Q_IMPORT_PLUGIN(QWindowsIntegrationPlugin) # To use the static variant with qmake set the following variables (either inside the *.pro file or as qmake argument): # CONFIG+=static -# QMAKE_EXT_PRL=-static.prl -# Setting QMAKE_EXT_PRL is a workaround to prevent qmake from using the *.prl files from the dynamic build. + +# Further Qt modules (those not found in the base repository and hence not included in this package) include by default +# static and dynamic libraries; if only one version is requried, just +# set $NO_STATIC_LIBS or $NO_SHARED_LIBS. + +# By default, executables will not be removed because I find them useful when testing. To remove executables +# set $NO_EXECUTABLES or $NO_STATIC_EXECUTABLES to remove statically linked executables only. +# However, if Qt modules containing tools are built as static and as dynamic library only the dynamically linked +# tools will be present in the package. + +# Qt packages can be built in the following order (for example): +# qt5-base qt5-declarative qt5-tools qt5-xmlpatterns qt5-script qt5-location qt5-multimedia qt5-sensors qt5-webchannel qt5-3d qt5-imageformats qt5-quickcontrols qt5-quickcontrols2 qt5-translations qt5-svg qt5-websockets qt5-winextras qt5-serialport qt5-canvas3d qt5-connectivity qt5-charts qt5-gamepad qt5-scxml qt5-datavis3s qt5-virtualkeyboard qt5-activeqt qt5-webkit # Helper functions for the split builds isStatic() { @@ -82,7 +96,7 @@ md5sums=('184f9460b40752d71b15b827260580c2' 'bab00ccc19d888997f323c80354a7c3f' 'f7e1487de6e85116d9c6bde2eac4fb73' 'bc99c4cc6998295d76f37ed681c20d47' - 'cb6354a788754ac9c84fedfbda34e3b6' + '370218fd439f25ab3f35bd1f14652988' '4fe6523dd1c34398df3aa5a8763530cc' 'f32a768e1acb9785c79c8e93aa266db2' '3bd322551924543553a2bf81b4419a09' @@ -98,7 +112,7 @@ md5sums=('184f9460b40752d71b15b827260580c2' '83139869355c2d46921adb25e47cf0fa' 'b9565219e9252a17fc1b8fb9ee30662c' '20de722808e8a3fb684b0212bef8de46' - '5978bff7f1f915bb96ccc1d25c915f69' + '1dc792faa7761d8d7d2f17170da04d6b' '41ec67d9e5e70e0d6d93b42aebd0e12a' '61c0f9d0095c5a6dec8d14e9ec35a608' 'bba65d27704cf36e148d8f18ad02ad15') @@ -352,13 +366,16 @@ package() { # Keep a couple pri files not found in base mv "${pkgdir}/usr/${_arch}/lib/qt/mkspecs/modules/qt_plugin_"*.pri "${pkgdir}/usr/${_arch}" - # Move pri files back - mkdir -p "${pkgdir}/usr/${_arch}/lib/qt/mkspecs/modules" - mv "${pkgdir}/usr/${_arch}/"*.pri "${pkgdir}/usr/${_arch}/lib/qt/mkspecs/modules" + # remove CMake which are also in base + find "${pkgdir}/usr/${_arch}/lib/cmake" -not -name "Static*.cmake" -exec rm {} \; # Delete duplicate files that are in the base package rm -fR "${pkgdir}/usr/${_arch}/"{include,share} - rm -fR "${pkgdir}/usr/${_arch}/lib/"{qt/bin,qt/mkspecs,cmake} + rm -fR "${pkgdir}/usr/${_arch}/lib/"{qt/bin,qt/mkspecs} + + # Move pri files back + mkdir -p "${pkgdir}/usr/${_arch}/lib/qt/mkspecs/modules" + mv "${pkgdir}/usr/${_arch}/"*.pri "${pkgdir}/usr/${_arch}/lib/qt/mkspecs/modules" else # Shared release # The .dll's are installed in both bindir and libdir, one copy of the .dll's is sufficient @@ -386,11 +403,11 @@ package() { strip --strip-unneeded "${pkgdir}/usr/${_arch}/lib/libQt5Bootstrap"{,DBus}.so.${pkgver} fi - # Applications might be useful as well; keeping them will not hurt anybody I suppose - if ! isStatic; then - find "${pkgdir}/usr/${_arch}" -name "*.exe" -exec ${_arch}-strip --strip-all {} \; - else + # Applications might be useful as well; keeping them by default will not hurt anybody I suppose + if isStatic || [[ $NO_EXECUTABLES ]]; then find "${pkgdir}/usr/${_arch}" -name "*.exe" -exec rm {} \; + else + find "${pkgdir}/usr/${_arch}" -name "*.exe" -exec ${_arch}-strip --strip-all {} \; fi # No use for these files though find "${pkgdir}/usr/${_arch}" \( -name "*.bat" -o -name "*.def" -o -name "*.exp" \) -exec rm {} \; diff --git a/qt5-base/mingw-w64-static/qt5-allow-usage-of-static-qt-with-cmake.patch b/qt5-base/mingw-w64-static/qt5-allow-usage-of-static-qt-with-cmake.patch index afd75102..844db1e7 100644 --- a/qt5-base/mingw-w64-static/qt5-allow-usage-of-static-qt-with-cmake.patch +++ b/qt5-base/mingw-w64-static/qt5-allow-usage-of-static-qt-with-cmake.patch @@ -1,5 +1,5 @@ ---- mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in.orig 2016-08-08 21:40:29.128136100 +0200 -+++ mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in 2016-08-09 01:09:41.545265900 +0200 +--- mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in.orig 2016-08-14 20:44:32.515151700 +0200 ++++ mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in 2016-08-18 23:22:00.447257800 +0200 @@ -59,19 +59,30 @@ set_property(TARGET Qt5::$${CMAKE_MODULE_NAME} APPEND PROPERTY IMPORTED_CONFIGURATIONS ${Configuration}) @@ -91,11 +91,25 @@ !!IF !equals(TEMPLATE, aux) !!IF !isEmpty(CMAKE_BUILD_IS_FRAMEWORK) set_property(TARGET Qt5::$${CMAKE_MODULE_NAME} PROPERTY FRAMEWORK 1) -@@ -243,64 +288,120 @@ - set_property(TARGET Qt5::$${CMAKE_MODULE_NAME} PROPERTY - INTERFACE_COMPILE_DEFINITIONS $${MODULE_DEFINE}) +@@ -240,67 +285,132 @@ -+ file(GLOB pluginTargetsMaybe \"${CMAKE_CURRENT_LIST_DIR}/Qt5$${CMAKE_MODULE_NAME}_*.cmake\") + set_property(TARGET Qt5::$${CMAKE_MODULE_NAME} PROPERTY + INTERFACE_INCLUDE_DIRECTORIES ${_Qt5$${CMAKE_MODULE_NAME}_OWN_INCLUDE_DIRS}) +- set_property(TARGET Qt5::$${CMAKE_MODULE_NAME} PROPERTY +- INTERFACE_COMPILE_DEFINITIONS $${MODULE_DEFINE}) ++ set(interface_compile_definitions $${MODULE_DEFINE}) ++ if(USE_STATIC_QT_BUILD) ++ set_property(TARGET Qt5::$${CMAKE_MODULE_NAME} PROPERTY ++ INTERFACE_COMPILE_DEFINITIONS $${CMAKE_INTERFACE_COMPILE_DEFINITIONS_STATIC} $${MODULE_DEFINE}) ++ else() ++ set_property(TARGET Qt5::$${CMAKE_MODULE_NAME} PROPERTY ++ INTERFACE_COMPILE_DEFINITIONS $${MODULE_DEFINE}) ++ endif() ++ if(USE_STATIC_QT_BUILD) ++ file(GLOB pluginTargetsMaybe \"${CMAKE_CURRENT_LIST_DIR}/StaticQt5$${CMAKE_MODULE_NAME}_*.cmake\") ++ else() ++ file(GLOB pluginTargetsMaybe \"${CMAKE_CURRENT_LIST_DIR}/Qt5$${CMAKE_MODULE_NAME}_*.cmake\") ++ endif() + unset(pluginTargets) + if (pluginTargetsMaybe) + foreach(pluginTarget ${pluginTargetsMaybe}) @@ -123,8 +137,8 @@ + get_filename_component(_plugindir ${PLUGIN_LOCATION} PATH) + get_filename_component(_plugindirname ${_plugindir} NAME) + get_filename_component(_pluginname ${PLUGIN_LOCATION} NAME) -+ string(REGEX REPLACE \"^lib(.*)\\\\.a\" \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/share/qt5/plugins/${_plugindirname}/\\\\1-static.prl\" plugin_prl_file_location ${_pluginname}) -+ macro_process_plugin_prl_file(${plugin_prl_file_location} ${Configuration} \"share/qt5/plugins\" ${PLUGIN_LOCATION} ) ++ string(REGEX REPLACE \"^lib(.*)\\\\.a\" \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/lib/qt/plugins/${_plugindirname}/\\\\1-static.prl\" plugin_prl_file_location ${_pluginname}) ++ macro_process_plugin_prl_file(${plugin_prl_file_location} ${Configuration} \"lib/qt/plugins\" ${PLUGIN_LOCATION}) + endif() + + endmacro() @@ -134,7 +148,7 @@ + include(${pluginTarget}) + endforeach() + endif() -+ + !!IF !equals(TEMPLATE, aux) !!IF !isEmpty(CMAKE_RELEASE_TYPE) -!!IF !isEmpty(CMAKE_STATIC_WINDOWS_BUILD) @@ -234,7 +248,7 @@ !!ELSE \"$${CMAKE_LIB_FILE_LOCATION_RELEASE}\" !!ENDIF -@@ -311,8 +412,12 @@ +@@ -311,8 +421,12 @@ \"$${CMAKE_IMPLIB_FILE_LOCATION_RELEASE}\" ) !!ENDIF _populate_$${CMAKE_MODULE_NAME}_target_properties(RELEASE \"$${CMAKE_LIB_FILE_LOCATION_RELEASE}\" \"$${CMAKE_IMPLIB_FILE_LOCATION_RELEASE}\" ) @@ -248,7 +262,7 @@ !!ENDIF // CMAKE_RELEASE_TYPE !!ENDIF // CMAKE_FIND_OTHER_LIBRARY_BUILD -@@ -323,28 +428,6 @@ +@@ -323,28 +437,6 @@ ) !!ENDIF // TEMPLATE != aux @@ -277,9 +291,87 @@ !!IF !isEmpty(CMAKE_MODULE_EXTRAS) include(\"${CMAKE_CURRENT_LIST_DIR}/Qt5$${CMAKE_MODULE_NAME}ConfigExtras.cmake\") ---- mkspecs/features/create_cmake.prf.orig 2016-08-08 21:40:29.127094800 +0200 -+++ mkspecs/features/create_cmake.prf 2016-08-08 21:40:29.126828300 +0200 -@@ -228,33 +228,30 @@ +--- mkspecs/features/data/cmake/Qt5PluginTarget.cmake.in.orig 2016-06-10 08:48:56.000000000 +0200 ++++ mkspecs/features/data/cmake/Qt5PluginTarget.cmake.in 2016-08-18 23:22:41.994211700 +0200 +@@ -2,10 +2,18 @@ + add_library(Qt5::$$CMAKE_PLUGIN_NAME MODULE IMPORTED) + + !!IF !isEmpty(CMAKE_RELEASE_TYPE) ++!!IF !isEmpty(CMAKE_STATIC_TYPE) ++_populate_$${CMAKE_MODULE_NAME}_plugin_properties($$CMAKE_PLUGIN_NAME RELEASE \"$${CMAKE_PLUGIN_LOCATION_RELEASE_STATIC}\") ++!!ELSE + _populate_$${CMAKE_MODULE_NAME}_plugin_properties($$CMAKE_PLUGIN_NAME RELEASE \"$${CMAKE_PLUGIN_LOCATION_RELEASE}\") + !!ENDIF ++!!ENDIF + !!IF !isEmpty(CMAKE_DEBUG_TYPE) ++!!IF !isEmpty(CMAKE_STATIC_TYPE) ++_populate_$${CMAKE_MODULE_NAME}_plugin_properties($$CMAKE_PLUGIN_NAME DEBUG \"$${CMAKE_PLUGIN_LOCATION_DEBUG_STATIC}\") ++!!ELSE + _populate_$${CMAKE_MODULE_NAME}_plugin_properties($$CMAKE_PLUGIN_NAME DEBUG \"$${CMAKE_PLUGIN_LOCATION_DEBUG}\") + !!ENDIF ++!!ENDIF + + list(APPEND Qt5$${CMAKE_MODULE_NAME}_PLUGINS Qt5::$$CMAKE_PLUGIN_NAME) +--- mkspecs/features/create_cmake.prf.orig 2016-08-14 20:44:32.513342200 +0200 ++++ mkspecs/features/create_cmake.prf 2016-08-18 22:47:39.606635000 +0200 +@@ -135,17 +135,19 @@ + CMAKE_PLUGIN_NAME = $$PLUGIN_CLASS_NAME + + win32 { +- isEmpty(CMAKE_STATIC_TYPE) { ++ mingw { + CMAKE_PLUGIN_LOCATION_RELEASE = $$PLUGIN_TYPE/$${TARGET}.dll + CMAKE_PLUGIN_LOCATION_DEBUG = $$PLUGIN_TYPE/$${TARGET}d.dll +- } else:mingw { +- CMAKE_PLUGIN_LOCATION_RELEASE = $$PLUGIN_TYPE/lib$${TARGET}.a +- CMAKE_PLUGIN_LOCATION_DEBUG = $$PLUGIN_TYPE/lib$${TARGET}d.a ++ CMAKE_PLUGIN_LOCATION_RELEASE_STATIC = $$PLUGIN_TYPE/lib$${TARGET}.a ++ CMAKE_PLUGIN_LOCATION_DEBUG_STATIC = $$PLUGIN_TYPE/lib$${TARGET}d.a + } else { # MSVC static + CMAKE_PLUGIN_LOCATION_RELEASE = $$PLUGIN_TYPE/$${TARGET}.lib + CMAKE_PLUGIN_LOCATION_DEBUG = $$PLUGIN_TYPE/$${TARGET}d.lib ++ CMAKE_PLUGIN_LOCATION_RELEASE_STATIC = $$PLUGIN_TYPE/$${TARGET}.lib ++ CMAKE_PLUGIN_LOCATION_DEBUG_STATIC = $$PLUGIN_TYPE/$${TARGET}d.lib + } + } else { ++ # this branch is broken by the patch, only apply when building for Windows + mac { + isEmpty(CMAKE_STATIC_TYPE): CMAKE_PlUGIN_EXT = .dylib + else: CMAKE_PlUGIN_EXT = .a +@@ -161,7 +163,8 @@ + } + } + cmake_target_file.input = $$PWD/data/cmake/Qt5PluginTarget.cmake.in +- cmake_target_file.output = $$CMAKE_OUT_DIR/Qt5$${CMAKE_MODULE_NAME}/Qt5$${CMAKE_MODULE_NAME}_$${PLUGIN_CLASS_NAME}.cmake ++ isEmpty(CMAKE_STATIC_TYPE): cmake_target_file.output = $$CMAKE_OUT_DIR/Qt5$${CMAKE_MODULE_NAME}/Qt5$${CMAKE_MODULE_NAME}_$${PLUGIN_CLASS_NAME}.cmake ++ else: cmake_target_file.output = $$CMAKE_OUT_DIR/Qt5$${CMAKE_MODULE_NAME}/StaticQt5$${CMAKE_MODULE_NAME}_$${PLUGIN_CLASS_NAME}.cmake + + !build_pass:QMAKE_SUBSTITUTES += \ + cmake_target_file +@@ -180,6 +183,8 @@ + lib_deps = + aux_mod_deps = + aux_lib_deps = ++aux_compile_defs_static = QT_STATIC QT_DESIGNER_STATIC ++contains(QT_CONFIG, angle): aux_compile_defs += QT_OPENGL_ES_2_ANGLE_STATIC + # Until CMake 3.0 is the minimum requirement of Qt 5, we need to filter + # out header-only modules from dependencies. CMake 3.0 provides INTERFACE + # libraries which are equivalent to header-only modules. +@@ -197,10 +202,13 @@ + CMAKE_QT5_MODULE_DEPS = $$join(lib_deps, ";") + CMAKE_INTERFACE_MODULE_DEPS = $$join(aux_mod_deps, ";") + CMAKE_INTERFACE_QT5_MODULE_DEPS = $$join(aux_lib_deps, ";") ++CMAKE_INTERFACE_COMPILE_DEFINITIONS_STATIC = $$join(aux_compile_defs_static, ";") ++ + + CMAKE_QT_STEM = Qt$$QT_MAJOR_VERSION$${CMAKE_MODULE_NAME}$${QT_LIBINFIX} + + mac { ++ # this branch is broken by the patch, only apply when building for Windows + !isEmpty(CMAKE_STATIC_TYPE) { + CMAKE_LIB_FILE_LOCATION_DEBUG = lib$${CMAKE_QT_STEM}_debug.a + CMAKE_LIB_FILE_LOCATION_RELEASE = lib$${CMAKE_QT_STEM}.a +@@ -228,35 +236,33 @@ CMAKE_WINMAIN_FILE_LOCATION_DEBUG = libqt5main$${QT_LIBINFIX}.a CMAKE_WINMAIN_FILE_LOCATION_RELEASE = libqt5main$${QT_LIBINFIX}.a @@ -287,7 +379,7 @@ - CMAKE_STATIC_WINDOWS_BUILD = "true" - 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 ++ isEmpty(QMAKE_EXTENSION_IMPORTLIB): QMAKE_EXTENSION_IMPORTLIB = dll.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} + CMAKE_PRL_FILE_LOCATION_DEBUG = $${CMAKE_QT_STEM}d.prl @@ -313,24 +405,28 @@ - CMAKE_STATIC_WINDOWS_BUILD = "true" - CMAKE_IMPLIB_FILE_LOCATION_DEBUG = $${CMAKE_QT_STEM}d.lib - CMAKE_IMPLIB_FILE_LOCATION_RELEASE = $${CMAKE_QT_STEM}.lib -+ CMAKE_IMPLIB_FILE_LOCATION_DEBUG = $${CMAKE_QT_STEM}d.lib -+ CMAKE_IMPLIB_FILE_LOCATION_RELEASE = $${CMAKE_QT_STEM}.lib -+ CMAKE_PRL_FILE_LOCATION_DEBUG = $${CMAKE_QT_STEM}d.prl -+ CMAKE_PRL_FILE_LOCATION_RELEASE = $${CMAKE_QT_STEM}.prl - +- - CMAKE_PRL_FILE_LOCATION_DEBUG = $${CMAKE_QT_STEM}d.prl - CMAKE_PRL_FILE_LOCATION_RELEASE = $${CMAKE_QT_STEM}.prl - } else { - CMAKE_IMPLIB_FILE_LOCATION_DEBUG = $${CMAKE_QT_STEM}d.lib - CMAKE_IMPLIB_FILE_LOCATION_RELEASE = $${CMAKE_QT_STEM}.lib - } ++ CMAKE_IMPLIB_FILE_LOCATION_DEBUG = $${CMAKE_QT_STEM}d.lib ++ CMAKE_IMPLIB_FILE_LOCATION_RELEASE = $${CMAKE_QT_STEM}.lib ++ CMAKE_PRL_FILE_LOCATION_DEBUG = $${CMAKE_QT_STEM}d.prl ++ CMAKE_PRL_FILE_LOCATION_RELEASE = $${CMAKE_QT_STEM}.prl ++ + CMAKE_IMPLIB_FILE_LOCATION_DEBUG_STATIC = $${CMAKE_QT_STEM}d.lib + CMAKE_IMPLIB_FILE_LOCATION_RELEASE_STATIC = $${CMAKE_QT_STEM}.lib + CMAKE_PRL_FILE_LOCATION_DEBUG_STATIC = $${CMAKE_QT_STEM}d-static.prl + CMAKE_PRL_FILE_LOCATION_RELEASE_STATIC = $${CMAKE_QT_STEM}-static.prl } } else { ++ # this branch is broken by the patch, only apply when building for Windows !isEmpty(CMAKE_STATIC_TYPE) { + CMAKE_LIB_FILE_LOCATION_DEBUG = lib$${CMAKE_QT_STEM}.a + CMAKE_LIB_FILE_LOCATION_RELEASE = lib$${CMAKE_QT_STEM}.a --- qmake/generators/makefile.cpp 2015-08-26 14:29:10.131124600 +0100 +++ qmake/generators/makefile.cpp 2015-08-26 15:06:33.375635900 +0100 @@ -1006,6 +1006,13 @@ diff --git a/qt5-base/mingw-w64-static/qt5-merge-static-and-shared-library-trees.patch b/qt5-base/mingw-w64-static/qt5-merge-static-and-shared-library-trees.patch index 67a2eafe..9e6271a6 100644 --- a/qt5-base/mingw-w64-static/qt5-merge-static-and-shared-library-trees.patch +++ b/qt5-base/mingw-w64-static/qt5-merge-static-and-shared-library-trees.patch @@ -21,15 +21,16 @@ --- mkspecs/features/default_post.prf.orig 2012-09-05 23:28:56.827501401 +0200 +++ mkspecs/features/default_post.prf 2012-09-05 23:29:31.617923080 +0200 -@@ -47,3 +50,10 @@ +@@ -47,3 +50,11 @@ QMAKE_INCDIR += $$QMAKE_INCDIR_POST QMAKE_LIBDIR += $$QMAKE_LIBDIR_POST + +win32:contains(CONFIG, static) { + DEFINES += QT_STATIC QT_DESIGNER_STATIC ++ DEFINES -= QT_SHARED + contains(QT_CONFIG, angle): DEFINES += QT_OPENGL_ES_2_ANGLE_STATIC -+ QMAKE_LFLAGS += -static ++ QMAKE_LFLAGS += -static -static-libstdc++ -static-libgcc + QMAKE_EXT_PRL=-static.prl # prevents qmake from finding the prl file for shared libs +} --- configure.orig 2012-12-10 23:51:02.920255366 +0100 diff --git a/qt5-base/mingw-w64/PKGBUILD b/qt5-base/mingw-w64/PKGBUILD index d28548a6..4241a0c9 100644 --- a/qt5-base/mingw-w64/PKGBUILD +++ b/qt5-base/mingw-w64/PKGBUILD @@ -13,14 +13,28 @@ # By default CMake and qmake will link against the dynamic libary. -# To use the static variant with CMake set the following variable before calling find_package: +# To use the static variant with CMake set the following variable before calling find_package for finding a Qt module: # set(USE_STATIC_QT_BUILD ON) -# FIXME: Whether the static variant actually works with CMake has not been tested yet. +# To use a static plugin, add the corresponding imported target, eg. +# target_link_libraries(target ... Qt5::QWindowsIntegrationPlugin) +# Automatically importing static plugins is currently not possible, though. Hence it is required to use Q_IMPORT_PLUGIN, eg. +# #include +# Q_IMPORT_PLUGIN(QWindowsIntegrationPlugin) # To use the static variant with qmake set the following variables (either inside the *.pro file or as qmake argument): # CONFIG+=static -# QMAKE_EXT_PRL=-static.prl -# Setting QMAKE_EXT_PRL is a workaround to prevent qmake from using the *.prl files from the dynamic build. + +# Further Qt modules (those not found in the base repository and hence not included in this package) include by default +# static and dynamic libraries; if only one version is requried, just +# set $NO_STATIC_LIBS or $NO_SHARED_LIBS. + +# By default, executables will not be removed because I find them useful when testing. To remove executables +# set $NO_EXECUTABLES or $NO_STATIC_EXECUTABLES to remove statically linked executables only. +# However, if Qt modules containing tools are built as static and as dynamic library only the dynamically linked +# tools will be present in the package. + +# Qt packages can be built in the following order (for example): +# qt5-base qt5-declarative qt5-tools qt5-xmlpatterns qt5-script qt5-location qt5-multimedia qt5-sensors qt5-webchannel qt5-3d qt5-imageformats qt5-quickcontrols qt5-quickcontrols2 qt5-translations qt5-svg qt5-websockets qt5-winextras qt5-serialport qt5-canvas3d qt5-connectivity qt5-charts qt5-gamepad qt5-scxml qt5-datavis3s qt5-virtualkeyboard qt5-activeqt qt5-webkit # Helper functions for the split builds isStatic() { @@ -82,7 +96,7 @@ md5sums=('184f9460b40752d71b15b827260580c2' 'bab00ccc19d888997f323c80354a7c3f' 'f7e1487de6e85116d9c6bde2eac4fb73' 'bc99c4cc6998295d76f37ed681c20d47' - 'cb6354a788754ac9c84fedfbda34e3b6' + '370218fd439f25ab3f35bd1f14652988' '4fe6523dd1c34398df3aa5a8763530cc' 'f32a768e1acb9785c79c8e93aa266db2' '3bd322551924543553a2bf81b4419a09' @@ -98,7 +112,7 @@ md5sums=('184f9460b40752d71b15b827260580c2' '83139869355c2d46921adb25e47cf0fa' 'b9565219e9252a17fc1b8fb9ee30662c' '20de722808e8a3fb684b0212bef8de46' - '5978bff7f1f915bb96ccc1d25c915f69' + '1dc792faa7761d8d7d2f17170da04d6b' '41ec67d9e5e70e0d6d93b42aebd0e12a' '61c0f9d0095c5a6dec8d14e9ec35a608' 'bba65d27704cf36e148d8f18ad02ad15') @@ -352,13 +366,16 @@ package() { # Keep a couple pri files not found in base mv "${pkgdir}/usr/${_arch}/lib/qt/mkspecs/modules/qt_plugin_"*.pri "${pkgdir}/usr/${_arch}" - # Move pri files back - mkdir -p "${pkgdir}/usr/${_arch}/lib/qt/mkspecs/modules" - mv "${pkgdir}/usr/${_arch}/"*.pri "${pkgdir}/usr/${_arch}/lib/qt/mkspecs/modules" + # remove CMake which are also in base + find "${pkgdir}/usr/${_arch}/lib/cmake" -not -name "Static*.cmake" -exec rm {} \; # Delete duplicate files that are in the base package rm -fR "${pkgdir}/usr/${_arch}/"{include,share} - rm -fR "${pkgdir}/usr/${_arch}/lib/"{qt/bin,qt/mkspecs,cmake} + rm -fR "${pkgdir}/usr/${_arch}/lib/"{qt/bin,qt/mkspecs} + + # Move pri files back + mkdir -p "${pkgdir}/usr/${_arch}/lib/qt/mkspecs/modules" + mv "${pkgdir}/usr/${_arch}/"*.pri "${pkgdir}/usr/${_arch}/lib/qt/mkspecs/modules" else # Shared release # The .dll's are installed in both bindir and libdir, one copy of the .dll's is sufficient @@ -386,11 +403,11 @@ package() { strip --strip-unneeded "${pkgdir}/usr/${_arch}/lib/libQt5Bootstrap"{,DBus}.so.${pkgver} fi - # Applications might be useful as well; keeping them will not hurt anybody I suppose - if ! isStatic; then - find "${pkgdir}/usr/${_arch}" -name "*.exe" -exec ${_arch}-strip --strip-all {} \; - else + # Applications might be useful as well; keeping them by default will not hurt anybody I suppose + if isStatic || [[ $NO_EXECUTABLES ]]; then find "${pkgdir}/usr/${_arch}" -name "*.exe" -exec rm {} \; + else + find "${pkgdir}/usr/${_arch}" -name "*.exe" -exec ${_arch}-strip --strip-all {} \; fi # No use for these files though find "${pkgdir}/usr/${_arch}" \( -name "*.bat" -o -name "*.def" -o -name "*.exp" \) -exec rm {} \; diff --git a/qt5-base/mingw-w64/qt5-allow-usage-of-static-qt-with-cmake.patch b/qt5-base/mingw-w64/qt5-allow-usage-of-static-qt-with-cmake.patch index afd75102..844db1e7 100644 --- a/qt5-base/mingw-w64/qt5-allow-usage-of-static-qt-with-cmake.patch +++ b/qt5-base/mingw-w64/qt5-allow-usage-of-static-qt-with-cmake.patch @@ -1,5 +1,5 @@ ---- mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in.orig 2016-08-08 21:40:29.128136100 +0200 -+++ mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in 2016-08-09 01:09:41.545265900 +0200 +--- mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in.orig 2016-08-14 20:44:32.515151700 +0200 ++++ mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in 2016-08-18 23:22:00.447257800 +0200 @@ -59,19 +59,30 @@ set_property(TARGET Qt5::$${CMAKE_MODULE_NAME} APPEND PROPERTY IMPORTED_CONFIGURATIONS ${Configuration}) @@ -91,11 +91,25 @@ !!IF !equals(TEMPLATE, aux) !!IF !isEmpty(CMAKE_BUILD_IS_FRAMEWORK) set_property(TARGET Qt5::$${CMAKE_MODULE_NAME} PROPERTY FRAMEWORK 1) -@@ -243,64 +288,120 @@ - set_property(TARGET Qt5::$${CMAKE_MODULE_NAME} PROPERTY - INTERFACE_COMPILE_DEFINITIONS $${MODULE_DEFINE}) +@@ -240,67 +285,132 @@ -+ file(GLOB pluginTargetsMaybe \"${CMAKE_CURRENT_LIST_DIR}/Qt5$${CMAKE_MODULE_NAME}_*.cmake\") + set_property(TARGET Qt5::$${CMAKE_MODULE_NAME} PROPERTY + INTERFACE_INCLUDE_DIRECTORIES ${_Qt5$${CMAKE_MODULE_NAME}_OWN_INCLUDE_DIRS}) +- set_property(TARGET Qt5::$${CMAKE_MODULE_NAME} PROPERTY +- INTERFACE_COMPILE_DEFINITIONS $${MODULE_DEFINE}) ++ set(interface_compile_definitions $${MODULE_DEFINE}) ++ if(USE_STATIC_QT_BUILD) ++ set_property(TARGET Qt5::$${CMAKE_MODULE_NAME} PROPERTY ++ INTERFACE_COMPILE_DEFINITIONS $${CMAKE_INTERFACE_COMPILE_DEFINITIONS_STATIC} $${MODULE_DEFINE}) ++ else() ++ set_property(TARGET Qt5::$${CMAKE_MODULE_NAME} PROPERTY ++ INTERFACE_COMPILE_DEFINITIONS $${MODULE_DEFINE}) ++ endif() ++ if(USE_STATIC_QT_BUILD) ++ file(GLOB pluginTargetsMaybe \"${CMAKE_CURRENT_LIST_DIR}/StaticQt5$${CMAKE_MODULE_NAME}_*.cmake\") ++ else() ++ file(GLOB pluginTargetsMaybe \"${CMAKE_CURRENT_LIST_DIR}/Qt5$${CMAKE_MODULE_NAME}_*.cmake\") ++ endif() + unset(pluginTargets) + if (pluginTargetsMaybe) + foreach(pluginTarget ${pluginTargetsMaybe}) @@ -123,8 +137,8 @@ + get_filename_component(_plugindir ${PLUGIN_LOCATION} PATH) + get_filename_component(_plugindirname ${_plugindir} NAME) + get_filename_component(_pluginname ${PLUGIN_LOCATION} NAME) -+ string(REGEX REPLACE \"^lib(.*)\\\\.a\" \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/share/qt5/plugins/${_plugindirname}/\\\\1-static.prl\" plugin_prl_file_location ${_pluginname}) -+ macro_process_plugin_prl_file(${plugin_prl_file_location} ${Configuration} \"share/qt5/plugins\" ${PLUGIN_LOCATION} ) ++ string(REGEX REPLACE \"^lib(.*)\\\\.a\" \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/lib/qt/plugins/${_plugindirname}/\\\\1-static.prl\" plugin_prl_file_location ${_pluginname}) ++ macro_process_plugin_prl_file(${plugin_prl_file_location} ${Configuration} \"lib/qt/plugins\" ${PLUGIN_LOCATION}) + endif() + + endmacro() @@ -134,7 +148,7 @@ + include(${pluginTarget}) + endforeach() + endif() -+ + !!IF !equals(TEMPLATE, aux) !!IF !isEmpty(CMAKE_RELEASE_TYPE) -!!IF !isEmpty(CMAKE_STATIC_WINDOWS_BUILD) @@ -234,7 +248,7 @@ !!ELSE \"$${CMAKE_LIB_FILE_LOCATION_RELEASE}\" !!ENDIF -@@ -311,8 +412,12 @@ +@@ -311,8 +421,12 @@ \"$${CMAKE_IMPLIB_FILE_LOCATION_RELEASE}\" ) !!ENDIF _populate_$${CMAKE_MODULE_NAME}_target_properties(RELEASE \"$${CMAKE_LIB_FILE_LOCATION_RELEASE}\" \"$${CMAKE_IMPLIB_FILE_LOCATION_RELEASE}\" ) @@ -248,7 +262,7 @@ !!ENDIF // CMAKE_RELEASE_TYPE !!ENDIF // CMAKE_FIND_OTHER_LIBRARY_BUILD -@@ -323,28 +428,6 @@ +@@ -323,28 +437,6 @@ ) !!ENDIF // TEMPLATE != aux @@ -277,9 +291,87 @@ !!IF !isEmpty(CMAKE_MODULE_EXTRAS) include(\"${CMAKE_CURRENT_LIST_DIR}/Qt5$${CMAKE_MODULE_NAME}ConfigExtras.cmake\") ---- mkspecs/features/create_cmake.prf.orig 2016-08-08 21:40:29.127094800 +0200 -+++ mkspecs/features/create_cmake.prf 2016-08-08 21:40:29.126828300 +0200 -@@ -228,33 +228,30 @@ +--- mkspecs/features/data/cmake/Qt5PluginTarget.cmake.in.orig 2016-06-10 08:48:56.000000000 +0200 ++++ mkspecs/features/data/cmake/Qt5PluginTarget.cmake.in 2016-08-18 23:22:41.994211700 +0200 +@@ -2,10 +2,18 @@ + add_library(Qt5::$$CMAKE_PLUGIN_NAME MODULE IMPORTED) + + !!IF !isEmpty(CMAKE_RELEASE_TYPE) ++!!IF !isEmpty(CMAKE_STATIC_TYPE) ++_populate_$${CMAKE_MODULE_NAME}_plugin_properties($$CMAKE_PLUGIN_NAME RELEASE \"$${CMAKE_PLUGIN_LOCATION_RELEASE_STATIC}\") ++!!ELSE + _populate_$${CMAKE_MODULE_NAME}_plugin_properties($$CMAKE_PLUGIN_NAME RELEASE \"$${CMAKE_PLUGIN_LOCATION_RELEASE}\") + !!ENDIF ++!!ENDIF + !!IF !isEmpty(CMAKE_DEBUG_TYPE) ++!!IF !isEmpty(CMAKE_STATIC_TYPE) ++_populate_$${CMAKE_MODULE_NAME}_plugin_properties($$CMAKE_PLUGIN_NAME DEBUG \"$${CMAKE_PLUGIN_LOCATION_DEBUG_STATIC}\") ++!!ELSE + _populate_$${CMAKE_MODULE_NAME}_plugin_properties($$CMAKE_PLUGIN_NAME DEBUG \"$${CMAKE_PLUGIN_LOCATION_DEBUG}\") + !!ENDIF ++!!ENDIF + + list(APPEND Qt5$${CMAKE_MODULE_NAME}_PLUGINS Qt5::$$CMAKE_PLUGIN_NAME) +--- mkspecs/features/create_cmake.prf.orig 2016-08-14 20:44:32.513342200 +0200 ++++ mkspecs/features/create_cmake.prf 2016-08-18 22:47:39.606635000 +0200 +@@ -135,17 +135,19 @@ + CMAKE_PLUGIN_NAME = $$PLUGIN_CLASS_NAME + + win32 { +- isEmpty(CMAKE_STATIC_TYPE) { ++ mingw { + CMAKE_PLUGIN_LOCATION_RELEASE = $$PLUGIN_TYPE/$${TARGET}.dll + CMAKE_PLUGIN_LOCATION_DEBUG = $$PLUGIN_TYPE/$${TARGET}d.dll +- } else:mingw { +- CMAKE_PLUGIN_LOCATION_RELEASE = $$PLUGIN_TYPE/lib$${TARGET}.a +- CMAKE_PLUGIN_LOCATION_DEBUG = $$PLUGIN_TYPE/lib$${TARGET}d.a ++ CMAKE_PLUGIN_LOCATION_RELEASE_STATIC = $$PLUGIN_TYPE/lib$${TARGET}.a ++ CMAKE_PLUGIN_LOCATION_DEBUG_STATIC = $$PLUGIN_TYPE/lib$${TARGET}d.a + } else { # MSVC static + CMAKE_PLUGIN_LOCATION_RELEASE = $$PLUGIN_TYPE/$${TARGET}.lib + CMAKE_PLUGIN_LOCATION_DEBUG = $$PLUGIN_TYPE/$${TARGET}d.lib ++ CMAKE_PLUGIN_LOCATION_RELEASE_STATIC = $$PLUGIN_TYPE/$${TARGET}.lib ++ CMAKE_PLUGIN_LOCATION_DEBUG_STATIC = $$PLUGIN_TYPE/$${TARGET}d.lib + } + } else { ++ # this branch is broken by the patch, only apply when building for Windows + mac { + isEmpty(CMAKE_STATIC_TYPE): CMAKE_PlUGIN_EXT = .dylib + else: CMAKE_PlUGIN_EXT = .a +@@ -161,7 +163,8 @@ + } + } + cmake_target_file.input = $$PWD/data/cmake/Qt5PluginTarget.cmake.in +- cmake_target_file.output = $$CMAKE_OUT_DIR/Qt5$${CMAKE_MODULE_NAME}/Qt5$${CMAKE_MODULE_NAME}_$${PLUGIN_CLASS_NAME}.cmake ++ isEmpty(CMAKE_STATIC_TYPE): cmake_target_file.output = $$CMAKE_OUT_DIR/Qt5$${CMAKE_MODULE_NAME}/Qt5$${CMAKE_MODULE_NAME}_$${PLUGIN_CLASS_NAME}.cmake ++ else: cmake_target_file.output = $$CMAKE_OUT_DIR/Qt5$${CMAKE_MODULE_NAME}/StaticQt5$${CMAKE_MODULE_NAME}_$${PLUGIN_CLASS_NAME}.cmake + + !build_pass:QMAKE_SUBSTITUTES += \ + cmake_target_file +@@ -180,6 +183,8 @@ + lib_deps = + aux_mod_deps = + aux_lib_deps = ++aux_compile_defs_static = QT_STATIC QT_DESIGNER_STATIC ++contains(QT_CONFIG, angle): aux_compile_defs += QT_OPENGL_ES_2_ANGLE_STATIC + # Until CMake 3.0 is the minimum requirement of Qt 5, we need to filter + # out header-only modules from dependencies. CMake 3.0 provides INTERFACE + # libraries which are equivalent to header-only modules. +@@ -197,10 +202,13 @@ + CMAKE_QT5_MODULE_DEPS = $$join(lib_deps, ";") + CMAKE_INTERFACE_MODULE_DEPS = $$join(aux_mod_deps, ";") + CMAKE_INTERFACE_QT5_MODULE_DEPS = $$join(aux_lib_deps, ";") ++CMAKE_INTERFACE_COMPILE_DEFINITIONS_STATIC = $$join(aux_compile_defs_static, ";") ++ + + CMAKE_QT_STEM = Qt$$QT_MAJOR_VERSION$${CMAKE_MODULE_NAME}$${QT_LIBINFIX} + + mac { ++ # this branch is broken by the patch, only apply when building for Windows + !isEmpty(CMAKE_STATIC_TYPE) { + CMAKE_LIB_FILE_LOCATION_DEBUG = lib$${CMAKE_QT_STEM}_debug.a + CMAKE_LIB_FILE_LOCATION_RELEASE = lib$${CMAKE_QT_STEM}.a +@@ -228,35 +236,33 @@ CMAKE_WINMAIN_FILE_LOCATION_DEBUG = libqt5main$${QT_LIBINFIX}.a CMAKE_WINMAIN_FILE_LOCATION_RELEASE = libqt5main$${QT_LIBINFIX}.a @@ -287,7 +379,7 @@ - CMAKE_STATIC_WINDOWS_BUILD = "true" - 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 ++ isEmpty(QMAKE_EXTENSION_IMPORTLIB): QMAKE_EXTENSION_IMPORTLIB = dll.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} + CMAKE_PRL_FILE_LOCATION_DEBUG = $${CMAKE_QT_STEM}d.prl @@ -313,24 +405,28 @@ - CMAKE_STATIC_WINDOWS_BUILD = "true" - CMAKE_IMPLIB_FILE_LOCATION_DEBUG = $${CMAKE_QT_STEM}d.lib - CMAKE_IMPLIB_FILE_LOCATION_RELEASE = $${CMAKE_QT_STEM}.lib -+ CMAKE_IMPLIB_FILE_LOCATION_DEBUG = $${CMAKE_QT_STEM}d.lib -+ CMAKE_IMPLIB_FILE_LOCATION_RELEASE = $${CMAKE_QT_STEM}.lib -+ CMAKE_PRL_FILE_LOCATION_DEBUG = $${CMAKE_QT_STEM}d.prl -+ CMAKE_PRL_FILE_LOCATION_RELEASE = $${CMAKE_QT_STEM}.prl - +- - CMAKE_PRL_FILE_LOCATION_DEBUG = $${CMAKE_QT_STEM}d.prl - CMAKE_PRL_FILE_LOCATION_RELEASE = $${CMAKE_QT_STEM}.prl - } else { - CMAKE_IMPLIB_FILE_LOCATION_DEBUG = $${CMAKE_QT_STEM}d.lib - CMAKE_IMPLIB_FILE_LOCATION_RELEASE = $${CMAKE_QT_STEM}.lib - } ++ CMAKE_IMPLIB_FILE_LOCATION_DEBUG = $${CMAKE_QT_STEM}d.lib ++ CMAKE_IMPLIB_FILE_LOCATION_RELEASE = $${CMAKE_QT_STEM}.lib ++ CMAKE_PRL_FILE_LOCATION_DEBUG = $${CMAKE_QT_STEM}d.prl ++ CMAKE_PRL_FILE_LOCATION_RELEASE = $${CMAKE_QT_STEM}.prl ++ + CMAKE_IMPLIB_FILE_LOCATION_DEBUG_STATIC = $${CMAKE_QT_STEM}d.lib + CMAKE_IMPLIB_FILE_LOCATION_RELEASE_STATIC = $${CMAKE_QT_STEM}.lib + CMAKE_PRL_FILE_LOCATION_DEBUG_STATIC = $${CMAKE_QT_STEM}d-static.prl + CMAKE_PRL_FILE_LOCATION_RELEASE_STATIC = $${CMAKE_QT_STEM}-static.prl } } else { ++ # this branch is broken by the patch, only apply when building for Windows !isEmpty(CMAKE_STATIC_TYPE) { + CMAKE_LIB_FILE_LOCATION_DEBUG = lib$${CMAKE_QT_STEM}.a + CMAKE_LIB_FILE_LOCATION_RELEASE = lib$${CMAKE_QT_STEM}.a --- qmake/generators/makefile.cpp 2015-08-26 14:29:10.131124600 +0100 +++ qmake/generators/makefile.cpp 2015-08-26 15:06:33.375635900 +0100 @@ -1006,6 +1006,13 @@ diff --git a/qt5-base/mingw-w64/qt5-merge-static-and-shared-library-trees.patch b/qt5-base/mingw-w64/qt5-merge-static-and-shared-library-trees.patch index 67a2eafe..9e6271a6 100644 --- a/qt5-base/mingw-w64/qt5-merge-static-and-shared-library-trees.patch +++ b/qt5-base/mingw-w64/qt5-merge-static-and-shared-library-trees.patch @@ -21,15 +21,16 @@ --- mkspecs/features/default_post.prf.orig 2012-09-05 23:28:56.827501401 +0200 +++ mkspecs/features/default_post.prf 2012-09-05 23:29:31.617923080 +0200 -@@ -47,3 +50,10 @@ +@@ -47,3 +50,11 @@ QMAKE_INCDIR += $$QMAKE_INCDIR_POST QMAKE_LIBDIR += $$QMAKE_LIBDIR_POST + +win32:contains(CONFIG, static) { + DEFINES += QT_STATIC QT_DESIGNER_STATIC ++ DEFINES -= QT_SHARED + contains(QT_CONFIG, angle): DEFINES += QT_OPENGL_ES_2_ANGLE_STATIC -+ QMAKE_LFLAGS += -static ++ QMAKE_LFLAGS += -static -static-libstdc++ -static-libgcc + QMAKE_EXT_PRL=-static.prl # prevents qmake from finding the prl file for shared libs +} --- configure.orig 2012-12-10 23:51:02.920255366 +0100 diff --git a/qt5-canvas3d/mingw-w64/PKGBUILD b/qt5-canvas3d/mingw-w64/PKGBUILD index a374baa8..aaf13067 100644 --- a/qt5-canvas3d/mingw-w64/PKGBUILD +++ b/qt5-canvas3d/mingw-w64/PKGBUILD @@ -3,10 +3,13 @@ # All my PKGBUILDs are managed at https://github.com/Martchus/PKGBUILDs where # you also find the URL of a binary repository. +# Includes dynamic and static versions; if only one version is requried, just +# set $NO_STATIC_LIBS or $NO_SHARED_LIBS. + _qt_module=qtcanvas3d pkgname="mingw-w64-qt5-canvas3d" pkgver=5.7.0 -pkgrel=1 +pkgrel=2 arch=('any') pkgdesc="A JavaScript 3D rendering API for Qt Quick (mingw-w64)" depends=('mingw-w64-qt5-declarative') @@ -18,18 +21,25 @@ _pkgfqn="${_qt_module}-opensource-src-${pkgver}" source=("https://download.qt.io/official_releases/qt/${pkgver:0:3}/${pkgver}/submodules/${_pkgfqn}.tar.xz") md5sums=('1974a0025f96a2cc08948fbdb422805f') -_architectures="i686-w64-mingw32 x86_64-w64-mingw32" +_architectures='i686-w64-mingw32 x86_64-w64-mingw32' +[[ $NO_STATIC_LIBS ]] || \ + makedepends+=('mingw-w64-qt5-base-static') \ + optdepends+=('mingw-w64-qt5-base-static: use of static libraries') \ + _configurations+=('CONFIG+=static') +[[ $NO_SHARED_LIBS ]] || \ + _configurations+=('CONFIG+=shared') build() { cd "${srcdir}/${_pkgfqn}" for _arch in ${_architectures}; do - mkdir -p build-${_arch} && pushd build-${_arch} - - ${_arch}-qmake-qt5 ../${_qt_module}.pro - make - - popd + for _config in "${_configurations[@]}"; do + msg2 "Building ${_config##*=} version for ${_arch}" + mkdir -p build-${_arch}-${_config##*=} && pushd build-${_arch}-${_config##*=} + ${_arch}-qmake-qt5 ../${_qt_module}.pro ${_config} + make + popd + done done } @@ -37,18 +47,24 @@ package() { cd "${srcdir}/${_pkgfqn}" for _arch in ${_architectures}; do - pushd build-${_arch} + for _config in "${_configurations[@]}"; do + pushd build-${_arch}-${_config##*=} - # install manually to get the import lib, too - install -Dm755 qml/QtCanvas3D/*.dll -t "${pkgdir}/usr/${_arch}/bin" - install -Dm644 qml/QtCanvas3D/*.dll.a -t "${pkgdir}/usr/${_arch}/lib" - - ${_arch}-strip --strip-unneeded "${pkgdir}/usr/${_arch}/bin/"*.dll - ${_arch}-strip -g "${pkgdir}/usr/${_arch}/lib/"*.dll.a - - popd + make INSTALL_ROOT="$pkgdir" install + # ensure to get the import lib, too + [[ "${_config##*=}" == 'shared' ]] && + install -Dm755 qml/QtCanvas3D/*.dll -t "${pkgdir}/usr/${_arch}/bin" && + install -Dm644 qml/QtCanvas3D/*.dll.a -t "${pkgdir}/usr/${_arch}/lib" + find "${pkgdir}/usr/${_arch}/lib" -maxdepth 1 -name "*.dll" -exec rm {} \; + [ "$NO_STATIC_EXECUTABLES" -a "${_config##*=}" = static -o "$NO_EXECUTABLES" ] && \ + find "${pkgdir}/usr/${_arch}" -name "*.exe" -exec rm {} \; || \ + find "${pkgdir}/usr/${_arch}" -name "*.exe" -exec ${_arch}-strip --strip-all {} \; + find "${pkgdir}/usr/${_arch}" -name "*.dll" -exec ${_arch}-strip --strip-unneeded {} \; + find "${pkgdir}/usr/${_arch}" -name "*.a" -exec ${_arch}-strip -g {} \; + [[ -d "${pkgdir}/usr/${_arch}/lib/qt/bin/" ]] && \ + find "${pkgdir}/usr/${_arch}/lib/qt/bin/" -exec strip --strip-all {} \; + find "${pkgdir}/usr/${_arch}/lib/" -iname "*.so.$pkgver" -exec strip --strip-unneeded {} \; + popd + done done - - # .prl files aren't interesting for us - find "${pkgdir}" -name "*.prl" -delete } diff --git a/qt5-charts/mingw-w64/PKGBUILD b/qt5-charts/mingw-w64/PKGBUILD index eb6cfd37..fd8c2b03 100644 --- a/qt5-charts/mingw-w64/PKGBUILD +++ b/qt5-charts/mingw-w64/PKGBUILD @@ -3,10 +3,13 @@ # All my PKGBUILDs are managed at https://github.com/Martchus/PKGBUILDs where # you also find the URL of a binary repository. +# Includes dynamic and static versions; if only one version is requried, just +# set $NO_STATIC_LIBS or $NO_SHARED_LIBS. + _qt_module=qtcharts pkgname="mingw-w64-qt5-charts" pkgver=5.7.0 -pkgrel=1 +pkgrel=2 arch=('any') pkgdesc="Provides a set of easy to use chart components (mingw-w64)" depends=('mingw-w64-qt5-base') @@ -19,18 +22,25 @@ _pkgfqn="${_qt_module}-opensource-src-${pkgver}" source=("https://download.qt.io/official_releases/qt/${pkgver:0:3}/${pkgver}/submodules/${_pkgfqn}.tar.xz") md5sums=('9b4f6931c946b8dc1fad97bf8c30f485') -_architectures="i686-w64-mingw32 x86_64-w64-mingw32" +_architectures='i686-w64-mingw32 x86_64-w64-mingw32' +[[ $NO_STATIC_LIBS ]] || \ + makedepends+=('mingw-w64-qt5-base-static') \ + optdepends+=('mingw-w64-qt5-base-static: use of static libraries') \ + _configurations+=('CONFIG+=static') +[[ $NO_SHARED_LIBS ]] || \ + _configurations+=('CONFIG+=shared') build() { cd "${srcdir}/${_pkgfqn}" for _arch in ${_architectures}; do - mkdir -p build-${_arch} && pushd build-${_arch} - - ${_arch}-qmake-qt5 ../${_qt_module}.pro - make - - popd + for _config in "${_configurations[@]}"; do + msg2 "Building ${_config##*=} version for ${_arch}" + mkdir -p build-${_arch}-${_config##*=} && pushd build-${_arch}-${_config##*=} + ${_arch}-qmake-qt5 ../${_qt_module}.pro ${_config} + make + popd + done done } @@ -38,20 +48,20 @@ package() { cd "${srcdir}/${_pkgfqn}" for _arch in ${_architectures}; do - pushd build-${_arch} + for _config in "${_configurations[@]}"; do + pushd build-${_arch}-${_config##*=} - make INSTALL_ROOT="${pkgdir}" install - - # The .dll's are installed in both bindir and libdir - # One copy of the .dll's is sufficient - rm -f "${pkgdir}/usr/${_arch}/lib/"*.dll - - ${_arch}-strip --strip-unneeded "${pkgdir}/usr/${_arch}/bin/"*.dll - ${_arch}-strip --strip-unneeded "${pkgdir}/usr/${_arch}/lib/"*.dll.a - - popd + make INSTALL_ROOT="$pkgdir" install + find "${pkgdir}/usr/${_arch}/lib" -maxdepth 1 -name "*.dll" -exec rm {} \; + [ "$NO_STATIC_EXECUTABLES" -a "${_config##*=}" = static -o "$NO_EXECUTABLES" ] && \ + find "${pkgdir}/usr/${_arch}" -name "*.exe" -exec rm {} \; || \ + find "${pkgdir}/usr/${_arch}" -name "*.exe" -exec ${_arch}-strip --strip-all {} \; + find "${pkgdir}/usr/${_arch}" -name "*.dll" -exec ${_arch}-strip --strip-unneeded {} \; + find "${pkgdir}/usr/${_arch}" -name "*.a" -exec ${_arch}-strip -g {} \; + [[ -d "${pkgdir}/usr/${_arch}/lib/qt/bin/" ]] && \ + find "${pkgdir}/usr/${_arch}/lib/qt/bin/" -exec strip --strip-all {} \; + find "${pkgdir}/usr/${_arch}/lib/" -iname "*.so.$pkgver" -exec strip --strip-unneeded {} \; + popd + done done - - # .prl files aren't interesting for us - find "${pkgdir}" -name "*.prl" -delete } diff --git a/qt5-connectivity/mingw-w64/PKGBUILD b/qt5-connectivity/mingw-w64/PKGBUILD index 3e4ac523..f8f097e1 100644 --- a/qt5-connectivity/mingw-w64/PKGBUILD +++ b/qt5-connectivity/mingw-w64/PKGBUILD @@ -3,10 +3,13 @@ # All my PKGBUILDs are managed at https://github.com/Martchus/PKGBUILDs where # you also find the URL of a binary repository. +# Includes dynamic and static versions; if only one version is requried, just +# set $NO_STATIC_LIBS or $NO_SHARED_LIBS. + _qt_module=qtconnectivity pkgname="mingw-w64-qt5-connectivity" pkgver=5.7.0 -pkgrel=1 +pkgrel=2 arch=('any') pkgdesc="Provides access to Bluetooth hardware (mingw-w64)" depends=('mingw-w64-qt5-base') @@ -18,18 +21,25 @@ _pkgfqn="${_qt_module}-opensource-src-${pkgver}" source=("https://download.qt.io/official_releases/qt/${pkgver:0:3}/${pkgver}/submodules/${_pkgfqn}.tar.xz") md5sums=('56229b15e677ee98d56446519723fb3b') -_architectures="i686-w64-mingw32 x86_64-w64-mingw32" +_architectures='i686-w64-mingw32 x86_64-w64-mingw32' +[[ $NO_STATIC_LIBS ]] || \ + makedepends+=('mingw-w64-qt5-base-static') \ + optdepends+=('mingw-w64-qt5-base-static: use of static libraries') \ + _configurations+=('CONFIG+=static') +[[ $NO_SHARED_LIBS ]] || \ + _configurations+=('CONFIG+=shared') build() { cd "${srcdir}/${_pkgfqn}" for _arch in ${_architectures}; do - mkdir -p build-${_arch} && pushd build-${_arch} - - ${_arch}-qmake-qt5 ../${_qt_module}.pro - make - - popd + for _config in "${_configurations[@]}"; do + msg2 "Building ${_config##*=} version for ${_arch}" + mkdir -p build-${_arch}-${_config##*=} && pushd build-${_arch}-${_config##*=} + ${_arch}-qmake-qt5 ../${_qt_module}.pro ${_config} + make + popd + done done } @@ -37,20 +47,20 @@ package() { cd "${srcdir}/${_pkgfqn}" for _arch in ${_architectures}; do - pushd build-${_arch} + for _config in "${_configurations[@]}"; do + pushd build-${_arch}-${_config##*=} - make INSTALL_ROOT="${pkgdir}" install - - # The .dll's are installed in both bindir and libdir - # One copy of the .dll's is sufficient - rm -f "${pkgdir}/usr/${_arch}/lib/"*.dll - - ${_arch}-strip --strip-unneeded "${pkgdir}/usr/${_arch}/bin/"*.dll - ${_arch}-strip --strip-unneeded "${pkgdir}/usr/${_arch}/lib/"*.dll.a - - popd + make INSTALL_ROOT="$pkgdir" install + find "${pkgdir}/usr/${_arch}/lib" -maxdepth 1 -name "*.dll" -exec rm {} \; + [ "$NO_STATIC_EXECUTABLES" -a "${_config##*=}" = static -o "$NO_EXECUTABLES" ] && \ + find "${pkgdir}/usr/${_arch}" -name "*.exe" -exec rm {} \; || \ + find "${pkgdir}/usr/${_arch}" -name "*.exe" -exec ${_arch}-strip --strip-all {} \; + find "${pkgdir}/usr/${_arch}" -name "*.dll" -exec ${_arch}-strip --strip-unneeded {} \; + find "${pkgdir}/usr/${_arch}" -name "*.a" -exec ${_arch}-strip -g {} \; + [[ -d "${pkgdir}/usr/${_arch}/lib/qt/bin/" ]] && \ + find "${pkgdir}/usr/${_arch}/lib/qt/bin/" -exec strip --strip-all {} \; + find "${pkgdir}/usr/${_arch}/lib/" -iname "*.so.$pkgver" -exec strip --strip-unneeded {} \; + popd + done done - - # .prl files aren't interesting for us - find "${pkgdir}" -name "*.prl" -delete } diff --git a/qt5-datavis3s/mingw-w64/PKGBUILD b/qt5-datavis3s/mingw-w64/PKGBUILD index 169c4aaf..9068bc87 100644 --- a/qt5-datavis3s/mingw-w64/PKGBUILD +++ b/qt5-datavis3s/mingw-w64/PKGBUILD @@ -3,10 +3,13 @@ # All my PKGBUILDs are managed at https://github.com/Martchus/PKGBUILDs where # you also find the URL of a binary repository. +# Includes dynamic and static versions; if only one version is requried, just +# set $NO_STATIC_LIBS or $NO_SHARED_LIBS. + _qt_module=qtdatavis3d pkgname="mingw-w64-qt5-datavis3d" pkgver=5.7.0 -pkgrel=1 +pkgrel=2 arch=('any') pkgdesc="Qt Data Visualization module (mingw-w64)" depends=('mingw-w64-qt5-base') @@ -18,18 +21,25 @@ _pkgfqn="${_qt_module}-opensource-src-${pkgver}" source=("https://download.qt.io/official_releases/qt/${pkgver:0:3}/${pkgver}/submodules/${_pkgfqn}.tar.xz") md5sums=('8e0ef21bd26e8466737559d89706f1ae') -_architectures="i686-w64-mingw32 x86_64-w64-mingw32" +_architectures='i686-w64-mingw32 x86_64-w64-mingw32' +[[ $NO_STATIC_LIBS ]] || \ + makedepends+=('mingw-w64-qt5-base-static') \ + optdepends+=('mingw-w64-qt5-base-static: use of static libraries') \ + _configurations+=('CONFIG+=static') +[[ $NO_SHARED_LIBS ]] || \ + _configurations+=('CONFIG+=shared') build() { cd "${srcdir}/${_pkgfqn}" for _arch in ${_architectures}; do - mkdir -p build-${_arch} && pushd build-${_arch} - - ${_arch}-qmake-qt5 ../${_qt_module}.pro - make - - popd + for _config in "${_configurations[@]}"; do + msg2 "Building ${_config##*=} version for ${_arch}" + mkdir -p build-${_arch}-${_config##*=} && pushd build-${_arch}-${_config##*=} + ${_arch}-qmake-qt5 ../${_qt_module}.pro ${_config} + make + popd + done done } @@ -37,20 +47,20 @@ package() { cd "${srcdir}/${_pkgfqn}" for _arch in ${_architectures}; do - pushd build-${_arch} + for _config in "${_configurations[@]}"; do + pushd build-${_arch}-${_config##*=} - make INSTALL_ROOT="${pkgdir}" install - - # The .dll's are installed in both bindir and libdir - # One copy of the .dll's is sufficient - rm -f "${pkgdir}/usr/${_arch}/lib/"*.dll - - ${_arch}-strip --strip-unneeded "${pkgdir}/usr/${_arch}/bin/"*.dll - ${_arch}-strip --strip-unneeded "${pkgdir}/usr/${_arch}/lib/"*.dll.a - - popd + make INSTALL_ROOT="$pkgdir" install + find "${pkgdir}/usr/${_arch}/lib" -maxdepth 1 -name "*.dll" -exec rm {} \; + [ "$NO_STATIC_EXECUTABLES" -a "${_config##*=}" = static -o "$NO_EXECUTABLES" ] && \ + find "${pkgdir}/usr/${_arch}" -name "*.exe" -exec rm {} \; || \ + find "${pkgdir}/usr/${_arch}" -name "*.exe" -exec ${_arch}-strip --strip-all {} \; + find "${pkgdir}/usr/${_arch}" -name "*.dll" -exec ${_arch}-strip --strip-unneeded {} \; + find "${pkgdir}/usr/${_arch}" -name "*.a" -exec ${_arch}-strip -g {} \; + [[ -d "${pkgdir}/usr/${_arch}/lib/qt/bin/" ]] && \ + find "${pkgdir}/usr/${_arch}/lib/qt/bin/" -exec strip --strip-all {} \; + find "${pkgdir}/usr/${_arch}/lib/" -iname "*.so.$pkgver" -exec strip --strip-unneeded {} \; + popd + done done - - # .prl files aren't interesting for us - find "${pkgdir}" -name "*.prl" -delete } diff --git a/qt5-declarative/mingw-w64/PKGBUILD b/qt5-declarative/mingw-w64/PKGBUILD index 973516d1..0b190689 100755 --- a/qt5-declarative/mingw-w64/PKGBUILD +++ b/qt5-declarative/mingw-w64/PKGBUILD @@ -72,18 +72,16 @@ package() { for _arch in ${_architectures}; do for _config in "${_configurations[@]}"; do pushd build-${_arch}-${_config##*=} - make INSTALL_ROOT="$pkgdir" install - - # The .dll's are installed in both bindir and libdir, one copy of the .dll's is sufficient - find "${pkgdir}/usr/${_arch}/lib" -name "*.dll" -exec rm {} \; - # Applications might be useful as well; keeping them will not hurt anybody I suppose - find "${pkgdir}/usr/${_arch}" -name "*.exe" -exec ${_arch}-strip --strip-all {} \; + find "${pkgdir}/usr/${_arch}/lib" -maxdepth 1 -name "*.dll" -exec rm {} \; + [ "$NO_STATIC_EXECUTABLES" -a "${_config##*=}" = static -o "$NO_EXECUTABLES" ] && \ + find "${pkgdir}/usr/${_arch}" -name "*.exe" -exec rm {} \; || \ + find "${pkgdir}/usr/${_arch}" -name "*.exe" -exec ${_arch}-strip --strip-all {} \; find "${pkgdir}/usr/${_arch}" -name "*.dll" -exec ${_arch}-strip --strip-unneeded {} \; find "${pkgdir}/usr/${_arch}" -name "*.a" -exec ${_arch}-strip -g {} \; - strip --strip-all "${pkgdir}/usr/${_arch}/lib/qt/bin/"* - [ "${_config##*=}" == static ] || strip --strip-unneeded "${pkgdir}/usr/${_arch}/lib/"*.so.$pkgver - + [[ -d "${pkgdir}/usr/${_arch}/lib/qt/bin/" ]] && \ + find "${pkgdir}/usr/${_arch}/lib/qt/bin/" -exec strip --strip-all {} \; + find "${pkgdir}/usr/${_arch}/lib/" -iname "*.so.$pkgver" -exec strip --strip-unneeded {} \; popd done done @@ -93,7 +91,7 @@ package() { # will be suffixed. for _arch in ${_architectures}; do for exe_file in "${pkgdir}/usr/${_arch}/bin/"*.exe; do - mv "${exe_file}" "${exe_file%.exe}-qt5.exe" + [[ -f $exe_file ]] && mv "${exe_file}" "${exe_file%.exe}-qt5.exe" done done } diff --git a/qt5-gamepad/mingw-w64/PKGBUILD b/qt5-gamepad/mingw-w64/PKGBUILD index 6b80f4b9..a1746f79 100644 --- a/qt5-gamepad/mingw-w64/PKGBUILD +++ b/qt5-gamepad/mingw-w64/PKGBUILD @@ -3,10 +3,13 @@ # All my PKGBUILDs are managed at https://github.com/Martchus/PKGBUILDs where # you also find the URL of a binary repository. +# Includes dynamic and static versions; if only one version is requried, just +# set $NO_STATIC_LIBS or $NO_SHARED_LIBS. + _qt_module=qtgamepad pkgname="mingw-w64-qt5-gamepad" pkgver=5.7.0 -pkgrel=1 +pkgrel=2 arch=('any') pkgdesc="Adds support for getting events from gamepad devices (mingw-w64)" depends=('mingw-w64-qt5-base' 'mingw-w64-sdl2') @@ -18,16 +21,25 @@ _pkgfqn="${_qt_module}-opensource-src-${pkgver}" source=("https://download.qt.io/official_releases/qt/${pkgver:0:3}/${pkgver}/submodules/${_pkgfqn}.tar.xz") md5sums=('8531048533415712ec8c52d50239f8b3') -_architectures="i686-w64-mingw32 x86_64-w64-mingw32" +_architectures='i686-w64-mingw32 x86_64-w64-mingw32' +[[ $NO_STATIC_LIBS ]] || \ + makedepends+=('mingw-w64-qt5-base-static') \ + optdepends+=('mingw-w64-qt5-base-static: use of static libraries') \ + _configurations+=('CONFIG+=static') +[[ $NO_SHARED_LIBS ]] || \ + _configurations+=('CONFIG+=shared') build() { cd "${srcdir}/${_pkgfqn}" for _arch in ${_architectures}; do - mkdir -p build-${_arch} && pushd build-${_arch} - ${_arch}-qmake-qt5 ../${_qt_module}.pro - make - popd + for _config in "${_configurations[@]}"; do + msg2 "Building ${_config##*=} version for ${_arch}" + mkdir -p build-${_arch}-${_config##*=} && pushd build-${_arch}-${_config##*=} + ${_arch}-qmake-qt5 ../${_qt_module}.pro ${_config} + make + popd + done done } @@ -35,17 +47,20 @@ package() { cd "${srcdir}/${_pkgfqn}" for _arch in ${_architectures}; do - pushd build-${_arch} - make INSTALL_ROOT="${pkgdir}" install - # The .dll's are installed in both bindir and libdir - # One copy of the .dll's is sufficient - rm -f "${pkgdir}/usr/${_arch}/lib/"*.dll + for _config in "${_configurations[@]}"; do + pushd build-${_arch}-${_config##*=} - ${_arch}-strip --strip-unneeded "${pkgdir}/usr/${_arch}/bin/"*.dll - ${_arch}-strip --strip-unneeded "${pkgdir}/usr/${_arch}/lib/"*.dll.a - popd + make INSTALL_ROOT="$pkgdir" install + find "${pkgdir}/usr/${_arch}/lib" -maxdepth 1 -name "*.dll" -exec rm {} \; + [ "$NO_STATIC_EXECUTABLES" -a "${_config##*=}" = static -o "$NO_EXECUTABLES" ] && \ + find "${pkgdir}/usr/${_arch}" -name "*.exe" -exec rm {} \; || \ + find "${pkgdir}/usr/${_arch}" -name "*.exe" -exec ${_arch}-strip --strip-all {} \; + find "${pkgdir}/usr/${_arch}" -name "*.dll" -exec ${_arch}-strip --strip-unneeded {} \; + find "${pkgdir}/usr/${_arch}" -name "*.a" -exec ${_arch}-strip -g {} \; + [[ -d "${pkgdir}/usr/${_arch}/lib/qt/bin/" ]] && \ + find "${pkgdir}/usr/${_arch}/lib/qt/bin/" -exec strip --strip-all {} \; + find "${pkgdir}/usr/${_arch}/lib/" -iname "*.so.$pkgver" -exec strip --strip-unneeded {} \; + popd + done done - - # .prl files aren't interesting for us - find "${pkgdir}" -name "*.prl" -delete } diff --git a/qt5-graphicaleffects/mingw-w64/PKGBUILD b/qt5-graphicaleffects/mingw-w64/PKGBUILD index a6230ca4..f3a63cbd 100644 --- a/qt5-graphicaleffects/mingw-w64/PKGBUILD +++ b/qt5-graphicaleffects/mingw-w64/PKGBUILD @@ -5,10 +5,13 @@ # All my PKGBUILDs are managed at https://github.com/Martchus/PKGBUILDs where # you also find the URL of a binary repository. +# Includes dynamic and static versions; if only one version is requried, just +# set $NO_STATIC_LIBS or $NO_SHARED_LIBS. + _qt_module=qtgraphicaleffects pkgname="mingw-w64-qt5-graphicaleffects" pkgver=5.7.0 -pkgrel=1 +pkgrel=2 arch=('any') pkgdesc="Graphical effects for use with Qt Quick 2 (mingw-w64)" depends=('mingw-w64-qt5-declarative') @@ -20,16 +23,25 @@ _pkgfqn="${_qt_module}-opensource-src-$pkgver" source=("https://download.qt.io/official_releases/qt/${pkgver:0:3}/${pkgver}/submodules/${_pkgfqn}.tar.xz") md5sums=('f26b0de5cdbb76ae49faca226628fe65') -_architectures="i686-w64-mingw32 x86_64-w64-mingw32" +_architectures='i686-w64-mingw32 x86_64-w64-mingw32' +[[ $NO_STATIC_LIBS ]] || \ + makedepends+=('mingw-w64-qt5-base-static') \ + optdepends+=('mingw-w64-qt5-base-static: use of static libraries') \ + _configurations+=('CONFIG+=static') +[[ $NO_SHARED_LIBS ]] || \ + _configurations+=('CONFIG+=shared') build() { cd "${srcdir}/${_pkgfqn}" for _arch in ${_architectures}; do - mkdir -p build-${_arch} && pushd build-${_arch} - ${_arch}-qmake-qt5 ../${_qt_module}.pro - make - popd + for _config in "${_configurations[@]}"; do + msg2 "Building ${_config##*=} version for ${_arch}" + mkdir -p build-${_arch}-${_config##*=} && pushd build-${_arch}-${_config##*=} + ${_arch}-qmake-qt5 ../${_qt_module}.pro ${_config} + make + popd + done done } @@ -37,8 +49,20 @@ package() { cd "${srcdir}/${_pkgfqn}" for _arch in ${_architectures}; do - pushd build-${_arch} - make INSTALL_ROOT="${pkgdir}" install - popd + for _config in "${_configurations[@]}"; do + pushd build-${_arch}-${_config##*=} + + make INSTALL_ROOT="$pkgdir" install + find "${pkgdir}/usr/${_arch}/lib" -maxdepth 1 -name "*.dll" -exec rm {} \; + [ "$NO_STATIC_EXECUTABLES" -a "${_config##*=}" = static -o "$NO_EXECUTABLES" ] && \ + find "${pkgdir}/usr/${_arch}" -name "*.exe" -exec rm {} \; || \ + find "${pkgdir}/usr/${_arch}" -name "*.exe" -exec ${_arch}-strip --strip-all {} \; + find "${pkgdir}/usr/${_arch}" -name "*.dll" -exec ${_arch}-strip --strip-unneeded {} \; + find "${pkgdir}/usr/${_arch}" -name "*.a" -exec ${_arch}-strip -g {} \; + [[ -d "${pkgdir}/usr/${_arch}/lib/qt/bin/" ]] && \ + find "${pkgdir}/usr/${_arch}/lib/qt/bin/" -exec strip --strip-all {} \; + find "${pkgdir}/usr/${_arch}/lib/" -iname "*.so.$pkgver" -exec strip --strip-unneeded {} \; + popd + done done } diff --git a/qt5-imageformats/mingw-w64/PKGBUILD b/qt5-imageformats/mingw-w64/PKGBUILD index 03010fe3..f466d077 100644 --- a/qt5-imageformats/mingw-w64/PKGBUILD +++ b/qt5-imageformats/mingw-w64/PKGBUILD @@ -5,10 +5,13 @@ # All my PKGBUILDs are managed at https://github.com/Martchus/PKGBUILDs where # you also find the URL of a binary repository. +# Includes dynamic and static versions; if only one version is requried, just +# set $NO_STATIC_LIBS or $NO_SHARED_LIBS. + _qt_module=qtimageformats pkgname="mingw-w64-qt5-imageformats" pkgver=5.7.0 -pkgrel=1 +pkgrel=2 arch=('any') pkgdesc="Plugins for additional image formats: TIFF, MNG, TGA, WBMP (mingw-w64)" depends=('mingw-w64-qt5-base') @@ -24,19 +27,25 @@ _pkgfqn="${_qt_module}-opensource-src-${pkgver}" source=("https://download.qt.io/official_releases/qt/${pkgver:0:3}/${pkgver}/submodules/${_pkgfqn}.tar.xz") md5sums=('50e4086be4f1f8a0897f1ed8e1a00f09') -_architectures="i686-w64-mingw32 x86_64-w64-mingw32" +_architectures='i686-w64-mingw32 x86_64-w64-mingw32' +[[ $NO_STATIC_LIBS ]] || \ + makedepends+=('mingw-w64-qt5-base-static') \ + optdepends+=('mingw-w64-qt5-base-static: use of static libraries') \ + _configurations+=('CONFIG+=static') +[[ $NO_SHARED_LIBS ]] || \ + _configurations+=('CONFIG+=shared') -build() -{ +build() { cd "${srcdir}/${_pkgfqn}" for _arch in ${_architectures}; do - mkdir -p build-${_arch} && pushd build-${_arch} - - ${_arch}-qmake-qt5 ../${_qt_module}.pro - make - - popd + for _config in "${_configurations[@]}"; do + msg2 "Building ${_config##*=} version for ${_arch}" + mkdir -p build-${_arch}-${_config##*=} && pushd build-${_arch}-${_config##*=} + ${_arch}-qmake-qt5 ../${_qt_module}.pro ${_config} + make + popd + done done } @@ -44,12 +53,20 @@ package() { cd "${srcdir}/${_pkgfqn}" for _arch in ${_architectures}; do - pushd build-${_arch} + for _config in "${_configurations[@]}"; do + pushd build-${_arch}-${_config##*=} - make INSTALL_ROOT="${pkgdir}" install - - ${_arch}-strip --strip-unneeded "${pkgdir}/usr/${_arch}/lib/qt/plugins/imageformats/"*.dll - - popd + make INSTALL_ROOT="$pkgdir" install + find "${pkgdir}/usr/${_arch}/lib" -maxdepth 1 -name "*.dll" -exec rm {} \; + [ "$NO_STATIC_EXECUTABLES" -a "${_config##*=}" = static -o "$NO_EXECUTABLES" ] && \ + find "${pkgdir}/usr/${_arch}" -name "*.exe" -exec rm {} \; || \ + find "${pkgdir}/usr/${_arch}" -name "*.exe" -exec ${_arch}-strip --strip-all {} \; + find "${pkgdir}/usr/${_arch}" -name "*.dll" -exec ${_arch}-strip --strip-unneeded {} \; + find "${pkgdir}/usr/${_arch}" -name "*.a" -exec ${_arch}-strip -g {} \; + [[ -d "${pkgdir}/usr/${_arch}/lib/qt/bin/" ]] && \ + find "${pkgdir}/usr/${_arch}/lib/qt/bin/" -exec strip --strip-all {} \; + find "${pkgdir}/usr/${_arch}/lib/" -iname "*.so.$pkgver" -exec strip --strip-unneeded {} \; + popd + done done } diff --git a/qt5-location/mingw-w64/PKGBUILD b/qt5-location/mingw-w64/PKGBUILD index 5c8bc397..0c4f4c04 100644 --- a/qt5-location/mingw-w64/PKGBUILD +++ b/qt5-location/mingw-w64/PKGBUILD @@ -4,10 +4,13 @@ # All my PKGBUILDs are managed at https://github.com/Martchus/PKGBUILDs where # you also find the URL of a binary repository. +# Includes dynamic and static versions; if only one version is requried, just +# set $NO_STATIC_LIBS or $NO_SHARED_LIBS. + _qt_module=qtlocation pkgname=mingw-w64-qt5-location pkgver=5.7.0 -pkgrel=1 +pkgrel=2 arch=('any') pkgdesc="Provides access to position, satellite and area monitoring classes (mingw-w64)" depends=(mingw-w64-qt5-base mingw-w64-qt5-declarative) @@ -20,15 +23,25 @@ _pkgfqn="${_qt_module}-opensource-src-${pkgver}" source=("https://download.qt.io/official_releases/qt/${pkgver:0:3}/${pkgver}/submodules/${_pkgfqn}.tar.xz") md5sums=('645477ff5426f5213f3581625ea53aaa') -_architectures="i686-w64-mingw32 x86_64-w64-mingw32" +_architectures='i686-w64-mingw32 x86_64-w64-mingw32' +[[ $NO_STATIC_LIBS ]] || \ + makedepends+=('mingw-w64-qt5-base-static') \ + optdepends+=('mingw-w64-qt5-base-static: use of static libraries') \ + _configurations+=('CONFIG+=static') +[[ $NO_SHARED_LIBS ]] || \ + _configurations+=('CONFIG+=shared') build() { cd "${srcdir}/${_pkgfqn}" + for _arch in ${_architectures}; do - mkdir -p build-${_arch} && pushd build-${_arch} - ${_arch}-qmake-qt5 ../${_qt_module}.pro - make - popd + for _config in "${_configurations[@]}"; do + msg2 "Building ${_config##*=} version for ${_arch}" + mkdir -p build-${_arch}-${_config##*=} && pushd build-${_arch}-${_config##*=} + ${_arch}-qmake-qt5 ../${_qt_module}.pro ${_config} + make + popd + done done } @@ -36,15 +49,20 @@ package() { cd "${srcdir}/${_pkgfqn}" for _arch in ${_architectures}; do - pushd build-${_arch} - make INSTALL_ROOT="${pkgdir}" install + for _config in "${_configurations[@]}"; do + pushd build-${_arch}-${_config##*=} - # The .dll's are installed in both bindir and libdir - # One copy of the .dll's is sufficient - rm -f "${pkgdir}/usr/${_arch}/lib/"*.dll - find "${pkgdir}/usr/${_arch}" -name "*.exe" -o -name "*.bat" -o -name "*.def" -o -name "*.exp" -o -name '*.prl' | xargs -rtl1 rm - find "${pkgdir}/usr/${_arch}" -name "*.dll" -exec ${_arch}-strip --strip-unneeded {} \; - find "${pkgdir}/usr/${_arch}" -name "*.a" -o -name "*.dll" | xargs -rtl1 ${_arch}-strip -g - popd + make INSTALL_ROOT="$pkgdir" install + find "${pkgdir}/usr/${_arch}/lib" -maxdepth 1 -name "*.dll" -exec rm {} \; + [ "$NO_STATIC_EXECUTABLES" -a "${_config##*=}" = static -o "$NO_EXECUTABLES" ] && \ + find "${pkgdir}/usr/${_arch}" -name "*.exe" -exec rm {} \; || \ + find "${pkgdir}/usr/${_arch}" -name "*.exe" -exec ${_arch}-strip --strip-all {} \; + find "${pkgdir}/usr/${_arch}" -name "*.dll" -exec ${_arch}-strip --strip-unneeded {} \; + find "${pkgdir}/usr/${_arch}" -name "*.a" -exec ${_arch}-strip -g {} \; + [[ -d "${pkgdir}/usr/${_arch}/lib/qt/bin/" ]] && \ + find "${pkgdir}/usr/${_arch}/lib/qt/bin/" -exec strip --strip-all {} \; + find "${pkgdir}/usr/${_arch}/lib/" -iname "*.so.$pkgver" -exec strip --strip-unneeded {} \; + popd + done done } diff --git a/qt5-multimedia/mingw-w64/PKGBUILD b/qt5-multimedia/mingw-w64/PKGBUILD index fb401769..a13b7f05 100644 --- a/qt5-multimedia/mingw-w64/PKGBUILD +++ b/qt5-multimedia/mingw-w64/PKGBUILD @@ -3,10 +3,13 @@ # All my PKGBUILDs are managed at https://github.com/Martchus/PKGBUILDs where # you also find the URL of a binary repository. +# Includes dynamic and static versions; if only one version is requried, just +# set $NO_STATIC_LIBS or $NO_SHARED_LIBS. + _qt_module=qtmultimedia pkgname=mingw-w64-qt5-multimedia pkgver=5.7.0 -pkgrel=1 +pkgrel=2 arch=('any') pkgdesc="Classes for audio, video, radio and camera functionality (mingw-w64)" depends=(mingw-w64-qt5-base mingw-w64-qt5-declarative) @@ -21,7 +24,13 @@ source=("https://download.qt.io/official_releases/qt/${pkgver:0:3}/${pkgver}/sub md5sums=('44c1b9a1dfb0e8b13f2d9571829500ee' 'c21ff895212a17dc0a748aeadb67601d') -_architectures="i686-w64-mingw32 x86_64-w64-mingw32" +_architectures='i686-w64-mingw32 x86_64-w64-mingw32' +[[ $NO_STATIC_LIBS ]] || \ + makedepends+=('mingw-w64-qt5-base-static') \ + optdepends+=('mingw-w64-qt5-base-static: use of static libraries') \ + _configurations+=('CONFIG+=static') +[[ $NO_SHARED_LIBS ]] || \ + _configurations+=('CONFIG+=shared') link_header_files() { for header in "$@"; do @@ -40,30 +49,39 @@ prepare() { build() { cd "${srcdir}/${_pkgfqn}" + for _arch in ${_architectures}; do - mkdir -p build-${_arch} && pushd build-${_arch} - - # headers are case sensitive under Linux -> provide symlinks - mkdir -p ./sysinclude/qtgui && link_header_files {ShlObj,Evr9,Mferror}.h - ln -s "/usr/${_arch}/include/qt/QtGui/qguiapplication.h" "./sysinclude/qtgui/qguiapplication.h" - - ${_arch}-qmake-qt5 ../${_qt_module}.pro -Wall INCLUDEPATH+="${srcdir}/${_pkgfqn}/build-${_arch}/sysinclude" - make - popd + for _config in "${_configurations[@]}"; do + msg2 "Building ${_config##*=} version for ${_arch}" + mkdir -p build-${_arch}-${_config##*=} && pushd build-${_arch}-${_config##*=} + # Header are case sensitive under Linux, provide symlinks to prevent compile errors + mkdir -p ./sysinclude/qtgui && link_header_files {ShlObj,Evr9,Mferror}.h + ln -s "/usr/${_arch}/include/qt/QtGui/qguiapplication.h" './sysinclude/qtgui/qguiapplication.h' + ${_arch}-qmake-qt5 ../${_qt_module}.pro ${_config} INCLUDEPATH+="${srcdir}/${_pkgfqn}/build-${_arch}/sysinclude" + make + popd + done done } package() { cd "${srcdir}/${_pkgfqn}" + for _arch in ${_architectures}; do - pushd build-${_arch} - make INSTALL_ROOT="${pkgdir}" install - # The .dll's are installed in both bindir and libdir - # One copy of the .dll's is sufficient - rm -f "${pkgdir}/usr/${_arch}/lib/"*.dll - find "${pkgdir}/usr/${_arch}" -name "*.exe" -o -name "*.bat" -o -name "*.def" -o -name "*.exp" -o -name '*.prl' | xargs -rtl1 rm - find "${pkgdir}/usr/${_arch}" -name "*.dll" -exec ${_arch}-strip --strip-unneeded {} \; - find "${pkgdir}/usr/${_arch}" -name "*.a" -o -name "*.dll" | xargs -rtl1 ${_arch}-strip -g - popd + for _config in "${_configurations[@]}"; do + pushd build-${_arch}-${_config##*=} + + make INSTALL_ROOT="$pkgdir" install + find "${pkgdir}/usr/${_arch}/lib" -maxdepth 1 -name "*.dll" -exec rm {} \; + [ "$NO_STATIC_EXECUTABLES" -a "${_config##*=}" = static -o "$NO_EXECUTABLES" ] && \ + find "${pkgdir}/usr/${_arch}" -name "*.exe" -exec rm {} \; || \ + find "${pkgdir}/usr/${_arch}" -name "*.exe" -exec ${_arch}-strip --strip-all {} \; + find "${pkgdir}/usr/${_arch}" -name "*.dll" -exec ${_arch}-strip --strip-unneeded {} \; + find "${pkgdir}/usr/${_arch}" -name "*.a" -exec ${_arch}-strip -g {} \; + [[ -d "${pkgdir}/usr/${_arch}/lib/qt/bin/" ]] && \ + find "${pkgdir}/usr/${_arch}/lib/qt/bin/" -exec strip --strip-all {} \; + find "${pkgdir}/usr/${_arch}/lib/" -iname "*.so.$pkgver" -exec strip --strip-unneeded {} \; + popd + done done } diff --git a/qt5-quick1/mingw-w64/PKGBUILD b/qt5-quick1/mingw-w64/PKGBUILD index 91ee7a42..48e31893 100644 --- a/qt5-quick1/mingw-w64/PKGBUILD +++ b/qt5-quick1/mingw-w64/PKGBUILD @@ -5,10 +5,13 @@ # All my PKGBUILDs are managed at https://github.com/Martchus/PKGBUILDs where # you also find the URL of a binary repository. +# Includes dynamic and static versions; if only one version is requried, just +# set $NO_STATIC_LIBS or $NO_SHARED_LIBS. + _qt_module=qtquick1 pkgname="mingw-w64-qt5-quick1" pkgver=5.5.1 -pkgrel=1.1 +pkgrel=2 arch=('any') pkgdesc="Qt Declarative is provided for Qt 4 compatibility (mingw-w64)" depends=('mingw-w64-qt5-base' 'mingw-w64-qt5-script' 'mingw-w64-qt5-tools') @@ -20,19 +23,25 @@ _pkgfqn="${_qt_module}-opensource-src-${pkgver}" source=("https://download.qt.io/official_releases/qt/${pkgver:0:3}/${pkgver}/submodules/${_pkgfqn}.tar.xz") md5sums=('46a61a405844cbe88a754127422f6b6d') -_architectures="i686-w64-mingw32 x86_64-w64-mingw32" +_architectures='i686-w64-mingw32 x86_64-w64-mingw32' +[[ $NO_STATIC_LIBS ]] || \ + makedepends+=('mingw-w64-qt5-base-static') \ + optdepends+=('mingw-w64-qt5-base-static: use of static libraries') \ + _configurations+=('CONFIG+=static') +[[ $NO_SHARED_LIBS ]] || \ + _configurations+=('CONFIG+=shared') -build() -{ +build() { cd "${srcdir}/${_pkgfqn}" for _arch in ${_architectures}; do - mkdir -p build-${_arch} && pushd build-${_arch} - - ${_arch}-qmake-qt5 ../${_qt_module}.pro - make - - popd + for _config in "${_configurations[@]}"; do + msg2 "Building ${_config##*=} version for ${_arch}" + mkdir -p build-${_arch}-${_config##*=} && pushd build-${_arch}-${_config##*=} + ${_arch}-qmake-qt5 ../${_qt_module}.pro ${_config} + make + popd + done done } @@ -40,26 +49,27 @@ package() { cd "${srcdir}/${_pkgfqn}" for _arch in ${_architectures}; do - pushd build-${_arch} + for _config in "${_configurations[@]}"; do + pushd build-${_arch}-${_config##*=} - make INSTALL_ROOT="${pkgdir}" install - - # The .dll's are installed in both bindir and libdir - # One copy of the .dll's is sufficient - rm -f "${pkgdir}/usr/${_arch}/lib/"*.dll - - # Prevent file conflict with mingw-qt4 - mv "${pkgdir}/usr/${_arch}/bin/qmlviewer.exe" "${pkgdir}/usr/${_arch}/bin/qmlviewer-qt5.exe" - - ${_arch}-strip --strip-all "${pkgdir}/usr/${_arch}/bin/"*.exe - ${_arch}-strip --strip-unneeded "${pkgdir}/usr/${_arch}/bin/"*.dll - ${_arch}-strip --strip-unneeded "${pkgdir}/usr/${_arch}/lib/"*.dll.a - ${_arch}-strip --strip-unneeded "${pkgdir}/usr/${_arch}/lib/qt/plugins/"*/*.dll - ${_arch}-strip --strip-unneeded "${pkgdir}/usr/${_arch}/lib/qt/imports/Qt/labs/"*/*.dll - - popd + make INSTALL_ROOT="$pkgdir" install + find "${pkgdir}/usr/${_arch}/lib" -maxdepth 1 -name "*.dll" -exec rm {} \; + [ "$NO_STATIC_EXECUTABLES" -a "${_config##*=}" = static -o "$NO_EXECUTABLES" ] && \ + find "${pkgdir}/usr/${_arch}" -name "*.exe" -exec rm {} \; || \ + find "${pkgdir}/usr/${_arch}" -name "*.exe" -exec ${_arch}-strip --strip-all {} \; + find "${pkgdir}/usr/${_arch}" -name "*.dll" -exec ${_arch}-strip --strip-unneeded {} \; + find "${pkgdir}/usr/${_arch}" -name "*.a" -exec ${_arch}-strip -g {} \; + [[ -d "${pkgdir}/usr/${_arch}/lib/qt/bin/" ]] && \ + find "${pkgdir}/usr/${_arch}/lib/qt/bin/" -exec strip --strip-all {} \; + find "${pkgdir}/usr/${_arch}/lib/" -iname "*.so.$pkgver" -exec strip --strip-unneeded {} \; + popd + done done - # .prl files aren't interesting for us - find ${pkgdir} -name "*.prl" -delete + # Make sure the executables don't conflict with their mingw-qt4 counterpart + for _arch in ${_architectures}; do + for exe_file in "${pkgdir}/usr/${_arch}/bin/"*.exe; do + [[ -f $exe_file ]] && mv "${exe_file}" "${exe_file%.exe}-qt5.exe" + done + done } diff --git a/qt5-quickcontrols/mingw-w64/PKGBUILD b/qt5-quickcontrols/mingw-w64/PKGBUILD index fd95a876..6bd56858 100644 --- a/qt5-quickcontrols/mingw-w64/PKGBUILD +++ b/qt5-quickcontrols/mingw-w64/PKGBUILD @@ -5,10 +5,13 @@ # All my PKGBUILDs are managed at https://github.com/Martchus/PKGBUILDs where # you also find the URL of a binary repository. +# Includes dynamic and static versions; if only one version is requried, just +# set $NO_STATIC_LIBS or $NO_SHARED_LIBS. + _qt_module=qtquickcontrols pkgname="mingw-w64-qt5-quickcontrols" pkgver=5.7.0 -pkgrel=1 +pkgrel=2 arch=('any') pkgdesc="Reusable Qt Quick based UI controls to create classic desktop-style user interfaces (mingw-w64)" depends=('mingw-w64-qt5-declarative') @@ -20,16 +23,25 @@ _pkgfqn="${_qt_module}-opensource-src-$pkgver" source=("https://download.qt.io/official_releases/qt/${pkgver:0:3}/${pkgver}/submodules/${_pkgfqn}.tar.xz") md5sums=('8aa89cc159448645bc8ddae889231ba0') -_architectures="i686-w64-mingw32 x86_64-w64-mingw32" +_architectures='i686-w64-mingw32 x86_64-w64-mingw32' +[[ $NO_STATIC_LIBS ]] || \ + makedepends+=('mingw-w64-qt5-base-static') \ + optdepends+=('mingw-w64-qt5-base-static: use of static libraries') \ + _configurations+=('CONFIG+=static') +[[ $NO_SHARED_LIBS ]] || \ + _configurations+=('CONFIG+=shared') build() { cd "${srcdir}/${_pkgfqn}" for _arch in ${_architectures}; do - mkdir -p build-${_arch} && pushd build-${_arch} - ${_arch}-qmake-qt5 ../${_qt_module}.pro - make - popd + for _config in "${_configurations[@]}"; do + msg2 "Building ${_config##*=} version for ${_arch}" + mkdir -p build-${_arch}-${_config##*=} && pushd build-${_arch}-${_config##*=} + ${_arch}-qmake-qt5 ../${_qt_module}.pro ${_config} + make + popd + done done } @@ -37,10 +49,20 @@ package() { cd "${srcdir}/${_pkgfqn}" for _arch in ${_architectures}; do - pushd build-${_arch} - make INSTALL_ROOT="${pkgdir}" install - popd + for _config in "${_configurations[@]}"; do + pushd build-${_arch}-${_config##*=} - find "$pkgdir/usr/${_arch}" -name '*.dll' -exec ${_arch}-strip --strip-unneeded {} \; + make INSTALL_ROOT="$pkgdir" install + find "${pkgdir}/usr/${_arch}/lib" -maxdepth 1 -name "*.dll" -exec rm {} \; + [ "$NO_STATIC_EXECUTABLES" -a "${_config##*=}" = static -o "$NO_EXECUTABLES" ] && \ + find "${pkgdir}/usr/${_arch}" -name "*.exe" -exec rm {} \; || \ + find "${pkgdir}/usr/${_arch}" -name "*.exe" -exec ${_arch}-strip --strip-all {} \; + find "${pkgdir}/usr/${_arch}" -name "*.dll" -exec ${_arch}-strip --strip-unneeded {} \; + find "${pkgdir}/usr/${_arch}" -name "*.a" -exec ${_arch}-strip -g {} \; + [[ -d "${pkgdir}/usr/${_arch}/lib/qt/bin/" ]] && \ + find "${pkgdir}/usr/${_arch}/lib/qt/bin/" -exec strip --strip-all {} \; + find "${pkgdir}/usr/${_arch}/lib/" -iname "*.so.$pkgver" -exec strip --strip-unneeded {} \; + popd + done done } diff --git a/qt5-quickcontrols2/mingw-w64/PKGBUILD b/qt5-quickcontrols2/mingw-w64/PKGBUILD index ccd86f0c..3854d425 100644 --- a/qt5-quickcontrols2/mingw-w64/PKGBUILD +++ b/qt5-quickcontrols2/mingw-w64/PKGBUILD @@ -5,10 +5,13 @@ # All my PKGBUILDs are managed at https://github.com/Martchus/PKGBUILDs where # you also find the URL of a binary repository. +# Includes dynamic and static versions; if only one version is requried, just +# set $NO_STATIC_LIBS or $NO_SHARED_LIBS. + _qt_module=qtquickcontrols2 pkgname="mingw-w64-qt5-quickcontrols2" pkgver=5.7.0 -pkgrel=1 +pkgrel=2 arch=('any') pkgdesc="Reusable Qt Quick based UI controls to create classic desktop-style user interfaces (mingw-w64)" depends=('mingw-w64-qt5-declarative') @@ -20,16 +23,25 @@ _pkgfqn="${_qt_module}-opensource-src-$pkgver" source=("https://download.qt.io/official_releases/qt/${pkgver:0:3}/${pkgver}/submodules/${_pkgfqn}.tar.xz") md5sums=('63c979d1d79ab4457f99d5762fc7e20f') -_architectures="i686-w64-mingw32 x86_64-w64-mingw32" +_architectures='i686-w64-mingw32 x86_64-w64-mingw32' +[[ $NO_STATIC_LIBS ]] || \ + makedepends+=('mingw-w64-qt5-base-static') \ + optdepends+=('mingw-w64-qt5-base-static: use of static libraries') \ + _configurations+=('CONFIG+=static') +[[ $NO_SHARED_LIBS ]] || \ + _configurations+=('CONFIG+=shared') build() { cd "${srcdir}/${_pkgfqn}" for _arch in ${_architectures}; do - mkdir -p build-${_arch} && pushd build-${_arch} - ${_arch}-qmake-qt5 ../${_qt_module}.pro - make - popd + for _config in "${_configurations[@]}"; do + msg2 "Building ${_config##*=} version for ${_arch}" + mkdir -p build-${_arch}-${_config##*=} && pushd build-${_arch}-${_config##*=} + ${_arch}-qmake-qt5 ../${_qt_module}.pro ${_config} + make + popd + done done } @@ -37,10 +49,20 @@ package() { cd "${srcdir}/${_pkgfqn}" for _arch in ${_architectures}; do - pushd build-${_arch} - make INSTALL_ROOT="${pkgdir}" install - popd + for _config in "${_configurations[@]}"; do + pushd build-${_arch}-${_config##*=} - find "$pkgdir/usr/${_arch}" -name '*.dll' -exec ${_arch}-strip --strip-unneeded {} \; + make INSTALL_ROOT="$pkgdir" install + find "${pkgdir}/usr/${_arch}/lib" -maxdepth 1 -name "*.dll" -exec rm {} \; + [ "$NO_STATIC_EXECUTABLES" -a "${_config##*=}" = static -o "$NO_EXECUTABLES" ] && \ + find "${pkgdir}/usr/${_arch}" -name "*.exe" -exec rm {} \; || \ + find "${pkgdir}/usr/${_arch}" -name "*.exe" -exec ${_arch}-strip --strip-all {} \; + find "${pkgdir}/usr/${_arch}" -name "*.dll" -exec ${_arch}-strip --strip-unneeded {} \; + find "${pkgdir}/usr/${_arch}" -name "*.a" -exec ${_arch}-strip -g {} \; + [[ -d "${pkgdir}/usr/${_arch}/lib/qt/bin/" ]] && \ + find "${pkgdir}/usr/${_arch}/lib/qt/bin/" -exec strip --strip-all {} \; + find "${pkgdir}/usr/${_arch}/lib/" -iname "*.so.$pkgver" -exec strip --strip-unneeded {} \; + popd + done done } diff --git a/qt5-script/mingw-w64/PKGBUILD b/qt5-script/mingw-w64/PKGBUILD index cfa7b75f..39e7229e 100644 --- a/qt5-script/mingw-w64/PKGBUILD +++ b/qt5-script/mingw-w64/PKGBUILD @@ -5,10 +5,13 @@ # All my PKGBUILDs are managed at https://github.com/Martchus/PKGBUILDs where # you also find the URL of a binary repository. +# Includes dynamic and static versions; if only one version is requried, just +# set $NO_STATIC_LIBS or $NO_SHARED_LIBS. + _qt_module=qtscript pkgname="mingw-w64-qt5-script" pkgver=5.7.0 -pkgrel=1 +pkgrel=2 arch=('any') pkgdesc="Classes for making Qt applications scriptable. Provided for Qt 4.x compatibility (mingw-w64)" depends=('mingw-w64-qt5-base') @@ -20,19 +23,25 @@ _pkgfqn="${_qt_module}-opensource-src-${pkgver}" source=("https://download.qt.io/official_releases/qt/${pkgver:0:3}/${pkgver}/submodules/${_pkgfqn}.tar.xz") md5sums=('75108b6bab35c0eb7fb6152fbf971ab8') -_architectures="i686-w64-mingw32 x86_64-w64-mingw32" +_architectures='i686-w64-mingw32 x86_64-w64-mingw32' +[[ $NO_STATIC_LIBS ]] || \ + makedepends+=('mingw-w64-qt5-base-static') \ + optdepends+=('mingw-w64-qt5-base-static: use of static libraries') \ + _configurations+=('CONFIG+=static') +[[ $NO_SHARED_LIBS ]] || \ + _configurations+=('CONFIG+=shared') -build() -{ +build() { cd "${srcdir}/${_pkgfqn}" for _arch in ${_architectures}; do - mkdir -p build-${_arch} && pushd build-${_arch} - - ${_arch}-qmake-qt5 ../${_qt_module}.pro - make - - popd + for _config in "${_configurations[@]}"; do + msg2 "Building ${_config##*=} version for ${_arch}" + mkdir -p build-${_arch}-${_config##*=} && pushd build-${_arch}-${_config##*=} + ${_arch}-qmake-qt5 ../${_qt_module}.pro ${_config} + make + popd + done done } @@ -40,20 +49,20 @@ package() { cd "${srcdir}/${_pkgfqn}" for _arch in ${_architectures}; do - pushd build-${_arch} + for _config in "${_configurations[@]}"; do + pushd build-${_arch}-${_config##*=} - make INSTALL_ROOT="${pkgdir}" install - - # The .dll's are installed in both bindir and libdir - # One copy of the .dll's is sufficient - rm -f "${pkgdir}/usr/${_arch}/lib/"*.dll - - ${_arch}-strip --strip-unneeded "${pkgdir}/usr/${_arch}/bin/"*.dll - ${_arch}-strip --strip-unneeded "${pkgdir}/usr/${_arch}/lib/"*.dll.a - - popd + make INSTALL_ROOT="$pkgdir" install + find "${pkgdir}/usr/${_arch}/lib" -maxdepth 1 -name "*.dll" -exec rm {} \; + [ "$NO_STATIC_EXECUTABLES" -a "${_config##*=}" = static -o "$NO_EXECUTABLES" ] && \ + find "${pkgdir}/usr/${_arch}" -name "*.exe" -exec rm {} \; || \ + find "${pkgdir}/usr/${_arch}" -name "*.exe" -exec ${_arch}-strip --strip-all {} \; + find "${pkgdir}/usr/${_arch}" -name "*.dll" -exec ${_arch}-strip --strip-unneeded {} \; + find "${pkgdir}/usr/${_arch}" -name "*.a" -exec ${_arch}-strip -g {} \; + [[ -d "${pkgdir}/usr/${_arch}/lib/qt/bin/" ]] && \ + find "${pkgdir}/usr/${_arch}/lib/qt/bin/" -exec strip --strip-all {} \; + find "${pkgdir}/usr/${_arch}/lib/" -iname "*.so.$pkgver" -exec strip --strip-unneeded {} \; + popd + done done - - # .prl files aren't interesting for us - find "${pkgdir}" -name "*.prl" -delete } diff --git a/qt5-scxml/mingw-w64/PKGBUILD b/qt5-scxml/mingw-w64/PKGBUILD index 3f037283..533af077 100644 --- a/qt5-scxml/mingw-w64/PKGBUILD +++ b/qt5-scxml/mingw-w64/PKGBUILD @@ -5,10 +5,13 @@ # All my PKGBUILDs are managed at https://github.com/Martchus/PKGBUILDs where # you also find the URL of a binary repository. +# Includes dynamic and static versions; if only one version is requried, just +# set $NO_STATIC_LIBS or $NO_SHARED_LIBS. + _qt_module=qtscxml pkgname="mingw-w64-qt5-scxml" pkgver=5.7.0 -pkgrel=1 +pkgrel=2 arch=('i686' 'x86_64') pkgdesc="Static and runtime integration of SCXML models into Qt code (mingw-w64)" depends=('mingw-w64-qt5-declarative') @@ -20,21 +23,27 @@ _pkgfqn="${_qt_module}-opensource-src-${pkgver}" source=("https://download.qt.io/official_releases/qt/${pkgver:0:3}/${pkgver}/submodules/${_pkgfqn}.tar.xz") md5sums=('94ef6ad85733a1f9a8d92372ad652da3') -_architectures="i686-w64-mingw32 x86_64-w64-mingw32" +_architectures='i686-w64-mingw32 x86_64-w64-mingw32' +[[ $NO_STATIC_LIBS ]] || \ + makedepends+=('mingw-w64-qt5-base-static') \ + optdepends+=('mingw-w64-qt5-base-static: use of static libraries') \ + _configurations+=('CONFIG+=static') +[[ $NO_SHARED_LIBS ]] || \ + _configurations+=('CONFIG+=shared') -build() -{ +build() { cd "${srcdir}/${_pkgfqn}" for _arch in ${_architectures}; do - mkdir -p build-${_arch} && pushd build-${_arch} - - ${_arch}-qmake-qt5 ../${_qt_module}.pro - make qmake_all - find ./tools -type f -iname 'Makefile' -exec sed -i "s|-lQt5Bootstrap|-L/usr/lib -L/usr/$_arch/lib -lQt5Bootstrap|g" {} \; - - make - popd + for _config in "${_configurations[@]}"; do + msg2 "Building ${_config##*=} version for ${_arch}" + mkdir -p build-${_arch}-${_config##*=} && pushd build-${_arch}-${_config##*=} + ${_arch}-qmake-qt5 ../${_qt_module}.pro ${_config} + make qmake_all + find . -type f -iname 'Makefile' -exec sed -i "s|-L/usr/$_arch/lib -lQt5Bootstrap|-L/usr/lib -L/usr/$_arch/lib -lQt5Bootstrap|g" {} \; + make + popd + done done } @@ -42,21 +51,20 @@ package() { cd "${srcdir}/${_pkgfqn}" for _arch in ${_architectures}; do - pushd build-${_arch} + for _config in "${_configurations[@]}"; do + pushd build-${_arch}-${_config##*=} - make INSTALL_ROOT="${pkgdir}" install - - # The .dll's are installed in both bindir and libdir - # One copy of the .dll's is sufficient - rm -f "${pkgdir}/usr/${_arch}/lib/"*.dll - - find "${pkgdir}/usr/${_arch}" -name "*.dll" -exec ${_arch}-strip --strip-unneeded {} \; - find "${pkgdir}/usr/${_arch}" -name "*.a" -o -name "*.dll" | xargs -rtl1 ${_arch}-strip -g - strip --strip-all "${pkgdir}/usr/${_arch}/lib/qt/bin/"* - - popd + make INSTALL_ROOT="$pkgdir" install + find "${pkgdir}/usr/${_arch}/lib" -maxdepth 1 -name "*.dll" -exec rm {} \; + [ "$NO_STATIC_EXECUTABLES" -a "${_config##*=}" = static -o "$NO_EXECUTABLES" ] && \ + find "${pkgdir}/usr/${_arch}" -name "*.exe" -exec rm {} \; || \ + find "${pkgdir}/usr/${_arch}" -name "*.exe" -exec ${_arch}-strip --strip-all {} \; + find "${pkgdir}/usr/${_arch}" -name "*.dll" -exec ${_arch}-strip --strip-unneeded {} \; + find "${pkgdir}/usr/${_arch}" -name "*.a" -exec ${_arch}-strip -g {} \; + [[ -d "${pkgdir}/usr/${_arch}/lib/qt/bin/" ]] && \ + find "${pkgdir}/usr/${_arch}/lib/qt/bin/" -exec strip --strip-all {} \; + find "${pkgdir}/usr/${_arch}/lib/" -iname "*.so.$pkgver" -exec strip --strip-unneeded {} \; + popd + done done - - # .prl files aren't interesting for us - find "${pkgdir}" -name "*.prl" -delete } diff --git a/qt5-sensors/mingw-w64/PKGBUILD b/qt5-sensors/mingw-w64/PKGBUILD index 00cf0a0d..e3add2bd 100644 --- a/qt5-sensors/mingw-w64/PKGBUILD +++ b/qt5-sensors/mingw-w64/PKGBUILD @@ -5,10 +5,13 @@ # All my PKGBUILDs are managed at https://github.com/Martchus/PKGBUILDs where # you also find the URL of a binary repository. +# Includes dynamic and static versions; if only one version is requried, just +# set $NO_STATIC_LIBS or $NO_SHARED_LIBS. + _qt_module=qtsensors pkgname=mingw-w64-qt5-sensors pkgver=5.7.0 -pkgrel=1 +pkgrel=2 arch=('any') pkgdesc="Provides access to sensor hardware and motion gesture recognition (mingw-w64)" depends=(mingw-w64-qt5-base mingw-w64-qt5-declarative) @@ -21,30 +24,46 @@ _pkgfqn="${_qt_module}-opensource-src-${pkgver}" source=("https://download.qt.io/official_releases/qt/${pkgver:0:3}/${pkgver}/submodules/${_pkgfqn}.tar.xz") md5sums=('ccd4b5869b83d7a2c8f6dd1d61e9741a') -_architectures="i686-w64-mingw32 x86_64-w64-mingw32" +_architectures='i686-w64-mingw32 x86_64-w64-mingw32' +[[ $NO_STATIC_LIBS ]] || \ + makedepends+=('mingw-w64-qt5-base-static') \ + optdepends+=('mingw-w64-qt5-base-static: use of static libraries') \ + _configurations+=('CONFIG+=static') +[[ $NO_SHARED_LIBS ]] || \ + _configurations+=('CONFIG+=shared') build() { cd "${srcdir}/${_pkgfqn}" + for _arch in ${_architectures}; do - mkdir -p build-${_arch} && pushd build-${_arch} - ${_arch}-qmake-qt5 ../${_qt_module}.pro - make - popd + for _config in "${_configurations[@]}"; do + msg2 "Building ${_config##*=} version for ${_arch}" + mkdir -p build-${_arch}-${_config##*=} && pushd build-${_arch}-${_config##*=} + ${_arch}-qmake-qt5 ../${_qt_module}.pro ${_config} + make + popd + done done } package() { cd "${srcdir}/${_pkgfqn}" - for _arch in ${_architectures}; do - pushd build-${_arch} - make INSTALL_ROOT="${pkgdir}" install - # The .dll's are installed in both bindir and libdir - # One copy of the .dll's is sufficient - rm -f "${pkgdir}/usr/${_arch}/lib/"*.dll - find "${pkgdir}/usr/${_arch}" -name "*.exe" -o -name "*.bat" -o -name "*.def" -o -name "*.exp" -o -name '*.prl' | xargs -rtl1 rm - find "${pkgdir}/usr/${_arch}" -name "*.dll" -exec ${_arch}-strip --strip-unneeded {} \; - find "${pkgdir}/usr/${_arch}" -name "*.a" -o -name "*.dll" | xargs -rtl1 ${_arch}-strip -g - popd + for _arch in ${_architectures}; do + for _config in "${_configurations[@]}"; do + pushd build-${_arch}-${_config##*=} + + make INSTALL_ROOT="$pkgdir" install + find "${pkgdir}/usr/${_arch}/lib" -maxdepth 1 -name "*.dll" -exec rm {} \; + [ "$NO_STATIC_EXECUTABLES" -a "${_config##*=}" = static -o "$NO_EXECUTABLES" ] && \ + find "${pkgdir}/usr/${_arch}" -name "*.exe" -exec rm {} \; || \ + find "${pkgdir}/usr/${_arch}" -name "*.exe" -exec ${_arch}-strip --strip-all {} \; + find "${pkgdir}/usr/${_arch}" -name "*.dll" -exec ${_arch}-strip --strip-unneeded {} \; + find "${pkgdir}/usr/${_arch}" -name "*.a" -exec ${_arch}-strip -g {} \; + [[ -d "${pkgdir}/usr/${_arch}/lib/qt/bin/" ]] && \ + find "${pkgdir}/usr/${_arch}/lib/qt/bin/" -exec strip --strip-all {} \; + find "${pkgdir}/usr/${_arch}/lib/" -iname "*.so.$pkgver" -exec strip --strip-unneeded {} \; + popd + done done } diff --git a/qt5-serialport/mingw-w64/PKGBUILD b/qt5-serialport/mingw-w64/PKGBUILD index a4b7072d..a39ac1e8 100644 --- a/qt5-serialport/mingw-w64/PKGBUILD +++ b/qt5-serialport/mingw-w64/PKGBUILD @@ -4,10 +4,13 @@ # All my PKGBUILDs are managed at https://github.com/Martchus/PKGBUILDs where # you also find the URL of a binary repository. +# Includes dynamic and static versions; if only one version is requried, just +# set $NO_STATIC_LIBS or $NO_SHARED_LIBS. + _qt_module=qtserialport pkgname="mingw-w64-qt5-serialport" pkgver=5.7.0 -pkgrel=1 +pkgrel=2 arch=('any') pkgdesc="Provides access to hardware and virtual serial ports (mingw-w64)" depends=('mingw-w64-qt5-base') @@ -19,24 +22,31 @@ _pkgfqn="${_qt_module}-opensource-src-$pkgver" source=("https://download.qt.io/official_releases/qt/${pkgver:0:3}/$pkgver/submodules/qtserialport-opensource-src-$pkgver.tar.xz") md5sums=('f93cc8b36964c6aa965c27c3acd12f82') -_architectures="i686-w64-mingw32 x86_64-w64-mingw32" +_architectures='i686-w64-mingw32 x86_64-w64-mingw32' +[[ $NO_STATIC_LIBS ]] || \ + makedepends+=('mingw-w64-qt5-base-static') \ + optdepends+=('mingw-w64-qt5-base-static: use of static libraries') \ + _configurations+=('CONFIG+=static') +[[ $NO_SHARED_LIBS ]] || \ + _configurations+=('CONFIG+=shared') + +prepare() { + cd "${srcdir}/${_pkgfqn}" + # Don't build examples or tests. + sed -i 's/ examples tests//' qtserialport.pro +} build() { cd "${srcdir}/${_pkgfqn}" - # don't build examples or tests. - sed -i 's/ examples tests//' qtserialport.pro - for _arch in ${_architectures}; do - mkdir -p build-${_arch}/include/QtSerialPort && pushd build-${_arch} - ${_arch}-qmake-qt5 ../${_qt_module}.pro - make - popd - - #mkdir -p static-${_arch}/include/QtSerialPort && pushd static-${_arch} - #${_arch}-qmake-qt5 ../${_qt_module}.pro CONFIG+=static - #make - #popd + for _config in "${_configurations[@]}"; do + msg2 "Building ${_config##*=} version for ${_arch}" + mkdir -p build-${_arch}-${_config##*=} && pushd build-${_arch}-${_config##*=} + ${_arch}-qmake-qt5 ../${_qt_module}.pro ${_config} + make + popd + done done } @@ -44,25 +54,20 @@ package() { cd "${srcdir}/${_pkgfqn}" for _arch in ${_architectures}; do - pushd build-${_arch} + for _config in "${_configurations[@]}"; do + pushd build-${_arch}-${_config##*=} - make INSTALL_ROOT="${pkgdir}" install - - popd - - #pushd static-${_arch} - #make INSTALL_ROOT="${pkgdir}" install - #popd - - # The .dll's are installed in both bindir and libdir - # One copy of the .dll's is sufficient - rm -f "${pkgdir}/usr/${_arch}/lib/"*.dll - - ${_arch}-strip --strip-unneeded "${pkgdir}/usr/${_arch}/bin/"*.dll - ${_arch}-strip -g "${pkgdir}/usr/${_arch}/lib/"*.dll.a - #${_arch}-strip -g "${pkgdir}/usr/${_arch}/lib/"*t.a + make INSTALL_ROOT="$pkgdir" install + find "${pkgdir}/usr/${_arch}/lib" -maxdepth 1 -name "*.dll" -exec rm {} \; + [ "$NO_STATIC_EXECUTABLES" -a "${_config##*=}" = static -o "$NO_EXECUTABLES" ] && \ + find "${pkgdir}/usr/${_arch}" -name "*.exe" -exec rm {} \; || \ + find "${pkgdir}/usr/${_arch}" -name "*.exe" -exec ${_arch}-strip --strip-all {} \; + find "${pkgdir}/usr/${_arch}" -name "*.dll" -exec ${_arch}-strip --strip-unneeded {} \; + find "${pkgdir}/usr/${_arch}" -name "*.a" -exec ${_arch}-strip -g {} \; + [[ -d "${pkgdir}/usr/${_arch}/lib/qt/bin/" ]] && \ + find "${pkgdir}/usr/${_arch}/lib/qt/bin/" -exec strip --strip-all {} \; + find "${pkgdir}/usr/${_arch}/lib/" -iname "*.so.$pkgver" -exec strip --strip-unneeded {} \; + popd + done done - - # .prl files aren't interesting for us - find ${pkgdir} -name "*.prl" -delete } diff --git a/qt5-svg/mingw-w64/PKGBUILD b/qt5-svg/mingw-w64/PKGBUILD index e6541dd7..c3fbf1b1 100644 --- a/qt5-svg/mingw-w64/PKGBUILD +++ b/qt5-svg/mingw-w64/PKGBUILD @@ -4,10 +4,13 @@ # All my PKGBUILDs are managed at https://github.com/Martchus/PKGBUILDs where # you also find the URL of a binary repository. +# Includes dynamic and static versions; if only one version is requried, just +# set $NO_STATIC_LIBS or $NO_SHARED_LIBS. + _qt_module=qtsvg pkgname="mingw-w64-qt5-svg" pkgver=5.7.0 -pkgrel=1 +pkgrel=2 arch=('any') pkgdesc="Classes for displaying the contents of SVG files (mingw-w64)" depends=('mingw-w64-qt5-base') @@ -19,19 +22,25 @@ _pkgfqn="${_qt_module}-opensource-src-${pkgver}" source=("https://download.qt.io/official_releases/qt/${pkgver:0:3}/${pkgver}/submodules/${_pkgfqn}.tar.xz") md5sums=('c7a769168467f4ea21a5872260c3b46e') -_architectures="i686-w64-mingw32 x86_64-w64-mingw32" +_architectures='i686-w64-mingw32 x86_64-w64-mingw32' +[[ $NO_STATIC_LIBS ]] || \ + makedepends+=('mingw-w64-qt5-base-static') \ + optdepends+=('mingw-w64-qt5-base-static: use of static libraries') \ + _configurations+=('CONFIG+=static') +[[ $NO_SHARED_LIBS ]] || \ + _configurations+=('CONFIG+=shared') -build() -{ +build() { cd "${srcdir}/${_pkgfqn}" for _arch in ${_architectures}; do - mkdir -p build-${_arch} && pushd build-${_arch} - - ${_arch}-qmake-qt5 ../${_qt_module}.pro - make - - popd + for _config in "${_configurations[@]}"; do + msg2 "Building ${_config##*=} version for ${_arch}" + mkdir -p build-${_arch}-${_config##*=} && pushd build-${_arch}-${_config##*=} + ${_arch}-qmake-qt5 ../${_qt_module}.pro ${_config} + make + popd + done done } @@ -39,20 +48,20 @@ package() { cd "${srcdir}/${_pkgfqn}" for _arch in ${_architectures}; do - pushd build-${_arch} + for _config in "${_configurations[@]}"; do + pushd build-${_arch}-${_config##*=} - make INSTALL_ROOT="${pkgdir}" install - - # The .dll's are installed in both bindir and libdir - # One copy of the .dll's is sufficient - rm -f "${pkgdir}/usr/${_arch}/lib/"*.dll - - ${_arch}-strip --strip-unneeded "${pkgdir}/usr/${_arch}/"{bin,lib/qt/plugins/*}/*.dll - ${_arch}-strip --strip-unneeded "${pkgdir}/usr/${_arch}/lib/"*.dll.a - - popd + make INSTALL_ROOT="$pkgdir" install + find "${pkgdir}/usr/${_arch}/lib" -maxdepth 1 -name "*.dll" -exec rm {} \; + [ "$NO_STATIC_EXECUTABLES" -a "${_config##*=}" = static -o "$NO_EXECUTABLES" ] && \ + find "${pkgdir}/usr/${_arch}" -name "*.exe" -exec rm {} \; || \ + find "${pkgdir}/usr/${_arch}" -name "*.exe" -exec ${_arch}-strip --strip-all {} \; + find "${pkgdir}/usr/${_arch}" -name "*.dll" -exec ${_arch}-strip --strip-unneeded {} \; + find "${pkgdir}/usr/${_arch}" -name "*.a" -exec ${_arch}-strip -g {} \; + [[ -d "${pkgdir}/usr/${_arch}/lib/qt/bin/" ]] && \ + find "${pkgdir}/usr/${_arch}/lib/qt/bin/" -exec strip --strip-all {} \; + find "${pkgdir}/usr/${_arch}/lib/" -iname "*.so.$pkgver" -exec strip --strip-unneeded {} \; + popd + done done - - # .prl files aren't interesting for us - find "${pkgdir}" -name "*.prl" -delete } diff --git a/qt5-tools/mingw-w64/PKGBUILD b/qt5-tools/mingw-w64/PKGBUILD index b1128e96..73dac2e9 100755 --- a/qt5-tools/mingw-w64/PKGBUILD +++ b/qt5-tools/mingw-w64/PKGBUILD @@ -12,10 +12,6 @@ # For QWebViewPlugin, add mingw-w64-qt5-webkit to dependencies # For QAxWidgetPlugin, add mingw-w64-qt5-activeqt to dependencies -# To use the static variant with qmake set the following variables -# in addition to the variables mentioned in mingw-w64-qt5-base: -# DEFINES+=QT_DESIGNER_STATIC - _qt_module=qttools pkgname="mingw-w64-qt5-tools" pkgver=5.7.0 @@ -79,13 +75,15 @@ package() { pushd build-${_arch}-${_config##*=} make INSTALL_ROOT="$pkgdir" install - # The .dll's are installed in both bindir and libdir, one copy of the .dll's is sufficient - find "${pkgdir}/usr/${_arch}/lib" -name "*.dll" -exec rm {} \; + find "${pkgdir}/usr/${_arch}/lib" -maxdepth 1 -name "*.dll" -exec rm {} \; # Applications might be useful as well; keeping them will not hurt anybody I suppose - find "${pkgdir}/usr/${_arch}" -name "*.exe" -exec ${_arch}-strip --strip-all {} \; + [ "$NO_STATIC_EXECUTABLES" -a "${_config##*=}" = static -o "$NO_EXECUTABLES" ] && \ + find "${pkgdir}/usr/${_arch}" -name "*.exe" -exec rm {} \; || \ + find "${pkgdir}/usr/${_arch}" -name "*.exe" -exec ${_arch}-strip --strip-all {} \; find "${pkgdir}/usr/${_arch}" -name "*.dll" -exec ${_arch}-strip --strip-unneeded {} \; find "${pkgdir}/usr/${_arch}" -name "*.a" -exec ${_arch}-strip -g {} \; - find "${pkgdir}/usr/${_arch}/lib/qt/bin/" -exec strip --strip-all {} \; + [[ -d "${pkgdir}/usr/${_arch}/lib/qt/bin/" ]] && \ + find "${pkgdir}/usr/${_arch}/lib/qt/bin/" -exec strip --strip-all {} \; find "${pkgdir}/usr/${_arch}/lib/" -iname "*.so.$pkgver" -exec strip --strip-unneeded {} \; # Create symlinks for tools @@ -105,7 +103,7 @@ package() { # Make sure the executables don't conflict with their mingw-qt4 counterpart for _arch in ${_architectures}; do for exe_file in "${pkgdir}/usr/${_arch}/bin/"*.exe; do - mv "${exe_file}" "${exe_file%.exe}-qt5.exe" + [[ -f $exe_file ]] && mv "${exe_file}" "${exe_file%.exe}-qt5.exe" done done } diff --git a/qt5-translations/mingw-w64/PKGBUILD b/qt5-translations/mingw-w64/PKGBUILD index f689dff4..31b3a589 100644 --- a/qt5-translations/mingw-w64/PKGBUILD +++ b/qt5-translations/mingw-w64/PKGBUILD @@ -5,10 +5,12 @@ # All my PKGBUILDs are managed at https://github.com/Martchus/PKGBUILDs where # you also find the URL of a binary repository. +# Contains only *.qm files (and no shared/static libs). + _qt_module=qttranslations pkgname="mingw-w64-qt5-translations" pkgver=5.7.0 -pkgrel=1 +pkgrel=2 arch=('any') pkgdesc="A cross-platform application and UI framework (translations, mingw-w64)" depends=('mingw-w64-qt5-base') @@ -20,30 +22,23 @@ _pkgfqn="${_qt_module}-opensource-src-${pkgver}" source=("https://download.qt.io/official_releases/qt/${pkgver:0:3}/${pkgver}/submodules/${_pkgfqn}.tar.xz") md5sums=('bb8f47ff5455b1e584588fa1a4141719') -_architectures="i686-w64-mingw32 x86_64-w64-mingw32" +_architectures='i686-w64-mingw32 x86_64-w64-mingw32' -build() -{ +build() { cd "${srcdir}/${_pkgfqn}" - for _arch in ${_architectures}; do mkdir -p build-${_arch} && pushd build-${_arch} - ${_arch}-qmake-qt5 ../${_qt_module}.pro make - popd done } package() { cd "${srcdir}/${_pkgfqn}" - for _arch in ${_architectures}; do pushd build-${_arch} - make INSTALL_ROOT="${pkgdir}" install - popd done } diff --git a/qt5-virtualkeyboard/mingw-w64/PKGBUILD b/qt5-virtualkeyboard/mingw-w64/PKGBUILD index 475b540f..b40f31ba 100644 --- a/qt5-virtualkeyboard/mingw-w64/PKGBUILD +++ b/qt5-virtualkeyboard/mingw-w64/PKGBUILD @@ -5,10 +5,13 @@ # All my PKGBUILDs are managed at https://github.com/Martchus/PKGBUILDs where # you also find the URL of a binary repository. +# Includes dynamic and static versions; if only one version is requried, just +# set $NO_STATIC_LIBS or $NO_SHARED_LIBS. + _qt_module=qtvirtualkeyboard pkgname="mingw-w64-qt5-virtualkeyboard" pkgver=5.7.0 -pkgrel=1 +pkgrel=2 arch=('any') pkgdesc="Virtual keyboard framework (translations, mingw-w64)" depends=('mingw-w64-qt5-declarative' 'mingw-w64-qt5-svg') @@ -20,19 +23,25 @@ _pkgfqn="${_qt_module}-opensource-src-${pkgver}" source=("https://download.qt.io/official_releases/qt/${pkgver:0:3}/${pkgver}/submodules/${_pkgfqn}.tar.xz") md5sums=('fa473ab9175483dd82aa4d27b9682715') -_architectures="i686-w64-mingw32 x86_64-w64-mingw32" +_architectures='i686-w64-mingw32 x86_64-w64-mingw32' +[[ $NO_STATIC_LIBS ]] || \ + makedepends+=('mingw-w64-qt5-base-static') \ + optdepends+=('mingw-w64-qt5-base-static: use of static libraries') \ + _configurations+=('CONFIG+=static') +[[ $NO_SHARED_LIBS ]] || \ + _configurations+=('CONFIG+=shared') -build() -{ +build() { cd "${srcdir}/${_pkgfqn}" for _arch in ${_architectures}; do - mkdir -p build-${_arch} && pushd build-${_arch} - - ${_arch}-qmake-qt5 ../${_qt_module}.pro - make - - popd + for _config in "${_configurations[@]}"; do + msg2 "Building ${_config##*=} version for ${_arch}" + mkdir -p build-${_arch}-${_config##*=} && pushd build-${_arch}-${_config##*=} + ${_arch}-qmake-qt5 ../${_qt_module}.pro ${_config} + make + popd + done done } @@ -40,9 +49,20 @@ package() { cd "${srcdir}/${_pkgfqn}" for _arch in ${_architectures}; do - pushd build-${_arch} - make INSTALL_ROOT="${pkgdir}" install - find "$pkgdir/usr/${_arch}" -name '*.dll' -exec ${_arch}-strip --strip-unneeded {} \; - popd + for _config in "${_configurations[@]}"; do + pushd build-${_arch}-${_config##*=} + + make INSTALL_ROOT="$pkgdir" install + find "${pkgdir}/usr/${_arch}/lib" -maxdepth 1 -name "*.dll" -exec rm {} \; + [ "$NO_STATIC_EXECUTABLES" -a "${_config##*=}" = static -o "$NO_EXECUTABLES" ] && \ + find "${pkgdir}/usr/${_arch}" -name "*.exe" -exec rm {} \; || \ + find "${pkgdir}/usr/${_arch}" -name "*.exe" -exec ${_arch}-strip --strip-all {} \; + find "${pkgdir}/usr/${_arch}" -name "*.dll" -exec ${_arch}-strip --strip-unneeded {} \; + find "${pkgdir}/usr/${_arch}" -name "*.a" -exec ${_arch}-strip -g {} \; + [[ -d "${pkgdir}/usr/${_arch}/lib/qt/bin/" ]] && \ + find "${pkgdir}/usr/${_arch}/lib/qt/bin/" -exec strip --strip-all {} \; + find "${pkgdir}/usr/${_arch}/lib/" -iname "*.so.$pkgver" -exec strip --strip-unneeded {} \; + popd + done done } diff --git a/qt5-webchannel/mingw-w64/PKGBUILD b/qt5-webchannel/mingw-w64/PKGBUILD index be319ca3..e84a8328 100644 --- a/qt5-webchannel/mingw-w64/PKGBUILD +++ b/qt5-webchannel/mingw-w64/PKGBUILD @@ -3,10 +3,13 @@ # All my PKGBUILDs are managed at https://github.com/Martchus/PKGBUILDs where # you also find the URL of a binary repository. +# Includes dynamic and static versions; if only one version is requried, just +# set $NO_STATIC_LIBS or $NO_SHARED_LIBS. + _qt_module=qtwebchannel pkgname=mingw-w64-qt5-webchannel pkgver=5.7.0 -pkgrel=1 +pkgrel=2 arch=('any') pkgdesc='Provides access to QObject or QML objects from HTML clients for seamless integration of Qt applications with HTML/JavaScript clients (mingw-w64)' depends=('mingw-w64-qt5-declarative') @@ -18,33 +21,47 @@ _pkgfqn="${_qt_module}-opensource-src-${pkgver}" groups=(mingw-w64-qt mingw-w64-qt5) source=("https://download.qt.io/official_releases/qt/${pkgver:0:3}/${pkgver}/submodules/${_pkgfqn}.tar.xz") md5sums=('dd7699ddeb203d77237ab58a06f9fbfa') -_architectures="i686-w64-mingw32 x86_64-w64-mingw32" -prepare() { - cd "${srcdir}/${_pkgfqn}" -} +_architectures='i686-w64-mingw32 x86_64-w64-mingw32' +[[ $NO_STATIC_LIBS ]] || \ + makedepends+=('mingw-w64-qt5-base-static') \ + optdepends+=('mingw-w64-qt5-base-static: use of static libraries') \ + _configurations+=('CONFIG+=static') +[[ $NO_SHARED_LIBS ]] || \ + _configurations+=('CONFIG+=shared') build() { - unset PKG_CONFIG_PATH cd "${srcdir}/${_pkgfqn}" + for _arch in ${_architectures}; do - mkdir -p build-${_arch} && pushd build-${_arch} - ${_arch}-qmake-qt5 ../${_qt_module}.pro - make - popd + for _config in "${_configurations[@]}"; do + msg2 "Building ${_config##*=} version for ${_arch}" + mkdir -p build-${_arch}-${_config##*=} && pushd build-${_arch}-${_config##*=} + ${_arch}-qmake-qt5 ../${_qt_module}.pro ${_config} + make + popd + done done } package() { - for _arch in ${_architectures}; do - cd "${srcdir}/${_pkgfqn}/build-${_arch}" - make INSTALL_ROOT="${pkgdir}" install + cd "${srcdir}/${_pkgfqn}" - # The .dll's are installed in both bindir and libdir - # One copy of the .dll's is sufficient - rm -f "${pkgdir}/usr/${_arch}/lib/"*.dll - find "${pkgdir}/usr/${_arch}" -name "*.exe" -o -name "*.bat" -o -name "*.def" -o -name "*.exp" -o -name '*.prl' | xargs -rtl1 rm - find "${pkgdir}/usr/${_arch}" -name "*.dll" -exec ${_arch}-strip --strip-unneeded {} \; - find "${pkgdir}/usr/${_arch}" -name "*.a" -o -name "*.dll" | xargs -rtl1 ${_arch}-strip -g + for _arch in ${_architectures}; do + for _config in "${_configurations[@]}"; do + pushd build-${_arch}-${_config##*=} + + make INSTALL_ROOT="$pkgdir" install + find "${pkgdir}/usr/${_arch}/lib" -maxdepth 1 -name "*.dll" -exec rm {} \; + [ "$NO_STATIC_EXECUTABLES" -a "${_config##*=}" = static -o "$NO_EXECUTABLES" ] && \ + find "${pkgdir}/usr/${_arch}" -name "*.exe" -exec rm {} \; || \ + find "${pkgdir}/usr/${_arch}" -name "*.exe" -exec ${_arch}-strip --strip-all {} \; + find "${pkgdir}/usr/${_arch}" -name "*.dll" -exec ${_arch}-strip --strip-unneeded {} \; + find "${pkgdir}/usr/${_arch}" -name "*.a" -exec ${_arch}-strip -g {} \; + [[ -d "${pkgdir}/usr/${_arch}/lib/qt/bin/" ]] && \ + find "${pkgdir}/usr/${_arch}/lib/qt/bin/" -exec strip --strip-all {} \; + find "${pkgdir}/usr/${_arch}/lib/" -iname "*.so.$pkgver" -exec strip --strip-unneeded {} \; + popd + done done } diff --git a/qt5-webengine/mingw-w64/PKGBUILD b/qt5-webengine/mingw-w64/PKGBUILD index 7a7d0692..12a26d23 100644 --- a/qt5-webengine/mingw-w64/PKGBUILD +++ b/qt5-webengine/mingw-w64/PKGBUILD @@ -1,14 +1,17 @@ # Maintainer: Martchus -# DOES NOT WORK YET (mingw-64 currently not supported by Qt WebEngine) +# DOES NOT WORK YET (mingw-w64 currently not supported by Qt WebEngine) # All my PKGBUILDs are managed at https://github.com/Martchus/PKGBUILDs where # you also find the URL of a binary repository. +# Includes dynamic and static versions; if only one version is requried, just +# set $NO_STATIC_LIBS or $NO_SHARED_LIBS. + _qt_module=qtwebengine pkgname=mingw-w64-qt5-webengine pkgver=5.7.0 -pkgrel=1 +pkgrel=2 arch=('any') pkgdesc='Provides support for web applications using the Chromium browser project (mingw-w64)' depends=('mingw-w64-qt5-webchannel' 'mingw-w64-qt5-location') @@ -22,7 +25,14 @@ source=("https://download.qt.io/official_releases/qt/${pkgver:0:3}/${pkgver}/sub '0044-qt-5.4.0-win32-g++-enable-qtwebengine-build.patch') md5sums=('937f64886fbcb038d6fa4b44ae80cbeb' '27e0f474f66f05f3911c71621b24636d') -_architectures="i686-w64-mingw32 x86_64-w64-mingw32" + +_architectures='i686-w64-mingw32 x86_64-w64-mingw32' +[[ $NO_STATIC_LIBS ]] || \ + makedepends+=('mingw-w64-qt5-base-static') \ + optdepends+=('mingw-w64-qt5-base-static: use of static libraries') \ + _configurations+=('CONFIG+=static') +[[ $NO_SHARED_LIBS ]] || \ + _configurations+=('CONFIG+=shared') prepare() { cd "${srcdir}/${_pkgfqn}" @@ -40,28 +50,39 @@ prepare() { } build() { + cd "${srcdir}/${_pkgfqn}" unset PKG_CONFIG_PATH # python2 workaround export PATH="${srcdir}/python2-path:$PATH" - cd "${srcdir}/${_pkgfqn}" for _arch in ${_architectures}; do - mkdir -p build-${_arch} && pushd build-${_arch} - ${_arch}-qmake-qt5 ../${_qt_module}.pro - make - popd + for _config in "${_configurations[@]}"; do + msg2 "Building ${_config##*=} version for ${_arch}" + mkdir -p build-${_arch}-${_config##*=} && pushd build-${_arch}-${_config##*=} + ${_arch}-qmake-qt5 ../${_qt_module}.pro ${_config} + make + popd + done done } package() { - for _arch in ${_architectures}; do - cd "${srcdir}/${_pkgfqn}/build-${_arch}" - make INSTALL_ROOT="${pkgdir}" install + cd "${srcdir}/${_pkgfqn}" - # The .dll's are installed in both bindir and libdir - # One copy of the .dll's is sufficient - rm -f "${pkgdir}/usr/${_arch}/lib/"*.dll - find "${pkgdir}/usr/${_arch}" -name "*.exe" -o -name "*.bat" -o -name "*.def" -o -name "*.exp" -o -name '*.prl' | xargs -rtl1 rm - find "${pkgdir}/usr/${_arch}" -name "*.dll" -exec ${_arch}-strip --strip-unneeded {} \; - find "${pkgdir}/usr/${_arch}" -name "*.a" -o -name "*.dll" | xargs -rtl1 ${_arch}-strip -g + for _arch in ${_architectures}; do + for _config in "${_configurations[@]}"; do + pushd build-${_arch}-${_config##*=} + + make INSTALL_ROOT="$pkgdir" install + find "${pkgdir}/usr/${_arch}/lib" -maxdepth 1 -name "*.dll" -exec rm {} \; + [ "$NO_STATIC_EXECUTABLES" -a "${_config##*=}" = static -o "$NO_EXECUTABLES" ] && \ + find "${pkgdir}/usr/${_arch}" -name "*.exe" -exec rm {} \; || \ + find "${pkgdir}/usr/${_arch}" -name "*.exe" -exec ${_arch}-strip --strip-all {} \; + find "${pkgdir}/usr/${_arch}" -name "*.dll" -exec ${_arch}-strip --strip-unneeded {} \; + find "${pkgdir}/usr/${_arch}" -name "*.a" -exec ${_arch}-strip -g {} \; + [[ -d "${pkgdir}/usr/${_arch}/lib/qt/bin/" ]] && \ + find "${pkgdir}/usr/${_arch}/lib/qt/bin/" -exec strip --strip-all {} \; + find "${pkgdir}/usr/${_arch}/lib/" -iname "*.so.$pkgver" -exec strip --strip-unneeded {} \; + popd + done done } diff --git a/qt5-webkit/mingw-w64/PKGBUILD b/qt5-webkit/mingw-w64/PKGBUILD index 2896a75d..c25821b0 100644 --- a/qt5-webkit/mingw-w64/PKGBUILD +++ b/qt5-webkit/mingw-w64/PKGBUILD @@ -5,7 +5,10 @@ # All my PKGBUILDs are managed at https://github.com/Martchus/PKGBUILDs where # you also find the URL of a binary repository. -# See the comment below for additional dependencies/functionality. +# See the comments to enable further dependencies/functionality. + +# Includes dynamic and static versions; if only one version is requried, just +# set $NO_STATIC_LIBS or $NO_SHARED_LIBS. _qt_module=qtwebkit pkgname=mingw-w64-qt5-webkit @@ -59,7 +62,13 @@ md5sums=('9379b8829639645c184fa63532035098' 'c36fe581e0f3b61cef19415782b257ca' '81901e7f7653dd4e71206bc107cc7eb9') -_architectures="i686-w64-mingw32 x86_64-w64-mingw32" +_architectures='i686-w64-mingw32 x86_64-w64-mingw32' +[[ $NO_STATIC_LIBS ]] || \ + makedepends+=('mingw-w64-qt5-base-static') \ + optdepends+=('mingw-w64-qt5-base-static: use of static libraries') \ + _configurations+=('CONFIG+=static') +[[ $NO_SHARED_LIBS ]] || \ + _configurations+=('CONFIG+=shared') prepare() { cd "${srcdir}/${_pkgfqn}" @@ -118,37 +127,47 @@ prepare() { } build() { - unset PKG_CONFIG_PATH cd "${srcdir}/${_pkgfqn}" + unset PKG_CONFIG_PATH for _arch in ${_architectures}; do - mkdir -p build-${_arch} && pushd build-${_arch} + for _config in "${_configurations[@]}"; do + msg2 "Building ${_config##*=} version for ${_arch}" + mkdir -p build-${_arch}-${_config##*=} && pushd build-${_arch}-${_config##*=} + # Since Source/ThirdParty/ANGLE has been removed ensure files + # from system ANGLE can be included (patches from Fedora don't help + # here because Fedora uses other paths) + export CPATH="$CPATH:/usr/$_arch/include:/usr/$_arch/include/GLSLANG" - # Since Source/ThirdParty/ANGLE has been removed ensure files - # from system ANGLE can be included (patches from Fedora don't help - # here because Fedora uses other paths) - export CPATH="$CPATH:/usr/$_arch/include:/usr/$_arch/include/GLSLANG" - - # SH_GLSL_OUTPUT has been renamed to SH_GLSL_COMPATIBILITY_OUTPUT - # in the latest ANGLE version so I just add a definition for backward compatibility - ${_arch}-qmake-qt5 \ - "QMAKE_CXXFLAGS+=-Wno-c++0x-compat" \ - "DEFINES+=SH_GLSL_OUTPUT=SH_GLSL_COMPATIBILITY_OUTPUT" \ - ../WebKit.pro - make - popd + # SH_GLSL_OUTPUT has been renamed to SH_GLSL_COMPATIBILITY_OUTPUT + # in the latest ANGLE version so I just add a definition for backward compatibility + ${_arch}-qmake-qt5 \ + "QMAKE_CXXFLAGS+=-Wno-c++0x-compat" \ + "DEFINES+=SH_GLSL_OUTPUT=SH_GLSL_COMPATIBILITY_OUTPUT" \ + ../WebKit.pro + make + popd + done done } package() { - for _arch in ${_architectures}; do - cd "${srcdir}/${_pkgfqn}/build-${_arch}" - make INSTALL_ROOT="${pkgdir}" install + cd "${srcdir}/${_pkgfqn}" - # The .dll's are installed in both bindir and libdir - # One copy of the .dll's is sufficient - rm -f "${pkgdir}/usr/${_arch}/lib/"*.dll - find "${pkgdir}/usr/${_arch}" -name "*.exe" -o -name "*.bat" -o -name "*.def" -o -name "*.exp" -o -name '*.prl' | xargs -rtl1 rm - find "${pkgdir}/usr/${_arch}" -name "*.dll" -exec ${_arch}-strip --strip-unneeded {} \; - find "${pkgdir}/usr/${_arch}" -name "*.a" -o -name "*.dll" | xargs -rtl1 ${_arch}-strip -g + for _arch in ${_architectures}; do + for _config in "${_configurations[@]}"; do + pushd build-${_arch}-${_config##*=} + + make INSTALL_ROOT="$pkgdir" install + find "${pkgdir}/usr/${_arch}/lib" -maxdepth 1 -name "*.dll" -exec rm {} \; + [ "$NO_STATIC_EXECUTABLES" -a "${_config##*=}" = static -o "$NO_EXECUTABLES" ] && \ + find "${pkgdir}/usr/${_arch}" -name "*.exe" -exec rm {} \; || \ + find "${pkgdir}/usr/${_arch}" -name "*.exe" -exec ${_arch}-strip --strip-all {} \; + find "${pkgdir}/usr/${_arch}" -name "*.dll" -exec ${_arch}-strip --strip-unneeded {} \; + find "${pkgdir}/usr/${_arch}" -name "*.a" -exec ${_arch}-strip -g {} \; + [[ -d "${pkgdir}/usr/${_arch}/lib/qt/bin/" ]] && \ + find "${pkgdir}/usr/${_arch}/lib/qt/bin/" -exec strip --strip-all {} \; + find "${pkgdir}/usr/${_arch}/lib/" -iname "*.so.$pkgver" -exec strip --strip-unneeded {} \; + popd + done done } diff --git a/qt5-websockets/mingw-w64/PKGBUILD b/qt5-websockets/mingw-w64/PKGBUILD index 04038259..0b82a991 100644 --- a/qt5-websockets/mingw-w64/PKGBUILD +++ b/qt5-websockets/mingw-w64/PKGBUILD @@ -4,10 +4,13 @@ # All my PKGBUILDs are managed at https://github.com/Martchus/PKGBUILDs where # you also find the URL of a binary repository. +# Includes dynamic and static versions; if only one version is requried, just +# set $NO_STATIC_LIBS or $NO_SHARED_LIBS. + _qt_module=qtwebsockets pkgname="mingw-w64-qt5-websockets" pkgver=5.7.0 -pkgrel=1 +pkgrel=2 arch=('any') pkgdesc="Provides WebSocket communication compliant with RFC 6455 (mingw-w64)" depends=('mingw-w64-qt5-base') @@ -19,18 +22,25 @@ _pkgfqn="${_qt_module}-opensource-src-${pkgver}" source=("https://download.qt.io/official_releases/qt/${pkgver:0:3}/${pkgver}/submodules/${_pkgfqn}.tar.xz") md5sums=('54fc9157eeebd2af87f1da494d8fec1e') -_architectures="i686-w64-mingw32 x86_64-w64-mingw32" +_architectures='i686-w64-mingw32 x86_64-w64-mingw32' +[[ $NO_STATIC_LIBS ]] || \ + makedepends+=('mingw-w64-qt5-base-static') \ + optdepends+=('mingw-w64-qt5-base-static: use of static libraries') \ + _configurations+=('CONFIG+=static') +[[ $NO_SHARED_LIBS ]] || \ + _configurations+=('CONFIG+=shared') build() { cd "${srcdir}/${_pkgfqn}" for _arch in ${_architectures}; do - mkdir -p build-${_arch} && pushd build-${_arch} - - ${_arch}-qmake-qt5 ../${_qt_module}.pro - make - - popd + for _config in "${_configurations[@]}"; do + msg2 "Building ${_config##*=} version for ${_arch}" + mkdir -p build-${_arch}-${_config##*=} && pushd build-${_arch}-${_config##*=} + ${_arch}-qmake-qt5 ../${_qt_module}.pro ${_config} + make + popd + done done } @@ -38,16 +48,20 @@ package() { cd "${srcdir}/${_pkgfqn}" for _arch in ${_architectures}; do - pushd build-${_arch} + for _config in "${_configurations[@]}"; do + pushd build-${_arch}-${_config##*=} - make INSTALL_ROOT="${pkgdir}" install - - ${_arch}-strip --strip-unneeded "$pkgdir"/usr/${_arch}/bin/*.dll - ${_arch}-strip -g "$pkgdir"/usr/${_arch}/lib/*.a - - popd + make INSTALL_ROOT="$pkgdir" install + find "${pkgdir}/usr/${_arch}/lib" -maxdepth 1 -name "*.dll" -exec rm {} \; + [ "$NO_STATIC_EXECUTABLES" -a "${_config##*=}" = static -o "$NO_EXECUTABLES" ] && \ + find "${pkgdir}/usr/${_arch}" -name "*.exe" -exec rm {} \; || \ + find "${pkgdir}/usr/${_arch}" -name "*.exe" -exec ${_arch}-strip --strip-all {} \; + find "${pkgdir}/usr/${_arch}" -name "*.dll" -exec ${_arch}-strip --strip-unneeded {} \; + find "${pkgdir}/usr/${_arch}" -name "*.a" -exec ${_arch}-strip -g {} \; + [[ -d "${pkgdir}/usr/${_arch}/lib/qt/bin/" ]] && \ + find "${pkgdir}/usr/${_arch}/lib/qt/bin/" -exec strip --strip-all {} \; + find "${pkgdir}/usr/${_arch}/lib/" -iname "*.so.$pkgver" -exec strip --strip-unneeded {} \; + popd + done done - - # .prl files aren't interesting for us - find "${pkgdir}" -name "*.prl" -delete } diff --git a/qt5-winextras/mingw-w64/PKGBUILD b/qt5-winextras/mingw-w64/PKGBUILD index 4faa4ea0..11d66bdc 100644 --- a/qt5-winextras/mingw-w64/PKGBUILD +++ b/qt5-winextras/mingw-w64/PKGBUILD @@ -4,10 +4,13 @@ # All my PKGBUILDs are managed at https://github.com/Martchus/PKGBUILDs where # you also find the URL of a binary repository. +# Includes dynamic and static versions; if only one version is requried, just +# set $NO_STATIC_LIBS or $NO_SHARED_LIBS. + _qt_module=qtwinextras pkgname="mingw-w64-qt5-winextras" pkgver=5.7.0 -pkgrel=1 +pkgrel=2 arch=('any') pkgdesc="Classes and functions that enable you to use Windows-specific functions (mingw-w64)" depends=('mingw-w64-qt5-base' 'mingw-w64-qt5-declarative') @@ -19,19 +22,25 @@ _pkgfqn="${_qt_module}-opensource-src-${pkgver}" source=("https://download.qt.io/official_releases/qt/${pkgver:0:3}/${pkgver}/submodules/${_pkgfqn}.tar.xz") md5sums=('45eced234b7861ff9c52696dd1b5659a') -_architectures="i686-w64-mingw32 x86_64-w64-mingw32" +_architectures='i686-w64-mingw32 x86_64-w64-mingw32' +[[ $NO_STATIC_LIBS ]] || \ + makedepends+=('mingw-w64-qt5-base-static') \ + optdepends+=('mingw-w64-qt5-base-static: use of static libraries') \ + _configurations+=('CONFIG+=static') +[[ $NO_SHARED_LIBS ]] || \ + _configurations+=('CONFIG+=shared') -build() -{ +build() { cd "${srcdir}/${_pkgfqn}" for _arch in ${_architectures}; do - mkdir -p build-${_arch} && pushd build-${_arch} - - ${_arch}-qmake-qt5 ../${_qt_module}.pro - make - - popd + for _config in "${_configurations[@]}"; do + msg2 "Building ${_config##*=} version for ${_arch}" + mkdir -p build-${_arch}-${_config##*=} && pushd build-${_arch}-${_config##*=} + ${_arch}-qmake-qt5 ../${_qt_module}.pro ${_config} + make + popd + done done } @@ -39,13 +48,20 @@ package() { cd "${srcdir}/${_pkgfqn}" for _arch in ${_architectures}; do - pushd build-${_arch} + for _config in "${_configurations[@]}"; do + pushd build-${_arch}-${_config##*=} - make INSTALL_ROOT="${pkgdir}" install - - popd + make INSTALL_ROOT="$pkgdir" install + find "${pkgdir}/usr/${_arch}/lib" -maxdepth 1 -name "*.dll" -exec rm {} \; + [ "$NO_STATIC_EXECUTABLES" -a "${_config##*=}" = static -o "$NO_EXECUTABLES" ] && \ + find "${pkgdir}/usr/${_arch}" -name "*.exe" -exec rm {} \; || \ + find "${pkgdir}/usr/${_arch}" -name "*.exe" -exec ${_arch}-strip --strip-all {} \; + find "${pkgdir}/usr/${_arch}" -name "*.dll" -exec ${_arch}-strip --strip-unneeded {} \; + find "${pkgdir}/usr/${_arch}" -name "*.a" -exec ${_arch}-strip -g {} \; + [[ -d "${pkgdir}/usr/${_arch}/lib/qt/bin/" ]] && \ + find "${pkgdir}/usr/${_arch}/lib/qt/bin/" -exec strip --strip-all {} \; + find "${pkgdir}/usr/${_arch}/lib/" -iname "*.so.$pkgver" -exec strip --strip-unneeded {} \; + popd + done done - - # .prl files aren't interesting for us - find "${pkgdir}" -name "*.prl" -delete } diff --git a/qt5-xmlpatterns/mingw-w64/PKGBUILD b/qt5-xmlpatterns/mingw-w64/PKGBUILD index 67d6f933..ce78d230 100644 --- a/qt5-xmlpatterns/mingw-w64/PKGBUILD +++ b/qt5-xmlpatterns/mingw-w64/PKGBUILD @@ -4,10 +4,13 @@ # All my PKGBUILDs are managed at https://github.com/Martchus/PKGBUILDs where # you also find the URL of a binary repository. +# Includes dynamic and static versions; if only one version is requried, just +# set $NO_STATIC_LIBS or $NO_SHARED_LIBS. + _qt_module=qtxmlpatterns pkgname="mingw-w64-qt5-xmlpatterns" pkgver=5.7.0 -pkgrel=1 +pkgrel=2 arch=('any') pkgdesc="Support for XPath, XQuery, XSLT and XML schema validation (mingw-w64)" depends=('mingw-w64-qt5-base') @@ -19,19 +22,25 @@ _pkgfqn="${_qt_module}-opensource-src-${pkgver}" source=("https://download.qt.io/official_releases/qt/${pkgver:0:3}/${pkgver}/submodules/${_pkgfqn}.tar.xz") md5sums=('97e447995e9741325ca8da6cff8f882a') -_architectures="i686-w64-mingw32 x86_64-w64-mingw32" +_architectures='i686-w64-mingw32 x86_64-w64-mingw32' +[[ $NO_STATIC_LIBS ]] || \ + makedepends+=('mingw-w64-qt5-base-static') \ + optdepends+=('mingw-w64-qt5-base-static: use of static libraries') \ + _configurations+=('CONFIG+=static') +[[ $NO_SHARED_LIBS ]] || \ + _configurations+=('CONFIG+=shared') -build() -{ +build() { cd "${srcdir}/${_pkgfqn}" for _arch in ${_architectures}; do - mkdir -p build-${_arch} && pushd build-${_arch} - - ${_arch}-qmake-qt5 ../${_qt_module}.pro - make - - popd + for _config in "${_configurations[@]}"; do + msg2 "Building ${_config##*=} version for ${_arch}" + mkdir -p build-${_arch}-${_config##*=} && pushd build-${_arch}-${_config##*=} + ${_arch}-qmake-qt5 ../${_qt_module}.pro ${_config} + make + popd + done done } @@ -39,20 +48,20 @@ package() { cd "${srcdir}/${_pkgfqn}" for _arch in ${_architectures}; do - pushd build-${_arch} + for _config in "${_configurations[@]}"; do + pushd build-${_arch}-${_config##*=} - make INSTALL_ROOT="${pkgdir}" install - - # The .dll's are installed in both bindir and libdir - # One copy of the .dll's is sufficient - rm -f "${pkgdir}/usr/${_arch}/lib/"*.dll - - ${_arch}-strip --strip-unneeded "${pkgdir}/usr/${_arch}/bin/"*.dll - ${_arch}-strip --strip-unneeded "${pkgdir}/usr/${_arch}/lib/"*.dll.a - - popd + make INSTALL_ROOT="$pkgdir" install + find "${pkgdir}/usr/${_arch}/lib" -maxdepth 1 -name "*.dll" -exec rm {} \; + [ "$NO_STATIC_EXECUTABLES" -a "${_config##*=}" = static -o "$NO_EXECUTABLES" ] && \ + find "${pkgdir}/usr/${_arch}" -name "*.exe" -exec rm {} \; || \ + find "${pkgdir}/usr/${_arch}" -name "*.exe" -exec ${_arch}-strip --strip-all {} \; + find "${pkgdir}/usr/${_arch}" -name "*.dll" -exec ${_arch}-strip --strip-unneeded {} \; + find "${pkgdir}/usr/${_arch}" -name "*.a" -exec ${_arch}-strip -g {} \; + [[ -d "${pkgdir}/usr/${_arch}/lib/qt/bin/" ]] && \ + find "${pkgdir}/usr/${_arch}/lib/qt/bin/" -exec strip --strip-all {} \; + find "${pkgdir}/usr/${_arch}/lib/" -iname "*.so.$pkgver" -exec strip --strip-unneeded {} \; + popd + done done - - # .prl files aren't interesting for us - find "${pkgdir}" -name "*.prl" -delete }