Compare commits

...

1 Commits

Author SHA1 Message Date
5bcacdbc49 Mimalloc Asan (#7)
All checks were successful
Conan Packaging / Package cli11/2.6.1 (push) Successful in 19s
Conan Packaging / Package eabase/01082025 (push) Successful in 14s
Conan Packaging / Package eastl/3.27.01 (push) Successful in 20s
Conan Packaging / Package flatbuffers/25.12.19 (push) Successful in 1m10s
Conan Packaging / Package lodepng/cci.20260210 (push) Successful in 19s
Conan Packaging / Package meshoptimizer/1.0 (push) Successful in 18s
Conan Packaging / Package assimp/6.0.4 (push) Successful in 2m52s
Conan Packaging / Package mimalloc/3.2.8 (push) Successful in 24s
Conan Packaging / Package rapidhash/3.0 (push) Successful in 13s
Conan Packaging / Package unordered_dense/4.8.1 (push) Successful in 19s
Conan Packaging / Package vulkan-memory-allocator/3.3.0 (push) Successful in 19s
Conan Packaging / Package pixelmatch-cpp17/1.0.3 (push) Successful in 18s
Conan Packaging / Package sqlite3/3.51.2 (push) Successful in 41s
Conan Packaging / Package stduuid/1.2.3 (push) Successful in 18s
Conan Packaging / Package vulkan-utility-libraries/1.4.313.0 (push) Successful in 19s
Conan Packaging / Package shaderc/2025.3 (push) Successful in 3m50s
Conan Packaging / Package vulkan-validationlayers/1.4.313.0 (push) Successful in 7m30s
Reviewed-on: #7
Co-authored-by: Romain BOULLARD <romain.boullard@protonmail.com>
Co-committed-by: Romain BOULLARD <romain.boullard@protonmail.com>
2026-02-20 18:41:41 +00:00
8 changed files with 150 additions and 4 deletions

View File

@@ -64,7 +64,7 @@ jobs:
--version=${{ matrix.package.version }} \
--user=bigfootdev \
--channel=${{ env.BRANCH_NAME }} \
-pr:b=clang -pr:h=clang \
-pr:b=./ConanProfiles/clang -pr:h=./ConanProfiles/clang \
--build=missing --remote=bigfootpackages
CONAN_LOGIN_USERNAME=${ARTIFACTORY_USER} \

26
ConanProfiles/clang Normal file
View File

@@ -0,0 +1,26 @@
[settings]
os=Linux
arch=x86_64
compiler=clang
compiler.version=20
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: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
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]

View File

