CMake:找到用MinGW / MSYS构建的wxWidgets?

时间:2013-08-25 20:22:34

标签: cmake mingw wxwidgets msys

我使用MinGW编译了wxWidgets 2.8.12。为了实际进行构建,我使用安装前缀H:\ MinGW-libs调用了通过MSYS shell与wxWidgets一起分发的autotools构建文件。

这样做的结果是我有一个Unix风格的文件树,其中包含我的wxWidgets头文件和库(.a文件,而不是.dll),根目录为H:\ MinGW-libs。

我的问题是我无法让CMake找到这些文件。当我尝试使用CMake gui中的“configure”按钮时,它会找到其他依赖项(即boost,我必须指定BOOST_ROOT,但它找不到wxWidgets。我看到wxWidgets_ROOT_DIR是一个可用的常量,我可以设置但是没有明显的选择

H:\MinGW-libs(我的wxWidgets的安装前缀)

H:\MinGW-libs\lib

H:\MinGW-libs\include

修复错误。

关于此问题有old post on the CMake mailing list但实际上并没有任何信息表明如何在此用例中修复它。我唯一的提示是,在“Unix风格”文件树和“Windows风格”文件树中查找wxWidgets之间存在差异。

如何让CMake在Windows 7上找到安装在Unix风格文件树中的wxWidgets?有没有办法让CMake使用wx-config?我问这个是因为从MSYS命令行使用wx-config获取lib和头位置工作得很好。

1 个答案:

答案 0 :(得分:2)

来自FindwxWidgets.cmake

if(WIN32 AND NOT CYGWIN AND NOT MSYS)
  set(wxWidgets_FIND_STYLE "win32")
else()
  if(UNIX OR MSYS)
    set(wxWidgets_FIND_STYLE "unix")
  endif()
endif()

因此假定“MSYS Makefiles”生成器(cmake -G "MSYS Makefiles")使用Unix风格的树,但不适用于“MinGW Makefile”生成器。 你用哪一个?