changeset 6887:f5093577b002

Qt6 QtBase: Dynamic OpenGL works only on Windows. * src/qt6-qtbase.mk: Enable FEATURE_opengl_dynamic only when building for Windows. Create symlink to keep build rules of reverse dependencies simple. * src/qt6-qttools.mk: Create dummy executable only when building for Windows.
author Markus Mützel <markus.muetzel@gmx.de>
date Fri, 29 Sep 2023 20:43:29 +0200
parents 3b1036b3713b
children abeca39478cc
files src/qt6-qtbase.mk src/qt6-qttools.mk
diffstat 2 files changed, 26 insertions(+), 20 deletions(-) [+]
line wrap: on
line diff
--- a/src/qt6-qtbase.mk	Fri Sep 29 15:18:41 2023 -0400
+++ b/src/qt6-qtbase.mk	Fri Sep 29 20:43:29 2023 +0200
@@ -27,6 +27,7 @@
   $(PKG)_CMAKE_OPTS += \
     -DFEATURE_sql_mysql=OFF \
     -DFEATURE_sql_odbc=ON \
+    -DFEATURE_opengl_dynamic=ON \
     -DFEATURE_sql_psql=ON \
     -DFEATURE_sql_sqlite=ON \
     -DFEATURE_system_sqlite=ON
@@ -98,7 +99,6 @@
         -DFEATURE_system_freetype=ON \
         -DFEATURE_glib=OFF \
         -DFEATURE_system_harfbuzz=OFF \
-        -DFEATURE_opengl_dynamic=ON \
         -DFEATURE_openssl=OFF \
         -DFEATURE_system_pcre2=ON \
         -DFEATURE_pkg_config=ON \
@@ -109,7 +109,7 @@
     'cmake' --build '$(1).build' -j '$(JOBS)'
     'cmake' --install '$(1).build'
 
-    if [ $(MXE_WINDOWS_BUILD) = yes ]; then \
+    if [ "$(MXE_WINDOWS_BUILD)" = yes ]; then \
       $(INSTALL) -d '$(HOST_BINDIR)'; \
       cp '$(HOST_PREFIX)'/qt6/bin/Qt6Concurrent.dll '$(HOST_BINDIR)'/Qt6Concurrent.dll; \
       cp '$(HOST_PREFIX)'/qt6/bin/Qt6Core.dll '$(HOST_BINDIR)'/Qt6Core.dll; \
@@ -125,9 +125,11 @@
     fi
 
     if [ "$(MXE_NATIVE_BUILD)" = "no" ]; then \
-        ln -sf '$(BUILD_TOOLS_PREFIX)/qt6/bin/qmake6' '$(BUILD_TOOLS_PREFIX)/bin/$(MXE_TOOL_PREFIX)'qmake-qt6; \
-        ln -sf '$(BUILD_TOOLS_PREFIX)/qt6/libexec/moc' '$(BUILD_TOOLS_PREFIX)/bin/$(MXE_TOOL_PREFIX)'moc; \
-        ln -sf '$(BUILD_TOOLS_PREFIX)/qt6/libexec/uic' '$(BUILD_TOOLS_PREFIX)/bin/$(MXE_TOOL_PREFIX)'uic; \
-        ln -sf '$(BUILD_TOOLS_PREFIX)/qt6/libexec/rcc' '$(BUILD_TOOLS_PREFIX)/bin/$(MXE_TOOL_PREFIX)'rcc; \
+      ln -sf '$(BUILD_TOOLS_PREFIX)/qt6/bin/qmake6' '$(BUILD_TOOLS_PREFIX)/bin/$(MXE_TOOL_PREFIX)'qmake-qt6; \
+      ln -sf '$(BUILD_TOOLS_PREFIX)/qt6/libexec/moc' '$(BUILD_TOOLS_PREFIX)/bin/$(MXE_TOOL_PREFIX)'moc; \
+      ln -sf '$(BUILD_TOOLS_PREFIX)/qt6/libexec/uic' '$(BUILD_TOOLS_PREFIX)/bin/$(MXE_TOOL_PREFIX)'uic; \
+      ln -sf '$(BUILD_TOOLS_PREFIX)/qt6/libexec/rcc' '$(BUILD_TOOLS_PREFIX)/bin/$(MXE_TOOL_PREFIX)'rcc; \
+    else \
+      ln -sf '$(BUILD_TOOLS_PREFIX)/qt6/bin/qt-cmake' '$(HOST_PREFIX)/qt6/bin/qt-cmake-private'; \
     fi
 endef
