Building QT6.4 for MacOS with Ninja generator

In the same SSH session where I built QT6.4 for MacOS with Unix Makefiles generator I installed ninja:

brew upgrade
Running `brew update --preinstall`...
==> Downloading https://ghcr.io/v2/homebrew/portable-ruby/portable-ruby/blobs/sha256:1f50bf80583bd436c9542d4fa5ad47df0ef0f0bea22ae710c4f04c42d7560bca
######################################################################################################################################################################## 100.0%
==> Pouring portable-ruby-2.6.8_1.el_capitan.bottle.tar.gz
==> Auto-updated Homebrew!
Updated 1 tap (homebrew/core).
==> New Formulae
...
brew install ninja
==> Downloading https://ghcr.io/v2/homebrew/core/ninja/manifests/1.11.1
######################################################################## 100.0%
==> Downloading https://ghcr.io/v2/homebrew/core/ninja/blobs/sha256:2ebce34e727724d140fb8c22ae3ac845c1c9e61339dc0f5a5ee13d7a04780a5e
==> Downloading from https://pkg-containers.githubusercontent.com/ghcr1/blobs/sha256:2ebce34e727724d140fb8c22ae3ac845c1c9e61339dc0f5a5ee13d7a04780a5e?se=2022-10-07T14%3A55%3A0
######################################################################## 100.0%
==> Pouring ninja--1.11.1.big_sur.bottle.tar.gz
==> Caveats
zsh completions have been installed to:
  /usr/local/share/zsh/site-functions

Emacs Lisp files have been installed to:
  /usr/local/share/emacs/site-lisp/ninja
==> Summary
?  /usr/local/Cellar/ninja/1.11.1: 10 files, 453.2KB
==> Running `brew cleanup ninja`...
Disable this behaviour by setting HOMEBREW_NO_INSTALL_CLEANUP.
Hide these hints with HOMEBREW_NO_ENV_HINTS (see `man brew`).

and did the same configuration as before, but changed the installation directory:

scp /mnt/d/dev.distrib/qt-everywhere-src-6.4.0.tar.xz admin@192.168.0.112:/Users/admin/repos
tar xf qt-everywhere-src-6.4.0.tar.xz
cd ~/build/qt
export MY_QT_SRC_DIR=~/repos/qt-everywhere-src-6.4.0
export MY_INSTALL_PATH=~/libs/QT6.4/MacOs
${MY_QT_SRC_DIR}/configure -prefix $MY_INSTALL_PATH -c++std c++20 -opensource -confirm-license \
  -no-openssl -securetransport -DQT_NO_EXCEPTIONS=1 \
  -skip qt3d -skip qt5compat -skip qtactiveqt -skip qtcharts -skip qtcoap -skip qtconnectivity \
  -skip qtdatavis3d -skip qtdoc -skip qtlottie -skip qtmqtt -skip qtnetworkauth -skip qtopcua \
  -skip qtserialport -skip qtpositioning -skip qtquicktimeline -skip qtquick3d -skip qtremoteobjects \
  -skip qtscxml -skip qtsensors -skip qtserialbus -skip qtvirtualkeyboard -skip qtwayland \
  -skip qtwebchannel -skip qtwebengine -skip qtwebview -skip qtquick3dphysics -skip qtspeech -skip qtlocation \
  -skip qthttpserver \
  -- -DCMAKE_OSX_ARCHITECTURES="x86_64;arm64"

Now there was no warning about the generator:

