Build fontconfig.def from header files when needed.

Instead of attempting to track exported symbols manually in
fontconfig.def.in, build it directly from the public fontconfig header files
to ensure it exports the public API.
This commit is contained in:
Keith Packard 2006-09-17 14:09:12 -07:00
parent 6262fefe54
commit 706a1b367a
3 changed files with 17 additions and 305 deletions

View File

@ -562,7 +562,6 @@ fc-glyphname/Makefile
fc-case/Makefile
fc-arch/Makefile
src/Makefile
src/fontconfig.def
conf.d/Makefile
fc-cache/Makefile
fc-cat/Makefile

View File

@ -25,6 +25,8 @@ if OS_WIN32
export_symbols = -export-symbols fontconfig.def
fontconfig_def_dependency = fontconfig.def
# gcc import library install/uninstall
install-libtool-import-lib:
@ -39,6 +41,8 @@ else
install-libtool-import-lib:
uninstall-libtool-import-lib:
fontconfig_def_dependency =
endif
if MS_LIB_AVAILABLE
@ -73,7 +77,7 @@ INCLUDES = \
-DFC_CACHEDIR='"$(FC_CACHEDIR)"' \
-DFONTCONFIG_PATH='"$(CONFDIR)"'
EXTRA_DIST = fontconfig.def.in makealias
EXTRA_DIST = makealias
noinst_HEADERS=fcint.h
@ -112,6 +116,8 @@ libfontconfig_la_LDFLAGS = \
libfontconfig_la_LIBADD = $(ICONV_LIBS) $(FREETYPE_LIBS) $(LIBXML2_LIBS) $(EXPAT_LIBS)
libfontconfig_la_DEPENDENCIES = $(fontconfig_def_dependency)
install-data-local: install-ms-import-lib install-libtool-import-lib
uninstall-local: uninstall-ms-import-lib uninstall-libtool-import-lib
@ -127,3 +133,13 @@ fcalias.h: $(top_srcdir)/src/makealias $(PUBLIC_FILES)
sh $(top_srcdir)/src/makealias "$(top_srcdir)/src" $(PUBLIC_FILES)
CLEANFILES := $(ALIAS_FILES)
fontconfig.def: $(PUBLIC_FILES)
echo Generating $@
(echo EXPORTS; \
(cat $(PUBLIC_FILES) || echo 'FcERROR ()' ) | \
grep '^Fc[^ ]* *(' | sed -e 's/ *(.*$$//' -e 's/^/ /' | \
sort; \
echo LIBRARY libfontconfig-@LT_CURRENT_MINUS_AGE@.dll; \
echo VERSION @LT_CURRENT@.@LT_REVISION@) >$@
@ ! grep -q FcERROR $@ || ($(RM) $@; false)

View File

@ -1,303 +0,0 @@
EXPORTS
FcDirCacheValid
FcDirCacheHasCurrentArch
FcDirCacheUnlink
FcBlanksCreate
FcBlanksDestroy
FcBlanksAdd
FcBlanksIsMember
FcConfigHome
FcConfigEnableHome
FcConfigFilename
FcConfigCreate
FcConfigDestroy
FcConfigSetCurrent
FcConfigGetCurrent
FcConfigUptoDate
FcConfigBuildFonts
FcConfigGetFontDirs
FcConfigNormalizeFontDir
FcConfigGetConfigDirs
FcConfigGetConfigFiles
FcConfigGetCache
FcConfigGetBlanks
FcConfigGetRescanInverval
FcConfigSetRescanInverval
FcConfigGetFonts
FcConfigAppFontAddFile
FcConfigAppFontAddDir
FcConfigAppFontClear
FcConfigSubstituteWithPat
FcConfigSubstitute
FcCharSetCreate
FcCharSetDestroy
FcCharSetAddChar
FcCharSetCopy
FcCharSetEqual
FcCharSetIntersect
FcCharSetUnion
FcCharSetSubtract
FcCharSetHasChar
FcCharSetCount
FcCharSetIntersectCount
FcCharSetSubtractCount
FcCharSetIsSubset
FcCharSetFirstPage
FcCharSetNextPage
FcValuePrint
FcPatternPrint
FcFontSetPrint
FcDebugVal
FcFontSetUnserialize
FcDefaultSubstitute
FcFileScan
FcDirScan
FcDirSave
FcFreeTypeQuery
FcFontSetCreate
FcFontSetDestroy
FcFontSetAdd
FcInitLoadConfig
FcInitLoadConfigAndFonts
FcInit
FcFini
FcGetVersion
FcInitReinitialize
FcInitBringUptoDate
FcLangSetCreate
FcLangSetDestroy
FcLangSetCopy
FcLangSetAdd
FcLangSetHasLang
FcLangSetCompare
FcLangSetContains
FcLangSetEqual
FcLangSetHash
FcObjectSetCreate
FcObjectSetAdd
FcObjectSetDestroy
FcObjectSetVaBuild
FcObjectSetBuild
FcFontSetList
FcFontList
FcAtomicCreate
FcAtomicLock
FcAtomicNewFile
FcAtomicOrigFile
FcAtomicReplaceOrig
FcAtomicDeleteNew
FcAtomicUnlock
FcAtomicDestroy
FcFontSetMatch
FcFontMatch
FcFontRenderPrepare
FcFontSetSort
FcFontSort
FcFontSetSortDestroy
FcMatrixCopy
FcMatrixEqual
FcMatrixMultiply
FcMatrixRotate
FcMatrixScale
FcMatrixShear
FcNameRegisterObjectTypes
FcNameUnregisterObjectTypes
FcNameGetObjectType
FcNameRegisterConstants
FcNameUnregisterConstants
FcNameGetConstant
FcNameConstant
FcNameParse
FcNameUnparse
FcNameUnparseEscaped
FcPatternCreate
FcPatternDuplicate
FcPatternReference
FcValueDestroy
FcValueEqual
FcValueSave
FcPatternDestroy
FcPatternEqual
FcPatternEqualSubset
FcPatternHash
FcPatternAdd
FcPatternAddWeak
FcPatternGet
FcPatternDel
FcPatternRemove
FcPatternAddInteger
FcPatternAddDouble
FcPatternAddString
FcPatternAddMatrix
FcPatternAddCharSet
FcPatternAddBool
FcPatternAddLangSet
FcPatternGetInteger
FcPatternGetDouble
FcPatternGetString
FcPatternGetMatrix
FcPatternGetCharSet
FcPatternGetBool
FcPatternGetLangSet
FcPatternVaBuild
FcPatternBuild
FcStrCopy
FcStrCopyFilename
FcStrDowncase
FcStrCmpIgnoreCase
FcStrCmp
FcStrStrIgnoreCase
FcStrStr
FcUtf8ToUcs4
FcUtf8Len
FcUcs4ToUtf8
FcUtf16ToUcs4
FcUtf16Len
FcStrDirname
FcStrBasename
FcStrSetCreate
FcStrSetMember
FcStrSetEqual
FcStrSetAdd
FcStrSetAddFilename
FcStrSetDel
FcStrSetDestroy
FcStrListCreate
FcStrListNext
FcStrListDone
FcConfigParseAndLoad
FcFreeTypeCharIndex
FcFreeTypeCharSetAndSpacing
FcFreeTypeCharSet
FcPatternGetFTFace
FcPatternAddFTFace
FcGlobalCacheCreate
FcGlobalCacheDestroy
FcGlobalCacheReadDir
FcGlobalCacheLoad
FcGlobalCacheUpdate
FcGlobalCacheSave
FcCacheRead
FcDirCacheWrite
FcDirCacheRead
FcCacheBankToIndexMTF
FcCacheFindBankDir
FcConfigAddConfigDir
FcConfigAddFontDir
FcConfigAddDir
FcConfigAddConfigFile
FcConfigSetCache
FcConfigAddBlank
FcConfigAddEdit
FcConfigSetFonts
FcConfigCompareValue
FcConfigGlobAdd
FcConfigAcceptFilename
FcConfigPatternsAdd
FcConfigAcceptFont
FcConfigModifiedTime
FcLangCharSetPopulate
FcCharSetFreeze
FcCharSetThawAll
FcNameUnparseCharSet
FcNameParseCharSet
FcCharSetFindLeafCreate
FcCharSetNewBank
FcCharSetNeededBytes
FcCharSetNeededBytesAlign
FcCharSetDistributeBytes
FcCharSetUnserialize
FcValueListPrint
FcLangSetPrint
FcOpPrint
FcTestPrint
FcExprPrint
FcEditPrint
FcSubstPrint
FcInitDebug
FcGetDefaultLang
FcFileIsDir
FcFileScanConfig
FcDirScanConfig
FcFreeTypeIsExclusiveLang
FcFreeTypeUcs4ToPrivate
FcFreeTypePrivateToUcs4
FcFreeTypeGetPrivateMap
FcFontSetNewBank
FcFontSetNeededBytes
FcFontSetNeededBytesAlign
FcFontSetDistributeBytes
FcFontSetSerialize
FcConfigSaveField
FcTestDestroy
FcExprCreateInteger
FcExprCreateDouble
FcExprCreateString
FcExprCreateMatrix
FcExprCreateBool
FcExprCreateNil
FcExprCreateField
FcExprCreateConst
FcExprCreateOp
FcExprDestroy
FcEditDestroy
FcMemReport
FcMemAlloc
FcMemFree
FcFreeTypeLangSet
FcLangCompare
FcCharSetForLang
FcLangSetPromote
FcNameParseLangSet
FcNameUnparseLangSet
FcLangSetNewBank
FcLangSetNeededBytes
FcLangSetNeededBytesAlign
FcLangSetDistributeBytes
FcLangSetSerialize
FcLangSetUnserialize
FcListPatternMatchAny
FcNameBool
FcObjectDistributeBytes
FcObjectToPtr
FcObjectNeededBytes
FcObjectNeededBytesAlign
FcObjectUnserialize
FcObjectSerialize
FcObjectPtrU
FcObjectStaticNameFini
FcValueCanonicalize
FcValueListDestroy
FcPatternFindElt
FcPatternInsertElt
FcPatternAddWithBinding
FcPatternFreeze
FcPatternFini
FcPatternAppend
FcPatternAddFullFname
FcPatternTransferFullFname
FcStrStaticName
FcStringHash
FcPatternNewBank
FcPatternNeededBytes
FcPatternNeededBytesAlign
FcPatternDistributeBytes
FcPatternSerialize
FcPatternUnserialize
FcMatrixFree
FcStrPlus
FcStrFree
FcStrBufInit
FcStrBufDestroy
FcStrBufDone
FcStrBufChar
FcStrBufString
FcStrBufData
FcStrCmpIgnoreBlanksAndCase
FcStrContainsIgnoreBlanksAndCase
FcStrContainsIgnoreCase
FcStrUsesHome
FcStrLastSlash
FcStrHashIgnoreCase
LIBRARY libfontconfig-@LT_CURRENT_MINUS_AGE@.dll
VERSION @LT_CURRENT@.@LT_REVISION@