aboutsummaryrefslogtreecommitdiffhomepage
path: root/tools/buildgen/generate_projects.py
diff options
context:
space:
mode:
authorGravatar Craig Tiller <ctiller@google.com>2015-12-22 12:50:36 -0800
committerGravatar Craig Tiller <ctiller@google.com>2015-12-22 12:50:36 -0800
commit0fe5ee7be3ffc6386a6e0aefc40342cf64f44062 (patch)
treea39e47b88554fecb5a71a49d9e157b8dce6e9b58 /tools/buildgen/generate_projects.py
parentd491897c4050bce09025d8ad0011d38c14ab0dad (diff)
BoringSSL integration: non-vsprojects changes
Diffstat (limited to 'tools/buildgen/generate_projects.py')
-rwxr-xr-xtools/buildgen/generate_projects.py63
1 files changed, 38 insertions, 25 deletions
diff --git a/tools/buildgen/generate_projects.py b/tools/buildgen/generate_projects.py
index 90abd703f6..34437b9c8d 100755
--- a/tools/buildgen/generate_projects.py
+++ b/tools/buildgen/generate_projects.py
@@ -29,6 +29,7 @@
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+import argparse
import glob
import os
import shutil
@@ -42,37 +43,49 @@ assert sys.argv[1:], 'run generate_projects.sh instead of this directly'
import jobset
os.chdir(os.path.join(os.path.dirname(sys.argv[0]), '..', '..'))
-json = sys.argv[1:]
+
+argp = argparse.ArgumentParser()
+argp.add_argument('json', nargs='+')
+argp.add_argument('--templates', nargs='+', default=[])
+args = argp.parse_args()
+
+json = args.json
test = {} if 'TEST' in os.environ else None
plugins = sorted(glob.glob('tools/buildgen/plugins/*.py'))
+templates = args.templates
+if not templates:
+ for root, dirs, files in os.walk('templates'):
+ for f in files:
+ templates.append(os.path.join(root, f))
+
jobs = []
-for root, dirs, files in os.walk('templates'):
- for f in files:
- if os.path.splitext(f)[1] == '.template':
- out_dir = '.' + root[len('templates'):]
- out = out_dir + '/' + os.path.splitext(f)[0]
- if not os.path.exists(out_dir):
- os.makedirs(out_dir)
- cmd = ['python2.7', 'tools/buildgen/mako_renderer.py']
- for plugin in plugins:
- cmd.append('-p')
- cmd.append(plugin)
- for js in json:
- cmd.append('-d')
- cmd.append(js)
- cmd.append('-o')
- if test is None:
- cmd.append(out)
- else:
- tf = tempfile.mkstemp()
- test[out] = tf[1]
- os.close(tf[0])
- cmd.append(test[out])
- cmd.append(root + '/' + f)
- jobs.append(jobset.JobSpec(cmd, shortname=out))
+for template in templates:
+ root, f = os.path.split(template)
+ if os.path.splitext(f)[1] == '.template':
+ out_dir = '.' + root[len('templates'):]
+ out = out_dir + '/' + os.path.splitext(f)[0]
+ if not os.path.exists(out_dir):
+ os.makedirs(out_dir)
+ cmd = ['python2.7', 'tools/buildgen/mako_renderer.py']
+ for plugin in plugins:
+ cmd.append('-p')
+ cmd.append(plugin)
+ for js in json:
+ cmd.append('-d')
+ cmd.append(js)
+ cmd.append('-o')
+ if test is None:
+ cmd.append(out)
+ else:
+ tf = tempfile.mkstemp()
+ test[out] = tf[1]
+ os.close(tf[0])
+ cmd.append(test[out])
+ cmd.append(root + '/' + f)
+ jobs.append(jobset.JobSpec(cmd, shortname=out))
jobset.run(jobs, maxjobs=multiprocessing.cpu_count())