+ mkdir -p qtbase
+ cd qtbase
+ exec /Users/admin/repos/qt-everywhere-src-6.4.0/qtbase/configure -top-level -prefix /Users/admin/libs/QT6.4/MacOs -c++std c++20 -opensource -confirm-license -no-openssl -securetransport -DQT_NO_EXCEPTIONS=1 -skip qt3d -skip qt5compat -skip qtactiveqt -skip qtcharts -skip qtcoap -skip qtconnectivity -skip qtdatavis3d -skip qtdoc -skip qtlottie -skip qtmqtt -skip qtnetworkauth -skip qtopcua -skip qtserialport -skip qtpositioning -skip qtquicktimeline -skip qtquick3d -skip qtremoteobjects -skip qtscxml -skip qtsensors -skip qtserialbus -skip qtvirtualkeyboard -skip qtwayland -skip qtwebchannel -skip qtwebengine -skip qtwebview -skip qtquick3dphysics -skip qtspeech -skip qtlocation -skip qthttpserver -- '-DCMAKE_OSX_ARCHITECTURES=x86_64;arm64'
'/usr/local/Cellar/cmake/3.24.2/bin/cmake' '-DBUILD_qt3d=OFF' '-DBUILD_qt5compat=OFF' '-DBUILD_qtactiveqt=OFF' '-DBUILD_qtcharts=OFF' '-DBUILD_qtcoap=OFF' '-DBUILD_qtconnectivity=OFF' '-DBUILD_qtdatavis3d=OFF' '-DBUILD_qtdoc=OFF' '-DBUILD_qtlottie=OFF' '-DBUILD_qtmqtt=OFF' '-DBUILD_qtnetworkauth=OFF' '-DBUILD_qtopcua=OFF' '-DBUILD_qtserialport=OFF' '-DBUILD_qtpositioning=OFF' '-DBUILD_qtquicktimeline=OFF' '-DBUILD_qtquick3d=OFF' '-DBUILD_qtremoteobjects=OFF' '-DBUILD_qtscxml=OFF' '-DBUILD_qtsensors=OFF' '-DBUILD_qtserialbus=OFF' '-DBUILD_qtvirtualkeyboard=OFF' '-DBUILD_qtwayland=OFF' '-DBUILD_qtwebchannel=OFF' '-DBUILD_qtwebengine=OFF' '-DBUILD_qtwebview=OFF' '-DBUILD_qtquick3dphysics=OFF' '-DBUILD_qtspeech=OFF' '-DBUILD_qtlocation=OFF' '-DBUILD_qthttpserver=OFF' '-DCMAKE_OSX_ARCHITECTURES=x86_64;arm64' '-DCMAKE_INSTALL_PREFIX=/Users/admin/libs/QT6.4/MacOs' '-DQT_EXTRA_DEFINES=QT_NO_EXCEPTIONS=1' '-DINPUT_cxx14=yes' '-DINPUT_cxx17=yes' '-DINPUT_cxx20=yes' '-DINPUT_openssl=no' '-DINPUT_securetransport=yes' '-G' 'Ninja' '/Users/admin/repos/qt-everywhere-src-6.4.0'
-- The CXX compiler identification is AppleClang 13.0.0.13000029
-- The C compiler identification is AppleClang 13.0.0.13000029
-- The ASM compiler identification is Clang with GNU-like command-line
-- Found assembler: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/cc
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
Checking dependencies of submodule 'qtbase'
Checking dependencies of submodule 'qtimageformats'
Checking dependencies of submodule 'qtlanguageserver'
Checking dependencies of submodule 'qtshadertools'
Checking dependencies of submodule 'qtsvg'
Checking dependencies of submodule 'qtdeclarative'
Checking dependencies of submodule 'qtmultimedia'
Checking dependencies of submodule 'qttools'
Skipping optional dependency 'qtactiveqt' of 'qttools', because building 'qtactiveqt' was explicitly disabled.
Checking dependencies of submodule 'qtwebsockets'
Checking dependencies of submodule 'qttranslations'
Configuring submodule 'qtbase'
-- Could NOT find md4c (missing: md4c_DIR)
QtCore: WARNING: /Users/admin/repos/qt-everywhere-src-6.4.0/qtbase/src/corelib/tools/qatomicscopedvaluerollback_p.h does not have the "We mean it." warning
-- Could NOT find md4c (missing: md4c_DIR)
Configuring submodule 'qtimageformats'
Configuring submodule 'qtlanguageserver'
Configuring submodule 'qtshadertools'
Configuring submodule 'qtsvg'
Configuring submodule 'qtdeclarative'
QtQuickDialogs2QuickImpl: WARNING: /Users/admin/repos/qt-everywhere-src-6.4.0/qtdeclarative/src/quickdialogs2/quickdialogs2quickimpl/qquickcolordialogutils_p.h does not have the "We mean it." warning
shaders/SaturationLightness.frag -> shaders/SaturationLightness.frag.qsb exposed as :/qt-project.org/imports/QtQuick/Dialogs/quickimpl/shaders/SaturationLightness.frag.qsb
QtQmlDom: WARNING: /Users/admin/repos/qt-everywhere-src-6.4.0/qtdeclarative/src/qmldom/standalone/private/qtqmlcompilerexports_p.h does not have the "We mean it." warning
Configuring submodule 'qtmultimedia'
Configuring submodule 'qt3d'
Configuring submodule 'qt5compat'
Configuring submodule 'qtactiveqt'
Configuring submodule 'qtcharts'
Configuring submodule 'qtcoap'
Configuring submodule 'qtconnectivity'
Configuring submodule 'qtdatavis3d'
Configuring submodule 'qttools'
-- Could NOT find Clang (missing: Clang_DIR)
-- Could NOT find Clang (missing: Clang_DIR)
QtDesigner: WARNING: /Users/admin/repos/qt-everywhere-src-6.4.0/qttools/src/designer/src/lib/uilib/formbuilder.h includes abstractformbuilder.h when it should include QtDesigner/abstractformbuilder.h
Configuring submodule 'qtdoc'
Configuring submodule 'qtwebsockets'
CMake Warning (dev) at /Users/admin/build/qt/qtbase/lib/cmake/Qt6Qml/Qt6QmlBuildInternals.cmake:410 (message):
  INSTALL_SOURCE_QMLTYPES option is deprecated and should not be used.
  Please port your module to use declarative type registration.
