mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-11-01 06:35:42 +00:00
e255fd3842
We have a number of nsTHashtable<nsPtrHashKey<T>> instantiations, mostly from IPDL-generated code. There's no reason in principle that all of these instantiations couldn't share code, since they're all storing POD entries of the same size. Let's specialize nsTHashtable for such types, providing a thin layer over a hashtable that stores void pointers. This change saves about 90K of space (!) on x86-64 Linux.
124 lines
2.8 KiB
Python
124 lines
2.8 KiB
Python
# -*- 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/.
|
|
|
|
with Files('nsString*'):
|
|
BUG_COMPONENT = ('Core', 'String')
|
|
|
|
DIRS += ['standalone']
|
|
|
|
# On win we build two glue libs - glue linked to crt dlls here and in staticruntime we build
|
|
# a statically linked glue lib.
|
|
if CONFIG['OS_ARCH'] == 'WINNT':
|
|
DIRS += ['staticruntime']
|
|
|
|
EXPORTS += [
|
|
'MainThreadUtils.h',
|
|
'nsArrayEnumerator.h',
|
|
'nsArrayUtils.h',
|
|
'nsBaseHashtable.h',
|
|
'nsCategoryCache.h',
|
|
'nsClassHashtable.h',
|
|
'nsCOMArray.h',
|
|
'nsComponentManagerUtils.h',
|
|
'nsCOMPtr.h',
|
|
'nsCRTGlue.h',
|
|
'nsCycleCollectionNoteChild.h',
|
|
'nsCycleCollectionNoteRootCallback.h',
|
|
'nsCycleCollectionParticipant.h',
|
|
'nsCycleCollectionTraversalCallback.h',
|
|
'nsDataHashtable.h',
|
|
'nsDebug.h',
|
|
'nsDeque.h',
|
|
'nsEnumeratorUtils.h',
|
|
'nsHashKeys.h',
|
|
'nsIClassInfoImpl.h',
|
|
'nsID.h',
|
|
'nsIInterfaceRequestorUtils.h',
|
|
'nsINIParser.h',
|
|
'nsInterfaceHashtable.h',
|
|
'nsISupportsImpl.h',
|
|
'nsISupportsUtils.h',
|
|
'nsIWeakReferenceUtils.h',
|
|
'nsJSThingHashtable.h',
|
|
'nsMemory.h',
|
|
'nsPointerHashKeys.h',
|
|
'nsProxyRelease.h',
|
|
'nsQuickSort.h',
|
|
'nsRefPtrHashtable.h',
|
|
'nsServiceManagerUtils.h',
|
|
'nsStringAPI.h',
|
|
'nsStringGlue.h',
|
|
'nsTArray-inl.h',
|
|
'nsTArray.h',
|
|
'nsTArrayForwardDeclare.h',
|
|
'nsTextFormatter.h',
|
|
'nsTHashtable.h',
|
|
'nsThreadUtils.h',
|
|
'nsTObserverArray.h',
|
|
'nsTPriorityQueue.h',
|
|
'nsTWeakRef.h',
|
|
'nsVersionComparator.h',
|
|
'nsWeakReference.h',
|
|
'nsXPTCUtils.h',
|
|
'PLDHashTable.h',
|
|
]
|
|
|
|
EXPORTS.mozilla += [
|
|
'AppData.h',
|
|
'AutoRestore.h',
|
|
'BlockingResourceBase.h',
|
|
'CondVar.h',
|
|
'DeadlockDetector.h',
|
|
'EnumeratedArrayCycleCollection.h',
|
|
'FileUtils.h',
|
|
'GenericFactory.h',
|
|
'IntentionalCrash.h',
|
|
'Monitor.h',
|
|
'Mutex.h',
|
|
'Observer.h',
|
|
'ReentrantMonitor.h',
|
|
]
|
|
|
|
include('objs.mozbuild')
|
|
|
|
UNIFIED_SOURCES += xpcom_gluens_src_cppsrcs
|
|
UNIFIED_SOURCES += xpcom_glue_src_cppsrcs
|
|
|
|
UNIFIED_SOURCES += [
|
|
'GenericModule.cpp',
|
|
'nsStringAPI.cpp',
|
|
]
|
|
|
|
Library('xpcomglue_s')
|
|
|
|
SDK_LIBRARY = True
|
|
|
|
FORCE_STATIC_LIB = True
|
|
|
|
if CONFIG['_MSC_VER']:
|
|
DEFINES['_USE_ANSI_CPP'] = True
|
|
# Don't include directives about which CRT to use
|
|
CFLAGS += ['-Zl']
|
|
CXXFLAGS += ['-Zl']
|
|
|
|
LOCAL_INCLUDES += [
|
|
'../build',
|
|
'../threads',
|
|
]
|
|
|
|
if CONFIG['ENABLE_TESTS']:
|
|
DIRS += ['tests/gtest']
|
|
|
|
# Include fallible for third party code using the xpcom glue
|
|
USE_LIBS += [
|
|
'fallible',
|
|
]
|
|
|
|
# Force to build a static library only
|
|
NO_EXPAND_LIBS = True
|
|
|
|
DIST_INSTALL = True
|