Pour un certain nombre de raisons, je dois générer manuellement une bibliothèque statique à l'aide d'une commande personnalisée.CMake add_custom_command avec target_link_libraries
Cependant, il semble que la commande personnalisée n'est exécutée que lorsqu'une cible demande spécifiquement ses fichiers de sortie.
Si j'essaie de lier la bibliothèque statique générée avec target_link_libraries
, CMake se plaint de ne pas trouver de règle pour la générer.
# Building library on the fly
add_custom_command(OUTPUT mylib.a
COMMAND ...
)
add_executable(myexe main.cpp)
target_link_libraries(myexe mylib.a) # Fails miserably
J'imagine que je dois insérer une cible ou une dépendance en quelque sorte entre l'appel et la target_link_libraries
un add_custom_command
, mais je ne peux pas comprendre comment le faire correctement.
J'ai spécifié le chemin que vous avez dit, mais il ne fonctionne toujours pas .. – Svalorzen
Hm, si CMake seule piste changer dans le fichier de bibliothèque sans se lier à 'add_custom_command'. On dirait que vous devez recourir à la cible de la bibliothèque IMPORTED, comme décrit [dans cette question] (http://stackoverflow.com/questions/31274577/custom-target-as-a-target-library-in-cmake). BTW cette question ressemble à la dupliquer pour le vôtre. – Tsyvarev
Oui, il semble que c'est le même problème, ne pouvait pas le trouver avant. – Svalorzen