Dactyloidae/intl/unicharutil/util/moz.build
Job Bautista bad884a7c7 Issue #2165 - Build ICU as a shared library if we're building Spidermonkey shared.
It seems that if we're going to enable JS_SHARED_LIBRARY, we need ICU to be a
shared library too in order to prevent code duplication in mozjs.dll bloating
it to a whopping 21 MB.
This unfortunately means we have to fold icudata back to icu itself. But since
icudata is still separated from libxul (which is what really matters for #1451),
I think this is a fair compromise.
Building ICU as shared is offered as an option via --enable-shared-icu. But
technically you really need --enable-shared-icu if you're going to use
--enable-shared-js. Unfortunately I can't make configure exit with an error if
MOZ_SHARED_ICU is not defined when JS_SHARED_LIBRARY is enabled, because options
are controlled by different configure scripts (icu is based on bash, while js is
based on python), and I have no idea how to pass MOZ_SHARED_ICU to js's
moz.configure.

Tag #62
2023-03-28 12:11:00 +08:00

46 lines
1.2 KiB
INI

# -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*-
# 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/.
# This file builds the unicharutil_external_s library which should be used
# by frozen (dependent) linkage components. Internal-linkage code should use
# unicharutil_s which is built in the internal/ subdirectory.
DIRS += ['internal']
EXPORTS += [
'GreekCasing.h',
'ICUUtils.h',
'IrishCasing.h',
'nsBidiUtils.h',
'nsSpecialCasingData.h',
'nsUnicharUtils.h',
'nsUnicodeProperties.h',
'nsUnicodeScriptCodes.h',
]
include('objs.mozbuild')
UNIFIED_SOURCES += intl_unicharutil_util_cppsrcs
# This line breaks building ICU as a shared library due to a
# SandboxValidationError from the frontend reader.
if not CONFIG['MOZ_SHARED_ICU']:
Library('unicharutil_external_s')
FORCE_STATIC_LIB = True
SDK_LIBRARY = True
USE_STATIC_LIBS = True
if CONFIG['_MSC_VER']:
DEFINES['_USE_ANSI_CPP'] = True
# Don't include directives about which CRT to use
CFLAGS += ['-Zl']
CXXFLAGS += ['-Zl']
USE_LIBS += ['icu']
DIST_INSTALL = True