Call Stack (most recent call first):
  qtwebsockets/src/imports/qmlwebsockets/CMakeLists.txt:1 (qt_internal_add_qml_module)
This warning is for project developers.  Use -Wno-dev to suppress it.

Configuring submodule 'qthttpserver'
Configuring submodule 'qtlottie'
Configuring submodule 'qtmqtt'
Configuring submodule 'qtnetworkauth'
Configuring submodule 'qtopcua'
Configuring submodule 'qtserialport'
Configuring submodule 'qtpositioning'
Configuring submodule 'qtquicktimeline'
Configuring submodule 'qtquick3d'
Configuring submodule 'qtquick3dphysics'
Configuring submodule 'qtremoteobjects'
Configuring submodule 'qtscxml'
Configuring submodule 'qtsensors'
Configuring submodule 'qtserialbus'
Configuring submodule 'qtspeech'
Configuring submodule 'qttranslations'
CMake Warning at qttranslations/translations/CMakeLists.txt:37 (message):
  Directory
  '/Users/admin/repos/qt-everywhere-src-6.4.0/qttranslations/translations/../../qtlocation/src'
  for qtlocation does not exist.  Skipping...
Call Stack (most recent call first):
  qttranslations/translations/CMakeLists.txt:105 (add_ts_targets)


CMake Warning at qttranslations/translations/CMakeLists.txt:44 (message):
  No source files located for qtlocation, skipping target creation
Call Stack (most recent call first):
  qttranslations/translations/CMakeLists.txt:105 (add_ts_targets)


Configuring submodule 'qtvirtualkeyboard'
Configuring submodule 'qtwayland'
Configuring submodule 'qtwebchannel'
Configuring submodule 'qtwebengine'
Configuring submodule 'qtwebview'

-- Configuration summary shown below. It has also been written to /Users/admin/build/qt/config.summary
-- Configure with --log-level=STATUS or higher to increase CMake's message verbosity. The log level does not persist across reconfigurations.

-- Configure summary:

Building for: macx-clang (x86_64;arm64), x86_64 features: cx16 mmx sse sse2 sse3 ssse3 sse4.1)
Compiler: clang (Apple) 13.0.0.13000029
Build options:
  Mode ................................... release
  Optimize release build for size ........ no
  Fully optimize release builds (-O3) .... no
  Building shared libraries .............. yes
  Using C standard ....................... C11
  Using C++ standard ..................... C++20
  Using ccache ........................... no
  Relocatable ............................ yes
  Using precompiled headers .............. yes
  Using LTCG ............................. no
  Using Intel CET ........................ no
  Target compiler supports:
    SSE .................................. SSE2 SSE3 SSSE3 SSE4.1 SSE4.2
    AVX .................................. AVX AVX2 VAES
    AVX512 ............................... F ER CD PF DQ BW VL IFMA VBMI AVX512VBMI2
    Other x86 ............................ AES F16C RDRAND SHA
  Sanitizers:
    Addresses ............................ no
    Threads .............................. no
    Memory ............................... no
    Fuzzer (instrumentation only) ........ no
    Undefined ............................ no
  Build parts ............................ libs tools
  App store compliance ................... no
Qt modules and options:
  Qt Concurrent .......................... yes
  Qt D-Bus ............................... yes
  Qt D-Bus directly linked to libdbus .... no
  Qt Gui ................................. yes
  Qt Network ............................. yes
  Qt PrintSupport ........................ yes
  Qt Sql ................................. yes
  Qt Testlib ............................. yes
  Qt Widgets ............................. yes
  Qt Xml ................................. yes
Support enabled for:
  Using pkg-config ....................... no
  udev ................................... no
  Using system zlib ...................... yes
  Zstandard support ...................... no
  Thread support ......................... yes
Common build options:
  Linker can resolve circular dependencies  yes
Qt Core:
  backtrace .............................. yes
  DoubleConversion ....................... yes
    Using system DoubleConversion ........ no
  GLib ................................... no
  ICU .................................... no
  Using system libb2 ..................... no
  Built-in copy of the MIME database ..... yes
  cpp/winrt base ......................... no
  Tracing backend ........................ <none>
  Logging backends:
    journald ............................. no
    syslog ............................... no
    slog2 ................................ no
  PCRE2 .................................. yes
    Using system PCRE2 ................... no
Qt Sql:
  SQL item models ........................ yes
Qt Network:
  getifaddrs() ........................... yes
  IPv6 ifname ............................ yes
  libproxy ............................... no
  SecureTransport ........................ yes
  OpenSSL ................................ no
    Qt directly linked to OpenSSL ........ no
  OpenSSL 1.1 ............................ no
  DTLS ................................... no
  OCSP-stapling .......................... no
  SCTP ................................... no
  Use system proxies ..................... yes
  GSSAPI ................................. yes
  Brotli Decompression Support ........... no
  qTopLevelDomain() ...................... yes
    Built-in publicsuffix database ....... yes
    System publicsuffix database ......... no
Core tools:
  Android deployment tool ................ yes
  macOS deployment tool .................. yes
  Windows deployment tool ................ no
  qmake .................................. yes
Qt Gui:
  Accessibility .......................... yes
  FreeType ............................... yes
    Using system FreeType ................ no
  HarfBuzz ............................... yes
    Using system HarfBuzz ................ no
  Fontconfig ............................. no
  Image formats:
    GIF .................................. yes
    ICO .................................. yes
    JPEG ................................. yes
      Using system libjpeg ............... no
    PNG .................................. yes
      Using system libpng ................ no
  Text formats:
    HtmlParser ........................... yes
    CssParser ............................ yes
    OdfWriter ............................ yes
    MarkdownReader ....................... yes
      Using system libmd4c ............... no
    MarkdownWriter ....................... yes
  EGL .................................... no
  OpenVG ................................. no
  OpenGL:
    Desktop OpenGL ....................... yes
    OpenGL ES 2.0 ........................ no
    OpenGL ES 3.0 ........................ no
    OpenGL ES 3.1 ........................ no
    OpenGL ES 3.2 ........................ no
  Vulkan ................................. no
  Session Management ..................... yes
