用户友好的CMake库路径(CCMake)

时间:2013-11-22 11:36:47

标签: c++ boost cmake

我开始为非开发人员创建一个必须是用户友好的的CMake项目。我知道这不是一件容易的事,但我已经使用了ccmake,他们似乎很高兴。

但是,不知怎的,我需要在文本gui中显示我的所有库根路径。他们需要看到这个选项,我必须遵守(其中一些是在windows下)。

我尝试过常规,例如使用Boost:

# Boost
FIND_PACKAGE(Boost 1.54.0 COMPONENTS program_options REQUIRED)
SET(Boost_DIR          "${Boost_DIR}"          CACHE STRING "Boost installation directory")
SET(Boost_INCLUDE_DIRS "${Boost_INCLUDE_DIRS}" CACHE STRING "Boost headers directory")
SET(Boost_LIBRARY_DIRS "${Boost_LIBRARY_DIRS}" CACHE STRING "Boost libraries directory")

这很好,但我当然只想使用Boost_DIR。最佳选择是让他们看到预填充FIND_PACKAGE的结果的选项。

我无法理解。

当然FIND_PACKAGE找到Boost,并设置header和lib目录,它们出现在ccmake中。奇怪的是,Boost_DIR没有出现在文字gui中!当然,除非您按t,但这些并不是我正在处理的“高级用户”。此外,在我的mac(使用自制软件)上仍然是空的(即。Boost_DIR-NOTFOUND)。这让人很懊恼,因为他们期待/usr/local

为了尽可能方便用户,你会做什么?包括“Windows友好”:)

1 个答案:

答案 0 :(得分:0)

CMake很可能找到Boost_INCLUDE_DIRS和Boost_LIBRARY_DIRS而Boost_DIR保持未找到状态。

如果您将Boost下载到某个不起眼的地方,然后构建并安装它(bjam install),那么至少会出现这种情况。在Windows上,“安装”会将标题和库复制到“C:\ Boost \ include”和“C:\ Boost \ libs”之类的内容。

CMake知道要查看“C:\ Boost”,在这种情况下,它会初始化Boost_INCLUDE_DIRS和Boost_LIBRARY_DIRS,但不会启动Boost_DIR。

可能您可以在GUI中隐藏BOOST_DIR以避免与客户混淆。