wxWidgets/build/bakefiles/wxpresets/presets/wx_win32.bkl
Vadim Zeitlin 0d2a693bbd Add support for webview library to MSW bakefile presets.
The webview library wasn't linked in correctly when using MSW bakefile
presets. Fix this by adding the corresponding <sys-lib> for it (this needs to
be done for MSW only, under Unix it's handled by wx-config).

Closes #13789.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@70063 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-12-20 13:27:59 +00:00

355 lines
16 KiB
XML

<?xml version="1.0" ?>
<!-- $Id$ -->
<!-- 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 -->
<!-- $Id$ -->
<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=='msevc4prj'">_$(CPU)</if>
<if cond="FORMAT_SUPPORTS_MULTIPLE_ARCHITECTURES=='1' and TARGET_CPU=='AMD64'">_amd64</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">
<if cond="FORMAT=='msevc4prj'">wince</if>
<if cond="FORMAT!='msevc4prj'">msw</if>
</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 cond="FORMAT!='msevc4prj'">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 cond="FORMAT!='msevc4prj'">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 not in ['borland','msevc4prj']">
<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=='msvc6prj' 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>