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

User-friendly CMake library paths (CCMake)

本文关键字:路径 CCMake CMake 用户      更新时间:2023-10-16

我开始创建一个CMake项目,必须对非开发人员友好。我知道这并不容易,但我已经使用了ccmake,他们似乎对此很满意

然而,不知何故,我需要在文本gui中显示我的所有库根路径。他们需要看到选项,我必须遵守(其中一些在窗户下)。

我已经尝试了通常的方法,例如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,并设置头和lib目录,它们出现在ccmake中。奇怪的是,Boost_DIR没有出现在文本gui中!当然,除非你按下t,但这些并不是我要处理的真正的"高级用户"。此外,在我的mac上(有自制程序)仍然是空的(,即Boost_DIR-NOTFOUND)。这让人们很恼火,因为他们期待/usr/local

你会怎么做,尽可能地对用户友好?包括"窗口友好型":)

CMake很有可能找到Boost_INCLUDE_DIRS和Boost_LIBRARY_DIRS,而Boost_DIR仍然找不到。

至少在Windows上,如果您将Boost下载到某个不知名的地方,然后构建并安装它(bjam install),就会发生这种情况。在Windows上,"安装"会将头文件和库复制到类似"C:\Boost\include"answers"C:\Boost \libs"的文件中。

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

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