Browse Source

ENH: Applying patch from bug#3443 to implement FindwxWidgets.cmake properly. It also updates the UseWX test and WXDialog sources to use the new find script.

Brad King 19 năm trước cách đây
mục cha
commit
3c9744f406

+ 654 - 1
Modules/FindwxWidgets.cmake

@@ -1 +1,654 @@
-INCLUDE(FindwxWindows)
+# - Find a wxWidgets (a.k.a., wxWindows) installation.
+# This module finds if wxWidgets is installed and selects a default
+# configuration to use.
+#
+# The following variables are searched for and set to defaults in case
+# of multiple choices. Change them if the defaults are not desired:
+#
+#  wxWidgets_ROOT_DIR      - Base wxWidgets directory
+#                            (e.g., C:/wxWidgets-2.6.3).
+#  wxWidgets_LIB_DIR       - Path to wxWidgets libraries
+#                            (e.g., C:/wxWidgets-2.6.3/lib/vc_lib).
+#  wxWidgets_CONFIGURATION - Configuration to use
+#                            (e.g., msw, mswd, mswu, mswunivud, etc.)
+#  wxWidgets_USE_LIBS      - Libraries to use besides the common
+#                            required ones; set to base and core by
+#                            default. You couls also list them in
+#                            FIND_PACKAGE(wxWidgets REQUIRED
+#                                         <components>)
+#
+#  HAVE_ISYSTEM            - if true wx warnings are suppressed on g++
+#                            by replacing -I with -isystem
+#
+# The following are set after configuration is done:
+#
+#  wxWidgets_FOUND            - Set to TRUE if wxWidgets was found.
+#  wxWidgets_INCLUDE_DIRS     - Include directories for WIN32
+#                               i.e., where to find "wx/wx.h" and
+#                               "wx/setup.h"; possibly empty for unices.
+#  wxWidgets_LIBRARIES        - Path to the wxWidgets libraries.
+#  wxWidgets_LIBRARY_DIRS     - compile time link dirs, useful for
+#                               rpath on UNIX. Typically an empty string
+#                               in WIN32 environment.
+#  wxWidgets_DEFINITIONS      - Contains defines required to compile/link
+#                               against WX, e.g. -DWXUSINGDLL
+#  wxWidgets_CXX_FLAGS        - Include dirs and ompiler flags for
+#                               unices, empty on WIN32. Esentially
+#                               "`wx-config --cxxflags`".
+#  wxWidgets_USE_FILE         - convenience include file
+#
+# Sample usage:
+#
+#   SET(wxWidgets_USE_LIBS base core gl net)
+#   FIND_PACKAGE(wxWidgets)
+#   IF(wxWidgets_FOUND)
+#     INCLUDE(${wxWidgets_USE_FILE})
+#     # and for each of your dependant executable/library targets:
+#     TARGET_LINK_LIBRARIES(<YourTarget> ${wxWidgets_LIBRARIES})
+#   ENDIF(wxWidgets_FOUND)
+#
+# Sample usage with monolithic wx build:
+#   SET(wxWidgets_USE_LIBS msw26 expat jpeg gl png regex tiff zlib)
+#   ...
+
+# NOTES
+#
+# This module has been tested on the WIN32 platform with wxWidgets
+# 2.6.2, 2.6.3, and 2.5.3. However, it has been designed to
+# easily extend support to all possible builds, e.g., static/shared,
+# debug/release, unicode, universal, multilib/monolithic, etc..
+#
+# If you want to use the module and your build type is not supported
+# out-of-the-box, please contact me to exchange information on how
+# your system is setup and I'll try to add support for it.
+#
+# AUTHOR
+#
+# Miguel A. Figueroa-Villanueva (miguelf at ieee dot org).
+# Jan Woetzel (jw at mip.informatik.uni-kiel.de).
+#
+# Based on previous works of:
+# Jan Woetzel (FindwxWindows.cmake),
+# Jorgen Bodde and Jerry Fath (FindwxWin.cmake).
+
+#
+# TODO/ideas
+#
+# (1) Option/Setting to use all available wx libs
+# In contrast to expert developer who lists the
+# minimal set of required libs in wxWidgets_USE_LIBS
+# there is the newbie user:
+#   - who just wants to link against WX with more 'magic'
+#   - doesn't know the internal structure of WX or how it was built,
+#     in particular if it is monolithic or not
+#   - want to link against all available WX libs
+# Basically, the intent here is to mimic what wx-config would do by
+# default (i.e., `wx-config --libs`).
+#
+# Possible solution:
+#   Add a reserved keyword "std" that initializes to what wx-config
+# would default to. If the user has not set the wxWidgets_USE_LIBS,
+# default to "std" instead of "base core" as it is now. To implement
+# "std" will basically boil down to a FOR_EACH lib-FOUND, but maybe
+# checking whether a minimal set was found.
+#
+
+
+#
+# Helper macro to control the debugging output globally.
+# - NOTE: This and all the DBG_MSG calls should be removed after the
+#         module stabilizes.
+#
+MACRO(DBG_MSG _MSG)
+  # MESSAGE(STATUS "${CMAKE_CURRENT_LIST_FILE}(${CMAKE_CURRENT_LIST_LINE}): ${_MSG}")
+ENDMACRO(DBG_MSG)
+
+# for compatibility with CMake 2.4.2
+# emulate wxWidgets_FIND_COMPONENTS
+IF (NOT wxWidgets_FIND_COMPONENTS)
+  SET(wxWidgets_FIND_COMPONENTS "")
+  FOREACH(COMPONENT
+      base
+      core
+      adv
+      dbgrid
+      expat
+      gl
+      jpeg
+      html
+      media
+      msw msw26 msw27 msw28
+      mono
+      net
+      odbc
+      png
+      qa
+      regex
+      tiff
+      # std # no true lib/component - list for compatibility with _USE_LIBS ?
+      xml
+      xrc
+      zlib
+      )
+    IF   (${wxWidgets_FIND_REQUIRED_${COMPONENT}})
+      SET(wxWidgets_FIND_COMPONENTS ${wxWidgets_FIND_COMPONENTS} ${COMPONENT})
+    ENDIF(${wxWidgets_FIND_REQUIRED_${COMPONENT}})
+  ENDFOREACH(COMPONENT)
+ENDIF (NOT wxWidgets_FIND_COMPONENTS)
+
+DBG_MSG("wxWidgets_FIND_COMPONENTS=${wxWidgets_FIND_COMPONENTS}")
+
+#
+# Clear return values in case the module is loaded more than once.
+#
+SET(wxWidgets_FOUND FALSE)
+#
+SET(wxWidgets_INCLUDE_DIRS      "")
+SET(wxWidgets_LIBRARIES        "")
+SET(wxWidgets_LIBRARY_DIRS "")
+SET(wxWidgets_CXX_FLAGS        "")
+
+#=====================================================================
+#=====================================================================
+IF(WIN32)
+  SET(WIN32_STYLE_FIND 1)
+ENDIF(WIN32)
+IF(MINGW)
+  SET(WIN32_STYLE_FIND 0)
+  SET(UNIX_STYLE_FIND 1)
+ENDIF(MINGW)
+IF(UNIX)
+  SET(UNIX_STYLE_FIND 1)
+ENDIF(UNIX)
+
+
+IF(WIN32_STYLE_FIND)
+
+  # global settings for std and common wx libs
+  # logic could determine _USE_MONOLITHIC automatically
+  # but let the user decide for now.
+  IF   (wxWidgets_USE_MONOLITHIC)
+    SET(wxWidgets_STD_LIBRARIES mono )
+  ELSE (wxWidgets_USE_MONOLITHIC)
+    SET(wxWidgets_STD_LIBRARIES base core ) # this is default
+  ENDIF(wxWidgets_USE_MONOLITHIC)
+
+  #useful common wx libs needed by almost all components
+  SET(wxWidgets_COMMON_LIBRARIES  png tiff jpeg zlib regex expat)
+
+  #---------------------------------------------------------------------
+  # WIN32: Helper MACROS
+  #---------------------------------------------------------------------
+  # Get filename components for a configuration. For example,
+  #   if _CONFIGURATION = mswunivud, then _UNV=univ, _UCD=u _DBG=d
+  #   if _CONFIGURATION = mswu,      then _UNV="",   _UCD=u _DBG=""
+  #
+  MACRO(WX_GET_NAME_COMPONENTS _CONFIGURATION _UNV _UCD _DBG)
+    STRING(REGEX MATCH "univ" ${_UNV} "${_CONFIGURATION}")
+    STRING(REGEX REPLACE "msw.*(u)[d]*$" "u" ${_UCD} "${_CONFIGURATION}")
+    IF(${_UCD} STREQUAL ${_CONFIGURATION})
+      SET(${_UCD} "")
+    ENDIF(${_UCD} STREQUAL ${_CONFIGURATION})
+    STRING(REGEX MATCH "d$" ${_DBG} "${_CONFIGURATION}")
+  ENDMACRO(WX_GET_NAME_COMPONENTS)
+
+  #
+  # Find libraries associated to a configuration.
+  #
+  MACRO(WX_FIND_LIBS _UNV _UCD _DBG)
+    DBG_MSG("m_unv = ${_UNV}")
+    DBG_MSG("m_ucd = ${_UCD}")
+    DBG_MSG("m_dbg = ${_DBG}")
+
+    # Find wxWidgets common libraries
+    FOREACH(LIB png tiff jpeg zlib regex expat)
+      FIND_LIBRARY(WX_${LIB}${_DBG}
+        NAMES
+        wx${LIB}${_UCD}${_DBG} # for regex
+        wx${LIB}${_DBG}
+        PATHS ${WX_LIB_DIR}
+        NO_DEFAULT_PATH
+        )
+      MARK_AS_ADVANCED(WX_${LIB}${_DBG})
+    ENDFOREACH(LIB)
+
+    # Find wxWidgets multilib base libraries
+    FIND_LIBRARY(WX_base${_DBG}
+      NAMES
+      wxbase26${_UCD}${_DBG}
+      wxbase25${_UCD}${_DBG}
+      PATHS ${WX_LIB_DIR}
+      NO_DEFAULT_PATH
+      )
+    MARK_AS_ADVANCED(WX_base${_DBG})
+    FOREACH(LIB net odbc xml)
+      FIND_LIBRARY(WX_${LIB}${_DBG}
+        NAMES
+        wxbase26${_UCD}${_DBG}_${LIB}
+        wxbase25${_UCD}${_DBG}_${LIB}
+        PATHS ${WX_LIB_DIR}
+        NO_DEFAULT_PATH
+        )
+      MARK_AS_ADVANCED(WX_${LIB}${_DBG})
+    ENDFOREACH(LIB)
+
+    # Find wxWidgets monolithic library
+    FIND_LIBRARY(WX_mono${_DBG}
+      NAMES
+      wxmsw${_UNV}26${_UCD}${_DBG}
+      wxmsw${_UNV}25${_UCD}${_DBG}
+      PATHS ${WX_LIB_DIR}
+      NO_DEFAULT_PATH
+      )
+    MARK_AS_ADVANCED(WX_mono${_DBG})
+
+    # Find wxWidgets multilib libraries
+    FOREACH(LIB core adv html media xrc dbgrid gl qa)
+      FIND_LIBRARY(WX_${LIB}${_DBG}
+        NAMES
+        wxmsw${_UNV}26${_UCD}${_DBG}_${LIB}
+        wxmsw${_UNV}25${_UCD}${_DBG}_${LIB}
+        PATHS ${WX_LIB_DIR}
+        NO_DEFAULT_PATH
+        )
+      MARK_AS_ADVANCED(WX_${LIB}${_DBG})
+    ENDFOREACH(LIB)
+  ENDMACRO(WX_FIND_LIBS)
+
+  #
+  # Clear all library paths, so that FIND_LIBRARY refinds them.
+  #
+  # Clear a lib, reset its found flag, and mark as advanced.
+  MACRO(WX_CLEAR_LIB _LIB)
+    SET(${_LIB} "${_LIB}-NOTFOUND" CACHE FILEPATH "Cleared." FORCE)
+    SET(${_LIB}_FOUND FALSE)
+    MARK_AS_ADVANCED(${_LIB})
+  ENDMACRO(WX_CLEAR_LIB)
+  # Clear all debug or release library paths (arguments are "d" or "").
+  MACRO(WX_CLEAR_ALL_LIBS _DBG)
+    # Clear wxWidgets common libraries
+    FOREACH(LIB png tiff jpeg zlib regex expat)
+      WX_CLEAR_LIB(WX_${LIB}${_DBG})
+    ENDFOREACH(LIB)
+
+    # Clear wxWidgets multilib base libraries
+    WX_CLEAR_LIB(WX_base${_DBG})
+    FOREACH(LIB net odbc xml)
+      WX_CLEAR_LIB(WX_${LIB}${_DBG})
+    ENDFOREACH(LIB)
+
+    # Clear wxWidgets monolithic library
+    WX_CLEAR_LIB(WX_mono${_DBG})
+
+    # Clear wxWidgets multilib libraries
+    FOREACH(LIB core adv html media xrc dbgrid gl qa)
+      WX_CLEAR_LIB(WX_${LIB}${_DBG})
+    ENDFOREACH(LIB)
+  ENDMACRO(WX_CLEAR_ALL_LIBS)
+  # Clear all wxWidgets debug libraries.
+  MACRO(WX_CLEAR_ALL_DBG_LIBS)
+    WX_CLEAR_ALL_LIBS("d")
+  ENDMACRO(WX_CLEAR_ALL_DBG_LIBS)
+  # Clear all wxWidgets release libraries.
+  MACRO(WX_CLEAR_ALL_REL_LIBS)
+    WX_CLEAR_ALL_LIBS("")
+  ENDMACRO(WX_CLEAR_ALL_REL_LIBS)
+
+  #
+  # Set the wxWidgets_LIBRARIES variable.
+  # Also, Sets output variable wxWidgets_FOUND to FALSE if it fails.
+  #
+  MACRO(WX_SET_LIBRARIES _LIBS _DBG)
+    IF(WX_USE_REL_AND_DBG)
+      DBG_MSG("looking for ${${_LIBS}}")
+      FOREACH(LIB ${${_LIBS}})
+        DBG_MSG("Finding ${LIB} and ${LIB}d")
+        DBG_MSG("WX_${LIB}  : ${WX_${LIB}}")
+        DBG_MSG("WX_${LIB}d : ${WX_${LIB}d}")
+        IF(WX_${LIB} AND WX_${LIB}d)
+          DBG_MSG("Found ${LIB} and ${LIB}d")
+          SET(wxWidgets_LIBRARIES ${wxWidgets_LIBRARIES}
+            debug     ${WX_${LIB}d}
+            optimized ${WX_${LIB}}
+            )
+        ELSE(WX_${LIB} AND WX_${LIB}d)
+          DBG_MSG("- not found due to missing WX_${LIB}=${WX_${LIB}} or WX_${LIB}d=${WX_${LIB}d}")
+          SET(wxWidgets_FOUND FALSE)
+        ENDIF(WX_${LIB} AND WX_${LIB}d)
+      ENDFOREACH(LIB)
+    ELSE(WX_USE_REL_AND_DBG)
+      FOREACH(LIB ${${_LIBS}})
+        DBG_MSG("Finding ${LIB}${_DBG}")
+        DBG_MSG("WX_${LIB}${_DBG} : ${WX_${LIB}${_DBG}}")
+        IF(WX_${LIB}${_DBG})
+          DBG_MSG("Found ${LIB}${_DBG}")
+          SET(wxWidgets_LIBRARIES ${wxWidgets_LIBRARIES}
+            ${WX_${LIB}${_DBG}}
+            )
+        ELSE(WX_${LIB}${_DBG})
+          DBG_MSG("- not found due to missing WX_${LIB}${_DBG}=${WX_${LIB}${_DBG}}")
+          SET(wxWidgets_FOUND FALSE)
+        ENDIF(WX_${LIB}${_DBG})
+      ENDFOREACH(LIB)
+    ENDIF(WX_USE_REL_AND_DBG)
+
+    FOREACH(LIB ${${_LIBS}})
+      DBG_MSG("required: ${LIB}")
+      IF(LIB STREQUAL "gl")
+        DBG_MSG("gl required: ${LIB}")
+        SET(wxWidgets_LIBRARIES ${wxWidgets_LIBRARIES}
+          opengl32
+          glu32
+          )
+      ENDIF(LIB STREQUAL "gl")
+    ENDFOREACH(LIB ${${_LIBS}})
+
+    SET(wxWidgets_LIBRARIES ${wxWidgets_LIBRARIES}
+      winmm
+      comctl32
+      rpcrt4
+      wsock32
+      )
+  ENDMACRO(WX_SET_LIBRARIES)
+
+  #---------------------------------------------------------------------
+  # WIN32: Start actual work.
+  #---------------------------------------------------------------------
+  #
+  # Look for an installation tree.
+  #
+  FIND_PATH(wxWidgets_ROOT_DIR include/wx/wx.h
+    $ENV{WXWIN}
+    "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\wxWidgets_is1;Inno Setup: App Path]"  ## WX 2.6.x
+    C:/wxWidgets-2.6.3
+    D:/wxWidgets-2.6.3
+    C:/wxWidgets-2.6.2
+    D:/wxWidgets-2.6.2
+    C:/wxWidgets-2.6.1
+    D:/wxWidgets-2.6.1
+    C:/wxWidgets-2.6.0
+    D:/wxWidgets-2.6.0
+    C:/wxWidgets-2.5.5
+    D:/wxWidgets-2.5.5
+    C:/wxWidgets-2.5.4
+    D:/wxWidgets-2.5.4
+    C:/wxWidgets-2.5.3
+    D:/wxWidgets-2.5.3
+    C:/wxWidgets-2.5.2
+    D:/wxWidgets-2.5.2
+    C:/wxWidgets-2.5.1
+    D:/wxWidgets-2.5.1
+    DOC "wxWidgets base/installation directory?"
+    )
+
+  # If wxWidgets_ROOT_DIR changed, clear all libraries and lib dir.
+  IF(NOT WX_ROOT_DIR STREQUAL wxWidgets_ROOT_DIR)
+    SET(WX_ROOT_DIR ${wxWidgets_ROOT_DIR} CACHE INTERNAL "wxWidgets_ROOT_DIR")
+    #  WX_CLEAR_ALL_DBG_LIBS()
+    #  WX_CLEAR_ALL_REL_LIBS()
+    SET(wxWidgets_LIB_DIR "wxWidgets_LIB_DIR-NOTFOUND" CACHE PATH "Cleared." FORCE)
+  ENDIF(NOT WX_ROOT_DIR STREQUAL wxWidgets_ROOT_DIR)
+
+  IF(WX_ROOT_DIR)
+
+    # select one default tree inside the already determined wx tree
+    # prefer static/shared order usually consistent with build settings
+    IF(BUILD_SHARED_LIBS)
+      FIND_PATH(wxWidgets_LIB_DIR
+        NAMES wxpng.lib wxpngd.lib
+        PATHS
+        ${WX_ROOT_DIR}/lib/vc_dll   # prefer shared
+        ${WX_ROOT_DIR}/lib/vc_lib
+        DOC "Path to wxWidgets libraries?"
+        NO_DEFAULT_PATH
+        )
+    ELSE(BUILD_SHARED_LIBS)
+      FIND_PATH(wxWidgets_LIB_DIR
+        NAMES wxpng.lib wxpngd.lib
+        PATHS
+        ${WX_ROOT_DIR}/lib/vc_lib   # prefer static
+        ${WX_ROOT_DIR}/lib/vc_dll
+        DOC "Path to wxWidgets libraries?"
+        NO_DEFAULT_PATH
+        )
+    ENDIF(BUILD_SHARED_LIBS)
+
+    # If wxWidgets_LIB_DIR changed, clear all libraries.
+    IF(NOT WX_LIB_DIR STREQUAL wxWidgets_LIB_DIR)
+      SET(WX_LIB_DIR ${wxWidgets_LIB_DIR} CACHE INTERNAL "wxWidgets_LIB_DIR")
+      WX_CLEAR_ALL_DBG_LIBS()
+      WX_CLEAR_ALL_REL_LIBS()
+    ENDIF(NOT WX_LIB_DIR STREQUAL wxWidgets_LIB_DIR)
+
+    IF(WX_LIB_DIR)
+      SET(wxWidgets_FOUND TRUE)
+
+      IF(WX_LIB_DIR MATCHES ".*[dD][lL][lL].*")
+        DBG_MSG("detected SHARED/DLL tree WX_LIB_DIR=${WX_LIB_DIR}")
+        # add define for correct dllimport to link against WX DLL
+        SET(wxWidgets_DEFINITIONS "-DWXUSINGDLL")
+      ENDIF(WX_LIB_DIR MATCHES ".*[dD][lL][lL].*")
+
+      #---------------------------------------------------------------------
+      # WIN32: ???
+      #---------------------------------------------------------------------
+      # Search for possible configuration type availabilities
+      # ***** SET(WX_LAST_CFG "")
+      FOREACH(CFG mswunivud mswunivd mswud mswd mswunivu mswuniv mswu msw)
+        SET(WX_${CFG}_FOUND FALSE)
+        IF(EXISTS ${WX_LIB_DIR}/${CFG})
+          SET(WX_CONFIGURATION_LIST ${WX_CONFIGURATION_LIST} ${CFG})
+          SET(WX_${CFG}_FOUND TRUE)
+          SET(WX_CONFIGURATION ${CFG})
+        ENDIF(EXISTS ${WX_LIB_DIR}/${CFG})
+      ENDFOREACH(CFG)
+
+      # ***** SET(WX_USE_REL_AND_DBG FALSE)
+      IF(WX_CONFIGURATION)
+        # if selected configuration wasn't found, force the default one
+        # else, use it but still force a refresh for the list in doc string
+        IF(NOT WX_${wxWidgets_CONFIGURATION}_FOUND)
+          SET(wxWidgets_CONFIGURATION ${WX_CONFIGURATION} CACHE STRING
+            "Set wxWidgets configuration (${WX_CONFIGURATION_LIST})" FORCE)
+        ELSE(NOT WX_${wxWidgets_CONFIGURATION}_FOUND)
+          SET(wxWidgets_CONFIGURATION ${wxWidgets_CONFIGURATION} CACHE STRING
+            "Set wxWidgets configuration (${WX_CONFIGURATION_LIST})" FORCE)
+        ENDIF(NOT WX_${wxWidgets_CONFIGURATION}_FOUND)
+
+        # if release config was selected, and both release/debug exist
+        IF(WX_${wxWidgets_CONFIGURATION}d_FOUND)
+          OPTION(wxWidgets_USE_REL_AND_DBG
+            "Use release and debug configurations?" TRUE)
+          SET(WX_USE_REL_AND_DBG ${wxWidgets_USE_REL_AND_DBG})
+        ELSE(WX_${wxWidgets_CONFIGURATION}d_FOUND)
+          # if the option exists, force it to false
+          IF(wxWidgets_USE_REL_AND_DBG)
+            SET(wxWidgets_USE_REL_AND_DBG FALSE CACHE BOOL
+              "No ${wxWidgets_CONFIGURATION}d found." FORCE)
+          ENDIF(wxWidgets_USE_REL_AND_DBG)
+          SET(WX_USE_REL_AND_DBG FALSE)
+        ENDIF(WX_${wxWidgets_CONFIGURATION}d_FOUND)
+
+        # Get configuration parameters from the name.
+        WX_GET_NAME_COMPONENTS(${wxWidgets_CONFIGURATION} UNV UCD DBG)
+
+        # Set wxWidgets main include directory.
+        IF(EXISTS ${WX_ROOT_DIR}/include/wx/wx.h)
+          SET(wxWidgets_INCLUDE_DIRS ${WX_ROOT_DIR}/include)
+        ELSE(EXISTS ${WX_ROOT_DIR}/include/wx/wx.h)
+          DBG_MSG("WXWIDGET_FOUND FALSE because WX_ROOT_DIR=${WX_ROOT_DIR} has no ${WX_ROOT_DIR}/include/wx/wx.h")
+          SET(wxWidgets_FOUND FALSE)
+        ENDIF(EXISTS ${WX_ROOT_DIR}/include/wx/wx.h)
+
+        # Set wxWidgets lib setup include directory.
+        IF(EXISTS ${WX_LIB_DIR}/${wxWidgets_CONFIGURATION}/wx/setup.h)
+          SET(wxWidgets_INCLUDE_DIRS ${wxWidgets_INCLUDE_DIRS}
+            ${WX_LIB_DIR}/${wxWidgets_CONFIGURATION})
+        ELSE(EXISTS ${WX_LIB_DIR}/${wxWidgets_CONFIGURATION}/wx/setup.h)
+          DBG_MSG("WXWIDGET_FOUND FALSE because  ${WX_LIB_DIR}/${wxWidgets_CONFIGURATION}/wx/setup.h does not exists.")
+          SET(wxWidgets_FOUND FALSE)
+        ENDIF(EXISTS ${WX_LIB_DIR}/${wxWidgets_CONFIGURATION}/wx/setup.h)
+        #FIND_PATH(WX_SETUP_INCLUDE_DIR wx/setup.h
+        #          ${WX_LIB_DIR}/${wxWidgets_CONFIGURATION})
+        #MARK_AS_ADVANCED(WX_SETUP_INCLUDE_DIR)
+
+        # Find wxWidgets libraries.
+        WX_FIND_LIBS("${UNV}" "${UCD}" "${DBG}")
+        IF(WX_USE_REL_AND_DBG)
+          WX_FIND_LIBS("${UNV}" "${UCD}" "d")
+        ENDIF(WX_USE_REL_AND_DBG)
+
+        # we support adding components by _USE_LIBS or REQUIRED _COMPONENTS
+        IF   (wxWidgets_FIND_COMPONENTS)
+          LIST(APPEND wxWidgets_USE_LIBS ${wxWidgets_FIND_COMPONENTS})
+        ENDIF(wxWidgets_FIND_COMPONENTS)
+
+
+
+        # Libraries we are interested in.
+        IF(NOT wxWidgets_USE_LIBS)
+          # Default minimal use setting (i.e., link to only core,base).
+          SET(wxWidgets_USE_LIBS ${wxWidgets_STD_LIBRARIES} )
+        ENDIF(NOT wxWidgets_USE_LIBS)
+
+        IF (wxWidgets_USE_LIBS MATCHES std)
+          # replace std by the list of STD libs
+          LIST(APPEND wxWidgets_USE_LIBS ${wxWidgets_STD_LIBRARIES} )
+          LIST(REMOVE_ITEM wxWidgets_USE_LIBS std)
+          # TODO: check that "mono"  and base,core aren't added together
+        ENDIF (wxWidgets_USE_LIBS MATCHES std)
+
+        # Always add the common required libs.
+        LIST(APPEND wxWidgets_USE_LIBS ${wxWidgets_COMMON_LIBRARIES} )
+
+        # Settings for requested libs (i.e., include dir, libraries, etc.).
+        WX_SET_LIBRARIES(wxWidgets_USE_LIBS "${DBG}")
+
+      ENDIF(WX_CONFIGURATION)
+    ENDIF(WX_LIB_DIR)
+  ENDIF(WX_ROOT_DIR)
+
+
+  #=====================================================================
+  #=====================================================================
+ELSE(WIN32_STYLE_FIND)
+  IF(UNIX_STYLE_FIND)
+
+    FIND_PROGRAM(wxWidgets_CONFIG_EXECUTABLE wx-config)
+    IF(wxWidgets_CONFIG_EXECUTABLE)
+      SET(wxWidgets_FOUND TRUE)
+
+      # run the wx-config program to get cxxflags
+      EXEC_PROGRAM(${wxWidgets_CONFIG_EXECUTABLE}
+        ARGS "--cxxflags"
+        OUTPUT_VARIABLE wxWidgets_CXX_FLAGS
+        RETURN_VALUE RET)
+      IF(RET EQUAL 0)
+        # parse definitions from cxxflags
+        STRING(REGEX MATCHALL "-D.*[^ ;]+" wxWidgets_DEFINITIONS  ${wxWidgets_CXX_FLAGS})
+        DBG_MSG("\nwxWidgets_DEFINITIONS=${wxWidgets_DEFINITIONS}")
+        # drop -D* from CXXFLAGS
+        STRING(REGEX REPLACE "-D[^ ;]*" ""  wxWidgets_CXX_FLAGS  ${wxWidgets_CXX_FLAGS})
+
+        # parse incdirs from cxxflags, drop -I prefix
+        STRING(REGEX MATCHALL "-I.*[^ ;]+" wxWidgets_INCLUDE_DIRS  ${wxWidgets_CXX_FLAGS})
+        STRING(REGEX REPLACE "-I" ""  wxWidgets_INCLUDE_DIRS "${wxWidgets_INCLUDE_DIRS}")
+        # convert space to semicolons for list
+        STRING(REGEX REPLACE " " ";" wxWidgets_INCLUDE_DIRS "${wxWidgets_INCLUDE_DIRS}")
+
+        # drop -I* from CXXFLAGS - postponed until -isystem is available to INCLUDE_DIRECTORIES to avoid pedantic warnings
+        #STRING(REGEX REPLACE "-I[^ ;]*" ""  wxWidgets_CXX_FLAGS  ${wxWidgets_CXX_FLAGS})
+
+        IF (HAVE_ISYSTEM) # does the compiler support -isystem ?
+          IF (NOT APPLE)  # -isystem seem unsuppored on Mac
+            IF(CMAKE_COMPILER_IS_GNUCC AND CMAKE_COMPILER_IS_GNUCXX )
+              IF   (CMAKE_CXX_COMPILER MATCHES g\\+\\+) # just to be sure
+                # handle WX include dirs as system directories - ignores pedantic warnings with gcc
+                # replace -I by -isystem
+                STRING(REGEX REPLACE "-I" "-isystem" wxWidgets_CXX_FLAGS  ${wxWidgets_CXX_FLAGS})
+              ENDIF(CMAKE_CXX_COMPILER MATCHES g\\+\\+)
+            ENDIF(CMAKE_COMPILER_IS_GNUCC AND CMAKE_COMPILER_IS_GNUCXX )
+          ENDIF(NOT APPLE)
+        ENDIF(HAVE_ISYSTEM)
+
+      ELSE(RET EQUAL 0)
+        DBG_MSG("${wxWidgets_CONFIG_EXECUTABLE} --cxxflags FAILED with RET=${RET}")
+        SET(wxWidgets_FOUND FALSE)
+      ENDIF(RET EQUAL 0)
+
+
+      # run the wx-config program to get the libs
+      # - NOTE: wx-config doesn't verify that the libs requested exist
+      #         it just produces the names. Maybe a TRY_COMPILE would
+      #         be useful here...
+      #STRING(REPLACE ";" "," wxWidgets_USE_LIBS "${wxWidgets_USE_LIBS}")
+      STRING(REGEX REPLACE ";" "," wxWidgets_USE_LIBS "${wxWidgets_USE_LIBS}")
+      EXEC_PROGRAM(${wxWidgets_CONFIG_EXECUTABLE}
+        ARGS "--libs ${wxWidgets_USE_LIBS}"
+        OUTPUT_VARIABLE wxWidgets_LIBRARIES
+        RETURN_VALUE RET)
+      IF(RET EQUAL 0)
+        STRING(REGEX REPLACE " " ";" wxWidgets_LIBRARIES "${wxWidgets_LIBRARIES}")
+        STRING(REGEX REPLACE "-framework;" "-framework "
+          wxWidgets_LIBRARIES
+          "${wxWidgets_LIBRARIES}")
+
+        # extract linkdirs (-L) for rpath (i.e., LINK_DIRECTORIES)
+        STRING(REGEX MATCHALL "-L[^ ;]+"
+          wxWidgets_LIBRARY_DIRS
+          "${wxWidgets_LIBRARIES}")
+        STRING(REGEX REPLACE "-L" ""
+          wxWidgets_LIBRARY_DIRS "${wxWidgets_LIBRARY_DIRS}")
+
+        # convert space to semicolons for list
+        STRING(REGEX REPLACE " " ";" wxWidgets_LIBRARY_DIRS "${wxWidgets_LIBRARY_DIRS}")
+      ELSE(RET EQUAL 0)
+        SET(wxWidgets_FOUND FALSE)
+      ENDIF(RET EQUAL 0)
+    ENDIF(wxWidgets_CONFIG_EXECUTABLE)
+
+  ELSE(UNIX_STYLE_FIND)
+    IF(NOT wxWidgets_FIND_QUIETLY)
+      MESSAGE(STATUS "${CMAKE_CURRENT_LIST_FILE}(${CMAKE_CURRENT_LIST_LINE}): \n"
+        "  Platform unknown/unsupported. It's neither WIN32 nor UNIX style find.")
+    ENDIF(NOT wxWidgets_FIND_QUIETLY)
+  ENDIF(UNIX_STYLE_FIND)
+ENDIF(WIN32_STYLE_FIND)
+
+
+# add convenience use file
+IF  (wxWidgets_FOUND)
+  # get dir of this file which may reside in
+  # - CMAKE_MAKE_ROOT/Modules  on CMake installation
+  # - CMAKE_MODULE_PATH if user prefers his own specialized version
+  GET_FILENAME_COMPONENT(wxWidgets_CURRENT_LIST_DIR ${CMAKE_CURRENT_LIST_FILE} PATH)
+  SET(wxWidgets_USE_FILE "${wxWidgets_CURRENT_LIST_DIR}/UsewxWidgets.cmake")
+  # check
+  IF   (NOT EXISTS ${wxWidgets_USE_FILE})
+    IF   (NOT  wxWidgets_FIND_QUIETLY)
+      MESSAGE(SEND_ERROR "Your Find/Use wxWidgets installation is wrong. wxWidgets_USE_FILE=${wxWidgets_USE_FILE} not found.")
+    ENDIF(NOT  wxWidgets_FIND_QUIETLY)
+  ENDIF(NOT EXISTS ${wxWidgets_USE_FILE})
+ENDIF(wxWidgets_FOUND)
+
+DBG_MSG("wxWidgets_FOUND           : ${wxWidgets_FOUND}")
+DBG_MSG("wxWidgets_INCLUDE_DIRS    : ${wxWidgets_INCLUDE_DIRS}")
+DBG_MSG("wxWidgets_LIBRARY_DIRS    : ${wxWidgets_LIBRARY_DIRS}")
+DBG_MSG("wxWidgets_CXX_FLAGS       : ${wxWidgets_CXX_FLAGS}")
+DBG_MSG("wxWidgets_USE_FILE        : ${wxWidgets_USE_FILE}")
+DBG_MSG("wxWidgets_FIND_COMPONENTS : ${wxWidgets_FIND_COMPONENTS}")
+DBG_MSG("wxWidgets_USE_LIBS        : ${wxWidgets_USE_LIBS}")
+
+#=====================================================================
+#=====================================================================
+IF(NOT wxWidgets_FOUND)
+  # make FIND_PACKAGE friendly
+  IF(NOT wxWidgets_FIND_QUIETLY)
+    IF(wxWidgets_FIND_REQUIRED)
+      MESSAGE(FATAL_ERROR
+        "wxWidgets required, please specify it's location.")
+    ELSE(wxWidgets_FIND_REQUIRED)
+      MESSAGE(STATUS "ERROR: wxWidgets was not found.")
+    ENDIF(wxWidgets_FIND_REQUIRED)
+  ENDIF(NOT wxWidgets_FIND_QUIETLY)
+ENDIF(NOT wxWidgets_FOUND)

