diff options
-rw-r--r-- | build/SConscript.main.linux | 96 | ||||
-rw-r--r-- | chrome/SConstruct | 23 | ||||
-rw-r--r-- | third_party/bsdiff/SConscript | 8 | ||||
-rw-r--r-- | third_party/bspatch/SConscript | 8 | ||||
-rw-r--r-- | third_party/bzip2/SConscript | 17 | ||||
-rw-r--r-- | third_party/libjpeg/SConscript | 16 | ||||
-rw-r--r-- | third_party/libpng/SConscript | 15 | ||||
-rw-r--r-- | third_party/zlib/SConscript | 16 |
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',
|