wxWidgets/build/bakefiles/wxpresets/presets/wx_win32.bkl
Vadim Zeitlin aa970c3da3 Remove all mentions of msevc4prj from bakefiles
Neither eVC nor wxWinCE port it was used for are supported any longer, so
simplify the bakefiles by removing the checks for it.
2015-10-07 18:14:55 +02:00

349 lines
16 KiB
XML

<?xml version="1.0" ?>
<!-- Original source: http://wiki.wxwidgets.org/wiki.pl?Bakefile -->
<!-- Modified by: Francesco Montorsi <frm@users.sourceforge.net> -->
<!-- Vaclav Slavik <vslavik@fastmail.fm> to better fit
into Bakefile's presets -->
<!-- Creation date: 6/9/2004 -->
<!-- Last revision: 22/1/2005 off-CVS -->
<makefile>
<!-- -->
<!-- OPTIONS -->
<!-- -->
<set var="FORMAT_SUPPORTS_MULTIPLE_ARCHITECTURES_NORMAL">
<!-- 'NORMAL' here refers to the fact that the formats for which
FORMAT_SUPPORTS_MULTIPLE_ARCHITECTURES_NORMAL==1 only need
additional compiler and/or linker flags (see e.g. WXMACHINE_FLAG)
-->
<if cond="FORMAT in ['msvc']">1</if>
<if cond="FORMAT not in ['msvc']">0</if>
</set>
<set var="FORMAT_SUPPORTS_MULTIPLE_ARCHITECTURES_VIA_MSVS_PLATFORMS">
<!-- the formats for which FORMAT_SUPPORTS_MULTIPLE_ARCHITECTURES_VIA_MSVS_PLATFORMS==1
need special handling: see the docs of the MSVS_PLATFORMS variable in Bakefile docs.
-->
<if cond="FORMAT in ['msvs2005prj','msvs2008prj']">1</if>
<if cond="FORMAT not in ['msvs2005prj','msvs2008prj']">0</if>
</set>
<set var="FORMAT_SUPPORTS_MULTIPLE_ARCHITECTURES">
<if cond="FORMAT_SUPPORTS_MULTIPLE_ARCHITECTURES_NORMAL=='1'">1</if>
<if cond="FORMAT_SUPPORTS_MULTIPLE_ARCHITECTURES_VIA_MSVS_PLATFORMS=='1'">1</if>
<if cond="FORMAT_SUPPORTS_MULTIPLE_ARCHITECTURES_NORMAL=='0' and FORMAT_SUPPORTS_MULTIPLE_ARCHITECTURES_VIA_MSVS_PLATFORMS=='0'">0</if>
</set>
<!-- This is a standard option that determines -->
<!-- the architecture for which the lib/exe/dll later -->
<!-- declared are meant. -->
<if cond="not isdefined('TARGET_CPU') and FORMAT_SUPPORTS_MULTIPLE_ARCHITECTURES_NORMAL=='1'">
<set var="TARGET_CPU_DEFAULT" overwrite="0">X86</set>
<option name="TARGET_CPU">
<values>X86,AMD64,IA64</values>
<values-description>i386-compatible,AMD 64 bit,Itanium 64 bit</values-description>
<default-value>$(TARGET_CPU_DEFAULT)</default-value>
<description>
Architecture of the CPU for which to build the executables and libraries
</description>
</option>
</if>
<if cond="not isdefined('TARGET_CPU') and FORMAT_SUPPORTS_MULTIPLE_ARCHITECTURES_VIA_MSVS_PLATFORMS=='1'">
<!-- defining TARGET_CPU also for the formats using the MSVS_PLATFORM variable allows to write
easier tests in user bakefiles; e.g.:
<set var="MY_ARCH_DEPENDENT_VARIABLE">
<if cond="FORMAT_SUPPORTS_MULTIPLE_ARCHITECTURES=='0'">value1</if>
<if cond="FORMAT_SUPPORTS_MULTIPLE_ARCHITECTURES=='1' and TARGET_CPU=='X86'">value2</if>
<if cond="FORMAT_SUPPORTS_MULTIPLE_ARCHITECTURES=='1' and TARGET_CPU=='AMD64'">value3</if>
<if cond="FORMAT_SUPPORTS_MULTIPLE_ARCHITECTURES=='1' and TARGET_CPU=='IA64'">value4</if>
</set>
-->
<set var="TARGET_CPU">
<if cond="MSVS_PLATFORM=='win32'">X86</if>
<if cond="MSVS_PLATFORM=='win64'">AMD64</if>
<if cond="MSVS_PLATFORM=='ia64'">IA64</if>
<!-- MSVS_PLATFORM currently does not support ia64 but this line is still needed by bakefile
to correctly set the TARGET_CPU variable -->
</set>
</if>
<!-- HELPER VARIABLES -->
<!-- -->
<!-- The unicode define we want. By default bakefile -->
<!-- makes variables an empty string, so if unicode -->
<!-- is not defined $(UNICODE_DEFINE) would expand -->
<!-- to nothing (literally). -->
<set var="WXUNICODE_DEFINE">
<if cond="WX_UNICODE=='1'">_UNICODE</if>
</set>
<!-- The debug define we need with win32 compilers -->
<!-- (on Linux, the wx-config program is used). -->
<set var="WXDEBUG_DEFINE">
<if cond="WX_DEBUG=='1'">__WXDEBUG__</if>
</set>
<!-- These are handy ways of dealing with the -->
<!-- extensions in the library names of the -->
<!-- wxWindows library. -->
<set var="WX3RDPARTYLIBPOSTFIX">
<if cond="WX_DEBUG=='1'">d</if>
</set>
<set var="WXCPU">
<if cond="FORMAT_SUPPORTS_MULTIPLE_ARCHITECTURES=='1' and TARGET_CPU=='AMD64'">_x64</if>
<if cond="FORMAT_SUPPORTS_MULTIPLE_ARCHITECTURES=='1' and TARGET_CPU=='IA64'">_ia64</if>
</set>
<set var="WXMACHINE_FLAG">
<!-- add the /MACHINE linker flag to formats with "normal" multiple-arch support when building in 64bit mode
(formats using the MSVS_PLATFORM variable don't need the /MACHINE linker flag!): -->
<if cond="FORMAT_SUPPORTS_MULTIPLE_ARCHITECTURES_NORMAL=='1' and TARGET_CPU=='AMD64'">/MACHINE:AMD64</if>
<if cond="FORMAT_SUPPORTS_MULTIPLE_ARCHITECTURES_NORMAL=='1' and TARGET_CPU=='IA64'">/MACHINE:IA64</if>
</set>
<set var="WXLIBPATH">
<if cond="WX_SHARED=='0'">$(DIRSEP)lib$(DIRSEP)$(COMPILER_PREFIX)$(WXCPU)_lib</if>
<if cond="WX_SHARED=='1'">$(DIRSEP)lib$(DIRSEP)$(COMPILER_PREFIX)$(WXCPU)_dll</if>
</set>
<!-- under Unix this is an option (detected at configure-time);
under Windows this is not an user option! -->
<set var="WX_PORT">msw</set>
<set var="WXLIBINCLUDE">$(WXLIBPATH)$(DIRSEP)$(WX_PORT)$(WXLIBPOSTFIX)</set>
<!-- All the possible mixes for the wx library names -->
<set var="WXLIB_BASE_NAME">
<if cond="WX_MONOLITHIC=='0'">wxbase$(WX_VERSION)$(WXLIBPOSTFIX)</if>
<!--
the trick used to support monolithic builds is here: when the
<wx-lib>base</wx-lib> tag is found, and user selected
WX_MONOLITHIC=1, then the base library is translated to the
monolithic library
-->
<if cond="WX_MONOLITHIC=='1'">wx$(WX_PORT)$(WX_VERSION)$(WXLIBPOSTFIX)</if>
</set>
<!-- Libraries whose name is prefixed with 'wxbase' -->
<define-global-tag name="define-wxbase-lib-name">
<set var="WXLIB_$(value.upper())_NAME">
<if cond="WX_MONOLITHIC=='0'">
wxbase$(WX_VERSION)$(WXLIBPOSTFIX)_$(value)
</if>
</set>
</define-global-tag>
<define-wxbase-lib-name>net</define-wxbase-lib-name>
<define-wxbase-lib-name>xml</define-wxbase-lib-name>
<!-- Libraries whose name is prefixed with 'wx' only -->
<define-global-tag name="define-wxlib-name">
<set var="WXLIB_$(value.upper())_NAME">
<if cond="WX_MONOLITHIC=='0'">
wx$(WX_PORT)$(WX_VERSION)$(WXLIBPOSTFIX)_$(value)
</if>
</set>
</define-global-tag>
<define-wxlib-name>core</define-wxlib-name>
<define-wxlib-name>media</define-wxlib-name>
<define-wxlib-name>xrc</define-wxlib-name>
<define-wxlib-name>html</define-wxlib-name>
<define-wxlib-name>adv</define-wxlib-name>
<define-wxlib-name>qa</define-wxlib-name>
<define-wxlib-name>aui</define-wxlib-name>
<define-wxlib-name>ribbon</define-wxlib-name>
<define-wxlib-name>propgrid</define-wxlib-name>
<define-wxlib-name>stc</define-wxlib-name>
<define-wxlib-name>richtext</define-wxlib-name>
<define-wxlib-name>webview</define-wxlib-name>
<!-- NOTE: The GL lib is not part of the monolithic build; treat it as a contrib! -->
<!-- WX TEMPLATE -->
<!-- -->
<!-- -->
<!-- While not required, templates make your -->
<!-- bakefiles much more readable. Templates, in -->
<!-- essence, are abstract classes like c++. -->
<!-- -->
<!-- Your build targets "inherit" the template, -->
<!-- along with the info associated with the template -->
<!-- -->
<!-- wxWidgets LIBRARY/APP TEMPLATE -->
<!-- -->
<!-- The "base class" of all our build targets -->
<!-- This links with the appropriate native -->
<!-- libraries required by the platform, the libraries -->
<!-- we want for our stuff, and the wxWindows libs. -->
<!-- this tag is used to include wx libraries: -->
<define-tag name="wx-lib" rules="exe,dll,module">
<if cond="value=='base'"><sys-lib>$(WXLIB_BASE_NAME)</sys-lib></if>
<if cond="value=='core'"><sys-lib>$(WXLIB_CORE_NAME)</sys-lib></if>
<if cond="value=='net'"><sys-lib>$(WXLIB_NET_NAME)</sys-lib></if>
<if cond="value=='xml'"><sys-lib>$(WXLIB_XML_NAME)</sys-lib></if>
<if cond="value=='media'"><sys-lib>$(WXLIB_MEDIA_NAME)</sys-lib></if>
<if cond="value=='xrc'"><sys-lib>$(WXLIB_XRC_NAME)</sys-lib></if>
<if cond="value=='html'"><sys-lib>$(WXLIB_HTML_NAME)</sys-lib></if>
<if cond="value=='adv'"><sys-lib>$(WXLIB_ADV_NAME)</sys-lib></if>
<if cond="value=='qa'"><sys-lib>$(WXLIB_QA_NAME)</sys-lib></if>
<if cond="value=='aui'"><sys-lib>$(WXLIB_AUI_NAME)</sys-lib></if>
<if cond="value=='ribbon'"><sys-lib>$(WXLIB_RIBBON_NAME)</sys-lib></if>
<if cond="value=='propgrid'"><sys-lib>$(WXLIB_PROPGRID_NAME)</sys-lib></if>
<if cond="value=='richtext'"><sys-lib>$(WXLIB_RICHTEXT_NAME)</sys-lib></if>
<if cond="value=='webview'"><sys-lib>$(WXLIB_WEBVIEW_NAME)</sys-lib></if>
<!-- The GL lib isn't part of the monolithic build, treat it as a contrib: -->
<if cond="value=='gl'">
<sys-lib>wx$(WX_PORT)$(WX_VERSION)$(WXLIBPOSTFIX)_$(value)</sys-lib>
</if>
<if cond="value=='stc'">
<!-- wxSTC requires also the basic scintilla library
which is built as a separate 3rd party library -->
<sys-lib>$(WXLIB_STC_NAME)</sys-lib>
<sys-lib>wxscintilla$(WX3RDPARTYLIBPOSTFIX)</sys-lib>
</if>
<if cond="value not in WX_LIB_LIST.split()">
<error>Unknown wxWidgets library given in the wx-lib tag</error>
</if>
</define-tag>
<!-- just a placeholder to mark the place where <wx-lib> will be placed,
thanks to the order precedence declaration below it: -->
<define-tag name="__wx-libs-point" rules="exe,dll,module"/>
<tag-info name="wx-lib"
position="before:__wx-libs-point"/>
<tag-info name="__wx-syslibs"
position="after:__wx-libs-point"/>
<!-- template for static wx libraries: -->
<template id="wx-lib">
<!-- MISCELLANEOUS -->
<if cond="FORMAT=='mingw'">
<define>HAVE_W32API_H</define>
<ldflags>-mthreads</ldflags>
</if>
<define>$(substituteFromDict(WX_SHARED,{'1':'WXUSINGDLL','0':''}))</define>
<define>$(WXUNICODE_DEFINE)</define>
<define>$(WXDEBUG_DEFINE)</define>
<define>__WXMSW__</define>
<if cond="FORMAT!='xcode2'">
<include>$(WX_DIR)$(WXLIBINCLUDE)</include>
<include>$(WX_DIR)/include</include>
</if>
</template>
<!-- this ugly tag contains all sys-lib tags used by "wx" template,
in order to make sure they are not reorder when wx-lib is moved
after __wx-libs-point: -->
<define-tag name="__wx-syslibs" rules="exe,dll,module">
<!-- wx 3rd party libs, always use them: -->
<sys-lib>wxtiff$(WX3RDPARTYLIBPOSTFIX)</sys-lib>
<sys-lib>wxjpeg$(WX3RDPARTYLIBPOSTFIX)</sys-lib>
<sys-lib>wxpng$(WX3RDPARTYLIBPOSTFIX)</sys-lib>
<sys-lib>wxzlib$(WX3RDPARTYLIBPOSTFIX)</sys-lib>
<!-- For regex we won't use the WX3RDPARTYLIBPOSTIX postfix:
unliked tiff, jpeg, png, zlib, expat, when building
in Unicode mode, the "u" suffix is appended to regex -->
<sys-lib>wxregex$(WXLIBPOSTFIX)</sys-lib>
<sys-lib>wxexpat$(WX3RDPARTYLIBPOSTFIX)</sys-lib>
<!-- link-in system libs that wx depends on: -->
<!-- If on borland, we don't need to do much -->
<if cond="FORMAT=='borland'">
<sys-lib>ole2w32</sys-lib>
</if>
<!-- Non-borland, on the other hand... -->
<if cond="FORMAT!='borland'">
<sys-lib>kernel32</sys-lib>
<sys-lib>user32</sys-lib>
<sys-lib>gdi32</sys-lib>
<sys-lib>comdlg32</sys-lib>
<sys-lib>winspool</sys-lib>
<sys-lib>winmm</sys-lib>
<sys-lib>shell32</sys-lib>
<sys-lib>comctl32</sys-lib>
<sys-lib>ole32</sys-lib>
<sys-lib>oleaut32</sys-lib>
<sys-lib>uuid</sys-lib>
<sys-lib>rpcrt4</sys-lib>
<sys-lib>advapi32</sys-lib>
<sys-lib>wsock32</sys-lib>
</if>
<!-- Libs common to both borland and MSVC -->
<if cond="FORMAT=='msvc' or FORMAT=='borland'">
<sys-lib>oleacc</sys-lib>
</if>
</define-tag>
<!-- template for wx executables/dlls: -->
<template id="wx" template="wx-lib">
<if cond="FORMAT!='xcode2'">
<lib-path>$(WX_DIR)$(WXLIBPATH)</lib-path>
</if>
<ldflags>$(WXMACHINE_FLAG)</ldflags>
<!-- wx libs must come before 3rd party and sys libs, this is
the place where the hack explained above is carried on: -->
<__wx-libs-point/>
<__wx-syslibs/>
</template>
<if cond="FORMAT_SUPPORTS_ACTIONS=='1' and WX_TEST_FOR_SELECTED_WXBUILD=='1'">
<!--
VERY IMPORTANT: before starting to build all targets of the generated makefile,
we need to check if the selected wxWidgets build exists; we do
that simply creating the following target; if it fails the make
program will halt printing the following nice error message...
(much better than the 'could not find wx/*.h file')
-->
<action id="test_for_selected_wxbuild">
<dependency-of>all</dependency-of>
<!-- the @ is to hide these actions from the user -->
<command>
@if not exist $(WX_DIR)$(WXLIBINCLUDE)$(DIRSEP)wx$(DIRSEP)setup.h \
echo ----------------------------------------------------------------------------
@if not exist $(WX_DIR)$(WXLIBINCLUDE)$(DIRSEP)wx$(DIRSEP)setup.h \
echo The selected wxWidgets build is not available!
@if not exist $(WX_DIR)$(WXLIBINCLUDE)$(DIRSEP)wx$(DIRSEP)setup.h \
echo Please use the options prefixed with WX_ to select another wxWidgets build.
@if not exist $(WX_DIR)$(WXLIBINCLUDE)$(DIRSEP)wx$(DIRSEP)setup.h \
echo ----------------------------------------------------------------------------
@if not exist $(WX_DIR)$(WXLIBINCLUDE)$(DIRSEP)wx$(DIRSEP)setup.h \
exit 1
</command>
</action>
</if>
</makefile>