From 3f3bfcf3cda9e92cf8680d5c991dc373da60607d Mon Sep 17 00:00:00 2001 From: Eduardo Arias Date: Fri, 24 May 2024 10:08:53 -0300 Subject: [PATCH] Update to build libModSecurity with std C++20 --- README.md | 2 +- build/win32/CMakeLists.txt | 2 +- configure.ac | 2 +- vcbuild.bat | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 704967d6ed..762db9b086 100644 --- a/README.md +++ b/README.md @@ -81,7 +81,7 @@ Windows build information can be found [here](build/win32/README.md). ## Dependencies -This library is written in C++ using the C++17 standards. It also uses Flex +This library is written in C++ using the C++20 standards. It also uses Flex and Yacc to produce the “Sec Rules Language” parser. Other, mandatory dependencies include YAJL, as ModSecurity uses JSON for producing logs and its testing framework, libpcre (not yet mandatory) for processing regular expressions in SecRules, and libXML2 (not yet mandatory) which is used for parsing XML requests. All others dependencies are related to operators specified within SecRules or configuration directives and may not be required for compilation. A short list of such dependencies is as follows: diff --git a/build/win32/CMakeLists.txt b/build/win32/CMakeLists.txt index bdb9a45f22..8ebd8e0817 100644 --- a/build/win32/CMakeLists.txt +++ b/build/win32/CMakeLists.txt @@ -77,7 +77,7 @@ project(libModSecurity CXX ) -set(CMAKE_CXX_STANDARD 17) +set(CMAKE_CXX_STANDARD 20) set(CMAKE_CXX_STANDARD_REQUIRED On) set(CMAKE_CXX_EXTENSIONS Off) diff --git a/configure.ac b/configure.ac index 3a0fbb4855..66627722a6 100644 --- a/configure.ac +++ b/configure.ac @@ -53,7 +53,7 @@ PKG_PROG_PKG_CONFIG # Set C++ standard version and check if compiler supports it. -AX_CXX_COMPILE_STDCXX(17, noext, mandatory) +AX_CXX_COMPILE_STDCXX(20, noext, mandatory) # Check for libinjection if ! test -f "${srcdir}/others/libinjection/src/libinjection_html5.c"; then diff --git a/vcbuild.bat b/vcbuild.bat index b24572abae..6fce6a7c3c 100644 --- a/vcbuild.bat +++ b/vcbuild.bat @@ -20,7 +20,7 @@ if "%3"=="USE_ASAN" ( ) cd build\win32 -conan install . -s compiler.cppstd=17 %CI_ASAN% --output-folder=build --build=missing --settings=build_type=%build_type% --settings=arch=%arch% +conan install . -s compiler.cppstd=20 %CI_ASAN% --output-folder=build --build=missing --settings=build_type=%build_type% --settings=arch=%arch% cd build cmake --fresh .. -G "Visual Studio 17 2022" -DCMAKE_TOOLCHAIN_FILE=conan_toolchain.cmake -DUSE_ASAN=%ASAN_FLAG% %4 %5 %6 %7 %8 %9 cmake --build . --config %build_type%