2012-03-19 25 views
7

Actualmente estoy trabajando en la transición sobre un proyecto de Visual C++ (que tiene múltiples subproyectos dentro de él) a CMake.Trabajar con múltiples proyectos en CMake

Hay una cosa de la que no estoy seguro: básicamente, incluir los subproyectos del archivo CMakeLists.txt de nivel superior, solo utilizo el comando add_subdirectory, y hacer referencia a los directorios en los que están almacenados estos subproyectos.

Sin embargo, tengo un proyecto que está en el mismo directorio como mi archivo CMakeLists.txt nivel superior, y así me pregunto si todavía es posible incluir este archivo de alguna manera? CMake no permite que llame a add_subdirectory en el PROJECT_BINARY_DIR existente (véase más adelante):

add_subdirectory(${PROJECT_BINARY_DIR}) #not allowed in CMake 

No puedo pensar en otra manera para que incluyera este subproyecto en mi CMake construir. ¿Algunas ideas?

Respuesta

12

Todo lo que add_subdirectory hace es agregar un subdirectorio con un archivo CMakeLists.txt, por lo que no tendría sentido permitirle agregar el directorio actual. Simplemente puede agregar la lógica CMake para compilar esa parte de su proyecto en el archivo CMakeLists.txt. Si desea separar la lógica, entonces usted podría ponerlo en build_project.cmake, y luego usar incluyen,

include(build_project.cmake) 

Puede incluir tantos otros archivos CRealice como te gusta, y que serán evaluados código CMake como si estuviera pegado en línea. Entonces todos los comandos normales add_executable y similares funcionarían.

Cuestiones relacionadas