246 lines
5.3 KiB
Text
246 lines
5.3 KiB
Text
# Copyright 2012 Google Inc. All Rights Reserved.
|
|
#
|
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
# you may not use this file except in compliance with the License.
|
|
# You may obtain a copy of the License at
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
# See the License for the specific language governing permissions and
|
|
# limitations under the License.
|
|
#
|
|
# main.scons for google-tv-pairing-protocol cpp library
|
|
|
|
import os
|
|
import platform
|
|
import sys
|
|
|
|
GTEST_INCLUDES = ['%s/include' % os.environ['GTEST_DIR']]
|
|
Export('GTEST_INCLUDES')
|
|
GMOCK_INCLUDES = ['%s/include' % os.environ['GMOCK_DIR']]
|
|
Export('GMOCK_INCLUDES')
|
|
OPENSSL_INCLUDES = ['%s/include' % os.environ['OPENSSL_DIR']]
|
|
Export('OPENSSL_INCLUDES')
|
|
|
|
GTEST_LIBS = ['%s/lib/.libs' % os.environ['GTEST_DIR']]
|
|
Export('GTEST_LIBS')
|
|
GMOCK_LIBS = ['%s/lib/.libs' % os.environ['GMOCK_DIR']]
|
|
Export('GMOCK_LIBS')
|
|
OPENSSL_LIBS = [os.environ['OPENSSL_DIR']]
|
|
Export('OPENSSL_LIBS')
|
|
|
|
build_environments = []
|
|
|
|
root_env = Environment(
|
|
tools = ['component_setup'],
|
|
BUILD_SCONSCRIPTS = [
|
|
'src/polo',
|
|
'tests/polo',
|
|
],
|
|
CPPPATH=['$MAIN_DIR/src'],
|
|
)
|
|
|
|
# Detect 64-bit build platform
|
|
DeclareBit('arch_64', 'Target platform is 64-bit')
|
|
DeclareBit('64bit', 'Target environment is 64-bit')
|
|
if platform.architecture()[0] == '64bit':
|
|
root_env.SetBits('arch_64')
|
|
|
|
# Setup the linux environment
|
|
linux_env = root_env.Clone(tools = ['target_platform_linux'])
|
|
|
|
linux_env.Append(
|
|
LINKFLAGS = ['-static', '-pthread'],
|
|
CCFLAGS = ['-fPIC'],
|
|
)
|
|
|
|
linux_32_env = linux_env.Clone()
|
|
linux_32_env.Append(
|
|
CCFLAGS = ['-m32'],
|
|
LINKFLAGS = ['-m32'],
|
|
LIBPATH = [
|
|
#'/usr/lib32',
|
|
]
|
|
)
|
|
|
|
linux_dbg_32_env = linux_32_env.Clone(
|
|
BUILD_TYPE = 'dbg',
|
|
BUILD_TYPE_DESCRIPTION = 'Linux 32-bit Debug Build',
|
|
tools = ['target_debug'],
|
|
)
|
|
build_environments.append(linux_dbg_32_env)
|
|
|
|
|
|
linux_opt_32_env = linux_32_env.Clone(
|
|
BUILD_TYPE = 'opt',
|
|
BUILD_TYPE_DESCRIPTION = 'Linux 32-bit Release Build',
|
|
tools = ['target_optimized']
|
|
)
|
|
linux_opt_32_env.Append(
|
|
CCFLAGS = ['-O2'],
|
|
LINKFLAGS = ['--strip-all', '-s'],
|
|
)
|
|
build_environments.append(linux_opt_32_env)
|
|
|
|
# Add 64-bit linux environment if supported by build platform
|
|
if linux_env.Bit('arch_64'):
|
|
linux_64_env = linux_env.Clone()
|
|
linux_64_env.Append(
|
|
CCFLAGS = ['-m64'],
|
|
LINKFLAGS = ['-m64'],
|
|
LIBPATH = [
|
|
#'/usr/lib64',
|
|
]
|
|
)
|
|
|
|
linux_dbg_64_env = linux_64_env.Clone(
|
|
BUILD_TYPE = 'dbg64',
|
|
BUILD_TYPE_DESCRIPTION = 'Linux 64-bit Debug Build',
|
|
BUILD_GROUPS = ['default'],
|
|
tools = ['target_debug'],
|
|
)
|
|
linux_dbg_64_env.SetBits('64bit')
|
|
build_environments.append(linux_dbg_64_env)
|
|
|
|
linux_opt_64_env = linux_64_env.Clone(
|
|
BUILD_TYPE = 'opt64',
|
|
BUILD_TYPE_DESCRIPTION = 'Linux 64-bit Release Build',
|
|
tools = ['target_optimized']
|
|
)
|
|
linux_opt_64_env.Append(
|
|
CCFLAGS = ['-O2'],
|
|
LINKFLAGS = ['--strip-all'],
|
|
)
|
|
linux_opt_64_env.SetBits('64bit')
|
|
build_environments.append(linux_opt_64_env)
|
|
|
|
# Mac OSX Build Environment
|
|
mac_env = root_env.Clone(tools = ['target_platform_mac'])
|
|
mac_env.Append(
|
|
CCFLAGS = [
|
|
'-arch', 'i386',
|
|
'-fPIC',
|
|
],
|
|
CPPDEFINES = [
|
|
'OSX',
|
|
'XP_MACOSX',
|
|
],
|
|
FRAMEWORKS = [
|
|
'CoreFoundation',
|
|
'IOKit',
|
|
],
|
|
LIBS = [
|
|
'pthread',
|
|
],
|
|
LINKFLAGS = [
|
|
'-arch', 'i386',
|
|
'-Wl,-search_paths_first',
|
|
],
|
|
)
|
|
|
|
mac_opt_env = mac_env.Clone(
|
|
BUILD_TYPE = 'opt',
|
|
BUILD_TYPE_DESCRIPTIONS = 'Mac Release Build',
|
|
)
|
|
|
|
mac_opt_env.Append(
|
|
CCFLAGS = [
|
|
'-O2',
|
|
],
|
|
LINKFLAGS = ['--string-all', '-s'],
|
|
tools = ['target_optimized'],
|
|
)
|
|
build_environments.append(mac_opt_env)
|
|
|
|
mac_dbg_env = mac_env.Clone(
|
|
BUILD_TYPE = 'dbg',
|
|
BUILD_TYPE_DESCRIPTION = 'Mac Debug Build',
|
|
)
|
|
|
|
mac_dbg_env.Append(
|
|
CCFLAGS = ['-O0'],
|
|
tools = ['target_debug'],
|
|
)
|
|
build_environments.append(mac_dbg_env)
|
|
|
|
|
|
# Windows Build Environment
|
|
win_env = root_env.Clone(tools = ['target_platform_windows'])
|
|
|
|
win_env.Append(
|
|
CCFLAGS = [
|
|
'/EHsc',
|
|
],
|
|
CPPDEFINES = [
|
|
'OS_WINDOWS',
|
|
'WIN32',
|
|
'_WINDOWS',
|
|
'_WIN32_WINNT=0x0501',
|
|
'WINVER=0x0501',
|
|
'WIN32_LEAN_AND_MEAN',
|
|
'GOOGLE_GLOG_DLL_DECL=',
|
|
'NOGDI',
|
|
'BOOST_ALL_NO_LIB',
|
|
'BOOST_THREAD_BUILD_LIB',
|
|
'_X86_',
|
|
'X86',
|
|
],
|
|
)
|
|
|
|
# We need perl and nasm to be in the path.
|
|
if sys.platform == 'win32':
|
|
win_env['ENV']['PATH'] = os.environ['PRESCONS_PATH']
|
|
win_env['ENV']['INCLUDE'] = os.environ['INCLUDE']
|
|
win_env['ENV']['LIB'] = os.environ['LIB']
|
|
|
|
win_opt_env = win_env.Clone(
|
|
BUILD_TYPE = 'opt',
|
|
BUILD_TYPE_DESCRIPTION = 'Windows Release Build',
|
|
)
|
|
|
|
win_opt_env.Append(
|
|
CCFLAGS = [
|
|
'/O1',
|
|
'/GS',
|
|
'/GL',
|
|
'/MT',
|
|
],
|
|
CPPDEFINES = [
|
|
'NDEBUG',
|
|
],
|
|
ARFLAGS = [
|
|
'/LTCG',
|
|
],
|
|
LINKFLAGS = [
|
|
'/incremental:no',
|
|
'/LTCG',
|
|
'/opt:icf=32',
|
|
'/opt:ref',
|
|
]
|
|
)
|
|
build_environments.append(win_opt_env)
|
|
|
|
win_dbg_env = win_env.Clone(
|
|
BUILD_TYPE = 'dbg',
|
|
BUILD_TYPE_DESCRIPTION = 'Windows Debug Build',
|
|
BUILD_GROUPS = ['default'],
|
|
)
|
|
|
|
win_dbg_env.Append(
|
|
CCFLAGS = [
|
|
'/Fd$OBJ_ROOT/vc80.pdb',
|
|
'/MTd',
|
|
'/Od',
|
|
'/Z7',
|
|
],
|
|
CPPDEFINES = [
|
|
'DEBUG',
|
|
'_DEBUG',
|
|
],
|
|
)
|
|
build_environments.append(win_dbg_env)
|
|
|
|
BuildEnvironments(build_environments)
|