diff options
Diffstat (limited to 'mozglue/build/moz.build')
-rw-r--r-- | mozglue/build/moz.build | 108 |
1 files changed, 108 insertions, 0 deletions
diff --git a/mozglue/build/moz.build b/mozglue/build/moz.build new file mode 100644 index 000000000..d28974778 --- /dev/null +++ b/mozglue/build/moz.build @@ -0,0 +1,108 @@ +# -*- Mode: python; 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/. + +# Build mozglue as a shared lib on Windows, OSX and Android. +# If this is ever changed, update MOZ_SHARED_MOZGLUE in browser/installer/Makefile.in +if CONFIG['OS_TARGET'] in ('WINNT', 'Darwin', 'Android'): + SharedLibrary('mozglue') +else: + Library('mozglue') + +SDK_LIBRARY = True + +if CONFIG['OS_TARGET'] == 'Android': + SOURCES += [ + 'BionicGlue.cpp', + ] + +if CONFIG['MOZ_ASAN']: + SOURCES += [ + 'AsanOptions.cpp', + ] + +if CONFIG['OS_TARGET'] == 'WINNT': + DEFFILE = 'mozglue.def' + # We'll break the DLL blocklist if we immediately load user32.dll + DELAYLOAD_DLLS += [ + 'user32.dll', + ] + +if not CONFIG['JS_STANDALONE']: + + if CONFIG['MOZ_MEMORY'] and (CONFIG['MOZ_SYSTEM_JEMALLOC'] or FORCE_SHARED_LIB): + pass + # TODO: SHARED_LIBRARY_LIBS go here + else: + # Temporary, until bug 662814 lands + NO_VISIBILITY_FLAGS = True + SOURCES += [ + 'dummy.cpp', + ] + + if CONFIG['OS_TARGET'] == 'WINNT': + LOCAL_INCLUDES += [ + '/memory/build', + ] + SOURCES += [ + 'WindowsDllBlocklist.cpp', + ] + DISABLE_STL_WRAPPING = True + OS_LIBS += [ + 'version', + ] + + EXPORTS.mozilla += [ + 'arm.h', + 'mips.h', + 'SSE.h', + 'WindowsDllBlocklist.h', + ] + + if CONFIG['CPU_ARCH'].startswith('x86'): + SOURCES += [ + 'SSE.cpp', + ] + + if CONFIG['CPU_ARCH'] == 'arm': + SOURCES += [ + 'arm.cpp', + ] + + if CONFIG['CPU_ARCH'].startswith('mips'): + SOURCES += [ + 'mips.cpp', + ] + + if CONFIG['MOZ_LINKER']: + USE_LIBS += [ + 'zlib', + ] + + if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'gonk': + SOURCES += [ + 'cpuacct.c', + ] + +USE_LIBS += [ + 'mfbt', +] + +DEFINES['IMPL_MFBT'] = True +LIBRARY_DEFINES['MOZ_HAS_MOZGLUE'] = True + +LDFLAGS += CONFIG['MOZ_GLUE_WRAP_LDFLAGS'] + +if CONFIG['OS_TARGET'] == 'Darwin': + # On OSX 10.10.3, a dead lock happens in some cases involving dynamic + # symbol resolution for symbols that jemalloc itself uses. While it + # might be possible to find a way to avoid all such symbol resolutions, + # it's currently not possible because at the very least there's a call + # to pthread_self from tsd_init_check_recursion, which is necessary + # because somehow clang doesn't want to accept the __thread keyword + # for TLS. + LDFLAGS += ['-Wl,-bind_at_load'] + +DIST_INSTALL = True |