-
Notifications
You must be signed in to change notification settings - Fork 32
/
conanfile.py
110 lines (98 loc) · 3.47 KB
/
conanfile.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
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, msbuild_verbosity='minimal')
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()
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)