From 000bde57b8056b41fe5a71fad0c44e53cafe9b8d Mon Sep 17 00:00:00 2001 From: Romain BOULLARD Date: Fri, 30 Jan 2026 22:51:45 +0100 Subject: [PATCH 1/3] clang coverage --- profiles/clang_coverage | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 profiles/clang_coverage diff --git a/profiles/clang_coverage b/profiles/clang_coverage new file mode 100644 index 0000000..c4ece02 --- /dev/null +++ b/profiles/clang_coverage @@ -0,0 +1,26 @@ +[settings] +os=Linux +arch=x86_64 +compiler=clang +compiler.version=21 +compiler.libcxx=libstdc++11 +compiler.cppstd=20 +compiler.cstd=17 +build_type=Debug +[conf] +tools.cmake.cmaketoolchain:extra_variables={'CMAKE_CXX_COMPILER_LAUNCHER': 'ccache', 'CMAKE_C_COMPILER_LAUNCHER': 'ccache'} +tools.cmake.cmaketoolchain:generator=Ninja +tools.system.package_manager:mode=install +tools.system.package_manager:sudo=True +tools.build:compiler_executables={"c": "clang", "cpp": "clang++"} + +tools.build:exelinkflags=["-fuse-ld=mold", "-fprofile-instr-generate"] +tools.build:sharedlinkflags=["-fuse-ld=mold", "-fprofile-instr-generate"] + +tools.build:cflags=[] +tools.build:cxxflags=[] +&:tools.build:cflags=["-Wall", "-Wextra", "-Wpedantic", "-Werror", "-ffast-math", "-fprofile-instr-generate", "-fcoverage-mapping"] +&:tools.build:cxxflags=["-Wall", "-Wextra", "-Wpedantic", "-Werror", "-fno-exceptions", "-fno-rtti", "-ffast-math", "-fprofile-instr-generate", "-fcoverage-mapping"] + +[tool_requires] +!cmake/*: cmake/[>=4.2] \ No newline at end of file -- 2.49.1 From ea9149fde3ad0b074babf4ca5d2d02a73bd46bdb Mon Sep 17 00:00:00 2001 From: Romain BOULLARD Date: Sat, 31 Jan 2026 10:31:39 +0100 Subject: [PATCH 2/3] use toolchain variable when possible --- profiles/clang | 4 ++-- profiles/clang_coverage | 13 ++++++------- profiles/clang_dependencies | 24 ------------------------ profiles/clang_dependenciesd | 24 ------------------------ profiles/clangd | 7 ++----- profiles/msvc | 7 ++----- profiles/msvcd | 7 ++----- 7 files changed, 14 insertions(+), 72 deletions(-) delete mode 100644 profiles/clang_dependencies delete mode 100644 profiles/clang_dependenciesd diff --git a/profiles/clang b/profiles/clang index fad3d6b..bdd243e 100644 --- a/profiles/clang +++ b/profiles/clang @@ -9,6 +9,8 @@ compiler.cstd=17 build_type=Release [conf] tools.cmake.cmaketoolchain:extra_variables={'CMAKE_CXX_COMPILER_LAUNCHER': 'ccache', 'CMAKE_C_COMPILER_LAUNCHER': 'ccache'} +tools.cmake.cmaketoolchain:extra_variables*={'BIGFOOT_CXX_FLAGS': {'value': '-Wall;-Wextra;-Wpedantic;-Werror;-ffast-math;-fno-exceptions;-fno-rtti', 'cache':True, 'type':'STRING', 'docstring':'CXX flags for Bigfoot', 'force':True}} +tools.cmake.cmaketoolchain:extra_variables*={'BIGFOOT_C_FLAGS': {'value': '-Wall;-Wextra;-Wpedantic;-Werror;-ffast-math', 'cache':True, 'type':'STRING', 'docstring':'C flags for Bigfoot', 'force':True}} tools.cmake.cmaketoolchain:generator=Ninja tools.system.package_manager:mode=install tools.system.package_manager:sudo=True @@ -19,8 +21,6 @@ tools.build:sharedlinkflags=["-fuse-ld=mold", "-flto"] tools.build:cflags=["-flto"] tools.build:cxxflags=["-flto"] -&:tools.build:cflags=["-flto", "-Wall", "-Wextra", "-Wpedantic", "-Werror", "-ffast-math"] -&:tools.build:cxxflags=["-flto", "-Wall", "-Wextra", "-Wpedantic", "-Werror", "-fno-exceptions", "-fno-rtti", "-ffast-math"] [tool_requires] !cmake/*: cmake/[>=4.2] \ No newline at end of file diff --git a/profiles/clang_coverage b/profiles/clang_coverage index c4ece02..4abfa69 100644 --- a/profiles/clang_coverage +++ b/profiles/clang_coverage @@ -9,18 +9,17 @@ compiler.cstd=17 build_type=Debug [conf] tools.cmake.cmaketoolchain:extra_variables={'CMAKE_CXX_COMPILER_LAUNCHER': 'ccache', 'CMAKE_C_COMPILER_LAUNCHER': 'ccache'} +tools.cmake.cmaketoolchain:extra_variables*={'BIGFOOT_CXX_FLAGS': {'value': '-Wall;-Wextra;-Wpedantic;-Werror;-ffast-math;-fno-exceptions;-fno-rtti;-fprofile-instr-generate;-fcoverage-mapping', 'cache':True, 'type':'STRING', 'docstring':'CXX flags for Bigfoot', 'force':True}} +tools.cmake.cmaketoolchain:extra_variables*={'BIGFOOT_C_FLAGS': {'value': '-Wall;-Wextra;-Wpedantic;-Werror;-ffast-math;-fprofile-instr-generate;-fcoverage-mapping', 'cache':True, 'type':'STRING', 'docstring':'C flags for Bigfoot', 'force':True}} +tools.cmake.cmaketoolchain:extra_variables*={'BIGFOOT_EXE_LINK_FLAGS': {'value': '-fprofile-instr-generate', 'cache':True, 'type':'STRING', 'docstring':'EXE link flags for Bigfoot', 'force':True}} +tools.cmake.cmaketoolchain:extra_variables*={'BIGFOOT_SHARED_LINK_FLAGS': {'value': '--fprofile-instr-generate', 'cache':True, 'type':'STRING', 'docstring':'SHARED link flags for Bigfoot', 'force':True}} tools.cmake.cmaketoolchain:generator=Ninja tools.system.package_manager:mode=install tools.system.package_manager:sudo=True tools.build:compiler_executables={"c": "clang", "cpp": "clang++"} -tools.build:exelinkflags=["-fuse-ld=mold", "-fprofile-instr-generate"] -tools.build:sharedlinkflags=["-fuse-ld=mold", "-fprofile-instr-generate"] - -tools.build:cflags=[] -tools.build:cxxflags=[] -&:tools.build:cflags=["-Wall", "-Wextra", "-Wpedantic", "-Werror", "-ffast-math", "-fprofile-instr-generate", "-fcoverage-mapping"] -&:tools.build:cxxflags=["-Wall", "-Wextra", "-Wpedantic", "-Werror", "-fno-exceptions", "-fno-rtti", "-ffast-math", "-fprofile-instr-generate", "-fcoverage-mapping"] +tools.build:exelinkflags=["-fuse-ld=mold"] +tools.build:sharedlinkflags=["-fuse-ld=mold"] [tool_requires] !cmake/*: cmake/[>=4.2] \ No newline at end of file diff --git a/profiles/clang_dependencies b/profiles/clang_dependencies deleted file mode 100644 index 6a2ab6a..0000000 --- a/profiles/clang_dependencies +++ /dev/null @@ -1,24 +0,0 @@ -[settings] -os=Linux -arch=x86_64 -compiler=clang -compiler.version=21 -compiler.libcxx=libstdc++11 -compiler.cppstd=20 -compiler.cstd=17 -build_type=Release -[conf] -tools.cmake.cmaketoolchain:extra_variables={'CMAKE_CXX_COMPILER_LAUNCHER': 'ccache', 'CMAKE_C_COMPILER_LAUNCHER': 'ccache'} -tools.cmake.cmaketoolchain:generator=Ninja -tools.system.package_manager:mode=install -tools.system.package_manager:sudo=True -tools.build:compiler_executables={"c": "clang", "cpp": "clang++"} - -tools.build:exelinkflags=["-fuse-ld=mold", "-flto"] -tools.build:sharedlinkflags=["-fuse-ld=mold", "-flto"] - -tools.build:cflags=["-flto"] -tools.build:cxxflags=["-flto"] - -[tool_requires] -!cmake/*: cmake/[>=4.2] \ No newline at end of file diff --git a/profiles/clang_dependenciesd b/profiles/clang_dependenciesd deleted file mode 100644 index 914491b..0000000 --- a/profiles/clang_dependenciesd +++ /dev/null @@ -1,24 +0,0 @@ -[settings] -os=Linux -arch=x86_64 -compiler=clang -compiler.version=21 -compiler.libcxx=libstdc++11 -compiler.cppstd=20 -compiler.cstd=17 -build_type=Debug -[conf] -tools.cmake.cmaketoolchain:extra_variables={'CMAKE_CXX_COMPILER_LAUNCHER': 'ccache', 'CMAKE_C_COMPILER_LAUNCHER': 'ccache'} -tools.cmake.cmaketoolchain:generator=Ninja -tools.system.package_manager:mode=install -tools.system.package_manager:sudo=True -tools.build:compiler_executables={"c": "clang", "cpp": "clang++"} - -tools.build:exelinkflags=["-fuse-ld=mold"] -tools.build:sharedlinkflags=["-fuse-ld=mold"] - -tools.build:cflags=[] -tools.build:cxxflags=[] - -[tool_requires] -!cmake/*: cmake/[>=4.2] \ No newline at end of file diff --git a/profiles/clangd b/profiles/clangd index 4507977..0d16188 100644 --- a/profiles/clangd +++ b/profiles/clangd @@ -9,6 +9,8 @@ compiler.cstd=17 build_type=Debug [conf] tools.cmake.cmaketoolchain:extra_variables={'CMAKE_CXX_COMPILER_LAUNCHER': 'ccache', 'CMAKE_C_COMPILER_LAUNCHER': 'ccache'} +tools.cmake.cmaketoolchain:extra_variables*={'BIGFOOT_CXX_FLAGS': {'value': '-Wall;-Wextra;-Wpedantic;-Werror;-ffast-math;-fno-exceptions;-fno-rtti', 'cache':True, 'type':'STRING', 'docstring':'CXX flags for Bigfoot', 'force':True}} +tools.cmake.cmaketoolchain:extra_variables*={'BIGFOOT_C_FLAGS': {'value': '-Wall;-Wextra;-Wpedantic;-Werror;-ffast-math', 'cache':True, 'type':'STRING', 'docstring':'C flags for Bigfoot', 'force':True}} tools.cmake.cmaketoolchain:generator=Ninja tools.system.package_manager:mode=install tools.system.package_manager:sudo=True @@ -17,10 +19,5 @@ tools.build:compiler_executables={"c": "clang", "cpp": "clang++"} tools.build:exelinkflags=["-fuse-ld=mold"] tools.build:sharedlinkflags=["-fuse-ld=mold"] -tools.build:cflags=[] -tools.build:cxxflags=[] -&:tools.build:cflags=["-Wall", "-Wextra", "-Wpedantic", "-Werror", "-ffast-math"] -&:tools.build:cxxflags=["-Wall", "-Wextra", "-Wpedantic", "-Werror", "-fno-exceptions", "-fno-rtti", "-ffast-math"] - [tool_requires] !cmake/*: cmake/[>=4.2] \ No newline at end of file diff --git a/profiles/msvc b/profiles/msvc index f85fa24..1d54843 100644 --- a/profiles/msvc +++ b/profiles/msvc @@ -8,16 +8,13 @@ compiler.cstd=17 compiler.runtime=dynamic build_type=Release [conf] +tools.cmake.cmaketoolchain:extra_variables*={'BIGFOOT_C_FLAGS': {'value': '/W4;/WX;/fp:fast' 'cache':True, 'type':'STRING', 'docstring':'CXX flags for Bigfoot', 'force':True}} +tools.cmake.cmaketoolchain:extra_variables*={'BIGFOOT_CXX_FLAGS': {'value': '/W4;/WX;/EHs-;/D_HAS_EXCEPTIONS=0;/GR-;/fp:fast', 'cache':True, 'type':'STRING', 'docstring':'C flags for Bigfoot', 'force':True}} tools.cmake.cmaketoolchain:user_toolchain+={{profile_dir}}/msvc_ccache.cmake tools.cmake.cmaketoolchain:user_toolchain+={{profile_dir}}/msvc_remove_ehsc.cmake -tools.build:exelinkflags=["/LTCG", "/INCREMENTAL:NO"] -tools.build:sharedlinkflags=["/LTCG", "/INCREMENTAL:NO"] - tools.build:cflags=["/Zc:preprocessor", "/Zc:__STDC__", "/D_CRT_DECLARE_NONSTDC_NAMES=1", "/GL"] tools.build:cxxflags=["/Zc:preprocessor", "/Zc:__cplusplus", "/Zc:enumTypes", "/Zc:templateScope", "/Zc:strictStrings", "/Zc:rvalueCast", "/Zc:hiddenFriend", "/Zc:externConstexpr", "/Zc:ternary", "/GL"] -&:tools.build:cflags=["/Zc:preprocessor", "/Zc:__STDC__", "/W4", "/WX", "/fp:fast", "/GL"] -&:tools.build:cxxflags=["/Zc:preprocessor", "/Zc:__cplusplus", "/Zc:enumTypes", "/Zc:templateScope", "/Zc:strictStrings", "/Zc:rvalueCast", "/Zc:hiddenFriend", "/Zc:externConstexpr", "/Zc:ternary", "/W4", "/WX", "/EHs-", "/D_HAS_EXCEPTIONS=0", "/GR-", "/fp:fast", "/GL"] [tool_requires] !cmake/*: cmake/[>=4.2] \ No newline at end of file diff --git a/profiles/msvcd b/profiles/msvcd index deec227..e4f8a4a 100644 --- a/profiles/msvcd +++ b/profiles/msvcd @@ -8,16 +8,13 @@ compiler.cstd=17 compiler.runtime=dynamic build_type=Debug [conf] +tools.cmake.cmaketoolchain:extra_variables*={'BIGFOOT_C_FLAGS': {'value': '/W4;/WX;/fp:fast' 'cache':True, 'type':'STRING', 'docstring':'CXX flags for Bigfoot', 'force':True}} +tools.cmake.cmaketoolchain:extra_variables*={'BIGFOOT_CXX_FLAGS': {'value': '/W4;/WX;/EHs-;/D_HAS_EXCEPTIONS=0;/GR-;/fp:fast', 'cache':True, 'type':'STRING', 'docstring':'C flags for Bigfoot', 'force':True}} tools.cmake.cmaketoolchain:user_toolchain+={{profile_dir}}/msvc_ccache.cmake tools.cmake.cmaketoolchain:user_toolchain+={{profile_dir}}/msvc_remove_ehsc.cmake -tools.build:exelinkflags=[] -tools.build:sharedlinkflags=[] - tools.build:cflags=["/Zc:preprocessor", "/Zc:__STDC__", "/D_CRT_DECLARE_NONSTDC_NAMES=1"] tools.build:cxxflags=["/Zc:preprocessor", "/Zc:__cplusplus", "/Zc:enumTypes", "/Zc:templateScope", "/Zc:strictStrings", "/Zc:rvalueCast", "/Zc:hiddenFriend", "/Zc:externConstexpr", "/Zc:ternary"] -&:tools.build:cflags=["/Zc:preprocessor", "/Zc:__STDC__", "/W4", "/WX", "/fp:fast"] -&:tools.build:cxxflags=["/Zc:preprocessor", "/Zc:__cplusplus", "/Zc:enumTypes", "/Zc:templateScope", "/Zc:strictStrings", "/Zc:rvalueCast", "/Zc:hiddenFriend", "/Zc:externConstexpr", "/Zc:ternary", "/W4", "/WX", "/EHs-", "/D_HAS_EXCEPTIONS=0", "/GR-", "/fp:fast"] [tool_requires] !cmake/*: cmake/[>=4.2] \ No newline at end of file -- 2.49.1 From fe70b361e507505b1777f7afb06cadf7dde3215e Mon Sep 17 00:00:00 2001 From: Romain BOULLARD Date: Sat, 31 Jan 2026 10:34:48 +0100 Subject: [PATCH 3/3] bring back lto for msvc --- profiles/msvc | 3 +++ 1 file changed, 3 insertions(+) diff --git a/profiles/msvc b/profiles/msvc index 1d54843..8124439 100644 --- a/profiles/msvc +++ b/profiles/msvc @@ -13,6 +13,9 @@ tools.cmake.cmaketoolchain:extra_variables*={'BIGFOOT_CXX_FLAGS': {'value': '/W4 tools.cmake.cmaketoolchain:user_toolchain+={{profile_dir}}/msvc_ccache.cmake tools.cmake.cmaketoolchain:user_toolchain+={{profile_dir}}/msvc_remove_ehsc.cmake +tools.build:exelinkflags=["/LTCG", "/INCREMENTAL:NO"] +tools.build:sharedlinkflags=["/LTCG", "/INCREMENTAL:NO"] + tools.build:cflags=["/Zc:preprocessor", "/Zc:__STDC__", "/D_CRT_DECLARE_NONSTDC_NAMES=1", "/GL"] tools.build:cxxflags=["/Zc:preprocessor", "/Zc:__cplusplus", "/Zc:enumTypes", "/Zc:templateScope", "/Zc:strictStrings", "/Zc:rvalueCast", "/Zc:hiddenFriend", "/Zc:externConstexpr", "/Zc:ternary", "/GL"] -- 2.49.1