このダミーの例を試しました:
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 ビルド ディレクトリに残しておきます。