add sm to --enable-mergelibs=more

Which means

(1) We need to extend the weak linkage magic for the sfx2 SFX_TYPEMAP
stuff. Just make it unconditional, since it makes no difference for the
individual items.

(2) The initialisation of global const Sequence data in starmath stops
working, because it runs too early. Use function-local static to
initialise it on-demand

Change-Id: Idc397515cd1d9621a06d237606c19acee600081a
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/164532
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
This commit is contained in:
Noel Grandin
2024-03-07 20:14:37 +01:00
parent b117f7d42c
commit 87d3f768f3
8 changed files with 28 additions and 15 deletions
+3 -1
View File
@@ -249,7 +249,9 @@ void SvMetaType::WriteSfxItem(
// write the implementation part
rOutStm.WriteOString( "#ifdef SFX_TYPEMAP" ) << endl;
rOutStm.WriteOString( "#if !defined(_WIN32) && (defined(DISABLE_DYNLOADING) && (defined(ANDROID) || defined(IOS) || defined(EMSCRIPTEN) || defined(LINUX)))" ) << endl;
rOutStm.WriteOString( "#if defined(_WIN32)" ) << endl;
rOutStm.WriteOString( "__declspec(selectany)" ) << endl;
rOutStm.WriteOString( "#else" ) << endl;
rOutStm.WriteOString( "__attribute__((__weak__))" ) << endl;
rOutStm.WriteOString( "#endif" ) << endl;
rOutStm.WriteOString( aTypeName ).WriteOString( aVarName )
@@ -177,6 +177,8 @@ gb_MERGE_LIBRARY_LIST += \
sdbc2 \
$(call gb_Helper_optional,DBCONNECTIVITY,sdbt) \
slideshow \
sm \
smd \
$(if $(filter WNT,$(OS)), \
smplmail \
) \
+4 -4
View File
@@ -39,15 +39,15 @@ constexpr sal_Int32 STARMATH_MATHMLHTML_ENTITY_NUMBER = 2125;
* Entity names for mathml. Example: &infin -> \u221E;
* These ones are to be used on import.
*/
const extern ::css::uno::Sequence<::css::beans::Pair<::rtl::OUString, ::rtl::OUString>>
icustomMathmlHtmlEntities;
const css::uno::Sequence<::css::beans::Pair<::rtl::OUString, ::rtl::OUString>>&
getCustomMathmlHtmlEntities();
/**
* Entity names for mathml. Example: "\u221E"; -> &infin;
* These ones are to be used on file export.
*/
const extern ::css::uno::Sequence<::css::beans::Pair<::rtl::OUString, ::rtl::OUString>>
icustomMathmlHtmlEntitiesExport;
const css::uno::Sequence<::css::beans::Pair<::rtl::OUString, ::rtl::OUString>>&
getCustomMathmlHtmlEntitiesExport();
};
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
+1 -1
View File
@@ -299,7 +299,7 @@ bool SmMLExportWrapper::WriteThroughComponentOS(const Reference<io::XOutputStrea
// connect XML writer to output stream
xSaxWriter->setOutputStream(xOutputStream);
if (m_bUseHTMLMLEntities)
xSaxWriter->setCustomEntityNames(starmathdatabase::icustomMathmlHtmlEntitiesExport);
xSaxWriter->setCustomEntityNames(starmathdatabase::getCustomMathmlHtmlEntitiesExport());
// prepare arguments (prepend doc handler to given arguments)
Sequence<Any> aArgs{ Any(xSaxWriter), Any(rPropSet) };
+2 -2
View File
@@ -390,14 +390,14 @@ ErrCode SmMLImportWrapper::ReadThroughComponentIS(
Reference<css::xml::sax::XFastDocumentHandler> xFastDocHandler(xFilter, UNO_QUERY);
if (xFastParser)
{
xFastParser->setCustomEntityNames(starmathdatabase::icustomMathmlHtmlEntities);
xFastParser->setCustomEntityNames(starmathdatabase::getCustomMathmlHtmlEntities());
xFastParser->parseStream(aParserInput);
}
else if (xFastDocHandler)
{
Reference<css::xml::sax::XFastParser> xParser
= css::xml::sax::FastParser::create(rxContext);
xParser->setCustomEntityNames(starmathdatabase::icustomMathmlHtmlEntities);
xParser->setCustomEntityNames(starmathdatabase::getCustomMathmlHtmlEntities());
xParser->setFastDocumentHandler(xFastDocHandler);
xParser->parseStream(aParserInput);
}
+1 -1
View File
@@ -234,7 +234,7 @@ bool SmXMLExportWrapper::WriteThroughComponent(const Reference<io::XOutputStream
// connect XML writer to output stream
xSaxWriter->setOutputStream(xOutputStream);
if (m_bUseHTMLMLEntities)
xSaxWriter->setCustomEntityNames(starmathdatabase::icustomMathmlHtmlEntitiesExport);
xSaxWriter->setCustomEntityNames(starmathdatabase::getCustomMathmlHtmlEntitiesExport());
// prepare arguments (prepend doc handler to given arguments)
Sequence<Any> aArgs{ Any(xSaxWriter), Any(rPropSet) };
+2 -2
View File
@@ -264,7 +264,7 @@ ErrCode SmXMLImportWrapper::ReadThroughComponent(const Reference<io::XInputStrea
if (xFastParser)
{
if (bUseHTMLMLEntities)
xFastParser->setCustomEntityNames(starmathdatabase::icustomMathmlHtmlEntities);
xFastParser->setCustomEntityNames(starmathdatabase::getCustomMathmlHtmlEntities());
xFastParser->parseStream(aParserInput);
}
else if (xFastDocHandler)
@@ -272,7 +272,7 @@ ErrCode SmXMLImportWrapper::ReadThroughComponent(const Reference<io::XInputStrea
Reference<css::xml::sax::XFastParser> xParser
= css::xml::sax::FastParser::create(rxContext);
if (bUseHTMLMLEntities)
xParser->setCustomEntityNames(starmathdatabase::icustomMathmlHtmlEntities);
xParser->setCustomEntityNames(starmathdatabase::getCustomMathmlHtmlEntities());
xParser->setFastDocumentHandler(xFastDocHandler);
xParser->parseStream(aParserInput);
}
+13 -4
View File
@@ -2149,9 +2149,13 @@ static ::css::beans::Pair<::rtl::OUString, ::rtl::OUString>
// clang-format on
};
const ::css::uno::Sequence<::css::beans::Pair<OUString, OUString>>
starmathdatabase::icustomMathmlHtmlEntities(
const css::uno::Sequence<::css::beans::Pair<OUString, OUString>>&
starmathdatabase::getCustomMathmlHtmlEntities()
{
static css::uno::Sequence<::css::beans::Pair<OUString, OUString>> data(
icustomMathmlHtmlEntitiesData, starmathdatabase::STARMATH_MATHMLHTML_ENTITY_NUMBER);
return data;
}
static ::css::beans::Pair<::rtl::OUString, ::rtl::OUString>
icustomMathmlHtmlEntitiesNamesExportData[2] = {
@@ -2160,7 +2164,12 @@ static ::css::beans::Pair<::rtl::OUString, ::rtl::OUString>
{ u"&infin;"_ustr, u"\u221E"_ustr}
// clang-format on
};
const ::css::uno::Sequence<::css::beans::Pair<::rtl::OUString, ::rtl::OUString>>
starmathdatabase::icustomMathmlHtmlEntitiesExport(icustomMathmlHtmlEntitiesNamesExportData, 2);
const css::uno::Sequence<::css::beans::Pair<::rtl::OUString, ::rtl::OUString>>&
starmathdatabase::getCustomMathmlHtmlEntitiesExport()
{
static css::uno::Sequence<::css::beans::Pair<::rtl::OUString, ::rtl::OUString>> data(
icustomMathmlHtmlEntitiesNamesExportData, 2);
return data;
};
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */