2010-08-07 19 views
6

en mi proyecto, todo el código fuente reside en una carpeta llamada "src". Hay un archivo CMakeLists.txt en la raíz de mis proyectos (arriba de "src"), pero simplemente declara el proyecto e incluye el subdirectorio "src". El archivo CMakeLists.txt en src hace todo el trabajo, incluido "add_binary".Donde poner el binario en CMake?

(es que una forma común de hacerlo, o debo poner toda la inteligencia en el archivo CMakeLists.txt en el nivel raíz?)

Si construyo el proyecto ahora, mi binario se coloca en el carpeta src, pero esto no tiene mucho sentido, prefiero tenerlo en la carpeta raíz o en una carpeta dedicada "bin".

¿Cómo se hace esto?

Respuesta

6

Si desea poner todos los archivos ejecutables en un subdirectorio llamado "bin", entonces se puede utilizar la siguiente línea en el archivo CMakeLists.txt superior:

SET(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin") 

Basta con retirar /bin y serán ejecutables creado en el directorio raíz. Existe una variable similar para las bibliotecas: CMAKE_LIBRARY_OUTPUT_DIRECTORY.

PS. Agregar lógica por directorio está bien. Parece ser la forma común de hacer las cosas y mantiene las cosas bien organizadas.

Cuestiones relacionadas