From 518d4f10dadf0dcf812a6b949c8febdb0bb93a58 Mon Sep 17 00:00:00 2001 From: Kirill Burtsev Date: Fri, 25 Jun 2021 14:11:05 +0200 Subject: Support more module flags for 'configure' script Support flags passed to main 'configure' and separate 'qt-configure-module' scripts with flags like '-no-build-qtpdf', '-webengine-full-debug-info', '-no-webengine-jumbo-build', etc. Fixes: QTBUG-95717 Pick-to: 6.2 6.2.0 Change-Id: Ia12602e9a9b31f4f2256f983f6c1e3fbe50cb9e3 Reviewed-by: Allan Sandfeld Jensen Reviewed-by: Michal Klocek --- cmake/Functions.cmake | 70 +++++++++++++++++++++++++++++---------------------- 1 file changed, 40 insertions(+), 30 deletions(-) (limited to 'cmake') diff --git a/cmake/Functions.cmake b/cmake/Functions.cmake index 8e466cdea..02c2dae9c 100644 --- a/cmake/Functions.cmake +++ b/cmake/Functions.cmake @@ -660,7 +660,6 @@ macro(append_build_type_setup) use_sysroot=false forbid_non_component_debug_builds=false enable_debugallocation=false - remove_v8base_debug_symbols=true treat_warnings_as_errors=false use_allocator_shim=false use_allocator="none" @@ -683,7 +682,7 @@ macro(append_build_type_setup) elseif(${config} STREQUAL "MinSizeRel") list(APPEND gnArgArg is_debug=false symbol_level=0 optimize_for_size=true) endif() - if(FEATURE_developer_build OR (${config} STREQUAL "Debug")) + if(FEATURE_developer_build OR (${config} STREQUAL "Debug") OR QT_FEATURE_webengine_sanitizer) list(APPEND gnArgArg is_official_build=false from_here_uses_location_builtins=false @@ -701,49 +700,60 @@ macro(append_build_type_setup) CONDITION FEATURE_developer_build ) - # FIXME: Make it configurable - list(APPEND gnArgArg - use_jumbo_build=true - jumbo_file_merge_limit=8 - jumbo_build_excluded=["browser"] - ) + if(NOT QT_FEATURE_webengine_full_debug_info) + list(APPEND gnArgArg blink_symbol_level=0 remove_v8base_debug_symbols=true) + endif() + + extend_gn_list(gnArgArg ARGS use_jumbo_build CONDITION QT_FEATURE_webengine_jumbo_build) + if(QT_FEATURE_webengine_jumbo_build) + list(APPEND gnArgArg jumbo_file_merge_limit=${QT_FEATURE_webengine_jumbo_file_merge_limit}) + if(QT_FEATURE_webengine_jumbo_file_merge_limit GREATER 8) + list(APPEND gnArgArg jumbo_build_excluded=[\"browser\"]) + endif() + endif() extend_gn_list(gnArgArg ARGS enable_precompiled_headers CONDITION BUILD_WITH_PCH ) + extend_gn_list(gnArgArg + ARGS dcheck_always_on + CONDITION QT_FEATURE_force_asserts + ) endmacro() macro(append_compiler_linker_sdk_setup) if(CMAKE_CXX_COMPILER_LAUNCHER) list(APPEND gnArgArg cc_wrapper="${CMAKE_CXX_COMPILER_LAUNCHER}") endif() - extend_gn_list(gnArgArg - ARGS is_clang - CONDITION CLANG - ) - if(CLANG AND NOT MACOS) - # For some reason this doesn't work for our macOS CIs - get_filename_component(clangBasePath ${CMAKE_CXX_COMPILER} DIRECTORY) - get_filename_component(clangBasePath ${clangBasePath} DIRECTORY) - list(APPEND gnArgArg - clang_base_path="${clangBasePath}" - clang_use_chrome_plugins=false - ) - endif() - if(MACOS) - get_darwin_sdk_version(macSdkVersion) - get_filename_component(clangBasePath ${CMAKE_OBJCXX_COMPILER} DIRECTORY) - get_filename_component(clangBasePath ${clangBasePath} DIRECTORY) + + extend_gn_list(gnArgArg ARGS is_clang CONDITION CLANG) + if(CLANG) + if(MACOS) + get_darwin_sdk_version(macSdkVersion) + # macOS needs to use the objcxx compiler as the cxx compiler is just a link + get_filename_component(clangBasePath ${CMAKE_OBJCXX_COMPILER} DIRECTORY) + get_filename_component(clangBasePath ${clangBasePath} DIRECTORY) + else() + get_filename_component(clangBasePath ${CMAKE_CXX_COMPILER} DIRECTORY) + get_filename_component(clangBasePath ${clangBasePath} DIRECTORY) + endif() + list(APPEND gnArgArg - use_system_xcode=true clang_base_path="${clangBasePath}" clang_use_chrome_plugins=false - mac_deployment_target="${CMAKE_OSX_DEPLOYMENT_TARGET}" - mac_sdk_min="${macSdkVersion}" fatal_linker_warnings=false - ) + ) + + if(MACOS) + list(APPEND gnArgArg + use_system_xcode=true + mac_deployment_target="${CMAKE_OSX_DEPLOYMENT_TARGET}" + mac_sdk_min="${macSdkVersion}" + ) + endif() endif() + if(WIN32) get_filename_component(windowsSdkPath $ENV{WINDOWSSDKDIR} DIRECTORY) get_filename_component(visualStudioPath $ENV{VSINSTALLDIR} DIRECTORY) @@ -802,7 +812,7 @@ macro(append_compiler_linker_sdk_setup) endmacro() macro(append_sanitizer_setup) - if(QT_FEATURE_sanitizer) + if(QT_FEATURE_webengine_sanitizer) extend_gn_list(gnArgArg ARGS is_asan CONDITION address IN_LIST ECM_ENABLE_SANITIZERS -- cgit v1.2.1