]>
git.saurik.com Git - wxWidgets.git/blob - build/bakefiles/wxwin.py
2 # Helper functions for wxWindows bakefiles
10 # We use 'CFG' option in places where bakefile doesn't like it, so we must
11 # register a substitution function for it that provides additional knowledge
12 # about the option (in this case that it does not contain dir separators and
13 # so utils.nativePaths() doesn't have to do anything with it):
14 def __noopSubst(func
, opt
):
15 return '$(%s)' % opt
.name
16 utils
.addSubstituteCallback('CFG', __noopSubst
)
20 """Creates wxWindows library identifier from bakefile target ID that
21 follows this convention: DLLs end with 'dll', static libraries
22 end with 'lib'. If withPrefix=1, then _wxid is returned instead
24 if id.endswith('dll') or id.endswith('lib'):
31 # List of library names/ids for categories with different names:
33 LIBS_GUI
= ['core', 'html']
36 """Returns string that can be used as library name, including name
37 suffixes, prefixes, version tags etc. This must be kept in sync
38 with variables defined in common.bkl!"""
40 return '$(WXNAMEPREFIXGUI)$(WXNAMESUFFIX)$(WXVERSIONTAG)'
42 return '$(WXNAMEPREFIX)$(WXNAMESUFFIX)$(WXVERSIONTAG)'
43 if wxid
in LIBS_NOGUI
:
44 return '$(WXNAMEPREFIX)$(WXNAMESUFFIX)_%s$(WXVERSIONTAG)' % wxid
45 return '$(WXNAMEPREFIXGUI)$(WXNAMESUFFIX)_%s$(WXVERSIONTAG)' % wxid
48 """Returns string that can be used as DLL name, including name
49 suffixes, prefixes, version tags etc. This must be kept in sync
50 with variables defined in common.bkl!"""
52 return '$(WXDLLNAMEPREFIXGUI)$(WXNAMESUFFIX)$(WXCOMPILER)$(VENDORTAG)$(WXDLLVERSIONTAG)'
54 return '$(WXDLLNAMEPREFIX)$(WXNAMESUFFIX)$(WXCOMPILER)$(VENDORTAG)$(WXDLLVERSIONTAG)'
55 if wxid
in LIBS_NOGUI
:
56 return '$(WXDLLNAMEPREFIX)$(WXNAMESUFFIX)_%s$(WXCOMPILER)$(VENDORTAG)$(WXDLLVERSIONTAG)' % wxid
57 return '$(WXDLLNAMEPREFIXGUI)$(WXNAMESUFFIX)_%s$(WXCOMPILER)$(VENDORTAG)$(WXDLLVERSIONTAG)' % wxid
60 def libToLink(wxlibname
):
61 """Returns string to pass to <sys-lib> when linking against 'wxlibname'.
62 libToLink('foo') returns '$(WXLIB_FOO)' which must be defined in
63 common.bkl as either nothing (in monolithic build) or mkLibName('foo')
65 return '$(WXLIB_%s)' % wxlibname
.upper()
69 VERSION_FILE
= '../../include/wx/version.h'
72 """Returns wxWindows version as a tuple: (major,minor,release)."""
75 f
= open(VERSION_FILE
, 'rt')
78 major
= minor
= release
= None
80 if not l
.startswith('#define'): continue
81 splitted
= l
.strip().split()
82 if splitted
[0] != '#define': continue
83 if len(splitted
) < 3: continue
86 if value
== None: continue
87 if name
== 'wxMAJOR_VERSION': major
= int(value
)
88 if name
== 'wxMINOR_VERSION': minor
= int(value
)
89 if name
== 'wxRELEASE_NUMBER': release
= int(value
)
90 if major
!= None and minor
!= None and release
!= None:
92 wxVersion
= (major
, minor
, release
)
95 def getVersionMajor():
96 return getVersion()[0]
97 def getVersionMinor():
98 return getVersion()[1]
99 def getVersionRelease():
100 return getVersion()[2]