| |
| |
| MESSAGE("${CMAKE_CURRENT_FILE} is deprecated, please use FindwxWidgets.cmake instead.") |
| |
| |
| ##--------------------------------------------------------------------------- |
| ## $RCSfile: FindwxWin.cmake,v $ |
| ## $Source: /cvs/bao-parsec/pkgs/tools/cmake/src/Source/WXDialog/bin/FindwxWin.cmake,v $ |
| ## $Revision: 1.1.1.1 $ |
| ## $Date: 2012/03/29 17:21:10 $ |
| ##--------------------------------------------------------------------------- |
| ## 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) |
| SET(WXWINDOWS_LIBRARIES ${WXWINDOWS_LIBRARIES} "-framework ${arg}") |
| SET(LAST_FRAME 0) |
| ELSE(LAST_FRAME) |
| SET(WXWINDOWS_LIBRARIES ${WXWINDOWS_LIBRARIES} ${arg}) |
| ENDIF(LAST_FRAME) |
| 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}" ) |