2015-07-22 2 views
1

Я пытаюсь добавить custom_command с CMake и вызовите команду эхо «$»> file.txtcustom_command ECHO с особым характером

до тех пор, как я положил $ в нем, конфигурационный файл будет генерировать, но не строить ,

Я также пробовал эхо «\ $» и, похоже, не работает.

add_custom_command(TARGET ${TARGET_NAME} 
        POST_BUILD 
        WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/out 
        COMMAND echo "-keep class com.android.**\$* { ; }" >> ./proguard.txt 
       ) 

Команда работает CMake, но до тех пор, как я называю ниндзя, я получил следующее сообщение об ошибке:

error: 'src', needed by 'all', missing and no known rule to make it 

Походит CMake не может генерировать шаг сборки. Мое намерение состоит в том, чтобы напечатать этот файл **$ в файле.

+0

Это поможет, если вы разместите сегменты своих усилий. –

+0

add_custom_command (TARGET $ {TARGET_NAME} POST_BUILD working_directory $ {CMAKE_CURRENT_BINARY_DIR}/из COMMAND эхо "-keep класса com.android ** \ $ *. {*;}" >> ./proguard.txt командование CMake работает, но до тех пор, как я называю ninja, я получил следующую ошибку: ошибка: 'src', необходимо для 'all', отсутствует и не известно, как это сделать Кажется, что cmake не может сгенерировать шаг построения. Мое намерение состоит в том, чтобы напечатать это ** $ * в файл. – apikachu

+0

@apikachu: Ваш комментарий должен быть частью вашего вопроса, так как он существенно изменяет его значение. Просто «отредактируйте» свой вопрос и скопируйте свой комментарий в него. – Tsyvarev

ответ

0

Оба

COMMAND echo "$$" > file.txt 

и

COMMAND echo "$" > file.txt VERBATIM 

выход $ знака в данном файле.

EDIT: Это работает с генераторами makefile, и только после того, как с терминала выдается make. Обычно знак перенаправления «>» не работает, как ожидалось, в выражении COMMAND.

+0

Я пробовал оба и до сих пор получил ошибку. – apikachu

+0

На самом деле это не так, поскольку 'add_custom_command' не поддерживает перенаправление. – DevSolar

+0

@DevSolar: Он работает на моей машине с cmake 2.8.9 и генератором makefile. В то время, когда этот ответ был написан, вопрос не содержит уточнений, таких как генератор ниндзя. – Tsyvarev