+ 217 - 202
Modules/FindwxWindows.cmake

@@ -1,54 +1,59 @@
-# - Find wxWindows (wxWidgets) installation 
-# This module finds if wxWindows/wxWidgets is installed and determines where 
+# - Find wxWindows (wxWidgets) installation
+# This module finds if wxWindows/wxWidgets is installed and determines where
 # the include files and libraries are. It also determines what the name of
-# the library is. This code sets the following variables:
-#  
-#  WXWINDOWS_FOUND     = system has WxWindows 
+# the library is.
+# Please note this file is DEPRECATED and replaced by FindwxWidgets.cmake.
+# This code sets the following variables:
+#
+#  WXWINDOWS_FOUND     = system has WxWindows
 #  WXWINDOWS_LIBRARIES = path to the wxWindows libraries
-#                        on Unix/Linux with additional 
-#                        linker flags from 
+#                        on Unix/Linux with additional
+#                        linker flags from
 #                        "wx-config --libs"
-#  CMAKE_WXWINDOWS_CXX_FLAGS  = Compiler flags for wxWindows, 
+#  CMAKE_WXWINDOWS_CXX_FLAGS  = Compiler flags for wxWindows,
 #                               essentially "`wx-config --cxxflags`"
 #                               on Linux
 #  WXWINDOWS_INCLUDE_DIR      = where to find "wx/wx.h" and "wx/setup.h"
 #  WXWINDOWS_LINK_DIRECTORIES = link directories, useful for rpath on
 #                                Unix
 #  WXWINDOWS_DEFINITIONS      = extra defines
