关于cmake:addcustomcommand用法

9次阅读

共计 604 个字符,预计需要花费 2 分钟才能阅读完成。

第一个参数 OUTPUT 或者 TARGET 决定了此命令何时被执行。

TARGET

意思是当 target 被编译完时,就执行此 COMMAND

add_executable(MakeTable MakeTable.cxx)

add_custom_command(
    TARGET MakeTable
    POST_BUILD(默认值)
    COMMAND MakeTable ${CMAKE_CURRENT_BINARY_DIR}/Table2.h
    )

OUTPUT

意思是 OUTPUT 所指局部被依赖时,才执行此 COMMAND。上面的 add_library(…) 如果最初不蕴含 ${CMAKE_CURRENT_BINARY_DIR}/Table.h 那么这个 COMMAND 就不会被执行

add_executable(MakeTable MakeTable.cxx)
 
add_custom_command (OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/Table.h
  COMMAND MakeTable ${CMAKE_CURRENT_BINARY_DIR}/Table.h
  DEPENDS MakeTable
  )
 
include_directories(${CMAKE_CURRENT_BINARY_DIR} )
 
add_library(Mylib SHARED mylib.cpp ${CMAKE_CURRENT_BINARY_DIR}/Table.h  )

源码地址

正文完
 0