summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--build/SConscript.main.linux96
-rw-r--r--chrome/SConstruct23
-rw-r--r--third_party/bsdiff/SConscript8
-rw-r--r--third_party/bspatch/SConscript8
-rw-r--r--third_party/bzip2/SConscript17
-rw-r--r--third_party/libjpeg/SConscript16
-rw-r--r--third_party/libpng/SConscript15
-rw-r--r--third_party/zlib/SConscript16
8 files changed, 173 insertions, 26 deletions
diff --git a/build/SConscript.main.linux b/build/SConscript.main.linux
new file mode 100644
index 0000000..3f50012
--- /dev/null
+++ b/build/SConscript.main.linux
@@ -0,0 +1,96 @@
+# -*- mode: python -*-
+# 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.
+
+# TODO(keunwoo): This file is a temporary shim while we debug problems
+# with SConscript.main under Linux. We'll merge this back into
+# SConscript.main someday.
+
+import os
+import shutil
+import sys
+
+
+Import('PLATFORM')
+
+
+# Base -------------------------------------------------------------------
+
+base_env = Environment(
+ BUILD_TYPE = ARGUMENTS.get('BUILD_TYPE', 'Hammer'),
+ TARGET_ROOT = '#/$BUILD_TYPE',
+ OBJ_ROOT = '$TARGET_ROOT',
+
+ THIRD_PARTY_DIR = '#/../third_party',
+ BSDIFF_DIR = '$THIRD_PARTY_DIR/bsdiff',
+ BSPATCH_DIR = '$THIRD_PARTY_DIR/bspatch',
+ BZIP2_DIR = '$THIRD_PARTY_DIR/bzip2',
+ ICU38_DIR = '$THIRD_PARTY_DIR/icu38',
+ LIBJPEG_DIR = '$THIRD_PARTY_DIR/libjpeg',
+ LIBPNG_DIR = '$THIRD_PARTY_DIR/libpng',
+ # TODO(keunwoo): Port over other third_party packages.
+ ZLIB_DIR = '$THIRD_PARTY_DIR/zlib',
+
+ PYTHON=sys.executable,
+
+ )
+
+
+# Place the .sconsign.dblite in the build directory.
+target_dir = base_env.Dir('$TARGET_ROOT')
+if not os.path.exists(target_dir.abspath):
+ Execute(Mkdir(target_dir))
+SConsignFile(target_dir.File('.sconsign').abspath)
+
+
+# Use timestamps change, followed by MD5 for speed
+base_env.Decider('MD5-timestamp')
+
+
+# All platforms ----------------------------------------------------------
+
+sconscript_and_target_subdirs = [
+ ('$BSDIFF_DIR', 'third_party/bsdiff'),
+ ('$BSPATCH_DIR', 'third_party/bspatch'),
+ ('$BZIP2_DIR', 'third_party/bzip2'),
+ ('$ICU38_DIR', 'third_party/icu38'),
+ ('$LIBJPEG_DIR', 'third_party/libjpeg'),
+ ('$LIBPNG_DIR', 'third_party/libpng'),
+ # TODO(keunwoo): Port over other third_party packages.
+ ('$ZLIB_DIR', 'third_party/zlib'),
+ ]
+
+env = base_env.Clone()
+
+for sconscript_dir, target_subdir in sconscript_and_target_subdirs:
+ env.SConscript(os.path.join(sconscript_dir, 'SConscript'),
+ exports=['env', 'PLATFORM'],
+ variant_dir=os.path.join('$TARGET_ROOT', target_subdir),
+ duplicate=0
+ )
diff --git a/chrome/SConstruct b/chrome/SConstruct
index 04808bc..f8ea244 100644
--- a/chrome/SConstruct
+++ b/chrome/SConstruct
@@ -28,5 +28,24 @@
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
build_component = 'chrome'
-SConscript('../build/SConscript.main',
- exports=['build_component'])
+
+# TODO(keunwoo): This is an ugly hack to reify the result of scons's built-in
+# platform detection as a variable (the RES attribute is only available
+# under MSWindows). Once rspangler+sgk merge better idioms into Chrome's
+# site scons, we should be able to remove this.
+try:
+ Environment().RES
+except AttributeError:
+ PLATFORM = 'LINUX'
+else:
+ PLATFORM = 'WINDOWS'
+
+# TODO(keunwoo): Merge ../build/SConscript.main.linux back to SConscript.main,
+# then remove this.
+if PLATFORM == 'LINUX':
+ SCONSCRIPT_MAIN = '../build/SConscript.main.linux'
+else:
+ SCONSCRIPT_MAIN = '../build/SConscript.main'
+
+SConscript(SCONSCRIPT_MAIN,
+ exports=['build_component', 'PLATFORM'])
diff --git a/third_party/bsdiff/SConscript b/third_party/bsdiff/SConscript
index adcf647..424139c 100644
--- a/third_party/bsdiff/SConscript
+++ b/third_party/bsdiff/SConscript
@@ -27,6 +27,9 @@
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+# TODO(keunwoo): Use better cross-platform abstraction; see chrome/SConstruct
+Import('PLATFORM')
+
Import('env')
env = env.Clone()
@@ -37,12 +40,13 @@ env.Prepend(
]
)
-env.Append(
+if PLATFORM == 'WINDOWS':
+ env.Append(
CCFLAGS = [
'/TP',
'/wd4800',
],
-)
+ )
input_files = [
"mbsdiff.cc",
diff --git a/third_party/bspatch/SConscript b/third_party/bspatch/SConscript
index 0df2882..cdd079f 100644
--- a/third_party/bspatch/SConscript
+++ b/third_party/bspatch/SConscript
@@ -27,6 +27,9 @@
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+# TODO(keunwoo): Use better cross-platform abstraction; see chrome/SConstruct
+Import('PLATFORM')
+
Import('env')
env = env.Clone(
@@ -42,11 +45,14 @@ env.Append(
CPPDEFINES = [
'_LZMA_IN_CB',
],
+)
+if PLATFORM == 'WINDOWS':
+ env.Append(
CCFLAGS = [
'/TP',
'/wd4800',
],
-)
+ )
input_files = [
'mbspatch.cc',
diff --git a/third_party/bzip2/SConscript b/third_party/bzip2/SConscript
index 1457400..0ff0fab 100644
--- a/third_party/bzip2/SConscript
+++ b/third_party/bzip2/SConscript
@@ -27,16 +27,23 @@
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+# TODO(keunwoo): Use better cross-platform abstraction; see chrome/SConstruct
+Import('PLATFORM')
+
Import('env')
env = env.Clone()
+if PLATFORM == 'WINDOWS':
+ env.Append(
+ CCFLAGS = [
+ '/TC',
+ '/wd4996',
+ '/wd4800',
+ ],
+ )
+
env.Append(
- CCFLAGS = [
- '/TC',
- '/wd4996',
- '/wd4800',
- ],
CPPDEFINES = [
'BZ_NO_STDIO',
],
diff --git a/third_party/libjpeg/SConscript b/third_party/libjpeg/SConscript
index 3c5399c..3bd48d4 100644
--- a/third_party/libjpeg/SConscript
+++ b/third_party/libjpeg/SConscript
@@ -27,6 +27,9 @@
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+# TODO(keunwoo): Use better cross-platform abstraction; see chrome/SConstruct
+Import('PLATFORM')
+
Import('env')
env = env.Clone()
@@ -37,12 +40,13 @@ env.Prepend(
],
)
-env.Append(
- CCFLAGS = [
- '/TC',
- '/wd4800',
- ],
-)
+if PLATFORM == 'WINDOWS':
+ env.Append(
+ CCFLAGS = [
+ '/TC',
+ '/wd4800',
+ ],
+ )
input_files = [
'jcapimin.c',
diff --git a/third_party/libpng/SConscript b/third_party/libpng/SConscript
index ad6bdf9..dd3066a 100644
--- a/third_party/libpng/SConscript
+++ b/third_party/libpng/SConscript
@@ -27,6 +27,9 @@
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+# TODO(keunwoo): Use better cross-platform abstraction; see chrome/SConstruct
+Import('PLATFORM')
+
Import('env')
env = env.Clone()
@@ -38,11 +41,15 @@ env.Prepend(
],
)
+if PLATFORM == 'WINDOWS':
+ env.Append(
+ CCFLAGS = [
+ '/TP',
+ '/wd4800',
+ ],
+ )
+
env.Append(
- CCFLAGS = [
- '/TP',
- '/wd4800',
- ],
CPPDEFINES = [
'PNG_USER_CONFIG',
'CHROME_PNG_WRITE_SUPPORT',
diff --git a/third_party/zlib/SConscript b/third_party/zlib/SConscript
index 5a7de33..08f66c6 100644
--- a/third_party/zlib/SConscript
+++ b/third_party/zlib/SConscript
@@ -27,16 +27,20 @@
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+# TODO(keunwoo): Use better cross-platform abstraction; see chrome/SConstruct
+Import('PLATFORM')
+
Import('env')
env = env.Clone()
-env.Append(
- CCFLAGS = [
- '/TC',
- '/wd4800',
- ],
-)
+if PLATFORM == 'WINDOWS':
+ env.Append(
+ CCFLAGS = [
+ '/TC',
+ '/wd4800',
+ ],
+ )
input_files = [
'adler32.c',