X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/cff5df9f18b1e9010baa3f4048cc48b000e8e4ac..5df6736f701dd4c896c70f5fd51b7ac9563787c5:/build/bakefiles/wxwin.py?ds=sidebyside diff --git a/build/bakefiles/wxwin.py b/build/bakefiles/wxwin.py index 1d83108f64..df23f4c9cf 100644 --- a/build/bakefiles/wxwin.py +++ b/build/bakefiles/wxwin.py @@ -11,9 +11,10 @@ import utils # 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): -def __noopSubst(func, opt): - return '$(%s)' % opt.name +def __noopSubst(func, name): + return '$(%s)' % name utils.addSubstituteCallback('CFG', __noopSubst) +utils.addSubstituteCallback('LIBDIRNAME', __noopSubst) def mk_wxid(id): @@ -28,19 +29,23 @@ def mk_wxid(id): return wxid +# All libs that are part of the main library (i.e. non-contrib): +MAIN_LIBS = ['mono', 'base', 'core', 'html', 'xml', 'net'] # List of library names/ids for categories with different names: -LIBS_BASE = ['base'] -LIBS_GUI = ['core', 'html'] +LIBS_NOGUI = ['xml', 'net'] +LIBS_GUI = ['core', 'html', 'gl'] 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)' - if wxid in LIBS_BASE: - return '$(WXNAMEPREFIX)$(WXNAMESUFFIX)_%s$(WXVERSIONTAG)' % wxid - return '$(WXNAMEPREFIXGUI)$(WXNAMESUFFIX)_%s$(WXVERSIONTAG)' % wxid + 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 @@ -48,17 +53,24 @@ def mkDllName(wxid): with variables defined in common.bkl!""" if wxid == 'mono': return '$(WXDLLNAMEPREFIXGUI)$(WXNAMESUFFIX)$(WXCOMPILER)$(VENDORTAG)$(WXDLLVERSIONTAG)' - if wxid in LIBS_BASE: + 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 when linking against 'wxlibname'. - libToLink('foo') returns '$(WXLIB_FOO)' which must be defined in - common.bkl as either nothing (in monolithic build) or mkLibName('foo') - (otherwise).""" - return '$(WXLIB_%s)' % wxlibname.upper() + 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). + For contrib libraries, it returns mkDllName(wxlibname). + """ + if wxlibname in MAIN_LIBS: + return '$(WXLIB_%s)' % wxlibname.upper() + else: + return mkLibName(wxlibname) wxVersion = None @@ -94,3 +106,20 @@ def getVersionMinor(): return getVersion()[1] def getVersionRelease(): return getVersion()[2] + + +def headersOnly(files): + """Filters 'files' so that only headers are left. Used with + to add headers to VC++ projects but not files such + as arrimpl.cpp.""" + + def callback(cond, sources): + prf = suf = '' + if sources[0].isspace(): prefix=' ' + if sources[-1].isspace(): suffix=' ' + 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)