]> git.saurik.com Git - wxWidgets.git/blame - wx-config.in
reimplemented wxBitmap::ConvertToImage() using wxDIB
[wxWidgets.git] / wx-config.in
CommitLineData
9a98a854
VZ
1#!/bin/sh
2
33380099
VS
3# -------------------------------------------------------------------------
4# Configured settings:
5# -------------------------------------------------------------------------
6
7# Version and build type information:
8
9WX_MAJOR_VERSION_NUMBER="@WX_MAJOR_VERSION_NUMBER@"
10WX_MINOR_VERSION_NUMBER="@WX_MINOR_VERSION_NUMBER@"
11WX_RELEASE_NUMBER="@WX_RELEASE_NUMBER@"
12release="@WX_MAJOR_VERSION_NUMBER@.@WX_MINOR_VERSION_NUMBER@"
13is_monolithic="@MONOLITHIC@"
14cross_compiling="@cross_compiling@"
15target="@host_alias@"
16static_flag="@STATIC_FLAG@"
127e9080 17inplace_flag="no"
33380099
VS
18
19# Misc configuration variables:
20
0154f61a
VS
21update_prefixes()
22{
23 includedir="@includedir@"
24 libdir="@libdir@"
25}
33380099
VS
26prefix="@prefix@"
27exec_prefix="@exec_prefix@"
0154f61a
VS
28update_prefixes
29
6ce73557 30CC="@CC@"
2b5f62a0 31GCC="@GCC@"
6ce73557
VZ
32CXX="@CXX@"
33LD="@SHARED_LD@"
33380099
VS
34srcdir="@top_srcdir@"
35builddir="@top_builddir_wxconfig@"
36basename_nogui="@WX_LIBRARY_BASENAME_NOGUI@"
37basename_gui="@WX_LIBRARY_BASENAME_GUI@"
38
39TOOLCHAIN_NAME="@TOOLCHAIN_NAME@"
40LDFLAGS="@LDFLAGS@"
41WXCONFIG_RPATH="@WXCONFIG_RPATH@"
42DMALLOC_LIBS="@DMALLOC_LIBS@"
43WXCONFIG_LIBS="@WXCONFIG_LIBS@"
44WXCONFIG_LIBS_STATIC="@WXCONFIG_LIBS_STATIC@"
45WXDEBUG_DEFINE="@WXDEBUG_DEFINE@"
46TOOLCHAIN_DEFS="@TOOLCHAIN_DEFS@"
47TOOLCHAIN_DLL_DEFS="@TOOLCHAIN_DLL_DEFS@"
48WXCONFIG_INCLUDE="@WXCONFIG_INCLUDE@"
49WX_LARGEFILE_FLAGS="@WX_LARGEFILE_FLAGS@"
74b84332 50GCC_PRAGMA_FLAGS="@GCC_PRAGMA_FLAGS@"
33380099
VS
51CODE_GEN_FLAGS="@CODE_GEN_FLAGS@"
52CODE_GEN_FLAGS_CXX="@CODE_GEN_FLAGS_CXX@"
53LDFLAGS_EXE="@LDFLAGS_EXE@"
54MACRESWXCONFIG="@MACRESWXCONFIG@"
55EXTRALIBS_GUI="@EXTRALIBS_GUI@"
56LIBS="@LIBS@"
ffef10f6 57WXCONFIG_LDFLAGS_GUI="@WXCONFIG_LDFLAGS_GUI@"
cf615ebb
VS
58
59
60# Linker flags for sublibraries:
33380099 61
edd891e2
VS
62CORE_BASE_LIBS="@CORE_BASE_LIBS@"
63CORE_GUI_LIBS="@CORE_GUI_LIBS@"
cf615ebb 64
67c13b6c 65ldlibs_base="@WXCONFIG_EXTRALIBS@"
cf615ebb
VS
66ldlibs_core="@EXTRALIBS_GUI@"
67ldlibs_xml="@EXTRALIBS_XML@"
3527f29c 68ldlibs_html="@EXTRALIBS_HTML@"
bb41dcbe 69ldlibs_odbc="@EXTRALIBS_ODBC@"
f93ca9fd 70ldlibs_adv="@EXTRALIBS_SDL@"
cf615ebb
VS
71
72ldflags_gl="@LDFLAGS_GL@"
73ldlibs_gl="@OPENGL_LIBS@"
74
75
33380099
VS
76
77# -------------------------------------------------------------------------
78# Script code:
79# -------------------------------------------------------------------------
80
81exec_prefix_set=no
82
cf615ebb
VS
83# is $1 among the rest of arguments?
84isinlist()
85{
86 value=$1
87 shift
88 isin=no
89 for iii in $* ; do
90 if test $iii = $value ; then isin=yes ; fi
91 done
92 test $isin = yes
93}
94
95# output linker commands needed to link against libraries passed as arguments
96# (does not handle monolithic/multilib):
97output_libs()
98{
67c13b6c
VS
99 if test "$cross_compiling" = "yes" ; then
100 target_tag="-${target}"
101 fi
102
cf615ebb
VS
103 all_libs=""
104 all_ldflags=""
105 wxlibs=""
67c13b6c 106
cf615ebb
VS
107 for lib in $* ; do
108 eval xlibs=\$ldlibs_$lib
109 eval xflags=\$ldflags_$lib
110 if isinlist $lib $CORE_BASE_LIBS ; then
111 basename=$basename_nogui
112 else
113 basename=$basename_gui
114 fi
fef23dd4
VS
115 if test $lib = "base" ; then
116 libname="$basename"
117 else
118 libname="${basename}_${lib}"
119 fi
cf615ebb
VS
120
121 all_ldflags="$all_ldflags $xflags"
122 if test $static_flag = yes ; then
33380099 123 wxlibs="$wxlibs ${libdir}/lib${libname}-${release}${target_tag}.a"
cf615ebb
VS
124 all_libs="$all_libs $xlibs"
125 else
67c13b6c 126 wxlibs="$wxlibs -l${libname}-${release}${target_tag}"
cf615ebb
VS
127 fi
128 done
129
130 echo $all_ldflags $wxlibs $all_libs
131}
9a98a854 132
ffef10f6
VS
133# output $(WXCONFIG_LDFLAGS_GUI) if any of libs passed as arguments is GUI
134# library, nothing otherwise:
135get_ldflags_gui()
136{
137 flags_to_ret=""
138 for lib in $* ; do
139 if isinlist $lib $CORE_GUI_LIBS ; then
140 flags_to_ret="$WXCONFIG_LDFLAGS_GUI"
141 fi
142 done
143 echo $flags_to_ret
144}
145
75f4be8a
VZ
146usage()
147{
148 cat <<EOF
89816e4f 149Usage: wx-config [--prefix[=DIR]] [--exec-prefix[=DIR]] [--inplace]
8708fa76 150 [--toolkit=TOOLKIT] [--unicode[=yes|no]] [--debug[=yes|no]]
48112931
VS
151 [--universal[=yes|no]] [--host=HOST]
152 [--version[=VERSION]] [--release]
8708fa76 153 [--list] [--basename] [--static] [--libs] [--gl-libs]
40f7145c 154 [--cppflags] [--cflags] [--cxxflags] [--ldflags] [--rezflags]
89816e4f 155 [--cc] [--cxx] [--ld] [LIBRARIES]
75f4be8a
VZ
156
157wx-config returns configuration information about the installed
b63b07a8 158version of wxWidgets. It may be used to query its version and
75f4be8a
VZ
159installation directories and also retrieve the C and C++ compilers
160and linker which were used for its building and the corresponding
161flags.
2b5f62a0 162
82a649b6
RL
163Ordinarily it should be installed to the appropriate system location
164along with the headers and library files, but it is also possible to
b63b07a8 165use it to enable builds with an uninstalled wxWidgets version for
82a649b6
RL
166package building and bleeding edge developers. To do so, use it like
167this:
168
89816e4f 169\${wx_builddir}/wx-config --inplace
82a649b6 170
89816e4f
VS
171Note that any other options supplied must come *after* --inplace
172for it to take effect.
82a649b6 173
efe6c06f 174--static must come before --cppflags, --cflags, --cxxflags,
a43ed08a 175--libs and --gl-libs and --libs must come before the other ones.
cf615ebb
VS
176
177--libs can take optional argument that contains comma-separated list of
b63b07a8 178wxWidgets libraries to link against. This list can include both core
1d8864ac
VZ
179and contrib libraries. Special value "std" stands for all libraries linked
180in by default.
cf615ebb 181
251f47d1 182--gl-libs option is deprecated, use "--libs gl" instead.
67c13b6c 183
8708fa76 184If there are several different builds of wxWidgets installed in same prefix,
48112931
VS
185you can use --host, --toolkit, --unicode, --debug, --universal and --version
186options to select one of them. Use --list option to show all available builds
187that match given criteria.
8708fa76 188
75f4be8a
VZ
189EOF
190
191 exit $1
192}
193
194cppflags()
195{
166bcebb 196 includes="-I${libdir}/wx/include/${TOOLCHAIN_NAME}"
00c81359 197
127e9080 198 # in inplace case we need to also add path to contrib headers -- do it
bc79eb4f 199 # unconditionally as they might be used and we have no way of knowing if
127e9080
VZ
200 # they really are
201 if test $inplace_flag = yes ; then
166bcebb
VS
202 includes="$includes -I${prefix}/include -I${prefix}/contrib/include"
203 else
204 includes="$includes -I${includedir}/wx-${WX_MAJOR_VERSION_NUMBER}.${WX_MINOR_VERSION_NUMBER}"
127e9080
VZ
205 fi
206
a43ed08a
VZ
207 flags="$includes ${WXDEBUG_DEFINE} ${TOOLCHAIN_DEFS}"
208 if test $static_flag != yes ; then
209 flags="$flags ${TOOLCHAIN_DLL_DEFS}"
00c81359 210 fi
a43ed08a 211
251f47d1
VS
212 if test $nogui_flag = "yes" ; then
213 flags="$flags -DwxUSE_GUI=0"
a43ed08a
VZ
214 fi
215
216 echo "$flags${WXCONFIG_INCLUDE} ${WX_LARGEFILE_FLAGS} ${GCC_PRAGMA_FLAGS}"
75f4be8a 217}
9a98a854
VZ
218
219if test $# -eq 0; then
3a922bb4 220 usage 1 1>&2
9a98a854
VZ
221fi
222
251f47d1
VS
223
224# handle libraries list:
225
226libs_list=""
227
228for arg in $*; do
229 case "$arg" in
230 -*)
231 ;;
232 *)
233 libs_list="$libs_list `echo "$arg" | tr ',' ' '`"
234 ;;
235 esac
236done
237
238if test "x$libs_list" = "x" ; then
239 if test "$is_monolithic" = "0" ; then
240 # link against all libs if none given explicitly:
241 libs_list="$CORE_GUI_LIBS $CORE_BASE_LIBS"
242 fi
243else
244 # always add wxBase, any wxApp needs it:
245 libs_list="$libs_list base"
246fi
247
248# determine if at least one gui lib was used:
249nogui_flag="yes"
250for i in $libs_list; do
251 case $i in
252 base|net)
253 ;;
254 *)
255 nogui_flag="no"
256 ;;
257 esac
258done
259
260
261# handle options:
262
9a98a854
VZ
263while test $# -gt 0; do
264 case "$1" in
265 -*=*) optarg=`echo "$1" | sed 's/[-_a-zA-Z0-9]*=//'` ;;
266 *) optarg= ;;
267 esac
268
269 case $1 in
52c71b80 270 --inplace)
127e9080 271 inplace_flag=yes
52c71b80 272 ;;
9a98a854
VZ
273 --prefix=*)
274 prefix=$optarg
275 if test $exec_prefix_set = no ; then
276 exec_prefix=$optarg
277 fi
0154f61a 278 update_prefixes
9a98a854
VZ
279 ;;
280 --prefix)
281 echo $prefix
282 ;;
283 --exec-prefix=*)
284 exec_prefix=$optarg
285 exec_prefix_set=yes
0154f61a 286 update_prefixes
9a98a854
VZ
287 ;;
288 --exec-prefix)
289 echo $exec_prefix
290 ;;
291 --version)
33380099 292 echo ${WX_MAJOR_VERSION_NUMBER}.${WX_MINOR_VERSION_NUMBER}.${WX_RELEASE_NUMBER}
9a98a854 293 ;;
2f42e5b6 294 --release)
cf615ebb 295 echo $release
2f42e5b6
VS
296 ;;
297 --basename)
9171d4b4 298 echo $basename_gui
2f42e5b6 299 ;;
3d63bc3a
RL
300 --static)
301 static_flag=yes
302 ;;
75f4be8a
VZ
303 --cppflags)
304 cppflags
305 ;;
9a98a854 306 --cflags)
33380099 307 echo `cppflags` ${CODE_GEN_FLAGS}
75f4be8a
VZ
308 ;;
309 --cxxflags)
33380099 310 echo `cppflags` ${CODE_GEN_FLAGS} ${CODE_GEN_FLAGS_CXX}
9a98a854 311 ;;
40f7145c 312 --ldflags)
33380099 313 echo ${LDFLAGS_EXE}
40f7145c 314 ;;
2baaf735 315 --rezflags)
09d3439c 316 echo `eval echo ${MACRESWXCONFIG}`
2baaf735 317 ;;
cf615ebb 318
251f47d1 319 --libs)
cf615ebb 320 # include install directory only if it is not default:
33380099 321 if test "${libdir}" != "/usr/lib" \
77e13408 322 -a \( "${cross_compiling}" != "yes" \
33380099 323 -o "${libdir}" != "/usr/${target}/lib" \) ;
3a922bb4 324 then
33380099 325 libs="-L${libdir}"
9a98a854 326 fi
3d63bc3a 327
a43ed08a 328 # it's simpler to avoid handling "base" itself at all as we add it in the
1d8864ac 329 # end to the list of libraries anyhow
cf615ebb
VS
330 # in monolithic build, link against the main library:
331 if test "$is_monolithic" = "1" ; then
332 # filter out core libs, leave only contrib in libs_list:
333 newlist=
334 for i in $libs_list ; do
1d8864ac 335 if isinlist $i $CORE_GUI_LIBS $CORE_BASE_LIBS; then
cf615ebb
VS
336 libs_list="" # do nothing
337 else
338 newlist="$newlist $i"
339 fi
340 done
341 libs_list="$newlist"
9171d4b4 342
cf615ebb
VS
343 # output link flags:
344 contrib_libs=`output_libs $libs_list`
345 if test $static_flag = yes ; then
ffef10f6 346 echo "$libs ${LDFLAGS} ${WXCONFIG_LDFLAGS_GUI} ${WXCONFIG_RPATH} $contrib_libs ${libdir}/${WXCONFIG_LIBS_STATIC} ${EXTRALIBS_GUI} ${LIBS} ${DMALLOC_LIBS}"
cf615ebb 347 else
ffef10f6 348 echo $libs ${LDFLAGS} ${WXCONFIG_LDFLAGS_GUI} ${WXCONFIG_RPATH} $contrib_libs ${WXCONFIG_LIBS} ${DMALLOC_LIBS}
cf615ebb 349 fi
3d63bc3a 350 else
1d8864ac
VZ
351 # we may need to replace "std" alias with its expansion
352 newlist=
353 hadstd=0
354 for i in $libs_list; do
355 case $i in
356 std)
357 hadstd=1
358 ;;
359
360 base)
361 # if we have std, we're going to add base anyhow, avoid
362 # having it twice in the end
363 if [ $hadstd = 0 ]; then
a43ed08a 364 newlist="$newlist $i"
1d8864ac
VZ
365 fi
366 ;;
367
368 *)
369 newlist="$newlist $i"
370 ;;
371 esac
372 done
373 libs_list="$newlist"
374 if [ $hadstd = 1 ]; then
375 libs_list="$libs_list $CORE_GUI_LIBS $CORE_BASE_LIBS"
376 fi
377
cf615ebb
VS
378 # in multilib mode, link against all sublibraries:
379 wxlibs=`output_libs $libs_list`
ffef10f6
VS
380 guildflags=`get_ldflags_gui $libs_list`
381 echo $libs ${LDFLAGS} ${guildflags} ${WXCONFIG_RPATH} $wxlibs ${DMALLOC_LIBS}
3d63bc3a
RL
382 fi
383
3a922bb4
RL
384 ;;
385 --gl-libs)
cf615ebb 386 output_libs gl
9a98a854 387 ;;
6ce73557
VZ
388 --cc)
389 echo $CC
390 ;;
391 --cxx)
392 echo $CXX
393 ;;
394 --ld)
395 echo $LD
396 ;;
251f47d1 397 --help|-h)
75f4be8a 398 usage 1 1>&2
9a98a854 399 ;;
14885f09
VS
400 -*)
401 # unrecognized flag is error
402 usage 1 1>&2
403 ;;
9a98a854
VZ
404 esac
405 shift
406done
407