findwxwidgets.cmake
来自「DTMK软件开发包,此为开源软件,是一款很好的医学图像开发资源.」· CMAKE 代码 · 共 486 行 · 第 1/2 页
CMAKE
486 行
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
# "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\wxWindows_is1;Inno Setup: App Path]" ## WX 2.4.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
# C:\\wxWindows-2.4.2
# D:\\wxWindows-2.4.2
DOC "wxWidgets base/installation directory?"
)
DBG_MSG("WXWIDGETS_ROOT_DIR: ${WXWIDGETS_ROOT_DIR}")
# 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)
DBG_MSG("WX_ROOT_DIR: ${WX_ROOT_DIR}")
IF(WX_ROOT_DIR)
# *** Temporary hack for cmake 2.2-patch3 and older.
# FIND_PATH(<VAR> NAMES ... PATHS ...) not available
# ***
#FIND_PATH(WXWIDGETS_LIB_DIR
# NAMES wxpng.lib wxpngd.lib
# PATHS
# ${WX_ROOT_DIR}/lib/vc_lib
# ${WX_ROOT_DIR}/lib/vc_dll
# NO_DEFAULT_PATH
#)
IF(NOT WXWIDGETS_LIB_DIR AND EXISTS ${WX_ROOT_DIR}/lib/vc_lib)
SET(WXWIDGETS_LIB_DIR ${WX_ROOT_DIR}/lib/vc_lib CACHE PATH "Path to wxWidgets libraries." FORCE)
ENDIF(NOT WXWIDGETS_LIB_DIR AND EXISTS ${WX_ROOT_DIR}/lib/vc_lib)
IF(NOT WXWIDGETS_LIB_DIR AND EXISTS ${WX_ROOT_DIR}/lib/vc_dll)
SET(WXWIDGETS_LIB_DIR ${WX_ROOT_DIR}/lib/vc_dll CACHE PATH "Path to wxWidgets libraries." FORCE)
ENDIF(NOT WXWIDGETS_LIB_DIR AND EXISTS ${WX_ROOT_DIR}/lib/vc_dll)
DBG_MSG("WXWIDGETS_LIB_DIR: ${WXWIDGETS_LIB_DIR}")
# 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)
DBG_MSG("WX_LIB_DIR: ${WX_LIB_DIR}")
IF(WX_LIB_DIR)
SET(WXWIDGETS_FOUND TRUE)
#---------------------------------------------------------------------
# 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_DIR ${WX_ROOT_DIR}/include)
ELSE(EXISTS ${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_DIR ${WXWIDGETS_INCLUDE_DIR}
${WX_LIB_DIR}/${WXWIDGETS_CONFIGURATION})
ELSE(EXISTS ${WX_LIB_DIR}/${WXWIDGETS_CONFIGURATION}/wx/setup.h)
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)
# Libraries we are interested in.
IF(WXWIDGETS_USE_LIBS)
# Add the common required libs.
SET(WXWIDGETS_USE_LIBS ${WXWIDGETS_USE_LIBS}
png tiff jpeg zlib regex expat
)
ELSE(WXWIDGETS_USE_LIBS)
# Default minimal use setting (i.e., link to only core and base).
SET(WXWIDGETS_USE_LIBS base core
png tiff jpeg zlib regex expat
)
ENDIF(WXWIDGETS_USE_LIBS)
# 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)
FIND_PROGRAM(WXWIDGETS_CONFIG_EXE wx-config)
IF(WXWIDGETS_CONFIG_EXE)
SET(WXWIDGETS_FOUND TRUE)
# run the wx-config program to get cxxflags
EXEC_PROGRAM(${WXWIDGETS_CONFIG_EXE}
ARGS "--cxxflags"
OUTPUT_VARIABLE WXWIDGETS_CXX_FLAGS
RETURN_VALUE RET)
IF(NOT RET EQUAL 0)
SET(WXWIDGETS_FOUND FALSE)
ENDIF(NOT 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}")
DBG_MSG(${WXWIDGETS_USE_LIBS})
EXEC_PROGRAM(${WXWIDGETS_CONFIG_EXE}
ARGS "--libs ${WXWIDGETS_USE_LIBS}"
OUTPUT_VARIABLE WXWIDGETS_LIBRARIES
RETURN_VALUE RET)
IF(RET EQUAL 0)
SEPARATE_ARGUMENTS(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_LINK_DIRECTORIES
"${WXWIDGETS_LIBRARIES}")
STRING(REGEX REPLACE "[-][L]" ""
WXWIDGETS_LINK_DIRECTORIES
"${WXWIDGETS_LINK_DIRECTORIES}")
ELSE(RET EQUAL 0)
SET(WXWIDGETS_FOUND FALSE)
ENDIF(RET EQUAL 0)
ENDIF(WXWIDGETS_CONFIG_EXE)
ENDIF(WIN32)
DBG_MSG("WXWIDGETS_FOUND : ${WXWIDGETS_FOUND}" )
DBG_MSG("WXWIDGETS_INCLUDE_DIR: ${WXWIDGETS_INCLUDE_DIR}")
DBG_MSG("WXWIDGETS_LIBRARIES : ${WXWIDGETS_LIBRARIES}" )
DBG_MSG("WXWIDGETS_LINK_DIRECTORIES: ${WXWIDGETS_LINK_DIRECTORIES}")
DBG_MSG("WXWIDGETS_CXX_FLAGS : ${WXWIDGETS_CXX_FLAGS}" )
#=====================================================================
#=====================================================================
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 "Warning: wxWidgets was not found.")
ENDIF(wxWidgets_FIND_REQUIRED)
ENDIF(NOT wxWidgets_FIND_QUIETLY)
ENDIF(NOT WXWIDGETS_FOUND)
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?