Saya memiliki proyek kecil dengan Makefile yang saya coba ubah ke CMake, kebanyakan hanya untuk mendapatkan pengalaman dengan CMake. Untuk keperluan contoh ini, proyek berisi file sumber (C ++, meskipun menurut saya bahasanya tidak terlalu relevan) dan file pustaka statis yang telah saya salin dari tempat lain. Asumsikan demi argumen bahwa kode sumber ke perpustakaan tidak tersedia; Saya hanya memiliki file .a dan header yang sesuai.
Makefile buatan tangan saya berisi aturan build ini:
main: main.o libbingitup.a
g++ -o main main.o libbingitup.a
yang berfungsi dengan baik. Bagaimana cara memberi tahu CMake untuk mereproduksi ini? Tidak secara harfiah makefile persis ini, tentu saja, tetapi sesuatu yang menyertakan perintah penautan yang setara. Saya sudah mencoba cara yang jelas tapi naif, seperti
add_executable(main main.cpp libbingitup.a)
atau
add_executable(main main.cpp)
target_link_libraries(main libbingitup.a)
serta berbagai hal dengan link_directories(.)
atau add_library(bingitup STATIC IMPORTED)
dll. tetapi sejauh ini tidak ada yang menghasilkan hubungan yang berhasil. Apa yang harus saya lakukan?
Rincian versi: CMake 2.8.7 di Linux (Kubuntu 12.04) dengan GCC 4.6.3