#!/usr/bin/python2.6
#
# Author: Yee Hsu
# Date: 6/12/2011
#
# Copyright 2010, __ET__ Limited.
# All rights reserved.
import os
import sys
import SCons
# ===================================================================
# Setup Base Environment
# ===================================================================
base_env = Environment()
# The 'component_setup' tool should be invoked on the base environment of
# all projects. It adds builders like ComponentProgram and ComponentLibrary.
# It also sets up global defaults.
base_env.Tool('component_setup')
base_env.AppendUnique(
# __ET__SDK
__ET___SDK = os.environ.get('__ET___SDK', ''),
# APPDATA
APPDATA = os.environ.get('APPDATA', ''),
# scaleform
GFXSDK = os.environ.get('GFXSDK','$__ET___SDK/3rdparty/GFx-4.0'),
GFXSDK_CCFLAGS = [
'-I$GFXSDK/Include',
'-I$GFXSDK/Src',
'-I$GFXSDK/Src/GFx',
'-I$GFXSDK/Src/Kernel',
'-I$GFXSDK/Src/Render',
'-I$GFXSDK/3rdParty/glext',
],
GFXSDK_CPPPATH = [
'$GFXSDK/Include',
'$GFXSDK/Src',
'$GFXSDK/Src/GFx',
'$GFXSDK/Src/Kernel',
'$GFXSDK/Src/Render',
'$GFXSDK/3rdParty/glext',
],
GFXSDK_LIBS = [
'zlib',
'libjpeg',
'libpng',
'libgfx',
'libgfxrender_gl',
'libgfxexpat',
'libAS2',
# 'libAS3',
],
GFXSDK_LIBPATH = [
'$GFXSDK/3rdParty/jpeg-6b'
],
# boost 1.44.0
BOOST_HOME = os.environ.get('BOOST_HOME', '$__ET___SDK/3rdparty/Boost'),
BOOST_CPPPATH = ['$BOOST_HOME/include/boost-1_44'],
BOOST_LIBPATH = ['$BOOST_HOME/lib'],
# botan
BOTAN_HOME = os.environ.get('BOTAN_HOME', '$__ET___SDK/3rdparty/Botan'),
BOTAN_CPPPATH = ['$BOTAN_HOME/include'],
BOTAN_LIBPATH = ['$BOTAN_HOME/lib/$ConfigurationName'],
BOTAN_LIBS = ['botan'],
# devIL
DEVIL_HOME = os.environ.get('DEVIL_SDK', '$__ET___SDK/3rdparty/devil'),
DEVIL_CPPPATH = ['$DEVIL_HOME/include'],
DEVIL_LIBPATH = ['$DEVIL_HOME/lib'],
DEVIL_LIBS = ['DevIL', 'ILU', 'ILUT'],
# expat
EXPAT_HOME = os.environ.get('EXPAT_HOME', '$__ET___SDK/3rdparty/expat-2.0.1'),
EXPAT_CPPPATH = ['$EXPAT_HOME/include'],
EXPAT_LIBPATH = ['$EXPAT_HOME/lib/$ConfigurationName'],
EXPAT_LIBS = ['expat'],
# taglib
TAG_HOME = os.environ.get('TAG_HOME', '$__ET___SDK/3rdparty/taglib-1.7rc1'),
TAG_CPPPATH = ['$TAG_HOME/include/taglib'],
TAG_LIBPATH = ['$TAG_HOME/lib/$ConfigurationName'],
TAG_LIBS = ['tag'],
# ffmpeg
FFMPEG_SDK = os.environ.get('FFMPEG_SDK', '$__ET___SDK/3rdparty/ffmpeg'),
FFMPEG_CCFLAGS = ['-I$FFMPEG_SDK/include'],
FFMPEG_CPPPATH = ['$FFMPEG_SDK/include'],
FFMPEG_LIBPATH = ['$FFMPEG_SDK/lib'],
FFMPEG_LIBS = ['avcodec-52', 'avformat-52', 'avutil-50', 'swscale-0'],
# amplifind libofa
# AMPLIFIND_ROOT = '$SOURCE_ROOT/libs/libofa',
# AMPLIFIND_CPPPATH = ['$AMPLIFIND_ROOT/include'],
# AMPLIFIND_LIBS = ['ofa', 'fftw3'],
# gtest
GTEST_HOME = os.environ.get('GTEST_HOME', '$__ET___SDK/3rdparty/gtest'),
GTEST_ROOT = '$GTEST_HOME',
GTEST_CCFLAGS = ['-I$GTEST_HOME/include'],
GTEST_CPPPATH = ['$GTEST_HOME/include'],
GTEST_LIBPATH = ['$GTEST_HOME/lib'],
GTEST_LIBS = ['gtest'],
# platinum
PLATINUM_SDK = os.environ.get('PLATINUM_SDK', '$__ET___SDK/3rdparty/Platinum'),
PLATINUM_CCFLAGS = [
'-I$PLATINUM_SDK/Neptune/Source/Core',
'-I$PLATINUM_SDK/Platinum/Source/Core',
'-I$PLATINUM_SDK/Platinum/Source/Devices',
'-I$PLATINUM_SDK/Platinum/Source/Platinum',
'-I$PLATINUM_SDK/Platinum/Source/Devices/MediaConnect',
'-I$PLATINUM_SDK/Platinum/Source/Devices/MediaServer',
],
PLATINUM_CPPPATH = [
'$PLATINUM_SDK/Neptune/Source/Core',
'$PLATINUM_SDK/Platinum/Source/Core',
'$PLATINUM_SDK/Platinum/Source/Devices',
'$PLATINUM_SDK/Platinum/Source/Platinum',
'$PLATINUM_SDK/Platinum/Source/Devices/MediaConnect',
'$PLATINUM_SDK/Platinum/Source/Devices/MediaServer',
],
PLATINUM_LIBPATH = ['$PLATINUM_SDK/lib/$ConfigurationName'],
PLATINUM_LIBS = ['QUPnP'],
# sqlite3
SQLITE3_HOME = os.environ.get('SQLITE3_HOME', '$__ET___SDK/3rdparty/sqlite3'),
SQLITE3_CCFLAGS = [
'-I$SQLITE3_HOME/include'
],
SQLITE3_LIBPATH = [
'$SQLITE3_HOME/lib'
],
SQLITE3_LIBS = ['sqlite3'],
# Magick++
IMAGEMAGICK_SDK = os.environ.get('IMAGEMAGICK_SDK', '$__ET___SDK/3rdparty/ImageMagick-6.6.5'),
IMAGEMAGICK_CCFLAGS = ['-I$IMAGEMAGICK_SDK', '-I$IMAGEMAGICK_SDK/Magick++/lib'],
IMAGEMAGICK_CPPPATH = ['$IMAGEMAGICK_SDK/include/ImageMagick','$IMAGEMAGICK_SDK/include/ImageMagick/Magick++/lib'],
IMAGEMAGICK_LIBPATH = ['$IMAGEMAGICK_SDK/lib'],
IMAGEMAGICK_LIBS = ['Magick++'],
# json-c
JSONC_HOME = os.environ.get('JSONC_HOME', '$__ET___SDK/3rdparty/json-c-0.2'),
JSONC_CPPPATH = ['$JSONC_HOME/include'],
JSONC_LIBPATH = ['$JSONC_HOME/lib/$ConfigurationName'],
JSONC_LIBS = ['json'],
# mongoose
MONGOOSE_HOME = os.environ.get('MONGOOSE_HOME', '$__ET___SDK/3rdparty/mongoose-2.11'),
MONGOOSE_CPPPATH = ['$MONGOOSE_HOME/include'],
MONGOOSE_LIBPATH = ['$MONGOOSE_HOME/lib/$ConfigurationName'],
MONGOOSE_LIBS = ['mongoose'],
# libcurl
LIBCURL_HOME = os.environ.get('LIBCURL_HOME', '$__ET___SDK/3rdparty/libcurl-7.21.2'),
LIBCURL_CPPPATH = [ '$LIBCURL_HOME/include' ],
LIBCURL_LIBPATH = [ '$LIBCURL_HOME/lib/$ConfigurationName' ],
LIBCURL_LIBS = [ 'curl' ],
# curlpp
CURLPP_HOME = os.environ.get('CURLPP_HOME', '$__ET___SDK/3rdparty/curlpp'),
CURLPP_CPPPATH = [ '$CURLPP_HOME/include' ],
CURLPP_LIBPATH = [ '$CURLPP_HOME/lib' ],
CURLPP_LIBS = [ 'curlpp' ],
# libdvdid
LIBDVDID_HOME = os.environ.get('LIBDVDID_HOME', '$__ET___SDK/3rdparty/libdvdid'),
LIBDVDID_CPPPATH = ['$LIBDVDID_HOME/include'],
LIBDVDID_LIBPATH = ['$LIBDVDID_HOME/lib/$ConfigurationName'],
LIBDVDID_LIBS = ['dvdid'],
# alut
ALUT_SDK = os.environ.get('ALUT_SDK', '$__ET___SDK/3rdparty/freealut-1.1.0'),
ALUT_CCFLAGS = ['-I$ALUT_SDK/include'],
ALUT_CPPPATH = ['$ALUT_SDK/include'],
ALUT_LIBPATH = ['$ALUT_SDK/lib'],
ALUT_LIBS = ['alut'],
# openal
OPENAL_SDK = os.environ.get('OPENAL_SDK', '$__ET___SDK/3rdparty/OpenAL_1_1'),
OPENAL_CCFLAGS = ['-I$OPENAL_SDK/include'],
OPENAL_CPPPATH = ['$OPENAL_SDK/include'],
OPENAL_LIBPATH = ['$OPENAL_SDK/lib'],
OPENAL_LIBS = ['OpenAL32'],
# The list of components common to all platforms (cross/build.scons).
BUILD_SCONSCRIPTS = [
'src/QPlayer',
'src/QMediaPlayer',
'src/SimpleHttpLogServer',
'src/QCloudManager',
'src/QLibraryManager',
'src/QPatternManager',
'src/QWatchFolder',
'src/QSocialManager',
'src/QSync',
'src/Common',
'src/QMediaLibrary',
'src/Tools'
]
)
base_env.Replace(
__ET___OUTPUT = os.environ.get('__ET___OUTPUT', '$DESTINATION_ROOT'),
DESTINATION_ROOT = '$__ET___OUTPUT/scons-out$HOST_PLATFORM_SUFFIX',
SOURCE_ROOT = '$MAIN_DIR',
STAGING_DIR = '$__ET___OUTPUT/bin/$BUILD_TYPE'
)
# Note that we use sys.platform here rather than HOST_PLATFORM, since we need
# different sconsign databases for cygwin vs. win32.
sconsign_dir = base_env.Dir('$DESTINATION_ROOT').abspath
sconsign_filename = '$DESTINATION_ROOT/.sconsign_%s' % sys.platform
sconsign_file = base_env.File(sconsign_filename).abspath
# SConsignFile() doesn't seem to like it if the destination directory
# doesn't already exist, so make sure it exists.
# TODO: Remove once SCons has fixed this bug.
if not os.path.isdir(sconsign_dir):
os.makedirs(sconsign_dir)
SCons.Script.SConsignFile(sconsign_file)
base_env.AppendUnique(
# All includes are relative to the main project directory.
CCFLAGS = [
'-I$__ET___SDK/include',
'-I$SOURCE_ROOT/sdk/src/QCore',
'-I$SOURCE_ROOT/sdk/src/QService',
'-I$SOURCE_ROOT/sdk/src/QNetwork',
'-I$SOURCE_ROOT/sdk/src/QDownloadManager',
'-I$SOURCE_ROOT/sdk/src/QFtpManager',
'-I$SOURCE_ROOT/sdk/src/QS3Manager',
# QCore
'-I$BOOST_CPPPATH',
'-I$EXPAT_CPPPATH',
'-I$JSONC_CPPPATH',
# QNetwork
'-I$LIBCURL_CPPPATH',
'-I$CURLPP_CPPPATH',
'-DBOOST_SYSTEM_STATIC_LINK=1',
'-DBOOST_THREAD_USE_LIB=1',
],
QCORE_LIBPATH = [
'$BOOST_LIBPATH',
'$EXPAT_LIBPATH',
'$JSONC_LIBPATH',
],
QCORE_LIBS =[
'$BOOST_LIBS',
'$EXPAT_LIBS',
'$JSONC_LIBS',
'QCore',
],
# QNetwork
QNETWORK_CCFLAGS = [
],
QNETWORK_LIBPATH =[
'$LIBCURL_LIBPATH',
'$MONGOOSE_LIBPATH',
],
QNETWORK_LIBS = [
'$LIBCURL_LIBS',
'$MONGOOSE_LIBS',
'QNetwork'
],
# QDownloadManager
QDOWNLOADMANAGER_LIBS = [
'QDownloadManager'
],
# QFtpManager
QFTPMANAGER_LIBS = [
'QFtpManager'
],
# QS3Manager
QS3MANAGER_LIBPATH =[
'$CURLPP_LIBPATH',
],
QS3MANAGER_LIBS = [
'$CURLPP_LIBS',
'QS3Manager'
],
# QMediaManager
QMEDIAMANAGER_CCFLAGS = [
],
QMEDIAMANAGER_LIBPATH = [
'$FFMPEG_LIBPATH',
'$TAG_LIBPATH',
'$LIBDVDID_LIBPATH',
'$IMAGEMAGICK_LIBPATH',
],
QMEDIAMANAGER_LIBS = [
'$FFMPEG_LIBS',
'$TAG_LIBS',
'$LIBDVDID_LIBS',
'$IMAGEMAGICK_LIBS',
]
)
# -------------------------------------------------------------------
# base_env.Tool('sdl')
# -------------------------------------------------------------------
# ===================================================================
# Setup Windows Environment
# ===================================================================
win_env = base_env.Clone(
# implicit linking boost libs
BOOST_LIBS = [],
# gtest
GTEST_LIBPATH = ['$GTEST_HOME/msvc/gtest-md/$ConfigurationName'],
# libcurl
#LIBCURL_HOME = os.environ.get('LIBCURL_HOME', '$__ET___SDK/3rdparty/libcurl-7.19.3-win32-ssl-msvc'),
#LIBCURL_CPPPATH = [ '$LIBCURL_HOME/include' ],
#LIBCURL_LIBPATH = [ '$LIBCURL_HOME/lib/$ConfigurationName' ],
LIBCURL_LIBS = [
'libcurl',
'4758cca',
'gmp',
'aep',
'atalla',
'capi',
'chil',
'gdi32',
'cswift',
'nuron',
'libeay32',
'padlock',
'ssleay32',
'sureware',
'ubsec',
],
# taglib
#TAG_LIBS = ['tag'],
# alut
#ALUT_SDK = os.environ.get('ALUT_SDK', ''),
#ALUT_CPPPATH = ['$ALUT_SDK/include'],
#ALUT_LIBPATH = ['$ALUT_SDK/lib'],
#ALUT_LIBS = ['alut'],
# openal
#OPENAL_SDK = os.environ.get('OPENAL_SDK', '$__ET___SDK/3rdparty/OpenAL_1_1'),
#OPENAL_CPPPATH = ['$OPENAL_SDK/include'],
OPENAL_LIBPATH = ['$OPENAL_SDK/libs/Win32'],
# scaleform
GFXSDK_LIBPATH = [
'$GFXSDK/Lib/Win32/Msvc90/$ConfigurationName',
'$GFXSDK/3rdParty/zlib-1.2.5/Lib/Win32/Msvc90/$ConfigurationName',
'$GFXSDK/3rdParty/jpeg-6b/lib/Win32/Msvc90/$ConfigurationName',
'$GFXSDK/3rdParty/libpng/Lib/Win32/Msvc90/$ConfigurationName'
],
# ImageMagick
IMAGEMAGICK_LIBPATH = [
'$IMAGEMAGICK_SDK/VisualMagick/lib'
],
IMAGEMAGICK_LIBS = [
'CORE_RL_Magick++_',
'CORE_RL_magick_',
'CORE_RL_bzlib_',
'CORE_RL_coders_',
'CORE_RL_filters_',
'CORE_RL_jbig_',
'CORE_RL_jp2_',
'CORE_RL_jpeg_',
'CORE_RL_lcms_',
'CORE_RL_libxml_',
'CORE_RL_png_',
'CORE_RL_tiff_',
'CORE_RL_ttf_',
'CORE_RL_wmf_',
'CORE_RL_wand_',
'CORE_RL_xlib_',
'CORE_RL_zlib_',
'ole32',
'oleaut32',
],
# AmpliFind
# AMPLIFIND_LIBPATH = ['$AMPLIFIND_ROOT/win32/lib'],
# AMPLIFIND_LIBS = ['libofa', 'libfftw3-3'],
QSOCIAL_LIBS = [
'QSocial'
],
QSOCIALMANAGER_LIBS = [
'QSocialManager'
],
QWATCHFOLDER_LIBS = [
'QWatchFolder',
'JNotify'
]
);
win_env.Tool("target_platform_windows")
win_env.AppendUnique(
# extra windows specifice components
BUILD_SCONSCRIPTS = [
'src/QDebugger',
'src/QWatchFolder/Windows',
],
CPPDEFINES = [
'NOMINMAX',
'WIN32',
# 'WIN32_LEAN_AND_MEAN',
'_WINDOWS',
# '_CRT_SECURE_NO_WARNINGS', # disable warning C4996
# '_SCL_SECURE_NO_WARNINGS',
'CURL_STATICLIB',
'ENABLE_PROFILING',
],
# extra flags
CCFLAGS = [
'/EHsc', # enable c++ exception
'/wd4251',
'/wd4996',
'/wd4068',
],
LINKFLAGS = [
],
#CPPPATH = [],
#LIBPATH = [],
# extra link libraries
LIBS = [
'user32',
'gdi32',
'ws2_32',
'wldap32',
],
QCORE_LIBPATH = [
'$BOTAN_LIBPATH',
],
QCORE_LIBS = [
'$BOTAN_LIBS',
]
)
# -------------------------------------------------------------------
# Windows Debug Environment
# -------------------------------------------------------------------
win_debug_env = win_env.Clone(
BUILD_TYPE = 'debug-win',
BUILD_TYPE_DESCRIPTION = 'Windows Debug Build',
ConfigurationName = 'Debug',
STAGING_DIR = '$__ET___OUTPUT/bin/$ConfigurationName',
# gtest
GTEST_LIBS = ['gtestd'],
# soci
SOCI_LIBS = [
'libsoci_core-vc100-d-3_0',
'libsoci_sqlite3-vc100-d-3_0'
],
# imagemagick
IMAGEMAGICK_LIBS = [
'CORE_DB_Magick++_',
'CORE_DB_magick_',
'CORE_DB_bzlib_',
'CORE_DB_coders_',
'CORE_DB_filters_',
'CORE_DB_jbig_',
'CORE_DB_jp2_',
'CORE_DB_jpeg_',
'CORE_DB_lcms_',
'CORE_DB_libxml_',
'CORE_DB_png_',
'CORE_DB_tiff_',
'CORE_DB_ttf_',
'CORE_DB_wmf_',
'CORE_DB_wand_',
'CORE_DB_xlib_',
'CORE_DB_zlib_',
'ole32',
'oleaut32',
],
LIBCURL_LIBS = [
'libcurld',
'4758cca',
'gmp',
'aep',
'atalla',
'capi',
'chil',
'gdi32',
'cswift',
'nuron',
'libeay32',
'padlock',
'ssleay32',
'sureware',
'ubsec',
],
TAG_LIBS = ['tagd']
)
win_debug_env.Tool('target_debug')
win_debug_env.Append(
BUILD_GROUPS = ['default'],
CPPDEFINES = ['_DEBUG'],
CCFLAGS = [
'/MDd', # Multi-threaded Debug DLL
'/RTC1', # Performs basic runtime check
'/GS', # Buffer Security Check
'/Gd', # Calling Convention (_cdecl)
'/nologo',
'/W3',
'/WX-',
'/Od', # Optimization (Disabled)
'/Oy-', # Omit Frame Pointers (No)
]
)
# -------------------------------------------------------------------
# Windows Release Environment
# -------------------------------------------------------------------
win_release_env = win_env.Clone(
BUILD_TYPE = 'release-win',
BUILD_TYPE_DESCRIPTION = 'Windows Release Build',
ConfigurationName = 'Release',
STAGING_DIR = '$__ET___OUTPUT/bin/Release',
# soci
SOCI_LIBS = [
'libsoci_core-vc100-3_0',
'libsoci_sqlite3-vc100-3_0'
],
)
#win_release_env.Replace(
# LINKFLAGS_OPTIMIZED = []
#)
win_release_env.Tool('target_optimized')
win_release_env.AppendUnique(
CCFLAGS = [
'/MD' # Multi-threaded DLL
]
)
# ===================================================================
# Setup Mac OS X Environment
# ===================================================================
mac_env = base_env.Clone(
PLATFORM = 'MacOS',
# APPDATA
HOME = os.environ.get('HOME', ''),
APPDATA = '$HOME/Library',
#
ALUT_LIBS = [],
# boost
BOOST_HOME = '$__ET___SDK',
# BOOST_CCFLAGS = [ '-DBOOST_THREAD_USE_LIB' ],
BOOST_CPPPATH = [ '$BOOST_HOME/include' ],
BOOST_LIBPATH = [ '$BOOST_HOME/lib' ],
BOOST_LIBS = [
# File('/Users/tom/Projects/__ET___sdk/lib/libboost_system.a'),
# File('/Users/tom/Projects/__ET___sdk/lib/libboost_filesystem.a'),
# File('/Users/tom/Projects/__ET___sdk/lib/libboost_thread.a'),
# File('/Users/tom/Projects/__ET___sdk/lib/libboost_regex.a'),
'boost_system-mt',
'boost_filesystem-mt',
'boost_thread-mt',
'boost_regex-mt'
],
# botan
BOTAN_HOME = '$__ET___SDK',
BOTAN_LIBPATH = ['$BOTAN_HOME/lib'],
# libcurl
LIBCURL_HOME = '/usr',
LIBCURL_CPPPATH = ['$LIBCURL_HOME/include'],
LIBCURL_LIBPATH = ['$LIBCURL_HOME/lib'],
LIBCURL_LIBS = ['curl'],
# scaleform
GFXSDK_LIBPATH = [
'$GFXSDK/Lib/$PLATFORM-$ARCH',
'$GFXSDK/Lib/$PLATFORM-$ARCH/$ConfigurationName',
'$GFXSDK/3rdParty/jpeg-6b'
],
# taglib
TAG_HOME = '$__ET___SDK/3rdparty/taglib-1.7',
TAG_CPPPATH = [
'$TAG_HOME',
'$TAG_HOME/include/'
],
TAG_LIBPATH = ['$TAG_HOME/taglib/$ConfigurationName'],
# expat
EXPAT_LIBPATH = [],
# mongoose
MONGOOSE_LIBPATH = [],
# dvdid
LIBDVDID_HOME = '$__ET___SDK',
# json-c
JSONC_CPPPATH = [ '$__ET___SDK/include' ],
JSONC_LIBPATH = [ '$__ET___SDK/lib' ],
# sqlite3
SQLITE3_HOME = [ '$__ET___SDK' ],
# ImageMagick
IMAGEMAGICK_SDK = '$__ET___SDK', #'/opt/local',
IMAGEMAGICK_CCFLAGS = ['-I$IMAGEMAGICK_SDK/include/ImageMagick'],
IMAGEMAGICK_CPPPATH = ['$IMAGEMAGICK_SDK/include/ImageMagick'],
IMAGEMAGICK_LIBPATH = ['$IMAGEMAGICK_SDK/lib'],
#IMAGEMAGICK_LIBS = ['$IMAGEMAGICK_SDK/lib/libMagick++.a', '$IMAGEMAGICK_SDK/lib/libMagickCore.a', '$IMAGEMAGICK_SDK/lib/libMagickWand.a'],
IMAGEMAGICK_LIBS = ['MagickWand', 'MagickCore', 'Magick++'],
# UPnP
PLATINUM_SDK = '$__ET___SDK/3rdparty/Platinum-SRC-0-6-4_690',
PLATINUM_LIBPATH = [
'$PLATINUM_SDK/Neptune/Build/Targets/universal-apple-macosx/build/$ConfigurationName',
'$PLATINUM_SDK/Platinum/Build/Targets/universal-apple-macosx/build/$ConfigurationName'
],
PLATINUM_LIBS = ['Neptune', 'axTLS', 'Platinum'],
# ffmpeg
FFMPEG_SDK = '$__ET___SDK',
FFMPEG_LIBS = ['avcodec', 'avformat', 'avutil', 'swscale', 'mp3lame', 'z', 'bz2', 'theora'],
# openal
OPENAL_LIBS = [],
# gtest
GTEST_HOME = '$__ET___SDK',
)
mac_env.Tool("target_platform_mac")
mac_env.Tool("__ET__")
mac_env.Append(
CPPDEFINES = [
'__MACOSX__',
'OSX',
'ENABLE_PROFILING',
'_FILE_OFFSET_BITS=64',
'_LARGEFILE64_SOURCE',
],
CCFLAGS = [
'-fasm-blocks',
'-Wno-system-headers',
'-Wall',
'-fexceptions',
'-W',
#'-Wshadow',
'-Wno-unused', # to surpress warnings from boost
'-pthreads',
'-fvisibility=default',
'-fpermissive'
],
LINKFLAGS = [
#'-Wl,-search_paths_first',
# This flag makes all members of a static library be included in the
# final exe - that increases the size of the exe, but without it
# Obj-C categories aren't properly included in the exe.
# TODO: consider only defining for libs that actually have objc.
#'-ObjC',
'-L$__ET___SDK/lib/$ConfigurationName',
'-L$__ET___SDK/lib/$ARCHS',
'-L$__ET___SDK/lib'
],
FRAMEWORKS = [
'OpenGL',
'Cocoa',
'SystemConfiguration',
'IOKit',
],
# extra mac specifice components
BUILD_SCONSCRIPTS = [
],
#
#QCORE_LIBS = [
# 'charsetdetect',
#]
)
# Mac Debug Environment
mac_debug_env = mac_env.Clone(
BUILD_TYPE = 'debug-mac',
BUILD_TYPE_DESCRIPTION = 'MacOS Debug Build',
ConfigurationName = 'Debug',
STAGING_DIR = '$__ET___OUTPUT/bin/$ConfigurationName',
)
mac_debug_env.Tool('target_debug')
mac_debug_env.Append(BUILD_GROUPS = ['default'])
# Mac Release Environment
mac_release_env = mac_env.Clone(
BUILD_TYPE = 'release-mac',
BUILD_TYPE_DESCRIPTION = 'MacOS Release Build',
ConfigurationName = 'Release',
STAGING_DIR = '$__ET___OUTPUT/bin/$ConfigurationName',
)
mac_release_env.Tool('target_optimized')
# ----------------------------------------------------------
# Build the variants listed above.
# This step will call each of the SConscripts (build.scons) listed,
# once for each variant currently being built.
BuildComponents([
mac_debug_env,
mac_release_env,
win_debug_env,
win_release_env,
])