CMAKE вызывая системные команды - PullRequest
0 голосов
/ 20 апреля 2020
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 компилирует и устанавливает пакет, я не могу выполнить некоторые шаги после lidconfig, adduser, usermod, chown, chmod et c с помощью команды Выше команды. Я пытаюсь вызвать ldconfig, как это

COMMAND ${CMAKE_COMMAND} -E ldconfig

он выдает ошибку. Как вышеперечисленные шаги, такие как ldconfig, adduser, usermod, chown, chmod, могут быть выполнены с помощью cmake. Я попытался добавить скрипт внешней оболочки и выполнить его, но он также не работает, cmake выполняется без ошибок, но команды в скрипте не дали никакого эффекта.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...