]> git.saurik.com Git - wxWidgets.git/blobdiff - build/bakefiles/wxwin.py
more monobuild fixes
[wxWidgets.git] / build / bakefiles / wxwin.py
index f2e9b2fa75df409a65e15596cfb4cf33e98b4b6b..18cc7d232f6fa252fee12b8493408c12d636d40f 100644 (file)
@@ -5,6 +5,17 @@
 #
 
 
 #
 
 
+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):
+def __noopSubst(func, opt):
+    return '$(%s)' % opt.name
+utils.addSubstituteCallback('CFG', __noopSubst)
+
+
 def mk_wxid(id):
     """Creates wxWindows library identifier from bakefile target ID that
        follows this convention: DLLs end with 'dll', static libraries
 def mk_wxid(id):
     """Creates wxWindows library identifier from bakefile target ID that
        follows this convention: DLLs end with 'dll', static libraries
@@ -17,9 +28,11 @@ def mk_wxid(id):
     return wxid
 
 
     return wxid
 
 
+# All libs that are part of the main library (i.e. non-contrib):
+MAIN_LIBS = ['mono', 'base', 'core', 'html']
 # List of library names/ids for categories with different names:
 # List of library names/ids for categories with different names:
-LIBS_BASE = ['base']
-LIBS_GUI  = ['core', 'html']
+LIBS_NOGUI = ['']
+LIBS_GUI   = ['core', 'html']
 
 def mkLibName(wxid):
     """Returns string that can be used as library name, including name
 
 def mkLibName(wxid):
     """Returns string that can be used as library name, including name
@@ -27,7 +40,9 @@ def mkLibName(wxid):
        with variables defined in common.bkl!"""
     if wxid == 'mono':
         return '$(WXNAMEPREFIXGUI)$(WXNAMESUFFIX)$(WXVERSIONTAG)'
        with variables defined in common.bkl!"""
     if wxid == 'mono':
         return '$(WXNAMEPREFIXGUI)$(WXNAMESUFFIX)$(WXVERSIONTAG)'
-    if wxid in LIBS_BASE:
+    if wxid == 'base':
+        return '$(WXNAMEPREFIX)$(WXNAMESUFFIX)$(WXVERSIONTAG)'
+    if wxid in LIBS_NOGUI:
         return '$(WXNAMEPREFIX)$(WXNAMESUFFIX)_%s$(WXVERSIONTAG)' % wxid
     return '$(WXNAMEPREFIXGUI)$(WXNAMESUFFIX)_%s$(WXVERSIONTAG)' % wxid
 
         return '$(WXNAMEPREFIX)$(WXNAMESUFFIX)_%s$(WXVERSIONTAG)' % wxid
     return '$(WXNAMEPREFIXGUI)$(WXNAMESUFFIX)_%s$(WXVERSIONTAG)' % wxid
 
@@ -37,17 +52,24 @@ def mkDllName(wxid):
        with variables defined in common.bkl!"""
     if wxid == 'mono':
         return '$(WXDLLNAMEPREFIXGUI)$(WXNAMESUFFIX)$(WXCOMPILER)$(VENDORTAG)$(WXDLLVERSIONTAG)'
        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 <sys-lib> when linking against 'wxlibname'.
         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'.
-       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
 
 
 wxVersion = None