我开始为非开发人员创建一个必须是用户友好的的CMake项目。我知道这不是一件容易的事,但我已经使用了ccmake
,他们似乎很高兴。
我尝试过常规,例如使用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友好”:)
答案 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以避免与客户混淆。