J'ai un petit projet avec un Makefile que j'essaie de convertir en CMake, principalement juste pour acquérir de l'expérience avec CMake. Pour les besoins de cet exemple, le projet contient un fichier source (C ++, bien que je ne pense pas que le langage soit particulièrement pertinent) et un fichier de bibliothèque statique que j'ai copié ailleurs. Supposons pour les arguments que le code source de la bibliothèque n'est pas disponible; Je n'ai que le fichier .a et l'en-tête correspondant.
Mon Makefile fait à la main contient cette règle de construction:
main: main.o libbingitup.a
g++ -o main main.o libbingitup.a
qui fonctionne très bien. Comment dire à CMake de reproduire cela? Pas littéralement ce makefile exact, bien sûr, mais quelque chose qui inclut une commande de liaison équivalente. J'ai essayé les moyens évidents mais naïfs, comme
add_executable(main main.cpp libbingitup.a)
ou
add_executable(main main.cpp)
target_link_libraries(main libbingitup.a)
ainsi que diverses choses avec link_directories(.)
ou add_library(bingitup STATIC IMPORTED)
etc., mais rien à ce jour qui aboutisse à un lien réussi. Que dois-je faire?
Détails de la version: CMake 2.8.7 sous Linux (Kubuntu 12.04) avec GCC 4.6.3