[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
This commit is contained in:
Sebastian Neubauer 2022-07-22 11:31:20 +02:00
parent 7ec308715c
commit efe1527e28
3 changed files with 8 additions and 1 deletions

View File

@ -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

View File

@ -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
)

View File

@ -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
)