52 lines
1.3 KiB
Python
52 lines
1.3 KiB
Python
|
# site_init.py
|
||
|
#
|
||
|
# This file is read before every SConstruct and SConscript. So, anything that
|
||
|
# should be available to every build script should go here.
|
||
|
#
|
||
|
# Eryn Wells <eryn@erynwells.me>
|
||
|
|
||
|
import os.path
|
||
|
import SCons.Defaults
|
||
|
import binaries
|
||
|
|
||
|
|
||
|
BUILD_DIR = Dir('#build')
|
||
|
LIB_DIR = Dir('#lib')
|
||
|
SRC_DIR = Dir('#src')
|
||
|
TEST_DIR = Dir('#test')
|
||
|
|
||
|
#
|
||
|
# SCons Command Line Options
|
||
|
#
|
||
|
|
||
|
AddOption('--show-build-cmds',
|
||
|
dest='build_cmds',
|
||
|
action='store_true',
|
||
|
help='Show build commands instead of friendly build messages')
|
||
|
AddOption('--mode',
|
||
|
dest='mode',
|
||
|
metavar='MODE',
|
||
|
help='The build mode')
|
||
|
|
||
|
#
|
||
|
# Environment Configuration
|
||
|
#
|
||
|
|
||
|
def has_clang(env):
|
||
|
_, cc_tail = os.path.split(env['CC'])
|
||
|
_, cxx_tail = os.path.split(env['CXX'])
|
||
|
return any([cc_tail.startswith('clang'), cxx_tail.startswith('clang')])
|
||
|
|
||
|
default_env = SCons.Defaults.DefaultEnvironment()
|
||
|
default_env['CC'] = binaries.first(['clang', 'gcc'])
|
||
|
default_env['CXX'] = binaries.first(['clang++', 'g++'])
|
||
|
|
||
|
default_env.Append(CCFLAGS=['-Wall', '-Wextra', '-pedantic'])
|
||
|
if has_clang(default_env):
|
||
|
# Only clang supports color.
|
||
|
default_env.Append(CCFLAGS=['-fcolor-diagnostics'])
|
||
|
default_env.Append(CFLAGS=['-std=c99'])
|
||
|
default_env.Append(CXXFLAGS=['-std=c++11'])
|
||
|
|
||
|
|