首页 > 解决方案 > 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 模块,但我不太确定如何正确使用它。

我想要实现的是能够在调试模式下构建而无需提供此标志。

注意:LibFindMacros可以在这里找到实现

标签: cmakecmake-moduleslibrsvg

解决方案


推荐阅读