# HG changeset patch # User Markus Mützel # Date 1698572735 -3600 # Node ID 9414e8cf3e4f2197f538e074a91bff7dd15e73df # Parent fafb290c1dd7e245050b225514d3628957e9c120 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. diff -r fafb290c1dd7 -r 9414e8cf3e4f src/qt6-qt5compat.mk --- 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; \ diff -r fafb290c1dd7 -r 9414e8cf3e4f src/qt6-qtbase.mk --- 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)' \ diff -r fafb290c1dd7 -r 9414e8cf3e4f src/qt6-qtimageformats.mk --- 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 diff -r fafb290c1dd7 -r 9414e8cf3e4f src/qt6-qtsvg.mk --- 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; \ diff -r fafb290c1dd7 -r 9414e8cf3e4f src/qt6-qttools.mk --- 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 \ diff -r fafb290c1dd7 -r 9414e8cf3e4f src/qt6-qttranslations.mk --- 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