Skip to content

FTBFS: contrib: harfbuzz not finding unicode/uscript.h with xcode-cross

In xcode-cross, compiled with ../extras/package/apple/build.sh --arch=arm64 --sdk=iphoneos --verbose -j1 --enable-shared, results in:

(cd harfbuzz-3.2.0 && patch -fp1) < ../src/harfbuzz/0001-meson-Enable-big-objects-support-when-building-for-w.patch
patching file meson.build
mv harfbuzz-3.2.0 harfbuzz && touch harfbuzz
cd harfbuzz && rm -rf ./build
cd harfbuzz && CC="/opt/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang" CXX="/opt/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++" LD="/opt/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ld" AR="/opt/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ar" CCAS="/opt/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -c" RANLIB="/opt/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ranlib" STRIP="/opt/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/strip" PATH="/home/alexandre/workspace/videolabs/vlc/build-iphoneos-arm64/contrib/arm64-iphoneos/bin:/home/alexandre/workspace/videolabs/vlc/extras/tools/build/bin:/home/alexandre/workspace/videolabs/vlc/extras/tools/build/bin:/opt/xcode-cross/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/opt/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin:/opt/xcbuild/usr/bin:/opt/cctools/bin" PKG_CONFIG="pkg-config" CPPFLAGS="-arch arm64 -isysroot /opt/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk -fno-stack-check -I/home/alexandre/workspace/videolabs/vlc/build-iphoneos-arm64/contrib/arm64-iphoneos/include" CFLAGS="-mios-version-min=9.0 -arch arm64 -isysroot /opt/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk -Werror=partial-availability -fno-stack-check -I/home/alexandre/workspace/videolabs/vlc/build-iphoneos-arm64/contrib/arm64-iphoneos/include" CXXFLAGS="-mios-version-min=9.0 -arch arm64 -isysroot /opt/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk -Werror=partial-availability -fno-stack-check -I/home/alexandre/workspace/videolabs/vlc/build-iphoneos-arm64/contrib/arm64-iphoneos/include " LDFLAGS="-Wl,-ios_version_min,9.0 -mios-version-min=9.0  -arch arm64 -L/home/alexandre/workspace/videolabs/vlc/build-iphoneos-arm64/contrib/arm64-iphoneos/lib " env -i PATH="/home/alexandre/workspace/videolabs/vlc/build-iphoneos-arm64/contrib/arm64-iphoneos/bin:/home/alexandre/workspace/videolabs/vlc/extras/tools/build/bin:/home/alexandre/workspace/videolabs/vlc/extras/tools/build/bin:/opt/xcode-cross/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/opt/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin:/opt/xcbuild/usr/bin:/opt/cctools/bin" PKG_CONFIG_PATH="/home/alexandre/workspace/videolabs/vlc/build-iphoneos-arm64/contrib/arm64-iphoneos/lib/pkgconfig:/usr/share/pkgconfig" meson -Dpkg_config_path="/home/alexandre/workspace/videolabs/vlc/build-iphoneos-arm64/contrib/arm64-iphoneos/lib/pkgconfig:/usr/share/pkgconfig" --default-library static --prefix "/home/alexandre/workspace/videolabs/vlc/build-iphoneos-arm64/contrib/arm64-iphoneos" --backend ninja -Dlibdir=lib --buildtype debugoptimized --cross-file /home/alexandre/workspace/videolabs/vlc/contrib/contrib-arm64-apple-iOS_9.0/crossfile.meson -Dfreetype=enabled -Dglib=disabled -Dgobject=disabled -Ddocs=disabled -Dtests=disabled -Dcoretext=enabled build
The Meson build system
Version: 0.55.1
Source dir: /home/alexandre/workspace/videolabs/vlc/contrib/contrib-arm64-apple-iOS_9.0/harfbuzz
Build dir: /home/alexandre/workspace/videolabs/vlc/contrib/contrib-arm64-apple-iOS_9.0/harfbuzz/build
Build type: cross build
Using 'PKG_CONFIG_PATH' from environment with value: '/home/alexandre/workspace/videolabs/vlc/build-iphoneos-arm64/contrib/arm64-iphoneos/lib/pkgconfig:/usr/share/pkgconfig'
Project name: harfbuzz
Project version: 3.2.0
C compiler for the build machine: cc (gcc 9.3.0 "cc (Ubuntu 9.3.0-17ubuntu1~20.04) 9.3.0")
C linker for the build machine: cc ld.bfd 2.34
C++ compiler for the build machine: c++ (gcc 9.3.0 "c++ (Ubuntu 9.3.0-17ubuntu1~20.04) 9.3.0")
C++ linker for the build machine: c++ ld.bfd 2.34
C compiler for the host machine: /opt/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang (clang 11.0.0 "clang version 11.0.0 (https://github.com/llvm/llvm-project.git 0160ad802e899c2922bc9b29564080c22eb0908c)")
C linker for the host machine: /opt/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang ld64 530
C++ compiler for the host machine: /opt/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++ (clang 11.0.0 "clang version 11.0.0 (https://github.com/llvm/llvm-project.git 0160ad802e899c2922bc9b29564080c22eb0908c)")
C++ linker for the host machine: /opt/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++ ld64 530
Build machine cpu family: x86_64
Build machine cpu: x86_64
Host machine cpu family: aarch64
Host machine cpu: aarch64
Target machine cpu family: aarch64
Target machine cpu: aarch64
Compiler for C++ supports link arguments -Bsymbolic-functions: NO 
Compiler for C++ supports arguments -fno-exceptions: YES 
Compiler for C++ supports arguments -fno-rtti: YES 
Compiler for C++ supports arguments -fno-threadsafe-statics: YES 
Compiler for C++ supports arguments -fvisibility-inlines-hidden: YES 
Library m found: YES
Found pkg-config: /usr/bin/pkg-config (0.29.1)
Using 'PKG_CONFIG_PATH' from environment with value: '/home/alexandre/workspace/videolabs/vlc/build-iphoneos-arm64/contrib/arm64-iphoneos/lib/pkgconfig:/usr/share/pkgconfig'
Run-time dependency freetype2 found: YES 23.4.17
Dependency glib-2.0 skipped: feature glib disabled
Dependency gobject-2.0 skipped: feature gobject disabled
Dependency graphite2 skipped: feature graphite2 disabled
Dependency graphite2 skipped: feature graphite disabled
Using 'PKG_CONFIG_PATH' from environment with value: '/home/alexandre/workspace/videolabs/vlc/build-iphoneos-arm64/contrib/arm64-iphoneos/lib/pkgconfig:/usr/share/pkgconfig'
Run-time dependency icu-uc found: YES 66.1
Found CMake: NO
Run-time dependency cairo found: NO (tried pkgconfig and cmake)
Run-time dependency cairo-ft found: NO (tried pkgconfig and cmake)
Run-time dependency cairo found: NO (tried pkgconfig and cmake)
Not looking for a fallback subproject for the dependency cairo because:
Use of fallback dependencies is disabled.
Run-time dependency cairo-ft found: NO (tried pkgconfig and cmake)
Not looking for a fallback subproject for the dependency cairo-ft because:
Use of fallback dependencies is disabled.
Run-time dependency chafa found: NO (tried pkgconfig and cmake)
Compiler for C++ supports arguments -Wno-non-virtual-dtor: YES 
Run-time dependency appleframeworks found: NO (tried framework)
Checking for type "CTFontRef" with dependency not-found: NO 
Run-time dependency appleframeworks found: YES (CoreText)
Run-time dependency appleframeworks found: YES (CoreGraphics)
Run-time dependency appleframeworks found: YES (CoreFoundation)
Checking for type "CTRunRef" with dependencies appleframeworks, appleframeworks, appleframeworks: YES 
Run-time dependency threads found: YES
Has header "unistd.h" : YES 
Has header "sys/mman.h" : YES 
Has header "stdbool.h" : YES 
Checking for function "atexit" : YES 
Checking for function "mprotect" : YES 
Checking for function "sysconf" : YES 
Checking for function "getpagesize" : YES 
Checking for function "mmap" : YES 
Checking for function "isatty" : YES 
Checking for function "FT_Get_Var_Blend_Coordinates" with dependency freetype2: YES 
Checking for function "FT_Set_Var_Blend_Coordinates" with dependency freetype2: YES 
Checking for function "FT_Done_MM_Var" with dependency freetype2: YES 
Program gen-hb-version.py found: YES
Configuring hb-version.h with command
Program ragel found: YES 6.10
Program gen-ragel-artifacts.py found: YES
Program gen-harfbuzzcc.py found: YES
Program gen-def.py found: YES
Configuring harfbuzz-config.cmake using configuration
Configuring config.h using configuration
Build targets in project: 14

