]> git.saurik.com Git - wxWidgets.git/blobdiff - build/bakefiles/config.bkl
use force=1 with default-value tags (part of patch 1604462)
[wxWidgets.git] / build / bakefiles / config.bkl
index 4afe0321f0e7d85c69788438dadedc3682377c1d..06949d8c058bc453b0eec0ff8fd7b5e63f51bd0a 100644 (file)
 
 <makefile>
 
-    <option name="UNICODE">
-        <values>0 1</values>
-        <default-value>0</default-value>
+    <set var="BUILDING_LIB" overwrite="0">0</set>
+
+    <set var="CPP_DEFAULT_VALUE">
+        <if cond="FORMAT=='borland'">
+            cpp32 -Sr -oCON
+        </if>
+        <if cond="FORMAT=='mingw'">
+            $(DOLLAR)(CC) -E
+        </if>
+        <if cond="FORMAT=='msvc'">
+            $(DOLLAR)(CC) /EP /nologo
+        </if>
+        <if cond="FORMAT=='watcom'">
+            $(DOLLAR)(CC) -p
+        </if>
+    </set>
+    <option name="CPP">
+        <default-value>
+            $(CPP_DEFAULT_VALUE)
+        </default-value>
         <description>
-            Compile Unicode build of wxWindows?
+            The C preprocessor
         </description>
     </option>
 
     <option name="SHARED">
-        <values>0 1</values>
-        <default-value>1</default-value>
+        <values>0,1</values>
+        <values-description>,DLL</values-description>
+        <default-value>0</default-value>
         <description>
             What type of library to build?
         </description>
     </option>
-    
-    <!-- FIXME - to be option, not hardcoded value!! -->
-    <option name="MONOLITHIC">
-        <values>0 1</values>
+
+    <option name="WXUNIV">
+        <values>0,1</values>
+        <values-description>,Universal</values-description>
+        <default-value>0</default-value>
+        <description>
+            Build wxUniversal instead of native port?
+        </description>
+    </option>
+
+    <option name="UNICODE">
+        <values>0,1</values>
+        <values-description>,Unicode</values-description>
         <default-value>0</default-value>
+        <description>
+            Compile Unicode build of wxWidgets?
+        </description>
+    </option>
+
+    <if cond="FORMAT!='autoconf' and FORMAT!='watcom'">
+        <option name="MSLU">
+            <values>0,1</values>
+            <default-value>0</default-value>
+            <description>
+                Use MSLU library when building Unicode version.
+            </description>
+        </option>
+    </if>
+    <if cond="FORMAT=='autoconf' or FORMAT=='watcom'">
+        <set var="MSLU">0</set>
+    </if>
+
+    <option name="BUILD">
+        <values>debug,release</values>
+        <values-description>Debug,Release</values-description>
+        <default-value>debug</default-value>
+        <description>
+            Type of compiled binaries
+        </description>
+    </option>
+
+    <if cond="FORMAT=='msvc'">
+        <option name="TARGET_CPU">
+            <default-value>$(DOLLAR)(CPU)</default-value>
+            <description>
+The target processor architecture must be specified when it is not X86.
+This does not affect the compiler output, so you still need to make sure
+your environment is set up appropriately with the correct compiler in the
+PATH. Rather it affects some options passed to some of the common build
+utilities such as the resource compiler and the linker.
+
+Accepted values: AMD64, IA64.
+            </description>
+        </option>
+    </if>
+    <if cond="FORMAT!='msvc'">
+        <set var="TARGET_CPU"/>
+    </if>
+
+    <!-- FIXME: restore this once bakefile is fixed to not use
+                /Gm /GZ (incompatible with /O2) w/ debug-info -->
+    <set var="DEBUG_INFO_DEFAULT">
+        <if cond="FORMAT in ['msvc','msvc6prj','msevc4prj','msvs2005prj']">1</if>
+        <if cond="FORMAT not in ['msvc','msvc6prj','msevc4prj','msvs2005prj']">default</if>
+    </set>
+    -->
+    <set var="DEBUG_INFO_DEFAULT">default</set>
+
+    <option name="DEBUG_INFO">
+        <values>0,1,default</values>
+        <default-value>$(DEBUG_INFO_DEFAULT)</default-value>
+        <description>
+Should debugging info be included in the executables? The default value
+"default" means that debug info will be included if BUILD=debug
+and not included if BUILD=release.
+        </description>
+    </option>
+
+    <option name="DEBUG_FLAG">
+        <values>0,1,default</values>
+        <default-value>default</default-value>
+        <description>
+Should __WXDEBUG__ be defined? The default value "default" means that it will
+be defined if BUILD=debug and not defined if BUILD=release.
+        </description>
+    </option>
+
+    <if cond="FORMAT=='msvc'">
+        <option name="DEBUG_RUNTIME_LIBS">
+            <values>0,1,default</values>
+            <default-value>default</default-value>
+            <description>
+Should link against debug RTL (msvcrtd.dll) or release (msvcrt.dll)?
+Acts according to BUILD by default.
+            </description>
+        </option>
+    </if>
+    <if cond="FORMAT!='msvc'">
+        <set var="DEBUG_RUNTIME_LIBS">default</set>
+    </if>
+
+    <set var="MONOLITHIC_DEFAULT">
+        <if cond="FORMAT=='watcom'">1</if>
+        <if cond="FORMAT!='watcom'">0</if>
+    </set>
+    <option name="MONOLITHIC">
+        <values>0,1</values>
+        <values-description>Multilib,Monolithic</values-description>
+        <default-value>$(MONOLITHIC_DEFAULT)</default-value>
         <description>
             Multiple libraries or single huge monolithic one?
         </description>
     </option>
