我正在从CMake脚本为QtCreator生成.pro文件。稍后将使用QMAKE_EXTRA_COMPILERS指令生成项目中的文件(仅当文件早于其他文件时,才使用外部工具从其他文件中重新生成该文件)。
为此,我这样做:
file(WRITE ${output_file_path} "To be generated..." )
execute_process( COMMAND touch.exe ${output_file_path} -t 0001010101 )
但是execute_process( COMMAND touch.exe ${output_file_path} -t 0001010101 )
需要一段时间。我的项目中有数百个类似的文件,注释此execute_process
行将CMake生成时间除以2(0m45s与1m30s)。我敢打赌,外部流程的执行会减慢速度。...
是否可以使用纯CMake命令更改文件时间戳?
答案 0 :(得分:0)
cmake内置命令是首选方法。您可以使用以下方法touch
个文件
execute_process(COMMAND ${CMAKE_COMMAND} -E touch ${output_file_path} -t 0001010101)
这也适用于任何平台,独立于Linux或Windows。
如果您有“数百个文件”,则可以通过为touch命令提供多个参数来在一条语句中进行触摸,从而节省了运行make / build系统命令的时间(较少依赖项来解决cmake构建系统:)。