wxWidgets/build/bakefiles/config.bkl
Arrigo Marchiori 30915c6163 Make wxrc independent from GUI support
The wxrc program does not depend on the GUI libraries, but only on
the base and XML libraries, so make it possible to build it in non-GUI
builds too.

Closes https://github.com/wxWidgets/wxWidgets/pull/2419
2021-08-06 21:51:11 +02:00

575 lines
19 KiB
XML

<?xml version="1.0" ?>
<makefile>
<set var="IS_MSVC_PRJ">
$(FORMAT in ['msvc6prj','msvs2003prj','msvs2005prj','msvs2008prj'])
</set>
<set var="IS_MSVC">
$(IS_MSVC_PRJ=='1' or FORMAT=='msvc')
</set>
<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>
The C preprocessor
</description>
</option>
<option name="SHARED">
<values>0,1</values>
<values-description>,DLL</values-description>
<default-value>0</default-value>
<description>
What type of library to build?
</description>
</option>
<if cond="FORMAT!='autoconf'">
<option name="TOOLKIT">
<values>MSW,GTK</values>
<values-description>,GTK+</values-description>
<default-value>MSW</default-value>
<description>
Used toolkit
</description>
</option>
<if cond="FORMAT not in ['autoconf','msvc6prj','msvs2003prj','msvs2005prj','msvs2008prj']">
<option name="TOOLKIT_VERSION">
<values>,2</values>
<values-description>,2</values-description>
<default-value></default-value>
<description>
GTK+ toolkit version
</description>
</option>
</if>
<!-- We must make TOOLKIT a constant under Windows -->
<if cond="FORMAT in ['borland','mingw','msvc','watcom', 'msvc6prj', 'msvs2003prj', 'msvs2005prj', 'msvs2008prj']">
<set var="TOOLKIT">MSW</set>
</if>
</if>
<!--
Don't include wxUniversal configurations in project files, they
confuse people who don't know what "Universal" means and double the
number of configurations. If you do need to build wxUniversal, either
use the make files or comment out the 3 lines below and rerun
bakefile_gen to regenerate the projects with them.
-->
<if cond="IS_MSVC_PRJ=='1'">
<set var="WXUNIV">0</set>
</if>
<if cond="IS_MSVC_PRJ=='0'">
<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>
</if>
<!-- don't include ANSI configuration in project files, it's going to be
eventually removed anyway and it only doubles the number of build
configs in projects: -->
<if cond="IS_MSVC_PRJ=='1'">
<set var="UNICODE">1</set>
</if>
<if cond="IS_MSVC_PRJ=='0'">
<option name="UNICODE">
<values>0,1</values>
<values-description>,Unicode</values-description>
<default-value>1</default-value>
<description>
Compile Unicode build of wxWidgets?
</description>
</option>
</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: IA64, X64, ARM64
(AMD64 accepted as synonym for X64 but should not be used any more).
</description>
</option>
<option name="VISUALSTUDIOVERSION">
<default-value>$(DOLLAR)(VISUALSTUDIOVERSION)</default-value>
<description>
Visual Studio version set by the VS command prompt.
</description>
</option>
<option name="VISUALSTUDIOPLATFORM">
<default-value>$(DOLLAR)(PLATFORM)</default-value>
<description>
Platform architecture set by the VS command prompt.
</description>
</option>
</if>
<if cond="FORMAT!='msvc'">
<set var="TARGET_CPU"/>
</if>
<!--
For MSVC enable debug information in all builds: it is needed to be
able to debug the crash dumps produced by wxDebugReport and as it
generates it in separate PDB files it doesn't cost us much to enable it
(except for disk space...).
-->
<set var="DEBUG_INFO_DEFAULT">
<if cond="IS_MSVC=='1'">1</if>
<if cond="IS_MSVC=='0'">default</if>
</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>1</default-value>
<description>
Value of wxDEBUG_LEVEL. The default value is the same as 1 and means that all
but expensive assert checks are enabled, use 0 to completely remove debugging
code.
</description>
</option>
<if cond="FORMAT=='msvc'">
<option name="DEBUG_RUNTIME_LIBS">
<values>0,1,default</values>
<default-value>default</default-value>
<description>
Link against debug (e.g. msvcrtd.dll) or release (msvcrt.dll) RTL?
Default is to use debug CRT if and only if BUILD==debug.
</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-description>Base,GUI</values-description>
<default-value>1</default-value>
<description>
Build GUI libraries?
</description>
</option>
<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_WEBVIEW">
<values>0,1</values>
<default-value>1</default-value>
<description>
Build wxWebView 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_XML">
<values>0,1</values>
<default-value>1</default-value>
<description>
Build XML-related libraries?
</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_RIBBON">
<values>0,1</values>
<default-value>1</default-value>
<description>
Build wxRibbon library (USE_GUI must be 1)?
</description>
</option>
<option name="USE_PROPGRID">
<values>0,1</values>
<default-value>1</default-value>
<description>
Build wxPropertyGrid 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_STC">
<values>0,1</values>
<default-value>1</default-value>
<description>
Build wxStyledTextCtrl library (USE_GUI must be 1)?
</description>
</option>
<option name="USE_OPENGL">
<values>0,1</values>
<default-value>1</default-value>
<description>
Build OpenGL canvas library (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','msvs2003prj','msvs2005prj','msvs2008prj']">1</if>
<if cond="FORMAT not in ['msvc','msvc6prj','msvs2003prj','msvs2005prj','msvs2008prj']">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_DPI_AWARE_MANIFEST">
<values>0,1,2</values>
<default-value>2</default-value>
<description>
Set DPI Awareness (win32) to none, system or per-monitor.
</description>
</option>
<option name="USE_THREADS">
<values>0,1</values>
<default-value>1</default-value>
<description>
Enable threading in compiled code.
</description>
</option>
<option name="USE_CAIRO">
<values>0,1</values>
<default-value>0</default-value>
<description>
Enable wxCairoContext for platforms other than Linux/GTK.
</description>
</option>
<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>
<!-- ================================================================== -->
<!-- Autoconf -->
<!-- ================================================================== -->
<if cond="FORMAT=='autoconf'">
<option name="TOOLKIT"/>
<option name="TOOLKIT_LOWERCASE"/>
<option name="TOOLKIT_VERSION"/>
<option name="TOOLCHAIN_NAME"/>
<option name="TOOLCHAIN_FULLNAME"/>
<option name="EXTRALIBS"/>
<option name="EXTRALIBS_XML"/>
<option name="EXTRALIBS_HTML"/>
<option name="EXTRALIBS_MEDIA"/>
<option name="EXTRALIBS_GUI"/>
<option name="EXTRALIBS_OPENGL"/>
<option name="EXTRALIBS_SDL"/>
<option name="EXTRALIBS_STC"/>
<option name="EXTRALIBS_WEBVIEW"/>
<option name="WX_CPPFLAGS"/>
<option name="WX_CFLAGS"/>
<option name="WX_CXXFLAGS"/>
<option name="WX_LDFLAGS"/>
<option name="HOST_SUFFIX"/>
<option name="DYLIB_RPATH_INSTALL"/>
<option name="DYLIB_RPATH_POSTLINK"/>
<option name="SAMPLES_RPATH_FLAG"/>
<option name="SAMPLES_CXXFLAGS"/>
<option name="USE_WEBVIEW_WEBKIT2"/>
<!-- see configure.in; it's required by some samples on Mac OS X -->
<option name="HEADER_PAD_OPTION"/>
<set var="TOP_SRCDIR">$(top_srcdir)/</set>
<set var="RUNTIME_LIBS">dynamic</set>
<set var="WXTOPDIR"/> <!-- to be overridden on bakefile cmd line -->
<option name="WITH_PLUGIN_SDL">
<values>0,1</values>
</option>
<option name="wx_top_builddir"/>
</if>
<!-- ================================================================== -->
<!-- windows/dos compilers -->
<!-- ================================================================== -->
<if cond="FORMAT!='autoconf'">
<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 overridden on bakefile cmd line -->
<set var="WIN32_TOOLKIT">
<if cond="TOOLKIT=='MSW'">MSW</if>
<if cond="TOOLKIT=='GTK'">GTK</if>
</set>
<set var="WIN32_TOOLKIT_LOWERCASE">
<if cond="TOOLKIT=='MSW'">msw</if>
<if cond="TOOLKIT=='GTK'">gtk</if>
</set>
<set var="TOOLKIT" overwrite="0">
<if cond="FORMAT=='msvs2005prj' and MSVS_PLATFORMS=='win32,win64'">$(WIN32_TOOLKIT)</if>
<if cond="FORMAT=='msvs2008prj' and MSVS_PLATFORMS=='win32,win64'">$(WIN32_TOOLKIT)</if>
<if cond="FORMAT not in ['msvs2005prj','msvs2008prj'] and PLATFORM_WIN32=='1'">$(WIN32_TOOLKIT)</if>
</set>
<set var="TOOLKIT_LOWERCASE">
<if cond="FORMAT=='msvs2005prj' and MSVS_PLATFORMS=='win32,win64'">$(WIN32_TOOLKIT_LOWERCASE)</if>
<if cond="FORMAT=='msvs2008prj' and MSVS_PLATFORMS=='win32,win64'">$(WIN32_TOOLKIT_LOWERCASE)</if>
<if cond="FORMAT not in ['msvs2005prj','msvs2008prj'] and PLATFORM_WIN32=='1'">$(WIN32_TOOLKIT_LOWERCASE)</if>
</set>
<if cond="FORMAT in ['msvc6prj','msvs2003prj','msvs2005prj','msvs2008prj']">
<set var="TOOLKIT_VERSION">
<if cond="PLATFORM_WIN32=='1' and TOOLKIT=='GTK'">2</if>
</set>
</if>
<set var="HOST_SUFFIX"/>
<set var="EXTRACFLAGS"/>
<set var="EXTRALIBS"/>
<set var="EXTRALIBS_XML"/>
<set var="EXTRALIBS_HTML"/>
<set var="EXTRALIBS_MEDIA"/>
<set var="EXTRALIBS_GUI"/>
<set var="EXTRALIBS_OPENGL">
<if cond="COMPILER=='wat' and TOOLKIT=='MSW'">opengl32.lib glu32.lib</if>
<if cond="COMPILER=='vc'">opengl32.lib glu32.lib</if>
<if cond="COMPILER=='gcc'">-lopengl32 -lglu32</if>
</set>
<set var="EXTRALIBS_SDL"/>
<set var="EXTRALIBS_STC">
<if cond="COMPILER=='wat' and TOOLKIT=='MSW'">imm32.lib</if>
<if cond="COMPILER=='vc' and TOOLKIT=='MSW'">imm32.lib</if>
<if cond="COMPILER=='gcc' and TOOLKIT=='MSW'">-limm32</if>
</set>
<set var="EXTRALIBS_WEBVIEW"/>
<set var="WITH_PLUGIN_SDL">0</set>
<if cond="BUILDING_LIB=='1'">
<set-srcdir>../..</set-srcdir>
</if>
<set var="TOP_SRCDIR">$(SRCDIR)/$(WXTOPDIR)</set>
</if>
<if cond="FORMAT=='mingw'">
<option name="WINDRES">
<default-value>windres</default-value>
<description>
Windows resource compiler to use, possibly including extra options.
For example, add "-F pe-i386" here if using 64 bit windres for 32 bit build.
</description>
</option>
</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_RIBBON">1</set>
<set var="USE_PROPGRID">1</set>
<set var="USE_RICHTEXT">1</set>
<set var="USE_STC">1</set>
<set var="USE_HTML">1</set>
<set var="USE_WEBVIEW">1</set>
<set var="USE_MEDIA">1</set>
<set var="USE_XML">1</set>
<set var="USE_XRC">1</set>
<set var="USE_OPENGL">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_DPI_AWARE_MANIFEST">0</set>
<set var="USE_THREADS">1</set>
<set var="USE_CAIRO">0</set>
<set var="DEBUG_INFO">$(DEBUG_INFO_DEFAULT)</set>
<set var="DEBUG_FLAG">default</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">1</set>
<!-- Free version does not distribute OpenGL,
in commercial distribution better use dmars_smake format -->
<set var="USE_OPENGL">0</set>
</if>
</makefile>