--- a/src/qt6-qttools.mk	Fri Sep 29 15:18:41 2023 -0400
+++ b/src/qt6-qttools.mk	Fri Sep 29 20:43:29 2023 +0200
@@ -16,37 +16,41 @@
 
 define $(PKG)_BUILD
     # native tools
-    mkdir '$(1).native' && cd '$(1).native' && \
-       '$(BUILD_TOOLS_PREFIX)/qt6/bin/qt-cmake' -S '$(1)' -DCMAKE_INSTALL_PREFIX='$(BUILD_TOOLS_PREFIX)/qt6' \
+    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
 
-    cmake --build $(1).native -j '$(JOBS)'
-    cmake --install '$(1).native'
+    cmake --build $(1).tools -j '$(JOBS)'
+    cmake --install '$(1).tools'
 
     if [ "$(MXE_NATIVE_BUILD)" = "no" ]; then \
-        ln -sf '$(BUILD_TOOLS_PREFIX)/qt6/bin/lconvert' '$(BUILD_TOOLS_PREFIX)/bin/$(MXE_TOOL_PREFIX)'lconvert; \
-        ln -sf '$(BUILD_TOOLS_PREFIX)/qt6/bin/lrelease' '$(BUILD_TOOLS_PREFIX)/bin/$(MXE_TOOL_PREFIX)'lrelease; \
-        echo -e "#!/bin/sh\necho $$0 $$*" > '$(BUILD_TOOLS_PREFIX)/bin/$(MXE_TOOL_PREFIX)'qhelpgenerator && chmod a+rx '$(BUILD_TOOLS_PREFIX)/bin/$(MXE_TOOL_PREFIX)'qhelpgenerator; \
-        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; \
+      ln -sf '$(BUILD_TOOLS_PREFIX)/qt6/bin/lconvert' '$(BUILD_TOOLS_PREFIX)/bin/$(MXE_TOOL_PREFIX)'lconvert; \
+      ln -sf '$(BUILD_TOOLS_PREFIX)/qt6/bin/lrelease' '$(BUILD_TOOLS_PREFIX)/bin/$(MXE_TOOL_PREFIX)'lrelease; \
+      echo -e "#!/bin/sh\necho $$0 $$*" > '$(BUILD_TOOLS_PREFIX)/bin/$(MXE_TOOL_PREFIX)'qhelpgenerator && chmod a+rx '$(BUILD_TOOLS_PREFIX)/bin/$(MXE_TOOL_PREFIX)'qhelpgenerator; \
+      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' -S '$(1)' \
+        -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
-    touch '$(1).build/bin/qhelpgenerator.exe'
+    if [ "$(MXE_WINDOWS_BUILD)" = yes ]; then \
+      touch '$(1).build/bin/qhelpgenerator.exe'; \
+    fi
 
     cmake --build $(1).build -j '$(JOBS)'
     cmake --install '$(1).build'
 
-    if [ $(MXE_WINDOWS_BUILD) = yes ]; then \
+    if [ "$(MXE_WINDOWS_BUILD)" = yes ]; then \
       $(INSTALL) -d '$(HOST_BINDIR)'; \
       cp '$(HOST_PREFIX)'/qt6/bin/Qt6UiTools.dll '$(HOST_BINDIR)'/Qt6UiTools.dll; \
       cp '$(HOST_PREFIX)'/qt6/bin/Qt6Help.dll '$(HOST_BINDIR)'/Qt6Help.dll; \