1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798 |
- """Build configuration for tiny member library.
- """
- Import('*')
- env.PartName('member')
- default_build_mode = 'static'
- include_files = Pattern(src_dir='.', includes=['*.h'], recursive=False).files()
- src_files = Pattern(
- src_dir='tiny/src', includes=['*.c'], recursive=False).files()
- install_files = Pattern(
- src_dir='tiny',
- includes=[
- '*.h', '*.c', '*-test.cc', '*-testhelper.cc', '*-testhelper.h',
- '*.parts', 'Makefile'
- ],
- excludes=['*/platform_specific*/'],
- recursive=True)
- if 'install_package' in env['MODE']:
- env.InstallTopLevel(install_files, sub_dir='epid/member/tiny')
- else:
- env.Part(parts_file='tiny/stdlib/tiny_stdlib.parts')
- env.Part(parts_file='tiny/math/math.parts')
- env.DependsOn([
- Component('tinycommon', requires=REQ.HEADERS),
- Component('member.tiny_stdlib'), Component('member.math')
- ])
- env.Append(CPPPATH='#')
- if 'use-sigrl-by-reference' in env['MODE']:
- env.Append(CPPDEFINES=['USE_SIGRL_BY_REFERENCE'])
- else:
- max_sigrl_entries = ARGUMENTS.get('MAX_SIGRL_ENTRIES', 0)
- n2_max = int(max_sigrl_entries)
- if n2_max:
- env.Append(CPPDEFINES=['MAX_SIGRL_ENTRIES={0}'.format(n2_max)])
- if 'static' in env['MODE'] and 'shared' in env['MODE']:
- PrintError("both shared and static build mode specified for '{}'. "
- .format(env.subst('$PART_SHORT_NAME')))
- if 'static' not in env['MODE'] and 'shared' not in env['MODE']:
- PrintMessage(
- "build mode not specified for '{}'. Defaulting to '{}'"
- .format(env.subst('$PART_SHORT_NAME'), default_build_mode))
- env['MODE'].append(default_build_mode)
- if 'shared' in env['MODE']:
- env.Append(CPPDEFINES=['SHARED'])
- env.ExportCPPDEFINES(['SHARED'])
- outputs = env.SharedLibrary('${PART_SHORT_NAME}', src_files)
- elif 'static' in env['MODE']:
- outputs = env.Library('${PART_SHORT_NAME}', src_files)
- else:
- print env.subst('$PART_SHORT_NAME')
- PrintError("build mode not specified for '{}'. {}".format(
- env.subst('$PART_SHORT_NAME'),
- "Specify either 'shared' or 'static'."))
- sdk_outs = env.Sdk(outputs)
- env.SdkInclude(include_files, sub_dir='epid/${PART_SHORT_NAME}')
- if 'shared' in env['MODE']:
- env.InstallTarget(outputs)
- if 'install_lib' in env['MODE']:
- env.InstallInclude(include_files, sub_dir='epid/${PART_SHORT_NAME}')
- if 'static' in env['MODE']:
- env.InstallLib(outputs)
- is_utest_build = False
- for i in BUILD_TARGETS:
- if "utest::" in str(i):
- is_utest_build = True
- if is_utest_build:
- env.Part(
- parts_file='tiny/unittests/utest.parts',
- CONFIG=DefaultEnvironment().subst('$CONFIG'))
|