TZIVI-254: IVI needs a newer version of cmake
[profile/ivi/cmake.git] / Modules / FindwxWindows.cmake
1 # - Find wxWindows (wxWidgets) installation
2 # This module finds if wxWindows/wxWidgets is installed and determines where
3 # the include files and libraries are. It also determines what the name of
4 # the library is.
5 # Please note this file is DEPRECATED and replaced by FindwxWidgets.cmake.
6 # This code sets the following variables:
7 #
8 #  WXWINDOWS_FOUND     = system has WxWindows
9 #  WXWINDOWS_LIBRARIES = path to the wxWindows libraries
10 #                        on Unix/Linux with additional
11 #                        linker flags from
12 #                        "wx-config --libs"
13 #  CMAKE_WXWINDOWS_CXX_FLAGS  = Compiler flags for wxWindows,
14 #                               essentially "`wx-config --cxxflags`"
15 #                               on Linux
16 #  WXWINDOWS_INCLUDE_DIR      = where to find "wx/wx.h" and "wx/setup.h"
17 #  WXWINDOWS_LINK_DIRECTORIES = link directories, useful for rpath on
18 #                                Unix
19 #  WXWINDOWS_DEFINITIONS      = extra defines
20 #
21 # OPTIONS
22 # If you need OpenGL support please
23 #  SET(WXWINDOWS_USE_GL 1)
24 # in your CMakeLists.txt *before* you include this file.
25 #
26 #  HAVE_ISYSTEM      - true required to replace -I by -isystem on g++
27 #
28 # For convenience include Use_wxWindows.cmake in your project's
29 # CMakeLists.txt using INCLUDE(Use_wxWindows).
30 #
31 # USAGE
32 #  SET(WXWINDOWS_USE_GL 1)
33 #  FIND_PACKAGE(wxWindows)
34 #
35 # NOTES
36 # wxWidgets 2.6.x is supported for monolithic builds
37 # e.g. compiled  in wx/build/msw dir as:
38 #  nmake -f makefile.vc BUILD=debug SHARED=0 USE_OPENGL=1 MONOLITHIC=1
39 #
40 # DEPRECATED
41 #
42 #  CMAKE_WX_CAN_COMPILE
43 #  WXWINDOWS_LIBRARY
44 #  CMAKE_WX_CXX_FLAGS
45 #  WXWINDOWS_INCLUDE_PATH
46 #
47 # AUTHOR
48 # Jan Woetzel <http://www.mip.informatik.uni-kiel.de/~jw> (07/2003-01/2006)
49
50 #=============================================================================
51 # Copyright 2000-2009 Kitware, Inc.
52 # Copyright 2003-2006 Jan Woetzel
53 #
54 # Distributed under the OSI-approved BSD License (the "License");
55 # see accompanying file Copyright.txt for details.
56 #
57 # This software is distributed WITHOUT ANY WARRANTY; without even the
58 # implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
59 # See the License for more information.
60 #=============================================================================
61 # (To distribute this file outside of CMake, substitute the full
62 #  License text for the above reference.)
63
64 # ------------------------------------------------------------------
65 #
66 # -removed OPTION for CMAKE_WXWINDOWS_USE_GL. Force the developer to SET it before calling this.
67 # -major update for wx 2.6.2 and monolithic build option. (10/2005)
68 #
69 # STATUS
70 # tested with:
71 #  cmake 1.6.7, Linux (Suse 7.3), wxWindows 2.4.0, gcc 2.95
72 #  cmake 1.6.7, Linux (Suse 8.2), wxWindows 2.4.0, gcc 3.3
73 #  cmake 1.6.7, Linux (Suse 8.2), wxWindows 2.4.1-patch1,  gcc 3.3
74 #  cmake 1.6.7, MS Windows XP home, wxWindows 2.4.1, MS Visual Studio .net 7 2002 (static build)
75 #  cmake 2.0.5 on Windows XP and Suse Linux 9.2
76 #  cmake 2.0.6 on Windows XP and Suse Linux 9.2, wxWidgets 2.6.2 MONOLITHIC build
77 #  cmake 2.2.2 on Windows XP, MS Visual Studio .net 2003 7.1 wxWidgets 2.6.2 MONOLITHIC build
78 #
79 # TODO
80 #  -OPTION for unicode builds
81 #  -further testing of DLL linking under MS WIN32
82 #  -better support for non-monolithic builds
83 #
84
85
86 IF(WIN32)
87   SET(WIN32_STYLE_FIND 1)
88 ENDIF(WIN32)
89 IF(MINGW)
90   SET(WIN32_STYLE_FIND 0)
91   SET(UNIX_STYLE_FIND 1)
92 ENDIF(MINGW)
93 IF(UNIX)
94   SET(UNIX_STYLE_FIND 1)
95 ENDIF(UNIX)
96
97
98 IF(WIN32_STYLE_FIND)
99
100   ## ######################################################################
101   ##
102   ## Windows specific:
103   ##
104   ## candidates for root/base directory of wxwindows
105   ## should have subdirs include and lib containing include/wx/wx.h
106   ## fix the root dir to avoid mixing of headers/libs from different
107   ## versions/builds:
108
109   SET (WXWINDOWS_POSSIBLE_ROOT_PATHS
110     $ENV{WXWIN}
111     "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\wxWidgets_is1;Inno Setup: App Path]"  ## WX 2.6.x
112     "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\wxWindows_is1;Inno Setup: App Path]"  ## WX 2.4.x
113     C:\\wxWidgets-2.6.2
114     D:\\wxWidgets-2.6.2
115     C:\\wxWidgets-2.6.1
116     D:\\wxWidgets-2.6.1
117     C:\\wxWindows-2.4.2
118     D:\\wxWindows-2.4.2
119     )
120
121   ## WX supports monolithic and multiple smaller libs (since 2.5.x), we prefer monolithic for now.
122   ## monolithic = WX is built as a single big library
123   ## e.g. compile on WIN32 as  "nmake -f makefile.vc MONOLITHIC=1 BUILD=debug SHARED=0 USE_OPENGL=1" (JW)
124   OPTION(WXWINDOWS_USE_MONOLITHIC "Use monolithic build of WX??" ON)
125   MARK_AS_ADVANCED(WXWINDOWS_USE_MONOLITHIC)
126
127   ## GL libs used?
128   OPTION(WXWINDOWS_USE_GL "Use Wx with GL support(glcanvas)?" ON)
129   MARK_AS_ADVANCED(WXWINDOWS_USE_GL)
130
131
132   ## avoid mixing of headers and libs between multiple installed WX versions,
133   ## select just one tree here:
134   FIND_PATH(WXWINDOWS_ROOT_DIR  include/wx/wx.h
135     ${WXWINDOWS_POSSIBLE_ROOT_PATHS} )
136   # MESSAGE("DBG found WXWINDOWS_ROOT_DIR: ${WXWINDOWS_ROOT_DIR}")
137
138
139   ## find libs for combination of static/shared with release/debug
140   ## be careful if you add something here,
141   ## avoid mixing of headers and libs of different wx versions,
142   ## there may be multiple WX version s installed.
143   SET (WXWINDOWS_POSSIBLE_LIB_PATHS
144     "${WXWINDOWS_ROOT_DIR}/lib"
145     )
146
147   ## monolithic?
148   IF (WXWINDOWS_USE_MONOLITHIC)
149
150     FIND_LIBRARY(WXWINDOWS_STATIC_LIBRARY
151       NAMES wx wxmsw wxmsw26
152       PATHS
153       "${WXWINDOWS_ROOT_DIR}/lib/vc_lib"
154       ${WXWINDOWS_POSSIBLE_LIB_PATHS}
155       DOC "wxWindows static release build library" )
156
157     FIND_LIBRARY(WXWINDOWS_STATIC_DEBUG_LIBRARY
158       NAMES wxd wxmswd wxmsw26d
159       PATHS
160       "${WXWINDOWS_ROOT_DIR}/lib/vc_lib"
161       ${WXWINDOWS_POSSIBLE_LIB_PATHS}
162       DOC "wxWindows static debug build library" )
163
164     FIND_LIBRARY(WXWINDOWS_SHARED_LIBRARY
165       NAMES wxmsw26 wxmsw262 wxmsw24 wxmsw242 wxmsw241 wxmsw240 wx23_2 wx22_9
166       PATHS
167       "${WXWINDOWS_ROOT_DIR}/lib/vc_dll"
168       ${WXWINDOWS_POSSIBLE_LIB_PATHS}
169       DOC "wxWindows shared release build library" )
170
171     FIND_LIBRARY(WXWINDOWS_SHARED_DEBUG_LIBRARY
172       NAMES wxmsw26d wxmsw262d wxmsw24d wxmsw241d wxmsw240d wx23_2d wx22_9d
173       PATHS
174       "${WXWINDOWS_ROOT_DIR}/lib/vc_dll"
175       ${WXWINDOWS_POSSIBLE_LIB_PATHS}
176       DOC "wxWindows shared debug build library " )
177
178
179     ##
180     ## required for WXWINDOWS_USE_GL
181     ## gl lib is always build separate:
182     ##
183     FIND_LIBRARY(WXWINDOWS_STATIC_LIBRARY_GL
184       NAMES wx_gl wxmsw_gl wxmsw26_gl
185       PATHS
186       "${WXWINDOWS_ROOT_DIR}/lib/vc_lib"
187       ${WXWINDOWS_POSSIBLE_LIB_PATHS}
188       DOC "wxWindows static release build GL library" )
189
190     FIND_LIBRARY(WXWINDOWS_STATIC_DEBUG_LIBRARY_GL
191       NAMES wxd_gl wxmswd_gl wxmsw26d_gl
192       PATHS
193       "${WXWINDOWS_ROOT_DIR}/lib/vc_lib"
194       ${WXWINDOWS_POSSIBLE_LIB_PATHS}
195       DOC "wxWindows static debug build GL library" )
196
197
198     FIND_LIBRARY(WXWINDOWS_STATIC_DEBUG_LIBRARY_PNG
199       NAMES wxpngd
200       PATHS
201       "${WXWINDOWS_ROOT_DIR}/lib/vc_lib"
202       ${WXWINDOWS_POSSIBLE_LIB_PATHS}
203       DOC "wxWindows static debug png library" )
204
205     FIND_LIBRARY(WXWINDOWS_STATIC_LIBRARY_PNG
206       NAMES wxpng
207       PATHS
208       "${WXWINDOWS_ROOT_DIR}/lib/vc_lib"
209       ${WXWINDOWS_POSSIBLE_LIB_PATHS}
210       DOC "wxWindows static png library" )
211
212     FIND_LIBRARY(WXWINDOWS_STATIC_DEBUG_LIBRARY_TIFF
213       NAMES wxtiffd
214       PATHS
215       "${WXWINDOWS_ROOT_DIR}/lib/vc_lib"
216       ${WXWINDOWS_POSSIBLE_LIB_PATHS}
217       DOC "wxWindows static debug tiff library" )
218
219     FIND_LIBRARY(WXWINDOWS_STATIC_LIBRARY_TIFF
220       NAMES wxtiff
221       PATHS
222       "${WXWINDOWS_ROOT_DIR}/lib/vc_lib"
223       ${WXWINDOWS_POSSIBLE_LIB_PATHS}
224       DOC "wxWindows static tiff library" )
225
226     FIND_LIBRARY(WXWINDOWS_STATIC_DEBUG_LIBRARY_JPEG
227       NAMES wxjpegd  wxjpgd
228       PATHS
229       "${WXWINDOWS_ROOT_DIR}/lib/vc_lib"
230       ${WXWINDOWS_POSSIBLE_LIB_PATHS}
231       DOC "wxWindows static debug jpeg library" )
232
233     FIND_LIBRARY(WXWINDOWS_STATIC_LIBRARY_JPEG
234       NAMES wxjpeg wxjpg
235       PATHS
236       "${WXWINDOWS_ROOT_DIR}/lib/vc_lib"
237       ${WXWINDOWS_POSSIBLE_LIB_PATHS}
238       DOC "wxWindows static jpeg library" )
239
240     FIND_LIBRARY(WXWINDOWS_STATIC_DEBUG_LIBRARY_ZLIB
241       NAMES wxzlibd
242       PATHS
243       "${WXWINDOWS_ROOT_DIR}/lib/vc_lib"
244       ${WXWINDOWS_POSSIBLE_LIB_PATHS}
245       DOC "wxWindows static debug zlib library" )
246
247     FIND_LIBRARY(WXWINDOWS_STATIC_LIBRARY_ZLIB
248       NAMES wxzlib
249       PATHS
250       "${WXWINDOWS_ROOT_DIR}/lib/vc_lib"
251       ${WXWINDOWS_POSSIBLE_LIB_PATHS}
252       DOC "wxWindows static zib library" )
253
254     FIND_LIBRARY(WXWINDOWS_STATIC_DEBUG_LIBRARY_REGEX
255       NAMES wxregexd
256       PATHS
257       "${WXWINDOWS_ROOT_DIR}/lib/vc_lib"
258       ${WXWINDOWS_POSSIBLE_LIB_PATHS}
259       DOC "wxWindows static debug regex library" )
260
261     FIND_LIBRARY(WXWINDOWS_STATIC_LIBRARY_REGEX
262       NAMES wxregex
263       PATHS
264       "${WXWINDOWS_ROOT_DIR}/lib/vc_lib"
265       ${WXWINDOWS_POSSIBLE_LIB_PATHS}
266       DOC "wxWindows static regex library" )
267
268
269
270     ## untested:
271     FIND_LIBRARY(WXWINDOWS_SHARED_LIBRARY_GL
272       NAMES wx_gl wxmsw_gl wxmsw26_gl
273       PATHS
274       "${WXWINDOWS_ROOT_DIR}/lib/vc_dll"
275       ${WXWINDOWS_POSSIBLE_LIB_PATHS}
276       DOC "wxWindows shared release build GL library" )
277
278     FIND_LIBRARY(WXWINDOWS_SHARED_DEBUG_LIBRARY_GL
279       NAMES wxd_gl wxmswd_gl wxmsw26d_gl
280       PATHS
281       "${WXWINDOWS_ROOT_DIR}/lib/vc_dll"
282       ${WXWINDOWS_POSSIBLE_LIB_PATHS}
283       DOC "wxWindows shared debug build GL library" )
284
285
286   ELSE (WXWINDOWS_USE_MONOLITHIC)
287     ## WX is built as multiple small pieces libraries instead of monolithic
288
289     ## DEPECATED (jw) replaced by more general WXWINDOWS_USE_MONOLITHIC ON/OFF
290     # OPTION(WXWINDOWS_SEPARATE_LIBS_BUILD "Is wxWindows build with separate libs?" OFF)
291
292     ## HACK: This is very dirty.
293     ## because the libs of a particular version are explicitly listed
294     ## and NOT searched/verified.
295     ## TODO:  Really search for each lib, then decide for
296     ## monolithic x debug x shared x GL (=16 combinations) for at least 18 libs
297     ## -->  about 288 combinations
298     ## thus we need a different approach so solve this correctly ...
299
300     MESSAGE(STATUS "Warning: You are trying to use wxWidgets without monolithic build (WXWINDOWS_SEPARATE_LIBS_BUILD). This is a HACK, libraries are not verified! (JW).")
301
302     SET(WXWINDOWS_STATIC_LIBS ${WXWINDOWS_STATIC_LIBS}
303       wxbase26
304       wxbase26_net
305       wxbase26_odbc
306       wxbase26_xml
307       wxmsw26_adv
308       wxmsw26_core
309       wxmsw26_dbgrid
310       wxmsw26_gl
311       wxmsw26_html
312       wxmsw26_media
313       wxmsw26_qa
314       wxmsw26_xrc
315       wxexpat
316       wxjpeg
317       wxpng
318       wxregex
319       wxtiff
320       wxzlib
321       comctl32
322       rpcrt4
323       wsock32
324       )
325     ## HACK: feed in to optimized / debug libaries if both were FOUND.
326     SET(WXWINDOWS_STATIC_DEBUG_LIBS ${WXWINDOWS_STATIC_DEBUG_LIBS}
327       wxbase26d
328       wxbase26d_net
329       wxbase26d_odbc
330       wxbase26d_xml
331       wxmsw26d_adv
332       wxmsw26d_core
333       wxmsw26d_dbgrid
334       wxmsw26d_gl
335       wxmsw26d_html
336       wxmsw26d_media
337       wxmsw26d_qa
338       wxmsw26d_xrc
339       wxexpatd
340       wxjpegd
341       wxpngd
342       wxregexd
343       wxtiffd
344       wxzlibd
345       comctl32
346       rpcrt4
347       wsock32
348       )
349   ENDIF (WXWINDOWS_USE_MONOLITHIC)
350
351
352   ##
353   ## now we should have found all WX libs available on the system.
354   ## let the user decide which of the available onse to use.
355   ##
356
357   ## if there is at least one shared lib available
358   ## let user choose wether to use shared or static wxwindows libs
359   IF(WXWINDOWS_SHARED_LIBRARY OR WXWINDOWS_SHARED_DEBUG_LIBRARY)
360     ## default value OFF because wxWindows MSVS default build is static
361     OPTION(WXWINDOWS_USE_SHARED_LIBS
362       "Use shared versions (dll) of wxWindows libraries?" OFF)
363     MARK_AS_ADVANCED(WXWINDOWS_USE_SHARED_LIBS)
364   ENDIF(WXWINDOWS_SHARED_LIBRARY OR WXWINDOWS_SHARED_DEBUG_LIBRARY)
365
366   ## add system libraries wxwindows always seems to depend on
367   SET(WXWINDOWS_LIBRARIES ${WXWINDOWS_LIBRARIES}
368     comctl32
369     rpcrt4
370     wsock32
371     )
372
373   IF (NOT WXWINDOWS_USE_SHARED_LIBS)
374     SET(WXWINDOWS_LIBRARIES ${WXWINDOWS_LIBRARIES}
375       ##  these ones dont seem required, in particular  ctl3d32 is not neccesary (Jan Woetzel 07/2003)
376       #   ctl3d32
377       debug ${WXWINDOWS_STATIC_DEBUG_LIBRARY_ZLIB}   optimized ${WXWINDOWS_STATIC_LIBRARY_ZLIB}
378       debug ${WXWINDOWS_STATIC_DEBUG_LIBRARY_REGEX}  optimized ${WXWINDOWS_STATIC_LIBRARY_REGEX}
379       debug ${WXWINDOWS_STATIC_DEBUG_LIBRARY_PNG}    optimized ${WXWINDOWS_STATIC_LIBRARY_PNG}
380       debug ${WXWINDOWS_STATIC_DEBUG_LIBRARY_JPEG}   optimized ${WXWINDOWS_STATIC_LIBRARY_JPEG}
381       debug ${WXWINDOWS_STATIC_DEBUG_LIBRARY_TIFF}   optimized ${WXWINDOWS_STATIC_LIBRARY_TIFF}
382       )
383   ENDIF (NOT WXWINDOWS_USE_SHARED_LIBS)
384
385   ## opengl/glu: TODO/FIXME: better use FindOpenGL.cmake here
386   ## assume release versions of glu an dopengl, here.
387   IF (WXWINDOWS_USE_GL)
388     SET(WXWINDOWS_LIBRARIES ${WXWINDOWS_LIBRARIES}
389       opengl32
390       glu32 )
391   ENDIF (WXWINDOWS_USE_GL)
392
393   ##
394   ## select between use of  shared or static wxWindows lib then set libs to use
395   ## for debug and optimized build.  so the user can switch between debug and
396   ## release build e.g. within MS Visual Studio without running cmake with a
397   ## different build directory again.
398   ##
399   ## then add the build specific include dir for wx/setup.h
400   ##
401
402   IF(WXWINDOWS_USE_SHARED_LIBS)
403     ##MESSAGE("DBG wxWindows use shared lib selected.")
404     ## assume that both builds use the same setup(.h) for simplicity
405
406     ## shared: both wx (debug and release) found?
407     ## assume that both builds use the same setup(.h) for simplicity
408     IF(WXWINDOWS_SHARED_DEBUG_LIBRARY AND WXWINDOWS_SHARED_LIBRARY)
409       ##MESSAGE("DBG wx shared: debug and optimized found.")
410       FIND_PATH(WXWINDOWS_INCLUDE_DIR_SETUPH  wx/setup.h
411         ${WXWINDOWS_ROOT_DIR}/lib/mswdlld
412         ${WXWINDOWS_ROOT_DIR}/lib/mswdll
413         ${WXWINDOWS_ROOT_DIR}/lib/vc_dll/mswd
414         ${WXWINDOWS_ROOT_DIR}/lib/vc_dll/msw )
415       SET(WXWINDOWS_LIBRARIES ${WXWINDOWS_LIBRARIES}
416         debug     ${WXWINDOWS_SHARED_DEBUG_LIBRARY}
417         optimized ${WXWINDOWS_SHARED_LIBRARY} )
418       IF (WXWINDOWS_USE_GL)
419         SET(WXWINDOWS_LIBRARIES ${WXWINDOWS_LIBRARIES}
420           debug     ${WXWINDOWS_SHARED_DEBUG_LIBRARY_GL}
421           optimized ${WXWINDOWS_SHARED_LIBRARY_GL} )
422       ENDIF (WXWINDOWS_USE_GL)
423     ENDIF(WXWINDOWS_SHARED_DEBUG_LIBRARY AND WXWINDOWS_SHARED_LIBRARY)
424
425     ## shared: only debug wx lib found?
426     IF(WXWINDOWS_SHARED_DEBUG_LIBRARY)
427       IF(NOT WXWINDOWS_SHARED_LIBRARY)
428         ##MESSAGE("DBG wx shared: debug (but no optimized) found.")
429         FIND_PATH(WXWINDOWS_INCLUDE_DIR_SETUPH  wx/setup.h
430           ${WXWINDOWS_ROOT_DIR}/lib/mswdlld
431           ${WXWINDOWS_ROOT_DIR}/lib/vc_dll/mswd  )
432         SET(WXWINDOWS_LIBRARIES ${WXWINDOWS_LIBRARIES}
433           ${WXWINDOWS_SHARED_DEBUG_LIBRARY} )
434         IF (WXWINDOWS_USE_GL)
435           SET(WXWINDOWS_LIBRARIES ${WXWINDOWS_LIBRARIES}
436             ${WXWINDOWS_SHARED_DEBUG_LIBRARY_GL} )
437         ENDIF (WXWINDOWS_USE_GL)
438       ENDIF(NOT WXWINDOWS_SHARED_LIBRARY)
439     ENDIF(WXWINDOWS_SHARED_DEBUG_LIBRARY)
440
441     ## shared: only release wx lib found?
442     IF(NOT WXWINDOWS_SHARED_DEBUG_LIBRARY)
443       IF(WXWINDOWS_SHARED_LIBRARY)
444         ##MESSAGE("DBG wx shared: optimized (but no debug) found.")
445         FIND_PATH(WXWINDOWS_INCLUDE_DIR_SETUPH  wx/setup.h
446           ${WXWINDOWS_ROOT_DIR}/lib/mswdll
447           ${WXWINDOWS_ROOT_DIR}/lib/vc_dll/msw  )
448         SET(WXWINDOWS_LIBRARIES ${WXWINDOWS_LIBRARIES}
449           ${WXWINDOWS_SHARED_DEBUG_LIBRARY} )
450         IF (WXWINDOWS_USE_GL)
451           SET(WXWINDOWS_LIBRARIES ${WXWINDOWS_LIBRARIES}
452             ${WXWINDOWS_SHARED_DEBUG_LIBRARY_GL} )
453         ENDIF (WXWINDOWS_USE_GL)
454       ENDIF(WXWINDOWS_SHARED_LIBRARY)
455     ENDIF(NOT WXWINDOWS_SHARED_DEBUG_LIBRARY)
456
457     ## shared: none found?
458     IF(NOT WXWINDOWS_SHARED_DEBUG_LIBRARY)
459       IF(NOT WXWINDOWS_SHARED_LIBRARY)
460         MESSAGE(STATUS
461           "No shared wxWindows lib found, but WXWINDOWS_USE_SHARED_LIBS=${WXWINDOWS_USE_SHARED_LIBS}.")
462       ENDIF(NOT WXWINDOWS_SHARED_LIBRARY)
463     ENDIF(NOT WXWINDOWS_SHARED_DEBUG_LIBRARY)
464
465     #########################################################################################
466   ELSE(WXWINDOWS_USE_SHARED_LIBS)
467
468     ##jw: DEPRECATED IF(NOT WXWINDOWS_SEPARATE_LIBS_BUILD)
469
470     ## static: both wx (debug and release) found?
471     ## assume that both builds use the same setup(.h) for simplicity
472     IF(WXWINDOWS_STATIC_DEBUG_LIBRARY AND WXWINDOWS_STATIC_LIBRARY)
473       ##MESSAGE("DBG wx static: debug and optimized found.")
474       FIND_PATH(WXWINDOWS_INCLUDE_DIR_SETUPH  wx/setup.h
475         ${WXWINDOWS_ROOT_DIR}/lib/mswd
476         ${WXWINDOWS_ROOT_DIR}/lib/msw
477         ${WXWINDOWS_ROOT_DIR}/lib/vc_lib/mswd
478         ${WXWINDOWS_ROOT_DIR}/lib/vc_lib/msw )
479       SET(WXWINDOWS_LIBRARIES ${WXWINDOWS_LIBRARIES}
480         debug     ${WXWINDOWS_STATIC_DEBUG_LIBRARY}
481         optimized ${WXWINDOWS_STATIC_LIBRARY} )
482       IF (WXWINDOWS_USE_GL)
483         SET(WXWINDOWS_LIBRARIES ${WXWINDOWS_LIBRARIES}
484           debug     ${WXWINDOWS_STATIC_DEBUG_LIBRARY_GL}
485           optimized ${WXWINDOWS_STATIC_LIBRARY_GL} )
486       ENDIF (WXWINDOWS_USE_GL)
487     ENDIF(WXWINDOWS_STATIC_DEBUG_LIBRARY AND WXWINDOWS_STATIC_LIBRARY)
488
489     ## static: only debug wx lib found?
490     IF(WXWINDOWS_STATIC_DEBUG_LIBRARY)
491       IF(NOT WXWINDOWS_STATIC_LIBRARY)
492         ##MESSAGE("DBG wx static: debug (but no optimized) found.")
493         FIND_PATH(WXWINDOWS_INCLUDE_DIR_SETUPH  wx/setup.h
494           ${WXWINDOWS_ROOT_DIR}/lib/mswd
495           ${WXWINDOWS_ROOT_DIR}/lib/vc_lib/mswd  )
496         SET(WXWINDOWS_LIBRARIES ${WXWINDOWS_LIBRARIES}
497           ${WXWINDOWS_STATIC_DEBUG_LIBRARY} )
498         IF (WXWINDOWS_USE_GL)
499           SET(WXWINDOWS_LIBRARIES ${WXWINDOWS_LIBRARIES}
500             ${WXWINDOWS_STATIC_DEBUG_LIBRARY_GL} )
501         ENDIF (WXWINDOWS_USE_GL)
502       ENDIF(NOT WXWINDOWS_STATIC_LIBRARY)
503     ENDIF(WXWINDOWS_STATIC_DEBUG_LIBRARY)
504
505     ## static: only release wx lib found?
506     IF(NOT WXWINDOWS_STATIC_DEBUG_LIBRARY)
507       IF(WXWINDOWS_STATIC_LIBRARY)
508         ##MESSAGE("DBG wx static: optimized (but no debug) found.")
509         FIND_PATH(WXWINDOWS_INCLUDE_DIR_SETUPH  wx/setup.h
510           ${WXWINDOWS_ROOT_DIR}/lib/msw
511           ${WXWINDOWS_ROOT_DIR}/lib/vc_lib/msw )
512         SET(WXWINDOWS_LIBRARIES ${WXWINDOWS_LIBRARIES}
513           ${WXWINDOWS_STATIC_LIBRARY} )
514         IF (WXWINDOWS_USE_GL)
515           SET(WXWINDOWS_LIBRARIES ${WXWINDOWS_LIBRARIES}
516             ${WXWINDOWS_STATIC_LIBRARY_GL} )
517         ENDIF (WXWINDOWS_USE_GL)
518       ENDIF(WXWINDOWS_STATIC_LIBRARY)
519     ENDIF(NOT WXWINDOWS_STATIC_DEBUG_LIBRARY)
520
521     ## static: none found?
522     IF(NOT WXWINDOWS_STATIC_DEBUG_LIBRARY AND NOT WXWINDOWS_SEPARATE_LIBS_BUILD)
523       IF(NOT WXWINDOWS_STATIC_LIBRARY)
524         MESSAGE(STATUS
525           "No static wxWindows lib found, but WXWINDOWS_USE_SHARED_LIBS=${WXWINDOWS_USE_SHARED_LIBS}.")
526       ENDIF(NOT WXWINDOWS_STATIC_LIBRARY)
527     ENDIF(NOT WXWINDOWS_STATIC_DEBUG_LIBRARY AND NOT WXWINDOWS_SEPARATE_LIBS_BUILD)
528   ENDIF(WXWINDOWS_USE_SHARED_LIBS)
529
530
531   ## not neccessary in wxWindows 2.4.1 and 2.6.2
532   ## but it may fix a previous bug, see
533   ## http://lists.wxwindows.org/cgi-bin/ezmlm-cgi?8:mss:37574:200305:mpdioeneabobmgjenoap
534   OPTION(WXWINDOWS_SET_DEFINITIONS "Set additional defines for wxWindows" OFF)
535   MARK_AS_ADVANCED(WXWINDOWS_SET_DEFINITIONS)
536   IF (WXWINDOWS_SET_DEFINITIONS)
537     SET(WXWINDOWS_DEFINITIONS "-DWINVER=0x400")
538   ELSE (WXWINDOWS_SET_DEFINITIONS)
539     # clear:
540     SET(WXWINDOWS_DEFINITIONS "")
541   ENDIF (WXWINDOWS_SET_DEFINITIONS)
542
543
544
545   ## Find the include directories for wxwindows
546   ## the first, build specific for wx/setup.h was determined before.
547   ## add inc dir for general for "wx/wx.h"
548   FIND_PATH(WXWINDOWS_INCLUDE_DIR  wx/wx.h
549     "${WXWINDOWS_ROOT_DIR}/include" )
550   ## append the build specific include dir for wx/setup.h:
551   IF (WXWINDOWS_INCLUDE_DIR_SETUPH)
552     SET(WXWINDOWS_INCLUDE_DIR ${WXWINDOWS_INCLUDE_DIR} ${WXWINDOWS_INCLUDE_DIR_SETUPH} )
553   ENDIF (WXWINDOWS_INCLUDE_DIR_SETUPH)
554
555
556
557   MARK_AS_ADVANCED(
558     WXWINDOWS_ROOT_DIR
559     WXWINDOWS_INCLUDE_DIR
560     WXWINDOWS_INCLUDE_DIR_SETUPH
561     WXWINDOWS_STATIC_LIBRARY
562     WXWINDOWS_STATIC_LIBRARY_GL
563     WXWINDOWS_STATIC_DEBUG_LIBRARY
564     WXWINDOWS_STATIC_DEBUG_LIBRARY_GL
565     WXWINDOWS_STATIC_LIBRARY_ZLIB
566     WXWINDOWS_STATIC_DEBUG_LIBRARY_ZLIB
567     WXWINDOWS_STATIC_LIBRARY_REGEX
568     WXWINDOWS_STATIC_DEBUG_LIBRARY_REGEX
569     WXWINDOWS_STATIC_LIBRARY_PNG
570     WXWINDOWS_STATIC_DEBUG_LIBRARY_PNG
571     WXWINDOWS_STATIC_LIBRARY_JPEG
572     WXWINDOWS_STATIC_DEBUG_LIBRARY_JPEG
573     WXWINDOWS_STATIC_DEBUG_LIBRARY_TIFF
574     WXWINDOWS_STATIC_LIBRARY_TIFF
575     WXWINDOWS_SHARED_LIBRARY
576     WXWINDOWS_SHARED_DEBUG_LIBRARY
577     WXWINDOWS_SHARED_LIBRARY_GL
578     WXWINDOWS_SHARED_DEBUG_LIBRARY_GL
579     )
580
581
582 ELSE(WIN32_STYLE_FIND)
583
584   IF (UNIX_STYLE_FIND)
585     ## ######################################################################
586     ##
587     ## UNIX/Linux specific:
588     ##
589     ## use backquoted wx-config to query and set flags and libs:
590     ## 06/2003 Jan Woetzel
591     ##
592
593     OPTION(WXWINDOWS_USE_SHARED_LIBS "Use shared versions (.so) of wxWindows libraries" ON)
594     MARK_AS_ADVANCED(WXWINDOWS_USE_SHARED_LIBS)
595
596     # JW removed option and force the develper th SET it.
597     # OPTION(WXWINDOWS_USE_GL "use wxWindows with GL support (use additional
598     # --gl-libs for wx-config)?" OFF)
599
600     # wx-config should be in your path anyhow, usually no need to set WXWIN or
601     # search in ../wx or ../../wx
602     FIND_PROGRAM(CMAKE_WXWINDOWS_WXCONFIG_EXECUTABLE wx-config
603       $ENV{WXWIN}
604       $ENV{WXWIN}/bin
605       ../wx/bin
606       ../../wx/bin )
607
608     # check wether wx-config was found:
609     IF(CMAKE_WXWINDOWS_WXCONFIG_EXECUTABLE)
610
611       # use shared/static wx lib?
612       # remember: always link shared to use systems GL etc. libs (no static
613       # linking, just link *against* static .a libs)
614       IF(WXWINDOWS_USE_SHARED_LIBS)
615         SET(WX_CONFIG_ARGS_LIBS "--libs")
616       ELSE(WXWINDOWS_USE_SHARED_LIBS)
617         SET(WX_CONFIG_ARGS_LIBS "--static --libs")
618       ENDIF(WXWINDOWS_USE_SHARED_LIBS)
619
620       # do we need additionial wx GL stuff like GLCanvas ?
621       IF(WXWINDOWS_USE_GL)
622         SET(WX_CONFIG_ARGS_LIBS "${WX_CONFIG_ARGS_LIBS} --gl-libs" )
623       ENDIF(WXWINDOWS_USE_GL)
624       ##MESSAGE("DBG: WX_CONFIG_ARGS_LIBS=${WX_CONFIG_ARGS_LIBS}===")
625
626       # set CXXFLAGS to be fed into CMAKE_CXX_FLAGS by the user:
627       IF (HAVE_ISYSTEM) # does the compiler support -isystem ?
628               IF (NOT APPLE) # -isystem seem sto be unsuppored on Mac
629                 IF(CMAKE_COMPILER_IS_GNUCC AND CMAKE_COMPILER_IS_GNUCXX )
630             IF (CMAKE_CXX_COMPILER MATCHES g\\+\\+)
631               SET(CMAKE_WXWINDOWS_CXX_FLAGS "`${CMAKE_WXWINDOWS_WXCONFIG_EXECUTABLE} --cxxflags|sed -e s/-I/-isystem/g`")
632             ELSE(CMAKE_CXX_COMPILER MATCHES g\\+\\+)
633               SET(CMAKE_WXWINDOWS_CXX_FLAGS "`${CMAKE_WXWINDOWS_WXCONFIG_EXECUTABLE} --cxxflags`")
634             ENDIF(CMAKE_CXX_COMPILER MATCHES g\\+\\+)
635                 ENDIF(CMAKE_COMPILER_IS_GNUCC AND CMAKE_COMPILER_IS_GNUCXX )
636               ENDIF (NOT APPLE)
637       ENDIF (HAVE_ISYSTEM)
638       ##MESSAGE("DBG: for compilation:
639       ##CMAKE_WXWINDOWS_CXX_FLAGS=${CMAKE_WXWINDOWS_CXX_FLAGS}===")
640
641       # keep the back-quoted string for clarity
642       SET(WXWINDOWS_LIBRARIES "`${CMAKE_WXWINDOWS_WXCONFIG_EXECUTABLE} ${WX_CONFIG_ARGS_LIBS}`")
643       ##MESSAGE("DBG2: for linking:
644       ##WXWINDOWS_LIBRARIES=${WXWINDOWS_LIBRARIES}===")
645
646       # evaluate wx-config output to separate linker flags and linkdirs for
647       # rpath:
648       EXEC_PROGRAM(${CMAKE_WXWINDOWS_WXCONFIG_EXECUTABLE}
649         ARGS ${WX_CONFIG_ARGS_LIBS}
650         OUTPUT_VARIABLE WX_CONFIG_LIBS )
651
652       ## extract linkdirs (-L) for rpath
653       ## use regular expression to match wildcard equivalent "-L*<endchar>"
654       ## with <endchar> is a space or a semicolon
655       STRING(REGEX MATCHALL "[-][L]([^ ;])+" WXWINDOWS_LINK_DIRECTORIES_WITH_PREFIX "${WX_CONFIG_LIBS}" )
656       # MESSAGE("DBG  WXWINDOWS_LINK_DIRECTORIES_WITH_PREFIX=${WXWINDOWS_LINK_DIRECTORIES_WITH_PREFIX}")
657
658       ## remove prefix -L because we need the pure directory for LINK_DIRECTORIES
659       ## replace -L by ; because the separator seems to be lost otherwise (bug or
660       ## feature?)
661       IF(WXWINDOWS_LINK_DIRECTORIES_WITH_PREFIX)
662         STRING(REGEX REPLACE "[-][L]" ";" WXWINDOWS_LINK_DIRECTORIES ${WXWINDOWS_LINK_DIRECTORIES_WITH_PREFIX} )
663         # MESSAGE("DBG  WXWINDOWS_LINK_DIRECTORIES=${WXWINDOWS_LINK_DIRECTORIES}")
664       ENDIF(WXWINDOWS_LINK_DIRECTORIES_WITH_PREFIX)
665
666
667       ## replace space separated string by semicolon separated vector to make it
668       ## work with LINK_DIRECTORIES
669       SEPARATE_ARGUMENTS(WXWINDOWS_LINK_DIRECTORIES)
670
671       MARK_AS_ADVANCED(
672         CMAKE_WXWINDOWS_CXX_FLAGS
673         WXWINDOWS_INCLUDE_DIR
674         WXWINDOWS_LIBRARIES
675         CMAKE_WXWINDOWS_WXCONFIG_EXECUTABLE
676         )
677
678
679       ## we really need wx-config...
680     ELSE(CMAKE_WXWINDOWS_WXCONFIG_EXECUTABLE)
681       MESSAGE(STATUS "Cannot find wx-config anywhere on the system. Please put the file into your path or specify it in CMAKE_WXWINDOWS_WXCONFIG_EXECUTABLE.")
682       MARK_AS_ADVANCED(CMAKE_WXWINDOWS_WXCONFIG_EXECUTABLE)
683     ENDIF(CMAKE_WXWINDOWS_WXCONFIG_EXECUTABLE)
684
685
686
687   ELSE(UNIX_STYLE_FIND)
688     MESSAGE(STATUS "FindwxWindows.cmake:  Platform unknown/unsupported by FindwxWindows.cmake. It's neither WIN32 nor UNIX")
689   ENDIF(UNIX_STYLE_FIND)
690 ENDIF(WIN32_STYLE_FIND)
691
692
693 IF(WXWINDOWS_LIBRARIES)
694   IF(WXWINDOWS_INCLUDE_DIR OR CMAKE_WXWINDOWS_CXX_FLAGS)
695     ## found all we need.
696     SET(WXWINDOWS_FOUND 1)
697
698     ## set deprecated variables for backward compatibility:
699     SET(CMAKE_WX_CAN_COMPILE   ${WXWINDOWS_FOUND})
700     SET(WXWINDOWS_LIBRARY     ${WXWINDOWS_LIBRARIES})
701     SET(WXWINDOWS_INCLUDE_PATH ${WXWINDOWS_INCLUDE_DIR})
702     SET(WXWINDOWS_LINK_DIRECTORIES ${WXWINDOWS_LINK_DIRECTORIES})
703     SET(CMAKE_WX_CXX_FLAGS     ${CMAKE_WXWINDOWS_CXX_FLAGS})
704
705   ENDIF(WXWINDOWS_INCLUDE_DIR OR CMAKE_WXWINDOWS_CXX_FLAGS)
706 ENDIF(WXWINDOWS_LIBRARIES)