cxx-compiler: g++
build-dir: ../build
build-src-dir: ../zlib-ng
+ # Build with readonly project directory require CMake 3.19+
+ readonly-project-dir: true
codecov: ubuntu_gcc_osb
cflags: -O3
cxx-compiler: g++
build-dir: ../build
build-src-dir: ../zlib-ng/test/add-subdirectory-project
+ readonly-project-dir: true
- name: Ubuntu GCC -O1 No Unaligned UBSAN
os: ubuntu-latest
CC: ${{ matrix.compiler }}
CXX: ${{ matrix.cxx-compiler }}
+ - name: Make source tree read-only
+ shell: bash
+ run: chmod -R a-w .
+ if: matrix.readonly-project-dir
+
- name: Generate project files
shell: bash
# Shared libraries turned off for qemu ppc* and sparc & reduce code coverage sources
LSAN_OPTIONS: ${{ matrix.lsan-options || 'verbosity=0' }}:abort_on_error=1:halt_on_error=1
UBSAN_OPTIONS: ${{ matrix.ubsan-options || 'verbosity=0' }}:print_stacktrace=1:abort_on_error=1:halt_on_error=1
+ - name: Make source tree writable
+ shell: bash
+ run: chmod -R +w .
+ if: matrix.readonly-project-dir
+
- name: Generate coverage report
if: matrix.codecov
shell: bash
set(INPUT_FILE ${OUTPUT_BASE})
# Make CMake copy and rename file in one operation
-configure_file(${INPUT} ${INPUT_FILE} COPYONLY)
+# The copied file permissions is standard 644 (-rw-r--r--)
+if(NOT CMAKE_VERSION VERSION_LESS "3.19")
+ set(CONFIGURE_NO_SOURCE_PERMISSIONS NO_SOURCE_PERMISSIONS)
+endif()
+configure_file(${INPUT} ${INPUT_FILE} COPYONLY ${CONFIGURE_NO_SOURCE_PERMISSIONS})
message(STATUS "Compress ${COMPRESS_COMMAND}")
message(STATUS " Source file: ${INPUT}")