Features used by QPA backends:
  evdev .................................. no
  libinput ............................... no
  HiRes wheel support in libinput ........ no
  INTEGRITY HID .......................... no
  mtdev .................................. no
  tslib .................................. no
  xkbcommon .............................. no
  X11 specific:
    XLib ................................. no
    XCB Xlib ............................. no
    EGL on X11 ........................... no
    xkbcommon-x11 ........................ no
    xcb-sm ............................... no
QPA backends:
  DirectFB ............................... no
  EGLFS .................................. no
  EGLFS details:
    EGLFS OpenWFD ........................ no
    EGLFS i.Mx6 .......................... no
    EGLFS i.Mx6 Wayland .................. no
    EGLFS RCAR ........................... no
    EGLFS EGLDevice ...................... no
    EGLFS GBM ............................ no
    EGLFS VSP2 ........................... no
    EGLFS Mali ........................... no
    EGLFS Raspberry Pi ................... no
    EGLFS X11 ............................ no
  LinuxFB ................................ no
  VNC .................................... no
  VK_KHR_display ......................... no
  QNX:
    lgmon ................................ no
    IMF .................................. no
  XCB:
    Using system-provided xcb-xinput ..... no
    GL integrations:
      GLX Plugin ......................... no
        XCB GLX .......................... no
      EGL-X11 Plugin ..................... no
  Windows:
    Direct 2D ............................ no
    Direct 2D 1.1 ........................ no
    DirectWrite .......................... no
    DirectWrite 3 ........................ no
Qt Widgets:
  GTK+ ................................... no
  Styles ................................. Fusion macOS Windows
Qt Testlib:
  Tester for item models ................. yes
Qt PrintSupport:
  CUPS ................................... yes
Qt Sql Drivers:
  DB2 (IBM) .............................. no
  InterBase .............................. no
  MySql .................................. no
  OCI (Oracle) ........................... no
  ODBC ................................... no
  PostgreSQL ............................. no
  SQLite ................................. yes
    Using system provided SQLite ......... no
Further Image Formats:
  JasPer ................................. no
  MNG .................................... no
  TIFF ................................... yes
    Using system libtiff ................. no
  WEBP ................................... yes
    Using system libwebp ................. no
Qt QML:
  QML network support .................... yes
  QML debugging and profiling support .... yes
  QML just-in-time compiler .............. yes
  QML XML http request ................... yes
  QML Locale ............................. yes
Qt QML Models:
  QML list model ......................... yes
  QML delegate model ..................... yes
Qt Quick:
  AnimatedImage item ..................... yes
  Canvas item ............................ yes
  Support for Qt Quick Designer .......... yes
  Flipable item .......................... yes
  GridView item .......................... yes
  ListView item .......................... yes
  TableView item ......................... yes
  TreeView item .......................... yes
  Path support ........................... yes
  PathView item .......................... yes
  Positioner items ....................... yes
  Repeater item .......................... yes
  ShaderEffect item ...................... yes
  Sprite item ............................ yes
Qt Quick Templates 2:
  Hover support .......................... yes
  Multi-touch support .................... yes
  Calendar support ....................... yes
Qt Quick Controls 2:
  Styles ................................. Basic Fusion Imagine iOS Material Universal macOS Windows
Qt Multimedia:
  Spatial Audio .......................... yes
  Spatial Audio (Quick3D) ................ no
  Low level Audio Backend:
    ALSA (experimental) .................. no
    PulseAudio ........................... no
    MMRenderer ........................... no
    CoreAudio ............................ yes
    Windows Media SDK .................... no
    Open SLES (Android) .................. no
    Web Assembly ......................... no
  Plugin:
    GStreamer 1.0 ........................ no
    FFmpeg ............................... no
    MMRenderer ........................... no
    AVFoundation ......................... yes
    Windows Media Foundation ............. no
  Hardware acceleration and features:
    Video for Linux ...................... no
    VAAPI support ........................ no
    Linux DMA buffer support ............. no
    VideoToolbox ......................... yes