@@ -0,0 +1,25 @@
[settings]
os=Linux
arch=x86_64
compiler=clang
compiler.version=20
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:extra_variables*={'BIGFOOT_CXX_FLAGS': {'value': '-Wall;-Wextra;-Wpedantic;-Werror;-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;-fprofile-instr-generate;-fcoverage-mapping', 'cache': True, 'type': 'STRING', 'docstring': 'C 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: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: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"]
[tool_requires]
!cmake/*: cmake/[>=4.2]

23
ConanProfiles/clangd Normal file
View File

@@ -0,0 +1,23 @@
[settings]
os=Linux
arch=x86_64
compiler=clang
compiler.version=20
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: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
tools.build:compiler_executables={"c": "clang", "cpp": "clang++"}
tools.build:exelinkflags=["-fuse-ld=mold"]
tools.build:sharedlinkflags=["-fuse-ld=mold"]
[tool_requires]
!cmake/*: cmake/[>=4.2]

22
ConanProfiles/msvc Normal file
View File

@@ -0,0 +1,22 @@
[settings]
os=Windows
arch=x86_64
compiler=msvc
compiler.version=195
compiler.cppstd=20
compiler.cstd=17
compiler.runtime=dynamic
build_type=Release
[conf]
tools.cmake.cmaketoolchain:extra_variables={'BIGFOOT_CXX_FLAGS': {'value': '/W4;/WX;/EHs-;/D_HAS_EXCEPTIONS=0;/GR-;/fp:fast', 'cache': True, 'type': 'STRING', 'docstring': 'CXX flags for Bigfoot', 'force': True}}
tools.cmake.cmaketoolchain:extra_variables*={'BIGFOOT_C_FLAGS': {'value': '/W4;/WX;/fp:fast', 'cache': True, 'type': 'STRING', 'docstring': 'C flags for Bigfoot', 'force': True}}
tools.cmake.cmaketoolchain:user_toolchain+={{profile_dir}}/msvc_ccache.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"]
[tool_requires]
!cmake/*: cmake/[>=4.2]

View File

@@ -0,0 +1,19 @@
# https://github.com/ccache/ccache/wiki/MS-Visual-Studio#usage-with-cmake
find_program(ccache_exe ccache)
if(ccache_exe)
file(COPY_FILE
${ccache_exe} ${CMAKE_BINARY_DIR}/cl.exe
ONLY_IF_DIFFERENT)
# By default Visual Studio generators will use /Zi which is not compatible
# with ccache, so tell Visual Studio to use /Z7 instead.
message(STATUS "Setting MSVC debug information format to 'Embedded'")
set(CMAKE_MSVC_DEBUG_INFORMATION_FORMAT "$<$<CONFIG:Debug,RelWithDebInfo>:Embedded>")
set(CMAKE_VS_GLOBALS
"CLToolExe=cl.exe"
"CLToolPath=${CMAKE_BINARY_DIR}"
"UseMultiToolTask=true"
)
endif()

19
ConanProfiles/msvcd Normal file
View File

@@ -0,0 +1,19 @@
[settings]
os=Windows
arch=x86_64
compiler=msvc
compiler.version=195
compiler.cppstd=20
compiler.cstd=17
compiler.runtime=dynamic
build_type=Debug
[conf]
tools.cmake.cmaketoolchain:extra_variables={'BIGFOOT_CXX_FLAGS': {'value': '/W4;/WX;/EHs-;/D_HAS_EXCEPTIONS=0;/GR-;/fp:fast', 'cache': True, 'type': 'STRING', 'docstring': 'CXX flags for Bigfoot', 'force': True}}
tools.cmake.cmaketoolchain:extra_variables*={'BIGFOOT_C_FLAGS': {'value': '/W4;/WX;/fp:fast', 'cache': True, 'type': 'STRING', 'docstring': 'C flags for Bigfoot', 'force': True}}
tools.cmake.cmaketoolchain:user_toolchain+={{profile_dir}}/msvc_ccache.cmake
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"]
[tool_requires]
!cmake/*: cmake/[>=4.2]

View File

@@ -29,6 +29,7 @@ class MimallocConan(ConanFile):
"single_object": [True, False],
"guarded": [True, False],
"win_redirect": [True, False],
"asan": [True, False],
}
default_options = {
"shared": False,
@@ -39,6 +40,7 @@ class MimallocConan(ConanFile):
"single_object": False,
"guarded": False,
"win_redirect": False,
"asan": False,
}
def export_sources(self):
@@ -91,6 +93,11 @@ class MimallocConan(ConanFile):
raise ConanInvalidConfiguration(
f"Currently, {self.ref} doesn't work properly with shared MD builds in CCI. Contributions welcomed")
if self.options.override and \
self.options.asan:
raise ConanInvalidConfiguration(
"Asan requires Mimalloc to be compiled without override")
# Shared overriding requires dynamic runtime for MSVC:
if self.options.override and \
self.options.shared and \
@@ -129,6 +136,7 @@ class MimallocConan(ConanFile):
tc.variables["MI_WIN_REDIRECT"] = "ON" if self.options.get_safe("win_redirect") else "OFF"
tc.variables["MI_INSTALL_TOPLEVEL"] = "ON"
tc.variables["MI_GUARDED"] = self.options.get_safe("guarded", False)
tc.variables["MI_TRACK_ASAN"] = "ON" if self.options.get_safe("asan") else "OFF"
if Version(self.version) <= "1.7.6":
tc.cache_variables["CMAKE_POLICY_VERSION_MINIMUM"] = "3.5" # CMake 4 support
tc.generate()
@@ -211,9 +219,13 @@ class MimallocConan(ConanFile):
return os.path.join(self.package_folder, "lib", "cmake")
def package_info(self):
self.cpp_info.set_property("cmake_file_name", "mimalloc")
self.cpp_info.set_property("cmake_target_name", "mimalloc" if self.options.shared else "mimalloc-static")
if(self.options.asan):
self.cpp_info.set_property("cmake_file_name", "mimalloc-asan")
self.cpp_info.set_property("cmake_target_name", "mimalloc-asan")
else:
self.cpp_info.set_property("cmake_file_name", "mimalloc")
self.cpp_info.set_property("cmake_target_name", "mimalloc" if self.options.shared else "mimalloc-static")
if self.options.get_safe("inject"):
self.cpp_info.includedirs = []
self.cpp_info.libdirs = []