summaryrefslogtreecommitdiff
path: root/third_party/waf/waflib/extras/use_config.py
diff options
context:
space:
mode:
Diffstat (limited to 'third_party/waf/waflib/extras/use_config.py')
-rw-r--r--third_party/waf/waflib/extras/use_config.py33
1 files changed, 28 insertions, 5 deletions
diff --git a/third_party/waf/waflib/extras/use_config.py b/third_party/waf/waflib/extras/use_config.py
index ffaafce85d5..b5a73d7f3e1 100644
--- a/third_party/waf/waflib/extras/use_config.py
+++ b/third_party/waf/waflib/extras/use_config.py
@@ -1,3 +1,7 @@
+#! /usr/bin/env python
+# encoding: utf-8
+# WARNING! Do not edit! https://waf.io/book/index.html#_obtaining_the_waf_file
+
#!/usr/bin/env python
# coding=utf-8
# Mathieu Courtois - EDF R&D, 2013 - http://www.code-aster.org
@@ -50,6 +54,21 @@ import sys
import os.path as osp
import os
+local_repo = ''
+"""Local repository containing additional Waf tools (plugins)"""
+remote_repo = 'https://raw.githubusercontent.com/waf-project/waf/master/'
+"""
+Remote directory containing downloadable waf tools. The missing tools can be downloaded by using::
+
+ $ waf configure --download
+"""
+
+remote_locs = ['waflib/extras', 'waflib/Tools']
+"""
+Remote directories for use with :py:const:`waflib.extras.use_config.remote_repo`
+"""
+
+
try:
from urllib import request
except ImportError:
@@ -94,12 +113,12 @@ def download_check(node):
def download_tool(tool, force=False, ctx=None):
"""
- Download a Waf tool from the remote repository defined in :py:const:`waflib.Context.remote_repo`::
+ Download a Waf tool from the remote repository defined in :py:const:`waflib.extras.use_config.remote_repo`::
$ waf configure --download
"""
- for x in Utils.to_list(Context.remote_repo):
- for sub in Utils.to_list(Context.remote_locs):
+ for x in Utils.to_list(remote_repo):
+ for sub in Utils.to_list(remote_locs):
url = '/'.join((x, sub, tool + '.py'))
try:
web = urlopen(url)
@@ -115,12 +134,12 @@ def download_tool(tool, force=False, ctx=None):
else:
tmp = ctx.root.make_node(os.sep.join((Context.waf_dir, 'waflib', 'extras', tool + '.py')))
tmp.write(web.read(), 'wb')
- Logs.warn('Downloaded %s from %s' % (tool, url))
+ Logs.warn('Downloaded %s from %s', tool, url)
download_check(tmp)
try:
module = Context.load_tool(tool)
except Exception:
- Logs.warn('The tool %s from %s is unusable' % (tool, url))
+ Logs.warn('The tool %s from %s is unusable', tool, url)
try:
tmp.delete()
except Exception:
@@ -134,6 +153,9 @@ def load_tool(tool, tooldir=None, ctx=None, with_sys_path=True):
try:
module = Context.load_tool_default(tool, tooldir, ctx, with_sys_path)
except ImportError as e:
+ if not ctx or not hasattr(Options.options, 'download'):
+ Logs.error('Could not load %r during options phase (download unavailable at this point)' % tool)
+ raise
if Options.options.download:
module = download_tool(tool, ctx=ctx)
if not module:
@@ -164,3 +186,4 @@ def configure(self):
self.load(cfg, tooldir=tooldir, **kwargs)
self.start_msg('Checking for configuration')
self.end_msg(use_cfg)
+