使用 CMake 强制 wxWidgets 2.x
Force wxWidgets 2.x with CMake
我正在编译一个 Code::Blocks 插件。由于与 wxWidgets 3.0 不兼容,Code::Blocks 是针对 wxWidgets 2.8 编译的。
插件的 CMakeLists.txt 是:
CMAKE_MINIMUM_REQUIRED(VERSION 2.8)
PROJECT(cbvike)
SET(VERSION_SERIES 0)
SET(VERSION_MAJOR 2)
SET(VERSION_MINOR 1)
FIND_PACKAGE(wxWidgets REQUIRED)
INCLUDE_DIRECTORIES(${wxWidgets_INCLUDE_DIRS})
INCLUDE_DIRECTORIES(/usr/include/codeblocks)
INCLUDE_DIRECTORIES(/usr/include/codeblocks/wxscintilla/include)
ADD_DEFINITIONS(-D __WXGTK__)
ADD_DEFINITIONS(-D __linux__)
ADD_DEFINITIONS(-std=c++11)
这发现 wxgtk 3.0 导致了一些问题。我正在使用 Arch,所以我不能只删除 wxgtk 3.0 的开发包 - headers 已经捆绑了。
如何在 CMake 中强制使用 wxgtk 2.x?
好吧,我曾经尝试制作一个兼容的 2.x/3.x wxWidgets 系列......我从来没有发现它是否有效......所以告诉我它是否按预期工作:
# Look for wxwidgets
list (APPEND _COMP adv core base)
if (UNIX)
set (TOOLKIT_VERSION_NEED "3.0") # change here to desired version
set (wxWidgets_CONFIG_OPTIONS --version=${TOOLKIT_VERSION_NEED})
endif ()
find_package (wxWidgets COMPONENTS ${_COMP})
if (wxWidgets_FOUND)
include (${wxWidgets_USE_FILE})
endif ()
我正在编译一个 Code::Blocks 插件。由于与 wxWidgets 3.0 不兼容,Code::Blocks 是针对 wxWidgets 2.8 编译的。
插件的 CMakeLists.txt 是:
CMAKE_MINIMUM_REQUIRED(VERSION 2.8)
PROJECT(cbvike)
SET(VERSION_SERIES 0)
SET(VERSION_MAJOR 2)
SET(VERSION_MINOR 1)
FIND_PACKAGE(wxWidgets REQUIRED)
INCLUDE_DIRECTORIES(${wxWidgets_INCLUDE_DIRS})
INCLUDE_DIRECTORIES(/usr/include/codeblocks)
INCLUDE_DIRECTORIES(/usr/include/codeblocks/wxscintilla/include)
ADD_DEFINITIONS(-D __WXGTK__)
ADD_DEFINITIONS(-D __linux__)
ADD_DEFINITIONS(-std=c++11)
这发现 wxgtk 3.0 导致了一些问题。我正在使用 Arch,所以我不能只删除 wxgtk 3.0 的开发包 - headers 已经捆绑了。
如何在 CMake 中强制使用 wxgtk 2.x?
好吧,我曾经尝试制作一个兼容的 2.x/3.x wxWidgets 系列......我从来没有发现它是否有效......所以告诉我它是否按预期工作:
# Look for wxwidgets
list (APPEND _COMP adv core base)
if (UNIX)
set (TOOLKIT_VERSION_NEED "3.0") # change here to desired version
set (wxWidgets_CONFIG_OPTIONS --version=${TOOLKIT_VERSION_NEED})
endif ()
find_package (wxWidgets COMPONENTS ${_COMP})
if (wxWidgets_FOUND)
include (${wxWidgets_USE_FILE})
endif ()