CMAKE add_custom_command все еще сбивает с толку - PullRequest
0 голосов
/ 06 мая 2018

Я просмотрел ответ об использовании add_custom_command для cmake и не смог заставить его работать в Android Studio. У меня проблемы с поиском цели при запуске.

add_custom_command( TARGET b.c.o
                    POST_BUILD
                    file(RENAME ${CMAKE_HOME_DIRECTORY}/newfolder/customer.txt ${CMAKE_HOME_DIRECTORY}/newfolder/used_customer.txt)
                  )

Я получаю следующее:

CMake Error at CMakeLists.txt:73 (add_custom_command):
  No TARGET ')' has been created in this directory.
-- Configuring incomplete, errors occurred!
See also "C:/Documents/Android_files/local_app/BApp/.externalNativeBuild/cmake/debug/x86_64/CMakeFiles/CMakeOutput.log".

FAILURE: сборка не удалась, исключение.

Что пошло не так:

A problem occurred configuring project ':BApp'.
    > executing external native build for cmake C:\Documents\Android_files\local_app\BApp\CMakeLists.txt

Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

Получите дополнительную помощь по номеру https://help.gradle.org

СТРОИТЬ ОШИБКА в 32 с

Кажется, он не может найти целевой файл каждый раз, когда я запускаю его. Можете ли вы помочь с этим вопросом?

1 Ответ

0 голосов
/ 06 мая 2018

Вы не можете вкладывать команды cmake ( file - это команда cmake) в add_custom_command. Команда от add_custom_command выполняется в терминале, а не внутри скрипта cmake. Вы можете использовать mv в Linux для переименования файла:

add_custom_command(TARGET b.c.o POST_BUILD COMMAND mv ${CMAKE_HOME_DIRECTORY}/newfolder/customer.txt ${CMAKE_HOME_DIRECTORY}/newfolder/used_customer.txt)

Вы можете использовать переименовать в Windows, чтобы переименовать файл:

add_custom_command(TARGET b.c.o POST_BUILD COMMAND rename ${CMAKE_HOME_DIRECTORY}/newfolder/customer.txt ${CMAKE_HOME_DIRECTORY}/newfolder/used_customer.txt)

Вы можете использовать командный режим cmake (вероятно, лучший вариант):

add_custom_command(TARGET b.c.o POST_BUILD COMMAND ${CMAKE_COMMAND} -E rename ${CMAKE_HOME_DIRECTORY}/newfolder/customer.txt ${CMAKE_HOME_DIRECTORY}/newfolder/used_customer.txt)

Или вы можете ввести команду cmake:

  file(RENAME ${CMAKE_HOME_DIRECTORY}/newfolder/customer.txt ${CMAKE_HOME_DIRECTORY}/newfolder/used_customer.txt)

в отдельном файле с именем custom_command.cmake и выполните:

   add_custom_command(TARGET b.c.o POST_BUILD COMMAND ${CMAKE_COMMAND} -P custom_command.cmake -D CMAKE_HOME_DIRECTORY=${CMAKE_HOME_DIRECTORY} )
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...