linuxdcpp-team team mailing list archive
-
linuxdcpp-team team
-
Mailing list archive
-
Message #02133
[Branch ~linuxdcpp-team/linuxdcpp/trunk] Rev 396: Simplify build flags
------------------------------------------------------------
revno: 396
committer: Steven Sheehy <steven.sheehy@xxxxxxxxx>
branch nick: trunk
timestamp: Tue 2010-10-12 23:30:29 -0500
message:
Simplify build flags
modified:
SConstruct
--
lp:linuxdcpp
https://code.launchpad.net/~linuxdcpp-team/linuxdcpp/trunk
Your team LinuxDC++ Team is subscribed to branch lp:linuxdcpp.
To unsubscribe from this branch go to https://code.launchpad.net/~linuxdcpp-team/linuxdcpp/trunk/+edit-subscription
=== modified file 'SConstruct'
--- SConstruct 2010-10-12 04:50:18 +0000
+++ SConstruct 2010-10-13 04:30:29 +0000
@@ -15,6 +15,13 @@
APP_NAME = 'linuxdcpp'
BUILD_PATH = '#/build/'
+# todo: remove -fpermissive and fix the errors
+BUILD_FLAGS = {
+ 'common': ['-I#', '-fpermissive', '-D_GNU_SOURCE', '-D_LARGEFILE_SOURCE', '-D_FILE_OFFSET_BITS=64', '-D_REENTRANT'],
+ 'debug': ['-g', '-ggdb', '-Wall'],
+ 'release' : ['-O3', '-fomit-frame-pointer', '-DNDEBUG']
+}
+
# ----------------------------------------------------------------------
# Function definitions
# ----------------------------------------------------------------------
@@ -102,7 +109,36 @@
env = Environment(ENV = os.environ, options = vars)
-conf = env.Configure(clean = False,
+env['mode'] = 'debug' if env.get('debug') else 'release'
+env['build_path'] = BUILD_PATH + env['mode'] + '/'
+
+if os.environ.has_key('CXX'):
+ env['CXX'] = os.environ['CXX']
+else:
+ print 'CXX env variable is not set, attempting to use g++'
+ env['CXX'] = 'g++'
+
+if os.environ.has_key('CC'):
+ env['CC'] = os.environ['CC']
+
+if os.environ.has_key('CXXFLAGS'):
+ env['CPPFLAGS'] = env['CXXFLAGS'] = os.environ['CXXFLAGS'].split()
+
+if os.environ.has_key('LDFLAGS'):
+ env['LINKFLAGS'] = os.environ['LDFLAGS'].split()
+
+if os.environ.has_key('CFLAGS'):
+ env['CFLAGS'] = os.environ['CFLAGS'].split()
+
+env['CPPDEFINES'] = [] # Initialize as a list so Append doesn't concat strings
+
+env.SConsignFile('build/sconf/.sconsign')
+vars.Save('build/sconf/scache.conf', env)
+Help(vars.GenerateHelpText(env))
+
+env.AddMethod(install_icons, 'InstallIcons')
+
+conf = env.Configure(
custom_tests =
{
'CheckPKGConfig' : check_pkg_config,
@@ -113,28 +149,6 @@
conf_dir = 'build/sconf',
log_file = 'build/sconf/config.log')
-if os.environ.has_key('CXX'):
- conf.env['CXX'] = os.environ['CXX']
-
-if os.environ.has_key('CC'):
- conf.env['CC'] = os.environ['CC']
-
-if os.environ.has_key('CXXFLAGS'):
- conf.env['CPPFLAGS'] = conf.env['CXXFLAGS'] = os.environ['CXXFLAGS'].split()
-
-if os.environ.has_key('LDFLAGS'):
- conf.env['LINKFLAGS'] = os.environ['LDFLAGS'].split()
-
-if os.environ.has_key('CFLAGS'):
- conf.env['CFLAGS'] = os.environ['CFLAGS'].split()
-
-conf.env['CPPDEFINES'] = [] # Initialize as a list so Append doesn't concat strings
-
-env.SConsignFile('build/sconf/.sconsign')
-vars.Save('build/sconf/scache.conf', env)
-Help(vars.GenerateHelpText(env))
-
-env.AddMethod(install_icons, 'InstallIcons')
# ----------------------------------------------------------------------
# Dependencies
@@ -142,10 +156,6 @@
if not 'install' in COMMAND_LINE_TARGETS:
- if not conf.env.get('CXX'):
- print 'CXX env variable is not set, attempting to use g++'
- conf.env['CXX'] = 'g++'
-
if not conf.CheckCXXVersion(env['CXX'], 4, 1):
print 'Compiler version check failed. g++ 4.1 or later is needed'
Exit(1)
@@ -239,9 +249,13 @@
# Compile and link flags
# ----------------------------------------------------------------------
- # todo: remove -fpermissive and fix the errors
- env.Append(CXXFLAGS = ['-I.', '-fpermissive'])
- env.Append(CPPDEFINES = ['_GNU_SOURCE', '_LARGEFILE_SOURCE', ('_FILE_OFFSET_BITS', '64'), '_REENTRANT'])
+ env.MergeFlags(BUILD_FLAGS['common'])
+ env.MergeFlags(BUILD_FLAGS[env['mode']])
+ env.ParseConfig('pkg-config --libs libglade-2.0')
+ env.ParseConfig('pkg-config --libs gthread-2.0')
+
+ env.Append(LIBPATH = env['build_path'] + 'dcpp')
+ env.Prepend(LIBS = 'dcpp')
if os.sys.platform == 'linux2':
env.Append(LINKFLAGS = '-Wl,--as-needed')
@@ -253,17 +267,6 @@
conf.env.Append(CPPDEFINES = ('ICONV_CONST', 'const'))
env.Append(LIBS = ['socket', 'nsl'])
- if env.get('debug'):
- env.Append(CPPDEFINES = '_DEBUG')
- env.Append(CXXFLAGS = ['-g', '-ggdb', '-Wall'])
- env.Append(LINKFLAGS = ['-g', '-ggdb', '-Wall'])
- BUILD_PATH = BUILD_PATH + 'debug/'
-
- elif env.get('release'):
- env.Append(CPPDEFINES = '_NDEBUG')
- env.Append(CXXFLAGS = ['-O3', '-fomit-frame-pointer'])
- BUILD_PATH = BUILD_PATH + 'release/'
-
if env.get('profile'):
env.Append(CXXFLAGS = '-pg')
env.Append(LINKFLAGS= '-pg')
@@ -272,12 +275,6 @@
data_dir = '\'\"%s/share\"\'' % env['PREFIX']
env.Append(CPPDEFINES = ('_DATADIR', data_dir))
- env.ParseConfig('pkg-config --libs libglade-2.0')
- env.ParseConfig('pkg-config --libs gthread-2.0')
-
- env.Append(LIBPATH = BUILD_PATH + 'dcpp')
- env.Prepend(LIBS = 'dcpp')
-
# ----------------------------------------------------------------------
# Build
@@ -286,10 +283,10 @@
Export('env')
# Build the dcpp library
- libdcpp = SConscript(dirs = 'dcpp', variant_dir = BUILD_PATH + 'dcpp', duplicate = 0)
+ libdcpp = SConscript(dirs = 'dcpp', variant_dir = env['build_path'] + 'dcpp', duplicate = 0)
# Build the GUI
- obj_files = SConscript(dirs = 'linux', variant_dir = BUILD_PATH + 'gui', duplicate = 0)
+ obj_files = SConscript(dirs = 'linux', variant_dir = env['build_path'] + 'gui', duplicate = 0)
# Create the executable
env.Program(target = APP_NAME, source = [libdcpp, obj_files])