mirror of
https://github.com/mpv-player/mpv
synced 2024-10-30 04:46:41 +01: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.
27 lines
812 B
Python
27 lines
812 B
Python
import re
|
|
|
|
class DependencyInflector(object):
|
|
def __init__(self, dependency):
|
|
self.dep = dependency
|
|
|
|
def storage_key(self):
|
|
return self.__underscore__(self.dep)
|
|
|
|
def define_key(self):
|
|
return ("have_" + self.storage_key()).upper()
|
|
|
|
def define_dict(self):
|
|
return {'define_name': self.define_key()}
|
|
|
|
def storage_dict(self):
|
|
return {'uselib_store': self.storage_key()}
|
|
|
|
def __underscore__(self, word):
|
|
""" Converts a word "into_it_s_underscored_version"
|
|
Convert any "CamelCased" or "ordinary Word" into an
|
|
"underscored_word"."""
|
|
|
|
return re.sub('[^A-Z^a-z^0-9]+', '_', \
|
|
re.sub('([a-z\d])([A-Z])', '\\1_\\2', \
|
|
re.sub('([A-Z]+)([A-Z][a-z])', '\\1_\\2', re.sub('::', '/', word)))).lower()
|