mirror of
https://github.com/mpv-player/mpv
synced 2024-12-20 13:52:10 +00:00
7e2edad8ef
This commit adds a new build system based on waf. configure and Makefile are deprecated effective immediately and someday in the future they will be removed (they are still available by running ./old-configure). You can find how the choice for waf came to be in `DOCS/waf-buildsystem.rst`. TL;DR: we couldn't get the same level of abstraction and customization with other build systems we tried (CMake and autotools). For guidance on how to build the software now, take a look at README.md and the cross compilation guide. CREDITS: This is a squash of ~250 commits. Some of them are not by me, so here is the deserved attribution: - @wm4 contributed some Windows fixes, renamed configure to old-configure and contributed to the bootstrap script. Also, GNU/Linux testing. - @lachs0r contributed some Windows fixes and the bootstrap script. - @Nikoli contributed a lot of testing and discovered many bugs. - @CrimsonVoid contributed changes to the bootstrap script.
38 lines
1.1 KiB
Python
38 lines
1.1 KiB
Python
from waflib.Build import BuildContext
|
|
import os
|
|
|
|
def __file2string_cmd__(ctx):
|
|
return "${{BIN_PERL}} {0}/TOOLS/file2string.pl ${{SRC}} > ${{TGT}}" \
|
|
.format(ctx.srcnode.abspath())
|
|
|
|
def __matroska_cmd__(ctx, argument):
|
|
return "${{BIN_PERL}} {0}/TOOLS/matroska.pl {1} ${{SRC}} > ${{TGT}}" \
|
|
.format(ctx.srcnode.abspath(), argument)
|
|
|
|
def __file2string__(ctx, **kwargs):
|
|
ctx(
|
|
rule = __file2string_cmd__(ctx),
|
|
before = ("c",),
|
|
name = os.path.basename(kwargs['target']),
|
|
**kwargs
|
|
)
|
|
|
|
def __matroska_header__(ctx, **kwargs):
|
|
ctx(
|
|
rule = __matroska_cmd__(ctx, '--generate-header'),
|
|
before = ("c",),
|
|
name = os.path.basename(kwargs['target']),
|
|
**kwargs
|
|
)
|
|
|
|
def __matroska_definitions__(ctx, **kwargs):
|
|
ctx(
|
|
rule = __matroska_cmd__(ctx, '--generate-definitions'),
|
|
before = ("c",),
|
|
**kwargs
|
|
)
|
|
|
|
BuildContext.file2string = __file2string__
|
|
BuildContext.matroska_header = __matroska_header__
|
|
BuildContext.matroska_definitions = __matroska_definitions__
|