-    
+
+    <if cond="FORMAT=='autoconf'"> <!-- FIXME - temporary -->
+        <option name="USE_PLUGINS">
+            <values>0,1</values>
+            <default-value>1</default-value>
+            <description>
+                Build parts of the library as dynamically loadable plugins
+                (only supported in multilib build)?
+            </description>
+        </option>
+    </if>
+    <if cond="FORMAT!='autoconf'">
+        <set var="USE_PLUGINS">0</set> <!-- FIXME - temporary -->
+    </if>
+
     <option name="USE_GUI">
-        <values>0 1</values>
+        <values>0,1</values>
+        <values-description>Base,GUI</values-description>
         <default-value>1</default-value>
         <description>
             Build GUI libraries?
         </description>
     </option>
 
-    <option name="WXUNIV">
-        <values>0 1</values>
+    <option name="USE_HTML">
+        <values>0,1</values>
+        <default-value>1</default-value>
+        <description>
+            Build wxHTML library (USE_GUI must be 1)?
+        </description>
+    </option>
+
+    <option name="USE_MEDIA">
+        <values>0,1</values>
+        <default-value>1</default-value>
+        <description>
+            Build multimedia library (USE_GUI must be 1)?
+        </description>
+    </option>
+
+    <option name="USE_XRC">
+        <values>0,1</values>
+        <default-value>1</default-value>
+        <description>
+            Build wxXRC library (USE_GUI must be 1)?
+        </description>
+    </option>
+
+    <option name="USE_AUI">
+        <values>0,1</values>
+        <default-value>1</default-value>
+        <description>
+            Build wxAUI library (USE_GUI must be 1)?
+        </description>
+    </option>
+
+    <option name="USE_RICHTEXT">
+        <values>0,1</values>
+        <default-value>1</default-value>
+        <description>
+            Build wxRichTextCtrl library (USE_GUI must be 1)?
+        </description>
+    </option>
+
+    <option name="USE_OPENGL">
+        <values>0,1</values>
         <default-value>0</default-value>
         <description>
-            Build wxUniversal instead of native port?
+            Build OpenGL canvas library (USE_GUI must be 1)?
         </description>
     </option>
 
