用户友好的CMake库路径(CCMake)
User-friendly CMake library paths (CCMake)
我开始创建一个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,以避免与客户混淆。
- 如何将更多文件夹添加到c++include路径
- 带有特殊路径部分的"std::filesystem::weakly_canonical"失败
- C++A*算法并不总是在路径中具有目标节点
- 从函数角度看ID到文件路径的内部与外部映射
- 通过ccmake在cmake中缓存依赖选项
- boost xml parsingl将xml的路径作为变量发送
- 对于MacOS上的G++,如何添加默认的include目录/usr/local/include和默认的库搜索路径/usr
- 如何使用cppcheck处理半相对包含路径
- 在C++中设置基于操作系统的文件路径
- 基于编译器选项的编译二进制路径
- 按边长度递归搜索图中所有可行路径
- 使用变量值作为 PlaySound 中的路径
- 如何转换真实路径 CString c++
- 从 GUID 获取 USB 卷路径
- 查找 GCD:并非所有控制路径都返回值
- C++17 文件系统::remove_all 带有通配符路径
- 在带有尾部斜杠的路径上返回 std::filesystem::create_directories() 的值
- 获取当前正在运行的 exe 名称(不是路径)
- 如何从 Skia 路径几何体中获取网格?
- 用户友好的CMake库路径(CCMake)