Pautas de Empaquetado de CMake
Este documento proporciona las prácticas mejores para el empleo de sistema de compilación CMake en los paquetes Fedora.
Macros Disponibles
Generalmente, utilizarás estos en tus especificaciones:
%cmake-
Define CFLAGS, LDFLAGS, etc. e invoca a
%__cmakecon los parámetros adecuados (-DCMAKE_INSTALL_PREFIX:PATH=/usr, etc.). Puede pasar-Doption=valuea esta macro para configurar las opciones del sistema de compilación. %cmake_build-
Compila el proyecto (utilizando
%__cmake --build). %cmake_install-
Instala el proyecto compilado (utilizando
%__cmake --install). %ctest-
Ejecuta las pruebas que están definidas con
add_test()en el proyecto (utilizando%__ctest).
Al empaquetar software de KDE, lo más probable es que se sustituya %cmake por %cmake_kf5 o %cmake_kf6. Para más información, consulte Directrices de empaquetado de KDE.
Es raramente necesario (pero permisible) utilizar o alterar estos:
| Todas las macros que comienzan con doble guión bajo deben ser privadas, NO estables y es probable que se eliminen en el futuro. |
%__cmake-
La ruta al cmake ejecutable.
%__ctest-
La ruta al ctest ejecutable.
%__cmake_in_source_build-
Controla si las compilaciones se realizan fuera de la fuente (si no está definido, es el valor predeterminado) o en el código fuente (si está definido). Siempre que sea posible, se recomienda usar compilaciones fuera del código fuente, ya que esta es la dirección en la que se mueven tanto Fedora como CMake.
%__cmake_builddir-
Mantener el lugar del directorio actual donde se hizo la compilación. Cuando compile fuera-de-la-fuente, esta macro es la misma que %_vpath_builddir. Cunado haga compilaciones dentro de la fuente, esta macro mantendrá el lugar actual que fue utilizado para la compilación.
Esta macro solo es adecuada por razones de compatibilidad excepcionales. Para compilaciones externas normales, esta macro es igual a %_vpath_builddir. Es posible que se elimine en el futuro.
Notas
-DCMAKE_SKIP_RPATH:BOOL=ON. Con la reciente versión cmake-2.4, no debería usarse. Esta versión de CMake debería gestionar correctamente los problemas de RPATH (establecerlos en el directorio de compilación y eliminarlos durante la instalación). Configurar CMAKE_SKIP_RPATH para esta versión también evitaría los RPATH en el directorio de compilación. Esto podría vincular binarios con bibliotecas del sistema (por ejemplo, al instalar una versión anterior del paquete) en lugar de con las bibliotecas creadas por la compilación.
Sin embargo, podrían surgir problemas con RPATH si CMake se usa incorrectamente. Por ejemplo, instalar un destino con INSTALL(FILES ... RENAME ...) no eliminará los rpaths; en este caso, INSTALL(TARGETS ...) debe usarse junto con la modificación de la propiedad OUTPUT_NAME.
CMake tiene buena documentación en dos lugares:
Want to help? Learn how to contribute to Fedora Docs ›