Pregunta

Estoy usando algunas funciones que se proporcionan en GCC v4 + y me gustaría que CMake encuentre el compilador de GCC v4 y, si no lo encuentra, devuelve un error que indica que se requiere GCC v4.

¿Alguien tiene algún módulo / idea sobre cómo hacer algo como esto?

Gracias.

¿Fue útil?

Solución

Use el comando try_compile () e intente compilar el siguiente programa

#if __GNUC__ != 4
#error
#endif
int main() { return 0; }

Otros consejos

Una forma totalmente diferente (no necesariamente mejor) de implementar una verificación de versión de gcc sería algo así como:

if(CMAKE_COMPILER_IS_GNUCXX)
  exec_program(
      ${CMAKE_CXX_COMPILER}
      ARGS                    --version
      OUTPUT_VARIABLE _compiler_output)
  string(REGEX REPLACE ".* ([0-9]\\.[0-9]\\.[0-9]) .*" "\\1"
         gcc_compiler_version ${_compiler_output})
  message(STATUS "C++ compiler version: ${gcc_compiler_version} [${CMAKE_CXX_COMPILER}]")

  if(gcc_compiler_version MATCHES "4\\.[0-9]\\.[0-9]")
    message(FATAL_ERROR "foobar")
    ...

  if(gcc_compiler_version VERSION_GREATER "4.5.99")
  ...
...

Pronto puede haber una solución en cmake, cf. http://cmake.3232098.n2.nabble.com/GCC -compiler-version-td7185771.html

Las versiones futuras de cmake pueden incluir dos variables: CMAKE_C_COMPILER_VERSION y CMAKE_CXX_COMPILER_VERSION .

Halas, aún no los he visto en el registro de cambios 2.8.8.

Utilizo la solución @cmaker por ahora.

También está el archivo de cadena de herramientas, que se menciona en el wiki de vtk . Eso le permite especificar cadenas de herramientas personalizadas. Por lo general, se usa para la compilación cruzada, pero lo he usado antes para que otras cadenas de herramientas funcionen.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top