-# 
-# DEPRECATED
-#  CMAKE_WX_CAN_COMPILE
-#  WXWINDOWS_LIBRARY
-#  CMAKE_WX_CXX_FLAGS
-#  WXWINDOWS_INCLUDE_PATH
 #
-# OPTIONS 
-# If you need OpenGL support please 
-#  SET(WXWINDOWS_USE_GL 1) 
+# OPTIONS
+# If you need OpenGL support please
+#  SET(WXWINDOWS_USE_GL 1)
 # in your CMakeLists.txt *before* you include this file.
-# 
+#
+#  HAVE_ISYSTEM      - true required to replace -I by -isystem on g++
+#
 # For convenience include Use_wxWindows.cmake in your project's
-# CMakeLists.txt using INCLUDE(Use_wxWindows). 
-# 
-# USAGE 
-#  SET(WXWINDOWS_USE_GL 1) 
+# CMakeLists.txt using INCLUDE(Use_wxWindows).
+#
+# USAGE
+#  SET(WXWINDOWS_USE_GL 1)
 #  FIND_PACKAGE(wxWindows)
-# 
+#
 # NOTES
-# wxWidgets 2.6.x is supported for monolithic builds 
-# e.g. compiled  in wx/build/msw dir as:  
+# wxWidgets 2.6.x is supported for monolithic builds
+# e.g. compiled  in wx/build/msw dir as:
 #  nmake -f makefile.vc BUILD=debug SHARED=0 USE_OPENGL=1 MONOLITHIC=1
 #
+# DEPRECATED
+#
+#  CMAKE_WX_CAN_COMPILE
+#  WXWINDOWS_LIBRARY
+#  CMAKE_WX_CXX_FLAGS
+#  WXWINDOWS_INCLUDE_PATH
+#
 # AUTHOR
 # Jan Woetzel <http://www.mip.informatik.uni-kiel.de/~jw> (07/2003-01/2006)
 
 
 # ------------------------------------------------------------------
-# 
+#
 # -removed OPTION for CMAKE_WXWINDOWS_USE_GL. Force the developer to SET it before calling this.
 # -major update for wx 2.6.2 and monolithic build option. (10/2005)
 #
-# STATUS 
+# STATUS
 # tested with:
 #  cmake 1.6.7, Linux (Suse 7.3), wxWindows 2.4.0, gcc 2.95
 #  cmake 1.6.7, Linux (Suse 8.2), wxWindows 2.4.0, gcc 3.3
@@ -87,19 +92,19 @@ IF(WIN32_STYLE_FIND)
   ## should have subdirs include and lib containing include/wx/wx.h
   ## fix the root dir to avoid mixing of headers/libs from different
   ## versions/builds:
-  
+
   SET (WXWINDOWS_POSSIBLE_ROOT_PATHS
     $ENV{WXWIN}
     "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\wxWidgets_is1;Inno Setup: App Path]"  ## WX 2.6.x
     "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\wxWindows_is1;Inno Setup: App Path]"  ## WX 2.4.x
-    C:\\wxWidgets-2.6.2 
-    D:\\wxWidgets-2.6.2 
-    C:\\wxWidgets-2.6.1 
-    D:\\wxWidgets-2.6.1 
-    C:\\wxWindows-2.4.2 
-    D:\\wxWindows-2.4.2 
+    C:\\wxWidgets-2.6.2
+    D:\\wxWidgets-2.6.2
+    C:\\wxWidgets-2.6.1
+    D:\\wxWidgets-2.6.1
+    C:\\wxWindows-2.4.2
+    D:\\wxWindows-2.4.2
     )
-  
+
   ## WX supports monolithic and multiple smaller libs (since 2.5.x), we prefer monolithic for now.
   ## monolithic = WX is built as a single big library
   ## e.g. compile on WIN32 as  "nmake -f makefile.vc MONOLITHIC=1 BUILD=debug SHARED=0 USE_OPENGL=1" (JW)
@@ -112,49 +117,49 @@ IF(WIN32_STYLE_FIND)
 
 
   ## avoid mixing of headers and libs between multiple installed WX versions,
-  ## select just one tree here: 
-  FIND_PATH(WXWINDOWS_ROOT_DIR  include/wx/wx.h 
-    ${WXWINDOWS_POSSIBLE_ROOT_PATHS} )  
+  ## select just one tree here:
+  FIND_PATH(WXWINDOWS_ROOT_DIR  include/wx/wx.h
+    ${WXWINDOWS_POSSIBLE_ROOT_PATHS} )
   # MESSAGE("DBG found WXWINDOWS_ROOT_DIR: ${WXWINDOWS_ROOT_DIR}")
-  
-  
+
+
   ## find libs for combination of static/shared with release/debug
-  ## be careful if you add something here, 
-  ## avoid mixing of headers and libs of different wx versions, 
-  ## there may be multiple WX version s installed. 
+  ## be careful if you add something here,
+  ## avoid mixing of headers and libs of different wx versions,
+  ## there may be multiple WX version s installed.
   SET (WXWINDOWS_POSSIBLE_LIB_PATHS
     "${WXWINDOWS_ROOT_DIR}/lib"
-    ) 
-  
+    )
+
   ## monolithic?
   IF (WXWINDOWS_USE_MONOLITHIC)
-    
+
     FIND_LIBRARY(WXWINDOWS_STATIC_LIBRARY
       NAMES wx wxmsw wxmsw26
-      PATHS 
+      PATHS
       "${WXWINDOWS_ROOT_DIR}/lib/vc_lib"
       ${WXWINDOWS_POSSIBLE_LIB_PATHS}
-      DOC "wxWindows static release build library" ) 
-    
+      DOC "wxWindows static release build library" )
+
     FIND_LIBRARY(WXWINDOWS_STATIC_DEBUG_LIBRARY
-      NAMES wxd wxmswd wxmsw26d 
-      PATHS 
+      NAMES wxd wxmswd wxmsw26d
+      PATHS
       "${WXWINDOWS_ROOT_DIR}/lib/vc_lib"
-      ${WXWINDOWS_POSSIBLE_LIB_PATHS}       
+      ${WXWINDOWS_POSSIBLE_LIB_PATHS}
       DOC "wxWindows static debug build library" )
-    
+
     FIND_LIBRARY(WXWINDOWS_SHARED_LIBRARY
-      NAMES wxmsw26 wxmsw262 wxmsw24 wxmsw242 wxmsw241 wxmsw240 wx23_2 wx22_9 
-      PATHS 
+      NAMES wxmsw26 wxmsw262 wxmsw24 wxmsw242 wxmsw241 wxmsw240 wx23_2 wx22_9
+      PATHS
       "${WXWINDOWS_ROOT_DIR}/lib/vc_dll"
-      ${WXWINDOWS_POSSIBLE_LIB_PATHS} 
+      ${WXWINDOWS_POSSIBLE_LIB_PATHS}
       DOC "wxWindows shared release build library" )
-    
+
     FIND_LIBRARY(WXWINDOWS_SHARED_DEBUG_LIBRARY
-      NAMES wxmsw26d wxmsw262d wxmsw24d wxmsw241d wxmsw240d wx23_2d wx22_9d 
-      PATHS 
+      NAMES wxmsw26d wxmsw262d wxmsw24d wxmsw241d wxmsw240d wx23_2d wx22_9d
+      PATHS
       "${WXWINDOWS_ROOT_DIR}/lib/vc_dll"
-      ${WXWINDOWS_POSSIBLE_LIB_PATHS} 
+      ${WXWINDOWS_POSSIBLE_LIB_PATHS}
       DOC "wxWindows shared debug build library " )
 
 
@@ -163,124 +168,124 @@ IF(WIN32_STYLE_FIND)
     ## gl lib is always build separate:
     ##
     FIND_LIBRARY(WXWINDOWS_STATIC_LIBRARY_GL
-      NAMES wx_gl wxmsw_gl wxmsw26_gl 
-      PATHS 
+      NAMES wx_gl wxmsw_gl wxmsw26_gl
+      PATHS
       "${WXWINDOWS_ROOT_DIR}/lib/vc_lib"
-      ${WXWINDOWS_POSSIBLE_LIB_PATHS} 
+      ${WXWINDOWS_POSSIBLE_LIB_PATHS}
       DOC "wxWindows static release build GL library" )
 
     FIND_LIBRARY(WXWINDOWS_STATIC_DEBUG_LIBRARY_GL
-      NAMES wxd_gl wxmswd_gl wxmsw26d_gl 
-      PATHS 
+      NAMES wxd_gl wxmswd_gl wxmsw26d_gl
+      PATHS
       "${WXWINDOWS_ROOT_DIR}/lib/vc_lib"
-      ${WXWINDOWS_POSSIBLE_LIB_PATHS} 
+      ${WXWINDOWS_POSSIBLE_LIB_PATHS}
       DOC "wxWindows static debug build GL library" )
-    
+
 
     FIND_LIBRARY(WXWINDOWS_STATIC_DEBUG_LIBRARY_PNG
-      NAMES wxpngd 
-      PATHS 
+      NAMES wxpngd
+      PATHS
       "${WXWINDOWS_ROOT_DIR}/lib/vc_lib"
-      ${WXWINDOWS_POSSIBLE_LIB_PATHS} 
+      ${WXWINDOWS_POSSIBLE_LIB_PATHS}
       DOC "wxWindows static debug png library" )
 
     FIND_LIBRARY(WXWINDOWS_STATIC_LIBRARY_PNG
       NAMES wxpng
-      PATHS 
+      PATHS
       "${WXWINDOWS_ROOT_DIR}/lib/vc_lib"
-      ${WXWINDOWS_POSSIBLE_LIB_PATHS} 
+      ${WXWINDOWS_POSSIBLE_LIB_PATHS}
       DOC "wxWindows static png library" )
-    
+
     FIND_LIBRARY(WXWINDOWS_STATIC_DEBUG_LIBRARY_TIFF
-      NAMES wxtiffd 
-      PATHS 
+      NAMES wxtiffd
+      PATHS
       "${WXWINDOWS_ROOT_DIR}/lib/vc_lib"
-      ${WXWINDOWS_POSSIBLE_LIB_PATHS} 
+      ${WXWINDOWS_POSSIBLE_LIB_PATHS}
       DOC "wxWindows static debug tiff library" )
 
     FIND_LIBRARY(WXWINDOWS_STATIC_LIBRARY_TIFF
       NAMES wxtiff
-      PATHS 
+      PATHS
       "${WXWINDOWS_ROOT_DIR}/lib/vc_lib"
-      ${WXWINDOWS_POSSIBLE_LIB_PATHS} 
+      ${WXWINDOWS_POSSIBLE_LIB_PATHS}
       DOC "wxWindows static tiff library" )
-    
+
     FIND_LIBRARY(WXWINDOWS_STATIC_DEBUG_LIBRARY_JPEG
       NAMES wxjpegd  wxjpgd
-      PATHS 
+      PATHS
       "${WXWINDOWS_ROOT_DIR}/lib/vc_lib"
-      ${WXWINDOWS_POSSIBLE_LIB_PATHS} 
+      ${WXWINDOWS_POSSIBLE_LIB_PATHS}
       DOC "wxWindows static debug jpeg library" )
 
     FIND_LIBRARY(WXWINDOWS_STATIC_LIBRARY_JPEG
       NAMES wxjpeg wxjpg
-      PATHS 
+      PATHS
       "${WXWINDOWS_ROOT_DIR}/lib/vc_lib"
-      ${WXWINDOWS_POSSIBLE_LIB_PATHS} 
+      ${WXWINDOWS_POSSIBLE_LIB_PATHS}
       DOC "wxWindows static jpeg library" )
-    
+
     FIND_LIBRARY(WXWINDOWS_STATIC_DEBUG_LIBRARY_ZLIB
       NAMES wxzlibd
-      PATHS 
+      PATHS
       "${WXWINDOWS_ROOT_DIR}/lib/vc_lib"
-      ${WXWINDOWS_POSSIBLE_LIB_PATHS} 
+      ${WXWINDOWS_POSSIBLE_LIB_PATHS}
       DOC "wxWindows static debug zlib library" )
 
     FIND_LIBRARY(WXWINDOWS_STATIC_LIBRARY_ZLIB
       NAMES wxzlib
-      PATHS 
+      PATHS
       "${WXWINDOWS_ROOT_DIR}/lib/vc_lib"
-      ${WXWINDOWS_POSSIBLE_LIB_PATHS} 
+      ${WXWINDOWS_POSSIBLE_LIB_PATHS}
       DOC "wxWindows static zib library" )
 
     FIND_LIBRARY(WXWINDOWS_STATIC_DEBUG_LIBRARY_REGEX
       NAMES wxregexd
-      PATHS 
+      PATHS
       "${WXWINDOWS_ROOT_DIR}/lib/vc_lib"
-      ${WXWINDOWS_POSSIBLE_LIB_PATHS} 
+      ${WXWINDOWS_POSSIBLE_LIB_PATHS}
       DOC "wxWindows static debug regex library" )
 
     FIND_LIBRARY(WXWINDOWS_STATIC_LIBRARY_REGEX
       NAMES wxregex
-      PATHS 
+      PATHS
       "${WXWINDOWS_ROOT_DIR}/lib/vc_lib"
-      ${WXWINDOWS_POSSIBLE_LIB_PATHS} 
+      ${WXWINDOWS_POSSIBLE_LIB_PATHS}
       DOC "wxWindows static regex library" )
-    
-    
-    
+
+
+
     ## untested:
     FIND_LIBRARY(WXWINDOWS_SHARED_LIBRARY_GL
-      NAMES wx_gl wxmsw_gl wxmsw26_gl 
-      PATHS 
+      NAMES wx_gl wxmsw_gl wxmsw26_gl
+      PATHS
       "${WXWINDOWS_ROOT_DIR}/lib/vc_dll"
-      ${WXWINDOWS_POSSIBLE_LIB_PATHS} 
+      ${WXWINDOWS_POSSIBLE_LIB_PATHS}
       DOC "wxWindows shared release build GL library" )
 
     FIND_LIBRARY(WXWINDOWS_SHARED_DEBUG_LIBRARY_GL
-      NAMES wxd_gl wxmswd_gl wxmsw26d_gl 
-      PATHS 
-      "${WXWINDOWS_ROOT_DIR}/lib/vc_dll"      
-      ${WXWINDOWS_POSSIBLE_LIB_PATHS} 
-      DOC "wxWindows shared debug build GL library" )            
-    
-    
+      NAMES wxd_gl wxmswd_gl wxmsw26d_gl
+      PATHS
+      "${WXWINDOWS_ROOT_DIR}/lib/vc_dll"
+      ${WXWINDOWS_POSSIBLE_LIB_PATHS}
+      DOC "wxWindows shared debug build GL library" )
+
+
   ELSE (WXWINDOWS_USE_MONOLITHIC)
     ## WX is built as multiple small pieces libraries instead of monolithic
-    
+
     ## DEPECATED (jw) replaced by more general WXWINDOWS_USE_MONOLITHIC ON/OFF
-    # OPTION(WXWINDOWS_SEPARATE_LIBS_BUILD "Is wxWindows build with separate libs?" OFF)    
-    
+    # OPTION(WXWINDOWS_SEPARATE_LIBS_BUILD "Is wxWindows build with separate libs?" OFF)
+
     ## HACK: This is very dirty.
     ## because the libs of a particular version are explicitly listed
     ## and NOT searched/verified.
-    ## TODO:  Really search for each lib, then decide for 
-    ## monolithic x debug x shared x GL (=16 combinations) for at least 18 libs 
-    ## -->  about 288 combinations 
+    ## TODO:  Really search for each lib, then decide for
+    ## monolithic x debug x shared x GL (=16 combinations) for at least 18 libs
+    ## -->  about 288 combinations
     ## thus we need a different approach so solve this correctly ...
-    
+
     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).")
-    
+
     SET(WXWINDOWS_STATIC_LIBS ${WXWINDOWS_STATIC_LIBS}
       wxbase26
       wxbase26_net
@@ -304,7 +309,7 @@ IF(WIN32_STYLE_FIND)
       rpcrt4
       wsock32
       )
-    ## HACK: feed in to optimized / debug libaries if both were FOUND. 
+    ## HACK: feed in to optimized / debug libaries if both were FOUND.
     SET(WXWINDOWS_STATIC_DEBUG_LIBS ${WXWINDOWS_STATIC_DEBUG_LIBS}
       wxbase26d
       wxbase26d_net
@@ -329,29 +334,29 @@ IF(WIN32_STYLE_FIND)
       wsock32
       )
   ENDIF (WXWINDOWS_USE_MONOLITHIC)
-  
-  
+
+
   ##
   ## now we should have found all WX libs available on the system.
   ## let the user decide which of the available onse to use.
-  ## 
-  
+  ##
+
   ## if there is at least one shared lib available
-  ## let user choose wether to use shared or static wxwindows libs 
+  ## let user choose wether to use shared or static wxwindows libs
   IF(WXWINDOWS_SHARED_LIBRARY OR WXWINDOWS_SHARED_DEBUG_LIBRARY)
     ## default value OFF because wxWindows MSVS default build is static
     OPTION(WXWINDOWS_USE_SHARED_LIBS
       "Use shared versions (dll) of wxWindows libraries?" OFF)
     MARK_AS_ADVANCED(WXWINDOWS_USE_SHARED_LIBS)
-  ENDIF(WXWINDOWS_SHARED_LIBRARY OR WXWINDOWS_SHARED_DEBUG_LIBRARY)    
-  
+  ENDIF(WXWINDOWS_SHARED_LIBRARY OR WXWINDOWS_SHARED_DEBUG_LIBRARY)
+
   ## add system libraries wxwindows always seems to depend on
   SET(WXWINDOWS_LIBRARIES ${WXWINDOWS_LIBRARIES}
     comctl32
     rpcrt4
     wsock32
-    )  
-  
+    )
+
   IF (NOT WXWINDOWS_USE_SHARED_LIBS)
     SET(WXWINDOWS_LIBRARIES ${WXWINDOWS_LIBRARIES}
       ##  these ones dont seem required, in particular  ctl3d32 is not neccesary (Jan Woetzel 07/2003)
@@ -364,34 +369,34 @@ IF(WIN32_STYLE_FIND)
       )
   ENDIF (NOT WXWINDOWS_USE_SHARED_LIBS)
 
-  ## opengl/glu: TODO/FIXME: better use FindOpenGL.cmake here 
+  ## opengl/glu: TODO/FIXME: better use FindOpenGL.cmake here
   ## assume release versions of glu an dopengl, here.
   IF (WXWINDOWS_USE_GL)
     SET(WXWINDOWS_LIBRARIES ${WXWINDOWS_LIBRARIES}
       opengl32
       glu32 )
   ENDIF (WXWINDOWS_USE_GL)
-  
+
   ##
   ## select between use of  shared or static wxWindows lib then set libs to use
   ## for debug and optimized build.  so the user can switch between debug and
   ## release build e.g. within MS Visual Studio without running cmake with a
   ## different build directory again.
-  ## 
+  ##
   ## then add the build specific include dir for wx/setup.h
-  ## 
-  
+  ##
+
   IF(WXWINDOWS_USE_SHARED_LIBS)
     ##MESSAGE("DBG wxWindows use shared lib selected.")
     ## assume that both builds use the same setup(.h) for simplicity
-    
+
     ## shared: both wx (debug and release) found?
     ## assume that both builds use the same setup(.h) for simplicity
     IF(WXWINDOWS_SHARED_DEBUG_LIBRARY AND WXWINDOWS_SHARED_LIBRARY)
       ##MESSAGE("DBG wx shared: debug and optimized found.")
       FIND_PATH(WXWINDOWS_INCLUDE_DIR_SETUPH  wx/setup.h
         ${WXWINDOWS_ROOT_DIR}/lib/mswdlld
-        ${WXWINDOWS_ROOT_DIR}/lib/mswdll 
+        ${WXWINDOWS_ROOT_DIR}/lib/mswdll
         ${WXWINDOWS_ROOT_DIR}/lib/vc_dll/mswd
         ${WXWINDOWS_ROOT_DIR}/lib/vc_dll/msw )
       SET(WXWINDOWS_LIBRARIES ${WXWINDOWS_LIBRARIES}
@@ -403,29 +408,29 @@ IF(WIN32_STYLE_FIND)
           optimized ${WXWINDOWS_SHARED_LIBRARY_GL} )
       ENDIF (WXWINDOWS_USE_GL)
     ENDIF(WXWINDOWS_SHARED_DEBUG_LIBRARY AND WXWINDOWS_SHARED_LIBRARY)
-    
+
     ## shared: only debug wx lib found?
     IF(WXWINDOWS_SHARED_DEBUG_LIBRARY)
       IF(NOT WXWINDOWS_SHARED_LIBRARY)
         ##MESSAGE("DBG wx shared: debug (but no optimized) found.")
         FIND_PATH(WXWINDOWS_INCLUDE_DIR_SETUPH  wx/setup.h
-          ${WXWINDOWS_ROOT_DIR}/lib/mswdlld 
-          ${WXWINDOWS_ROOT_DIR}/lib/vc_dll/mswd  )        
+          ${WXWINDOWS_ROOT_DIR}/lib/mswdlld
+          ${WXWINDOWS_ROOT_DIR}/lib/vc_dll/mswd  )
         SET(WXWINDOWS_LIBRARIES ${WXWINDOWS_LIBRARIES}
           ${WXWINDOWS_SHARED_DEBUG_LIBRARY} )
-        IF (WXWINDOWS_USE_GL) 
+        IF (WXWINDOWS_USE_GL)
           SET(WXWINDOWS_LIBRARIES ${WXWINDOWS_LIBRARIES}
             ${WXWINDOWS_SHARED_DEBUG_LIBRARY_GL} )
         ENDIF (WXWINDOWS_USE_GL)
       ENDIF(NOT WXWINDOWS_SHARED_LIBRARY)
     ENDIF(WXWINDOWS_SHARED_DEBUG_LIBRARY)
-    
+
     ## shared: only release wx lib found?
     IF(NOT WXWINDOWS_SHARED_DEBUG_LIBRARY)
       IF(WXWINDOWS_SHARED_LIBRARY)
         ##MESSAGE("DBG wx shared: optimized (but no debug) found.")
         FIND_PATH(WXWINDOWS_INCLUDE_DIR_SETUPH  wx/setup.h
-          ${WXWINDOWS_ROOT_DIR}/lib/mswdll 
+          ${WXWINDOWS_ROOT_DIR}/lib/mswdll
           ${WXWINDOWS_ROOT_DIR}/lib/vc_dll/msw  )
         SET(WXWINDOWS_LIBRARIES ${WXWINDOWS_LIBRARIES}
           ${WXWINDOWS_SHARED_DEBUG_LIBRARY} )
@@ -433,13 +438,13 @@ IF(WIN32_STYLE_FIND)
           SET(WXWINDOWS_LIBRARIES ${WXWINDOWS_LIBRARIES}
             ${WXWINDOWS_SHARED_DEBUG_LIBRARY_GL} )
         ENDIF (WXWINDOWS_USE_GL)
-      ENDIF(WXWINDOWS_SHARED_LIBRARY)    
+      ENDIF(WXWINDOWS_SHARED_LIBRARY)
     ENDIF(NOT WXWINDOWS_SHARED_DEBUG_LIBRARY)
-    
+
     ## shared: none found?
     IF(NOT WXWINDOWS_SHARED_DEBUG_LIBRARY)
       IF(NOT WXWINDOWS_SHARED_LIBRARY)
