summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xandroid/build.py54
-rw-r--r--python/build/project.py60
-rwxr-xr-xwin32/build.py54
3 files changed, 62 insertions, 106 deletions
diff --git a/android/build.py b/android/build.py
index dc4742b51..5cfbfa190 100755
--- a/android/build.py
+++ b/android/build.py
@@ -110,59 +110,7 @@ class AndroidNdkToolchain:
# default one on the build host
self.env['PKG_CONFIG_LIBDIR'] = os.path.join(install_prefix, 'lib/pkgconfig')
-from build.download import download_and_verify
-from build.tar import untar
-
-class Project:
- def __init__(self, url, md5, installed, name=None, version=None,
- base=None,
- use_cxx=False, use_clang=False):
- if base is None:
- basename = os.path.basename(url)
- m = re.match(r'^(.+)\.(tar(\.(gz|bz2|xz|lzma))?|zip)$', basename)
- if not m: raise
- self.base = m.group(1)
- else:
- self.base = base
-
- if name is None or version is None:
- m = re.match(r'^([-\w]+)-(\d[\d.]*[a-z]?)$', self.base)
- if name is None: name = m.group(1)
- if version is None: version = m.group(2)
-
- self.name = name
- self.version = version
-
- self.url = url
- self.md5 = md5
- self.installed = installed
-
- self.use_cxx = use_cxx
- self.use_clang = use_clang
-
- def download(self, toolchain):
- return download_and_verify(self.url, self.md5, toolchain.tarball_path)
-
- def is_installed(self, toolchain):
- tarball = self.download(toolchain)
- installed = os.path.join(toolchain.install_prefix, self.installed)
- tarball_mtime = os.path.getmtime(tarball)
- try:
- return os.path.getmtime(installed) >= tarball_mtime
- except FileNotFoundError:
- return False
-
- def unpack(self, toolchain):
- return untar(self.download(toolchain), toolchain.src_path, self.base)
-
- def make_build_path(self, toolchain):
- path = os.path.join(toolchain.build_path, self.base)
- try:
- shutil.rmtree(path)
- except FileNotFoundError:
- pass
- os.makedirs(path, exist_ok=True)
- return path
+from build.project import Project
class AutotoolsProject(Project):
def __init__(self, url, md5, installed, configure_args=[],
diff --git a/python/build/project.py b/python/build/project.py
new file mode 100644
index 000000000..9a04e9ce4
--- /dev/null
+++ b/python/build/project.py
@@ -0,0 +1,60 @@
+import os, shutil
+import re
+
+from build.download import download_and_verify
+from build.tar import untar
+
+class Project:
+ def __init__(self, url, md5, installed, name=None, version=None,
+ base=None,
+ use_cxx=False, use_clang=False):
+ if base is None:
+ basename = os.path.basename(url)
+ m = re.match(r'^(.+)\.(tar(\.(gz|bz2|xz|lzma))?|zip)$', basename)
+ if not m: raise
+ self.base = m.group(1)
+ else:
+ self.base = base
+
+ if name is None or version is None:
+ m = re.match(r'^([-\w]+)-(\d[\d.]*[a-z]?)$', self.base)
+ if name is None: name = m.group(1)
+ if version is None: version = m.group(2)
+
+ self.name = name
+ self.version = version
+
+ self.url = url
+ self.md5 = md5
+ self.installed = installed
+
+ self.use_cxx = use_cxx
+ self.use_clang = use_clang
+
+ def download(self, toolchain):
+ return download_and_verify(self.url, self.md5, toolchain.tarball_path)
+
+ def is_installed(self, toolchain):
+ tarball = self.download(toolchain)
+ installed = os.path.join(toolchain.install_prefix, self.installed)
+ tarball_mtime = os.path.getmtime(tarball)
+ try:
+ return os.path.getmtime(installed) >= tarball_mtime
+ except FileNotFoundError:
+ return False
+
+ def unpack(self, toolchain, out_of_tree=True):
+ if out_of_tree:
+ parent_path = toolchain.src_path
+ else:
+ parent_path = toolchain.build_path
+ return untar(self.download(toolchain), parent_path, self.base)
+
+ def make_build_path(self, toolchain):
+ path = os.path.join(toolchain.build_path, self.base)
+ try:
+ shutil.rmtree(path)
+ except FileNotFoundError:
+ pass
+ os.makedirs(path, exist_ok=True)
+ return path
diff --git a/win32/build.py b/win32/build.py
index db92fd7c4..d8b866699 100755
--- a/win32/build.py
+++ b/win32/build.py
@@ -58,59 +58,7 @@ class CrossGccToolchain:
# default one on the build host
self.env['PKG_CONFIG_LIBDIR'] = os.path.join(install_prefix, 'lib/pkgconfig')
-from build.download import download_and_verify
-from build.tar import untar
-
-class Project:
- def __init__(self, url, md5, installed, name=None, version=None,
- base=None):
- if base is None:
- basename = os.path.basename(url)
- m = re.match(r'^(.+)\.(tar(\.(gz|bz2|xz|lzma))?|zip)$', basename)
- if not m: raise
- self.base = m.group(1)
- else:
- self.base = base
-
- if name is None or version is None:
- m = re.match(r'^([-\w]+)-(\d[\d.]*[a-z]?)$', self.base)
- if name is None: name = m.group(1)
- if version is None: version = m.group(2)
-
- self.name = name
- self.version = version
-
- self.url = url
- self.md5 = md5
- self.installed = installed
-
- def download(self, toolchain):
- return download_and_verify(self.url, self.md5, toolchain.tarball_path)
-
- def is_installed(self, toolchain):
- tarball = self.download(toolchain)
- installed = os.path.join(toolchain.install_prefix, self.installed)
- tarball_mtime = os.path.getmtime(tarball)
- try:
- return os.path.getmtime(installed) >= tarball_mtime
- except FileNotFoundError:
- return False
-
- def unpack(self, toolchain, out_of_tree=True):
- if out_of_tree:
- parent_path = toolchain.src_path
- else:
- parent_path = toolchain.build_path
- return untar(self.download(toolchain), parent_path, self.base)
-
- def make_build_path(self, toolchain):
- path = os.path.join(toolchain.build_path, self.base)
- try:
- shutil.rmtree(path)
- except FileNotFoundError:
- pass
- os.makedirs(path, exist_ok=True)
- return path
+from build.project import Project
class AutotoolsProject(Project):
def __init__(self, url, md5, installed, configure_args=[],