Allow a few build-time arguments to the C++ build
[zxing.git] / cpp / SConscript
1 Decider('MD5')\r
2 \r
3 vars = Variables()\r
4 vars.Add(BoolVariable('DEBUG', 'Set to disable optimizations', 1))\r
5 vars.Add(BoolVariable('PIC', 'Set to 1 for to always generate PIC code', 0))\r
6 env = Environment(variables = vars)\r
7 \r
8 debug = env['DEBUG']\r
9 compile_options = {}\r
10 flags = []\r
11 if debug:\r
12         #compile_options['CPPDEFINES'] = "-DDEBUG"\r
13         flags.append("-O0 -g3 -ggdb -Wall")\r
14 else:\r
15         flags.append("-O -g3 -Wall")\r
16 if env['PIC']:\r
17         flags.append("-fPIC")\r
18 \r
19 compile_options['CXXFLAGS'] = ' '.join(flags)\r
20 \r
21 \r
22 def all_files(dir, ext='.cpp', level=5):\r
23         files = []\r
24         for i in range(1, level):\r
25                 files += Glob(dir + ('/*' * i) + ext) \r
26         return files\r
27 \r
28 \r
29 \r
30 magick_include = ['/usr/include/ImageMagick/']\r
31 magick_libs = ['Magick++', 'MagickWand', 'MagickCore']\r
32 \r
33 cppunit_libs = ['cppunit']\r
34 \r
35 zxing_files = all_files('core/src')\r
36 \r
37 zxing_include = ['core/src']\r
38 zxing_libs = env.Library('zxing', source=zxing_files, CPPPATH=zxing_include, **compile_options)\r
39 \r
40 app_files = ['magick/src/MagickBitmapSource.cpp', 'magick/src/main.cpp']\r
41 app_executable = env.Program('zxing', app_files, CPPPATH=magick_include + zxing_include, LIBS=magick_libs + zxing_libs, **compile_options)\r
42 \r
43 test_files = all_files('core/tests/src')\r
44 test_executable = env.Program('testrunner', test_files, CPPPATH=zxing_include, LIBS=zxing_libs + cppunit_libs, **compile_options)\r
45 \r
46 \r
47 Alias('lib', zxing_libs)\r
48 Alias('tests', test_executable)\r
49 Alias('zxing', app_executable)\r
50 \r