首页 > 解决方案 > CMAKE 调用系统命令

问题描述

cmake_minimum_required(VERSION 2.8.9)
project(XXXXPack_Installation)


add_custom_command(
  OUTPUT 
        "${CMAKE_CURRENT_BINARY_DIR}/XXXXPack.32.0/config.status"
   DEPENDS unZip
   COMMAND ${CMAKE_COMMAND}
   ARGS -E chdir ${CMAKE_BINARY_DIR}/XXXXPack.32.0 ./configure
   COMMENT "Configuring  using Autotools"
   )  

add_custom_command(
   OUTPUT 
        ${CMAKE_CURRENT_BINARY_DIR}/XXXXInstallation_genfile 
   DEPENDS 
        ${CMAKE_CURRENT_BINARY_DIR}/XXXXPack.32.0/config.status
   COMMAND ${CMAKE_COMMAND}
   ARGS -E chdir ${CMAKE_BINARY_DIR}/XXXXPack.32.0 make
   COMMAND ${CMAKE_COMMAND}
   ARGS -E chdir ${CMAKE_BINARY_DIR}/XXXXPack.32.0 make install
   COMMAND ${CMAKE_COMMAND}
   ARGS -E chdir ${CMAKE_BINARY_DIR}/XXXXPack.32.0 make samples
   COMMAND ${CMAKE_COMMAND}
   ARGS -E chdir ${CMAKE_BINARY_DIR}/XXXXPack.32.0 make config
   COMMAND ${CMAKE_COMMAND} -E echo Running: ldconfig
   COMMAND 
        ${CMAKE_COMMAND} -E touch ${CMAKE_BINARY_DIR}/XXXXInstallation_genfile
   COMMENT "Compiling & Installing XXXX"
   )                     


add_custom_target(makedlu ALL
    DEPENDS 
        ${CMAKE_CURRENT_BINARY_DIR}/XXXXPack.32.0/config.status 
        ${CMAKE_CURRENT_BINARY_DIR}/XXXXInstallation_genfile
    COMMAND 
        ${CMAKE_COMMAND} -E echo XXXX for custom target generated
    WORKING_DIRECTORY 
        ${CMAKE_CURRENT_SOURCE_DIR}
    VERBATIM
)

你好,

上面的 cmake 编译并安装了一个包,我无法在上述命令的帮助下执行一些 post bulid 步骤,如 ldconfig、adduser、usermod、chown、chmod 等。我试图像这样调用 ldconfig

COMMAND ${CMAKE_COMMAND} -E ldconfig

它抛出错误。如何使用 cmake 完成上述 ldconfig、adduser、usermod、chown、chmod 等步骤。我尝试添加外部 shell 脚本并执行它,但它也不起作用,cmake 执行没有任何错误,但 shell 脚本中的命令没有带来任何效果。

标签: ubuntucmake

解决方案


推荐阅读