Antes que nada, soy nuevo en CMake. No sé cuál es el argumento COMPONENT
del comando install
y no entiendo la documentación de CMake para esto. ¿Alguien puede explicarlo con más detalle? Será mejor si me das un ejemplo.Para el comando "install" de CMake, ¿qué puede hacer el argumento COMPONENT?
Respuesta
Puede objetivos de instalación de grupo en componentes, por ejemplo "docs", "libs", "ejecución", etc.
add_library(libone libone.c)
add_executable(one main1.c)
install(TARGETS libone one DESTINATION /somedir COMPONENT comp_one)
add_library(libtwo libtwo.c)
add_executable(two main2.c)
install(TARGETS libtwo two DESTINATION /somedir COMPONENT comp_two)
Esto hace que sea posible ejecutar cmake -DCOMPONENT=comp_one -P {your_build_dir}/cmake_install.cmake
instalar única biblioteca libone y un ejecutable . Cuando emite make install
, todos los componentes están instalados.
Hay tres formas de usar el comando de instalación en CMake.
(1) Instalar Ejecutable
INSTALL(TARGETS ExecutableTarget RUNTIME DESTINATION FOLDER_LOCATION)
(2) Instalar biblioteca estática
INSTALL(TARGETS StaticLibraryTarget ARCHIVE DESTINATION FOLDER_LOCATION)
(3) Instalar Dynamic Library
INSTALL(TARGETS SharedLibraryTarget LIBRARY DESTINATION FOLDER_LOCATION)
-1 porque la pregunta era sobre el significado de la palabra clave 'COMPONENT'. Esta respuesta demuestra tres * tipos * de objetivos, que es un concepto ortogonal. –
- 1. ¿Qué tiene de diferente el comando CMake configure_file en Windows?
- 2. Comando RCP con el argumento objeto
- 3. comando Cmake list-get
- 4. cmake "make install" a la máquina remota?
- 5. @Component con el padre?
- 6. ¿Puede CMake generar el archivo de configuración?
- 7. Usando el resultado de un comando como argumento en bash?
- 8. Argumento opcional en la macro cmake
- 9. ¿qué puede repetir el comando de punto, exactamente?
- 10. El argumento opcional no se puede borrar?
- 11. El segundo argumento para copiar() no puede ser un directorio
- 12. ¿Qué es "-d" en "npm -d install"?
- 13. CMake: cómo usar el comando bash en CMakeLists.txt
- 14. Función C para escapar de la cadena para el argumento del comando de shell?
- 15. encontrar: falta el argumento para -exec
- 16. ¿Puede CMake generar scripts de compilación que * no * usan cmake?
- 17. ¿Qué es el argumento push order?
- 18. pregunta de sintaxis del comando cmake
- 19. no se puede usar el comando mongo, muestra el comando que no se encuentra en mac
- 20. Aplicar el mapa para el argumento parcial
- 21. ¿Por qué el argumento predeterminado no se puede especificar para una especialización de plantilla explícita?
- 22. ¿Qué puede hacer que falle el ejecutivo? ¿Qué pasa después?
- 23. Para el comando cmake "incluir", ¿cuál es la diferencia entre un archivo y un módulo?
- 24. Script awk genérico para calcular el promedio en cualquier campo mediante el argumento de línea de comando
- 25. ¿Para qué se utiliza el flujo de trabajo en SDL Tridion Component and Page Templates?
- 26. Análisis de argumento de línea de comando elegante para PyQt
- 27. ¿Cómo puedo recordar el argumento del comando bash anterior?
- 28. ¿Qué puede hacer GlStencil?
- 29. Ejecutar comando en emacs, obtener salida en el búfer en el que se puede hacer clic
- 30. ¿Cómo elegir qué objetivo ejecutable de CMake será el predeterminado?
Gracias por su respuesta. el componente se instalará junto con el objetivo en un archivo o en el mismo directorio con un archivo diferente? En mi opinión, puedo instalar diferentes objetivos como este: install (TARGETS myExe mySharedLib myStaticLib RUNTIME DESTINATION bin LIBRARY DESTINATION lib ARCHIVE DESTINATION lib/static). SO, que es mejor – Samuel
No se trata de los directorios de destino, sino de los objetivos de instalación. Por ejemplo, si tiene 4 cláusulas 'install()', 2 con 'COMPONENT a' y 2 con' COMPONENTE b'. Luego, si ejecuta 'make install', se instalarán los 4 objetivos, pero solo 2 si especifica el nombre del componente:" a "o" b ". – arrowd
Disculpe, ¿qué es un componente? Todavía me confundió, ¿puedes darme un código de prueba? entonces puedo ejecutarlo. y ver alguna diferencia – Samuel