blob: dda58857ada28b64210466c8a565b577fd9ae6da [file] [edit]
import os, shutil, logging
import stat
TAG = 'release-2.0.1'
def get(ports, settings, shared):
if settings.USE_SDL_MIXER == 2:
sdl_build = os.path.join(ports.get_build_dir(), 'sdl2')
assert os.path.exists(sdl_build), 'You must use SDL2 to use SDL2_mixer'
ports.fetch_project('sdl2-mixer', 'https://github.com/emscripten-ports/SDL2_mixer/archive/' + TAG + '.zip', 'SDL2_mixer-' + TAG)
def create():
cwd = os.getcwd()
commonflags = ['--disable-shared', '--disable-music-cmd', '--enable-sdltest', '--disable-smpegtest']
formatflags = ['--enable-music-wave', '--disable-music-mod', '--disable-music-midi', '--enable-music-ogg', '--disable-music-ogg-shared', '--disable-music-flac', '--disable-music-mp3']
configure = os.path.join(ports.get_dir(), 'sdl2-mixer', 'SDL2_mixer-' + TAG, 'configure')
build_dir = os.path.join(ports.get_build_dir(), 'sdl2-mixer')
dist_dir = os.path.join(ports.get_build_dir(), 'sdl2-mixer', 'dist')
out = os.path.join(dist_dir, 'lib', 'libSDL2_mixer.a')
final = os.path.join(ports.get_build_dir(), 'sdl2-mixer', 'libsdl2_mixer.a')
shared.safe_ensure_dirs(build_dir)
try:
os.chdir(build_dir)
os.chmod(configure, os.stat(configure).st_mode | stat.S_IEXEC)
ports.run_commands([[shared.EMCONFIGURE, configure, '--prefix=' + dist_dir] + formatflags + commonflags + ['CFLAGS=-s USE_VORBIS=1']])
ports.run_commands([[shared.EMMAKE, 'make', 'install']])
shutil.copyfile(out, final)
finally:
os.chdir(cwd)
return final
return [shared.Cache.get('sdl2-mixer', create, what='port')]
else:
return []
def process_dependencies(settings):
if settings.USE_SDL_MIXER == 2:
settings.USE_SDL = 2
settings.USE_VORBIS = 1
def process_args(ports, args, settings, shared):
if settings.USE_SDL_MIXER == 2:
get(ports, settings, shared)
args += ['-Xclang', '-isystem' + os.path.join(shared.Cache.get_path('ports-builds'), 'sdl2-mixer', 'dist', 'include')]
return args
def show():
return 'SDL2_mixer (USE_SDL_MIXER=2; zlib license)'