forked from mirror/waf
You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
44 lines
1.4 KiB
Python
44 lines
1.4 KiB
Python
from waflib.TaskGen import feature
|
|
|
|
def configure(ctx):
|
|
ctx.load('clang_cl')
|
|
ctx.env.CFLAGS.extend(['/EHsc', '/O12', '/TC', '/GL', '/w', '/U __llvm__'])
|
|
for lib in ['msvcrt']:
|
|
ctx.check(
|
|
compiler='c',
|
|
lib=lib,
|
|
uselib_store='SYSTEM')
|
|
for lib in ['libhl']:
|
|
ctx.check(
|
|
compiler='c',
|
|
lib=lib,
|
|
use='HL',
|
|
uselib_store='HL')
|
|
|
|
def build(ctx):
|
|
ctx.env.LINKFLAGS.extend(['/NODEFAULTLIB:libcmt'])
|
|
ctx.program(
|
|
source = ['waf/src/main.c'],
|
|
includes = [ctx.env.ROOT_INCLUDE_DIR],
|
|
target = 'app',
|
|
use = ['SYSTEM', 'HL'])
|
|
|
|
@feature('cxxprogram', 'cprogram')
|
|
def call_me_static(self):
|
|
attr_name = 'source'
|
|
attr = getattr(self, attr_name, [])
|
|
if len(attr):
|
|
setattr(self, attr_name, [])
|
|
for x in self.to_list(attr):
|
|
node = self.path.make_node(x)
|
|
tg = self.bld.get_tgen_by_name(node.name)
|
|
if not tg:
|
|
self.bld.fatal('Could not find a task generator by the name %r' % x)
|
|
tg.post()
|
|
for tsk in tg.tasks:
|
|
for out in tsk.outputs:
|
|
if out.name.endswith('.c'):
|
|
self.create_compiled_task('c', out)
|
|
if not self.compiled_tasks:
|
|
self.fatal('Could not find a source file for for %r' % self.name)
|