Próbuję dodać niestandardowy krok kompilacji w CMake, który generuje niektóre pliki. Nie znalazłem opisu, jak to działa.Dodaj niestandardowy krok kompilacji w CMake
Mam projekt, w którym pliki źródłowe, nagłówkowe & muszą być generowane przez ODB dla C++. ODB pobiera nagłówki klas jako argumenty i generuje pliki źródłowe, które chcę użyć w moim projekcie.
Teraz mam następujące polecenie w moim 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
)
dla pliku person.hpp
ODB powinien generować person-odb.hxx
person-odb.cxx
, person-odb.ixx
, ale polecenie CUpewnij I''ve używany niczego nie wytwarzają . W terminalu to polecenie działa dobrze.
Co robię źle?
EDIT: Problem można rozwiązać dodając następujące linie:
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})
To nadal nie działa, gdy usuwam "ZALEŻA" i "WERBATIM". –
@DavidBulczak spójrz na moją edycję. Używam VS w pracy, dlatego to działa dla mnie. –
Ok. Dzięki. Używam gcc/make i innych narzędzi GNU. Czy istnieją inne sposoby dodawania niestandardowych kroków wstępnej kompilacji w programie CMake? –