OLD | NEW |
| (Empty) |
1 # Copyright 2009, Google Inc. | |
2 # All rights reserved. | |
3 # | |
4 # Redistribution and use in source and binary forms, with or without | |
5 # modification, are permitted provided that the following conditions are | |
6 # met: | |
7 # | |
8 # * Redistributions of source code must retain the above copyright | |
9 # notice, this list of conditions and the following disclaimer. | |
10 # * Redistributions in binary form must reproduce the above | |
11 # copyright notice, this list of conditions and the following disclaimer | |
12 # in the documentation and/or other materials provided with the | |
13 # distribution. | |
14 # * Neither the name of Google Inc. nor the names of its | |
15 # contributors may be used to endorse or promote products derived from | |
16 # this software without specific prior written permission. | |
17 # | |
18 # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS | |
19 # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT | |
20 # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR | |
21 # A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT | |
22 # OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, | |
23 # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT | |
24 # LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, | |
25 # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY | |
26 # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | |
27 # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE | |
28 # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | |
29 | |
30 | |
31 Import('env') | |
32 | |
33 env.Append( | |
34 CPPDEFINES = [ | |
35 '_MIDL_USE_GUIDDEF_', | |
36 'DLL_NPAPI_HOST_CONTROL_EXPORT' | |
37 ], | |
38 CCFLAGS = [ | |
39 '/Wp64', | |
40 '/TP', | |
41 '/FIplugin/npapi_host_control/win/precompile.h' | |
42 ], | |
43 CPPPATH = [ | |
44 'win', | |
45 '$SCONSTRUCT_DIR/plugin/npapi_host_control/win', | |
46 '$NPAPI_DIR', | |
47 ], | |
48 LIBS = [ | |
49 'wininet', | |
50 ], | |
51 LINKFLAGS = [ | |
52 '/DEF:$SCONSTRUCT_DIR/plugin/npapi_host_control/win/npapi_host_control.def' | |
53 ], | |
54 ) | |
55 | |
56 env.Append( | |
57 CPPDEFINES = [ | |
58 ('O3D_PLUGIN_NAME', '\\"$O3D_PLUGIN_NAME\\"'), | |
59 ('O3D_PLUGIN_DESCRIPTION', '\\"$O3D_PLUGIN_DESCRIPTION\\"'), | |
60 ('O3D_PLUGIN_VERSION', '\\"$O3D_PLUGIN_VERSION\\"') | |
61 ]) | |
62 | |
63 resource_files = env.RES('win/npapi_host_control.rc'), | |
64 | |
65 inputs = [ | |
66 'win/npapi_host_control_i.c', | |
67 'win/npapi_host_control.cc', | |
68 'win/host_control.cc', | |
69 'win/np_browser_proxy.cc', | |
70 'win/np_object_proxy.cc', | |
71 'win/np_plugin_proxy.cc', | |
72 'win/dispatch_proxy.cc', | |
73 'win/stream_operation.cc', | |
74 'win/variant_utils.cc', | |
75 resource_files, | |
76 ] | |
77 | |
78 if env['TARGET_PLATFORM'] == 'WINDOWS': | |
79 env['PCH'], obj = env.PCH('win/precompile.cc') | |
80 env['PCHSTOP'] = 'plugin/npapi_host_control/win/precompile.h' | |
81 inputs += [obj] | |
82 else: | |
83 inputs += ['precompile.cc'] | |
84 | |
85 | |
86 type_lib = env.TypeLibrary(source=['win/npapi_host_control.idl']) | |
87 | |
88 # Must not register the plugin while building. Only installing should | |
89 # register the plugin. | |
90 o3d_host_control = env.SharedLibrary('o3d_host', inputs) | |
91 env.Requires(o3d_host_control, type_lib) | |
92 env.Requires(resource_files, type_lib) | |
93 | |
94 env.Replicate('$ARTIFACTS_DIR', o3d_host_control) | |
95 | |
96 # TODO: have a common way to do colliding installs like this. | |
97 # Do the install step only if this variant is the first target. | |
98 if env.Bit('windows'): | |
99 if (env['BUILD_TYPE'] == ARGUMENTS.get('MODE') or | |
100 (ARGUMENTS.get('MODE', 'default') == 'default' and | |
101 env['BUILD_TYPE'] == 'dbg-d3d')): | |
102 i = env.Replicate('$IE_PLUGIN_DIR', o3d_host_control[0]) | |
103 c = env.AddPostAction(i, '$REGSVR $REGSVRFLAGS $TARGET') | |
104 env.Alias('install', c) | |
OLD | NEW |