changeset 6944:9414e8cf3e4f

Minor overhaul of Qt6 build rules * src/qt6-qt5compat.mk, src/qt6-qtbase.mk, src/qt6-qtimageformats.mk, src/qt6-qtsvg.mk, src/qt6-qttools.mk, src/qt6-qttranslations.mk: Use Ninja generator (only generator supported by upstream). Specify source and build tree directories in CMake configuration flags. Use separate build tree.
author Markus Mützel <markus.muetzel@gmx.de>
date Sun, 29 Oct 2023 10:45:35 +0100
parents fafb290c1dd7
children 1fc0ff3cf2da
files src/qt6-qt5compat.mk src/qt6-qtbase.mk src/qt6-qtimageformats.mk src/qt6-qtsvg.mk src/qt6-qttools.mk src/qt6-qttranslations.mk
diffstat 6 files changed, 37 insertions(+), 33 deletions(-) [+]
line wrap: on
line diff
--- a/src/qt6-qt5compat.mk	Sat Oct 28 13:32:14 2023 -0400
+++ b/src/qt6-qt5compat.mk	Sun Oct 29 10:45:35 2023 +0100
@@ -15,9 +15,11 @@
 endef
 
 define $(PKG)_BUILD
-    cd '$(1)' && '$(HOST_PREFIX)/qt6/bin/qt-cmake-private' -DCMAKE_INSTALL_PREFIX='$(HOST_PREFIX)/qt6'
-    cmake --build $(1) -j '$(JOBS)'
-    cmake --install $(1)
+    '$(HOST_PREFIX)/qt6/bin/qt-cmake-private' \
+      -S '$(1)' -B '$(1).build' \
+      -DCMAKE_INSTALL_PREFIX='$(HOST_PREFIX)/qt6'
+    cmake --build '$(1).build' -j '$(JOBS)'
+    cmake --install '$(1).build'
     if [ $(MXE_WINDOWS_BUILD) = yes ]; then \
       $(INSTALL) -d '$(HOST_BINDIR)'; \
       cp '$(HOST_PREFIX)'/qt6/bin/Qt6Core5Compat.dll '$(HOST_BINDIR)'/Qt6Core5Compat.dll; \
--- a/src/qt6-qtbase.mk	Sat Oct 28 13:32:14 2023 -0400
+++ b/src/qt6-qtbase.mk	Sun Oct 29 10:45:35 2023 +0100
@@ -11,7 +11,7 @@
 ifeq ($(USE_SYSTEM_FONTCONFIG),no)
   $(PKG)_FONTCONFIG := fontconfig
 endif
-$(PKG)_DEPS     := dbus double-conversion freetds freetype $($(PKG)_FONTCONFIG) icu4c jpeg libjbig libpng libproxy pcre2 postgresql sqlite zlib zstd
+$(PKG)_DEPS     := build-ninja dbus double-conversion freetds freetype $($(PKG)_FONTCONFIG) icu4c jpeg libjbig libpng libproxy pcre2 postgresql sqlite zlib zstd
 
 $(PKG)_CMAKE_OPTS :=
 $(PKG)_CONFIGURE_ENV :=
@@ -72,8 +72,7 @@
 
 define $(PKG)_BUILD
     if [ "$(MXE_NATIVE_BUILD)" = "no" ]; then \
-      mkdir '$(1).native'; \
-      cmake -S '$(1)' -B '$(1).native' \
+      cmake -GNinja -S '$(1)' -B '$(1).native' \
         -DCMAKE_INSTALL_PREFIX='$(BUILD_TOOLS_PREFIX)/qt6' \
         -DCMAKE_TOOLCHAIN_FILE='$(CMAKE_NATIVE_TOOLCHAIN_FILE)' \
         -DQT_BUILD_{TESTS,EXAMPLES,DOCS}=OFF \
@@ -84,9 +83,8 @@
       cmake --install '$(1).native'; \
     fi
 
-    mkdir '$(1).build'
     $($(PKG)_CONFIGURE_ENV) \
-    'cmake' -S '$(1)' -B '$(1).build' \
+    'cmake' -GNinja -S '$(1)' -B '$(1).build' \
         $(CMAKE_CCACHE_FLAGS) \
         -DCMAKE_INSTALL_PREFIX='$(HOST_PREFIX)/qt6' \
         -DCMAKE_TOOLCHAIN_FILE='$(CMAKE_TOOLCHAIN_FILE)' \
--- a/src/qt6-qtimageformats.mk	Sat Oct 28 13:32:14 2023 -0400
+++ b/src/qt6-qtimageformats.mk	Sun Oct 29 10:45:35 2023 +0100
@@ -15,10 +15,9 @@
 endef
 
 define $(PKG)_BUILD
-  mkdir '$(1).build'
-  cd '$(1)' && '$(HOST_PREFIX)/qt6/bin/qt-cmake-private' \
+  '$(HOST_PREFIX)/qt6/bin/qt-cmake-private' \
     -S '$(1)' -B '$(1).build' \
     -DCMAKE_INSTALL_PREFIX='$(HOST_PREFIX)/qt6'
-  cmake --build $(1).build -j '$(JOBS)'
-  cmake --install $(1).build
+  cmake --build '$(1).build' -j '$(JOBS)'
+  cmake --install '$(1).build'
 endef
