32b596b7b1
Introduce a new -no-prefix option that can be used to build Qt without having to install it. Currently, -no-prefix is already implied by -developer-build, but -developer-build also implies -warnings-are-errors and -feature-private-tests, which not everyone might want to use. Some Qt builders likely use -developer-build for the no-prefix behavior, hence we introduce a standalone -no-prefix option to offer a nicer user experience without -Werror and friends. Previously it was possible to achieve the same by specifying -prefix $PWD, but that relies on $PWD expanding property in the used shell. The new -no-prefix doesn't depend on the type of the shell and is shorter to type. Internally this gets passed by configure as -DINPUT_no_prefix=yes to CMake, and transformed into a -DQT_FEATURE_no_prefix=ON feature. The feature also gets automatically auto-detected to ON if developer-build is set, -prefix is either unset or $PWD. CMake code should still query QT_WILL_INSTALL to decide whether files need to be installed or not. As a drive-by, we now also export QT_FEATURE_developer_build to be available for querying during configuration of other repos (previously it was only possible to query FEATURE_developer_build). Pick-to: 6.2 6.3 Change-Id: Iaa6c8d8ae2b736282e9949d2a5d7f412e290a253 Reviewed-by: Alexey Edelev <alexey.edelev@qt.io> Reviewed-by: Kai Koehne <kai.koehne@qt.io>
26 KiB
26 KiB
The following table describes the mapping of configure options to CMake arguments.
configure | cmake | Notes |
---|---|---|
-prefix /opt/qt6 | -DCMAKE_INSTALL_PREFIX=/opt/qta6 | |
-no-prefix (only available in Qt6) | -DCMAKE_INSTALL_PREFIX=$PWD (with bash) | In Qt5 this was done by specifying -prefix $PWD |
or -DFEATURE_no_prefix=ON | ||
-extprefix /opt/qt6 | -DCMAKE_STAGING_PREFIX=/opt/qt6 | |
-bindir | -DINSTALL_BINDIR= | similar for -headerdir -libdir and so on |
-hostdatadir | -DINSTALL_MKSPECSDIR= | |
-help | n/a | Handled by configure[.bat]. |
-verbose | ||
-continue | ||
-redo | n/a | Handled by configure[.bat]. |
-recheck [test,...] | ||
-feature-foo | -DFEATURE_foo=ON | |
-no-feature-foo | -DFEATURE_foo=OFF | |
-list-features | At the moment: configure with cmake once, | |
then use ccmake or cmake-gui to inspect the features. | ||
-list-libraries | ||
-opensource | n/a | |
-commercial | n/a | |
-confirm-license | n/a | |
-release | -DCMAKE_BUILD_TYPE=Release | |
-debug | -DCMAKE_BUILD_TYPE=Debug | |
-debug-and-release | -G "Ninja Multi-Config" | |
-DCMAKE_CONFIGURATION_TYPES=Release;Debug | ||
-optimize-debug | -DFEATURE_optimize_debug=ON | |
-optimize-size | -DFEATURE_optimize_size=ON | |
-optimized-tools | n/a | This affects only host tools. |
-force-debug-info | Use the RelWithDebInfo build config. | |
-separate-debug-info | -DFEATURE_separate_debug_info=ON | |
-gdb-index | -DFEATURE_enable_gdb_index=ON | |
-strip | cmake --install . --strip | This affects the install targets generated by qmake. |
-gc-binaries | -DFEATURE_gc_binaries=ON | |
-force-asserts | -DFEATURE_force_asserts=ON | |
-developer-build | -DFEATURE_developer_build=ON | |
-shared | -DBUILD_SHARED_LIBS=ON | |
-static | -DBUILD_SHARED_LIBS=OFF | |
-framework | -DFEATURE_framework=ON | |
-platform | -DQT_QMAKE_TARGET_MKSPEC= | |
-xplatform | -DQT_QMAKE_TARGET_MKSPEC= | Used for generating qmake-compatibility files. |
If passed 'macx-ios-clang', will configure an iOS build. | ||
-device | equivalent to -xplatform devices/ | |
-device-option <key=value> | -DQT_QMAKE_DEVICE_OPTIONS=key1=value1;key2=value2 | Only used for generation qmake-compatibility files. |
The device options are written into mkspecs/qdevice.pri. | ||
-appstore-compliant | -DFEATURE_appstore_compliant=ON | |
-qtnamespace | -DQT_NAMESPACE= | |
-qtlibinfix | -DQT_LIBINFIX= | |
-testcocoon | ||
-gcov | ||
-trace [backend] | -DINPUT_trace=yes or -DINPUT_trace= | |
or -DFEATURE_ | ||
-sanitize address -sanitize undefined | -DFEATURE_sanitize_address=ON | Directly setting -DECM_ENABLE_SANITIZERS=foo is not supported |
-DFEATURE_sanitize_undefined=ON | ||
-c++std c++20 | -DFEATURE_cxx20=ON | |
-sse2/-sse3/-ssse3/-sse4.1 | -DFEATURE_sse4=ON | |
-mips_dsp/-mips_dspr2 | -DFEATURE_mips_dsp=ON | |
-qreal | -DQT_COORD_TYPE= | |
-R | -DQT_EXTRA_RPATHS=path1;path2 | |
-rpath | negative CMAKE_SKIP_BUILD_RPATH | |
negative CMAKE_SKIP_INSTALL_RPATH | ||
-reduce-exports | -DFEATURE_reduce_exports=ON | |
-reduce-relocations | -DFEATURE_reduce_relocations=ON | |
-plugin-manifests | ||
-static-runtime | -DFEATURE_static_runtime=ON | |
-pch | -DBUILD_WITH_PCH=ON | |
-ltcg | -DCMAKE_INTERPROCEDURAL_OPTIMIZATION=ON or | |
-DCMAKE_INTERPROCEDURAL_OPTIMIZATION_=ON | ||
-linker [bfd,gold,lld] | -DINPUT_linker= or | |
-DFEATURE_use__linker=ON | ||
-incredibuild-xge | n/a | This option enables remote distribution of Visual Studio |
custom build steps for moc, uic, and rcc. | ||
This lacks support in CMake. | ||
-ccache | -DQT_USE_CCACHE=ON | |
-make-tool | n/a | |
-mp | n/a | |
-warnings-are-errors | -DWARNINGS_ARE_ERRORS=ON | |
-silent | n/a | |
-sysroot | -DCMAKE_SYSROOT= | Should be provided by a toolchain file that's |
passed via -DCMAKE_TOOLCHAIN_FILE= | ||
-no-gcc-sysroot | n/a | The corresponding CMake variables are CMAKE_SYSROOT_LINK |
and CMAKE_SYSROOT_COMPILE. | ||
They are usually set in a toolchain file. | ||
-no-pkg-config | -DFEATURE_pkg_config=OFF | |
-D | -DQT_EXTRA_DEFINES=; | |
-I | -DQT_EXTRA_INCLUDEPATHS=; | |
-L | -DQT_EXTRA_LIBDIRS=; | |
-F | -DQT_EXTRA_FRAMEWORKPATHS=; | |
-sdk | -DQT_UIKIT_SDK= | Should be provided a value like 'iphoneos' or 'iphonesimulator' |
If no value is provided, a simulator_and_device build is | ||
assumed. | ||
-android-sdk | -DANDROID_SDK_ROOT= | |
-android-ndk | -DCMAKE_TOOLCHAIN_FILE= | |
-android-ndk-platform android-23 | -DANDROID_NATIVE_API_LEVEL=23 | |
-android-abis <abi_1>,...,<abi_n> | -DANDROID_ABI=<abi_1> | only one ABI can be specified |
-android-style-assets | -DFEATURE_android_style_assets=ON | |
-android-javac-source | -DQT_ANDROID_JAVAC_SOURCE=7 | Set the javac build source version. |
-android-javac-target | -DQT_ANDROID_JAVAC_TARGET=7 | Set the javac build target version. |
-skip ,...,<repo_n> | -DBUILD_=OFF | |
-submodules ,...,<repo_n> | -QT_BUILD_SUBMODULES=;...; | |
-make | -DQT_BUILD_TESTS=ON | A way to turn on tools explicitly is missing. If tests/examples |
-DQT_BUILD_EXAMPLES=ON | are enabled, you can disable their building as part of the | |
'all' target by also passing -DQT_BUILD_TESTS_BY_DEFAULT=OFF or | ||
-DQT_BUILD_EXAMPLES_BY_DEFAULT=OFF. Note that if you entirely | ||
disable tests/examples at configure time (by using | ||
-DQT_BUILD_TESTS=OFF or -DQT_BUILD_EXAMPLES=OFF) you can't then | ||
build them separately, after configuration. | ||
-nomake | -DQT_BUILD_TESTS=OFF | A way to turn off tools explicitly is missing. |
-DQT_BUILD_EXAMPLES=OFF | ||
-no-gui | -DFEATURE_gui=OFF | |
-no-widgets | -DFEATURE_widgets=OFF | |
-no-dbus | -DFEATURE_dbus=OFF | |
-dbus [linked/runtime] | -DINPUT_dbus=[linked/runtime] | |
-dbus-linked | -DINPUT_dbus=linked | |
-dbus-runtime | -DINPUT_dbus=runtime | |
-accessibility | -DFEATURE_accessibility=ON | |
-doubleconversion | -DFEATURE_doubleconversion=ON | |
-DFEATURE_system_doubleconversion=ON/OFF | ||
-glib | -DFEATURE_glib=ON | |
-eventfd | -DFEATURE_eventfd=ON | |
-inotify | -DFEATURE_inotify=ON | |
-icu | -DFEATURE_icu=ON | |
-pcre | -DFEATURE_pcre2=ON | |
-pcre [system/qt] | -DFEATURE_system_pcre2=ON/OFF | |
-pps | n/a | QNX feature. Not available for 6.0. |
-zlib [system/qt] | -DFEATURE_system_zlib=ON/OFF | |
-ssl | -DFEATURE_ssl=ON | |
-openssl [no/yes/linked/runtime] | -DINPUT_openssl=no/yes/linked/runtime | |
-openssl-linked | -DINPUT_openssl=linked | |
-openssl-runtime | -DINPUT_openssl=runtime | |
-schannel | -DFEATURE_schannel=ON | |
-securetransport | -DFEATURE_securetransport=ON | |
-sctp | -DFEATURE_sctp=ON | |
-libproxy | -DFEATURE_libproxy=ON | |
-system-proxies | -DFEATURE_system_proxies=ON | |
-cups | -DFEATURE_cups=ON | |
-fontconfig | -DFEATURE_fontconfig=ON | |
-freetype [no/qt/system] | -DFEATURE_freetype=ON/OFF | |
-DFEATURE_system_freetype=ON/OFF | ||
-harfbuzz [no/qt/system] | -DFEATURE_harfbuzz=ON | |
-DFEATURE_system_harfbuzz=ON/OFF | ||
-gtk | -DFEATURE_gtk3=ON | |
-lgmon | n/a | QNX-specific |
-no-opengl | -DINPUT_opengl=no | |
-opengl | -DINPUT_opengl= | |
-opengles3 | -DFEATURE_opengles3=ON | |
-egl | -DFEATURE_egl=ON | |
-qpa | -DQT_QPA_DEFAULT_PLATFORM= | |
-xcb-xlib | -DFEATURE_xcb_xlib=ON | |
-direct2d | -DFEATURE_direct2d=ON | |
-directfb | -DFEATURE_directfb=ON | |
-eglfs | -DFEATURE_eglfs=ON | |
-gbm | -DFEATURE_gbm=ON | |
-kms | -DFEATURE_kms=ON | |
-linuxfb | -DFEATURE_linuxfb=ON | |
-xcb | -DFEATURE_xcb=ON | |
-libudev | -DFEATURE_libudev=ON | |
-evdev | -DFEATURE_evdev=ON | |
-imf | n/a | QNX-specific |
-libinput | -DFEATURE_libinput=ON | |
-mtdev | -DFEATURE_mtdev=ON | |
-tslib | -DFEATURE_tslib=ON | |
-bundled-xcb-xinput | -DFEATURE_system_xcb_xinput=OFF | |
-xkbcommon | -DFEATURE_xkbcommon=ON | |
-gif | -DFEATURE_gif=ON | |
-ico | -DFEATURE_ico=ON | |
-libpng | -DFEATURE_libpng=ON | |
-libjpeg | -DFEATURE_libjpeg=ON | |
-sql- | -DFEATURE_sql_=ON | |
-sqlite [qt/system] | -DFEATURE_system_sqlite=OFF/ON |