cmake - librsvg - cmake 模块调试模式附加一个后缀
问题描述
我正在尝试让我们依赖的原生 Windows 构建工作librsvg-2
。它已通过vcpkg正确安装。我们通常使用 cmake 构建并制作了一个自定义模块来找到这个库。这在 unix 世界中非常有效,但不适用于 Windows 并且针对 Debug 构建或 Release 构建(来自 Visual Studio)。d
这是因为实际的 lib 文件在 Windows 上以 a 为后缀。
这是我们的FindLibRSVG.cmake
include(LibFindMacros)
libfind_package(LibRSVG Cairo)
libfind_package(LibRSVG GDK-PixBuf)
libfind_pkg_detect(LibRSVG librsvg-2.0
FIND_PATH librsvg/rsvg.h PATH_SUFFIXES librsvg-2 librsvg-2.0
FIND_LIBRARY rsvg-2
)
libfind_process(LibRSVG)
为了让构建在 Windows 上运行,我必须为我们的 cmake 命令指定一个标志,如下所示:
cmake .. -DLibRSVG_LIBRARY=./vcpkg_installed/x64-windows/debug/lib/rsvg-2.40d.lib
请注意d
图书馆末尾的 。
我知道有一个SelectLibraryConfigurations
可用的 cmake 模块,但我不太确定如何正确使用它。
我想要实现的是能够在调试模式下构建而无需提供此标志。
解决方案
推荐阅读
- apache-spark - Combined Spark output into single file
- mysql - 如何在某些条件下从另一个表更新 MySQL 表
- c - 程序未读取整个文件
- reactjs - 你如何使用 react-apollo-hook 中的 useMutation 来执行删除突变?
- fortran - 我想显示一个 4*5 矩阵并且我的程序没有错误,但是当我运行它时显示程序停止工作
- django - 运行 ./manage test --keepdb 后测试数据库不为空
- c# - 如何在不使用 Microsoft.SharePoint.Client 和 Microsoft.SharePoint.Client.Runtime 等 DLL 的情况下使用 c# 创建共享点列表?
- javascript - HTML div 格式:动态匹配视口大小的三个图像(图像滑块)
- c - 如何仅计算列表中以大写字母开头的单词?
- performance - 根据支持的浏览器列表添加 polyfill 的推荐方法