Saltar al contenido

Especificar incluir directorios en la línea de comando de cmake

Solución:

Si la ruta a sus encabezados es fija en relación con sus fuentes, entonces debería poder evitar tener que pasar esta información a través de la línea de comando.

Digamos que la estructura de directorios de su proyecto es:

/CMakeLists.txt
/my_sources/main.cpp
/my_sources/foo.cpp
/my_includes/foo.hpp

y en su CMakeLists.txt, actualmente tiene algo como:

add_executable(MyExe my_sources/main.cpp my_sources/foo.cpp)

luego para agregar el /my_includes carpeta a la lista de rutas de búsqueda incluidas, solo necesita agregar lo siguiente:

include_directories(my_includes)

Para más información sobre include_directories, correr

cmake --help-command include_directories

Respuesta a la actualización en cuestión:

Sí, usando el -D opción de línea de comando solo hazlo

cmake . -DEO_SOURCE_DIR:PATH=<Path to required dir>

La variable ${EO_SOURCE_DIR} se almacena en caché como resultado de esto, por lo que solo necesita este -D argumento una vez (a menos que la ruta requerida cambie o elimine su archivo CMakeCache, etc.)

La forma correcta de hacer esto es definir una variable en CMakeLists.txt y pedirle al usuario que la configure:

set(YOURLIB_INCLUDE_DIR "" CACHE FILEPATH "Path to yourlib includes")

if(NOT EXISTS ${YOURLIB_INCLUDE_DIR}/header.h)
  message(SEND_ERROR "Can't find header.h in ${YOURLIB_INCLUDE_DIR})
endif()

include_directories(${YOURLIB_INCLUDE_DIR})

Ahora puedes configurarlo desde la línea de comando: cmake -D YOURLIB_INCLUDE_DIR=/path/to/yourlib/include .

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *