wxWidgets/build/bakefiles/config.bkl
Vadim Zeitlin e70fc11ef1 Replace CppUnit with Catch for unit tests
Drop the legacy CppUnit testing framework used for the unit tests.
Replacing it with Catch has the advantage of not requiring CppUnit
libraries to be installed on the system in order to be able to run
tests (Catch is header-only and a copy of it is now included in the
main repository itself) and, in the future, of being able to write
the tests in a much more natural way.

For now, however, avoid changing the existing tests code as much as
[reasonably] possible to avoid introducing bugs in them and provide
the CppUnit compatibility macros in the new wx/catch_cppunit.h header
which allow to preserve the 99% of the existing code unchanged. Some
of the required changes are:

 - Decompose asserts using "a && b" conditions into multiple asserts
   checking "a" and "b" independently. This would have been better
   even with CppUnit (to know which part of condition exactly failed)
   and is required with Catch.

 - Use extra parentheses around such conditions when they can't be
   easily decomposed in the arrays test, due to the use of macros.
   This is not ideal from the point of view of messages given when
   the tests fail but will do for now.

 - Rewrite asserts using "a || b" as a combination of condition
   checks and assert macros. Again, this is better anyhow, and is
   required with Catch. Incidentally, this allowed to fix a bug in
   the "exec" unit test which didn't leave enough time for the new
   process to be launched before trying to kill it.

 - Remove multiple CPPUNIT_TEST_SUITE_NAMED_REGISTRATION() macros,
   our emulation of this macro can be used only once.

 - Provide string conversions using Catch-specific StringMaker for
   a couple of types.

 - Replace custom wxImage comparison with a Catch-specific matcher
   class.

 - Remove most of test running logic from test.cpp, in particular don't
   parse command line ourselves any longer but use Catch built-in
   command line parser. This is a source of a minor regression:
   previously, both "Foo" and "FooTestCase" could be used as the name of
   the test to run, but now only the latter is accepted.
2017-11-02 01:53:16 +01:00

549 lines
18 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
(AMD64 accepted as synonym for X64 but should not be used any more).
</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_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_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_WEBVIEW"/>
<option name="CXXWARNINGS"/>
<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 in ['vc','evc']">opengl32.lib glu32.lib</if>
<if cond="COMPILER=='gcc'">-lopengl32 -lglu32</if>
</set>
<set var="EXTRALIBS_SDL"/>
<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="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>
<option name="WINDRES">
<default-value>windres --use-temp-file</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>
<set var="GCCFLAGS">
<if cond="GCC_VERSION=='2.95'">-fvtable-thunks</if>
</set>
<set var="EXTRACFLAGS">$(GCCFLAGS) -DHAVE_W32API_H</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_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_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_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>