]>
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
, name
):
16 utils
.addSubstituteCallback('CFG', __noopSubst
)
17 utils
.addSubstituteCallback('LIBDIRNAME', __noopSubst
)
18 utils
.addSubstituteCallback('SETUPHDIR', __noopSubst
)
19 utils
.addSubstituteCallback('OBJS', __noopSubst
)
23 """Creates wxWindows library identifier from bakefile target ID that
24 follows this convention: DLLs end with 'dll', static libraries
25 end with 'lib'. If withPrefix=1, then _wxid is returned instead
27 if id.endswith('dll') or id.endswith('lib'):
34 # All libs that are part of the main library (i.e. non-contrib):
35 MAIN_LIBS
= ['mono', 'base', 'core', 'adv', 'html', 'xml', 'net',
37 # List of library names/ids for categories with different names:
38 LIBS_NOGUI
= ['xml', 'net', 'odbc']
39 LIBS_GUI
= ['core', 'adv', 'html', 'gl', 'dbgrid']
42 """Returns string that can be used as library name, including name
43 suffixes, prefixes, version tags etc. This must be kept in sync
44 with variables defined in common.bkl!"""
46 return '$(WXNAMEPREFIXGUI)$(WXNAMESUFFIX)$(WXVERSIONTAG)$(HOST_SUFFIX)'
48 return '$(WXNAMEPREFIX)$(WXNAMESUFFIX)$(WXVERSIONTAG)$(HOST_SUFFIX)'
49 if wxid
in LIBS_NOGUI
:
50 return '$(WXNAMEPREFIX)$(WXNAMESUFFIX)_%s$(WXVERSIONTAG)$(HOST_SUFFIX)' % wxid
51 return '$(WXNAMEPREFIXGUI)$(WXNAMESUFFIX)_%s$(WXVERSIONTAG)$(HOST_SUFFIX)' % wxid
54 """Returns string that can be used as DLL name, including name
55 suffixes, prefixes, version tags etc. This must be kept in sync
56 with variables defined in common.bkl!"""
58 return '$(WXDLLNAMEPREFIXGUI)$(WXNAMESUFFIX)$(WXCOMPILER)$(VENDORTAG)$(WXDLLVERSIONTAG)'
60 return '$(WXDLLNAMEPREFIX)$(WXNAMESUFFIX)$(WXCOMPILER)$(VENDORTAG)$(WXDLLVERSIONTAG)'
61 if wxid
in LIBS_NOGUI
:
62 return '$(WXDLLNAMEPREFIX)$(WXNAMESUFFIX)_%s$(WXCOMPILER)$(VENDORTAG)$(WXDLLVERSIONTAG)' % wxid
63 return '$(WXDLLNAMEPREFIXGUI)$(WXNAMESUFFIX)_%s$(WXCOMPILER)$(VENDORTAG)$(WXDLLVERSIONTAG)' % wxid
66 def libToLink(wxlibname
):
67 """Returns string to pass to <sys-lib> when linking against 'wxlibname'.
68 For one of main libraries, libToLink('foo') returns '$(WXLIB_FOO)' which
69 must be defined in common.bkl as either nothing (in monolithic build) or
70 mkLibName('foo') (otherwise).
71 For contrib libraries, it returns mkDllName(wxlibname).
73 if wxlibname
in MAIN_LIBS
:
74 return '$(WXLIB_%s)' % wxlibname
.upper()
76 return mkLibName(wxlibname
)
80 VERSION_FILE
= '../../include/wx/version.h'
83 """Returns wxWindows version as a tuple: (major,minor,release)."""
86 f
= open(VERSION_FILE
, 'rt')
89 major
= minor
= release
= None
91 if not l
.startswith('#define'): continue
92 splitted
= l
.strip().split()
93 if splitted
[0] != '#define': continue
94 if len(splitted
) < 3: continue
97 if value
== None: continue
98 if name
== 'wxMAJOR_VERSION': major
= int(value
)
99 if name
== 'wxMINOR_VERSION': minor
= int(value
)
100 if name
== 'wxRELEASE_NUMBER': release
= int(value
)
101 if major
!= None and minor
!= None and release
!= None:
103 wxVersion
= (major
, minor
, release
)
106 def getVersionMajor():
107 return getVersion()[0]
108 def getVersionMinor():
109 return getVersion()[1]
110 def getVersionRelease():
111 return getVersion()[2]
114 def headersOnly(files
):
115 """Filters 'files' so that only headers are left. Used with
116 <msvc-project-files> to add headers to VC++ projects but not files such
119 def callback(cond
, sources
):
121 if sources
[0].isspace(): prefix
=' '
122 if sources
[-1].isspace(): suffix
=' '
124 for s
in sources
.split():
127 return '%s%s%s' % (prf
, ' '.join(retval
), suf
)
128 return utils
.substitute2(files
, callback
)
131 def makeDspDependency(lib
):
132 """Returns suitable entry for <depends-on-dsp> for main libs."""
143 if lib
in DEPS_TABLE
:
144 deps
= ':%s' % DEPS_TABLE
[lib
]
147 return '%s:$(nativePaths(WXTOPDIR))build\msw\wx_%s.dsp%s' % (lib
,lib
,deps
)