diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 7e5bac3a324ec269804c6db760f898ec3a3b5cb3..761c04ec519cb7f8cda0e102f599838edee5f3ce 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -172,6 +172,13 @@ stages: - cp "$LTV_DIR"/*.met scripts/testv/ - cp "$LTV_DIR"/*.csv scripts/testv/ +.activate-Werror-linux: &activate-Werror-linux + - sed -i.bak "s/^# \(CFLAGS += -Werror\)/\1/" Makefile + - sed -i.bak "s/# \(set(CMAKE_C_FLAGS \"\${CMAKE_C_FLAGS} -Werror\")\)/\1/" CMakeLists.txt + +.activate-WX-windows: &activate-WX-windows + - (Get-Content -Path "CMakeLists.txt") -replace '# \(add_compile_options\("\/WX"\)\)', '$1' | Set-Content -Path "CMakeLists.txt" + - Get-ChildItem -Path "Workspace_msvc" -Filter "*.vcxproj" | ForEach-Object { (Get-Content -Path $_.FullName) -replace 'false', 'true' | Set-Content -Path $_.FullName } # --------------------------------------------------------------- # Job templates @@ -239,21 +246,6 @@ stages: - if [ ! -d "$TESTV_DIR" ]; then mkdir -p $TESTV_DIR; fi - cp -r scripts/testv/* $TESTV_DIR/ -# template for build jobs to include the check for warnings -.build-job-with-check-for-warnings: - extends: .build-job-linux - stage: build - allow_failure: - exit_codes: - - 123 - -.build-job-windows-with-check-for-warnings: - extends: .build-job-windows - stage: build - allow_failure: - exit_codes: - - 123 - # --------------------------------------------------------------- # .pre jobs for setting up things # --------------------------------------------------------------- @@ -309,18 +301,20 @@ branch-is-up-to-date-with-main-post: build-codec-linux-make: extends: - - .build-job-with-check-for-warnings + - .build-job-linux - .rules-basis script: - *print-common-info + - *activate-Werror-linux - make -j build-codec-linux-cmake: extends: - - .build-job-with-check-for-warnings + - .build-job-linux - .rules-basis script: - *print-common-info + - *activate-Werror-linux - mkdir build - cd build - cmake .. @@ -334,33 +328,37 @@ build-codec-instrumented-linux: timeout: "6 minutes" script: - *print-common-info + - *activate-Werror-linux - bash ci/build_codec_instrumented_linux.sh # make sure that the codec builds with msan, asan and usan build-codec-sanitizers-linux: extends: - - .build-job-with-check-for-warnings + - .build-job-linux - .rules-basis script: - *print-common-info + - *activate-Werror-linux - bash ci/build_codec_sanitizers_linux.sh build-codec-include-split-linux-make: extends: - - .build-job-with-check-for-warnings + - .build-job-linux - .rules-basis script: - *print-common-info - *enable-split-rendering + - *activate-Werror-linux - make -j INCLUDE_SPLIT=1 build-codec-include-split-linux-cmake: extends: - - .build-job-with-check-for-warnings + - .build-job-linux - .rules-basis script: - *print-common-info - *enable-split-rendering + - *activate-Werror-linux - mkdir build - cd build - cmake .. -DINCLUDE_SPLIT=1 @@ -369,21 +367,21 @@ build-codec-include-split-linux-cmake: build-codec-windows-cmake: extends: - - .build-job-windows-with-check-for-warnings + - .build-job-windows - .rules-basis script: - *print-common-info-windows - - $winoutdata = $null + - *activate-WX-windows - cmake -G "Visual Studio 15 2017" . -Bbuild - cmake --build build -j build-codec-windows-include-split-cmake: extends: - - .build-job-windows-with-check-for-warnings + - .build-job-windows - .rules-basis script: - *print-common-info-windows - - $winoutdata = $null + - *activate-WX-windows - get-content .\lib_com\options.h | %{$_ -replace "/\*#define[\s]*SPLIT_REND_WITH_HEAD_ROT[\s]*\*/", "#define SPLIT_REND_WITH_HEAD_ROT"} | set-content -Path ./options_patched.h - rm ./lib_com/options.h - mv ./options_patched.h ./lib_com/options.h @@ -392,13 +390,13 @@ build-codec-windows-include-split-cmake: build-codec-windows-msbuild: extends: - - .build-job-windows-with-check-for-warnings + - .build-job-windows - .rules-basis script: - *print-common-info-windows - - $winoutdata = $null + - *activate-WX-windows - py .\scripts\strip_split_rendering.py - - MSBuild.exe .\Workspace_msvc\Workspace_msvc.sln /property:Configuration=Debug | tee -variable winoutdata + - MSBuild.exe .\Workspace_msvc\Workspace_msvc.sln /property:Configuration=Debug # --------------------------------------------------------------- # Test jobs for merge requests diff --git a/CMakeLists.txt b/CMakeLists.txt index 7d8b2caeb056c62a62127c985ca7ea0be020b3e9..b96aa88d11c1320fd8172baaffbc445780e767e1 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -60,7 +60,10 @@ if(UNIX) set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -ffp-contract=off") # disable floating point operation contraction set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -pedantic -Wcast-qual -Wall -W -Wextra -Wno-long-long") set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wpointer-arith -Wstrict-prototypes -Wmissing-prototypes") - set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Werror -Wno-unused-parameter") + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-unused-parameter") + # to be uncommented in CI + # set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Werror") + # CLANG if(CLANG) find_program(clangBin NAMES /home/amm-archiv/soft/Linux/clang/current/bin/clang clang REQUIRED) @@ -113,7 +116,9 @@ elseif(WIN32) /MP ) if(NOT INCLUDE_SPLIT) - add_compile_options("/W4" "/WX") + add_compile_options("/W4") + # to be uncommented in CI + # add_compile_options("/WX") endif() endif() diff --git a/Makefile b/Makefile index 8f5cdaf433c52b568e3f46d3c876a81bd7dd9182..51d711ae3d70bcc0c2f8e5be357b24ab059c94e8 100644 --- a/Makefile +++ b/Makefile @@ -57,8 +57,9 @@ endif # C compiler flags CFLAGS += -std=c99 -pedantic -Wcast-qual -Wall -W -Wextra -Wno-long-long \ -Wpointer-arith -Wstrict-prototypes -Wmissing-prototypes \ - -Werror \ -Wno-implicit-fallthrough -ffp-contract=off +# to be uncommented in CI +# CFLAGS += -Werror # libs to link LDLIBS += -lm diff --git a/Workspace_msvc/decoder.vcxproj b/Workspace_msvc/decoder.vcxproj index 13e94e853300d33a7baa9e5f406e59c5f2e31b12..2228349d5e2a45224556afb18545d8a6f65cf2ab 100644 --- a/Workspace_msvc/decoder.vcxproj +++ b/Workspace_msvc/decoder.vcxproj @@ -82,7 +82,7 @@ OldStyle Default %(DisableSpecificWarnings) - true + false _DEBUG;%(PreprocessorDefinitions) @@ -130,7 +130,7 @@ Default %(DisableSpecificWarnings) - true + false NDEBUG;%(PreprocessorDefinitions) diff --git a/Workspace_msvc/encoder.vcxproj b/Workspace_msvc/encoder.vcxproj index 0808df56360646c30774b4cce9e282cb9636535b..309dc15253dc51c5654f65f18cb9ba6ec6e78835 100644 --- a/Workspace_msvc/encoder.vcxproj +++ b/Workspace_msvc/encoder.vcxproj @@ -82,7 +82,7 @@ OldStyle Default %(DisableSpecificWarnings) - true + false _DEBUG;%(PreprocessorDefinitions) @@ -138,7 +138,7 @@ Default %(DisableSpecificWarnings) - true + false NDEBUG;%(PreprocessorDefinitions) diff --git a/Workspace_msvc/lib_com.vcxproj b/Workspace_msvc/lib_com.vcxproj index 92bbedba8eb6c229785b18a3939af892ac34fb74..d11b9087ee8167fc0c476be9c0122e0b5c3c5d7d 100644 --- a/Workspace_msvc/lib_com.vcxproj +++ b/Workspace_msvc/lib_com.vcxproj @@ -72,7 +72,7 @@ OldStyle Default %(DisableSpecificWarnings) - true + false _DEBUG;%(PreprocessorDefinitions) @@ -110,7 +110,7 @@ Default %(DisableSpecificWarnings) - true + false NDEBUG;%(PreprocessorDefinitions) @@ -308,4 +308,4 @@ - \ No newline at end of file + diff --git a/Workspace_msvc/lib_debug.vcxproj b/Workspace_msvc/lib_debug.vcxproj index 266fca4507934f13c4a75a89144a8926fb44b4c9..5e986bb167a861528853e3a295a87f0d46644177 100644 --- a/Workspace_msvc/lib_debug.vcxproj +++ b/Workspace_msvc/lib_debug.vcxproj @@ -68,7 +68,7 @@ OldStyle Default %(DisableSpecificWarnings) - true + false $(OutDir)$(TargetName).lib @@ -95,7 +95,7 @@ Default %(DisableSpecificWarnings) - true + false $(OutDir)$(TargetName).lib diff --git a/Workspace_msvc/lib_dec.vcxproj b/Workspace_msvc/lib_dec.vcxproj index 90f7ce7e697d196351a474272e52c079a877a25a..ea7ad4789712ec14eb05d5f7a5fd9531268420f6 100644 --- a/Workspace_msvc/lib_dec.vcxproj +++ b/Workspace_msvc/lib_dec.vcxproj @@ -82,7 +82,7 @@ OldStyle Default %(DisableSpecificWarnings) - true + false _DEBUG;%(PreprocessorDefinitions) @@ -125,7 +125,7 @@ Default %(DisableSpecificWarnings) - true + false NDEBUG;%(PreprocessorDefinitions) diff --git a/Workspace_msvc/lib_enc.vcxproj b/Workspace_msvc/lib_enc.vcxproj index 9763a0c49db159bc0a3ef02d630c694d8f065815..aac96693ceb036bf7249629684ab74d7a6b1d2c6 100644 --- a/Workspace_msvc/lib_enc.vcxproj +++ b/Workspace_msvc/lib_enc.vcxproj @@ -82,7 +82,7 @@ OldStyle Default %(DisableSpecificWarnings) - true + false _DEBUG;%(PreprocessorDefinitions) @@ -129,7 +129,7 @@ Default %(DisableSpecificWarnings) - true + false NDEBUG;%(PreprocessorDefinitions) diff --git a/Workspace_msvc/lib_lc3plus.vcxproj b/Workspace_msvc/lib_lc3plus.vcxproj index bb6b4d3c7d1121db5f1cb3ef4dc840a5928684b9..a2e45cb609fe6f11b23b55635ff59d69522ae5ea 100644 --- a/Workspace_msvc/lib_lc3plus.vcxproj +++ b/Workspace_msvc/lib_lc3plus.vcxproj @@ -72,7 +72,7 @@ 4305;4244;4996 OldStyle false - true + false Console @@ -91,7 +91,7 @@ true WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) 4244;4305;4996 - true + false Console diff --git a/Workspace_msvc/lib_rend.vcxproj b/Workspace_msvc/lib_rend.vcxproj index d0e0d4053fb5367448e4da729f53aad0a70ed2b9..de8e09d2838c7d3081f06b4f5a9502c347c01a08 100644 --- a/Workspace_msvc/lib_rend.vcxproj +++ b/Workspace_msvc/lib_rend.vcxproj @@ -82,7 +82,7 @@ OldStyle Default %(DisableSpecificWarnings) - true + false _DEBUG;%(PreprocessorDefinitions) @@ -125,7 +125,7 @@ Default %(DisableSpecificWarnings) - true + false NDEBUG;%(PreprocessorDefinitions) diff --git a/Workspace_msvc/lib_util.vcxproj b/Workspace_msvc/lib_util.vcxproj index de26f33a6d5671428cc2fddacb4e360db6073376..80e744c4f1d2f30dcf056057c8582d1ea550585c 100644 --- a/Workspace_msvc/lib_util.vcxproj +++ b/Workspace_msvc/lib_util.vcxproj @@ -67,7 +67,7 @@ OldStyle Default %(DisableSpecificWarnings) - true + false $(OutDir)$(TargetName).lib @@ -91,7 +91,7 @@ Default %(DisableSpecificWarnings) - true + false $(OutDir)$(TargetName).lib diff --git a/Workspace_msvc/renderer.vcxproj b/Workspace_msvc/renderer.vcxproj index 2bae53b431dbbaac23ad65573f6da7303593a216..83f6afc4dc365881f6710241d9fa2f6e6f896777 100644 --- a/Workspace_msvc/renderer.vcxproj +++ b/Workspace_msvc/renderer.vcxproj @@ -79,7 +79,7 @@ OldStyle Default %(DisableSpecificWarnings) - true + false _DEBUG;%(PreprocessorDefinitions) @@ -127,7 +127,7 @@ Default %(DisableSpecificWarnings) - true + false NDEBUG;%(PreprocessorDefinitions)