--- a/src/qt6-qtsvg.mk	Sat Oct 28 13:32:14 2023 -0400
+++ b/src/qt6-qtsvg.mk	Sun Oct 29 10:45:35 2023 +0100
@@ -15,9 +15,11 @@
 endef
 
 define $(PKG)_BUILD
-    cd '$(1)' && '$(HOST_PREFIX)/qt6/bin/qt-cmake-private' -DCMAKE_INSTALL_PREFIX='$(HOST_PREFIX)/qt6'
-    cmake --build $(1) -j '$(JOBS)'
-    cmake --install $(1)
+    '$(HOST_PREFIX)/qt6/bin/qt-cmake-private' \
+      -S '$(1)' -B '$(1).build' \
+      -DCMAKE_INSTALL_PREFIX='$(HOST_PREFIX)/qt6'
+    cmake --build '$(1).build' -j '$(JOBS)'
+    cmake --install '$(1).build'
     if [ $(MXE_WINDOWS_BUILD) = yes ]; then \
       $(INSTALL) -d '$(HOST_BINDIR)'; \
       cp '$(HOST_PREFIX)'/qt6/bin/Qt6Svg.dll '$(HOST_BINDIR)'/Qt6Svg.dll; \
--- a/src/qt6-qttools.mk	Sat Oct 28 13:32:14 2023 -0400
+++ b/src/qt6-qttools.mk	Sun Oct 29 10:45:35 2023 +0100
@@ -16,15 +16,15 @@
 
 define $(PKG)_BUILD
     # native tools
-    mkdir '$(1).tools' && cd '$(1).tools' && \
-     '$(BUILD_TOOLS_PREFIX)/qt6/bin/qt-cmake' -S '$(1)' \
-       -DCMAKE_INSTALL_PREFIX='$(BUILD_TOOLS_PREFIX)/qt6' \
-       -DFEATURE_clang=OFF \
-       -DFEATURE_clangcpp=OFF \
-       -DFEATURE_linguist=ON \
-       -DFEATURE_designer=OFF
+    '$(BUILD_TOOLS_PREFIX)/qt6/bin/qt-cmake' -GNinja \
+      -S '$(1)' -B '$(1).tools' \
+      -DCMAKE_INSTALL_PREFIX='$(BUILD_TOOLS_PREFIX)/qt6' \
+      -DFEATURE_clang=OFF \
+      -DFEATURE_clangcpp=OFF \
+      -DFEATURE_linguist=ON \
+      -DFEATURE_designer=OFF
 
-    cmake --build $(1).tools -j '$(JOBS)'
+    cmake --build '$(1).tools' -j '$(JOBS)'
     cmake --install '$(1).tools'
 
     if [ "$(MXE_NATIVE_BUILD)" = "no" ]; then \
@@ -34,12 +34,12 @@
       echo -e "#!/bin/sh\necho $$0 $$*" > '$(BUILD_TOOLS_PREFIX)/bin/$(MXE_TOOL_PREFIX)'qcollectiongenerator && chmod a+rx '$(BUILD_TOOLS_PREFIX)/bin/$(MXE_TOOL_PREFIX)'qcollectiongenerator; \
     fi
 
-    mkdir '$(1).build' && cd '$(1).build' && \
-      '$(HOST_PREFIX)/qt6/bin/qt-cmake-private' -S '$(1)' \
-        -DCMAKE_INSTALL_PREFIX='$(HOST_PREFIX)/qt6' \
-        -DFEATURE_clang=OFF \
-        -DFEATURE_clangcpp=OFF \
-        -DQT_FORCE_BUILD_TOOLS=ON
+    '$(HOST_PREFIX)/qt6/bin/qt-cmake-private' -GNinja \
+      -S '$(1)' -B '$(1).build' \
+      -DCMAKE_INSTALL_PREFIX='$(HOST_PREFIX)/qt6' \
+      -DFEATURE_clang=OFF \
+      -DFEATURE_clangcpp=OFF \
+      -DQT_FORCE_BUILD_TOOLS=ON
 
 
     # not built for some reason. make dummy so install won't fail
@@ -47,7 +47,7 @@
       touch '$(1).build/bin/qhelpgenerator.exe'; \
     fi
 
-    cmake --build $(1).build -j '$(JOBS)'
+    cmake --build '$(1).build' -j '$(JOBS)'
     cmake --install '$(1).build'
 
     if [ "$(MXE_WINDOWS_BUILD)" = yes ]; then \
--- a/src/qt6-qttranslations.mk	Sat Oct 28 13:32:14 2023 -0400
+++ b/src/qt6-qttranslations.mk	Sun Oct 29 10:45:35 2023 +0100
@@ -14,8 +14,11 @@
 endef
 
 define $(PKG)_BUILD
-    cd '$(1)' && '$(HOST_PREFIX)/qt6/bin/qt-cmake-private' -DCMAKE_INSTALL_PREFIX='$(HOST_PREFIX)/qt6' -DQT_HOST_PATH='$(BUILD_TOOLS_PREFIX)/qt6'
-    cmake --build $(1) -j '$(JOBS)'
-    cmake --install $(1)
+    '$(HOST_PREFIX)/qt6/bin/qt-cmake-private' \
+      -S '$(1)' -B '$(1).build' \
+      -DCMAKE_INSTALL_PREFIX='$(HOST_PREFIX)/qt6' \
+      -DQT_HOST_PATH='$(BUILD_TOOLS_PREFIX)/qt6'
+    cmake --build '$(1).build' -j '$(JOBS)'
+    cmake --install '$(1).build'
 endef