-
Notifications
You must be signed in to change notification settings - Fork 2k
Description
I'd just like to say, I wonder how deep in the dependency graph we / conan should drill down?
This is getting pretty deep, any deeper and conan will be compiling X11 and the kernel !
I'm trying to build Qt6 from the CCI recipe, which includes freetype in the dependency graph.
I've boobytrapped the /usr/include/freetype2/ft2build.h to detect when the conan/cmake is bringing in system includes instead of the conan supplied files.
ie at the top of /usr/include/freetype2/ft2build.h, I added #error "should not use system includes
So while Qt6 is building, I am checking the compiler arguments.
The /usr/include/freetype2 dir is always in the command line params, but often we "get away with it" because of the includedir ordering. ie the conan include folders are listed before the xkbcommon-derived includes.
But, the include dir order is inconsistent (probably because of the order of requirements declared for each Qt module?).
It seems to be that xkbcommon has a pkg requirement for xorg-xft, and that isn't provided by conan CCI so it brings in /usr/include/freetype2
See below for xft.pc
Package and Environment Details (include every applicable attribute)
- Package Name/Version: xkbcommon/1.4.0
- Operating System+version: Linux Ubuntu 20.04
- Compiler+version: GCC 11
- Docker image: -
- Conan version: conan 1.48.0
- Python version: Python 3.8.10
xkbcommon's xft.pc
Click to expand log
``` prefix=/build/conandata/conan-data/xorg/system/_/_/package/5ab84d6acfe1f23c4fae0ab88f26e3a396351ac9 includedir=/usr/include/uuid includedir2=/usr/include/freetype2 includedir3=/usr/include/libpng16Name: xorg-xft
Description: Conan package: xorg-xft
Version: 2.3.3
Libs: -lXft
Cflags: -I"${includedir}" -I"${includedir2}" -I"${includedir3}"
</details>
### Log of compiler cmd with freetype2 include ahead of conan includes
<details><summary>Click to expand log</summary>
Look for the "HERE IS" in the block of text, to help spot the includes.
[733/1326] /usr/lib/ccache/g++-11 -DENABLE_PIXMAN_DRAWHELPERS -DGui_EXPORTS -DHAS_FCHOWN -DHAS_STICKY_DIR_BIT -DMD4C_USE_UTF8 -DQT_ASCII_CAST_WARNINGS -DQT_BUILDING_QT -DQT_BUILD_GUI_LIB -DQT_CORE_LIB -DQT_DEPRECATED_WARNINGS -DQT_DEPRECATED_WARNINGS_SINCE=0x060000 -DQT_DISABLE_DEPRECATED_BEFORE=0x050000 -DQT_MOC_COMPAT -DQT_NO_CAST_TO_ASCII -DQT_NO_DEBUG -DQT_NO_EXCEPTIONS -DQT_NO_FOREACH -DQT_NO_JAVA_STYLE_ITERATORS -DQT_NO_NARROWING_CONVERSIONS_IN_CONNECT -DQT_NO_USING_NAMESPACE -DQT_QPA_DEFAULT_PLATFORM_NAME="xcb" -DQT_USE_QSTRINGBUILDER -D_BSD_SOURCE -D_DEFAULT_SOURCE -D_GLIBCXX_USE_CXX11_ABI=1 -D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE -I/build/msrap2/deps/conan-center-index/recipes/qt/6.x.x/build/qtbase/src/gui/Gui_autogen/include -I/build/conandata/conan-data/double-conversion/3.2.0///package/45c3dac76374a750236d109a39e2d0dce48c6dee/include -I/build/conandata/conan-data/icu/71.1///package/707056c44dd22d3e5a4838bb69c725f49d9e6f3e/include -I/build/conandata/conan-data/libjpeg-turbo/2.1.2///package/052722dba4d2b11057af2ccf04d274f5403ab446/include -I/build/conandata/conan-data/sqlite3/3.38.1///package/04f3d9990d7147f15e756850b09b524e7a9fa495/include -I/build/conandata/conan-data/zstd/1.5.2///package/64040fc111a2f8984571d56d7700e5b3c833091b/include -I/build/conandata/conan-data/openssl/1.1.1n///package/d8e005ad3b462a6816372c83828697b59f046649/include -I/usr/include/uuid --------- HERE IS THE FIRST FREETYPE INCLUDE --------- -I/usr/include/freetype2 -I/usr/include/libpng16 -I/build/conandata/conan-data/libxml2/2.9.13///package/0998548b2c6c7bb9e3a0c4b2211b82848c5b47ac/include -I/build/conandata/conan-data/libxml2/2.9.13///package/0998548b2c6c7bb9e3a0c4b2211b82848c5b47ac/include/libxml2 -I/build/conandata/conan-data/libiconv/1.16///package/d8e005ad3b462a6816372c83828697b59f046649/include -I/build/msrap2/deps/conan-center-index/recipes/qt/6.x.x/build/qtbase/include -I/build/msrap2/deps/conan-center-index/recipes/qt/6.x.x/build/qtbase/include/QtGui -I/build/msrap2/deps/conan-center-index/recipes/qt/6.x.x/src/qt6/qtbase/src/gui -I/build/msrap2/deps/conan-center-index/recipes/qt/6.x.x/build/qtbase/src/gui -I/build/msrap2/deps/conan-center-index/recipes/qt/6.x.x/src/qt6/qtbase/src/gui/../3rdparty/VulkanMemoryAllocator -I/build/msrap2/deps/conan-center-index/recipes/qt/6.x.x/build/qtbase/include/QtGui/6.2.4 -I/build/msrap2/deps/conan-center-index/recipes/qt/6.x.x/build/qtbase/include/QtGui/6.2.4/QtGui -I/build/msrap2/deps/conan-center-index/recipes/qt/6.x.x/src/qt6/qtbase/src/gui/../3rdparty/md4c -I/build/msrap2/deps/conan-center-index/recipes/qt/6.x.x/build/qtbase/include/QtCore -I/build/msrap2/deps/conan-center-index/recipes/qt/6.x.x/src/qt6/qtbase/mkspecs/linux-g++ -I/build/msrap2/deps/conan-center-index/recipes/qt/6.x.x/build/qtbase/src/corelib -I/build/msrap2/deps/conan-center-index/recipes/qt/6.x.x/build/qtbase/include/QtCore/6.2.4 -I/build/msrap2/deps/conan-center-index/recipes/qt/6.x.x/build/qtbase/include/QtCore/6.2.4/QtCore -isystem /build/conandata/conan-data/fontconfig/2.13.93///package/49eb93b2bd5546053215176ecd70adc03ad2a1f9/include -isystem /build/conandata/conan-data/harfbuzz/4.2.1///package/925c2f5d2139ad32ce6919cebb31e0e4b471c286/include -isystem /build/conandata/conan-data/harfbuzz/4.2.1///package/925c2f5d2139ad32ce6919cebb31e0e4b471c286/include/harfbuzz -isystem /build/conandata/conan-data/xkbcommon/1.4.0///package/90ac0e490deadebc3367d8e7827398d34f9dec8a/include -isystem --------- HERE IS THE CONAN FREETYPE INCLUDE --------- /build/conandata/conan-data/freetype/2.11.1///package/c30166e730fb8c7c165c20fa134eb41e092fa263/include -isystem /build/conandata/conan-data/freetype/2.11.1///package/c30166e730fb8c7c165c20fa134eb41e092fa263/include/freetype2 -isystem /build/conandata/conan-data/expat/2.4.8///package/e9397626dc70ac22e096a6e4fcd768c3d16c095a/include -isystem /build/conandata/conan-data/libuuid/1.0.3///package/d8e005ad3b462a6816372c83828697b59f046649/include -isystem /build/conandata/conan-data/libuuid/1.0.3///package/d8e005ad3b462a6816372c83828697b59f046649/include/uuid -isystem /build/conandata/conan-data/glib/2.72.0///package/ce8514b42952964ade3ad32e80d857e8a57e2e0d/include -isystem /build/conandata/conan-data/glib/2.72.0///package/ce8514b42952964ade3ad32e80d857e8a57e2e0d/include/gio-unix-2.0 -isystem /build/conandata/conan-data/glib/2.72.0///package/ce8514b42952964ade3ad32e80d857e8a57e2e0d/include/glib-2.0 -isystem /build/conandata/conan-data/glib/2.72.0///package/ce8514b42952964ade3ad32e80d857e8a57e2e0d/lib/glib-2.0/include -isystem /build/conandata/conan-data/libpng/1.6.37///package/1134e4336c7a26c424832456faca8bbd1f3765ae/include -isystem /build/conandata/conan-data/brotli/1.0.9///package/d8e005ad3b462a6816372c83828697b59f046649/include -isystem /build/conandata/conan-data/brotli/1.0.9///package/d8e005ad3b462a6816372c83828697b59f046649/include/brotli -isystem /build/conandata/conan-data/libffi/3.4.2///package/d8e005ad3b462a6816372c83828697b59f046649/include -isystem /build/conandata/conan-data/pcre/8.45///package/9d6b7901d27181a99ebcb6baeb85c8901850d1b5/include -isystem /build/conandata/conan-data/libelf/0.8.13///package/d8e005ad3b462a6816372c83828697b59f046649/include/libelf -isystem /build/conandata/conan-data/libelf/0.8.13///package/d8e005ad3b462a6816372c83828697b59f046649/include -isystem /build/conandata/conan-data/libmount/2.36.2///package/d8e005ad3b462a6816372c83828697b59f046649/include -isystem /build/conandata/conan-data/libmount/2.36.2///package/d8e005ad3b462a6816372c83828697b59f046649/include/libmount -isystem /build/conandata/conan-data/libselinux/3.3///package/57c104a27db76aeebabfafc2cd13d53242461c8b/include -isystem /build/conandata/conan-data/pcre2/10.37///package/ca6da468706a2ed1112e0ce60ee4ef7e3df22afd/include -isystem /build/conandata/conan-data/zlib/1.2.12///package/d8e005ad3b462a6816372c83828697b59f046649/include -isystem /build/conandata/conan-data/bzip2/1.0.8///package/938364ead48216bc0d9f3c562bf7bd1efbe00322/include -m64 -DNDEBUG -O3 -fPIC -fvisibility=hidden -fvisibility-inlines-hidden -D_DEFAULT_SOURCE -D_BSD_SOURCE -DHAS_FCHOWN -DHAS_STICKY_DIR_BIT -Wall -Wextra -fno-exceptions -fPIC -Wsuggest-override -std=c++17 -Winvalid-pch -include /build/msrap2/deps/conan-center-index/recipes/qt/6.x.x/build/qtbase/src/gui/CMakeFiles/Gui.dir/cmake_pch.hxx -MD -MT qtbase/src/gui/CMakeFiles/Gui.dir/text/qcssparser.cpp.o -MF qtbase/src/gui/CMakeFiles/Gui.dir/text/qcssparser.cpp.o.d -o qtbase/src/gui/CMakeFiles/Gui.dir/text/qcssparser.cpp.o -c /build/msrap2/deps/conan-center-index/recipes/qt/6.x.x/src/qt6/qtbase/src/gui/text/qcssparser.cpp
</details>