Используйте команду CMake add _custom _для создания источника для другой цели

Я попробовал этот фиктивный пример:

CMakeLists.txt

cmake_minimum_required( VERSION 2.8 )
project( testcmake )

add_custom_command(
  OUTPUT testcmake.h
  COMMAND xxd -i testcmake.txt testcmake.h
  DEPENDS testcmake.txt
)

add_executable( testcmake testcmake.c testcmake.h )

testcmake.c

#include <stdio.h>
#include "testcmake.h"

int main()
{
    int i;

    for ( i = 0 ; i < testcmake_txt_len ; i++ )
    {
        fputc( testcmake_txt[ i ], stdout );
    }
}

testcmake.txt

foo
bar
baz

Проблема

Это не удается с:

[...]
xxd: testcmake.txt: No such file or directory
[...]

Добавление WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}заставляет все работать нормально, но я не хочу, чтобы вывод моей пользовательской команды отображался в моем исходном каталоге, я хочу, чтобы все промежуточные файлы оставались в каталоге сборки CMake, как и любое нестандартное правило.

6
задан cYrus 21 July 2012 в 12:17
поделиться