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

Side by Side Diff: site_scons/site_tools/wix.py

Issue 624713003: Keep only base/extractor.[cc|h]. (Closed) Base URL: https://chromium.googlesource.com/external/omaha.git@master
Patch Set: Created 6 years, 2 months 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 unified diff | Download patch
« no previous file with comments | « site_scons/site_tools/omaha_builders.py ('k') | standalone/__init__.py » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 """SCons.Tool.wix
2
3 Tool-specific initialization for wix, the Windows Installer XML Tool.
4
5 There normally shouldn't be any need to import this module directly.
6 It will usually be imported through the generic SCons.Tool.Tool()
7 selection method.
8 """
9
10 #
11 # Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 The SCons F oundation
12 #
13 # Permission is hereby granted, free of charge, to any person obtaining
14 # a copy of this software and associated documentation files (the
15 # "Software"), to deal in the Software without restriction, including
16 # without limitation the rights to use, copy, modify, merge, publish,
17 # distribute, sublicense, and/or sell copies of the Software, and to
18 # permit persons to whom the Software is furnished to do so, subject to
19 # the following conditions:
20 #
21 # The above copyright notice and this permission notice shall be included
22 # in all copies or substantial portions of the Software.
23 #
24 # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY
25 # KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
26 # WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
27 # NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
28 # LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
29 # OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
30 # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
31 #
32
33 __revision__ = "src/engine/SCons/Tool/wix.py 3897 2009/01/13 06:45:54 scons"
34
35 import SCons.Builder
36 import SCons.Action
37 import os
38 import string
39
40 def generate(env):
41 """Add Builders and construction variables for WiX to an Environment."""
42 if not exists(env):
43 return
44
45 env['WIXCANDLEFLAGS'] = ['-nologo']
46 env['WIXCANDLEINCLUDE'] = []
47 env['WIXCANDLECOM'] = '$WIXCANDLE $WIXCANDLEFLAGS -I $WIXCANDLEINCLUDE -o ${ TARGET} ${SOURCE}'
48
49 env['WIXLIGHTFLAGS'].append( '-nologo' )
50 env['WIXLIGHTCOM'] = "$WIXLIGHT $WIXLIGHTFLAGS -out ${TARGET} ${SOURCES}"
51
52 #BEGIN_OMAHA_ADDITION
53 # Necessary to build multiple MSIs from a single .wxs without explicitly
54 # building the .wixobj.
55 # Follows the convention of obj file prefixes in other tools, such as
56 # OBJPREFIX in msvc.py.
57 env['WIXOBJPREFIX'] = ''
58 #END_OMAHA_ADDITION
59
60 object_builder = SCons.Builder.Builder(
61 action = '$WIXCANDLECOM',
62 #BEGIN_OMAHA_ADDITION
63 prefix = '$WIXOBJPREFIX',
64 #END_OMAHA_ADDITION
65 #BEGIN_OMAHA_CHANGE
66 # The correct/default suffix is .wixobj, not .wxiobj.
67 # suffix = '.wxiobj',
68 suffix = '.wixobj',
69 #END_OMAHA_CHANGE
70 src_suffix = '.wxs')
71
72 linker_builder = SCons.Builder.Builder(
73 action = '$WIXLIGHTCOM',
74 #BEGIN_OMAHA_CHANGE
75 # The correct/default suffix is .wixobj, not .wxiobj.
76 # src_suffix = '.wxiobj',
77 src_suffix = '.wixobj',
78 #END_OMAHA_CHANGE
79 src_builder = object_builder)
80
81 env['BUILDERS']['WiX'] = linker_builder
82
83 def exists(env):
84 env['WIXCANDLE'] = 'candle.exe'
85 env['WIXLIGHT'] = 'light.exe'
86
87 #BEGIN_OMAHA_CHANGE
88 # # try to find the candle.exe and light.exe tools and
89 # try to find the candle.exe and light.exe tools and
90 #END_OMAHA_CHANGE
91 # add the install directory to light libpath.
92 #BEGIN_OMAHA_CHANGE
93
94 # For backwards compatibility, search PATH environment variable for tools.
95 # #for path in os.environ['PATH'].split(os.pathsep):
96 # for path in string.split(os.environ['PATH'], os.pathsep):
97 for path in os.environ['PATH'].split(os.pathsep):
98 #END_OMAHA_CHANGE
99 if not path:
100 continue
101
102 # workaround for some weird python win32 bug.
103 if path[0] == '"' and path[-1:]=='"':
104 path = path[1:-1]
105
106 # normalize the path
107 path = os.path.normpath(path)
108
109 # search for the tools in the PATH environment variable
110 try:
111 #BEGIN_OMAHA_CHANGE
112 # if env['WIXCANDLE'] in os.listdir(path) and\
113 # env['WIXLIGHT'] in os.listdir(path):
114 files = os.listdir(path)
115 if (env['WIXCANDLE'] in files and
116 env['WIXLIGHT'] in files):
117 # env.PrependENVPath('PATH', path)
118 env.PrependENVPath('PATH', path)
119 # env['WIXLIGHTFLAGS'] = [ os.path.join( path, 'wixui.wixlib' ) ,
120 # '-loc',
121 # os.path.join( path, 'WixUI_en-us.wxl ' ) ]
122 # return 1
123 break
124 #END_OMAHA_CHANGE
125 except OSError:
126 pass # ignore this, could be a stale PATH entry.
127
128 #BEGIN_OMAHA_ADDITION
129 # Search for the tools in the SCons paths.
130 for path in env['ENV'].get('PATH', '').split(os.pathsep):
131 try:
132 files = os.listdir(path)
133 if (env['WIXCANDLE'] in files and
134 env['WIXLIGHT'] in files):
135 # The following is for compatibility with versions prior to 3.
136 # Version 3 no longer has these files.
137 extra_files = [os.path.join(i) for i in ['wixui.wixlib',
138 'WixUI_en-us.wxl']]
139 if (os.path.exists(extra_files[0]) and
140 os.path.exists(extra_files[1])):
141 env.Append(WIXLIGHTFLAGS=[
142 extra_files[0],
143 '-loc', extra_files[1]])
144 else:
145 # Create empty variable so the append in generate() works.
146 env.Append(WIXLIGHTFLAGS=[])
147
148 # WiX was found.
149 return 1
150 except OSError:
151 pass # ignore this, could be a stale PATH entry.
152 #END_OMAHA_ADDITION
153
154 return None
OLDNEW
« no previous file with comments | « site_scons/site_tools/omaha_builders.py ('k') | standalone/__init__.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698