-    <!-- Autoconf options: -->
-    <if cond="FORMAT=='autoconf'"> 
+    <option name="USE_ODBC">
+        <values>0,1</values>
+        <default-value>0</default-value>
+        <description>
+            Build ODBC database classes (USE_GUI must be 1)?
+        </description>
+    </option>
+
+    <!-- currently only VC++ can compile wxDebugReport which is in QA lib -->
+    <set var="USE_QA_DEFAULT">
+        <if cond="FORMAT in ['msvc','msvc6prj','msvs2005prj']">1</if>
+        <if cond="FORMAT not in ['msvc','msvc6prj','msvs2005prj']">0</if>
+    </set>
+    <option name="USE_QA">
+        <values>0,1</values>
+        <default-value>$(USE_QA_DEFAULT)</default-value>
+        <description>
+            Build quality assurance classes library (USE_GUI must be 1)?
+        </description>
+    </option>
+
+    <option name="USE_EXCEPTIONS">
+        <values>0,1</values>
+        <default-value>1</default-value>
+        <description>
+            Enable exceptions in compiled code.
+        </description>
+    </option>
+
+    <option name="USE_RTTI">
+        <values>0,1</values>
+        <default-value>1</default-value>
+        <description>
+            Enable run-time type information (RTTI) in compiled code.
+        </description>
+    </option>
+
+    <option name="USE_THREADS">
+        <values>0,1</values>
+        <default-value>1</default-value>
+        <description>
+            Enable threading in compiled code.
+        </description>
+    </option>
+
+    <if cond="FORMAT!='autoconf'">
+        <option name="USE_GDIPLUS">
+            <values>0,1</values>
+            <default-value>0</default-value>
+            <description>
+                Link with gdiplus.lib? (Needed for wxGraphicsContext, will also set wxUSE_GRAPHICS_CONTEXT)
+            </description>
+       </option>
+    </if>
+
+    <option name="OFFICIAL_BUILD">
+        <values>0,1</values>
+        <default-value>0</default-value>
+        <description>
+            Is this official build by wxWidgets developers?
+        </description>
+    </option>
+    <option name="VENDOR">
+        <default-value>custom</default-value>
+        <description>
+            Use this to name your customized DLLs differently
+        </description>
+    </option>
+    <!-- These basically do what vendor does in the places it didn't. -->
+    <!-- They should all be unified under some suitable descriptor    -->
+    <option name="WX_FLAVOUR">
+        <default-value></default-value>
+    </option>
+    <option name="WX_LIB_FLAVOUR">
+        <default-value></default-value>
+    </option>
+
+    <option name="CFG">
+        <default-value></default-value>
+        <description>
+Name of your custom configuration. This affects directory
+where object files are stored as well as the location of
+compiled .lib files and setup.h under the lib/ toplevel directory.
+        </description>
+    </option>
+
+    <!-- unit tests support: -->
+    <option name="CPPUNIT_CFLAGS">
+        <default-value></default-value>
+        <description>
+Compiler flags needed to compile test suite in tests directory. If you want
+to run the tests, set it so that the compiler can find CppUnit headers.
+        </description>
+    </option>
+
+    <option name="CPPUNIT_LIBS">
+        <default-value></default-value>
+        <description>
+Linker flags needed to link test suite in tests directory. If you want
+to run the tests, include CppUnit library here.
+        </description>
+    </option>
+
+
+    <!-- ================================================================== -->
+    <!--                             Autoconf                               -->
+    <!-- ================================================================== -->
+
+    <if cond="FORMAT=='autoconf'">
         <option name="DEREZ"/>
         <option name="TOOLKIT"/>
         <option name="TOOLKIT_LOWERCASE"/>
         <option name="TOOLKIT_VERSION"/>
+        <option name="TOOLCHAIN_NAME"/>
+        <option name="TOOLCHAIN_FULLNAME"/>
         <option name="EXTRALIBS"/>
