mirror of
https://forgejo.xatacraft.ru/Sunshine/mkxp-sunshine.git
synced 2026-08-19 13:29:54 +00:00
109 lines
3.4 KiB
Python
109 lines
3.4 KiB
Python
import os.path
|
|
|
|
from conans import CMake, ConanFile, tools
|
|
|
|
|
|
class MkxpConan(ConanFile):
|
|
name = "oneshot"
|
|
version = "0.0.0"
|
|
license = "GPLv2"
|
|
url = "https://github.com/elizagamedev/mkxp-oneshot"
|
|
description = "OneShot game runtime"
|
|
settings = "os", "compiler", "build_type", "arch"
|
|
generators = "cmake"
|
|
exports_sources = "*"
|
|
requires = (
|
|
"boost/1.73.0",
|
|
"openal/1.18.2@bincrafters/stable",
|
|
"physfs/3.0.1@bincrafters/stable",
|
|
"pixman/0.34.0@bincrafters/stable",
|
|
"ruby/2.5.3@eliza/testing",
|
|
"sdl2/2.0.9@bincrafters/stable",
|
|
"sdl2_image/2.0.5@bincrafters/stable",
|
|
"sdl2_ttf/2.0.15@bincrafters/stable",
|
|
"sdl_sound-mkxp/1.0.1@eliza/stable",
|
|
"sigc++/2.10.0@bincrafters/stable",
|
|
# Overrides
|
|
"libpng/1.6.37",
|
|
"zlib/1.2.11",
|
|
"bzip2/1.0.8",
|
|
)
|
|
build_requires = ("ruby_installer/2.5.5@bincrafters/stable", )
|
|
options = {
|
|
"platform": ["standalone", "steam"],
|
|
}
|
|
default_options = (
|
|
"platform=standalone",
|
|
"boost:without_test=True",
|
|
"cygwin_installer:packages=xxd",
|
|
# Avoid dead url bitrot in cygwin_installer
|
|
"cygwin_installer:with_pear=False",
|
|
)
|
|
|
|
def build_requirements(self):
|
|
if tools.os_info.is_windows:
|
|
self.build_requires("cygwin_installer/2.9.0@bincrafters/stable")
|
|
|
|
def requirements(self):
|
|
if self.options.platform == "steam":
|
|
self.requires("steamworks/1.42@eliza/stable")
|
|
if tools.os_info.is_linux:
|
|
# Overrides
|
|
self.requires("sqlite3/3.29.0")
|
|
self.requires("flac/1.3.3")
|
|
self.requires("ogg/1.3.4")
|
|
self.requires("vorbis/1.3.6")
|
|
self.requires("libalsa/1.1.9")
|
|
|
|
def configure(self):
|
|
if tools.os_info.is_windows:
|
|
# ???
|
|
self.options.openal.shared = True
|
|
# Fix linker error in SDL_sound fork with SDL2
|
|
self.options.sdl2.shared = True
|
|
|
|
def build_configure(self):
|
|
cmake = CMake(self)
|
|
if self.options.platform == "steam":
|
|
cmake.definitions["STEAM"] = "ON"
|
|
cmake.configure()
|
|
cmake.build()
|
|
|
|
def build(self):
|
|
if tools.os_info.is_windows:
|
|
cygwin_bin = self.deps_env_info["cygwin_installer"].CYGWIN_BIN
|
|
with tools.environment_append({
|
|
"PATH": [cygwin_bin],
|
|
"CONAN_BASH_PATH":
|
|
os.path.join(cygwin_bin, "bash.exe")
|
|
}):
|
|
self.build_configure()
|
|
else:
|
|
self.build_configure()
|
|
|
|
def package(self):
|
|
self.copy("*", dst="bin", src="bin")
|
|
|
|
def imports(self):
|
|
self.do_copy_deps(self.copy)
|
|
|
|
def deploy(self):
|
|
self.copy("*")
|
|
self.do_copy_deps(self.copy_deps)
|
|
|
|
def do_copy_deps(self, copy):
|
|
deps = set(self.deps_cpp_info.deps) - set(
|
|
("cygwin_installer", "msys2_installer", "ruby_installer"))
|
|
for dep in deps:
|
|
copy("*.dll",
|
|
dst="bin",
|
|
src="bin",
|
|
root_package=dep,
|
|
keep_path=False)
|
|
copy("*.so*",
|
|
dst="lib",
|
|
src="lib",
|
|
root_package=dep,
|
|
keep_path=True)
|
|
if self.settings.build_type == "Debug":
|
|
copy("*.pdb", dst="bin", root_package=dep, keep_path=False)
|