-        MESSAGE(STATUS  
+        MESSAGE(STATUS
           "No shared wxWindows lib found, but WXWINDOWS_USE_SHARED_LIBS=${WXWINDOWS_USE_SHARED_LIBS}.")
       ENDIF(NOT WXWINDOWS_SHARED_LIBRARY)
     ENDIF(NOT WXWINDOWS_SHARED_DEBUG_LIBRARY)
@@ -448,15 +453,15 @@ IF(WIN32_STYLE_FIND)
   ELSE(WXWINDOWS_USE_SHARED_LIBS)
 
     ##jw: DEPRECATED IF(NOT WXWINDOWS_SEPARATE_LIBS_BUILD)
-    
+
     ## static: both wx (debug and release) found?
     ## assume that both builds use the same setup(.h) for simplicity
     IF(WXWINDOWS_STATIC_DEBUG_LIBRARY AND WXWINDOWS_STATIC_LIBRARY)
       ##MESSAGE("DBG wx static: debug and optimized found.")
       FIND_PATH(WXWINDOWS_INCLUDE_DIR_SETUPH  wx/setup.h
         ${WXWINDOWS_ROOT_DIR}/lib/mswd
-        ${WXWINDOWS_ROOT_DIR}/lib/msw 
-        ${WXWINDOWS_ROOT_DIR}/lib/vc_lib/mswd 
+        ${WXWINDOWS_ROOT_DIR}/lib/msw
+        ${WXWINDOWS_ROOT_DIR}/lib/vc_lib/mswd
         ${WXWINDOWS_ROOT_DIR}/lib/vc_lib/msw )
       SET(WXWINDOWS_LIBRARIES ${WXWINDOWS_LIBRARIES}
         debug     ${WXWINDOWS_STATIC_DEBUG_LIBRARY}
@@ -465,77 +470,77 @@ IF(WIN32_STYLE_FIND)
         SET(WXWINDOWS_LIBRARIES ${WXWINDOWS_LIBRARIES}
           debug     ${WXWINDOWS_STATIC_DEBUG_LIBRARY_GL}
           optimized ${WXWINDOWS_STATIC_LIBRARY_GL} )
-      ENDIF (WXWINDOWS_USE_GL)          
+      ENDIF (WXWINDOWS_USE_GL)
     ENDIF(WXWINDOWS_STATIC_DEBUG_LIBRARY AND WXWINDOWS_STATIC_LIBRARY)
-    
+
     ## static: only debug wx lib found?
     IF(WXWINDOWS_STATIC_DEBUG_LIBRARY)
       IF(NOT WXWINDOWS_STATIC_LIBRARY)
         ##MESSAGE("DBG wx static: debug (but no optimized) found.")
         FIND_PATH(WXWINDOWS_INCLUDE_DIR_SETUPH  wx/setup.h
-          ${WXWINDOWS_ROOT_DIR}/lib/mswd 
+          ${WXWINDOWS_ROOT_DIR}/lib/mswd
           ${WXWINDOWS_ROOT_DIR}/lib/vc_lib/mswd  )
         SET(WXWINDOWS_LIBRARIES ${WXWINDOWS_LIBRARIES}
           ${WXWINDOWS_STATIC_DEBUG_LIBRARY} )
-        IF (WXWINDOWS_USE_GL)           
+        IF (WXWINDOWS_USE_GL)
           SET(WXWINDOWS_LIBRARIES ${WXWINDOWS_LIBRARIES}
             ${WXWINDOWS_STATIC_DEBUG_LIBRARY_GL} )
         ENDIF (WXWINDOWS_USE_GL)
       ENDIF(NOT WXWINDOWS_STATIC_LIBRARY)
     ENDIF(WXWINDOWS_STATIC_DEBUG_LIBRARY)
-    
+
     ## static: only release wx lib found?
     IF(NOT WXWINDOWS_STATIC_DEBUG_LIBRARY)
       IF(WXWINDOWS_STATIC_LIBRARY)
         ##MESSAGE("DBG wx static: optimized (but no debug) found.")
         FIND_PATH(WXWINDOWS_INCLUDE_DIR_SETUPH  wx/setup.h
-          ${WXWINDOWS_ROOT_DIR}/lib/msw 
-          ${WXWINDOWS_ROOT_DIR}/lib/vc_lib/msw ) 
+          ${WXWINDOWS_ROOT_DIR}/lib/msw
+          ${WXWINDOWS_ROOT_DIR}/lib/vc_lib/msw )
         SET(WXWINDOWS_LIBRARIES ${WXWINDOWS_LIBRARIES}
           ${WXWINDOWS_STATIC_LIBRARY} )
-        IF (WXWINDOWS_USE_GL)                           
+        IF (WXWINDOWS_USE_GL)
           SET(WXWINDOWS_LIBRARIES ${WXWINDOWS_LIBRARIES}
             ${WXWINDOWS_STATIC_LIBRARY_GL} )
-        ENDIF (WXWINDOWS_USE_GL)                
+        ENDIF (WXWINDOWS_USE_GL)
       ENDIF(WXWINDOWS_STATIC_LIBRARY)
     ENDIF(NOT WXWINDOWS_STATIC_DEBUG_LIBRARY)
-    
+
     ## static: none found?
     IF(NOT WXWINDOWS_STATIC_DEBUG_LIBRARY AND NOT WXWINDOWS_SEPARATE_LIBS_BUILD)
       IF(NOT WXWINDOWS_STATIC_LIBRARY)
-        MESSAGE(STATUS 
+        MESSAGE(STATUS
           "No static wxWindows lib found, but WXWINDOWS_USE_SHARED_LIBS=${WXWINDOWS_USE_SHARED_LIBS}.")
       ENDIF(NOT WXWINDOWS_STATIC_LIBRARY)
-    ENDIF(NOT WXWINDOWS_STATIC_DEBUG_LIBRARY AND NOT WXWINDOWS_SEPARATE_LIBS_BUILD)      
-  ENDIF(WXWINDOWS_USE_SHARED_LIBS)  
-  
-  
+    ENDIF(NOT WXWINDOWS_STATIC_DEBUG_LIBRARY AND NOT WXWINDOWS_SEPARATE_LIBS_BUILD)
+  ENDIF(WXWINDOWS_USE_SHARED_LIBS)
+
+
   ## not neccessary in wxWindows 2.4.1 and 2.6.2
   ## but it may fix a previous bug, see
   ## http://lists.wxwindows.org/cgi-bin/ezmlm-cgi?8:mss:37574:200305:mpdioeneabobmgjenoap
   OPTION(WXWINDOWS_SET_DEFINITIONS "Set additional defines for wxWindows" OFF)
   MARK_AS_ADVANCED(WXWINDOWS_SET_DEFINITIONS)
-  IF (WXWINDOWS_SET_DEFINITIONS) 
+  IF (WXWINDOWS_SET_DEFINITIONS)
     SET(WXWINDOWS_DEFINITIONS "-DWINVER=0x400")
-  ELSE (WXWINDOWS_SET_DEFINITIONS) 
+  ELSE (WXWINDOWS_SET_DEFINITIONS)
     # clear:
     SET(WXWINDOWS_DEFINITIONS "")
-  ENDIF (WXWINDOWS_SET_DEFINITIONS) 
-  
-  
-  
+  ENDIF (WXWINDOWS_SET_DEFINITIONS)
+
+
+
   ## Find the include directories for wxwindows
   ## the first, build specific for wx/setup.h was determined before.
   ## add inc dir for general for "wx/wx.h"
-  FIND_PATH(WXWINDOWS_INCLUDE_DIR  wx/wx.h 
-    "${WXWINDOWS_ROOT_DIR}/include" )  
+  FIND_PATH(WXWINDOWS_INCLUDE_DIR  wx/wx.h
+    "${WXWINDOWS_ROOT_DIR}/include" )
   ## append the build specific include dir for wx/setup.h:
   IF (WXWINDOWS_INCLUDE_DIR_SETUPH)
     SET(WXWINDOWS_INCLUDE_DIR ${WXWINDOWS_INCLUDE_DIR} ${WXWINDOWS_INCLUDE_DIR_SETUPH} )
   ENDIF (WXWINDOWS_INCLUDE_DIR_SETUPH)
-  
-  
-  
+
+
+
   MARK_AS_ADVANCED(
     WXWINDOWS_ROOT_DIR
     WXWINDOWS_INCLUDE_DIR
@@ -557,28 +562,28 @@ IF(WIN32_STYLE_FIND)
     WXWINDOWS_SHARED_LIBRARY
     WXWINDOWS_SHARED_DEBUG_LIBRARY
     WXWINDOWS_SHARED_LIBRARY_GL
-    WXWINDOWS_SHARED_DEBUG_LIBRARY_GL    
+    WXWINDOWS_SHARED_DEBUG_LIBRARY_GL
     )
-  
-  
+
+
 ELSE(WIN32_STYLE_FIND)
 
-  IF (UNIX_STYLE_FIND) 
+  IF (UNIX_STYLE_FIND)
     ## ######################################################################
-    ## 
+    ##
     ## UNIX/Linux specific:
-    ## 
+    ##
     ## use backquoted wx-config to query and set flags and libs:
     ## 06/2003 Jan Woetzel
-    ## 
-    
+    ##
+
     OPTION(WXWINDOWS_USE_SHARED_LIBS "Use shared versions (.so) of wxWindows libraries" ON)
     MARK_AS_ADVANCED(WXWINDOWS_USE_SHARED_LIBS)
 
-    # JW removed option and force the develper th SET it. 
+    # JW removed option and force the develper th SET it.
     # OPTION(WXWINDOWS_USE_GL "use wxWindows with GL support (use additional
-      # --gl-libs for wx-config)?" OFF)
-    
+    # --gl-libs for wx-config)?" OFF)
+
     # wx-config should be in your path anyhow, usually no need to set WXWIN or
     # search in ../wx or ../../wx
     FIND_PROGRAM(CMAKE_WXWINDOWS_WXCONFIG_EXECUTABLE wx-config
@@ -586,76 +591,86 @@ ELSE(WIN32_STYLE_FIND)
       $ENV{WXWIN}/bin
       ../wx/bin
       ../../wx/bin )
-    
+
     # check wether wx-config was found:
-    IF(CMAKE_WXWINDOWS_WXCONFIG_EXECUTABLE)    
+    IF(CMAKE_WXWINDOWS_WXCONFIG_EXECUTABLE)
 
       # use shared/static wx lib?
       # remember: always link shared to use systems GL etc. libs (no static
-        # linking, just link *against* static .a libs)
+      # linking, just link *against* static .a libs)
       IF(WXWINDOWS_USE_SHARED_LIBS)
         SET(WX_CONFIG_ARGS_LIBS "--libs")
       ELSE(WXWINDOWS_USE_SHARED_LIBS)
         SET(WX_CONFIG_ARGS_LIBS "--static --libs")
       ENDIF(WXWINDOWS_USE_SHARED_LIBS)
-      
+
       # do we need additionial wx GL stuff like GLCanvas ?
       IF(WXWINDOWS_USE_GL)
         SET(WX_CONFIG_ARGS_LIBS "${WX_CONFIG_ARGS_LIBS} --gl-libs" )
       ENDIF(WXWINDOWS_USE_GL)
       ##MESSAGE("DBG: WX_CONFIG_ARGS_LIBS=${WX_CONFIG_ARGS_LIBS}===")
-      
+
       # set CXXFLAGS to be fed into CMAKE_CXX_FLAGS by the user:
-      SET(CMAKE_WXWINDOWS_CXX_FLAGS "`${CMAKE_WXWINDOWS_WXCONFIG_EXECUTABLE} --cxxflags|sed -e s/-I/-isystem/g`")
+      IF (HAVE_ISYSTEM) # does the compiler support -isystem ?
+              IF (NOT APPLE) # -isystem seem sto be unsuppored on Mac
+                IF(CMAKE_COMPILER_IS_GNUCC AND CMAKE_COMPILER_IS_GNUCXX )
+            IF (CMAKE_CXX_COMPILER MATCHES g\\+\\+)
+              SET(CMAKE_WXWINDOWS_CXX_FLAGS "`${CMAKE_WXWINDOWS_WXCONFIG_EXECUTABLE} --cxxflags|sed -e s/-I/-isystem/g`")
+            ELSE(CMAKE_CXX_COMPILER MATCHES g\\+\\+)
+              SET(CMAKE_WXWINDOWS_CXX_FLAGS "`${CMAKE_WXWINDOWS_WXCONFIG_EXECUTABLE} --cxxflags`")
+            ENDIF(CMAKE_CXX_COMPILER MATCHES g\\+\\+)
+                ENDIF(CMAKE_COMPILER_IS_GNUCC AND CMAKE_COMPILER_IS_GNUCXX )
+              ENDIF (NOT APPLE)
+      ENDIF (HAVE_ISYSTEM)
       ##MESSAGE("DBG: for compilation:
-        ##CMAKE_WXWINDOWS_CXX_FLAGS=${CMAKE_WXWINDOWS_CXX_FLAGS}===")
+      ##CMAKE_WXWINDOWS_CXX_FLAGS=${CMAKE_WXWINDOWS_CXX_FLAGS}===")
 
       # keep the back-quoted string for clarity
       SET(WXWINDOWS_LIBRARIES "`${CMAKE_WXWINDOWS_WXCONFIG_EXECUTABLE} ${WX_CONFIG_ARGS_LIBS}`")
       ##MESSAGE("DBG2: for linking:
-        ##WXWINDOWS_LIBRARIES=${WXWINDOWS_LIBRARIES}===")
-      
+      ##WXWINDOWS_LIBRARIES=${WXWINDOWS_LIBRARIES}===")
+
       # evaluate wx-config output to separate linker flags and linkdirs for
       # rpath:
       EXEC_PROGRAM(${CMAKE_WXWINDOWS_WXCONFIG_EXECUTABLE}
         ARGS ${WX_CONFIG_ARGS_LIBS}
         OUTPUT_VARIABLE WX_CONFIG_LIBS )
-      
+
       ## 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?)
+      ## 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)
-      
+
       MARK_AS_ADVANCED(
         CMAKE_WXWINDOWS_CXX_FLAGS
         WXWINDOWS_INCLUDE_DIR
         WXWINDOWS_LIBRARIES
         CMAKE_WXWINDOWS_WXCONFIG_EXECUTABLE
         )
-      
-      
+
+
       ## we really need wx-config...
-    ELSE(CMAKE_WXWINDOWS_WXCONFIG_EXECUTABLE)    
+    ELSE(CMAKE_WXWINDOWS_WXCONFIG_EXECUTABLE)
       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.")
       MARK_AS_ADVANCED(CMAKE_WXWINDOWS_WXCONFIG_EXECUTABLE)
     ENDIF(CMAKE_WXWINDOWS_WXCONFIG_EXECUTABLE)
 
-    
-    
+
+
   ELSE(UNIX_STYLE_FIND)
     MESSAGE(STATUS "FindwxWindows.cmake:  Platform unknown/unsupported by FindwxWindows.cmake. It's neither WIN32 nor UNIX")
   ENDIF(UNIX_STYLE_FIND)
@@ -666,13 +681,13 @@ IF(WXWINDOWS_LIBRARIES)
   IF(WXWINDOWS_INCLUDE_DIR OR CMAKE_WXWINDOWS_CXX_FLAGS)
     ## found all we need.
     SET(WXWINDOWS_FOUND 1)
-    
-    ## set deprecated variables for backward compatibility: 
+
+    ## set deprecated variables for backward compatibility:
     SET(CMAKE_WX_CAN_COMPILE   ${WXWINDOWS_FOUND})
     SET(WXWINDOWS_LIBRARY     ${WXWINDOWS_LIBRARIES})
     SET(WXWINDOWS_INCLUDE_PATH ${WXWINDOWS_INCLUDE_DIR})
     SET(WXWINDOWS_LINK_DIRECTORIES ${WXWINDOWS_LINK_DIRECTORIES})
     SET(CMAKE_WX_CXX_FLAGS     ${CMAKE_WXWINDOWS_CXX_FLAGS})
-    
+
   ENDIF(WXWINDOWS_INCLUDE_DIR OR CMAKE_WXWINDOWS_CXX_FLAGS)
 ENDIF(WXWINDOWS_LIBRARIES)

+ 26 - 19
Modules/Use_wxWindows.cmake

@@ -1,43 +1,50 @@
-# - Find wxWindows installation
-#
+# 
 # This convenience include finds if wxWindows is installed
 # and set the appropriate libs, incdirs, flags etc. 
-# INCLUDE_DIRECTORIES, LINK_DIRECTORIES and ADD_DEFINITIONS
-# are called.
 # author Jan Woetzel <jw -at- mip.informatik.uni-kiel.de> (07/2003)
-#
-# if you are sure you need GL then
-#  SET(WXWINDOWS_USE_GL 1)
-# *before* you include this file.
+##
+# -----------------------------------------------------
+# USAGE: 
+#   just include Use_wxWindows.cmake 
+#   in your projects CMakeLists.txt
+# INCLUDE( ${CMAKE_MODULE_PATH}/Use_wxWindows.cmake)
+##
+#   if you are sure you need GL then
+# SET(WXWINDOWS_USE_GL 1)
+#   *before* you include this file.
 # 
+# -----------------------------------------------------
+# 16.Feb.2004: changed INCLUDE to FIND_PACKAGE to read from users own non-system CMAKE_MODULE_PATH (Jan Woetzel JW)
+# 07/2006: rewrite as FindwxWidgets.cmake, kept for backward compatibilty JW
+
+MESSAGE(STATUS "Use_wxWindows.cmake is DEPRECATED. \n"
+"Please use FIND_PACKAGE(wxWidgets) and INCLUDE(${wxWidgets_USE_FILE}) instead. (JW)")
 
 
-INCLUDE(FindwxWindows)
+# ------------------------
+
+FIND_PACKAGE( wxWindows )
 
 IF(WXWINDOWS_FOUND)
-  
-  #MESSAGE("DBG Use_wxWindows.cmake:  WXWINDOWS_INCLUDE_DIR=${WXWINDOWS_INCLUDE_DIR} WXWINDOWS_LINK_DIRECTORIES=${WXWINDOWS_LINK_DIRECTORIES}     WXWINDOWS_LIBRARIES=${WXWINDOWS_LIBRARIES}  CMAKE_WXWINDOWS_CXX_FLAGS=${CMAKE_WXWINDOWS_CXX_FLAGS} WXWINDOWS_DEFINITIONS=${WXWINDOWS_DEFINITIONS}")
-  
-  IF(WXWINDOWS_INCLUDE_DIR)
+
+#MESSAGE("DBG Use_wxWindows.cmake:  WXWINDOWS_INCLUDE_DIR=${WXWINDOWS_INCLUDE_DIR} WXWINDOWS_LINK_DIRECTORIES=${WXWINDOWS_LINK_DIRECTORIES}     WXWINDOWS_LIBRARIES=${WXWINDOWS_LIBRARIES}  CMAKE_WXWINDOWS_CXX_FLAGS=${CMAKE_WXWINDOWS_CXX_FLAGS} WXWINDOWS_DEFINITIONS=${WXWINDOWS_DEFINITIONS}")
+
+ IF(WXWINDOWS_INCLUDE_DIR)
     INCLUDE_DIRECTORIES(${WXWINDOWS_INCLUDE_DIR})
   ENDIF(WXWINDOWS_INCLUDE_DIR)
- 
-  IF(WXWINDOWS_LINK_DIRECTORIES)
+ IF(WXWINDOWS_LINK_DIRECTORIES)
     LINK_DIRECTORIES(${WXWINDOWS_LINK_DIRECTORIES})
   ENDIF(WXWINDOWS_LINK_DIRECTORIES)
-  
   IF(WXWINDOWS_LIBRARIES)
     LINK_LIBRARIES(${WXWINDOWS_LIBRARIES})
   ENDIF(WXWINDOWS_LIBRARIES)
-  
   IF (CMAKE_WXWINDOWS_CXX_FLAGS)
     SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${CMAKE_WXWINDOWS_CXX_FLAGS}")
   ENDIF(CMAKE_WXWINDOWS_CXX_FLAGS)
-  
   IF(WXWINDOWS_DEFINITIONS)
     ADD_DEFINITIONS(${WXWINDOWS_DEFINITIONS})
   ENDIF(WXWINDOWS_DEFINITIONS)
-
 ELSE(WXWINDOWS_FOUND)
   MESSAGE(SEND_ERROR "wxWindows not found by Use_wxWindows.cmake")
 ENDIF(WXWINDOWS_FOUND)
+

+ 65 - 2
Modules/UsewxWidgets.cmake

@@ -1,4 +1,67 @@
-# - Same as Use_wxWindows
+# - Convenience include for using wxWidgets library
+# Finds if wxWidgets is installed 
+# and set the appropriate libs, incdirs, flags etc. 
+# INCLUDE_DIRECTORIES, LINK_DIRECTORIES and ADD_DEFINITIONS
+# are called.
 #
+# USAGE
+#  SET( wxWidgets_USE_LIBS  gl xml xrc ) # optionally: more than wx std libs
+#  FIND_PACKAGE(wxWidgets REQUIRED)
+#  INCLUDE( ${xWidgets_USE_FILE} )
+#  ... add your targets here, e.g. ADD_EXECUTABLE/ ADD_LIBRARY ...
+#  TARGET_LINK_LIBRARIERS( <yourWxDependantTarget>  ${wxWidgets_LIBRARIES})
+# 
+# DEPRECATED
+#  LINK_LIBRARIES is not called in favor of adding dependencies per target.
+#
+# AUTHOR
+#  Jan Woetzel <jw -at- mip.informatik.uni-kiel.de>
+
+
+# debug message and logging. 
+# comment these out for distribution
+IF    (NOT LOGFILE )
+  #  SET(LOGFILE "${PROJECT_BINARY_DIR}/CMakeOutput.log")
+ENDIF (NOT LOGFILE )
+MACRO(MSG _MSG)
+  #  FILE(APPEND ${LOGFILE} "${CMAKE_CURRENT_LIST_FILE}(${CMAKE_CURRENT_LIST_LINE}):   ${_MSG}\n")
+  #  MESSAGE(STATUS "${CMAKE_CURRENT_LIST_FILE}(${CMAKE_CURRENT_LIST_LINE}): ${_MSG}")
+ENDMACRO(MSG)
+
+
+MSG("wxWidgets_FOUND=${wxWidgets_FOUND}")
+IF   (wxWidgets_FOUND)
+  IF   (wxWidgets_INCLUDE_DIRS)
+    INCLUDE_DIRECTORIES( ${wxWidgets_INCLUDE_DIRS} )
+    MSG("wxWidgets_INCLUDE_DIRS=${wxWidgets_INCLUDE_DIRS}")
+  ENDIF(wxWidgets_INCLUDE_DIRS)
+
+  IF   (wxWidgets_LIBRARY_DIRS)
+    LINK_DIRECTORIES(${wxWidgets_LIBRARY_DIRS})
+    MSG("wxWidgets_LIBRARY_DIRS=${wxWidgets_LIBRARY_DIRS}")
+  ENDIF(wxWidgets_LIBRARY_DIRS)
+
+  IF   (wxWidgets_DEFINITIONS)
+    ADD_DEFINITIONS( ${wxWidgets_DEFINITIONS} )
+    MSG("wxWidgets_DEFINITIONS=${wxWidgets_DEFINITIONS}")
+  ENDIF(wxWidgets_DEFINITIONS)  
+
+  IF   (wxWidgets_CXX_FLAGS)
+    SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${wxWidgets_CXX_FLAGS}")
+    MSG("wxWidgets_CXX_FLAGS=${wxWidgets_CXX_FLAGS}")
+  ENDIF(wxWidgets_CXX_FLAGS)
 
-INCLUDE(Use_wxWindows)
+  # DEPRECATED JW
+  # just for backward compatibility: add deps to all targets
+  # library projects better use advanced FIND_PACKAGE(wxWidgets) directly.
+  #IF(wxWidgets_LIBRARIES)
+  #  LINK_LIBRARIES(${wxWidgets_LIBRARIES})
+  #  # BUG: str too long:  MSG("wxWidgets_LIBRARIES=${wxWidgets_LIBRARIES}")
+  #  IF(LOGFILE)
+  #    FILE(APPEND ${LOGFILE} "${CMAKE_CURRENT_LIST_FILE}(${CMAKE_CURRENT_LIST_LINE}):   ${wxWidgets_LIBRARIES}\n")
+  #  ENDIF(LOGFILE)
+  #ENDIF(wxWidgets_LIBRARIES)  
+  
+ELSE (wxWidgets_FOUND)
+  MESSAGE("wxWidgets requested but not found.")
+ENDIF(wxWidgets_FOUND)

+ 9 - 10
Source/CMakeLists.txt

@@ -326,11 +326,11 @@ IF(BUILD_MFCDialog)
 ENDIF(BUILD_MFCDialog)
 
 # WX Widgets GUI
-OPTION(CMAKE_BUILD_WX_DIALOG "Build wxWidgets dialog for CMake" FALSE)
-MARK_AS_ADVANCED(CMAKE_BUILD_WX_DIALOG)
-IF(CMAKE_BUILD_WX_DIALOG)
+OPTION(BUILD_WXDialog "Build wxWidgets dialog for CMake" FALSE)
+MARK_AS_ADVANCED(BUILD_WXDialog)
+IF(BUILD_WXDialog)
   SUBDIRS(WXDialog)
-ENDIF(CMAKE_BUILD_WX_DIALOG)
+ENDIF(BUILD_WXDialog)
 
 # Testing
 IF (NOT DART_ROOT)
@@ -1076,9 +1076,8 @@ IF(BUILD_TESTING)
     ENDIF(JAVA_COMPILE AND JAVA_RUNTIME AND JAVA_ARCHIVE AND NOT MINGW)
   ENDIF(NOT CMAKE_TEST_GENERATOR MATCHES "Xcode")
 
-
-  IF (CMAKE_WXWINDOWS_WXCONFIG_EXECUTABLE OR WXWINDOWS_INCLUDE_DIR)
-    # Will be set if the wxwindows gui is on
+  IF(BUILD_WXDialog AND wxWidgets_CONFIG_EXECUTABLE)
+    # Will be set if the WX gui is on
     ADD_TEST(UseWX ${CMAKE_CTEST_COMMAND}
       --build-and-test
       "${CMake_SOURCE_DIR}/Tests/UseWX"
@@ -1086,11 +1085,11 @@ IF(BUILD_TESTING)
       --build-generator ${CMAKE_TEST_GENERATOR}
       --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
       --build-exe-dir ${CMake_BINARY_DIR}/Tests/UseWX
-      --build-project UsewxWindows
-      --build-options -DCMAKE_WXWINDOWS_WXCONFIG_EXECUTABLE:FILEPATH=${CMAKE_WXWINDOWS_WXCONFIG_EXECUTABLE}
+      --build-project UsewxWidgets
+      --build-options -DwxWidgets_CONFIG_EXECUTABLE=${wxWidgets_CONFIG_EXECUTABLE}
       --test-command UseWX
       )
-  ENDIF (CMAKE_WXWINDOWS_WXCONFIG_EXECUTABLE OR WXWINDOWS_INCLUDE_DIR)
+  ENDIF(BUILD_WXDialog AND wxWidgets_CONFIG_EXECUTABLE)
 
   IF(UNIX)
     STRING(COMPARE EQUAL "${CMAKE_INSTALL_PREFIX}" "${CMake_BINARY_DIR}/Tests/TestShellInstall/Prefix"

+ 70 - 79
Source/WXDialog/CMakeLists.txt

@@ -9,88 +9,79 @@
 ## License:     wxWidgets License
 ##---------------------------------------------------------------------------
 
+# wxWindows -> wxWidgets Jan Woetzel 07/2006
+# tested with wx 2.6.3 with "multilib" build on Windows XP
 
-#wxWidgets build related stuff
-SET(WXW_USE_DEBUG OFF)
-SET(WXW_USE_UNICODE OFF)
-SET(WXW_USE_SHARED OFF)
-SET(WXW_USE_UNIV OFF)
-SET(WXW_USE_MONO OFF)
-SET(WXW_FILE_VERSION "26")
-SET(WXW_VERSION "2.6")
-
-#CMake Options
+# CMake Options
 SET(CMAKE_VERBOSE_MAKEFILE TRUE)
 
-IF(WIN32)
-    INCLUDE (${CMAKE_SOURCE_DIR}/Source/WXDialog/bin/FindwxW.cmake)
-ELSE(WIN32)
-    INCLUDE (${CMAKE_SOURCE_DIR}/Source/WXDialog/bin/FindwxWin.cmake)
-    
-    # sync flags 
-    SET(WXWIDGETS_FOUND            ${WXWINDOWS_FOUND})
-    SET(WXWIDGETS_INCLUDE_DIR      ${WXWINDOWS_INCLUDE_DIR})
-    SET(WXWIDGETS_LINK_DIRECTORIES ${WXWINDOWS_LINK_DIRECTORIES})
-    SET(WXWIDGETS_LIBRARIES        ${WXWINDOWS_LIBRARIES})
-ENDIF(WIN32)
+# suppress wx header warnings? 
+#SET(HAVE_ISYSTEM 1)
+
+# in addition to wx std libs we need
+SET( wxWidgets_USE_LIBS 
+  std 
+  html adv xml xrc )
+FIND_PACKAGE(wxWidgets REQUIRED)
+#INCLUDE(${CMAKE_ROOT}/Modules/FindwxWidgets.cmake)
 
-# Old find script
+# Start using wx stuff when it is fully found and set
+IF(wxWidgets_FOUND)
+  INCLUDE( ${wxWidgets_USE_FILE} )
 
-## Start using wx stuff when it is fully found and set
-IF(WXWIDGETS_FOUND)
+  SET (CMAKE_SRCS 
+    CMakeSetupFrame.cpp
+    CMakeSetup.cpp
+    CMakeSetupFrame.h
+    CMakeSetup.h 
+    PropertyList.cpp
+    PropertyList.h
+    app_resources.cpp
+    app_resources.h
+    progressdlg.cpp
+    progressdlg.h 
+    aboutdlg.cpp
+    aboutdlg.h 
+    optionsdlg.cpp
+    optionsdlg.h 
+    config.h 
+    CommandLineInfo.cpp
+    CommandLineInfo.h )
+  
+  # include .rc when windows    
+  IF(WIN32)
+    SET ( CMAKE_SRCS ${CMAKE_SRCS}  CMakeSetup.rc )
+  ENDIF(WIN32)
+  
+  INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/Source/WXDialog
+    ${wxWidgets_INCLUDE_DIR} )
+  LINK_DIRECTORIES( ${wxWidgets_LINK_DIRECTORIES} 
+    ${CMake_BINARY_DIR}/Source 
+    ${CMake_BINARY_DIR}/Source/kwsys )
+  
+  IF(APPLE)
+    ADD_EXECUTABLE(WXDialog MACOSX_BUNDLE  ${CMAKE_SRCS})
+  ELSE(APPLE)
+    ADD_EXECUTABLE(WXDialog WIN32  ${CMAKE_SRCS})
+  ENDIF(APPLE)
+  INSTALL_TARGETS(/bin WXDialog)
+  
+  # not required on MSVS beause bound to _DEBUG, 
+  # but other compiler may need it.
+  # However, the define prevents multiple build configurations 
+  # in one build tree,
+  # e.g. MSVS supports Debug;Release
+  # TODO: shall we add the define or not - 
+  # favor multi config or all compilers? (JW)
+  SET(CMAKE_CXX_FLAGS_DEBUG 
+    "${CMAKE_CXX_FLAGS_DEBUG} -D__WXDEBUG__ -DWXDEBUG=1")
+  
+  IF(LINUX)
+    ADD_DEFINITIONS( -DLINUX=1 )
+  ENDIF(LINUX)
+  
+  # if the checkbox view functionality is not desired,
+  # exclude this part from the smple
+  TARGET_LINK_LIBRARIES(WXDialog ${wxWidgets_LIBRARIES} cmsys CMakeLib)
 
-    SET (CMAKE_SRCS 
-            CMakeSetupFrame.cpp
-            CMakeSetup.cpp
-            CMakeSetupFrame.h
-            CMakeSetup.h 
-            PropertyList.cpp
-            PropertyList.h
-            app_resources.cpp
-            app_resources.h
-            progressdlg.cpp
-            progressdlg.h 
-            aboutdlg.cpp
-            aboutdlg.h 
-            optionsdlg.cpp
-            optionsdlg.h 
-            config.h 
-            CommandLineInfo.cpp
-            CommandLineInfo.h )
-            
-    # include .rc when windows
-    
-    IF(WIN32)
-        SET ( CMAKE_SRCS 
-                ${CMAKE_SRCS} 
-                CMakeSetup.rc )
-    ENDIF(WIN32)
-     
-    INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/Source/WXDialog
-                        ${WXWIDGETS_INCLUDE_DIR})
-    LINK_DIRECTORIES( ${WXWIDGETS_LINK_DIRECTORIES} ${CMake_BINARY_DIR}/Source ${CMake_BINARY_DIR}/Source/kwsys )
-    IF(APPLE)
-      ADD_EXECUTABLE(WXDialog MACOSX_BUNDLE  ${CMAKE_SRCS})
-    ELSE(APPLE)
-      ADD_EXECUTABLE(WXDialog WIN32  ${CMAKE_SRCS})
-    ENDIF(APPLE)
-    INSTALL_TARGETS(/bin WXDialog)
-    SET(CMAKE_CXX_FLAGS "${CMAKE_WX_CXX_FLAGS}")
-    SET(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -D__WXDEBUG__ -DWXDEBUG=1")
-                                     
-    IF(LINUX)
-      ADD_DEFINITIONS( -DLINUX=1 )
-    ENDIF(LINUX)
-    
-    # if the checkbox view functionality is not desired,
-    # exclude this part from the smple
-    SET(WXWIDGETS_LIBRARIES ${WXWIDGETS_LIBRARIES})
-    TARGET_LINK_LIBRARIES(WXDialog ${WXWIDGETS_LIBRARIES} cmsys CMakeLib)
-        
-    # if UPX is found, make a target
-    
-    #INCLUDE (${CMAKE_SOURCE_DIR}/Source/WXDialog/bin/FindUPX.cmake)    
-    #IF(UPX_FOUND)
-    #END(UPX_FOUND)
-        
-ENDIF(WXWIDGETS_FOUND)
+ENDIF(wxWidgets_FOUND)

+ 4 - 7
Source/WXDialog/bin/FindUPX.cmake

@@ -5,14 +5,11 @@
 # UPX_FOUND             Is set to 1 when upx is found
 
 FIND_PATH(UPX_PROGRAM_PATH upx.exe
-    "c:\Program Files\upx"
-    "d:\Program Files\upx"
-    "e:\Program Files\upx"
-    "f:\Program Files\upx"
-    "g:\Program Files\upx"
-    "h:\Program Files\upx"
+  ${UPX_DIR}
+  $ENV{UPX_DIR}
+  "$ENV{ProgramFiles}/upx"
   )
-  
+
 # when found, note this as target
 IF(UPX_PROGRAM_PATH)
   SET(UPX_FOUND 1)

+ 4 - 0
Source/WXDialog/bin/FindwxW.cmake

@@ -1,3 +1,6 @@
+
+MESSAGE("${CMAKE_CURRENT_FILE} is deprecated, please use FindwxWidgets.cmake instead.")
+
 #
 # FindwxW.cmake
 # v1.01 2005-05-27
@@ -14,6 +17,7 @@
 #  WXWIDGETS_INCLUDE_DIR    = all include path of wxWindows
 #  WXWIDGETS_DEFINITIONS  = all flags of wxWindows
 
+
 # NOTE: This module REQUIRES that an environment variable named WXWIN
 # be set to the base wxWidgets installation directory.
 # Under Unix, you must also set and environment variable named WXWINCFG

+ 5 - 0
Source/WXDialog/bin/FindwxWin.cmake

@@ -1,3 +1,8 @@
+
+
+MESSAGE("${CMAKE_CURRENT_FILE} is deprecated, please use FindwxWidgets.cmake instead.")
+
+
 ##---------------------------------------------------------------------------
 ## $RCSfile$
 ## $Source$

+ 4 - 0
Source/WXDialog/bin/UsewxW.cmake

@@ -1,3 +1,7 @@
+
+MESSAGE("${CMAKE_CURRENT_FILE} is deprecated, please use FindwxWidgets.cmake instead.")
+
+
 #
 # UsewxW.cmake
 # v1.0 2005-05-27

+ 4 - 6
Tests/UseWX/CMakeLists.txt

@@ -1,9 +1,7 @@
-PROJECT (UsewxWindows)
+PROJECT (UsewxWidgets)
 
-INCLUDE( ${CMAKE_ROOT}/Modules/Use_wxWindows.cmake)
+FIND_PACKAGE(wxWidgets REQUIRED)
+INCLUDE( ${wxWidgets_USE_FILE} )
 
 ADD_EXECUTABLE (UseWX WIN32 WX.cxx)
-
-#TODO: 
-#- dll linking is not working on WIN32, need to '-DWXUSINGDLL' to preprocessor
-
+TARGET_LINK_LIBRARIES(UseWX ${wxWidgets_LIBRARIES} )

+ 5 - 1
Tests/UseWX/WX.cxx

@@ -51,9 +51,13 @@ bool MyApp::OnInit()
 
     //Testing if link to wx debug library
 #ifdef __WXDEBUG__
-    printf("If you read this you're in debug mode.\n");
+    printf("If you read this you're in __WXDEBUG__ debug mode.\n");
 #endif  //__WXDEBUG__
 
+#ifdef _DEBUG
+    printf("If you read this then _DEBUG is defined.\n");
+#endif  //_DEBUG
+
     wxChar ch = wxT('*');
     wxString s = wxT("Hello, world!");
     int len = s.Len();