diff --git a/.gitea/workflows/ci.yml b/.gitea/workflows/ci.yml index 54770d3..1d944aa 100644 --- a/.gitea/workflows/ci.yml +++ b/.gitea/workflows/ci.yml @@ -21,11 +21,20 @@ jobs: include: - build_type: Release conan_profile: ./ConanProfiles/clang + name: Release - build_type: Debug conan_profile: ./ConanProfiles/clangd + name: Debug (ASAN, LSAN, UBSAN) + - build_type: Debug + conan_profile: ./ConanProfiles/clangd2 + name: Debug (TSAN, MSAN) - build_type: RelWithDebInfo conan_profile: ./ConanProfiles/clangd - name: "Build & Test ${{ matrix.build_type }}" + name: RelWithDebInfo (ASAN, LSAN, UBSAN) + - build_type: RelWithDebInfo + conan_profile: ./ConanProfiles/clangd2 + name: RelWithDebInfo (TSAN, MSAN) + name: "Build & Test ${{ matrix.name }}" steps: - name: Install Node.js run: apt-get update && apt-get install -y nodejs @@ -35,9 +44,6 @@ jobs: with: submodules: recursive - - name: Show ccache stats before - run: ccache --zero-stats - - name: Build run: | conan profile detect @@ -45,9 +51,6 @@ jobs: cmake -S . -B ./build/${{ matrix.build_type }} --toolchain ./build/${{ matrix.build_type }}/generators/conan_toolchain.cmake -DCMAKE_BUILD_TYPE=${{ matrix.build_type }} -G "Ninja" cmake --build build/${{ matrix.build_type }} --parallel $(nproc) - - name: Show ccache stats after - run: ccache --show-stats - - name: Unit Tests run: | cd ./build/${{ matrix.build_type }} diff --git a/ConanProfiles/clangd b/ConanProfiles/clangd index 1eb8657..5219090 100644 --- a/ConanProfiles/clangd +++ b/ConanProfiles/clangd @@ -11,8 +11,8 @@ build_type=Debug [conf] tools.cmake.cmaketoolchain:extra_variables={'CMAKE_CXX_COMPILER_LAUNCHER': 'ccache', 'CMAKE_C_COMPILER_LAUNCHER': 'ccache'} -tools.cmake.cmaketoolchain:extra_variables*={'BIN2CPP_CXX_FLAGS': {'value': '-Wall;-Wextra;-Wpedantic;-Werror;-fsanitize=address,undefined;-fno-sanitize-recover=all', 'cache': True, 'type': 'STRING', 'docstring': 'CXX flags for Bin2CPP', 'force': True}} -tools.cmake.cmaketoolchain:extra_variables*={'BIN2CPP_EXE_LINK_FLAGS': {'value': '-fsanitize=address,undefined', 'cache': True, 'type': 'STRING', 'docstring': 'EXE link flags for Bin2CPP', 'force': True}} +tools.cmake.cmaketoolchain:extra_variables*={'BIN2CPP_CXX_FLAGS': {'value': '-Wall;-Wextra;-Wpedantic;-Werror;-fsanitize=address,undefined,leak;-fno-sanitize-recover=all', 'cache': True, 'type': 'STRING', 'docstring': 'CXX flags for Bin2CPP', 'force': True}} +tools.cmake.cmaketoolchain:extra_variables*={'BIN2CPP_EXE_LINK_FLAGS': {'value': '-fsanitize=address,undefined,leak', 'cache': True, 'type': 'STRING', 'docstring': 'EXE link flags for Bin2CPP', 'force': True}} tools.system.package_manager:mode=install tools.system.package_manager:sudo=True diff --git a/ConanProfiles/clangd2 b/ConanProfiles/clangd2 new file mode 100644 index 0000000..fddd5be --- /dev/null +++ b/ConanProfiles/clangd2 @@ -0,0 +1,32 @@ +[settings] +os=Linux +arch=x86_64 +compiler=clang +compiler.version=20 +compiler.libcxx=libstdc++11 +compiler.cppstd=20 +compiler.cstd=17 +compiler.runtime=static +build_type=Debug + +[conf] +tools.cmake.cmaketoolchain:extra_variables={'CMAKE_CXX_COMPILER_LAUNCHER': 'ccache', 'CMAKE_C_COMPILER_LAUNCHER': 'ccache'} +tools.cmake.cmaketoolchain:extra_variables*={'BIN2CPP_CXX_FLAGS': {'value': '-Wall;-Wextra;-Wpedantic;-Werror;-fsanitize=memory,thread;-fno-sanitize-recover=all', 'cache': True, 'type': 'STRING', 'docstring': 'CXX flags for Bin2CPP', 'force': True}} +tools.cmake.cmaketoolchain:extra_variables*={'BIN2CPP_EXE_LINK_FLAGS': {'value': '-fsanitize=memory,thread', 'cache': True, 'type': 'STRING', 'docstring': 'EXE link flags for Bin2CPP', 'force': True}} + +tools.system.package_manager:mode=install +tools.system.package_manager:sudo=True + +tools.build:exelinkflags=["-fuse-ld=mold"] +tools.build:sharedlinkflags=["-fuse-ld=mold"] + +tools.cmake.cmaketoolchain:generator=Ninja + +tools.build:compiler_executables={"c": "clang", "cpp": "clang++"} + +[tool_requires] +!cmake/*: cmake/[>=4.2] + +[options] +Bin2CPP/*:asan=True +Bin2CPP/*:build_tests=True \ No newline at end of file