mikage-dev/conanfile.py
2025-01-05 21:45:22 +01:00

59 lines
2 KiB
Python

from conan import ConanFile
class MikageConan(ConanFile):
name = "mikage"
settings = "os", "compiler", "build_type", "arch"
generators = ["CMakeDeps", "CMakeToolchain"]
requires = [
#"boost/1.79.0",
"boost/1.84.0",
"spdlog/1.10.0",
"cryptopp/8.5.0",
"sdl/2.30.7", # 2.0.18 fixed swapped X/Y buttons on Switch Pro Controller
"range-v3/0.12.0",
"catch2/2.13.7",
"glslang/1.3.268.0",
"spirv-tools/1.3.268.0",
"tracy/0.11.1",
"xxhash/0.8.0",
"fmt/8.1.1",
]
options = {
"enable_profiler": [True, False]
}
default_options = {
"enable_profiler": False
}
def configure(self):
# TODO: Works around conan-center-index issue 7118
self.options["sdl"].nas = False
self.options["sdl"].alsa = False
self.options["sdl"].shared = True
self.options["pulseaudio"].shared = True
self.options["pulseaudio"].with_alsa = False
#self.options["sdl"].nas = True
self.options["tracy"].enable = self.options.enable_profiler
self.options["tracy"].fibers = True
if self.settings.os == "Android":
# With zlib, libxml2 pulls in pkgconf, which Conan can't build for Android
self.options["libxml2"].zlib = False
def requirements(self):
# Pistache does not build on clang
if self.settings.os == "Linux" and self.settings.compiler != "clang":
self.requires("pistache/cci.20201127")
if self.settings.os == "Linux":
self.requires("libunwind/1.8.0")
if self.settings.os == "Macos":
self.requires("vulkan-loader/1.3.268.0", force=True)
self.requires("spirv-cross/1.3.268.0", force=True) # for moltenvk
self.requires("moltenvk/1.2.2", force=True)
self.requires("vulkan-headers/1.3.268.0", force=True) # must be a direct dependency to avoid homebrew headers from being pulled in