【发布时间】:2015-09-25 10:26:36
【问题描述】:
对于如何在我的 cmake 项目中包含第三方库,我感到很头疼。目前,我构建 Poco 和其他一些生成它们各自的 Config.cmake 的工具,我将其与 find_package 一起使用。我有一个包装构建脚本,它构建我所有的依赖项并将它们分别打包以进行调试和发布(我不想调整他们的 cmake 脚本,除非我真的真的需要因为维护)。
我以为我可以这样做:
find_package(Foo
HINTS "${CMAKE_SOURCE_DIR}/some/path/debug/libFoo/lib/cmake"
REQUIRED
)
get_target_property(LIB_FOO_DEBUG lib_foo LOCATION)
find_package(Foo
HINTS "${CMAKE_SOURCE_DIR}/some/path/release/libFoo/lib/cmake"
REQUIRED
)
get_target_property(LIB_FOO_RELEASE lib_foo LOCATION)
set(LIB_FOO_LIBRARIES optimized "${LIB_FOO_RELEASE}" debug "${LIB_FOO_DEBUG}")
message("LIB_FOO_LIBRARIES: \"${LIB_FOO_LIBRARIES}\"")
这是:LIB_FOO_LIBRARIES: "optimized;C:/path/to/proj/some/path/debug/libFoo/lib/foo.lib;debug;C:/path/to/proj/some/path/debug/libFoo/lib/foo.lib"
似乎对目标 Foo 的 find_package 的第一次调用已被缓存,而我并不真正想要。
我是不是走错了路?如何使用 Visual Studio 生成器正确处理第三方库?
非常感谢任何指针。
【问题讨论】:
标签: visual-studio cmake