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>
179 lines
8.3 KiB
CMake
179 lines
8.3 KiB
CMake
qt_commandline_subconfig(src/corelib)
|
|
qt_commandline_subconfig(src/network)
|
|
qt_commandline_subconfig(src/gui)
|
|
qt_commandline_subconfig(src/sql)
|
|
qt_commandline_subconfig(src/xml)
|
|
qt_commandline_subconfig(src/widgets)
|
|
qt_commandline_subconfig(src/printsupport)
|
|
qt_commandline_subconfig(src/plugins/sqldrivers)
|
|
qt_commandline_subconfig(src/testlib)
|
|
qt_commandline_subconfig(src/tools)
|
|
# no-prefix needs to be placed before prefix
|
|
qt_commandline_option(no-prefix TYPE void)
|
|
qt_commandline_option(prefix TYPE string)
|
|
qt_commandline_option(extprefix TYPE string)
|
|
qt_commandline_option(archdatadir TYPE string)
|
|
qt_commandline_option(bindir TYPE string)
|
|
qt_commandline_option(datadir TYPE string)
|
|
qt_commandline_option(docdir TYPE string)
|
|
qt_commandline_option(examplesdir TYPE string)
|
|
qt_commandline_option(headerdir TYPE string)
|
|
qt_commandline_option(hostdatadir TYPE string)
|
|
qt_commandline_option(libdir TYPE string)
|
|
qt_commandline_option(libexecdir TYPE string)
|
|
qt_commandline_option(plugindir TYPE string)
|
|
qt_commandline_option(qmldir TYPE string)
|
|
qt_commandline_option(settingsdir TYPE string NAME sysconfdir)
|
|
qt_commandline_option(sysconfdir TYPE string)
|
|
qt_commandline_option(testsdir TYPE string)
|
|
qt_commandline_option(translationdir TYPE string)
|
|
qt_commandline_option(android-arch TYPE string)
|
|
qt_commandline_option(android-abis TYPE string)
|
|
qt_commandline_option(android-ndk TYPE string)
|
|
qt_commandline_option(android-ndk-platform TYPE string)
|
|
qt_commandline_option(android-sdk TYPE string)
|
|
qt_commandline_option(android-javac-target TYPE string)
|
|
qt_commandline_option(android-javac-source TYPE string)
|
|
qt_commandline_option(android-style-assets TYPE boolean)
|
|
qt_commandline_option(appstore-compliant TYPE boolean)
|
|
qt_commandline_option(avx TYPE boolean)
|
|
qt_commandline_option(avx2 TYPE boolean)
|
|
qt_commandline_option(avx512 TYPE boolean NAME avx512f)
|
|
qt_commandline_option(c++std TYPE cxxstd)
|
|
qt_commandline_option(ccache TYPE boolean NAME ccache)
|
|
qt_commandline_option(commercial TYPE void)
|
|
qt_commandline_option(confirm-license TYPE void)
|
|
qt_commandline_option(dbus TYPE optionalString VALUES no yes linked runtime)
|
|
qt_commandline_option(dbus-linked TYPE void NAME dbus VALUE linked)
|
|
qt_commandline_option(dbus-runtime TYPE void NAME dbus VALUE runtime)
|
|
qt_commandline_option(debug TYPE void)
|
|
qt_commandline_option(debug-and-release TYPE boolean NAME debug_and_release)
|
|
qt_commandline_option(developer-build TYPE void)
|
|
qt_commandline_option(device TYPE string)
|
|
qt_commandline_option(device-option TYPE addString)
|
|
qt_commandline_option(f16c TYPE boolean)
|
|
qt_commandline_option(force-asserts TYPE boolean NAME force_asserts)
|
|
qt_commandline_option(force-debug-info TYPE boolean NAME force_debug_info)
|
|
qt_commandline_option(force-pkg-config TYPE void NAME pkg-config)
|
|
qt_commandline_option(framework TYPE boolean)
|
|
qt_commandline_option(gc-binaries TYPE boolean NAME gc_binaries)
|
|
qt_commandline_option(gdb-index TYPE boolean NAME enable_gdb_index)
|
|
qt_commandline_option(gcc-sysroot TYPE boolean)
|
|
qt_commandline_option(gcov TYPE boolean)
|
|
qt_commandline_option(gnumake TYPE boolean NAME GNUmake)
|
|
qt_commandline_option(gui TYPE boolean)
|
|
qt_commandline_option(headersclean TYPE boolean)
|
|
qt_commandline_option(incredibuild-xge TYPE boolean NAME incredibuild_xge)
|
|
qt_commandline_option(libudev TYPE boolean)
|
|
qt_commandline_option(linker TYPE optionalString VALUES bfd gold lld mold)
|
|
qt_commandline_option(ltcg TYPE boolean)
|
|
# special case begin
|
|
qt_commandline_option(make TYPE addString VALUES examples libs tests tools
|
|
benchmarks manual-tests minimal-static-tests)
|
|
# special case end
|
|
qt_commandline_option(make-tool TYPE string)
|
|
qt_commandline_option(mips_dsp TYPE boolean)
|
|
qt_commandline_option(mips_dspr2 TYPE boolean)
|
|
qt_commandline_option(mp TYPE boolean NAME msvc_mp)
|
|
qt_commandline_option(nomake TYPE addString VALUES examples tests tools benchmarks
|
|
manual-tests minimal-static-tests) # special case
|
|
qt_commandline_option(opensource TYPE void NAME commercial VALUE no)
|
|
qt_commandline_option(optimize-debug TYPE boolean NAME optimize_debug)
|
|
qt_commandline_option(optimize-size TYPE boolean NAME optimize_size)
|
|
qt_commandline_option(optimized-qmake TYPE boolean NAME release_tools)
|
|
qt_commandline_option(optimized-tools TYPE boolean NAME release_tools)
|
|
qt_commandline_option(pch TYPE boolean NAME precompile_header)
|
|
qt_commandline_option(pkg-config TYPE boolean)
|
|
qt_commandline_option(platform TYPE string)
|
|
qt_commandline_option(plugin-manifests TYPE boolean)
|
|
qt_commandline_option(profile TYPE boolean)
|
|
qt_commandline_option(qreal TYPE string)
|
|
qt_commandline_option(qtlibinfix TYPE string NAME qt_libinfix)
|
|
qt_commandline_option(qtnamespace TYPE string NAME qt_namespace)
|
|
qt_commandline_option(reduce-exports TYPE boolean NAME reduce_exports)
|
|
qt_commandline_option(reduce-relocations TYPE boolean NAME reduce_relocations)
|
|
qt_commandline_option(release TYPE enum NAME debug MAPPING yes no no yes)
|
|
qt_commandline_option(rpath TYPE boolean)
|
|
qt_commandline_option(sanitize TYPE sanitize)
|
|
qt_commandline_option(sdk TYPE string)
|
|
qt_commandline_option(separate-debug-info TYPE boolean NAME separate_debug_info)
|
|
qt_commandline_option(shared TYPE boolean)
|
|
qt_commandline_option(silent TYPE void)
|
|
qt_commandline_option(qdbus TYPE boolean NAME dbus)
|
|
qt_commandline_option(sse2 TYPE boolean)
|
|
qt_commandline_option(sse3 TYPE boolean)
|
|
qt_commandline_option(sse4.1 TYPE boolean NAME sse4_1)
|
|
qt_commandline_option(sse4.2 TYPE boolean NAME sse4_2)
|
|
qt_commandline_option(ssse3 TYPE boolean)
|
|
qt_commandline_option(static TYPE enum NAME shared MAPPING yes no no yes)
|
|
qt_commandline_option(static-runtime TYPE boolean NAME static_runtime)
|
|
qt_commandline_option(strip TYPE boolean)
|
|
qt_commandline_option(syncqt TYPE boolean)
|
|
qt_commandline_option(sysroot TYPE string)
|
|
qt_commandline_option(testcocoon TYPE boolean)
|
|
qt_commandline_option(use-gold-linker TYPE boolean NAME use_gold_linker_alias)
|
|
qt_commandline_option(warnings-are-errors TYPE boolean NAME warnings_are_errors)
|
|
qt_commandline_option(Werror TYPE boolean NAME warnings_are_errors)
|
|
qt_commandline_option(widgets TYPE boolean)
|
|
qt_commandline_option(xplatform TYPE string)
|
|
qt_commandline_option(zlib TYPE enum NAME system-zlib MAPPING system yes qt no)
|
|
qt_commandline_option(zstd TYPE boolean)
|
|
qt_commandline_prefix(D defines)
|
|
qt_commandline_prefix(F fpaths)
|
|
qt_commandline_prefix(I includes)
|
|
qt_commandline_prefix(L lpaths)
|
|
qt_commandline_prefix(R rpaths)
|
|
qt_commandline_prefix(W wflags)
|
|
|
|
function(qt_commandline_cxxstd arg val nextok)
|
|
if("${val}" STREQUAL "")
|
|
qtConfGetNextCommandlineArg(val)
|
|
endif()
|
|
if("${val}" STREQUAL "" OR val MATCHES "^-.*")
|
|
qtConfAddError("Missing argument to command line parameter '${arg}'.")
|
|
return()
|
|
endif()
|
|
if(val MATCHES "(c\\+\\+)?11")
|
|
qtConfCommandlineSetInput(c++14 no)
|
|
qtConfCommandlineSetInput(c++17 no)
|
|
qtConfCommandlineSetInput(c++20 no)
|
|
elseif(val MATCHES "(c\\+\\+)?(14|1y)")
|
|
qtConfCommandlineSetInput(c++14 yes)
|
|
qtConfCommandlineSetInput(c++17 no)
|
|
qtConfCommandlineSetInput(c++20 no)
|
|
elseif(val MATCHES "(c\\+\\+)?(17|1z)")
|
|
qtConfCommandlineSetInput(c++14 yes)
|
|
qtConfCommandlineSetInput(c++17 yes)
|
|
qtConfCommandlineSetInput(c++20 no)
|
|
elseif(val MATCHES "(c\\+\\+)?(20|2a)")
|
|
qtConfCommandlineSetInput(c++14 yes)
|
|
qtConfCommandlineSetInput(c++17 yes)
|
|
qtConfCommandlineSetInput(c++20 yes)
|
|
else()
|
|
qtConfAddError("Invalid argument '${val}' to command line parameter '${arg}'")
|
|
endif()
|
|
endfunction()
|
|
|
|
function(qt_commandline_sanitize arg val nextok)
|
|
if("${val}" STREQUAL "")
|
|
qtConfGetNextCommandlineArg(val)
|
|
endif()
|
|
if("${val}" STREQUAL "" OR val MATCHES "^-.*")
|
|
qtConfAddError("Missing argument to command line parameter '${arg}'.")
|
|
return()
|
|
endif()
|
|
if(val STREQUAL "address")
|
|
qtConfCommandlineSetInput(sanitize_address yes)
|
|
elseif(val STREQUAL "thread")
|
|
qtConfCommandlineSetInput(sanitize_thread yes)
|
|
elseif(val STREQUAL "memory")
|
|
qtConfCommandlineSetInput(sanitize_memory yes)
|
|
elseif(val STREQUAL "fuzzer-no-link")
|
|
qtConfCommandlineSetInput(sanitize_fuzzer_no_link yes)
|
|
elseif(val STREQUAL "undefined")
|
|
qtConfCommandlineSetInput(sanitize_undefined yes)
|
|
else()
|
|
qtConfAddError("Invalid argument '${val}' to command line parameter '${arg}'")
|
|
endif()
|
|
endfunction()
|