diff --git a/.clang-tidy b/.clang-tidy index a2abdb8f..23a628bd 100644 --- a/.clang-tidy +++ b/.clang-tidy @@ -29,6 +29,7 @@ -readability-container-data-pointer, -readability-suspicious-call-argument, -readability-implicit-bool-conversion, + -readability-uppercase-literal-suffix, -bugprone-easily-swappable-parameters, -bugprone-exception-escape, -cppcoreguidelines-special-member-functions, diff --git a/.github/workflows/linux.yml b/.github/workflows/linux.yml index c4c131e6..7df8f4b7 100644 --- a/.github/workflows/linux.yml +++ b/.github/workflows/linux.yml @@ -10,21 +10,17 @@ jobs: matrix: build-type: [ Release, RelWithDebInfo ] compiler: [ - { cxx: g++-11, pkgs: gcc-11 libtbb-dev }, - #{ cxx: g++-12, pkgs: gcc-12 libtbb-dev }, # disabled because of warnings in the std library + { cxx: g++-11, pkgs: g++-11 libtbb-dev }, + { cxx: g++-12, pkgs: g++-12 libtbb-dev }, { cxx: clang++-14, pkgs: clang-14 libtbb-dev }, { cxx: clang++-15, pkgs: clang-15 libtbb-dev }, ] - lib-type: [ - { name: Static, cmake-flag: "OFF" }, - { name: Shared, cmake-flag: "ON" }, - ] defaults: run: working-directory: ${{ github.workspace }}/build - name: ${{ matrix.compiler.cxx }}, ${{ matrix.build-type }}, ${{ matrix.lib-type.name }} + name: ${{ matrix.compiler.cxx }}, ${{ matrix.build-type }} steps: - name: checkout-repo @@ -41,7 +37,7 @@ jobs: - name: setup-build env: CXX: ${{ matrix.compiler.cxx }} - run: cmake .. -DCMAKE_BUILD_TYPE=${{ matrix.build-type }} -DGAPP_LINK_TBB=ON -DBUILD_SHARED_LIBS=${{ matrix.lib-type.cmake-flag }} + run: cmake .. -DCMAKE_BUILD_TYPE=${{ matrix.build-type }} -DGAPP_LINK_TBB=ON -DBUILD_SHARED_LIBS=OFF - name: build run: cmake --build . --parallel diff --git a/CMakeLists.txt b/CMakeLists.txt index 3b8df400..46e625c8 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -101,7 +101,8 @@ else() # GNU style compiler interface # gcc specific options if(CMAKE_CXX_COMPILER_ID MATCHES "GNU") - set(GAPP_WARN_FLAGS "${GAPP_WARN_FLAGS} -Wlogical-op") + # https://gcc.gnu.org/bugzilla//show_bug.cgi?id=71434 with gcc 12 even though it's a system header + pragma diagnostic doesn't work + set(GAPP_WARN_FLAGS "${GAPP_WARN_FLAGS} -Wlogical-op -Wno-maybe-uninitialized") endif() # clang specific options if(CMAKE_CXX_COMPILER_ID MATCHES "Clang") diff --git a/build/install.sh b/build/install.sh index c03c0ccb..3422d0cd 100644 --- a/build/install.sh +++ b/build/install.sh @@ -8,16 +8,16 @@ BUILD_DIR=$(dirname $(realpath "$0")) echo -e "\nThe build directory is ${BUILD_DIR}.\n" echo -e "Installing Debug configuration.\n" -cmake $BUILD_DIR/.. -DCMAKE_BUILD_TYPE=Debug -DBUILD_TESTING=OFF "$@" +cmake -S $BUILD_DIR/.. -B $BUILD_DIR -DCMAKE_BUILD_TYPE=Debug -DBUILD_TESTING=OFF "$@" cmake --build $BUILD_DIR --config Debug --parallel cmake --install $BUILD_DIR --config Debug echo -e "Installing RelWithDebInfo configuration.\n" -cmake $BUILD_DIR/.. -DCMAKE_BUILD_TYPE=RelWithDebInfo -DBUILD_TESTING=OFF "$@" +cmake -S $BUILD_DIR/.. -B $BUILD_DIR -DCMAKE_BUILD_TYPE=RelWithDebInfo -DBUILD_TESTING=OFF "$@" cmake --build $BUILD_DIR --config RelWithDebInfo --parallel cmake --install $BUILD_DIR --config RelWithDebInfo echo -e "Installing Release configuration.\n" -cmake $BUILD_DIR/.. -DCMAKE_BUILD_TYPE=Release -DBUILD_TESTING=OFF "$@" +cmake -S $BUILD_DIR/.. -B $BUILD_DIR -DCMAKE_BUILD_TYPE=Release -DBUILD_TESTING=OFF "$@" cmake --build $BUILD_DIR --config Release --parallel cmake --install $BUILD_DIR --config Release diff --git a/build/install_catch.sh b/build/install_catch.sh index 1c5a3163..74cf562f 100644 --- a/build/install_catch.sh +++ b/build/install_catch.sh @@ -1,10 +1,26 @@ #!/bin/sh -git clone https://github.com/catchorg/Catch2.git -cd Catch2 -git checkout tags/v3.3.0 -cmake -Bbuild -S. -DBUILD_TESTING=OFF -cmake --build build/ --target install --config Debug -cmake --build build/ --target install --config Release -cmake --build build/ --target install --config RelWithDebInfo -cd .. \ No newline at end of file +echo -e "Installing Catch2...\n" + +git clone -b v3.3.0 https://github.com/catchorg/Catch2.git +mkdir Catch2/build + +cmake --version + +BUILD_DIR=$(dirname $(realpath "$0"))/Catch2/build +echo -e "\nThe build directory is ${BUILD_DIR}.\n" + +echo -e "Installing Debug configuration.\n" +cmake -S $BUILD_DIR/.. -B $BUILD_DIR -DCMAKE_BUILD_TYPE=Debug -DBUILD_TESTING=OFF "$@" +cmake --build $BUILD_DIR --config Debug --parallel +cmake --install $BUILD_DIR --config Debug + +echo -e "Installing RelWithDebInfo configuration.\n" +cmake -S $BUILD_DIR/.. -B $BUILD_DIR -DCMAKE_BUILD_TYPE=RelWithDebInfo -DBUILD_TESTING=OFF "$@" +cmake --build $BUILD_DIR --config RelWithDebInfo --parallel +cmake --install $BUILD_DIR --config RelWithDebInfo + +echo -e "Installing Release configuration.\n" +cmake -S $BUILD_DIR/.. -B $BUILD_DIR -DCMAKE_BUILD_TYPE=Release -DBUILD_TESTING=OFF "$@" +cmake --build $BUILD_DIR --config Release --parallel +cmake --install $BUILD_DIR --config Release