Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Enable modplug feature implicitly if available #2272

Merged
merged 2 commits into from
Sep 10, 2019
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
33 changes: 21 additions & 12 deletions build/features.py
Original file line number Diff line number Diff line change
Expand Up @@ -441,34 +441,43 @@ class ModPlug(Feature):
def description(self):
return "Modplug module decoder plugin"

def default(self, build):
return 1 if build.platform_is_linux else 0

def enabled(self, build):
build.flags['modplug'] = util.get_flags(build.env, 'modplug', self.default(build))
# Default to enabled on but only throw an error if it was explicitly
# requested and is not available.
if 'modplug' in build.flags:
return int(build.flags['modplug']) > 0
build.flags['modplug'] = util.get_flags(build.env, 'modplug', 1)
if int(build.flags['modplug']):
return True
return False

def add_options(self, build, vars):
vars.Add('modplug',
'Set to 1 to enable libmodplug based module tracker support.',
self.default(build))
1)

def configure(self, build, conf):
if not self.enabled(build):
return

build.env.Append(CPPDEFINES='__MODPLUG__')
# Only block the configure if modplug was explicitly requested.
explicit = 'modplug' in SCons.ARGUMENTS

have_modplug_h = conf.CheckHeader('libmodplug/modplug.h')
have_modplug = conf.CheckLib(['modplug', 'libmodplug'], autoadd=True)
if not conf.CheckHeader('libmodplug/modplug.h'):
if explicit:
raise Exception('Could not find libmodplug development headers.')
else:
build.flags['modplug'] = 0
return

if not have_modplug_h:
raise Exception('Could not find libmodplug development headers.')
if not conf.CheckLib(['modplug', 'libmodplug'], autoadd=True):
if explicit:
raise Exception('Could not find libmodplug shared library.')
else:
build.flags['modplug'] = 0
return

if not have_modplug:
raise Exception('Could not find libmodplug shared library.')
build.env.Append(CPPDEFINES='__MODPLUG__')

def sources(self, build):
depends.Qt.uic(build)('preferences/dialog/dlgprefmodplugdlg.ui')
Expand Down