summaryrefslogtreecommitdiffstats
path: root/cmake
diff options
context:
space:
mode:
authorAmir Masoud Abdol <amir.abdol@qt.io>2023-05-09 14:37:50 +0200
committerMichael BrĂ¼ning <michael.bruning@qt.io>2023-09-18 16:23:27 +0200
commit8dce6344c0f5f0ef3f747a7af819e71cf30cfb19 (patch)
tree6edb595d9991341f8842b02d309782bf74444a74 /cmake
parenta931a1ed782b2069749dd316f51ca1044c21a61a (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.cmake12
-rw-r--r--cmake/Gn.cmake9
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)