All checks were successful
continuous-integration/drone/push Build is passing
reviewed-on: #10 Co-authored-by: light7734 <light7734@tuta.io> Co-committed-by: light7734 <light7734@tuta.io>
61 lines
1.8 KiB
Python
61 lines
1.8 KiB
Python
from conan import ConanFile
|
|
from conan.tools.cmake import CMakeToolchain, CMake, cmake_layout
|
|
import shutil
|
|
import os
|
|
import git
|
|
|
|
class LightRecipe(ConanFile):
|
|
name = "Light Engine"
|
|
|
|
settings = "os", "compiler", "build_type", "arch"
|
|
generators = "CMakeDeps"
|
|
|
|
options = {
|
|
"enable_tests": [True, False],
|
|
"enable_llvm_coverage": [True, False],
|
|
"enable_static_analysis": [True, False],
|
|
"use_mold": [True, False],
|
|
"export_compile_commands": [True, False],
|
|
}
|
|
|
|
default_options = {
|
|
"enable_tests": True,
|
|
"enable_llvm_coverage": False,
|
|
"enable_static_analysis": False,
|
|
"use_mold": False,
|
|
"export_compile_commands": True,
|
|
}
|
|
|
|
def requirements(self):
|
|
self.requires("imgui/1.92.0-docking")
|
|
self.requires("entt/3.15.0")
|
|
self.requires("glfw/3.4")
|
|
self.requires("stb/cci.20240531")
|
|
self.requires("yaml-cpp/0.8.0")
|
|
self.requires("lz4/1.10.0")
|
|
|
|
def layout(self):
|
|
cmake_layout(self)
|
|
|
|
def generate(self):
|
|
tc = CMakeToolchain(self)
|
|
|
|
tc.variables["CMAKE_BUILD_TYPE"] = self.settings.build_type
|
|
|
|
if self.options.use_mold:
|
|
tc.cache_variables["CMAKE_LINKER_TYPE"] = "MOLD"
|
|
|
|
tc.cache_variables["CMAKE_EXPORT_COMPILE_COMMANDS"] = self.options.export_compile_commands
|
|
tc.cache_variables["ENABLE_TESTS"] = self.options.enable_tests
|
|
tc.cache_variables["ENABLE_LLVM_COVERAGE"] = self.options.enable_llvm_coverage
|
|
tc.cache_variables["ENABLE_STATIC_ANALYSIS"] = self.options.enable_static_analysis
|
|
|
|
repo = git.Repo(search_parent_directories=True)
|
|
tc.cache_variables["GIT_HASH"] = repo.head.object.hexsha
|
|
|
|
tc.generate()
|
|
|
|
def build(self):
|
|
cmake = CMake(self)
|
|
cmake.configure()
|
|
cmake.build()
|