Ajouter de l'étape de génération personnalisée dans CMake

J'essaye d'ajouter une étape de génération personnalisée dans CMake qui génère des fichiers. Je n'ai pas trouvé une description de la façon dont il fonctionne.

J'ai un projet pour lequel la source, l'en-tête & fichiers de mise en œuvre doivent être générés par le PMO pour le C++. ODB prend la classe en-têtes comme arguments et génère des fichiers source que je veux utiliser dans mon projet.

Droit maintenant, j'ai la commande suivante dans mon 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
)

Pour un fichier person.hpp PMO devraient générer person-odb.hxx, person-odb.cxx, person-odb.ixx mais la commande CMake j'ai utilisé n'est pas de générer quoi que ce soit. Dans un terminal cette commande fonctionne très bien.

Ce que je fais mal?

MODIFIER: Le problème peut être résolu en ajoutant les lignes suivantes:

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})

OriginalL'auteur David Bulczak | 2013-08-25