import os from conan import ConanFile from conan.tools.cmake import CMakeDeps, CMakeToolchain, CMake class BlockchainConan(ConanFile): name = "blockchain" version = "6.0.1" settings = "os", "compiler", "build_type", "arch" options = { "static": [True, False], "testnet": [True, False], "ci": [True, False] } default_options = { "static": False, "testnet": False, "ci": False, "boost/*:without_test": True } requires = [ "zlib/1.3.1", "boost/1.85.0", "openssl/3.2.0", "miniupnpc/2.2.5", "jwt-cpp/0.7.1" ] def generate(self): tc = CMakeToolchain(self) # When conan-default / conan-release becomes an issue the blow adds OS, ARCH and Compiler to the preset name # if self.options.__contains__("CI"): # os_val = str(self.settings.os).lower() # arch_val = str(self.settings.arch).lower() # compiler_val = str(self.settings.compiler).lower() # tc.presets_prefix = f"{os_val}-{arch_val}-{compiler_val}" tc.user_presets_path = "ConanPresets.json" tc.variables["STATIC"] = self.options.static tc.variables["TESTNET"] = self.options.testnet # tc.preprocessor_definitions["TESTNET"] = None # tc.variables["BUILD_VERSION"] = self.options.build_version tc.generate() deps = CMakeDeps(self) deps.generate() def layout(self): self.folders.generators = os.path.join("build", str(self.settings.build_type).lower(), "generators") self.folders.build = os.path.join("build", str(self.settings.build_type).lower()) # self.folders.build_folder_vars = ["settings.os", "settings.arch", "settings.compiler", "settings.build_type"] def build(self): cmake = CMake(self) cmake.configure() cmake.build()