Files
decaf-emu/conanfile.py
James Benton 21cfabaa7c Remove ffmpeg from Windows CI builds and from conanfile.
Conan no longer seems to have any binaries for ffmpeg, which makes it very
unsuitable for consuming ffmpeg from...
2021-07-18 10:57:12 +01:00

102 lines
3.1 KiB
Python

from conans import ConanFile
import sys
# Thanks stackoverflow: https://stackoverflow.com/a/3041990
def query_yes_no(question, default="yes"):
"""Ask a yes/no question via raw_input() and return their answer.
"question" is a string that is presented to the user.
"default" is the presumed answer if the user just hits <Enter>.
It must be "yes" (the default), "no" or None (meaning
an answer is required of the user).
The "answer" return value is True for "yes" or False for "no".
"""
valid = {"yes": True, "y": True, "ye": True,
"no": False, "n": False}
if default is None:
prompt = " [y/n] "
elif default == "yes":
prompt = " [Y/n] "
elif default == "no":
prompt = " [y/N] "
else:
raise ValueError("invalid default answer: '%s'" % default)
global input
try: input = raw_input
except NameError: pass
while True:
sys.stdout.write(question + prompt)
choice = input().lower()
if default is not None and choice == '':
return valid[default]
elif choice in valid:
return valid[choice]
else:
sys.stdout.write("Please respond with 'yes' or 'no' "
"(or 'y' or 'n').\n")
class DecafConan(ConanFile):
generators = "cmake"
settings = 'os'
options = {
'silent': [True, False],
'ffmpeg': [True, False],
'curl': [True, False],
'openssl': [True, False],
'sdl2': [True, False],
'zlib': [True, False],
'libuv': [True, False],
'cares': [True, False],
}
default_options = {
'silent': False,
'ffmpeg': True,
'curl': True,
'openssl': True,
'sdl2': True,
'zlib': True,
'libuv': True,
'cares': True,
}
def requirements(self):
dependency_list = [
('c-ares/1.15.0', 'yes' if self.options.cares else 'no'),
('libcurl/7.69.1', 'yes' if self.options.curl else 'no'),
('libuv/1.34.2', 'yes' if self.options.libuv else 'no'),
('openssl/1.1.1h', 'yes' if self.options.openssl else 'no'),
('sdl/2.0.14', 'yes' if self.options.sdl2 else 'no'),
('zlib/1.2.11', 'yes' if self.options.zlib else 'no'),
]
overrides = [
'openssl/1.1.1h',
'zlib/1.2.11',
]
print('Enabled dependencies:')
for dependency, enabled in dependency_list:
if enabled == 'yes':
print("%s" % (dependency))
print('')
print('Disabled dependencies:')
for dependency, enabled in dependency_list:
if enabled == 'no':
print("%s" % (dependency))
print('')
silent = self.options.silent
if not silent:
silent = not query_yes_no('Customise which dependencies to acquire from Conan?', default='no')
for dependency, enabled in dependency_list:
if (silent and enabled == 'yes') or \
(not silent and query_yes_no(dependency, default=enabled)):
if dependency in overrides:
self.requires(dependency, override=True)
else:
self.requires(dependency)