FindwxWindows.cmake 25 KB

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