CMake安装目标依赖项

时间:2016-10-14 07:30:02

标签: c++ cmake

我正在编写一个包含库本身和示例的库,我正在使用CMake:

  requirejs(["FileSaver.js"], function(FileSaver) {
    //FileSaver is now available as function
    console.log(FileSaver);
  });

当我运行cmake_minimum_required(VERSION 3.6) add_executable (example main.cpp) install(DIRECTORY include DESTINATION include PATTERN ".DS_Store" EXCLUDE) 时 - 它会编译cmake --build . --target install目标并安装example目录

我想在构建include目标时排除构建example目标并仅安装include目录,如果在没有任何特殊目标的情况下运行,则构建install

我希望example 构建: example

我希望cmake --build . --target install 构建example

我应该如何更改我的CMakeLists.txt以使其正常工作?

1 个答案:

答案 0 :(得分:3)

安装时无法排除单个 CMake目标。

问题是“安装”目标可能仅取决于“所有”(默认)目标。

虽然你可以删除'install' - > “全部”依赖关系(通过设置CMAKE_SKIP_INSTALL_ALL_DEPENDENCY变量),可能无法为“安装”添加其他依赖关系

所以,在安装之前

cmake --build . --target install

执行

cmake --build .

不会构建任何内容(甚至是您希望在任何情况下构建的库)。