| # Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| |
| __doc__ = """ |
| Configuration for building base_unittests{,.exe}. |
| """ |
| |
| Import('env') |
| |
| env = env.Clone() |
| |
| env.ApplySConscript([ |
| '$BASE_DIR/using_base.scons', |
| '$BASE_DIR/gfx/using_base_gfx.scons', |
| '$GTEST_DIR/../using_gtest.scons', |
| '$ICU38_DIR/using_icu38.scons', |
| '$LIBPNG_DIR/using_libpng.scons', |
| '$SKIA_DIR/using_skia.scons', |
| '$ZLIB_DIR/using_zlib.scons', |
| ]) |
| |
| if env.Bit('posix'): |
| env.ApplySConscript([ |
| '$LIBEVENT_DIR/using_libevent.scons', |
| ]) |
| |
| if env.Bit('windows'): |
| env.Prepend( |
| CCFLAGS = [ |
| '/TP', |
| '/WX', |
| ], |
| ) |
| |
| if env.Bit('linux'): |
| env.Append( |
| # We need 'Xss' (X Screen Saver) in LIBS if we want idletimer_unittest |
| LIBS = [ |
| 'event', |
| ], |
| ) |
| |
| input_files = ChromeFileList([ |
| # TODO(sgk): |
| # We're deliberately mis-indenting the MSVSFilter() calls here |
| # so we don't have to re-indent the file name entries when the |
| # MSVSFilter() calls go away in (favor of automated generation |
| # of the heirarchy). |
| MSVSFilter('support', [ |
| 'multiprocess_test.h', |
| 'no_windows2000_unittest.h', |
| 'perf_test_suite.h', |
| 'run_all_unittests.cc', |
| 'test_suite.h', |
| ]), |
| |
| MSVSFilter('base_tests', [ |
| 'at_exit_unittest.cc', |
| 'atomicops_unittest.cc', |
| 'clipboard_unittest.cc', |
| 'command_line_unittest.cc', |
| 'condition_variable_unittest.cc', |
| 'directory_watcher_unittest.cc', |
| 'field_trial_unittest.cc', |
| 'file_path_unittest.cc', |
| 'file_util_unittest.cc', |
| 'file_version_info_unittest.cc', |
| 'histogram_unittest.cc', |
| 'hmac_unittest.cc', |
| 'idletimer_unittest.cc', |
| 'json_reader_unittest.cc', |
| 'json_writer_unittest.cc', |
| 'lazy_instance_unittest.cc', |
| 'linked_ptr_unittest.cc', |
| 'message_loop_unittest.cc', |
| 'gfx/native_theme_unittest.cc', |
| 'object_watcher_unittest.cc', |
| 'observer_list_unittest.cc', |
| 'path_service_unittest.cc', |
| 'pe_image_unittest.cc', |
| 'pickle_unittest.cc', |
| 'pr_time_unittest.cc', |
| 'process_util_unittest.cc', |
| 'rand_util_unittest.cc', |
| 'gfx/rect_unittest.cc', |
| 'ref_counted_unittest.cc', |
| 'scoped_bstr_win_unittest.cc', |
| 'scoped_comptr_win_unittest.cc', |
| 'scoped_ptr_unittest.cc', |
| 'sha2_unittest.cc', |
| 'shared_memory_unittest.cc', |
| 'simple_thread_unittest.cc', |
| 'singleton_unittest.cc', |
| 'stack_container_unittest.cc', |
| 'stats_table_unittest.cc', |
| 'string_escape_unittest.cc', |
| 'string_piece_unittest.cc', |
| 'string_tokenizer_unittest.cc', |
| 'string_util_unittest.cc', |
| 'sys_info_unittest.cc', |
| 'sys_string_conversions_unittest.cc', |
| 'system_monitor_unittest.cc', |
| 'thread_collision_warner_unittest.cc', |
| 'thread_local_storage_unittest.cc', |
| 'thread_local_unittest.cc', |
| 'thread_unittest.cc', |
| 'time_unittest.cc', |
| 'time_win_unittest.cc', |
| 'timer_unittest.cc', |
| 'tracked_objects_unittest.cc', |
| 'tuple_unittest.cc', |
| 'values_unittest.cc', |
| 'waitable_event_unittest.cc', |
| 'waitable_event_watcher_unittest.cc', |
| 'watchdog_unittest.cc', |
| 'win_util_unittest.cc', |
| 'wmi_util_unittest.cc', |
| 'word_iterator_unittest.cc', |
| ]), |
| |
| MSVSFilter('gfx_tests', [ |
| 'gfx/png_codec_unittest.cc', |
| ]), |
| ]) |
| |
| if env.Bit('posix'): |
| # Remove files that still need to be ported from the input_files list. |
| # TODO(port): delete files from this list as they get ported. |
| input_files.Remove( |
| # We have an implementation of idle_timer, but it's unclear if we want it |
| # yet, so it's commented out for now. Leave this 'unported'. |
| 'idletimer_unittest.cc', |
| |
| 'gfx/native_theme_unittest.cc', |
| ) |
| |
| if env.Bit('linux'): |
| input_files.Append( |
| 'data_pack_unittest.cc', |
| ) |
| |
| if env.Bit('mac'): |
| # Remove files that still need to be ported from the input_files list. |
| # TODO(port): delete files from this list as they get ported. |
| input_files.Remove( |
| 'process_util_unittest.cc', |
| 'stats_table_unittest.cc', |
| ) |
| |
| |
| if not env.Bit('windows'): |
| # Remove Windows-specific tests. |
| input_files.Remove( |
| 'directory_watcher_unittest.cc', |
| 'file_version_info_unittest.cc', |
| 'object_watcher_unittest.cc', |
| 'pe_image_unittest.cc', |
| 'scoped_bstr_win_unittest.cc', |
| 'scoped_comptr_win_unittest.cc', |
| 'system_monitor_unittest.cc', |
| 'sys_string_conversions_unittest.cc', |
| 'time_win_unittest.cc', |
| 'win_util_unittest.cc', |
| 'wmi_util_unittest.cc', |
| ) |
| |
| if env.Bit('mac'): |
| # Mac-specific tests. |
| input_files.Extend([ |
| 'mac_util_unittest.cc', |
| ]) |
| |
| env.ChromeTestProgram('base_unittests', input_files) |
| |
| p = env.ChromeMSVSProject('build/base_unittests.vcproj', |
| dest='$CHROME_SRC_DIR/base/build/base_unittests.vcproj', |
| guid='{27A30967-4BBA-48D1-8522-CDE95F7B1CEC}', |
| dependencies=[ |
| '$BASE_DIR/build/base.vcproj', |
| '$ZLIB_DIR/zlib.vcproj', |
| '$ICU38_DIR/build/icu.vcproj', |
| '$BASE_DIR/build/base_gfx.vcproj', |
| '$TESTING_DIR/gtest.vcproj', |
| '$LIBPNG_DIR/libpng.vcproj', |
| '$SKIA_DIR/skia.vcproj', |
| ], |
| files=input_files, |
| tools = [ |
| 'VCPreBuildEventTool', |
| 'VCCustomBuildTool', |
| 'VCXMLDataGeneratorTool', |
| 'VCWebServiceProxyGeneratorTool', |
| 'VCMIDLTool', |
| MSVSTool('VCCLCompilerTool', |
| PreprocessorDefinitions='UNIT_TEST'), |
| 'VCManagedResourceCompilerTool', |
| 'VCResourceCompilerTool', |
| 'VCPreLinkEventTool', |
| 'VCLinkerTool', |
| 'VCALinkTool', |
| 'VCManifestTool', |
| 'VCXDCMakeTool', |
| 'VCBscMakeTool', |
| 'VCFxCopTool', |
| 'VCAppVerifierTool', |
| 'VCWebDeploymentTool', |
| 'VCPostBuildEventTool', |
| ]) |
| |
| p.AddConfig('Debug|Win32', |
| ConfigurationType = '1', |
| InheritedPropertySheets = [ |
| '$(SolutionDir)../build/debug.vsprops', |
| './base_unittests.vsprops', |
| '$(SolutionDir)../testing/using_gtest.vsprops', |
| ]) |
| |
| p.AddConfig('Release|Win32', |
| ConfigurationType = '1', |
| InheritedPropertySheets = [ |
| '$(SolutionDir)../build/release.vsprops', |
| './base_unittests.vsprops', |
| '$(SolutionDir)../testing/using_gtest.vsprops', |
| ]) |
| |
| # TODO(sgk) should this be moved into base.lib like everything else? This will |
| # require updating a bunch of other SConscripts which link directly against |
| # this generated object file. |
| env.StaticObject('perftimer.cc') |
| |
| # Since run_all_perftests supplies a main, we cannot have it in base.lib |
| env.StaticObject('run_all_perftests.cc') |