diff options
author | sgk@google.com <sgk@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2008-09-11 23:05:11 +0000 |
---|---|---|
committer | sgk@google.com <sgk@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2008-09-11 23:05:11 +0000 |
commit | ca4ce1ca78aabbffef981ab41bfdd646bfeb96d7 (patch) | |
tree | a97a4c3ae633f774e8665d3306b63ccaf6d3b95a | |
parent | a9122956f932ea606843d43aa3fc8a4a4f91f7ed (diff) | |
download | chromium_src-ca4ce1ca78aabbffef981ab41bfdd646bfeb96d7.zip chromium_src-ca4ce1ca78aabbffef981ab41bfdd646bfeb96d7.tar.gz chromium_src-ca4ce1ca78aabbffef981ab41bfdd646bfeb96d7.tar.bz2 |
Capture initial SCons build of {base,net,googleurl}_unittests on Mac:
* Initial flags and options that mimick how XCode builds (e.g.
XCode uses "gcc -x c++" to compile C++, but g++ to link it).
* Load minimal set of SConscript files: base, googleurl, net,
skia, testing, third_party. (breakpad and webkit to come.)
* Correct .cc => .mm file names (multiple places).
* Add base/{platform_thread,platform_test,worker_pool}_mac.mm.
* Remove -Wall when we build Skia, like we do on Linux.
Review URL: http://codereview.chromium.org/2435
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@2097 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r-- | base/SConscript | 12 | ||||
-rw-r--r-- | build/SConscript.main | 99 | ||||
-rw-r--r-- | net/SConscript | 7 | ||||
-rw-r--r-- | skia/SConscript | 2 |
4 files changed, 84 insertions, 36 deletions
diff --git a/base/SConscript b/base/SConscript index 4684674..6be099c 100644 --- a/base/SConscript +++ b/base/SConscript @@ -68,7 +68,6 @@ input_files = [ 'tracked_objects.cc', 'values.cc', 'word_iterator.cc', - 'worker_pool.cc', 'third_party/nspr/prtime.cc', 'third_party/nss/sha512.cc', ] @@ -123,6 +122,7 @@ if env['PLATFORM'] == 'win32': 'waitable_event_win.cc', 'win_util.cc', 'wmi_util.cc', + 'worker_pool.cc', ]) if env['PLATFORM'] in ('darwin', 'posix'): @@ -144,11 +144,13 @@ if env['PLATFORM'] in ('darwin', 'posix'): if env['PLATFORM'] == 'darwin': input_files.extend([ 'base_paths_mac.mm', - 'clipboard_mac.cc', + 'clipboard_mac.mm', 'file_util_mac.mm', 'file_version_info_mac.mm', 'hmac_mac.cc', + 'platform_thread_mac.mm', 'sys_string_conversions_mac.cc', + 'worker_pool_mac.mm', ]) if env['PLATFORM'] == 'posix': @@ -157,6 +159,7 @@ if env['PLATFORM'] == 'posix': 'base_paths_linux.cc', 'file_util_linux.cc', 'sys_string_conversions_linux.cc', + 'worker_pool.cc', ]) env.ChromeStaticLibrary('base', input_files) @@ -302,6 +305,11 @@ if env['PLATFORM'] == 'win32': 'wmi_util_unittest.cc', ]) +if env['PLATFORM'] == 'darwin': + test_files.extend([ + 'platform_test_mac.mm', + ]) + base_unittests = env_tests.ChromeTestProgram('base_unittests', test_files) # Install up a level to allow unit test path assumptions to be valid. diff --git a/build/SConscript.main b/build/SConscript.main index a412622..12cc0b7 100644 --- a/build/SConscript.main +++ b/build/SConscript.main @@ -1,31 +1,6 @@ -# Copyright 2008, Google Inc. -# All rights reserved. -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions are -# met: -# -# * Redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer. -# * Redistributions in binary form must reproduce the above -# copyright notice, this list of conditions and the following disclaimer -# in the documentation and/or other materials provided with the -# distribution. -# * Neither the name of Google Inc. nor the names of its -# contributors may be used to endorse or promote products derived from -# this software without specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# 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. import os import shutil @@ -373,6 +348,62 @@ elif env['PLATFORM'] == 'posix': # Build with system-provided NSS env.ParseConfig('pkg-config --cflags --libs nss') + +elif env['PLATFORM'] == 'darwin': + + # For now, mac only loads the components we know work on Mac, by default. + load = [ + 'base', + #'breakpad', + 'googleurl', + 'net', + 'skia', + 'testing', + 'third_party', + #'webkit', + ] + + env.Replace( + # Reproduce XCode's behavior of using gcc even to link C++, + # and distinguishing it the -x c++ option. + CC = 'gcc-4.2', + CXX = 'g++-4.2', + LINK = '$CXX', + + CFLAGS = [ + '-std=c99', + ], + CXXFLAGS = [ + '-fvisibility-inlines-hidden', + ], + CCFLAGS = [ + '-fmessage-length=0', + '-pipe', + '-O0', + '-mdynamic-no-pic', + '-Werror', + '-Wnewline-eof', + '-fvisibility=hidden', + '-gdwarf-2', + '-Wall', + '-Wendif-labels', + '-fstack-protector', + '-fstack-protector-all', + ], + CPPDEFINES = [ + 'DEBUG', + ], + + FRAMEWORKPATH = [ + env.Dir('${TARGET_ROOT}'), + '/System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks', + ], + FRAMEWORKS = [ + 'ApplicationServices', + 'Foundation', + ], + ) + else: print "Unsupported SCons $PLATFORM value %s" % repr(env['PLATFORM']) @@ -463,15 +494,19 @@ if LoadComponent('third_party'): '$BSDIFF_DIR/SConscript', '$BZIP2_DIR/SConscript', '$ICU38_DIR/SConscript', - '$LIBJPEG_DIR/SConscript', '$LIBPNG_DIR/SConscript', - '$LIBXML_DIR/SConscript', - '$LIBXSLT_DIR/SConscript', '$LZMA_SDK_DIR/SConscript', '$MODP_B64_DIR/SConscript', '$ZLIB_DIR/SConscript', ]) -# This is temoporary until we get this lib to build on other platforms. + # Temporary until we get these building on Mac. + if env['PLATFORM'] != 'darwin': + sconscripts.extend([ + '$LIBJPEG_DIR/SConscript', + '$LIBXML_DIR/SConscript', + '$LIBXSLT_DIR/SConscript', + ]) + # This is temporary until we get this lib to build on other platforms. if env['PLATFORM'] == 'win32': sconscripts.extend([ '$BSPATCH_DIR/SConscript', diff --git a/net/SConscript b/net/SConscript index 7b5c187..0b3fd50 100644 --- a/net/SConscript +++ b/net/SConscript @@ -125,7 +125,7 @@ if env['PLATFORM'] == 'win32': if env['PLATFORM'] == 'darwin': input_files.extend([ - 'base/platform_mime_util_mac.cc', + 'base/platform_mime_util_mac.mm', ]) if env['PLATFORM'] == 'posix': @@ -253,6 +253,11 @@ if env['PLATFORM'] == 'win32': 'url_request/url_request_unittest.cc', ]) +if env['PLATFORM'] == 'darwin': + unittest_files.extend([ + '../base/platform_test_mac.o', + ]) + net_unittests = env_tests.ChromeTestProgram('net_unittests', unittest_files) install_targets = net_unittests[:] diff --git a/skia/SConscript b/skia/SConscript index a255067..a646836 100644 --- a/skia/SConscript +++ b/skia/SConscript @@ -36,7 +36,7 @@ if env['PLATFORM'] == 'win32': '/wd4800', ], ) -elif env['PLATFORM'] == 'posix': +elif env['PLATFORM'] in ('posix', 'darwin'): if '-Wall' in env['CCFLAGS']: # We're not responsible for bad warning hygiene in this third party code. env['CCFLAGS'].remove('-Wall') |