Qt Tools:
  Qt Assistant ........................... yes
  QDoc ................................... no
  Clang-based lupdate parser ............. no
  Qt Designer ............................ yes
  Qt Distance Field Generator ............ yes
  Qt Linguist ............................ yes
  pixeltool .............................. yes
  qdbus .................................. yes
  Qt Attributions Scanner ................ yes
  qtdiag ................................. yes
  qtplugininfo ........................... yes


WARNING: QDoc will not be compiled, probably because libclang could not be located. This means that you cannot build the Qt documentation.
Either set CMAKE_PREFIX_PATH or LLVM_INSTALL_DIR to the location of your llvm installation.
On Linux systems, you may be able to install libclang by installing the libclang-dev or libclang-devel package, depending on your distribution.
On macOS, you can use Homebrew's llvm package.
You will also need to set the FEATURE_clang CMake variable to ON to re-evaluate this check.
WARNING: Clang-based lupdate parser will not be available. LLVM and Clang C++ libraries have not been found.
You will need to set the FEATURE_clangcpp CMake variable to ON to re-evaluate this check.

--

Qt is now configured for building. Just run 'cmake --build . --parallel'

Once everything is built, you must run 'cmake --install .'
Qt will be installed into '/Users/admin/libs/QT6.4/MacOs'

To configure and build other Qt modules, you can use the following convenience script:
        /Users/admin/libs/QT6.4/MacOs/bin/qt-configure-module

If reconfiguration fails for some reason, try removing 'CMakeCache.txt' from the build directory

-- Configuring done
-- Generating done
CMake Warning:
  Manually-specified variables were not used by the project:

    BUILD_qtlocation


-- Build files have been written to: /Users/admin/build/qt

and I tried parallel build:

cmake --build . --parallel
cmake --install .

and surprisingly it built and installed successfully.

The following files appeared in lib directory:

QtConcurrent.framework                  QtNetwork.framework                     QtQuickParticles.framework             libQt6BundledLibpng.a
QtCore.framework                        QtOpenGL.framework                      QtQuickShapes.framework                libQt6BundledResonanceAudio.a
QtDBus.framework                        QtOpenGLWidgets.framework               QtQuickTemplates2.framework            libQt6DeviceDiscoverySupport.a
QtDesigner.framework                    QtPrintSupport.framework                QtQuickTest.framework                  libQt6DeviceDiscoverySupport.prl
QtDesignerComponents.framework          QtQml.framework                         QtQuickWidgets.framework               libQt6FbSupport.a
QtGui.framework                         QtQmlCompiler.framework                 QtShaderTools.framework                libQt6FbSupport.prl
QtHelp.framework                        QtQmlCore.framework                     QtSpatialAudio.framework               libQt6PacketProtocol.a
QtJsonRpc.framework                     QtQmlLocalStorage.framework             QtSql.framework                        libQt6PacketProtocol.prl
QtLabsAnimation.framework               QtQmlModels.framework                   QtSvg.framework                        libQt6QmlDebug.a
QtLabsFolderListModel.framework         QtQmlWorkerScript.framework             QtSvgWidgets.framework                 libQt6QmlDebug.prl
QtLabsQmlModels.framework               QtQmlXmlListModel.framework             QtTest.framework                       libQt6QmlDom.a
QtLabsSettings.framework                QtQuick.framework                       QtUiTools.framework                    libQt6QmlDom.prl
QtLabsSharedImage.framework             QtQuickControls2.framework              QtWebSockets.framework                 libQt6QuickControlsTestUtils.a
QtLabsWavefrontMesh.framework           QtQuickControls2Impl.framework          QtWidgets.framework                    libQt6QuickControlsTestUtils.prl
QtLanguageServer.framework              QtQuickDialogs2.framework               QtXml.framework                        libQt6QuickTestUtils.a
QtMultimedia.framework                  QtQuickDialogs2QuickImpl.framework      cmake                                  libQt6QuickTestUtils.prl
QtMultimediaQuick.framework             QtQuickDialogs2Utils.framework          libQt6BundledFreetype.a                metatypes
QtMultimediaWidgets.framework           QtQuickLayouts.framework                libQt6BundledLibjpeg.a

Leave a Reply

Your email address will not be published. Required fields are marked *