harfbuzz 3.2.0

  Directories
               prefix: /home/alexandre/workspace/videolabs/vlc/build-iphoneos-arm64/contrib/arm64-iphoneos
               bindir: bin
               libdir: lib
           includedir: include
              datadir: share

  Unicode callbacks (you want at least one)
              Builtin: YES
                 Glib: NO
                  ICU: YES

  Font callbacks (the more the merrier)
             FreeType: YES

  Dependencies used for command-line utilities
                Cairo: NO
                Chafa: NO

  Additional shapers
            Graphite2: NO

  Platform shapers (not normally needed)
             CoreText: YES
          DirectWrite: NO
        GDI/Uniscribe: NO

  Other features
        Documentation: NO
     GObject bindings: NO
        Introspection: NO
    Experimental APIs: NO

  Testing
                Tests: NO
            Benchmark: NO

Found ninja-1.10.0 at /usr/bin/ninja
cd harfbuzz && cd build && ninja install
[62/74] Compiling C++ object src/libharfbuzz-icu.a.p/hb-icu.cc.o
FAILED: src/libharfbuzz-icu.a.p/hb-icu.cc.o 
/opt/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++ -Isrc/libharfbuzz-icu.a.p -Isrc -I../src -I. -I.. -I/home/alexandre/workspace/videolabs/vlc/build-iphoneos-arm64/contrib/arm64-iphoneos/include -Xclang -fcolor-diagnostics -pipe -Wall -Winvalid-pch -Wnon-virtual-dtor -std=c++11 -fno-rtti -O2 -g -fno-exceptions -fno-rtti -fno-threadsafe-statics -fvisibility-inlines-hidden -DHAVE_CONFIG_H -mios-version-min=9.0 -arch arm64 -isysroot /opt/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk -Werror=partial-availability -fno-stack-check -Wno-non-virtual-dtor -MD -MQ src/libharfbuzz-icu.a.p/hb-icu.cc.o -MF src/libharfbuzz-icu.a.p/hb-icu.cc.o.d -o src/libharfbuzz-icu.a.p/hb-icu.cc.o -c ../src/hb-icu.cc
In file included from ../src/hb-icu.cc:34:
../src/hb-icu.h:34:10: fatal error: 'unicode/uscript.h' file not found
#include <unicode/uscript.h>
         ^~~~~~~~~~~~~~~~~~~
1 error generated.

Is it a missing dependency?

To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information