sebastian-ne created this revision. sebastian-ne added reviewers: awarzynski, Ericson2314, tstellar. Herald added subscribers: bzcheeseman, sdasgup3, wenzhicui, wrengr, cota, teijeong, rdzhabarov, tatianashp, msifontes, jurahul, Kayjukh, grosul1, Joonsoo, liufengdb, aartbik, mgester, arpith-jacob, antiagainst, shauheen, rriddle, mehdi_amini, mgorny. Herald added a project: All. sebastian-ne requested review of this revision. Herald added subscribers: llvm-commits, cfe-commits, stephenneuendorffer, nicolasvasilache. Herald added projects: clang, MLIR, LLVM.
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 <https://reviews.llvm.org/D130254>. Repository: rG LLVM Github Monorepo https://reviews.llvm.org/D130338 Files: clang/cmake/modules/CMakeLists.txt llvm/cmake/modules/CMakeLists.txt mlir/cmake/modules/CMakeLists.txt Index: mlir/cmake/modules/CMakeLists.txt =================================================================== --- mlir/cmake/modules/CMakeLists.txt +++ mlir/cmake/modules/CMakeLists.txt @@ -42,9 +42,12 @@ # 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 ) Index: llvm/cmake/modules/CMakeLists.txt =================================================================== --- llvm/cmake/modules/CMakeLists.txt +++ llvm/cmake/modules/CMakeLists.txt @@ -99,9 +99,12 @@ # 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 ) Index: clang/cmake/modules/CMakeLists.txt =================================================================== --- clang/cmake/modules/CMakeLists.txt +++ clang/cmake/modules/CMakeLists.txt @@ -32,7 +32,8 @@ # 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
Index: mlir/cmake/modules/CMakeLists.txt =================================================================== --- mlir/cmake/modules/CMakeLists.txt +++ mlir/cmake/modules/CMakeLists.txt @@ -42,9 +42,12 @@ # 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 ) Index: llvm/cmake/modules/CMakeLists.txt =================================================================== --- llvm/cmake/modules/CMakeLists.txt +++ llvm/cmake/modules/CMakeLists.txt @@ -99,9 +99,12 @@ # 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 ) Index: clang/cmake/modules/CMakeLists.txt =================================================================== --- clang/cmake/modules/CMakeLists.txt +++ clang/cmake/modules/CMakeLists.txt @@ -32,7 +32,8 @@ # 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
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits