Uploaded image for project: 'Qt'
  1. Qt
  2. QTBUG-71033

Use compile test instead of pkg-config to detect freetype version

    XMLWordPrintable

Details

    • Linux/X11
    • 29408da8540e49079332ff8eb57e63da0f907a08 (qt/qtwebengine/5.11)

    Description

      Distributions seem to change freetype version to something unexpected and that causes issues with plain version check. For example, Qt 5.11.2 on CentOS 6.10 fails with:

      FAILED: obj/third_party/harfbuzz-ng/harfbuzz_source/hb-ft.o
      /sw/local64/gcc-7.2/bin/g++ -MMD -MF obj/third_party/harfbuzz-ng/harfbuzz_source/hb-ft.o.d -DHAVE_OT -DHAVE_ICU -DHAVE_ICU_BUILTIN -DHAVE_INTEL_ATOMIC_PRIMITIVES -DV8_DEPRECATION_WARNINGS -DUSE_UDEV -DUSE_AURA=1 -DUSE_NSS_CERTS=1 -DUSE_X11=1 -DNO_TCMALLOC -DFULL_SAFE_BROWSING -DSAFE_BROWSING_CSD -DSAFE_BROWSING_DB_LOCAL -DCHROMIUM_BUILD -DFIELDTRIAL_TESTING_ENABLED -DTOOLKIT_QT -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -DNDEBUG -DNVALGRIND -DDYNAMIC_ANNOTATIONS_ENABLED=0 -DU_USING_ICU_NAMESPACE=0 -DU_ENABLE_DYLOAD=0 -DU_STATIC_IMPLEMENTATION -DICU_UTIL_DATA_IMPL=ICU_UTIL_DATA_FILE -DUCHAR_TYPE=uint16_t -Igen -I../../3rdparty/chromium -I/usr/include/freetype2 -I../../3rdparty/chromium/third_party/harfbuzz-ng/src -I../../3rdparty/chromium/third_party/icu/source/common -I../../3rdparty/chromium/third_party/icu/source/i18n -fno-strict-aliasing --param=ssp-buffer-size=4 -fstack-protector -Wno-builtin-macro-redefined -D__DATE__= -D__TIME__= -D__TIMESTAMP__= -funwind-tables -fPIC -pipe -pthread -m64 -O2 -fno-ident -fdata-sections -ffunction-sections -fno-omit-frame-pointer -g0 -fvisibility=hidden -Wno-unused-local-typedefs -Wno-maybe-uninitialized -Wno-deprecated-declarations -fno-delete-null-pointer-checks -Wno-missing-field-initializers -Wno-unused-parameter -std=gnu++14 -fno-delete-null-pointer-checks -fno-exceptions -fno-rtti -fvisibility-inlines-hidden -Wno-narrowing -c ../../3rdparty/chromium/third_party/harfbuzz-ng/src/hb-ft.cc -o obj/third_party/harfbuzz-ng/harfbuzz_source/hb-ft.o
      ../../3rdparty/chromium/third_party/harfbuzz-ng/src/hb-ft.cc: In function 'hb_face_t* hb_ft_face_create_referenced(FT_Face)':
      ../../3rdparty/chromium/third_party/harfbuzz-ng/src/hb-ft.cc:550:3: error: 'FT_Reference_Face' was not declared in this scope
      FT_Reference_Face (ft_face);
      ^~~~~~~~~~~~~~~~~
      ../../3rdparty/chromium/third_party/harfbuzz-ng/src/hb-ft.cc:550:3: note: suggested alternative: 'reference_table'
      FT_Reference_Face (ft_face);
      ^~~~~~~~~~~~~~~~~
      reference_table
      ../../3rdparty/chromium/third_party/harfbuzz-ng/src/hb-ft.cc: In function 'hb_font_t* hb_ft_font_create_referenced(FT_Face)':
      ../../3rdparty/chromium/third_party/harfbuzz-ng/src/hb-ft.cc:663:3: error: 'FT_Reference_Face' was not declared in this scope
      FT_Reference_Face (ft_face);
      ^~~~~~~~~~~~~~~~~
      ../../3rdparty/chromium/third_party/harfbuzz-ng/src/hb-ft.cc:663:3: note: suggested alternative: 'reference_table'
      FT_Reference_Face (ft_face);
      ^~~~~~~~~~~~~~~~~
      reference_table 
      

      freetype version in there actually is 2.3.11, but pkg-config says 9.22.3. This causes the simple check in configure.json to fail.

      Attachments

        For Gerrit Dashboard: QTBUG-71033
        # Subject Branch Project Status CR V

        Activity

          People

            kkohne Kai Köhne
            poikelin Joni Poikelin
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Gerrit Reviews

                There are no open Gerrit changes