From 1713200084084e6ec8ce058ae0e16566789a91d7 Mon Sep 17 00:00:00 2001 From: Thiago de Arruda Date: Sat, 20 Aug 2016 12:19:14 -0300 Subject: [PATCH] Refactor the atom_js2c target to include javascript from multiple dirs. Before invoking js2c, copy all files that must be embedded into the shared intermediate directory, and modify the js2c wrapper script to include all files from that directory(which is passed as argument). This allows the build system to embed files that don't share a common base directory, such as javascript generated at build time. --- electron.gyp | 19 ++++++++++++++++++- tools/js2c.py | 3 ++- 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/electron.gyp b/electron.gyp index 5d44f8d1bb96..9919d4b0e631 100644 --- a/electron.gyp +++ b/electron.gyp @@ -5,6 +5,7 @@ 'company_name%': 'GitHub, Inc', 'company_abbr%': 'github', 'version%': '1.4.1', + 'js2c_input_dir': '<(SHARED_INTERMEDIATE_DIR)/js2c', }, 'includes': [ 'filenames.gypi', @@ -410,13 +411,29 @@ } ], }, # target app2asar + { + 'target_name': 'atom_js2c_copy', + 'type': 'none', + 'copies': [ + { + 'destination': '<(js2c_input_dir)', + 'files': [ + '<@(js2c_sources)', + ], + }, + ], + }, # target atom_js2c_copy { 'target_name': 'atom_js2c', 'type': 'none', + 'dependencies': [ + 'atom_js2c_copy', + ], 'actions': [ { 'action_name': 'atom_js2c', 'inputs': [ + # List all input files that should trigger a rebuild with js2c '<@(js2c_sources)', ], 'outputs': [ @@ -426,7 +443,7 @@ 'python', 'tools/js2c.py', '<@(_outputs)', - '<@(_inputs)', + '<(js2c_input_dir)', ], } ], diff --git a/tools/js2c.py b/tools/js2c.py index 394aa557e522..ce4081077021 100755 --- a/tools/js2c.py +++ b/tools/js2c.py @@ -1,6 +1,7 @@ #!/usr/bin/env python import contextlib +import glob import os import subprocess import sys @@ -11,7 +12,7 @@ SOURCE_ROOT = os.path.abspath(os.path.dirname(os.path.dirname(__file__))) def main(): natives = os.path.abspath(sys.argv[1]) - js_source_files = sys.argv[2:] + js_source_files = glob.glob('{0}/*.js'.format(sys.argv[2])) call_js2c(natives, js_source_files)