Tengo un pequeño proyecto con un Makefile que estoy tratando de convertir a CMake, principalmente para obtener experiencia con CMake. Para los propósitos de este ejemplo, el proyecto contiene un archivo fuente (C ++, aunque no creo que el lenguaje sea particularmente relevante) y un archivo de biblioteca estática que he copiado de otra parte. Supongamos por el bien del argumento que el código fuente de la biblioteca no está disponible; Solo tengo el archivo .a y el encabezado correspondiente.
Mi Makefile hecho a mano contiene esta regla de compilación:
main: main.o libbingitup.a
g++ -o main main.o libbingitup.a
que funciona bien. ¿Cómo le digo a CMake que reproduzca esto? No literalmente este archivo MAKE exacto, por supuesto, sino algo que incluye un comando de vinculación equivalente. He probado las formas obvias pero ingenuas, como
add_executable(main main.cpp libbingitup.a)
o
add_executable(main main.cpp)
target_link_libraries(main libbingitup.a)
así como varias cosas con link_directories(.)
o add_library(bingitup STATIC IMPORTED)
etc. pero nada hasta ahora que resulte en una vinculación exitosa. ¿Qué debería estar haciendo?
Detalles de la versión: CMake 2.8.7 en Linux (Kubuntu 12.04) con GCC 4.6.3