Skip to content

Commit

Permalink
Merge pull request #4102 from jcfr/update-thirdparty-libraries-to-use…
Browse files Browse the repository at this point in the history
…-MANGLE_PREFIX

ENH: Update mangled third-party libraries to use MANGLE_PREFIX CMake variable
  • Loading branch information
thewtex committed Jul 12, 2023
2 parents d564c71 + a3afcf6 commit 93ed7dd
Show file tree
Hide file tree
Showing 19 changed files with 5,637 additions and 5,598 deletions.
7 changes: 6 additions & 1 deletion Modules/ThirdParty/Expat/src/expat/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -178,6 +178,11 @@ CONFIGURE_FILE(${ITK3P_EXPAT_SOURCE_DIR}/expatDllConfig.h.in

configure_file(expat_config.h.cmake "${ITK3P_EXPAT_BINARY_DIR}/expat_config.h")

set(MANGLE_PREFIX itk_expat)
configure_file(itk_expat_mangle.h.in
"${ITK3P_EXPAT_BINARY_DIR}/itk_expat_mangle.h"
@ONLY)

ADD_LIBRARY(ITKEXPAT ${expat_SRCS})

# Apply user-defined properties to the library target.
Expand All @@ -197,6 +202,6 @@ INSTALL(FILES
${ITK3P_EXPAT_SOURCE_DIR}/expat.h
${ITK3P_EXPAT_BINARY_DIR}/expat_config.h
${ITK3P_EXPAT_SOURCE_DIR}/expat_external.h
${ITK3P_EXPAT_SOURCE_DIR}/itk_expat_mangle.h
${ITK3P_EXPAT_BINARY_DIR}/itk_expat_mangle.h
DESTINATION ${ITK3P_INSTALL_INCLUDE_DIR} # TODO: itk_expat.h #include "itkexpat/expat.h"
COMPONENT Development)
122 changes: 0 additions & 122 deletions Modules/ThirdParty/Expat/src/expat/itk_expat_mangle.h

This file was deleted.

122 changes: 122 additions & 0 deletions Modules/ThirdParty/Expat/src/expat/itk_expat_mangle.h.in
Original file line number Diff line number Diff line change
@@ -0,0 +1,122 @@
/*=========================================================================
*
* Copyright NumFOCUS
*
* Licensed 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.txt
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
*=========================================================================*/
#ifndef itk_expat_mangle_h
#define itk_expat_mangle_h

/*

This header file mangles all symbols exported from the expat library.
It is included in all files while building the expat library. Due to
namespace pollution, no expat headers should be included in .h files in
ITK.

The following command was used to obtain the symbol list:

nm libITKEXPAT-5.3.a | grep " [TRD] " | awk '{ print $3 }' | sort -df | awk '{ print "#define "$1" @MANGLE_PREFIX@_ "$1 }'

*/

#define _INTERNAL_trim_to_complete_utf8_characters @MANGLE_PREFIX@__INTERNAL_trim_to_complete_utf8_characters
#define testingAccountingGetCountBytesDirect @MANGLE_PREFIX@_testingAccountingGetCountBytesDirect
#define testingAccountingGetCountBytesIndirect @MANGLE_PREFIX@_testingAccountingGetCountBytesIndirect
#define unsignedCharToPrintable @MANGLE_PREFIX@_unsignedCharToPrintable
#define XML_DefaultCurrent @MANGLE_PREFIX@_XML_DefaultCurrent
#define XML_ErrorString @MANGLE_PREFIX@_XML_ErrorString
#define XML_ExpatVersion @MANGLE_PREFIX@_XML_ExpatVersion
#define XML_ExpatVersionInfo @MANGLE_PREFIX@_XML_ExpatVersionInfo
#define XML_ExternalEntityParserCreate @MANGLE_PREFIX@_XML_ExternalEntityParserCreate
#define XML_FreeContentModel @MANGLE_PREFIX@_XML_FreeContentModel
#define XML_GetBase @MANGLE_PREFIX@_XML_GetBase
#define XML_GetBuffer @MANGLE_PREFIX@_XML_GetBuffer
#define XML_GetCurrentByteCount @MANGLE_PREFIX@_XML_GetCurrentByteCount
#define XML_GetCurrentByteIndex @MANGLE_PREFIX@_XML_GetCurrentByteIndex
#define XML_GetCurrentColumnNumber @MANGLE_PREFIX@_XML_GetCurrentColumnNumber
#define XML_GetCurrentLineNumber @MANGLE_PREFIX@_XML_GetCurrentLineNumber
#define XML_GetErrorCode @MANGLE_PREFIX@_XML_GetErrorCode
#define XML_GetFeatureList @MANGLE_PREFIX@_XML_GetFeatureList
#define XML_GetIdAttributeIndex @MANGLE_PREFIX@_XML_GetIdAttributeIndex
#define XML_GetInputContext @MANGLE_PREFIX@_XML_GetInputContext
#define XML_GetParsingStatus @MANGLE_PREFIX@_XML_GetParsingStatus
#define XML_GetSpecifiedAttributeCount @MANGLE_PREFIX@_XML_GetSpecifiedAttributeCount
#define XmlGetUtf16InternalEncoding @MANGLE_PREFIX@_XmlGetUtf16InternalEncoding
#define XmlGetUtf16InternalEncodingNS @MANGLE_PREFIX@_XmlGetUtf16InternalEncodingNS
#define XmlGetUtf8InternalEncoding @MANGLE_PREFIX@_XmlGetUtf8InternalEncoding
#define XmlGetUtf8InternalEncodingNS @MANGLE_PREFIX@_XmlGetUtf8InternalEncodingNS
#define XmlInitEncoding @MANGLE_PREFIX@_XmlInitEncoding
#define XmlInitEncodingNS @MANGLE_PREFIX@_XmlInitEncodingNS
#define XmlInitUnknownEncoding @MANGLE_PREFIX@_XmlInitUnknownEncoding
#define XmlInitUnknownEncodingNS @MANGLE_PREFIX@_XmlInitUnknownEncodingNS
#define XML_MemFree @MANGLE_PREFIX@_XML_MemFree
#define XML_MemMalloc @MANGLE_PREFIX@_XML_MemMalloc
#define XML_MemRealloc @MANGLE_PREFIX@_XML_MemRealloc
#define XML_Parse @MANGLE_PREFIX@_XML_Parse
#define XML_ParseBuffer @MANGLE_PREFIX@_XML_ParseBuffer
#define XML_ParserCreate @MANGLE_PREFIX@_XML_ParserCreate
#define XML_ParserCreate_MM @MANGLE_PREFIX@_XML_ParserCreate_MM
#define XML_ParserCreateNS @MANGLE_PREFIX@_XML_ParserCreateNS
#define XML_ParserFree @MANGLE_PREFIX@_XML_ParserFree
#define XML_ParserReset @MANGLE_PREFIX@_XML_ParserReset
#define XmlParseXmlDecl @MANGLE_PREFIX@_XmlParseXmlDecl
#define XmlParseXmlDeclNS @MANGLE_PREFIX@_XmlParseXmlDeclNS
#define XmlPrologStateInit @MANGLE_PREFIX@_XmlPrologStateInit
#define XmlPrologStateInitExternalEntity @MANGLE_PREFIX@_XmlPrologStateInitExternalEntity
#define XML_ResumeParser @MANGLE_PREFIX@_XML_ResumeParser
#define XML_SetAttlistDeclHandler @MANGLE_PREFIX@_XML_SetAttlistDeclHandler
#define XML_SetBase @MANGLE_PREFIX@_XML_SetBase
#define XML_SetBillionLaughsAttackProtectionActivationThreshold @MANGLE_PREFIX@_XML_SetBillionLaughsAttackProtectionActivationThreshold
#define XML_SetBillionLaughsAttackProtectionMaximumAmplification @MANGLE_PREFIX@_XML_SetBillionLaughsAttackProtectionMaximumAmplification
#define XML_SetCdataSectionHandler @MANGLE_PREFIX@_XML_SetCdataSectionHandler
#define XML_SetCharacterDataHandler @MANGLE_PREFIX@_XML_SetCharacterDataHandler
#define XML_SetCommentHandler @MANGLE_PREFIX@_XML_SetCommentHandler
#define XML_SetDefaultHandler @MANGLE_PREFIX@_XML_SetDefaultHandler
#define XML_SetDefaultHandlerExpand @MANGLE_PREFIX@_XML_SetDefaultHandlerExpand
#define XML_SetDoctypeDeclHandler @MANGLE_PREFIX@_XML_SetDoctypeDeclHandler
#define XML_SetElementDeclHandler @MANGLE_PREFIX@_XML_SetElementDeclHandler
#define XML_SetElementHandler @MANGLE_PREFIX@_XML_SetElementHandler
#define XML_SetEncoding @MANGLE_PREFIX@_XML_SetEncoding
#define XML_SetEndCdataSectionHandler @MANGLE_PREFIX@_XML_SetEndCdataSectionHandler
#define XML_SetEndDoctypeDeclHandler @MANGLE_PREFIX@_XML_SetEndDoctypeDeclHandler
#define XML_SetEndElementHandler @MANGLE_PREFIX@_XML_SetEndElementHandler
#define XML_SetEndNamespaceDeclHandler @MANGLE_PREFIX@_XML_SetEndNamespaceDeclHandler
#define XML_SetEntityDeclHandler @MANGLE_PREFIX@_XML_SetEntityDeclHandler
#define XML_SetExternalEntityRefHandler @MANGLE_PREFIX@_XML_SetExternalEntityRefHandler
#define XML_SetExternalEntityRefHandlerArg @MANGLE_PREFIX@_XML_SetExternalEntityRefHandlerArg
#define XML_SetHashSalt @MANGLE_PREFIX@_XML_SetHashSalt
#define XML_SetNamespaceDeclHandler @MANGLE_PREFIX@_XML_SetNamespaceDeclHandler
#define XML_SetNotationDeclHandler @MANGLE_PREFIX@_XML_SetNotationDeclHandler
#define XML_SetNotStandaloneHandler @MANGLE_PREFIX@_XML_SetNotStandaloneHandler
#define XML_SetParamEntityParsing @MANGLE_PREFIX@_XML_SetParamEntityParsing
#define XML_SetProcessingInstructionHandler @MANGLE_PREFIX@_XML_SetProcessingInstructionHandler
#define XML_SetReturnNSTriplet @MANGLE_PREFIX@_XML_SetReturnNSTriplet
#define XML_SetSkippedEntityHandler @MANGLE_PREFIX@_XML_SetSkippedEntityHandler
#define XML_SetStartCdataSectionHandler @MANGLE_PREFIX@_XML_SetStartCdataSectionHandler
#define XML_SetStartDoctypeDeclHandler @MANGLE_PREFIX@_XML_SetStartDoctypeDeclHandler
#define XML_SetStartElementHandler @MANGLE_PREFIX@_XML_SetStartElementHandler
#define XML_SetStartNamespaceDeclHandler @MANGLE_PREFIX@_XML_SetStartNamespaceDeclHandler
#define XML_SetUnknownEncodingHandler @MANGLE_PREFIX@_XML_SetUnknownEncodingHandler
#define XML_SetUnparsedEntityDeclHandler @MANGLE_PREFIX@_XML_SetUnparsedEntityDeclHandler
#define XML_SetUserData @MANGLE_PREFIX@_XML_SetUserData
#define XML_SetXmlDeclHandler @MANGLE_PREFIX@_XML_SetXmlDeclHandler
#define XmlSizeOfUnknownEncoding @MANGLE_PREFIX@_XmlSizeOfUnknownEncoding
#define XML_StopParser @MANGLE_PREFIX@_XML_StopParser
#define XML_UseForeignDTD @MANGLE_PREFIX@_XML_UseForeignDTD
#define XML_UseParserAsHandlerArg @MANGLE_PREFIX@_XML_UseParserAsHandlerArg
#define XmlUtf16Encode @MANGLE_PREFIX@_XmlUtf16Encode
#define XmlUtf8Encode @MANGLE_PREFIX@_XmlUtf8Encode

#endif /* itk_expat_mangle_h */
10 changes: 8 additions & 2 deletions Modules/ThirdParty/HDF5/src/itkhdf5/src/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,12 @@ cmake_minimum_required (VERSION 3.12)
# ITK --stop ]]
project (HDF5_SRC C)

# ITK --start
set(MANGLE_PREFIX itk)
configure_file(${HDF5_SRC_DIR}/itk_hdf5_mangle.h.in
${HDF5_SRC_BINARY_DIR}/itk_hdf5_mangle.h
@ONLY)
# ITK --stop
#-----------------------------------------------------------------------------
# List Source Files
#-----------------------------------------------------------------------------
Expand All @@ -23,7 +29,7 @@ set (H5_HDRS
#${HDF5_SRC_DIR}/H5version.h
#${HDF5_SRC_DIR}/H5overflow.h
# ITK --start
${HDF5_SRC_DIR}/itk_hdf5_mangle.h
${HDF5_SRC_BINARY_DIR}/itk_hdf5_mangle.h
# ITK --stop
)
IDE_GENERATED_PROPERTIES ("H5" "${H5_HDRS}" "${H5_SOURCES}" )
Expand Down Expand Up @@ -835,7 +841,7 @@ set (H5_PUBLIC_HEADERS
${H5VL_HDRS}
${H5Z_HDRS}
# ITK --start
${HDF5_SRC_DIR}/itk_hdf5_mangle.h
${HDF5_SRC_BINARY_DIR}/itk_hdf5_mangle.h
# ITK --stop
)

Expand Down
4 changes: 2 additions & 2 deletions Modules/ThirdParty/HDF5/src/itkhdf5/src/H5make_libsettings.c
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,7 @@ insert_libhdf5_settings(FILE *flibinfo)
/* print variable definition and the string */
/* Do not use const else AIX strings does not show it. */
/* ITK --start */
fprintf(flibinfo, "char itk_H5libhdf5_settings[]=\n");
fprintf(flibinfo, "char " H5_TOSTRING(H5libhdf5_settings) "[]=\n");
/* ITK --stop */
bol++;
while (EOF != (inchar = HDgetc(fsettings))) {
Expand Down Expand Up @@ -108,7 +108,7 @@ insert_libhdf5_settings(FILE *flibinfo)
/* print variable definition and an empty string */
/* Do not use const else AIX strings does not show it. */
/* ITK --start */
fprintf(flibinfo, "char itk_H5libhdf5_settings[]=\"\";\n");
fprintf(flibinfo, "char " H5_TOSTRING(H5libhdf5_settings) "[]=\"\";\n");
/* ITK --stop */
#endif
} /* insert_libhdf5_settings() */
Expand Down

0 comments on commit 93ed7dd

Please sign in to comment.