summaryrefslogtreecommitdiffstats
path: root/Source/WXDialog/bin/FindwxWin.cmake
diff options
context:
space:
mode:
Diffstat (limited to 'Source/WXDialog/bin/FindwxWin.cmake')
-rw-r--r--Source/WXDialog/bin/FindwxWin.cmake440
1 files changed, 440 insertions, 0 deletions
diff --git a/Source/WXDialog/bin/FindwxWin.cmake b/Source/WXDialog/bin/FindwxWin.cmake
new file mode 100644
index 0000000..67ef392
--- /dev/null
+++ b/Source/WXDialog/bin/FindwxWin.cmake
@@ -0,0 +1,440 @@
+##---------------------------------------------------------------------------
+## $RCSfile$
+## $Source$
+## $Revision$
+## $Date$
+##---------------------------------------------------------------------------
+## Author: Jorgen Bodde
+## Copyright: (c) Jorgen Bodde
+## License: wxWidgets License
+##---------------------------------------------------------------------------
+##
+## This module finds if wxWindows 2.5.x / 2.6.x is installed and determines
+## where the include files and seperate libraries are. It also determines what
+## the name of the library is.
+##
+## WARNING: Monolithic build support is not present here (it is not desired
+## by wxWidgets anyway). Also the shared DLL option is not yet present.
+##
+## Current working combinations are;
+## - Static debug and release libs
+## - Static unicode debug and release libs
+## - Static universal unicode debug and release libs
+## - Static unicode universal unicode debug and release libs
+##
+##
+## The linux part of this CMake file is unaltered and will always use because of
+## 'wx-config'. The linux part will not use the WX_LIB_IGNORE vars because of
+## the way wxWidgets is built and configured.
+##
+## This code sets the following variables:
+##
+## ------------------------------------------------------------------
+##
+## WXWINDOWS_FOUND = system has WxWindows (in desired config. build)
+##
+## WXWINDOWS_LIBRARIES = full path to the wxWindows libraries
+## on Unix/Linux with additional linker flags from
+## "wx-config --libs"
+##
+## CMAKE_WXWINDOWS_CXX_FLAGS = Unix compiler flags for wxWindows, essentially
+## "`wx-config --cxxflags`"
+##
+## WXWINDOWS_INCLUDE_DIR = where to find headers "wx/wx.h" "wx/setup.h"
+##
+## WXWINDOWS_LINK_DIRECTORIES = link directories, useful for rpath on Unix
+##
+## WXWINDOWS_DEFINITIONS = extra defines
+##
+
+IF( WIN32 )
+
+ ##
+ ## Find root path of wxWidgets, either in the registry or as environment var
+ ##
+
+ SET (WXWINDOWS_POSSIBLE_ROOT_PATHS
+ $ENV{WXWIN}
+ "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\wxWindows_is1;Inno Setup: App Path]" )
+
+ FIND_PATH(WXWIDGETS_PATH_ROOT include/wx/wx.h
+ ${WXWINDOWS_POSSIBLE_ROOT_PATHS} )
+
+ SET(WXWINDOWS_FOUND 0)
+ IF(NOT WXWIDGETS_PATH_ROOT)
+ MESSAGE(SEND_ERROR "wxWidgets root is not found. Please point out the wxWidgets root using the WXWIN environment var")
+ ENDIF(NOT WXWIDGETS_PATH_ROOT)
+
+ OPTION(WX_USE_DEBUG_ONLY "Only attempt to setup the debug libraries, ignore the release libraries." ON)
+
+ ## Find a multi library path, this is the path where the seperate libs are located
+ SET(WXMSW_SETUPH "wx/setup.h")
+
+ SET(WXDEBUG_POSTFIX "")
+ IF(WX_USE_DEBUG_ONLY)
+ SET(WXDEBUG_POSTFIX "d")
+ ENDIF(WX_USE_DEBUG_ONLY)
+
+ ## Try the VS compilation path
+ SET(WXWINDOWS_POSSIBLE_SETUPH
+ "${WXWIDGETS_PATH_ROOT}/lib/vc_lib/msw${WXDEBUG_POSTFIX}/${WXMSW_SETUPH}")
+
+ ## Try borland and VS7 path
+ IF(EXISTS ${WXWINDOWS_POSSIBLE_SETUPH})
+ SET(WXWINDOWS_POSSIBLE_MULTILIB_PATHS
+ "${WXWIDGETS_PATH_ROOT}/lib/vc_lib")
+ ELSE(EXISTS ${WXWINDOWS_POSSIBLE_SETUPH})
+ ## Try the borland path
+ SET(WXWINDOWS_POSSIBLE_SETUPH
+ "${WXWIDGETS_PATH_ROOT}/lib/bcc_lib/msw${WXDEBUG_POSTFIX}/${WXMSW_SETUPH}")
+ IF(EXISTS ${WXWINDOWS_POSSIBLE_SETUPH})
+ SET(WXWINDOWS_POSSIBLE_MULTILIB_PATHS
+ "${WXWIDGETS_PATH_ROOT}/lib/bcc_lib")
+ ELSE(EXISTS ${WXWINDOWS_POSSIBLE_SETUPH})
+ MESSAGE(SEND_ERROR "wxWidgets libraries are not found.")
+ ENDIF(EXISTS ${WXWINDOWS_POSSIBLE_SETUPH})
+ ENDIF(EXISTS ${WXWINDOWS_POSSIBLE_SETUPH})
+
+ ## Ask user what config should be used, after asking, verify if it will work
+ OPTION(WX_LINK_AGAINST_UNIVERSAL "Use wxWidgets universal builds" OFF)
+ OPTION(WX_LINK_AGAINST_UNICODE "Use wxWidgets unicode builds" OFF)
+
+ SET(WXMSW_SETUPH "wx/setup.h")
+
+ SET(WX_RELEASE 0)
+ SET(WX_DEBUG 0)
+
+ SET(WX_RELEASE_UNI 0)
+ SET(WX_DEBUG_UNI 0)
+
+ SET(WX_RELEASE_UNIV 0)
+ SET(WX_DEBUG_UNIV 0)
+
+ SET(WX_RELEASE_UNIV_UNI 0)
+ SET(WX_DEBUG_UNIV_UNI 0)
+
+ SET(WX_FOUND_VALID_CONF 0)
+
+ ## Scan for wxWidgets static multilib release
+ IF(EXISTS "${WXWINDOWS_POSSIBLE_MULTILIB_PATHS}/msw/${WXMSW_SETUPH}")
+ SET(WX_FOUND_VALID_CONF 1)
+ SET(WX_RELEASE 1)
+ SET(WX_RELEASE_SETUPH ${WXWINDOWS_POSSIBLE_MULTILIB_PATHS}/msw/${WXMSW_SETUPH} )
+ ENDIF(EXISTS "${WXWINDOWS_POSSIBLE_MULTILIB_PATHS}/msw/${WXMSW_SETUPH}")
+
+ ## Scan for wxWidgets static multilib debug
+ IF(EXISTS "${WXWINDOWS_POSSIBLE_MULTILIB_PATHS}/mswd/${WXMSW_SETUPH}")
+ SET(WX_FOUND_VALID_CONF 1)
+ SET(WX_DEBUG 1)
+ SET(WX_DEBUG_SETUPH ${WXWINDOWS_POSSIBLE_MULTILIB_PATHS}/mswd/${WXMSW_SETUPH} )
+ ENDIF(EXISTS "${WXWINDOWS_POSSIBLE_MULTILIB_PATHS}/mswd/${WXMSW_SETUPH}")
+
+ ## Scan for wxWidgets multilib unicode
+ IF(EXISTS "${WXWINDOWS_POSSIBLE_MULTILIB_PATHS}/mswu/${WXMSW_SETUPH}")
+ SET(WX_FOUND_VALID_CONF 1)
+ SET(WX_RELEASE_UNI 1)
+ SET(WX_RELEASE_UNI_SETUPH ${WXWINDOWS_POSSIBLE_MULTILIB_PATHS}/mswu/${WXMSW_SETUPH} )
+ ENDIF(EXISTS "${WXWINDOWS_POSSIBLE_MULTILIB_PATHS}/mswu/${WXMSW_SETUPH}")
+
+ ## Scan for wxWidgets multilib unicode debug
+ IF(EXISTS "${WXWINDOWS_POSSIBLE_MULTILIB_PATHS}/mswud/${WXMSW_SETUPH}")
+ SET(WX_FOUND_VALID_CONF 1)
+ SET(WX_DEBUG_UNI 1)
+ SET(WX_DEBUG_UNI_SETUPH ${WXWINDOWS_POSSIBLE_MULTILIB_PATHS}/mswu/${WXMSW_SETUPH} )
+ ENDIF(EXISTS "${WXWINDOWS_POSSIBLE_MULTILIB_PATHS}/mswud/${WXMSW_SETUPH}")
+
+ ## Scan for wxWidgets multilib universal
+ IF(EXISTS "${WXWINDOWS_POSSIBLE_MULTILIB_PATHS}/mswuniv/${WXMSW_SETUPH}")
+ SET(WX_FOUND_VALID_CONF 1)
+ SET(WX_RELEASE_UNIV 1)
+ SET(WX_RELEASE_UNIV_SETUPH ${WXWINDOWS_POSSIBLE_MULTILIB_PATHS}/mswuniv/${WXMSW_SETUPH} )
+ ENDIF(EXISTS "${WXWINDOWS_POSSIBLE_MULTILIB_PATHS}/mswuniv/${WXMSW_SETUPH}")
+
+ ## Scan for wxWidgets multilib universal debug
+ IF(EXISTS "${WXWINDOWS_POSSIBLE_MULTILIB_PATHS}/mswunivd/${WXMSW_SETUPH}")
+ SET(WX_FOUND_VALID_CONF 1)
+ SET(WX_DEBUG_UNIV 1)
+ SET(WX_DEBUG_UNIV_SETUPH ${WXWINDOWS_POSSIBLE_MULTILIB_PATHS}/mswunivd/${WXMSW_SETUPH} )
+ ENDIF(EXISTS "${WXWINDOWS_POSSIBLE_MULTILIB_PATHS}/mswunivd/${WXMSW_SETUPH}")
+
+ ## Scan for wxWidgets multilib universal unicode
+ IF(EXISTS "${WXWINDOWS_POSSIBLE_MULTILIB_PATHS}/mswunivu/${WXMSW_SETUPH}")
+ SET(WX_FOUND_VALID_CONF 1)
+ SET(WX_RELEASE_UNIV_UNI 1)
+ SET(WX_RELEASE_UNIV_UNI_SETUPH ${WXWINDOWS_POSSIBLE_MULTILIB_PATHS}/mswunivu/${WXMSW_SETUPH} )
+ ENDIF(EXISTS "${WXWINDOWS_POSSIBLE_MULTILIB_PATHS}/mswunivu/${WXMSW_SETUPH}")
+
+ ## Scan for wxWidgets multilib universal unicode debug
+ IF(EXISTS "${WXWINDOWS_POSSIBLE_MULTILIB_PATHS}/mswunivud/${WXMSW_SETUPH}")
+ SET(WX_FOUND_VALID_CONF 1)
+ SET(WX_DEBUG_UNIV_UNI 1)
+ SET(WX_DEBUG_UNIV_UNI_SETUPH ${WXWINDOWS_POSSIBLE_MULTILIB_PATHS}/mswunivud/${WXMSW_SETUPH} )
+ ENDIF(EXISTS "${WXWINDOWS_POSSIBLE_MULTILIB_PATHS}/mswunivud/${WXMSW_SETUPH}")
+
+ ## If no valid config is found, mention this
+ IF(NOT WX_FOUND_VALID_CONF)
+ MESSAGE(SEND_ERROR "Did not found a valid setup.h for any library. Please compile your wxWidgets libraries first")
+ ENDIF(NOT WX_FOUND_VALID_CONF)
+
+ ## Search for wx version automatically
+ SET (WXVERSION "")
+
+ SET(WXLIBS
+ "${WXWINDOWS_POSSIBLE_MULTILIB_PATHS}/wxbase25.lib"
+ "${WXWINDOWS_POSSIBLE_MULTILIB_PATHS}/wxbase25d.lib"
+ "${WXWINDOWS_POSSIBLE_MULTILIB_PATHS}/wxbase25u.lib"
+ "${WXWINDOWS_POSSIBLE_MULTILIB_PATHS}/wxbase25ud.lib"
+ "${WXWINDOWS_POSSIBLE_MULTILIB_PATHS}/wxmswuniv25_core.lib"
+ "${WXWINDOWS_POSSIBLE_MULTILIB_PATHS}/wxmswuniv25d_core.lib"
+ "${WXWINDOWS_POSSIBLE_MULTILIB_PATHS}/wxmswuniv25u_core.lib"
+ "${WXWINDOWS_POSSIBLE_MULTILIB_PATHS}/wxmswuniv25ud_core.lib" )
+
+ FOREACH(WXLIB ${WXLIBS})
+ IF(EXISTS "${WXLIB}")
+ SET(WXVERSION "25")
+ ENDIF(EXISTS "${WXLIB}")
+ ENDFOREACH(WXLIB ${WXLIBS})
+
+ IF(NOT WXLIB)
+ SET(WXLIBS
+ "${WXWINDOWS_POSSIBLE_MULTILIB_PATHS}/wxbase26.lib"
+ "${WXWINDOWS_POSSIBLE_MULTILIB_PATHS}/wxbase26d.lib"
+ "${WXWINDOWS_POSSIBLE_MULTILIB_PATHS}/wxbase26u.lib"
+ "${WXWINDOWS_POSSIBLE_MULTILIB_PATHS}/wxbase26ud.lib"
+ "${WXWINDOWS_POSSIBLE_MULTILIB_PATHS}/wxmswuniv26_core.lib"
+ "${WXWINDOWS_POSSIBLE_MULTILIB_PATHS}/wxmswuniv26d_core.lib"
+ "${WXWINDOWS_POSSIBLE_MULTILIB_PATHS}/wxmswuniv26u_core.lib"
+ "${WXWINDOWS_POSSIBLE_MULTILIB_PATHS}/wxmswuniv26ud_core.lib")
+
+ FOREACH(WXLIB ${WXLIBS})
+ IF(EXISTS "${WXLIB}")
+ SET(WXVERSION "26")
+ ENDIF(EXISTS "${WXLIB}")
+ ENDFOREACH(WXLIB ${WXLIBS})
+ ENDIF(NOT WXLIB)
+
+ IF(NOT WXVERSION)
+ MESSAGE(SEND_ERROR "There are no suitable wxWidgets libraries found (monolithic builds are no longer supported")
+ ENDIF(NOT WXVERSION)
+
+ ##
+ ## Verify unicode universal builds
+ ##
+ IF(WX_LINK_AGAINST_UNIVERSAL AND WX_LINK_AGAINST_UNICODE)
+ IF(NOT WX_RELEASE_UNIV AND NOT WX_DEBUG_UNIV AND NOT WX_RELEASE_UNIV_UNI AND NOT WX_DEBUG_UNIV_UNI)
+ MESSAGE(SEND_ERROR "Not all wx${WXVERSION} universal unicode libraries are found (check debug and release builds)")
+ ENDIF(NOT WX_RELEASE_UNIV AND NOT WX_DEBUG_UNIV AND NOT WX_RELEASE_UNIV_UNI AND NOT WX_DEBUG_UNIV_UNI)
+ ELSE(WX_LINK_AGAINST_UNIVERSAL AND WX_LINK_AGAINST_UNICODE)
+ ##
+ ## Verify unicode builds
+ ##
+ IF(NOT WX_LINK_AGAINST_UNIVERSAL AND WX_LINK_AGAINST_UNICODE)
+ IF(NOT WX_RELEASE_UNI AND NOT WX_DEBUG_UNI)
+ MESSAGE(SEND_ERROR "Not all wx${WXVERSION} unicode libraries are found (check debug and release builds)")
+ ENDIF(NOT WX_RELEASE_UNI AND NOT WX_DEBUG_UNI)
+ ELSE(NOT WX_LINK_AGAINST_UNIVERSAL AND WX_LINK_AGAINST_UNICODE)
+ ##
+ ## Verify universal builds
+ ##
+ IF(WX_LINK_AGAINST_UNIVERSAL AND NOT WX_LINK_AGAINST_UNICODE)
+ IF(NOT WX_RELEASE_UNIV AND NOT WX_DEBUG_UNIV)
+ MESSAGE(SEND_ERROR "Not all wx${WXVERSION} universal libraries are found (check debug and release builds)")
+ ENDIF(NOT WX_RELEASE_UNIV AND NOT WX_DEBUG_UNIV)
+ ELSE(WX_LINK_AGAINST_UNIVERSAL AND NOT WX_LINK_AGAINST_UNICODE)
+ ##
+ ## Must be normal build now
+ ##
+ IF(NOT WX_RELEASE AND NOT WX_DEBUG)
+ MESSAGE(SEND_ERROR "Not all wx${WXVERSION} libraries are found (check debug and release builds)")
+ ENDIF(NOT WX_RELEASE AND NOT WX_DEBUG)
+ ENDIF(WX_LINK_AGAINST_UNIVERSAL AND NOT WX_LINK_AGAINST_UNICODE)
+ ENDIF(NOT WX_LINK_AGAINST_UNIVERSAL AND WX_LINK_AGAINST_UNICODE)
+ ENDIF(WX_LINK_AGAINST_UNIVERSAL AND WX_LINK_AGAINST_UNICODE)
+
+ ## Prepare the representation for the library
+ IF(WX_LINK_AGAINST_UNICODE)
+ SET(WXLIB_POST "u")
+ ELSE(WX_LINK_AGAINST_UNICODE)
+ SET(WXLIB_POST "")
+ ENDIF(WX_LINK_AGAINST_UNICODE)
+
+ ## Prepare for universal presentation
+ IF(WX_LINK_AGAINST_UNIVERSAL)
+ SET(WXLIB_UNIV "univ")
+ ELSE(WX_LINK_AGAINST_UNIVERSAL)
+ SET(WXLIB_UNIV "")
+ ENDIF(WX_LINK_AGAINST_UNIVERSAL)
+
+ FIND_PATH(WXWINDOWS_INCLUDE_DIR_SETUPH wx/setup.h
+ ${WXWIDGETS_PATH_ROOT}/lib/vc_lib/msw${WXLIB_UNIV}${WXLIB_POST}
+ ${WXWIDGETS_PATH_ROOT}/lib/vc_lib/msw${WXLIB_UNIV}${WXLIB_POST}d )
+
+ ## Find setup.h belonging to multi libs
+ SET(WXWINDOWS_LINK_DIRECTORIES
+ ${WXWINDOWS_POSSIBLE_MULTILIB_PATHS} )
+
+ ## Append all multi libs
+ SET (WXWINDOWS_STATIC_RELEASE_LIBS
+ optimized wxmsw${WXLIB_UNIV}${WXVERSION}${WXLIB_POST}_gl.lib
+ optimized wxmsw${WXLIB_UNIV}${WXVERSION}${WXLIB_POST}_xrc.lib
+ optimized wxbase${WXVERSION}${WXLIB_POST}_xml.lib
+ optimized wxmsw${WXLIB_UNIV}${WXVERSION}${WXLIB_POST}_qa.lib
+ optimized wxmsw${WXLIB_UNIV}${WXVERSION}${WXLIB_POST}_html.lib
+ optimized wxmsw${WXLIB_UNIV}${WXVERSION}${WXLIB_POST}_dbgrid.lib
+ optimized wxbase${WXVERSION}${WXLIB_POST}_odbc.lib
+ optimized wxmsw${WXLIB_UNIV}${WXVERSION}${WXLIB_POST}_media.lib
+ optimized wxmsw${WXLIB_UNIV}${WXVERSION}${WXLIB_POST}_adv.lib
+ optimized wxmsw${WXLIB_UNIV}${WXVERSION}${WXLIB_POST}_core.lib
+ optimized wxbase${WXVERSION}${WXLIB_POST}_net.lib
+ optimized wxbase${WXVERSION}${WXLIB_POST}.lib
+ optimized wxexpat.lib
+ optimized wxtiff.lib
+ optimized wxjpeg.lib
+ optimized wxpng.lib
+ optimized wxzlib.lib
+ optimized wxregex${WXLIB_POST}.lib )
+
+ SET (WXWINDOWS_STATIC_DEBUG_LIBS
+ debug wxmsw${WXLIB_UNIV}${WXVERSION}${WXLIB_POST}d_gl.lib
+ debug wxmsw${WXLIB_UNIV}${WXVERSION}${WXLIB_POST}d_xrc.lib
+ debug wxbase${WXVERSION}${WXLIB_POST}d_xml.lib
+ debug wxmsw${WXLIB_UNIV}${WXVERSION}${WXLIB_POST}d_qa.lib
+ debug wxmsw${WXLIB_UNIV}${WXVERSION}${WXLIB_POST}d_html.lib
+ debug wxmsw${WXLIB_UNIV}${WXVERSION}${WXLIB_POST}d_dbgrid.lib
+ debug wxbase${WXVERSION}${WXLIB_POST}d_odbc.lib
+ debug wxmsw${WXLIB_UNIV}${WXVERSION}${WXLIB_POST}d_media.lib
+ debug wxmsw${WXLIB_UNIV}${WXVERSION}${WXLIB_POST}d_adv.lib
+ debug wxmsw${WXLIB_UNIV}${WXVERSION}${WXLIB_POST}d_core.lib
+ debug wxbase${WXVERSION}${WXLIB_POST}d_net.lib
+ debug wxbase${WXVERSION}${WXLIB_POST}d.lib
+ debug wxexpatd.lib
+ debug wxtiffd.lib
+ debug wxjpegd.lib
+ debug wxpngd.lib
+ debug wxzlibd.lib
+ debug wxregex${WXLIB_POST}d.lib )
+
+ ## Add the common libraries to the big list
+ SET(CMAKE_WXWINDOWS_COMMON_LIBRARIES
+ winmm
+ comctl32
+ rpcrt4
+ wsock32 )
+
+ ## Set wxWidgets library in WXWINDOWS_LIBRARIES
+ SET(WXWINDOWS_LIBRARIES
+ ${CMAKE_WXWINDOWS_COMMON_LIBRARIES}
+ ${WXWINDOWS_STATIC_DEBUG_LIBS}
+ ${WXWINDOWS_STATIC_RELEASE_LIBS} )
+
+ ## Find include directory
+ SET (WXWINDOWS_POSSIBLE_INCLUDE_PATHS
+ "${WXWIDGETS_PATH_ROOT}/include" )
+
+ FIND_PATH(WXWIDGETS_INCLUDE_DIR wx/wx.h
+ ${WXWINDOWS_POSSIBLE_INCLUDE_PATHS} )
+
+ ## Blank the setup.h dir when this is not found
+ IF (NOT WXWINDOWS_INCLUDE_DIR_SETUPH)
+ SET(WXWINDOWS_INCLUDE_DIR_SETUPH "")
+ ENDIF (NOT WXWINDOWS_INCLUDE_DIR_SETUPH)
+
+ ## Set include paths
+ SET(WXWINDOWS_INCLUDE_DIR
+ ${WXWIDGETS_INCLUDE_DIR}
+ ${WXWINDOWS_INCLUDE_DIR_SETUPH} )
+
+ IF(WX_LINK_AGAINST_UNICODE)
+ SET(WX_UNICODE_FLAGS " -DUNICODE=1" )
+ ELSE(WX_LINK_AGAINST_UNICODE)
+ SET(WX_UNICODE_FLAGS "" )
+ ENDIF(WX_LINK_AGAINST_UNICODE)
+
+ SET(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG}${WX_UNICODE_FLAGS} -D__WXDEBUG__ -D__WXMSW__ -DWINVER=0x0400 -DwxUSE_BASE=1")
+
+ SET(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE}${WX_UNICODE_FLAGS} -D__WXMSW__ -DWINVER=0x0400 -DwxUSE_BASE=1" )
+
+ ## TODO: Once these tags work, this is more efficient
+ ##ADD_DEFINITIONS(debug )
+ ##ADD_DEFINITIONS(-D__WXMSW__ -DWINVER=0x0400 -DwxUSE_BASE=1 )
+
+ MARK_AS_ADVANCED(
+ WXWIDGETS_INCLUDE_DIR
+ WXWIDGETS_PATH_MONOLIB_DEBUG
+ WXWIDGETS_PATH_MONOLIB_RELEASE
+ WXWIDGETS_PATH_ROOT
+ WXWINDOWS_INCLUDE_DIR_SETUPH )
+
+ IF(WXWINDOWS_LINK_DIRECTORIES AND WXWINDOWS_LIBRARIES AND WXWINDOWS_INCLUDE_DIR)
+ SET(WXWINDOWS_FOUND 1)
+ ENDIF(WXWINDOWS_LINK_DIRECTORIES AND WXWINDOWS_LIBRARIES AND WXWINDOWS_INCLUDE_DIR)
+
+ELSE( WIN32 )
+
+ FIND_PROGRAM( CMAKE_WX_CONFIG wx-config ../wx/bin ../../wx/bin )
+ SET( CMAKE_WX_CXX_FLAGS "`${CMAKE_WX_CONFIG} --cxxflags`" )
+ SET( WXWINDOWS_LIBRARIES "`${CMAKE_WX_CONFIG} --libs`" )
+
+ IF(CMAKE_WX_CONFIG)
+ SET(WXWINDOWS_FOUND 1)
+ ENDIF(CMAKE_WX_CONFIG)
+
+ ## extract linkdirs (-L) for rpath
+ ## use regular expression to match wildcard equivalent "-L*<endchar>"
+ ## with <endchar> is a space or a semicolon
+ STRING(REGEX MATCHALL "[-][L]([^ ;])+" WXWINDOWS_LINK_DIRECTORIES_WITH_PREFIX "${WX_CONFIG_LIBS}" )
+ #MESSAGE("DBG WXWINDOWS_LINK_DIRECTORIES_WITH_PREFIX=${WXWINDOWS_LINK_DIRECTORIES_WITH_PREFIX}")
+
+ ## remove prefix -L because we need the pure directory for LINK_DIRECTORIES
+ ## replace -L by ; because the separator seems to be lost otherwise (bug or
+ ## feature?)
+ IF(WXWINDOWS_LINK_DIRECTORIES_WITH_PREFIX)
+ STRING(REGEX REPLACE "[-][L]" ";" WXWINDOWS_LINK_DIRECTORIES ${WXWINDOWS_LINK_DIRECTORIES_WITH_PREFIX} )
+ #MESSAGE("DBG WXWINDOWS_LINK_DIRECTORIES=${WXWINDOWS_LINK_DIRECTORIES}")
+ ENDIF(WXWINDOWS_LINK_DIRECTORIES_WITH_PREFIX)
+
+ ## replace space separated string by semicolon separated vector to make it
+ ## work with LINK_DIRECTORIES
+ SEPARATE_ARGUMENTS(WXWINDOWS_LINK_DIRECTORIES)
+
+ IF( CYGWIN OR MINGW )
+ GET_FILENAME_COMPONENT(WXWINDOWS_INSTALL_PATH ${CMAKE_WX_CONFIG} PATH)
+ SET( WXWINDOWS_INSTALL_PATH ${WXWINDOWS_INSTALL_PATH}/.. )
+ SET( WXWINDOWS_RC ${WXWINDOWS_INSTALL_PATH}/include/wx/msw/wx.rc )
+ ELSE( CYGWIN OR MINGW )
+ SET( WXWINDOWS_RC "" )
+ ENDIF( CYGWIN OR MINGW )
+ SET( WIN32GUI "" )
+
+ #keep debug settings as indicated by wx-config
+ #SET( WXWINDOWS_DEFINITIONS ${WXWINDOWS_DEFINITIONS} "${CMAKE_WX_CXX_FLAGS}" )
+ #IF( WXWINDOWS_USE_DEBUG )
+ # SET( WXWINDOWS_DEFINITIONS ${WXWINDOWS_DEFINITIONS} -ggdb )
+ #ENDIF( WXWINDOWS_USE_DEBUG )
+
+ IF( CYGWIN OR MINGW )
+ IF( CYGWIN )
+ SET( WXWINDOWS_DEFINITIONS ${WXWINDOWS_DEFINITIONS} -D__GNUWIN32__ -O2 -D_WIN32_IE=0x400 -MMD -Wall )
+ ENDIF( CYGWIN )
+ ELSE( CYGWIN OR MINGW )
+ # just in case `gtk-config --cflags`does not work
+ # SET( WXWINDOWS_INCLUDE_DIR ${WXWINDOWS_INCLUDE_DIR} /usr/include/gtk-2.0 /usr/include/gtk-2.0/include /usr/lib/gtk-2.0/include /usr/include/glib-2.0 /usr/lib/glib-2.0/include /usr/include/pango-1.0 /usr/include/atk-1.0 )
+ # What about FindGTK.cmake? and what if somebody uses wxMotif?
+ SET( CMAKE_WX_CXX_FLAGS "${CMAKE_WX_CXX_FLAGS} `gtk-config --cflags`" )
+ #find Xwindows
+ INCLUDE( ${CMAKE_ROOT}/Modules/FindX11.cmake )
+ SET( WXWINDOWS_INCLUDE_DIR ${WXWINDOWS_INCLUDE_DIR} ${X11_INCLUDE_DIR} )
+ ENDIF( CYGWIN OR MINGW )
+
+ENDIF( WIN32 )
+
+MARK_AS_ADVANCED(
+ CMAKE_WX_CXX_FLAGS
+)
+
+#MESSAGE( "${WXWINDOWS_LINK_DIRECTORIES}" )
+#MESSAGE( "${WXWINDOWS_LIBRARIES}" )
+#MESSAGE( "CMAKE_WX_CXX_FLAGS}" )
+#MESSAGE( "WXWINDOWS_INCLUDE_PATH}" )
+#MESSAGE( "WXWINDOWS_INCLUDE_DIR}" )
+#MESSAGE( "WXWINDOWS_DEFINITIONS}" )