CMake:取决于Visual Studio项目

时间:2014-06-27 16:20:48

标签: visual-c++ visual-studio-2008 cmake

我的项目目前依赖于一个库(PJSIP),该库与用于Windows的* NIX和Visual Studio项目文件的Autotools构建脚本一起分发。

我的项目目前使用CMake构建系统。当前脚本是特定于Linux的:它假定PJSIP已作为先决条件安装(在系统范围的库位置,由软件包管理器管理),并且仅指定target_link_libraries(pj pjnath pjlib-util)。这对Linux软件来说是规范的。

我想让我的项目也适用于Visual Studio。 设置此依赖项的规范Windows方法是什么?是否应在某些全局Visual Studio设置中配置?或者PJSIP应该在子目录中,CMake告诉它调用正确的构建系统本身吗?

1 个答案:

答案 0 :(得分:1)

要查找受影响的第三方库,请按照CMake指南http://www.cmake.org/Wiki/CMake:How_To_Find_Libraries

进行操作

一般来说,CMake更喜欢绝对路径。在我对CMake的评估过程中,我发现它没有一种规范的方法来引用Visual Studio中的依赖库。他们的信息是,应该在每个开发人员系统上运行CMake,以便为该特定目标站设置构建环境。因此,我永远无法直接从CMake创建可以版本化的解决方案文件,因为路径是绝对的。只有在创建后修改CMake项目文件之后才有可能。

由于CMake软件需要在构建系统创建之前在我们的开发者工作站上获得批准,因此我多次为此问题付出了努力。

最后,我为所有依赖项目编译了修改后的CMakeLists.txt文件,这些项目找到了到位置的正确规范路径,并警告任何构建的人(这些是仅用于构建的依赖第三方库)在版本更改上)必须安装CMake。