いくつかのファイルを生成するカスタム ビルド ステップを CMake に追加しようとしています。それがどのように機能するかの説明は見つかりませんでした。
C++ 用の ODB によってソース、ヘッダー、および実装ファイルを生成する必要があるプロジェクトがあります。ODB はクラス ヘッダーを引数として取り、プロジェクトで使用するソース ファイルを生成します。
現在、CMakeLists.txt に次のコマンドがあります。
add_custom_command(TARGET ${PROJECT_NAME}
PRE_BUILD
COMMAND odb -o /home/david/dev/ --std c++11 -I/home/david/dev/ -d sqlite --generate- query --generate-schema ${PROMOTER_LIB_PREFIX}/entities/person.hpp
DEPENDS ${PROJECT_NAME}
VERBATIM
)
ファイルの場合、person.hpp
ODB はperson-odb.hxx
,を生成するはずですがperson-odb.cxx
、person-odb.ixx
私が使用した CMake コマンドは何も生成しません。端末では、このコマンドは正常に機能します。
私は何を間違っていますか?
EDIT:次の行を追加することで問題を解決できます:
set(FAKE_TARGET fakeTarget)
add_custom_target(fakeTarget
odb -o /home/david/dev/ --std c++11 -I/home/david/dev/ -d sqlite --generate-query --generate-schema ${PROMOTER_LIB_PREFIX}/entities/person.hpp
)
add_dependencies(${PROJECT_NAME} ${FAKE_TARGET})