Installation 检测安装目录中的文件是否被覆盖

Installation 检测安装目录中的文件是否被覆盖,installation,makefile,cmake,automake,Installation,Makefile,Cmake,Automake,我正在从源代码配置CMake项目,并使用make构建和安装它,即 $ ls ./build/ ./source/ $ cd build/ $ cmake ../source/ [...] $ make [...] $ make install [...] 我现在注意到项目的配置很糟糕,因为它包含许多同名文件,这些文件在安装目录中被覆盖,例如,/usr/local/include/mystring.h通过make install多次写入 是否有系统的方法来检测文件是否在同一个项目中被重写?好的

我正在从源代码配置CMake项目,并使用
make
构建和安装它,即

$ ls
./build/  ./source/
$ cd build/
$ cmake ../source/
[...]
$ make
[...]
$ make install
[...]
我现在注意到项目的配置很糟糕,因为它包含许多同名文件,这些文件在安装目录中被覆盖,例如,
/usr/local/include/mystring.h
通过
make install
多次写入


是否有系统的方法来检测文件是否在同一个项目中被重写?

好的,您可以将
install()
调用包装到您自己的函数中,该函数将所有已安装的文件存储在缓存列表变量中,并在实际调用
install()
之前检查现有项


您还可以检查
${PROJECT\u BINARY\u DIR}/install\u manifest.txt
文件-在您的情况下,它可能会包含重复的文件。

使用
sort install\u manifest.txt | uniq--count--repeated检查安装清单中是否有重复的行。