diff options
author | Amir Masoud Abdol <amir.abdol@qt.io> | 2023-05-09 14:37:50 +0200 |
---|---|---|
committer | Michael BrĂ¼ning <michael.bruning@qt.io> | 2023-09-18 16:23:27 +0200 |
commit | 8dce6344c0f5f0ef3f747a7af819e71cf30cfb19 (patch) | |
tree | 6edb595d9991341f8842b02d309782bf74444a74 /cmake | |
parent | a931a1ed782b2069749dd316f51ca1044c21a61a (diff) |
Use ABSOLUTE path if QT_ALLOW_SYMLINK_IN_PATHS is enabled
When building with symlink allowed, we shouldn't resolve the symlink,
and instead use ABSOLUTE path. The `qt_internal_get_filename_path_mode`
returns ABSOLUTE only if we are on macOS, and QT_ALLOW_SYMLINK_IN_PATHS
is enabled. Otherwise, path_mode will be REALPATH.
Pick-to: 6.5 6.6
Task-number: QTBUG-113463
Change-Id: I99b84004781ebf748cb1db2ba068d71a72d0daa4
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Diffstat (limited to 'cmake')
-rw-r--r-- | cmake/Functions.cmake | 12 | ||||
-rw-r--r-- | cmake/Gn.cmake | 9 |
2 files changed, 16 insertions, 5 deletions
diff --git a/cmake/Functions.cmake b/cmake/Functions.cmake index 7145c6192..9fb4299c5 100644 --- a/cmake/Functions.cmake +++ b/cmake/Functions.cmake @@ -222,10 +222,15 @@ function(configure_gn_target sourceDir inFilePath outFilePath) # FIXME: GN_CONFIG set(GN_CONFIG NOTUSED) + set(path_mode REALPATH) + if(APPLE AND QT_ALLOW_SYMLINK_IN_PATHS) + set(path_mode ABSOLUTE) + endif() + # GN_SOURCES GN_HEADERS get_property(gnSources DIRECTORY PROPERTY GN_SOURCES) foreach(gnSourceFile ${gnSources}) - get_filename_component(gnSourcePath ${sourceDir}/${gnSourceFile} REALPATH) + get_filename_component(gnSourcePath ${sourceDir}/${gnSourceFile} ${path_mode}) list(APPEND sourceList \"${gnSourcePath}\") endforeach() set(GN_HEADERS ${sourceList}) @@ -245,7 +250,7 @@ function(configure_gn_target sourceDir inFilePath outFilePath) get_property(gnIncludes DIRECTORY PROPERTY GN_INCLUDES) list(REMOVE_DUPLICATES gnIncludes) foreach(gnInclude ${gnIncludes}) - get_filename_component(gnInclude ${gnInclude} REALPATH) + get_filename_component(gnInclude ${gnInclude} ${path_mode}) list(APPEND GN_ARGS_INCLUDES \"-I${gnInclude}\") list(APPEND GN_INCLUDE_DIRS \"${gnInclude}\") endforeach() @@ -269,7 +274,7 @@ function(configure_gn_target sourceDir inFilePath outFilePath) list(REMOVE_DUPLICATES GN_CFLAGS_C) # GN_SOURCE_ROOT - get_filename_component(GN_SOURCE_ROOT "${sourceDir}" REALPATH) + get_filename_component(GN_SOURCE_ROOT "${sourceDir}" ${path_mode}) if(APPLE) # this runs in scrpit mode without qt-cmake so on MACOS here recoverFrameworkBuild(GN_INCLUDE_DIRS GN_CFLAGS_C) @@ -1242,6 +1247,7 @@ function(add_gn_command) -DQT_HOST_GN_PATH=${QT_HOST_GN_PATH} -DPython3_EXECUTABLE=${Python3_EXECUTABLE} -DGN_THREADS=$ENV{QTWEBENGINE_GN_THREADS} + -DQT_ALLOW_SYMLINK_IN_PATHS=${QT_ALLOW_SYMLINK_IN_PATHS} -P ${WEBENGINE_ROOT_SOURCE_DIR}/cmake/Gn.cmake WORKING_DIRECTORY ${WEBENGINE_ROOT_BUILD_DIR} COMMENT "Run gn for target ${arg_CMAKE_TARGET} in ${arg_BUILDDIR}" diff --git a/cmake/Gn.cmake b/cmake/Gn.cmake index 41dccc11b..15b349e08 100644 --- a/cmake/Gn.cmake +++ b/cmake/Gn.cmake @@ -9,8 +9,13 @@ if(NOT CMAKE_SCRIPT_MODE_FILE) return() endif() -get_filename_component(WEBENGINE_ROOT_SOURCE_DIR "${CMAKE_CURRENT_LIST_DIR}/.." REALPATH) -get_filename_component(WEBENGINE_ROOT_BUILD_DIR "${CMAKE_CURRENT_BINARY_DIR}" REALPATH) +set(path_mode REALPATH) +if(APPLE AND QT_ALLOW_SYMLINK_IN_PATHS) + set(path_mode ABSOLUTE) +endif() + +get_filename_component(WEBENGINE_ROOT_SOURCE_DIR "${CMAKE_CURRENT_LIST_DIR}/.." ${path_mode}) +get_filename_component(WEBENGINE_ROOT_BUILD_DIR "${CMAKE_CURRENT_BINARY_DIR}" ${path_mode}) include(${WEBENGINE_ROOT_SOURCE_DIR}/.cmake.conf) include(${WEBENGINE_ROOT_SOURCE_DIR}/cmake/Functions.cmake) |