[Mlir-commits] [mlir] efe1527 - [CMake] Copy folder without permissions
Sebastian Neubauer
llvmlistbot at llvm.org
Mon Jul 25 01:48:32 PDT 2022
Author: Sebastian Neubauer
Date: 2022-07-25T10:47:04+02:00
New Revision: efe1527e28ca45d2217d874364a1197de6ec156d
URL: https://github.com/llvm/llvm-project/commit/efe1527e28ca45d2217d874364a1197de6ec156d
DIFF: https://github.com/llvm/llvm-project/commit/efe1527e28ca45d2217d874364a1197de6ec156d.diff
LOG: [CMake] Copy folder without permissions
Copying the folder keeps the original permissions by default. This
creates problems when the source folder is read-only, e.g. in a
packaging environment.
Then, the copied folder in the build directory is read-only as well.
Later on, other files are copied into that directory (in the build
tree), failing when the directory is read-only.
Fix that problem by copying the folder without keeping the original
permissions.
Follow-up to D130254.
Differential Revision: https://reviews.llvm.org/D130338
Added:
Modified:
clang/cmake/modules/CMakeLists.txt
llvm/cmake/modules/CMakeLists.txt
mlir/cmake/modules/CMakeLists.txt
Removed:
################################################################################
diff --git a/clang/cmake/modules/CMakeLists.txt b/clang/cmake/modules/CMakeLists.txt
index c6afdab40d65b..5d41661f03e83 100644
--- a/clang/cmake/modules/CMakeLists.txt
+++ b/clang/cmake/modules/CMakeLists.txt
@@ -32,7 +32,8 @@ set(CLANG_CONFIG_LLVM_CMAKE_DIR)
# For compatibility with projects that include(ClangConfig)
# via CMAKE_MODULE_PATH, place API modules next to it.
-# Copy without source permissions because the source could be read-only
+# Copy without source permissions because the source could be read-only,
+# but we need to write into the copied folder.
file(COPY .
DESTINATION ${clang_cmake_builddir}
NO_SOURCE_PERMISSIONS
diff --git a/llvm/cmake/modules/CMakeLists.txt b/llvm/cmake/modules/CMakeLists.txt
index 42bf5bc0feeba..d4453f255f7da 100644
--- a/llvm/cmake/modules/CMakeLists.txt
+++ b/llvm/cmake/modules/CMakeLists.txt
@@ -99,9 +99,12 @@ set(llvm_config_include_buildtree_only_exports)
# For compatibility with projects that include(LLVMConfig)
# via CMAKE_MODULE_PATH, place API modules next to it.
+# Copy without source permissions because the source could be read-only,
+# but we need to write into the copied folder.
# This should be removed in the future.
file(COPY .
DESTINATION ${llvm_cmake_builddir}
+ NO_SOURCE_PERMISSIONS
FILES_MATCHING PATTERN *.cmake
PATTERN CMakeFiles EXCLUDE
)
diff --git a/mlir/cmake/modules/CMakeLists.txt b/mlir/cmake/modules/CMakeLists.txt
index c2407c04ae47a..139705593e720 100644
--- a/mlir/cmake/modules/CMakeLists.txt
+++ b/mlir/cmake/modules/CMakeLists.txt
@@ -42,9 +42,12 @@ set(MLIR_CONFIG_INCLUDE_DIRS)
# For compatibility with projects that include(MLIRConfig)
# via CMAKE_MODULE_PATH, place API modules next to it.
+# Copy without source permissions because the source could be read-only,
+# but we need to write into the copied folder.
# This should be removed in the future.
file(COPY .
DESTINATION ${mlir_cmake_builddir}
+ NO_SOURCE_PERMISSIONS
FILES_MATCHING PATTERN *.cmake
PATTERN CMakeFiles EXCLUDE
)
More information about the Mlir-commits
mailing list