1# -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*-
2# vim: set filetype=python:
3# This Source Code Form is subject to the terms of the Mozilla Public
4# License, v. 2.0. If a copy of the MPL was not distributed with this
5# file, You can obtain one at http://mozilla.org/MPL/2.0/.
6
7with Files('nsString*'):
8    BUG_COMPONENT = ('Core', 'String')
9
10DIRS += ['standalone']
11
12# On win we build two glue libs - glue linked to crt dlls here and in staticruntime we build
13# a statically linked glue lib.
14if CONFIG['OS_ARCH'] == 'WINNT':
15    DIRS += ['staticruntime']
16
17EXPORTS += [
18    'MainThreadUtils.h',
19    'nsArrayEnumerator.h',
20    'nsArrayUtils.h',
21    'nsBaseHashtable.h',
22    'nsCategoryCache.h',
23    'nsClassHashtable.h',
24    'nsCOMArray.h',
25    'nsComponentManagerUtils.h',
26    'nsCOMPtr.h',
27    'nsCRTGlue.h',
28    'nsCycleCollectionNoteChild.h',
29    'nsCycleCollectionNoteRootCallback.h',
30    'nsCycleCollectionParticipant.h',
31    'nsCycleCollectionTraversalCallback.h',
32    'nsDataHashtable.h',
33    'nsDebug.h',
34    'nsDeque.h',
35    'nsEnumeratorUtils.h',
36    'nsHashKeys.h',
37    'nsIClassInfoImpl.h',
38    'nsID.h',
39    'nsIInterfaceRequestorUtils.h',
40    'nsINIParser.h',
41    'nsInterfaceHashtable.h',
42    'nsISupportsImpl.h',
43    'nsISupportsUtils.h',
44    'nsIWeakReferenceUtils.h',
45    'nsJSThingHashtable.h',
46    'nsMemory.h',
47    'nsPointerHashKeys.h',
48    'nsProxyRelease.h',
49    'nsQuickSort.h',
50    'nsRefPtrHashtable.h',
51    'nsServiceManagerUtils.h',
52    'nsStringAPI.h',
53    'nsStringGlue.h',
54    'nsTArray-inl.h',
55    'nsTArray.h',
56    'nsTArrayForwardDeclare.h',
57    'nsTextFormatter.h',
58    'nsTHashtable.h',
59    'nsThreadUtils.h',
60    'nsTObserverArray.h',
61    'nsTPriorityQueue.h',
62    'nsTWeakRef.h',
63    'nsVersionComparator.h',
64    'nsWeakReference.h',
65    'nsXPTCUtils.h',
66    'PLDHashTable.h',
67]
68
69EXPORTS.mozilla += [
70    'AppData.h',
71    'AutoRestore.h',
72    'BlockingResourceBase.h',
73    'CondVar.h',
74    'DeadlockDetector.h',
75    'EnumeratedArrayCycleCollection.h',
76    'FileUtils.h',
77    'GenericFactory.h',
78    'IntentionalCrash.h',
79    'Monitor.h',
80    'Mutex.h',
81    'Observer.h',
82    'ReentrantMonitor.h',
83]
84
85include('objs.mozbuild')
86
87UNIFIED_SOURCES += xpcom_gluens_src_cppsrcs
88UNIFIED_SOURCES += xpcom_glue_src_cppsrcs
89
90UNIFIED_SOURCES += [
91    'GenericModule.cpp',
92    'nsStringAPI.cpp',
93]
94
95Library('xpcomglue_s')
96
97SDK_LIBRARY = True
98
99FORCE_STATIC_LIB = True
100
101if CONFIG['_MSC_VER']:
102    DEFINES['_USE_ANSI_CPP'] = True
103    # Don't include directives about which CRT to use
104    CFLAGS += ['-Zl']
105    CXXFLAGS += ['-Zl']
106
107LOCAL_INCLUDES += [
108    '../build',
109    '../threads',
110]
111
112if CONFIG['ENABLE_TESTS']:
113    DIRS += ['tests/gtest']
114
115# Include fallible for third party code using the xpcom glue
116USE_LIBS += [
117    'fallible',
118]
119
120# Force to build a static library only
121NO_EXPAND_LIBS = True
122
123DIST_INSTALL = True
124