| # Copyright (c) 2010 The Chromium OS Authors. All rights reserved. |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| |
| import os |
| import sys |
| |
| base_env = Environment( |
| CPPPATH=['.', '..'], |
| CCFLAGS=['-ggdb', '-fPIC', '-fno-exceptions', '-Wall', '-Werror'], |
| LINKFLAGS=['-fPIC'], |
| ) |
| for key in Split('CC CXX AR RANLIB LD NM CFLAGS CCFLAGS LINKFLAGS'): |
| value = os.environ.get(key) |
| if value != None: |
| base_env[key] = Split(value) |
| |
| # Fix issue with scons not passing some vars through the environment. |
| for key in Split('PKG_CONFIG PKG_CONFIG_LIBDIR PKG_CONFIG_PATH SYSROOT'): |
| if os.environ.has_key(key): |
| base_env['ENV'][key] = os.environ[key] |
| |
| SOURCES=['chromeos_cryptohome.cc', |
| 'chromeos_input_method.cc', |
| 'chromeos_input_method_ui.cc', |
| 'chromeos_keyboard.cc', |
| 'chromeos_login.cc', |
| 'chromeos_mount.cc', |
| 'chromeos_network.cc', |
| 'chromeos_power.cc', |
| 'chromeos_screen_lock.cc', |
| 'chromeos_speech_synthesis.cc', |
| 'chromeos_synaptics.cc', |
| 'chromeos_syslogs.cc', |
| 'chromeos_update.cc', |
| 'marshal.cc', |
| 'version_check.cc', |
| ] |
| |
| env = base_env.Clone() |
| env.Append(LIBS=['base', 'chromeos', 'rt']) |
| |
| # glib, dbus, and ibus environment |
| env.ParseConfig('%s --cflags --libs dbus-1 glib-2.0 gudev-1.0 dbus-glib-1 ibus-1.0 libpcrecpp libxklavier' % env['ENV']['PKG_CONFIG']) |
| |
| Default(env.SharedLibrary('cros', SOURCES)) |
| |
| env_test = base_env.Clone() |
| env_test.Append(LIBS=['base', 'dl', 'rt']) |
| |
| env_test.ParseConfig('%s --cflags --libs gobject-2.0 dbus-1' % env_test['ENV']['PKG_CONFIG']) |
| |
| env_gtest = env_test.Clone() |
| env_gtest.Append(LIBS=['gtest']) |
| |
| Load = base_env.Object('load.cc') |
| |
| tests = [ |
| env_test.Program('monitor_power', ['monitor_power.cc', Load]), |
| env_gtest.Program('monitor_input_method', ['monitor_input_method.cc', Load]), |
| env_gtest.Program('monitor_keyboard', ['monitor_keyboard.cc', Load]), |
| # This is broken now. |
| # env_test.Program('monitor_network', ['monitor_network.cc', Load]), |
| env_test.Program('monitor_mount', ['monitor_mount.cc', Load]), |
| env_test.Program('monitor_input_method_ui', |
| ['monitor_input_method_ui.cc', Load]), |
| env_test.Program('login_drive', ['drive_login.cc', Load]), |
| env_test.Program('cryptohome_drive', ['drive_cryptohome.cc', Load]) |
| ] |
| test_alias = Alias('test', tests) |
| AlwaysBuild(test_alias) |
| |
| Alias('crosapi', base_env.StaticLibrary('crosapi', Load), CCFLAGS='-ggdb') |