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 ) _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits