cmake以及如何避免多次解压缩存档

时间:2018-04-30 10:44:44

标签: cmake tar unzip

我使用以下cmake命令提取zip文件

 ${CMAKE_COMMAND} -E tar xkf 

按原样解压缩文件。

我想在文件解压后避免解压缩。 我怎样才能做到这一点?似乎没有为此目的的选择。

1 个答案:

答案 0 :(得分:0)

添加依赖项。

解压缩操作的结果必须在稍后的构建步骤中使用。添加解压缩和构建步骤之间的依赖关系。

  1. 使用add_custom_command解压缩文件并将其复制到预期的文件夹
  2. 通过依赖于提取的文件来扩展目标
  3. 以下示例针对目标TTNLIB显示此内容。

    示例:

    add_custom_command(OUTPUT ${CMAKE_SOURCE_DIR}/src/ttnbitvector.cpp
    COMMAND ${CMAKE_COMMAND} -E tar xkf ${CMAKE_SOURCE_DIR}/external/ttnbitvector.cpp.zip -C ${CMAKE_SOURCE_DIR}/external
    COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_SOURCE_DIR}/external/ttnbitvector.cpp ${CMAKE_SOURCE_DIR}/src/ttnbitvector.cpp
    WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/external
    COMMENT Extract ${CMAKE_SOURCE_DIR}/src/ttnbitvector.cpp
    )
    
    add_library(TTNLIB SHARED ${SOURCES} ${CMAKE_SOURCE_DIR}/src/ttnbitvector.cpp)
    

    注意:阅读add_custom_command

    的文档

    有关详细信息,请参阅cmake solutions