PDF de programación - Simplificando el desarrollo software con CMake

Imágen de pdf Simplificando el desarrollo software con CMake

Simplificando el desarrollo software con CMakegráfica de visualizaciones

Publicado el 7 de Abril del 2019
1.006 visualizaciones desde el 7 de Abril del 2019
761,8 KB
36 paginas
Creado hace 10a (21/04/2015)
Introducción

Primeros pasos

Comandos habituales

Otras funcionalidades

CMake en JdeRobot

Simplificando el desarrollo software con CMake

Luis Roberto Morales Iglesias

Luis Roberto Morales Iglesias
Simplificando el desarrollo software con CMake

Introducción

Primeros pasos

Comandos habituales

Otras funcionalidades

CMake en JdeRobot

Índice general

1

Introducción

2 Primeros pasos

3 Comandos habituales

4 Otras funcionalidades

5 CMake en JdeRobot

Luis Roberto Morales Iglesias
Simplificando el desarrollo software con CMake

Introducción

Primeros pasos

Comandos habituales

Otras funcionalidades

CMake en JdeRobot

Índice general

1

Introducción

2 Primeros pasos

3 Comandos habituales

4 Otras funcionalidades

5 CMake en JdeRobot

Luis Roberto Morales Iglesias
Simplificando el desarrollo software con CMake

3

Introducción

Primeros pasos

Comandos habituales

Otras funcionalidades

CMake en JdeRobot

¿Qué es CMake?

CMake es una familia de herramientas
multiplataforma y de código abierto diseñada para la
compilación completa, prueba y empaquetado del
software.

Orientado para compilación de C y C++ mediante el uso de
makefiles.
Extensible y con soporte para otros lenguajes.
http://cmake.com

Luis Roberto Morales Iglesias
Simplificando el desarrollo software con CMake

4

Introducción

Primeros pasos

Comandos habituales

Otras funcionalidades

CMake en JdeRobot

Índice general

1

Introducción

2 Primeros pasos

3 Comandos habituales

4 Otras funcionalidades

5 CMake en JdeRobot

Luis Roberto Morales Iglesias
Simplificando el desarrollo software con CMake

5

Introducción

Primeros pasos

Comandos habituales

Otras funcionalidades

CMake en JdeRobot

Un proyecto software visto por CMake

CMake distingue dos árboles del proyecto:
Árbol fuente Contiene el código fuente, los CMakeLists y

ficheros generadores.

Árbol binario Contiene los makefiles, los binarios generados

y otros ficheros generados en el proceso de
llamada a CMake.

Estos árboles pueden tener la misma (in-source) o distinta
(out-of-source) raíz en el sistema de archivos.

Luis Roberto Morales Iglesias
Simplificando el desarrollo software con CMake

6

Introducción

Primeros pasos

Comandos habituales

Otras funcionalidades

CMake en JdeRobot

Configuración y ejecución: CMakeLists.txt

Contiene todas las órdenes necesarias para la generación,
compilación, pruebas...
Las órdenes no son sensibles a mayúsculas.
Ejemplo básico:

cmake_minimum_required (VERSION 2.8.11)
project (HELLO)

add_executable (hello hello.cpp)

Proyectos modulares: CMakeLists distribuidos
(add_subdirectory)

Luis Roberto Morales Iglesias
Simplificando el desarrollo software con CMake

7

Introducción

Primeros pasos

Comandos habituales

Otras funcionalidades

CMake en JdeRobot

Configuración y ejecución: CMake

Entorno gráfico: cmake-gui
Entorno basado en texto: ccmake
Línea de comandos: cmake

Parámetros de ejecución

Ejecución de CMake:

Ruta al directorio con el CMakeLists
pincipal
Parámetros propios de CMake (ayuda,
depuración, opciones de compilación, ...)
Parámetros definidos por el desarrollador
a rellenar por el usuario

Luis Roberto Morales Iglesias
Simplificando el desarrollo software con CMake

8

Introducción

Primeros pasos

Comandos habituales

Otras funcionalidades

CMake en JdeRobot

La caché de CMake: CMakeCache.txt

CMake almacena el valor de todas las variables resueltas
durante la fase de configuración
En proyectos con parámetros jerárquicos, se requieren
múltiples pases de configuración
La caché se puede pre-rellenar a través de un script con
órdenes set

Luis Roberto Morales Iglesias
Simplificando el desarrollo software con CMake

9

Introducción

Primeros pasos

Comandos habituales

Otras funcionalidades

CMake en JdeRobot

Índice general

1

Introducción

2 Primeros pasos

3 Comandos habituales

Salida de mensajes y control de variables
Generación de binarios
Otras operaciones útiles

4 Otras funcionalidades

5 CMake en JdeRobot

Luis Roberto Morales Iglesias
Simplificando el desarrollo software con CMake

10

Introducción

Primeros pasos

Comandos habituales

Otras funcionalidades

CMake en JdeRobot

Salida de mensajes y control de variables

Índice general

1

Introducción

2 Primeros pasos

3 Comandos habituales

Salida de mensajes y control de variables
Generación de binarios
Otras operaciones útiles

4 Otras funcionalidades

5 CMake en JdeRobot

Luis Roberto Morales Iglesias
Simplificando el desarrollo software con CMake

11

Introducción

Primeros pasos

Comandos habituales

Otras funcionalidades

CMake en JdeRobot

Salida de mensajes y control de variables

Salida de mensajes: message

message([<modo>] "mensaje a mostrar"...)

Se pueden mostrar desde mensajes sencillos de una cadena de
texto hasta otros más elaborados dependientes de variables
Los modos disponibles son:

