15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# -*- python -*-
25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# Copyright 2011 The Native Client Authors.  All rights reserved.
35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# Use of this source code is governed by a BSD-style license that can
45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# be found in the LICENSE file.
55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)import os
75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)import gyp_extract
85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)Import('env')
105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# Underlay $SOURCE_ROOT/ppapi in this directory.
125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)Dir('.').addRepository(Dir('#/../ppapi'))
135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# TODO(ncbray): reenable
155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# http://code.google.com/p/nativeclient/issues/detail?id=1643
165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)env.FilterOut(CCFLAGS=['-Wswitch-enum'])
175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# Load ppapi_cpp.gypi
195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# Unfortunately gyp_extract does not handle variables or includes so we must
205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# pull the list of sources from ppapi_sources.gypi directly.
215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)ppapi_sources_gypi = open(
235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    env.File('$SOURCE_ROOT/ppapi/ppapi_sources.gypi').abspath, 'r').read()
245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)ppapi_sources_list = eval(ppapi_sources_gypi)['variables']['cpp_source_files']
255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)ppapi_cpp_gypi = gyp_extract.LoadGypFile(
275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    env.File('$SOURCE_ROOT/ppapi/ppapi_cpp.gypi').abspath)
285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)cpp_sources = (
305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    [src for src in ppapi_sources_list if src.endswith('.cc')] +
315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    gyp_extract.GypTargetSources(
325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        ppapi_cpp_gypi, 'ppapi_cpp', '.*\.cc')
335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles))
345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)libppapi_cpp = env.NaClSdkLibrary('libppapi_cpp', cpp_sources)
355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)env.AddLibraryToSdk(libppapi_cpp)
365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)env.Append(CPPPATH=[
385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    '$SOURCE_ROOT/ppapi/lib/gl/gles2',
395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    '$SOURCE_ROOT/ppapi/lib/gl/include',
405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    ])
415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)env.Prepend(CPPDEFINES=['GL_GLEXT_PROTOTYPES'])
435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# Load ppapi_gl.gypi
455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)ppapi_gl_gypi = gyp_extract.LoadGypFile(
465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    env.File('$SOURCE_ROOT/ppapi/ppapi_gl.gypi').abspath)
475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# From ppapi_gl.gypi:ppapi_gles2:.*\.c
495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)gles2_sources = gyp_extract.GypTargetSources(
505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    ppapi_gl_gypi, 'ppapi_gles2', '.*\.c')
515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)libppapi_gles2 = env.NaClSdkLibrary('libppapi_gles2', gles2_sources)
525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)env.AddLibraryToSdk(libppapi_gles2)
54