office-gobmx/svl/Library_svl.mk
Armin Le Grand (allotropia) c351f920c4 ITEM: preparations for more/easier changes
This change is not about speed improvements but diverse
preparations to make changes/reading/understanding easier.
It does not change speed AFAIK.

Added a global static debug-only counter to allow getting
an overview over number of all allocated SfxPoolItem's
and the still alloated ones at office shutdown. The values
are used in Application::~Application to make a short info
statement. It allows to be able to quickly detect if an
error in future changes may lead to memory losses - these
would show in dramaitically higher numbers then (hopefully)
immediately.

Moved SfxVoidItem to own source/header.

Added container library interface support to SfxItemSet,
adapted already some methods to use it - not all possible,
I will commit & get status from gerrit 1st if all still works
and then continue.

Changed INVALID_POOL_ITEM from -1 to use a global unique
incarnation of an isolated derivation from SfxPoolItem. It
allows to avoid the (-1) pointer hack. Since still just
pointers are compared it's not worse. NOTE: That way, more
'special' SfxPoolItem's may be used for more States - a
candidate is e.g. SfxVoidItem(0) which represents ::DISABLED
state -- unfortunately not only, it is also used (mainly for
UI stuff) with 'real' WhichIDs - hard to sort out, will have
to stay that way for now AFAIK.

Changed INVALID_POOL_ITEM stuff to use a static extern
incarnated item in combination with a inline method
to return it, called GetGlobalStaticInvalidItemInstance().

Isolated create/cleanup of a SfxPoolItem entry in
SfxItemSet to further modularize/simplify that. It is
currently from constructor & destructor but already shows
that PoolDefaults are handled differently - probably an
error. Still, for now, do no change in behaviour (yet).

Got regular 'killed by the Kill-Wrapper' messages from
gerrit, seems to have to do with UITest_sw_findReplace.
That python/c++ scripting stuff is hard to debug, but
finally I identified the problem has to do with
the INVALID_POOL_ITEM change. It was in
SfxItemSet::InvalidateAllItems() where still a (-1)
was used -> chaos in detecting invalid items.

Change-Id: I595e1f25ab660c35c4f2d19c233d1dfadfe25214
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/155675
Tested-by: Jenkins
Reviewed-by: Armin Le Grand <Armin.Le.Grand@me.com>
2023-08-18 10:37:44 +02:00

197 lines
5.2 KiB
Makefile

# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*-
#
# This file is part of the LibreOffice project.
#
# 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 incorporates work covered by the following license notice:
#
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed
# with this work for additional information regarding copyright
# ownership. The ASF licenses this file to you under the Apache
# License, Version 2.0 (the "License"); you may not use this file
# except in compliance with the License. You may obtain a copy of
# the License at http://www.apache.org/licenses/LICENSE-2.0 .
#
$(eval $(call gb_Library_Library,svl))
$(eval $(call gb_Library_use_externals,svl,\
boost_headers \
$(if $(filter LINUX MACOSX ANDROID iOS %BSD SOLARIS HAIKU,$(OS)), \
curl) \
dtoa \
icu_headers \
icuuc \
mdds_headers \
libxml2 \
))
$(eval $(call gb_Library_set_componentfile,svl,svl/util/svl,services))
$(eval $(call gb_Library_set_include,svl,\
-I$(SRCDIR)/svl/source/inc \
$$(INCLUDE) \
))
$(eval $(call gb_Library_use_custom_headers,svl,\
officecfg/registry \
))
$(eval $(call gb_Library_set_precompiled_header,svl,svl/inc/pch/precompiled_svl))
$(eval $(call gb_Library_use_sdk_api,svl))
$(eval $(call gb_Library_add_defs,svl,\
-DSVL_DLLIMPLEMENTATION \
))
ifeq ($(TLS),NSS)
$(eval $(call gb_Library_use_externals,svl,\
plc4 \
nss3 \
))
else
ifeq ($(TLS),OPENSSL)
$(eval $(call gb_Library_use_externals,svl,\
openssl \
openssl_headers \
))
endif
endif
$(eval $(call gb_Library_use_libraries,svl,\
basegfx \
comphelper \
cppu \
cppuhelper \
i18nlangtag \
i18nutil \
$(if $(ENABLE_JAVA), \
jvmfwk) \
sal \
salhelper \
sot \
tl \
ucbhelper \
utl \
))
$(eval $(call gb_Library_use_system_win32_libs,svl,\
advapi32 \
crypt32 \
gdi32 \
gdiplus \
imm32 \
mpr \
ole32 \
shell32 \
usp10 \
uuid \
version \
winspool \
setupapi \
shlwapi \
))
ifneq (,$(filter CRYPTO_NSS,$(BUILD_TYPE)))
$(eval $(call gb_Library_use_externals,svl,\
nss3 \
plc4 \
))
endif
$(eval $(call gb_Library_add_exception_objects,svl,\
svl/source/config/asiancfg \
svl/source/config/cjkoptions \
svl/source/config/ctloptions \
svl/source/config/itemholder2 \
svl/source/config/languageoptions \
svl/source/crypto/cryptosign \
svl/source/filepicker/pickerhistory \
svl/source/items/cenumitm \
svl/source/items/cintitem \
svl/source/items/custritm \
svl/source/items/flagitem \
svl/source/items/globalnameitem \
svl/source/items/grabbagitem \
svl/source/items/ilstitem \
svl/source/items/imageitm \
svl/source/items/intitem \
svl/source/items/int64item \
svl/source/items/itemiter \
svl/source/items/itempool \
svl/source/items/itemprop \
svl/source/items/IndexedStyleSheets \
svl/source/items/itemset \
svl/source/items/lckbitem \
svl/source/items/legacyitem \
svl/source/items/macitem \
svl/source/items/poolcach \
svl/source/items/poolitem \
svl/source/items/ptitem \
svl/source/items/rectitem \
svl/source/items/rngitem \
svl/source/items/sitem \
svl/source/items/slstitm \
svl/source/items/srchitem \
svl/source/items/stringio \
svl/source/items/stritem \
svl/source/items/style \
svl/source/items/stylepool \
svl/source/items/visitem \
svl/source/items/voiditem \
svl/source/items/whiter \
svl/source/misc/PasswordHelper \
svl/source/misc/adrparse \
$(if $(filter DESKTOP,$(BUILD_TYPE)),\
svl/source/misc/documentlockfile \
svl/source/misc/msodocumentlockfile) \
svl/source/misc/filenotation \
svl/source/misc/fstathelper \
svl/source/misc/getstringresource \
svl/source/misc/gridprinter \
svl/source/misc/inethist \
svl/source/misc/inettype \
svl/source/misc/lngmisc \
svl/source/misc/lockfilecommon \
svl/source/misc/ownlist \
svl/source/misc/sharecontrolfile \
svl/source/misc/sharedstring \
svl/source/misc/sharedstringpool \
svl/source/misc/strmadpt \
svl/source/misc/urihelper \
svl/source/notify/SfxBroadcaster \
svl/source/notify/broadcast \
svl/source/notify/listener \
svl/source/notify/lstner \
svl/source/numbers/currencytable \
svl/source/numbers/numfmuno \
svl/source/numbers/numuno \
svl/source/numbers/supservs \
svl/source/numbers/zforfind \
svl/source/numbers/zforlist \
svl/source/numbers/zformat \
svl/source/numbers/zforscan \
svl/source/svsql/converter \
svl/source/undo/undo \
svl/source/uno/pathservice \
))
ifeq ($(OS),WNT)
$(eval $(call gb_Library_add_exception_objects,svl,\
svl/source/svdde/ddecli \
svl/source/svdde/ddedata \
svl/source/svdde/ddestrg \
svl/source/svdde/ddesvr \
))
else
$(eval $(call gb_Library_add_exception_objects,svl,\
svl/unx/source/svdde/ddedummy \
))
endif
# vim: set noet sw=4 ts=4: