3f66f6a5b3
This keyword is not expanded by Git which means it's not replaced with the correct revision value in the releases made using git-based scripts and it's confusing to have lines with unexpanded "$Id$" in the released files. As expanding them with Git is not that simple (it could be done with git archive and export-subst attribute) and there are not many benefits in having them in the first place, just remove all these lines. If nothing else, this will make an eventual transition to Git simpler. Closes #14487. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@74602 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
154 lines
5.5 KiB
Python
154 lines
5.5 KiB
Python
#
|
|
# Helper functions for wxWidgets bakefiles
|
|
#
|
|
#
|
|
|
|
|
|
import utils
|
|
|
|
# We use 'CFG' option in places where bakefile doesn't like it, so we must
|
|
# register a substitution function for it that provides additional knowledge
|
|
# about the option (in this case that it does not contain dir separators and
|
|
# so utils.nativePaths() doesn't have to do anything with it):
|
|
|
|
try:
|
|
# this fails in 0.1.4 and 0.1.5 has different subst.callbacks signature:
|
|
utils.checkBakefileVersion('0.1.5')
|
|
def __noopSubst(name, func, caller):
|
|
return '$(%s)' % name
|
|
except AttributeError:
|
|
def __noopSubst(func, name):
|
|
return '$(%s)' % name
|
|
utils.addSubstituteCallback('CFG', __noopSubst)
|
|
utils.addSubstituteCallback('LIBDIRNAME', __noopSubst)
|
|
utils.addSubstituteCallback('SETUPHDIR', __noopSubst)
|
|
utils.addSubstituteCallback('OBJS', __noopSubst)
|
|
|
|
|
|
def mk_wxid(id):
|
|
"""Creates wxWidgets library identifier from bakefile target ID that
|
|
follows this convention: DLLs end with 'dll', static libraries
|
|
end with 'lib'. If withPrefix=1, then _wxid is returned instead
|
|
of wxid."""
|
|
if id.endswith('dll') or id.endswith('lib'):
|
|
wxid = id[:-3]
|
|
else:
|
|
wxid = id
|
|
return wxid
|
|
|
|
|
|
# All libs that are part of the main library:
|
|
MAIN_LIBS = ['mono', 'base', 'core', 'adv', 'html', 'xml', 'net', 'webview',
|
|
'media', 'qa', 'xrc', 'aui', 'ribbon', 'propgrid', 'richtext', 'stc']
|
|
# List of library names/ids for categories with different names:
|
|
LIBS_NOGUI = ['xml', 'net']
|
|
LIBS_GUI = ['core', 'adv', 'html', 'gl', 'qa', 'xrc', 'media',
|
|
'aui', 'propgrid', 'richtext', 'stc', 'ribbon', 'webview']
|
|
# Additional libraries that must be linked in:
|
|
EXTRALIBS = {
|
|
'gl' : '$(EXTRALIBS_OPENGL)',
|
|
'xml' : '$(EXTRALIBS_XML)',
|
|
'html' : '$(EXTRALIBS_HTML)',
|
|
'adv' : '$(PLUGIN_ADV_EXTRALIBS)',
|
|
'media' : '$(EXTRALIBS_MEDIA)',
|
|
}
|
|
|
|
def mkLibName(wxid):
|
|
"""Returns string that can be used as library name, including name
|
|
suffixes, prefixes, version tags etc. This must be kept in sync
|
|
with variables defined in common.bkl!"""
|
|
if wxid == 'mono':
|
|
return '$(WXNAMEPREFIXGUI)$(WXNAMESUFFIX)$(WXVERSIONTAG)$(HOST_SUFFIX)'
|
|
if wxid == 'base':
|
|
return '$(WXNAMEPREFIX)$(WXNAMESUFFIX)$(WXVERSIONTAG)$(HOST_SUFFIX)'
|
|
if wxid in LIBS_NOGUI:
|
|
return '$(WXNAMEPREFIX)$(WXNAMESUFFIX)_%s$(WXVERSIONTAG)$(HOST_SUFFIX)' % wxid
|
|
return '$(WXNAMEPREFIXGUI)$(WXNAMESUFFIX)_%s$(WXVERSIONTAG)$(HOST_SUFFIX)' % wxid
|
|
|
|
def mkDllName(wxid):
|
|
"""Returns string that can be used as DLL name, including name
|
|
suffixes, prefixes, version tags etc. This must be kept in sync
|
|
with variables defined in common.bkl!"""
|
|
if wxid == 'mono':
|
|
return '$(WXDLLNAMEPREFIXGUI)$(WXNAMESUFFIX)$(WXCOMPILER)$(VENDORTAG)$(WXDLLVERSIONTAG)'
|
|
if wxid == 'base':
|
|
return '$(WXDLLNAMEPREFIX)$(WXNAMESUFFIX)$(WXCOMPILER)$(VENDORTAG)$(WXDLLVERSIONTAG)'
|
|
if wxid in LIBS_NOGUI:
|
|
return '$(WXDLLNAMEPREFIX)$(WXNAMESUFFIX)_%s$(WXCOMPILER)$(VENDORTAG)$(WXDLLVERSIONTAG)' % wxid
|
|
return '$(WXDLLNAMEPREFIXGUI)$(WXNAMESUFFIX)_%s$(WXCOMPILER)$(VENDORTAG)$(WXDLLVERSIONTAG)' % wxid
|
|
|
|
|
|
def libToLink(wxlibname):
|
|
"""Returns string to pass to <sys-lib> when linking against 'wxlibname'.
|
|
For one of main libraries, libToLink('foo') returns '$(WXLIB_FOO)' which
|
|
must be defined in common.bkl as either nothing (in monolithic build) or
|
|
mkLibName('foo') (otherwise).
|
|
"""
|
|
if wxlibname in MAIN_LIBS:
|
|
return '$(WXLIB_%s)' % wxlibname.upper()
|
|
else:
|
|
return mkLibName(wxlibname)
|
|
|
|
|
|
def extraLdflags(wxlibname):
|
|
if wxlibname in EXTRALIBS:
|
|
return EXTRALIBS[wxlibname]
|
|
else:
|
|
return ''
|
|
|
|
wxVersion = None
|
|
VERSION_FILE = '../../include/wx/version.h'
|
|
|
|
def getVersion():
|
|
"""Returns wxWidgets version as a tuple: (major,minor,release)."""
|
|
global wxVersion
|
|
if wxVersion == None:
|
|
f = open(VERSION_FILE, 'rt')
|
|
lines = f.readlines()
|
|
f.close()
|
|
major = minor = release = None
|
|
for l in lines:
|
|
if not l.startswith('#define'): continue
|
|
splitline = l.strip().split()
|
|
if splitline[0] != '#define': continue
|
|
if len(splitline) < 3: continue
|
|
name = splitline[1]
|
|
value = splitline[2]
|
|
if value == None: continue
|
|
if name == 'wxMAJOR_VERSION': major = int(value)
|
|
if name == 'wxMINOR_VERSION': minor = int(value)
|
|
if name == 'wxRELEASE_NUMBER': release = int(value)
|
|
if major != None and minor != None and release != None:
|
|
break
|
|
wxVersion = (major, minor, release)
|
|
return wxVersion
|
|
|
|
def getVersionMajor():
|
|
return getVersion()[0]
|
|
def getVersionMinor():
|
|
return getVersion()[1]
|
|
def getVersionRelease():
|
|
return getVersion()[2]
|
|
|
|
|
|
def headersOnly(files):
|
|
"""Filters 'files' so that only headers are left. Used with
|
|
<msvc-project-files> to add headers to VC++ projects but not files such
|
|
as arrimpl.cpp."""
|
|
|
|
def callback(cond, sources):
|
|
prf = suf = ''
|
|
if sources[0].isspace(): prf=' '
|
|
if sources[-1].isspace(): suf=' '
|
|
retval = []
|
|
for s in sources.split():
|
|
if s.endswith('.h'):
|
|
retval.append(s)
|
|
return '%s%s%s' % (prf, ' '.join(retval), suf)
|
|
return utils.substitute2(files, callback)
|
|
|
|
|
|
def makeDspDependency(lib):
|
|
"""Returns suitable entry for <depends-on-dsp> for main libs."""
|
|
return '%s:$(nativePaths(WXTOPDIR))build\\msw\\wx_%s.dsp' % (lib,lib)
|