Bug 1160285 - Add a staticruntime version of mfbt and link some stuff against it. r=glandium

This commit is contained in:
Kartikaya Gupta 2015-05-27 17:22:29 -04:00
parent d54cde6784
commit c28affdcba
5 changed files with 74 additions and 24 deletions

View File

@ -6,6 +6,11 @@
TEST_DIRS += ['tests']
# On win we build two mfbt libs - mfbt linked to crt dlls here and in
# staticruntime we build a statically linked mfbt lib.
if CONFIG['OS_ARCH'] == 'WINNT':
DIRS += ['staticruntime']
Library('mfbt')
EXPORTS.mozilla = [
@ -95,36 +100,17 @@ elif CONFIG['OS_ARCH'] == 'Linux':
'LinuxSignal.h',
]
UNIFIED_SOURCES = [
'double-conversion/bignum-dtoa.cc',
'double-conversion/bignum.cc',
'double-conversion/cached-powers.cc',
'double-conversion/diy-fp.cc',
'double-conversion/double-conversion.cc',
'double-conversion/fast-dtoa.cc',
'double-conversion/fixed-dtoa.cc',
'double-conversion/strtod.cc',
'FloatingPoint.cpp',
'HashFunctions.cpp',
'JSONWriter.cpp',
'Poison.cpp',
'SHA1.cpp',
'TaggedAnonymousMemory.cpp',
'unused.cpp',
]
include('objs.mozbuild')
UNIFIED_SOURCES += mfbt_src_cppsrcs
DEFINES['IMPL_MFBT'] = True
# Compression.cpp cannot be built in unified mode because it pulls in Windows system headers.
# Decimal.cpp doesn't build in unified mode with gcc.
SOURCES += [
'Compression.cpp',
'decimal/Decimal.cpp',
]
SOURCES += mfbt_nonunified_src_cppsrcs
DISABLE_STL_WRAPPING = True
# Suppress warnings in third-party code.
if CONFIG['GNU_CXX']:
# TODO: Remove this LZ4 warning suppression after bug 993267 is fixed.
SOURCES['Compression.cpp'].flags += ['-Wno-unused-function']
SOURCES[TOPSRCDIR + '/mfbt/Compression.cpp'].flags += ['-Wno-unused-function']

38
mfbt/objs.mozbuild Normal file
View File

@ -0,0 +1,38 @@
# -*- Mode: python; c-basic-offset: 4; indent-tabs-mode: nil; tab-width: 40 -*-
# vim: set filetype=python:
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
mfbt_src_lcppsrcs = [
'double-conversion/bignum-dtoa.cc',
'double-conversion/bignum.cc',
'double-conversion/cached-powers.cc',
'double-conversion/diy-fp.cc',
'double-conversion/double-conversion.cc',
'double-conversion/fast-dtoa.cc',
'double-conversion/fixed-dtoa.cc',
'double-conversion/strtod.cc',
'FloatingPoint.cpp',
'HashFunctions.cpp',
'JSONWriter.cpp',
'Poison.cpp',
'SHA1.cpp',
'TaggedAnonymousMemory.cpp',
'unused.cpp',
]
mfbt_src_cppsrcs = [
'%s/mfbt/%s' % (TOPSRCDIR, s) for s in mfbt_src_lcppsrcs
]
# Compression.cpp cannot be built in unified mode because it pulls in Windows system headers.
# Decimal.cpp doesn't build in unified mode with gcc.
mfbt_nonunified_src_lcppsrcs = [
'Compression.cpp',
'decimal/Decimal.cpp',
]
mfbt_nonunified_src_cppsrcs = [
'%s/mfbt/%s' % (TOPSRCDIR, s) for s in mfbt_nonunified_src_lcppsrcs
]

View File

@ -0,0 +1,24 @@
# -*- Mode: python; c-basic-offset: 4; indent-tabs-mode: nil; tab-width: 40 -*-
# vim: set filetype=python:
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
Library('mfbt_staticruntime')
include('../objs.mozbuild')
UNIFIED_SOURCES += mfbt_src_cppsrcs
DEFINES['IMPL_MFBT'] = True
SOURCES += mfbt_nonunified_src_cppsrcs
USE_STATIC_LIBS = True
DISABLE_STL_WRAPPING = True
# Suppress warnings in third-party code.
if CONFIG['GNU_CXX']:
# TODO: Remove this LZ4 warning suppression after bug 993267 is fixed.
SOURCES[TOPSRCDIR + '/mfbt/Compression.cpp'].flags += ['-Wno-unused-function']

View File

@ -23,6 +23,7 @@ LOCAL_INCLUDES += [
]
USE_LIBS += [
'mfbt',
'xpcomglue',
]

View File

@ -46,6 +46,7 @@ if not CONFIG['GNU_CC']:
RCINCLUDE = 'webapprt.rc'
USE_LIBS += [
'mfbt_staticruntime',
'xpcomglue_staticruntime',
]