1
0

FindwxWindows.cmake 25 KB

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