-        <option name="top_builddir"/>
+        <option name="EXTRALIBS_XML"/>
+        <option name="EXTRALIBS_HTML"/>
+        <option name="EXTRALIBS_ODBC"/>
+        <option name="EXTRALIBS_GUI"/>
+        <option name="EXTRALIBS_OPENGL"/>
+        <option name="EXTRALIBS_SDL"/>
+        <option name="EXTRALIBS_GNOMEPRINT"/>
+        <option name="HOST_SUFFIX"/>
         <option name="SAMPLES_RPATH_FLAG"/>
+        <option name="SAMPLES_RPATH_POSTLINK"/>
+
+        <set var="TOP_SRCDIR">$(top_srcdir)/</set>
+        <set var="RUNTIME_LIBS">dynamic</set>
+        <set var="WXTOPDIR"/> <!-- to be overriden on bakefile cmd line -->
+
+        <option name="WITH_PLUGIN_SDL">
+            <values>0,1</values>
+        </option>
+
+        <option name="wx_top_builddir"/>
     </if>
 
+
+    <!-- ================================================================== -->
+    <!--                     windows/dos/os2 compilers                      -->
+    <!-- ================================================================== -->
+
     <if cond="FORMAT!='autoconf'">
-        <set var="TOOLKIT_VERSION"></set>
+        <option name="RUNTIME_LIBS">
+            <values>dynamic,static</values>
+            <default-value>dynamic</default-value>
+            <description>
+Version of C runtime library to use. You can change this to
+static if SHARED=0, but it is highly recommended to not do
+it if SHARED=1 unless you know what you are doing.
+            </description>
+        </option>
+
+        <set var="WXTOPDIR"/> <!-- to be overriden on bakefile cmd line -->
+
+        <set var="TOOLKIT" overwrite="0">
+            <if cond="FORMAT=='msevc4prj'">WINCE</if>
+            <if cond="FORMAT!='msevc4prj' and PLATFORM_WIN32=='1'">MSW</if>
+            <if cond="PLATFORM_MSDOS=='1'">MGL</if>
+            <if cond="PLATFORM_OS2=='1'">PM</if>
+        </set>
+        <set var="TOOLKIT_LOWERCASE">$(TOOLKIT.lower())</set>
+        <set var="TOOLKIT_VERSION"/>
+        <set var="HOST_SUFFIX"/>
+        <set var="EXTRACFLAGS"/>
+        <set var="EXTRALIBS"/>
+        <set var="EXTRALIBS_XML"/>
+        <set var="EXTRALIBS_HTML"/>
+        <set var="EXTRALIBS_ODBC"/>
+        <set var="EXTRALIBS_GUI"/>
+        <set var="EXTRALIBS_OPENGL">
+            <if cond="COMPILER=='wat' and TOOLKIT=='MSW'">opengl32.lib glu32.lib</if>
+            <if cond="COMPILER in ['vc','evc']">opengl32.lib glu32.lib</if>
+            <if cond="COMPILER=='gcc'">-lopengl32 -lglu32</if>
+        </set>
+        <set var="EXTRALIBS_SDL"/>
+        <set var="EXTRALIBS_GNOMEPRINT"/>
+
+        <set var="WITH_PLUGIN_SDL">0</set>
+
+        <set var="SRCDIR">
+            <if cond="BUILDING_LIB=='1'">..$(DIRSEP)..</if>
+            <if cond="BUILDING_LIB=='0'">.</if>
+        </set>
+        <set var="TOP_SRCDIR">$(SRCDIR)/$(WXTOPDIR)</set>
+    </if>
+
+    <if cond="FORMAT=='mingw'">
+        <option name="GCC_VERSION">
+            <values>3,2.95</values>
+            <default-value>3</default-value>
+            <description>
+Set the version of your Mingw installation here.
+    "3" ...... this is for Mingw 2.0 or newer (comes with gcc3)
+    "2.95" ... for Mingw 1.1 or any of the older versions
+            </description>
+        </option>
+        <set var="GCCFLAGS">
+            <if cond="GCC_VERSION=='2.95'">-fvtable-thunks</if>
+        </set>
+        <set var="EXTRACFLAGS">$(GCCFLAGS) -DHAVE_W32API_H</set>
+    </if>
+
+    <if cond="FORMAT=='cbuilderx'">
+        <set var="EXTRACFLAGS">
+            <if cond="COMPILER=='gcc'">-DHAVE_W32API_H</if>
+        </set>
+    </if>
+
+
+    <!-- ================================================================== -->
+    <!--            Project files - hardcode some defaults                  -->
+    <!-- ================================================================== -->
+
+    <if cond="FORMAT_SUPPORTS_CONDITIONS=='0'">
+        <set var="RUNTIME_LIBS">dynamic</set>
+        <set var="OFFICIAL_BUILD">0</set>
+        <set var="USE_AUI">1</set>
+        <set var="USE_RICHTEXT">1</set>
+        <set var="USE_HTML">1</set>
+        <set var="USE_MEDIA">1</set>
+        <set var="USE_XRC">1</set>
+        <set var="USE_OPENGL">1</set>
+        <set var="USE_ODBC">1</set>
+        <set var="USE_QA">1</set>
+        <set var="MONOLITHIC">0</set>
+        <set var="USE_GUI">1</set>
+        <set var="USE_EXCEPTIONS">1</set>
+        <set var="USE_RTTI">1</set>
+        <set var="USE_THREADS">1</set>
+        <if cond="FORMAT!='autoconf'"><set var="USE_GDIPLUS">0</set></if>
+        <set var="DEBUG_INFO">$(DEBUG_INFO_DEFAULT)</set>
+        <set var="DEBUG_FLAG">default</set>
+        <set var="MSLU">0</set>
+    </if>
+
+
+    <!-- FIXME:
+         C++BuilderX supports only wxMSW, monolithic (sic!) static build
+         and the project can't be put into build/msw and store objects in
+         build/msw/something. This *must* be fixed! -->
+    <if cond="FORMAT=='cbuilderx'">
+        <set var="WXUNIV">0</set>
+        <set var="MONOLITHIC">1</set>
+        <set var="SRCDIR">.</set>
+        <set var="TOP_SRCDIR">$(SRCDIR)/$(WXTOPDIR)</set>
+        <set var="SHARED">0</set>
+    </if>
+
+
+    <!-- DigitalMars make is braindead, it doesn't have conditional
+         processing: -->
+    <if cond="FORMAT=='dmars'">
+        <set var="RUNTIME_LIBS">static</set>
+        <set var="BUILD">debug</set>
+        <set var="SHARED">0</set>
+        <set var="WXUNIV">0</set>
+        <set var="UNICODE">0</set>
+        <!-- Free version does not distribute OpenGL,
+             in commercial distribution better use dmars_smake format -->
+        <set var="USE_OPENGL">0</set>
+    </if>
+
+    <!-- No need for wxUniv on embedded devices (yet): -->
+    <if cond="FORMAT=='msevc4prj'">
+        <set var="WXUNIV">0</set>
+        <set var="UNICODE">1</set>
+        <!-- Uploading debug reports from PDAs seems impractical -->
+        <set var="USE_QA">0</set>
+        <set var="MONOLITHIC">1</set> <!-- sic! -->
+        <!-- RTTI and exceptions need separate cccrtti.lib with eVC4 -->
+        <set var="USE_RTTI">0</set>
+        <set var="USE_EXCEPTIONS">0</set>
+    </if>
+
+    <!-- Need for wxUniv within wxMGL: -->
+    <if cond="FORMAT!='autoconf' and TOOLKIT=='MGL'">
+        <set var="WXUNIV">1</set>
+        <set var="USE_THREADS">0</set>
+        <set var="RUNTIME_LIBS">static</set>
     </if>
 
 </makefile>