| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464 |
- ##---------------------------------------------------------------------------
- ## $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 )
- IF(CMAKE_WX_CONFIG)
- SET(WXWINDOWS_FOUND 1)
- # run the config program to get cxxflags
- EXEC_PROGRAM(${CMAKE_WX_CONFIG} ARGS --cxxflags OUTPUT_VARIABLE
- CMAKE_WX_CXX_FLAGS RETURN_VALUE RET1)
- # run the config program to get the libs
- EXEC_PROGRAM(${CMAKE_WX_CONFIG} ARGS --libs OUTPUT_VARIABLE
- WXWINDOWS_LIBRARIES_TMP RETURN_VALUE RET2)
- # for libraries break things up into a ; separated variable
- SEPARATE_ARGUMENTS(WXWINDOWS_LIBRARIES_TMP)
- SET(LAST_FRAME 0)
- # now put the stuff back into WXWINDOWS_LIBRARIES
- # but combine all the -framework foo arguments back together
- FOREACH(arg ${WXWINDOWS_LIBRARIES_TMP})
- IF(${arg} MATCHES "-framework")
- SET(LAST_FRAME 1)
- ELSE(${arg} MATCHES "-framework")
- # not a -framework argument
- IF(${LAST_FRAME} EQUAL 1)
- SET(WXWINDOWS_LIBRARIES ${WXWINDOWS_LIBRARIES} "-framework ${arg}")
- SET(LAST_FRAME 0)
- ELSE(${LAST_FRAME} EQUAL 1)
- SET(WXWINDOWS_LIBRARIES ${WXWINDOWS_LIBRARIES} ${arg})
- ENDIF(${LAST_FRAME} EQUAL 1)
- ENDIF(${arg} MATCHES "-framework")
- ENDFOREACH(arg)
- 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?
- IF(NOT APPLE)
- 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(NOT APPLE)
- 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}" )
|