findwxwindows.cmake
来自「编译器」· CMAKE 代码 · 共 694 行 · 第 1/2 页
CMAKE
694 行
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)
## 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)
# ctl3d32
debug ${WXWINDOWS_STATIC_DEBUG_LIBRARY_ZLIB} optimized ${WXWINDOWS_STATIC_LIBRARY_ZLIB}
debug ${WXWINDOWS_STATIC_DEBUG_LIBRARY_REGEX} optimized ${WXWINDOWS_STATIC_LIBRARY_REGEX}
debug ${WXWINDOWS_STATIC_DEBUG_LIBRARY_PNG} optimized ${WXWINDOWS_STATIC_LIBRARY_PNG}
debug ${WXWINDOWS_STATIC_DEBUG_LIBRARY_JPEG} optimized ${WXWINDOWS_STATIC_LIBRARY_JPEG}
debug ${WXWINDOWS_STATIC_DEBUG_LIBRARY_TIFF} optimized ${WXWINDOWS_STATIC_LIBRARY_TIFF}
)
ENDIF (NOT WXWINDOWS_USE_SHARED_LIBS)
## 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/vc_dll/mswd
${WXWINDOWS_ROOT_DIR}/lib/vc_dll/msw )
SET(WXWINDOWS_LIBRARIES ${WXWINDOWS_LIBRARIES}
debug ${WXWINDOWS_SHARED_DEBUG_LIBRARY}
optimized ${WXWINDOWS_SHARED_LIBRARY} )
IF (WXWINDOWS_USE_GL)
SET(WXWINDOWS_LIBRARIES ${WXWINDOWS_LIBRARIES}
debug ${WXWINDOWS_SHARED_DEBUG_LIBRARY_GL}
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 )
SET(WXWINDOWS_LIBRARIES ${WXWINDOWS_LIBRARIES}
${WXWINDOWS_SHARED_DEBUG_LIBRARY} )
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/vc_dll/msw )
SET(WXWINDOWS_LIBRARIES ${WXWINDOWS_LIBRARIES}
${WXWINDOWS_SHARED_DEBUG_LIBRARY} )
IF (WXWINDOWS_USE_GL)
SET(WXWINDOWS_LIBRARIES ${WXWINDOWS_LIBRARIES}
${WXWINDOWS_SHARED_DEBUG_LIBRARY_GL} )
ENDIF (WXWINDOWS_USE_GL)
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
"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)
#########################################################################################
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/vc_lib/msw )
SET(WXWINDOWS_LIBRARIES ${WXWINDOWS_LIBRARIES}
debug ${WXWINDOWS_STATIC_DEBUG_LIBRARY}
optimized ${WXWINDOWS_STATIC_LIBRARY} )
IF (WXWINDOWS_USE_GL)
SET(WXWINDOWS_LIBRARIES ${WXWINDOWS_LIBRARIES}
debug ${WXWINDOWS_STATIC_DEBUG_LIBRARY_GL}
optimized ${WXWINDOWS_STATIC_LIBRARY_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/vc_lib/mswd )
SET(WXWINDOWS_LIBRARIES ${WXWINDOWS_LIBRARIES}
${WXWINDOWS_STATIC_DEBUG_LIBRARY} )
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 )
SET(WXWINDOWS_LIBRARIES ${WXWINDOWS_LIBRARIES}
${WXWINDOWS_STATIC_LIBRARY} )
IF (WXWINDOWS_USE_GL)
SET(WXWINDOWS_LIBRARIES ${WXWINDOWS_LIBRARIES}
${WXWINDOWS_STATIC_LIBRARY_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
"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)
## 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)
SET(WXWINDOWS_DEFINITIONS "-DWINVER=0x400")
ELSE (WXWINDOWS_SET_DEFINITIONS)
# clear:
SET(WXWINDOWS_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" )
## 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
WXWINDOWS_INCLUDE_DIR_SETUPH
WXWINDOWS_STATIC_LIBRARY
WXWINDOWS_STATIC_LIBRARY_GL
WXWINDOWS_STATIC_DEBUG_LIBRARY
WXWINDOWS_STATIC_DEBUG_LIBRARY_GL
WXWINDOWS_STATIC_LIBRARY_ZLIB
WXWINDOWS_STATIC_DEBUG_LIBRARY_ZLIB
WXWINDOWS_STATIC_LIBRARY_REGEX
WXWINDOWS_STATIC_DEBUG_LIBRARY_REGEX
WXWINDOWS_STATIC_LIBRARY_PNG
WXWINDOWS_STATIC_DEBUG_LIBRARY_PNG
WXWINDOWS_STATIC_LIBRARY_JPEG
WXWINDOWS_STATIC_DEBUG_LIBRARY_JPEG
WXWINDOWS_STATIC_DEBUG_LIBRARY_TIFF
WXWINDOWS_STATIC_LIBRARY_TIFF
WXWINDOWS_SHARED_LIBRARY
WXWINDOWS_SHARED_DEBUG_LIBRARY
WXWINDOWS_SHARED_LIBRARY_GL
WXWINDOWS_SHARED_DEBUG_LIBRARY_GL
)
ELSE(WIN32_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.
# OPTION(WXWINDOWS_USE_GL "use wxWindows with GL support (use additional
# --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
$ENV{WXWIN}
$ENV{WXWIN}/bin
../wx/bin
../../wx/bin )
# check wether wx-config was found:
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)
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:
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}===")
# 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}===")
# 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?)
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)
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)
ENDIF(WIN32_STYLE_FIND)
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(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)
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?