-
Bug
-
Resolution: Fixed
-
P3: Somewhat important
-
6.5.3, 6.6.0
-
None
-
-
885d87488 (dev)
qtbase fails to build with -DFEATURE_system_harfbuzz=ON when harfbuzz.pc exists (as installed by harfbuzz 8.2.1). Deleting harfbuzz.pc and everything works. Although I see nothing wrong with the pc file.
I also build Qt for mac including all libraries, and I ran into the same issue there, so I don't think it's specific to OS. I use pkgconf (http://pkgconf.org/) on both Windows and mac.
harfbuzz.pc for Windows looks like this:
prefix=c:/strawberry_msvc_x86_64_debug
includedir=${prefix}/include
libdir=${prefix}/lib
Name: harfbuzz
Description: HarfBuzz text shaping library
Version: 8.2.1
Requires.private: freetype2, glib-2.0
Libs: -L${libdir} -lharfbuzz
Cflags: -I${includedir}/harfbuzz
Full verbose cmake log:
c:\Data\Projects\strawberry\msvc_\build_debug\qtbase-everywhere-src-6.5.3>cmake -S . -B build -G Ninja -DCMAKE_BUILD_TYPE="Debug" -DCMAKE_INSTALL_PREFIX="c:/strawberry_msvc_x86_64_debug" -DBUILD_SHARED_LIBS=ON -DPKG_CONFIG_EXECUTABLE="c:/strawberry_msvc_x86_64_debug/bin/pkgconf.exe" -DQT_BUILD_EXAMPLES=OFF -DQT_BUILD_BENCHMARKS=OFF -DQT_BUILD_TESTS=OFF -DQT_BUILD_EXAMPLES_BY_DEFAULT=OFF -DQT_BUILD_TOOLS_BY_DEFAULT=ON -DQT_WILL_BUILD_TOOLS=ON -DBUILD_WITH_PCH=OFF -DFEATURE_rpath=OFF -DFEATURE_pkg_config=ON -DFEATURE_accessibility=ON -DFEATURE_brotli=ON -DFEATURE_fontconfig=OFF -DFEATURE_freetype=ON -DFEATURE_harfbuzz=ON -DFEATURE_pcre2=ON -DFEATURE_schannel=ON -DFEATURE_openssl=ON -DFEATURE_openssl_linked=ON -DFEATURE_opengl=ON -DFEATURE_opengl_dynamic=ON -DFEATURE_use_gold_linker_alias=OFF -DFEATURE_glib=ON -DFEATURE_icu=ON -DFEATURE_directfb=OFF -DFEATURE_dbus=OFF -DFEATURE_sql=ON -DFEATURE_sql_sqlite=ON -DFEATURE_sql_odbc=OFF -DFEATURE_jpeg=ON -DFEATURE_png=ON -DFEATURE_gif=ON -DFEATURE_style_windows=ON -DFEATURE_style_windowsvista=ON -DFEATURE_system_zlib=ON -DFEATURE_system_png=ON -DFEATURE_system_jpeg=ON -DFEATURE_system_pcre2=ON -DFEATURE_system_freetype=ON -DFEATURE_system_harfbuzz=ON -DFEATURE_system_sqlite=ON -DICU_ROOT="c:/strawberry_msvc_x86_64_debug" || goto end -- The CXX compiler identification is MSVC 19.36.32537.0 -- The C compiler identification is MSVC 19.36.32537.0 -- The ASM compiler identification is MSVC -- Found assembler: C:/Program Files/Microsoft Visual Studio/2022/Community/VC/Tools/MSVC/14.36.32532/bin/Hostx64/x64/cl.exe -- Detecting CXX compiler ABI info -- Detecting CXX compiler ABI info - done -- Check for working CXX compiler: C:/Program Files/Microsoft Visual Studio/2022/Community/VC/Tools/MSVC/14.36.32532/bin/Hostx64/x64/cl.exe - 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: C:/Program Files/Microsoft Visual Studio/2022/Community/VC/Tools/MSVC/14.36.32532/bin/Hostx64/x64/cl.exe - skipped -- Detecting C compile features -- Detecting C compile features - done -DCMAKE_C_FLAGS=/DWIN32 /D_WINDOWS -DCMAKE_C_FLAGS_DEBUG=/Zi /Ob0 /Od /RTC1 -DCMAKE_C_FLAGS_RELEASE=/O2 /Ob2 /DNDEBUG -DCMAKE_C_FLAGS_RELWITHDEBINFO=/Zi /O2 /Ob1 /DNDEBUG -DCMAKE_CXX_FLAGS=/DWIN32 /D_WINDOWS /GR /EHsc -DCMAKE_CXX_FLAGS_DEBUG=/Zi /Ob0 /Od /RTC1 -DCMAKE_CXX_FLAGS_RELEASE=/O2 /Ob2 /DNDEBUG -DCMAKE_CXX_FLAGS_RELWITHDEBINFO=/Zi /O2 /Ob1 /DNDEBUG -DCMAKE_EXE_LINKER_FLAGS=/machine:x64 -DCMAKE_C_STANDARD=11 -DCMAKE_C_STANDARD_REQUIRED=ON -DCMAKE_CXX_STANDARD=17 -DCMAKE_CXX_STANDARD_REQUIRED=ON -DCMAKE_MODULE_PATH:STRING=C:/Data/Projects/strawberry/msvc_/build_debug/qtbase-everywhere-src-6.5.3/cmake/platforms -- Configuration summary shown below. It has also been written to C:/Data/Projects/strawberry/msvc_/build_debug/qtbase-everywhere-src-6.5.3/build/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: win32-msvc (x86_64, CPU features: sse sse2) Compiler: msvc 19.36.32537.0 Build options: Mode ................................... debug Fully optimize release builds (-O3) .... no Building shared libraries .............. yes Using C standard ....................... C11 Using C++ standard ..................... C++17 Unity Build ............................ no Relocatable ............................ yes Using precompiled headers .............. no Using Link Time Optimization (LTCG) .... no Using Intel CET ........................ no Target compiler supports: x86 Intrinsics ....................... Basic VAES AVX512VBMI2 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 ............................... no 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 ....................... yes udev ................................... no OpenSSL ................................ yes Qt directly linked to OpenSSL ........ yes OpenSSL 1.1 ............................ no OpenSSL 3.0 ............................ yes Using system zlib ...................... yes Zstandard support ...................... no Thread support ......................... yes Common build options: Linker can resolve circular dependencies yes Qt Core: backtrace .............................. no DoubleConversion ....................... yes Using system DoubleConversion ........ no GLib ................................... yes ICU .................................... yes Using system libb2 ..................... no Built-in copy of the MIME database ..... yes cpp/winrt base ......................... yes Tracing backend ........................ <none> Logging backends: journald ............................. no syslog ............................... no slog2 ................................ no PCRE2 .................................. yes Using system PCRE2 ................... yes Application permissions ................ no Qt Sql: SQL item models ........................ yes Qt Network: getifaddrs() ........................... no IPv6 ifname ............................ no libproxy ............................... no Schannel ............................... yes DTLS ................................... yes OCSP-stapling .......................... yes SCTP ................................... no Use system proxies ..................... yes GSSAPI ................................. no Brotli Decompression Support ........... yes qIsEffectiveTLD() ...................... yes Built-in publicsuffix database ....... yes System publicsuffix database ......... no Core tools: Android deployment tool ................ yes macOS deployment tool .................. no Windows deployment tool ................ yes qmake .................................. yes Qt Gui: Accessibility .......................... yes FreeType ............................... yes Using system FreeType ................ yes HarfBuzz ............................... yes Using system HarfBuzz ................ yes Fontconfig ............................. no Image formats: GIF .................................. yes ICO .................................. yes JPEG ................................. yes Using system libjpeg ............... yes PNG .................................. yes Using system libpng ................ yes Text formats: HtmlParser ........................... yes CssParser ............................ yes OdfWriter ............................ yes MarkdownReader ....................... yes Using system libmd4c ............... no MarkdownWriter ....................... yes EGL .................................... no OpenVG ................................. no OpenGL: Desktop OpenGL ....................... no Dynamic 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 ............................ yes Direct 2D 1.1 ........................ yes DirectWrite .......................... yes DirectWrite 3 ........................ yes Qt Widgets: GTK+ ................................... no Styles ................................. Fusion Windows WindowsVista Qt Testlib: Tester for item models ................. yes Batch tests ............................ no Qt PrintSupport: CUPS ................................... no Qt Sql Drivers: DB2 (IBM) .............................. no InterBase .............................. no MySql .................................. no OCI (Oracle) ........................... no ODBC ................................... no PostgreSQL ............................. no SQLite ................................. yes Using system provided SQLite ......... yes -- 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 'C:/strawberry_msvc_x86_64_debug' To configure and build other Qt modules, you can use the following convenience script: C:/strawberry_msvc_x86_64_debug/bin/qt-configure-module.bat If reconfiguration fails for some reason, try removing 'CMakeCache.txt' from the build directory Alternatively, you can add the --fresh flag to your CMake flags. -- Configuring done (50.4s) CMake Error in src/gui/CMakeLists.txt: Imported target "WrapHarfbuzz::WrapHarfbuzz" includes non-existent path "c:/strawberry_msvc_x86_64_debugc:/strawberry_msvc_x86_64_debug/include" in its INTERFACE_INCLUDE_DIRECTORIES. Possible reasons include: * The path was deleted, renamed, or moved to another location. * An install or uninstall procedure did not complete successfully. * The installation package was faulty and references files it does not provide. CMake Error in src/gui/CMakeLists.txt: Imported target "WrapHarfbuzz::WrapHarfbuzz" includes non-existent path "c:/strawberry_msvc_x86_64_debugc:/strawberry_msvc_x86_64_debug/include" in its INTERFACE_INCLUDE_DIRECTORIES. Possible reasons include: * The path was deleted, renamed, or moved to another location. * An install or uninstall procedure did not complete successfully. * The installation package was faulty and references files it does not provide. CMake Error in src/gui/CMakeLists.txt: Imported target "WrapHarfbuzz::WrapHarfbuzz" includes non-existent path "c:/strawberry_msvc_x86_64_debugc:/strawberry_msvc_x86_64_debug/include" in its INTERFACE_INCLUDE_DIRECTORIES. Possible reasons include: * The path was deleted, renamed, or moved to another location. * An install or uninstall procedure did not complete successfully. * The installation package was faulty and references files it does not provide. CMake Error in src/gui/CMakeLists.txt: Imported target "WrapHarfbuzz::WrapHarfbuzz" includes non-existent path "c:/strawberry_msvc_x86_64_debugc:/strawberry_msvc_x86_64_debug/include" in its INTERFACE_INCLUDE_DIRECTORIES. Possible reasons include: * The path was deleted, renamed, or moved to another location. * An install or uninstall procedure did not complete successfully. * The installation package was faulty and references files it does not provide. -- Generating done (1.1s) CMake Generate step failed. Build files cannot be regenerated correctly.
For Windows the issue occurs both on a Windows 10 PC and in GitHub Actions.
Here is how I build Qt:
Windows GitHub actions:
https://github.com/strawberrymusicplayer/strawberry-msvc-dependencies/blob/master/.github/workflows/build.yml#L2406
Windows batch file:
https://github.com/strawberrymusicplayer/strawberry-msvc/blob/cbd01e84574e8025f6e51803e99574dc7a710f41/build.bat#L1453