CMake:如何安装大量静态文件,但仅在必要时才安装?

时间:2016-07-15 17:15:11

标签: cmake

前言:我是cmake的新手,并且对它的工作方式只有一点点知识,所以这可能不像我看起来那么难。 : - )

对于各种"遗产"原因,我使用cmake 2.8.12,我有一个很复杂的项目,我没有创建,但现在我试图找出如何使其更快地构建。在驱动所有内容的顶级CMakeLists.txt文件中,为应用程序构建和其他内容定义了许多目标,最后它有类似" include(StaticResources)"。

StaticResources.cmake定义(并且最后调用)一个函数,该函数只使用静态文件迭代大量dirs,并将每个dirs安装到输出目录,以及安装一些显式枚举文件,一些其中一些是重命名的。

我试图消除的问题是,即使构建什么都不做,这个函数需要很多秒,因为cmake会通过并访问每个目录/文件以查看是否需要复制它。我试图弄清楚如何构建它,以便在没有任何改变的情况下它甚至看不到那些东西。

有什么想法吗?我想到的事情(但不确定如何): - 可能使StaticResources函数以某种方式依赖于主应用程序目标,这样它只在必须构建主应用程序时运行(当然,这不是理想的,因为很多东西可以在不需要资源的情况下改变该应用程序待部署) - 拥有StaticResources" build"目标,计算所有这些静态资源文件的状态的哈希值,并仅在更改内容时将其写入输出文件,然后使用此静态资源函数使用实际安装静态文件的自定义代码安装该目标。看起来这样可以确保仅在资源实际发生变化时才考虑安装,但我不确定cmake是否允许我进行安装(StaticResources"

0 个答案:

没有答案