follows the wxWidgets naming conventions, then this tag is
what you need to reference the wx-based additional library.
- - <wxlike-libdirname>: sets the output directory for the current target to $(value)
- when on Unix and to e.g. $(value)/vc_lib when on Windows,
- i.e. acts like <dirname> just following wxWidgets naming rules.
- Useful to allow multiple builds of the
+ - <wxlike-dirname>: sets the output directory for the current target to $(value)
+ when on Unix and to e.g. $(value)/vc_lib when on Windows,
+ i.e. acts like <dirname> just following wxWidgets naming rules.
+ Useful to allow multiple builds of the
- <wxlike-paths>: if your library/application needs to compile & link with both
wxWidgets and some other wx-based library, which in turn
to keep object files compiled with different
settings separate.
+ - <set-wxlike>: sets a variable with the name of a library named with the same
+ wxWidgets rules.
+
NOTE: as a reference here is a list of all wxWidgets libraries satisfying
the dependency constraints mentioned in <wx-lib> description:
<wx-lib>richtext</wx-lib>
<wx-lib>aui</wx-lib>
+ <wx-lib>stc</wx-lib>
<wx-lib>qa</wx-lib>
- <wx-lib>dbgrid</wx-lib>
<wx-lib>gl</wx-lib>
- <wx-lib>odbc</wx-lib>
<wx-lib>xrc</wx-lib>
<wx-lib>html</wx-lib>
<wx-lib>media</wx-lib>
<!-- this variable identifies the version of the wx presets.
- this is changed only when major changes to wxpresets take place. -->
+ this is changed only when major changes to wxpresets take place.
+ -->
<set var="WX_PRESETS_VERSION">4</set>
<!-- list of known libraries used by wx-lib tag defined in wx_unix.bkl and wx_win32.bkl
VERY IMPORTANT: when updating this list also update the <wx-lib> and <wx-all-libs>
tag definitions.
-->
- <set var="LIB_LIST">
- base core net xml odbc xrc html adv media gl dbgrid qa aui richtext
+ <set var="WX_LIB_LIST">
+ base core net xml xrc html adv media gl qa aui richtext stc
</set>
- <!-- NOTE: refer to the NET contrib using NETUTILS instead of NET
- (which is already in LIB_LIST)
+ <!-- if you define this variable to 0 before including wx presets, the
+ "test_for_selected_wxbuild" target which is added by default in win32 and GNU
+ makefiles, won't be added.
+ This is useful when e.g. you want to have wxWidgets as an optional
+ dependency and thus you don't want to perform that check unconditionally.
-->
- <set var="CONTRIBLIB_LIST">
- applet deprecated fl foldbar gizmos mmedia netutils ogl plot stc svg
+ <set var="WX_TEST_FOR_SELECTED_WXBUILD" overwrite="0">
+ 1
</set>
- <set var="ALLLIB_LIST">$(LIB_LIST) $(CONTRIBLIB_LIST)</set>
<!-- this is a temporary variable until there is non general -->
<!-- function in bakefiles for returning native markup for -->
<values-description>Static,DLL</values-description>
<default-value>$(WX_SHARED_DEFAULT)</default-value>
<description>
- Use DLL build of wx library to use?
+ Use DLL build of wx library?
</description>
</option>
</if>
<values-description>ANSI,Unicode</values-description>
<default-value>$(WX_UNICODE_DEFAULT)</default-value>
<description>
- Compile Unicode build of wxWidgets?
+ Use Unicode build of wxWidgets?
</description>
</option>
</if>
<!-- The directory where wxWidgets is installed: -->
<if cond="not isdefined('WX_DIR')">
<set var="WX_DIR_DEFAULT" overwrite="0">$(DOLLAR)($(ENV_VAR)WXWIN)</set>
- <option name="WX_DIR" category="path">
+ <option name="WX_DIR" category="path" never_empty="1">
<default-value>$(WX_DIR_DEFAULT)</default-value>
<description>
The directory where wxWidgets library is installed
- <!-- this is just a wrapper that includes the real implementation: -->
+ <!-- REAL IMPLEMENTATION -->
+ <!-- -->
<set var="__wx_included_impl">0</set>
<set var="__wx_included_impl">1</set>
</if>
+ <if cond="FORMAT=='xcode2'">
+ <!-- xCode2 is an IDE and thus reuses almost nothing from unix part of wxpresets;
+ better use the win32 part! -->
+ <include file="wx_win32.bkl"/>
+ <set var="__wx_included_impl">1</set>
+ </if>
+
<if cond="__wx_included_impl=='0'">
<error>This format is not (yet) supported by wx preset.</error>
</if>
<!-- UTILITY TAGS -->
<!-- -->
- <!-- private helper tag -->
- <define-tag name="__setlibname" rules="lib,dll,module">
+ <!-- private helper tag: does the same thing as for <set-wxlike> except that:
+ - the variable created is always named "__temp"
+ - can be used (only) inside targets as this is a non-global tag
+ -->
+ <define-tag name="__setlibname" rules="lib,dll,module,exe">
<set var="__temp">
<if cond="FORMAT!='autoconf' and FORMAT!='gnu'">
$(attributes['prefix'])_$(WX_PORT)$(WX_VERSION)$(WXLIBPOSTFIX)_$(value)
<sys-lib>$(__temp)</sys-lib>
</define-tag>
- <!-- Sets as output folder for the generated lib/dll a directory
- called "lib/$(COMPILER)_lib|dll", just like wxWidgets does.
- This makes it possible to keep separed the libraries compiled with
+ <!-- Sets as output folder for the current target a directory
+ called "$(value)/$(COMPILER)_lib|dll", just like wxWidgets does.
+ This makes it possible to keep separed the libraries/exes compiled with
different compilers and with a different value for WX_SHARED.
-->
- <define-tag name="wxlike-libdirname" rules="lib,dll">
+ <define-tag name="wxlike-dirname" rules="lib,dll,exe,module">
<if cond="FORMAT!='autoconf'">
<set var="_DIRNAME_SHARED_SUFFIX">
<if cond="WX_SHARED=='0'">lib</if>
<dirname>$(_DIRNAME)</dirname>
<if cond="FORMAT_SUPPORTS_ACTIONS=='1'">
- <set var="__mkdir_tgt">make_lib_dir_$(id)</set>
+ <set var="__mkdir_tgt">make_dir_$(id)</set>
<add-target target="$(__mkdir_tgt)" type="action"/>
<modify-target target="$(__mkdir_tgt)">
<command cond="TOOLSET in ['win32','os2','dos']">
if not exist $(nativePaths(_DIRNAME)) mkdir $(nativePaths(_DIRNAME))
</command>
- </modify-target>
+ </modify-target>
<!-- the following code is mostly equivalent to a:
<dependency-of>$(id)</dependency-of>
-->
</define-tag>
+
+
+ <!-- UTILITY GLOBAL TAGS -->
+ <!-- -->
+
<!-- Sets the BUILDDIR variable using the same rules used by wxWidgets itself.
This makes it possible to keep separed the object files compiled with
different configuration settings.
</if>
</define-global-tag>
+ <!-- Sets a variable with the name of the 'var' attribute value using the
+ same rules used for wxWidgets library naming.
+ E.g.
+
+ <set-wxlike var='MYMODULE_LIBNAME' prefix='mylib'>
+ mymodule
+ </set-wxlike>
+
+ This tag also supports a 'cond' attribute making it very powerful
+ for conditional linking a wx-based library:
+
+ <option name="USE_MYMODULE">
+ <values>0,1</values>
+ </option>
+ <set-wxlike var='MYMODULE_DEP'
+ prefix='mylib'
+ cond="USE_MYMODULE=='1'">
+ mymodule
+ </set-wxlike>
+ ...
+ <exe id="myexe">
+ <sys-lib>$(MYMODULE_DEP)</sys-lib>
+ </exe>
+ -->
+ <define-global-tag name="set-wxlike">
+ <if cond="FORMAT!='autoconf' and FORMAT!='gnu'">
+ <if cond="'cond' not in attributes">
+ <set var="$(attributes['var'])">
+ $(attributes['prefix'])_$(WX_PORT)$(WX_VERSION)$(WXLIBPOSTFIX)_$(value)
+ </set>
+ </if>
+ <if cond="'cond' in attributes">
+ <set var="$(attributes['var'])">
+ <if cond="$(attributes['cond'])">
+ $(attributes['prefix'])_$(WX_PORT)$(WX_VERSION)$(WXLIBPOSTFIX)_$(value)
+ </if>
+ </set>
+ </if>
+ </if>
+
+ <if cond="FORMAT=='autoconf' or FORMAT=='gnu'">
+ <if cond="'cond' not in attributes">
+ <set var="$(attributes['var'])">
+ $(attributes['prefix'])_$(WX_PORT)$(WXLIBPOSTFIX)_$(value)-$(WX_VERSION_MAJOR).$(WX_VERSION_MINOR)
+ </set>
+ </if>
+ <if cond="'cond' in attributes">
+ <set var="$(attributes['var'])">
+ <if cond="$(attributes['cond'])">
+ $(attributes['prefix'])_$(WX_PORT)$(WXLIBPOSTFIX)_$(value)-$(WX_VERSION_MAJOR).$(WX_VERSION_MINOR)
+ </if>
+ </set>
+ </if>
+ </if>
+ </define-global-tag>
+
</makefile>