Articles of cmake

¿Cómo puedo obtener CMake para encontrar mi instalación alternativa de Boost?

He instalado la versión más reciente de Boost en /usr/local (con inclusiones en /usr/local/include/boost y bibliotecas en /usr/local/lib/boost ) y ahora bash instalar Wt desde el origen, pero CMake (versión 2.6) no parece encontrar la instalación de Boost. Intenta dar sugerencias útiles sobre la configuración de BOOST_DIR y Boost_LIBRARYDIR, pero no he podido hacer que […]

Construir una herramienta inmediatamente para que pueda ser utilizada más adelante en la misma ejecución de CMake

Tengo un problema interesante con el huevo y la gallina y una posible solución (vea mi respuesta), pero esa solución usa CMake de una manera inusual. Mejores alternativas o comentarios serían bienvenidos. EL PROBLEMA: La versión simple del problema se puede describir como un único proyecto CMake con las siguientes características: Uno de los objectives […]

Regla genérica de makefile a CMake

Estoy tratando de “traducir” las líneas fluidas de makefile de vainilla en la syntax de CMake. SRCS = $(wildcard *.foo) OBJS = $(SRCS:.foo=.bar) my_rule: $(OBJS) %.bar: %.foo make_bar_from_foo $@ $< Trabajo feo bash FILE(GLOB SRCS “*.foo”) SET(outFiles) FOREACH(SRC ${SRCS}) SET(OUTPUT_FILE_NAME “${SRC}.bar”) ADD_CUSTOM_COMMAND( OUTPUT “${OUTPUT_FILE_NAME}” COMMAND make_bar_from_foo ${SRC} ${OUTPUT_FILE_NAME} DEPENDS “${SRC}”) SET(outFiles ${outFiles} “${OUTPUT_FILE_NAME}”) ENDFOREACH(SRC) ADD_CUSTOM_TARGET(my_rule […]

¿Cómo modificar las variables de entorno pasadas al destino personalizado de CMake?

Tal vez me falta algo obvio, pero parece que no puedo encontrar la forma de establecer explícitamente las variables de entorno que se pueden ver en los procesos lanzados a través de add_custom_target() . Intenté lo siguiente: set(ENV{PATH} “C:/Some/Path;$ENV{PATH}”) add_custom_target(newtarget somecommand) Desafortunadamente, la %PATH% entorno %PATH% aparece sin cambios en somecommand . (He configurado un […]

CMake comstackción cruzada: indicadores C del archivo toolchain ignorados

Yo uso cmake para la comstackción cruzada. En mi archivo de toolchain hay una línea SET(CMAKE_C_FLAGS “-std=gnu99”) Esta variable no está configurada en CMakeLists.txt nuevamente. Cuando ejecuto cmake -DCMAKE_TOOLCHAIN_FILE=toolchain.cmake .. este indicador se ignora. Para ser más detallado: La línea de flags.cmake muestra una línea C_FLAGS = vacía. Pero en CMakeOutput.log puedo encontrar una línea […]

Lista recursiva de LINK_LIBRARIES en CMake

Estoy tratando de obtener una lista de las rutas absolutas a todas las bibliotecas vinculadas a un objective específico en CMake para usar en una llamada a add_custom_command . Sin embargo, get_target_property(_LINK_LIBRARIES ${TARGET} LINK_LIBRARIES solo incluye las dependencias directas (es decir, cualquier cosa que se use en una target_link_libraries(${TARGET} …) a target_link_libraries(${TARGET} …) ). Por […]

Cómo establecer los filtros de Visual Studio para el subdirectorio nested usando cmake

Tengo la siguiente estructura Main (dir) +– CMakeLists.txt +– File.cpp +– File.hpp +– Dir (dir) +– CMakeLists.txt +– File1.cpp +– File1.hpp +– File2.cpp +– File2.hpp Main / CMakeLists.txt CMAKE_MINIMUM_REQUIRED (VERSION 2.8.11) PROJECT(Main) FILE(GLOB SOURCE “*.hpp” “*.cpp” ) ADD_SUBDIRECTORY(Dir) ADD_EXECUTABLE(Main ${SOURCE}) Principal / Dir / CmakeLists.txt FILE(GLOB LOCAL_SOURCE “*.hpp” “*.cpp” ) SET(SOURCE ${SOURCE} ${LOCAL_SOURCE} PARENT_SCOPE ) […]

Cómo hacer que cmake construya fuera de la fuente sin envolver scripts?

Estoy tratando de hacer que cmake construya en un directorio ‘comstackción’, como en project/build , donde el CMakeLists.txt está en project/ . Sé que puedo hacer: mkdir build cd build cmake ../ pero eso es engorroso. Podría ponerlo en un script y llamarlo, pero luego es desagradable proporcionar diferentes argumentos para cmake (como -G “MSYS […]

No se pudo encontrar el módulo FindOpenCV.cmake (Error en el proceso de configuración)

Escribí un CMakeLists.txt para un proyecto en C ++ , que utiliza las bibliotecas de OpenCV . Cuando bash crear el proyecto usando cmake, aparece el siguiente problema de configuración: CMake Error at CMakeLists.txt:15 (find_package): Could not find module FindOpenCV.cmake or a configuration file for package OpenCV. Adjust CMAKE_MODULE_PATH to find FindOpenCV.cmake or set OpenCV_DIR […]

Cómo leer una variable CMake en código fuente C ++

Me gustaría almacenar el número de versión de mi biblioteca en un solo lugar. Así que he definido dicha variable en el archivo CMake: SET(LIBINTERFACE_VERSION 1 CACHE INTEGER “Version of libInterface”) Con esta definición puedo generar un archivo version.rc según la definición de Microsoft, que compilo en la biblioteca y luego aparece correctamente en la […]