Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2054)

Unified Diff: native_client_sdk/src/build_tools/build.scons

Issue 8785002: Updated SDK scons files to handle new gyp file format in ppapi (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 9 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: native_client_sdk/src/build_tools/build.scons
diff --git a/native_client_sdk/src/build_tools/build.scons b/native_client_sdk/src/build_tools/build.scons
index 06efa1c8cb43fb3f8695d894e3ea563553953041..067c03f3653e50a6877625df6ea793e72a2f9fad 100644
--- a/native_client_sdk/src/build_tools/build.scons
+++ b/native_client_sdk/src/build_tools/build.scons
@@ -131,9 +131,30 @@ if env['IS_WINDOWS']:
# Put together the toolchain
import gyp_extract
+import re
+
+def GypSources(gyp_data, pattern):
+ """Extract a sources from a target matching a given pattern.
+
+ Args:
+ gyp_data: list containing sources from gyp file.
+ pattern: re pattern that sources must match.
+ Returns:
+ A list of strings containing source filenames.
+ """
+ # Extract source files that match.
+ re_compiled = re.compile(pattern)
+ return [source_file for source_file in gyp_data
+ if re_compiled.match(source_file)]
ppapi_base = os.path.join(env['SRC_DIR'], 'ppapi')
+# Unfortunately gyp_extract does not handle variables or includes so we must
+# pull the list of sources from ppapi_sources.gypi directly.
+ppapi_sources_gypi = open(os.path.join(ppapi_base,
+ 'ppapi_sources.gypi'), 'r').read()
+ppapi_sources_map = eval(ppapi_sources_gypi)['variables']
+
# Load ppapi_cpp.gypi
ppapi_cpp_gypi = gyp_extract.LoadGypFile(os.path.join(ppapi_base,
'ppapi_cpp.gypi'))
@@ -143,25 +164,22 @@ ppapi_gl_gypi = gyp_extract.LoadGypFile(os.path.join(ppapi_base,
'ppapi_gl.gypi'))
# From ppapi_cpp.gypi:ppapi_c:c/[^/]*\.h
-c_headers = gyp_extract.GypTargetSources(
- ppapi_cpp_gypi, 'ppapi_c', 'c/[^/]*\.h')
+c_headers = GypSources(ppapi_sources_map['c_sources'], 'c/[^/]*\.h')
# From ppapi_cpp.gypi:ppapi_c:c/dev/[^/]*\.h
-c_dev_headers = gyp_extract.GypTargetSources(
- ppapi_cpp_gypi, 'ppapi_c', 'c/dev/[^/]*\.h')
+c_dev_headers = GypSources(ppapi_sources_map['c_sources'], 'c/dev/[^/]*\.h')
# From ppapi_cpp.gypi:ppapi_cpp_objects:cpp/[^/]*\.h
# From ppapi_cpp.gypi:ppapi_cpp:cpp/[^/]*\.h
cpp_headers = (
- gyp_extract.GypTargetSources(
- ppapi_cpp_gypi, 'ppapi_cpp_objects', 'cpp/[^/]*\.h') +
+ GypSources(ppapi_sources_map['cpp_sources'], 'cpp/[^/]*\.h') +
gyp_extract.GypTargetSources(
ppapi_cpp_gypi, 'ppapi_cpp', 'cpp/[^/]*\.h')
)
# From ppapi_cpp.gypi:ppapi_cpp_objects:cpp/dev/[^/]*\.h
-cpp_dev_headers = gyp_extract.GypTargetSources(
- ppapi_cpp_gypi, 'ppapi_cpp_objects', 'cpp/dev/[^/]*\.h')
+cpp_dev_headers = GypSources(ppapi_sources_map['cpp_sources'],
+ 'cpp/dev/[^/]*\.h')
# From ppapi_gl.gypi:ppapi_gles2:.*\.h
gles2_headers = gyp_extract.GypTargetSources(
@@ -186,8 +204,7 @@ cpp_dev_header_install = env.AddHeaderToSdk(
# From ppapi_cpp.gypi:ppapi_cpp_objects:cpp/[^/]*\.cc
# From ppapi_cpp.gypi:ppapi_cpp:cpp/[^/]*\.cc
cpp_trusted_sources = (
- gyp_extract.GypTargetSources(
- ppapi_cpp_gypi, 'ppapi_cpp_objects', 'cpp/[^/]*\.cc') +
+ GypSources(ppapi_sources_map['cpp_sources'], 'cpp/[^/]*\.cc') +
gyp_extract.GypTargetSources(
ppapi_cpp_gypi, 'ppapi_cpp', 'cpp/[^/]*\.cc')
)
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698