diff options
Diffstat (limited to 'configure.cmake')
-rw-r--r-- | configure.cmake | 30 |
1 files changed, 29 insertions, 1 deletions
diff --git a/configure.cmake b/configure.cmake index 6cb93ad918..2818db7281 100644 --- a/configure.cmake +++ b/configure.cmake @@ -39,6 +39,18 @@ qt_internal_check_if_linker_is_available(use_lld_linker FLAG "-fuse-ld=lld" ) +# We set an invalid flag as a default flag so the compile test fails +# in case if no mold is found in PATH. +set(__qt_internal_mold_linker_flags "-Wl,-invalid-flag") +if(NOT QT_CONFIGURE_RUNNING) + qt_internal_get_mold_linker_flags(__qt_internal_mold_linker_flags) +endif() +qt_internal_check_if_linker_is_available(use_mold_linker + LABEL "mold linker" + FLAG "${__qt_internal_mold_linker_flags}" + ) +unset(__qt_internal_mold_linker_flags) + qt_feature("use_bfd_linker" PRIVATE LABEL "bfd" @@ -46,6 +58,7 @@ qt_feature("use_bfd_linker" CONDITION NOT WIN32 AND NOT INTEGRITY AND NOT WASM AND TEST_use_bfd_linker ENABLE INPUT_linker STREQUAL 'bfd' DISABLE INPUT_linker STREQUAL 'gold' OR INPUT_linker STREQUAL 'lld' + OR INPUT_linker STREQUAL 'mold' ) qt_feature_config("use_bfd_linker" QMAKE_PRIVATE_CONFIG) @@ -60,6 +73,7 @@ qt_feature("use_gold_linker" CONDITION NOT WIN32 AND NOT INTEGRITY AND NOT WASM AND NOT rtems AND TEST_use_gold_linker ENABLE INPUT_linker STREQUAL 'gold' OR QT_FEATURE_use_gold_linker_alias DISABLE INPUT_linker STREQUAL 'bfd' OR INPUT_linker STREQUAL 'lld' + OR INPUT_linker STREQUAL 'mold' ) qt_feature_config("use_gold_linker" QMAKE_PRIVATE_CONFIG) @@ -70,14 +84,27 @@ qt_feature("use_lld_linker" CONDITION NOT WIN32 AND NOT INTEGRITY AND NOT WASM AND TEST_use_lld_linker ENABLE INPUT_linker STREQUAL 'lld' DISABLE INPUT_linker STREQUAL 'bfd' OR INPUT_linker STREQUAL 'gold' + OR INPUT_linker STREQUAL 'mold' ) qt_feature_config("use_lld_linker" QMAKE_PRIVATE_CONFIG) +qt_feature("use_mold_linker" + PRIVATE + LABEL "mold" + AUTODETECT FALSE + CONDITION NOT WIN32 AND NOT INTEGRITY AND NOT WASM AND TEST_use_mold_linker + ENABLE INPUT_linker STREQUAL 'mold' + DISABLE INPUT_linker STREQUAL 'bfd' OR INPUT_linker STREQUAL 'gold' + OR INPUT_linker STREQUAL 'lld' +) +qt_feature_config("use_mold_linker" QMAKE_PRIVATE_CONFIG) + if(NOT QT_CONFIGURE_RUNNING) qt_evaluate_feature(use_bfd_linker) qt_evaluate_feature(use_gold_linker_alias) qt_evaluate_feature(use_gold_linker) qt_evaluate_feature(use_lld_linker) + qt_evaluate_feature(use_mold_linker) endif() @@ -1004,9 +1031,10 @@ qt_configure_add_summary_entry( ) qt_configure_add_summary_entry( TYPE "firstAvailableFeature" - ARGS "use_bfd_linker use_gold_linker use_lld_linker" + ARGS "use_bfd_linker use_gold_linker use_lld_linker use_mold_linker" MESSAGE "Linker" CONDITION QT_FEATURE_use_bfd_linker OR QT_FEATURE_use_gold_linker OR QT_FEATURE_use_lld_linker + OR QT_FEATURE_use_mold_linker ) qt_configure_add_summary_entry( ARGS "enable_new_dtags" |