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