tutorial - descarga cmake
¿Qué versión de CMake es la mínima? (1)
Quiero definir una versión mínima para CMake con la función "cmake_minimum_required". He visto que algunos proyectos establecen la versión mínima 2.8 y otros establecen 3.0 o 3.2. Me gustaría conocer sus opiniones y mejores prácticas sobre el tema.
La función cmake_minimum_required()
se usa para evitar cualquier mensaje de error críptico debido a que CMakeLists.txt
asume una versión posterior de CMake que la instalada en el host actual.
Como ejemplo, fallar temprano y con un mensaje claro ...
CMake 3.2 or higher is required. You are running version 2.8.12.2
... es preferible a algo más críptico (mucho) más adelante ...
In file included from /home/foouser/src/testprj/string.cpp:1:0:
/home/foouser/src/testprj/string.hpp:94:29: error: ‘std::is_same’ has not been declared
... solo porque, en este ejemplo, la versión anterior de CMake no es compatible con el set( CMAKE_CXX_STANDARD 11 )
. Estoy seguro de que estarás de acuerdo.
La configuración ideal sería:
- La versión más antigua con todas las características que su script necesita.
Máxima compatibilidad con las personas que ejecutan versiones anteriores, así como con su secuencia de comandos. Pero requiere probar qué versión exactamente fue la primera que soportó tus construcciones. Por lo general, se reduce a:
- La versión más antigua que ha probado que tiene todas las características que necesita su secuencia de comandos.
Eso es probablemente lo suficientemente bueno para la mayoría de los proyectos. Y si usted es el único que realmente está trabajando en el proyecto, y la compatibilidad con CMake es realmente baja en su lista, probablemente terminará con:
- La versión que estás usando actualmente.
Este último enfoque tiene un serio inconveniente una vez que alguien más intenta compilar su proyecto. Muchas personas no están usando la última versión de todo. En Linux en particular, lo predeterminado es usar lo que el administrador de paquetes le dé. Ubuntu wily, por ejemplo, se encuentra actualmente en la versión 3.2.2, es posible que tenga una versión posterior, pero a menos que necesite una versión posterior, no debe requerirla (ya que eso significa que las personas no podrán construir su proyecto). sin instalar primero una versión más nueva de CMake, manualmente).
Lo que no deberías estar haciendo es ...
- Se requiere una versión muy antigua, pero en realidad no se está probando con esa versión anterior ( ¡NO! ).
Las razones deberían ser obvias: la construcción podría fallar, sin que el usuario tenga ninguna pista de por qué las cosas salieron mal.