dependencies - Dependencia de subdirectorios CMake
subdirectory (1)
Soy muy nuevo en CMake. De hecho, lo intento a través de Kdevelop4 con C ++.
Tengo la costumbre de crear subdirectorios para cada espacio de nombres que creo, incluso si todas las fuentes deben compilarse y vincularse en un único ejecutable. Bueno, cuando creo un directorio en kdevelop, actualiza CMakeLists.txt con un comando add_subdirectory y crea un nuevo CMakeLists.txt debajo de él, pero eso solo no agrega las fuentes debajo de él a la lista de compilación.
Tengo la raíz CMakeLists.txt de la siguiente manera:
project(gear2d) add_executable(gear2d object.cc main.cc) add_subdirectory(component)
En el componente / I tienen las fuentes que deseo compilar y vincular para producir los ejecutables gear2d. ¿Cómo puedo lograr eso?
Las preguntas frecuentes de CMake tienen esta entrada, pero si esa es la respuesta prefiero quedarme con los Makefiles simples.
¿Hay alguna forma de hacer esto?
Agregar un subdirectorio no hace mucho más que especificar a CMake que debe ingresar al directorio y buscar allí otro CMakeLists.txt. Aún necesita crear una biblioteca con los archivos fuente con add_library y vincularla a su ejecutable con target_link_libraries . Algo como lo siguiente:
En el subdirectorio CMakeLists.txt
set( component_SOURCES ... ) # Add the source-files for the component here
# Optionally you can use file glob (uncomment the next line)
# file( GLOB component_SOURCES *.cpp )below
add_library( component ${component_SOURCES} )
Top-dir CMakeLists.txt
project( gear2d )
add_subdirectory( component )
add_executable( gear2d object.cc main.cc )
target_link_libraries( gear2d component )