Sin modo: información no categorizada.
Estado (status)
Advertencia (warning): continúa la generación
Adv. a desarrollador (author_warning)
Fallo (send_error): continúa pero omite la generación
Fallo grave (fatal_error): interrumpe el proceso

Luis Roberto Morales Iglesias
Simplificando el desarrollo software con CMake

12

Introducción

Primeros pasos

Comandos habituales

Otras funcionalidades

CMake en JdeRobot

Salida de mensajes y control de variables

Variables en CMake

Permiten mantener estados, acceder a información del sistema
o intercambiar datos entre los diversos componentes que
intervienen en la generación del proyecto
Tipos definidos:

Filepath - ruta a archivo
Path - ruta a directorio
String - Cadena de texto
Bool - Booleano
Internal - String de uso interno

Luis Roberto Morales Iglesias
Simplificando el desarrollo software con CMake

13

Introducción

Primeros pasos

Comandos habituales

Otras funcionalidades

CMake en JdeRobot

Salida de mensajes y control de variables

Variables en CMake

Según su almacenamiento y persistencia

Regulares Las utilizadas en exclusiva por los CMakeLists,
pueden crearse durante su ejecución o estar ya
rellenas al iniciar

Caché Las persistentes entre llamadas, utilizadas como
selección de opciones o interación con el usuario

Luis Roberto Morales Iglesias
Simplificando el desarrollo software con CMake

14

Introducción

Primeros pasos

Comandos habituales

Otras funcionalidades

CMake en JdeRobot

Salida de mensajes y control de variables

Algunas variables interesantes

CMAKE_MODULE_PATH Ruta donde buscar por defecto

módulos de cmake

CMAKE_INSTALL_PREFIX Raíz de la ruta de destino a la hora

de instalar (make install)

CMAKE_BUILD_TYPE Tipo de generación: depuración,

distribución...

BUILD_SHARED_LIBS Alternar entre generación de bibliotecas

estáticas o dinámicas (si no tienen indicación de
generación)

Luis Roberto Morales Iglesias
Simplificando el desarrollo software con CMake

15

Introducción

Primeros pasos

Comandos habituales

Otras funcionalidades

CMake en JdeRobot

Salida de mensajes y control de variables

Algunas variables preinicializadas

CMAKE_BINARY_DIR Raíz del árbol donde se colocarán los

ficheros generados

CMAKE_SOURCE_DIR Directorio desde el que se lanzó cmake
CMAKE_CURRENT_SOURCE_DIR Directorio donde se

encuentra el CMakeLists que se está procesando

PROJECT_BINARY_DIR Ruta completa a la raíz del árbol donde

se está generando el proyecto

PROJECT_SOURCE_DIR Ruta completa a la raíz del árbol de

los fuentes del proyecto

Luis Roberto Morales Iglesias
Simplificando el desarrollo software con CMake

16

Introducción

Primeros pasos

Comandos habituales

Otras funcionalidades

CMake en JdeRobot

Salida de mensajes y control de variables

Algunas variables preinicializadas

CMAKE_SYSTEM Nombre completo del S/O identificado
CMAKE_SYSTEM_NAME Nombre corto del S/O identificado
UNIX / WIN32 / APPLE / ... Booleanas que indican el sistema

detectado

Luis Roberto Morales Iglesias
Simplificando el desarrollo software con CMake

17

Introducción

Primeros pasos

Comandos habituales

Otras funcionalidades

CMake en JdeRobot

Salida de mensajes y control de variables

Control básico de variables

set(<variable> <valor> [...] [[CACHE <tipo>
<docstring> [FORCE]] | PARENT_SCOPE])

Establece el valor de una variable y sus características
Si se omite el valor, la variable se elimina
PARENT_SCOPE propaga la orden al contexto del CMakeLists
antecesor al que ejecuta
Con la instrucción ENV(<variable>) se puede acceder,
modificar o borrar una variable de entorno

Luis Roberto Morales Iglesias
Simplificando el desarrollo software con CMake

18

Introducción

Primeros pasos

Comandos habituales

Otras funcionalidades

CMake en JdeRobot

Salida de mensajes y control de variables

Control básico de variables

option(<variable> <descripción> <valor>)

CMAKE_DEPENDENT_OPTION(<variable> <descripción>
<valor_inicial> ”<expresión>[;<expresión> ...]”
<valor_si_expresión_falso>)

option establece una variable de caché booleana como
opción para el usuario, inicializada al valor indicado o a OFF
La macro CMAKE_DEPENDENT_OPTION permite establecer
opciones dependientes de otras opciones

Luis Roberto Morales Iglesias
Simplificando el desarrollo software con CMake

19

Introducción

Primeros pasos

Comandos habituales

Otras funcionalidades

CMake en JdeRobot

Salida de mensajes y control de variables

Bucles y estructuras de control

Condicional

Bucle for each

foreach(<variable> <lista>)
...
endforeach(<variable>)

<lista> ::= <arg> [...]

| RANGE (total | inicio fin

| IN (LISTS l1 [...] | ITEMS

[salto])

i1 [...] )

if(<expresión1>)
...
elseif(<expresión2>)
...
else(<expresión1>)
...
endif(<expresión1>)

Bucle while

while(<expresión>)
...
endwhile(<expresión>)

Luis Roberto Morales Iglesias
Simplificando el desarrollo software con CMake

20

Introducción

Primeros pasos

Comandos habituales

Otras funcionalidades

CMake en JdeRobot

Generación de binarios

Índice general

1

Introducción

2 Primeros pasos

3 Comandos habituales

Salida de mensajes y control de variables
Generación de binarios
Otras operaciones útiles

4 Otras funcional
  • Links de descarga
http://lwp-l.com/pdf15674

Comentarios de: Simplificando el desarrollo software con CMake (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad