10 # Permission is hereby granted, free of charge, to any person obtaining
11 # a copy of this software and associated documentation files (the
12 # "Software"), to deal in the Software without restriction, including
13 # without limitation the rights to use, copy, modify, merge, publish,
14 # distribute, sublicense, and/or sell copies of the Software, and to
15 # permit persons to whom the Software is furnished to do so, subject to
16 # the following conditions:
18 # The above copyright notice and this permission notice shall be included
19 # in all copies or substantial portions of the Software.
21 # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY
22 # KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
23 # WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
24 # NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
25 # LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
26 # OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
27 # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
30 __revision__
= "__FILE__ __REVISION__ __DATE__ __DEVELOPER__"
39 def findIt(program
, env
):
40 # First search in the SCons path and then the OS path:
41 borwin
= env
.WhereIs(program
) or SCons
.Util
.WhereIs(program
)
43 dir = os
.path
.dirname(borwin
)
44 env
.PrependENVPath('PATH', dir)
47 def generate(env
) -> None:
49 """Add Builders and construction variables for bcc to an
51 static_obj
, shared_obj
= SCons
.Tool
.createObjBuilders(env
)
52 for suffix
in ['.c', '.cpp']:
53 static_obj
.add_action(suffix
, SCons
.Defaults
.CAction
)
54 shared_obj
.add_action(suffix
, SCons
.Defaults
.ShCAction
)
55 static_obj
.add_emitter(suffix
, SCons
.Defaults
.StaticObjectEmitter
)
56 shared_obj
.add_emitter(suffix
, SCons
.Defaults
.SharedObjectEmitter
)
59 env
['CCFLAGS'] = SCons
.Util
.CLVar('')
60 env
['CFLAGS'] = SCons
.Util
.CLVar('')
61 env
['CCCOM'] = '$CC -q $CFLAGS $CCFLAGS $CPPFLAGS $_CPPDEFFLAGS $_CPPINCFLAGS -c -o$TARGET $SOURCES'
63 env
['SHCCFLAGS'] = SCons
.Util
.CLVar('$CCFLAGS')
64 env
['SHCFLAGS'] = SCons
.Util
.CLVar('$CFLAGS')
65 env
['SHCCCOM'] = '$SHCC -WD $SHCFLAGS $SHCCFLAGS $CPPFLAGS $_CPPDEFFLAGS $_CPPINCFLAGS -c -o$TARGET $SOURCES'
66 env
['CPPDEFPREFIX'] = '-D'
67 env
['CPPDEFSUFFIX'] = ''
68 env
['INCPREFIX'] = '-I'
70 env
['SHOBJSUFFIX'] = '.dll'
71 env
['STATIC_AND_SHARED_OBJECTS_ARE_THE_SAME'] = 0
72 env
['CFILESUFFIX'] = '.cpp'
75 return findIt('bcc32', env
)
79 # indent-tabs-mode:nil
81 # vim: set expandtab tabstop=4 shiftwidth=4: