Portál AbcLinuxu, 11. května 2025 10:26
Řešení dotazu:
IF(CMAKE_COMPILER_IS_GNUC) EXEC_PROGRAM(gcc ARGS --version OUTPUT_VARIABLE GCC_VERSION) IF(GCC_VERSION MATCHES ".*\\(GCC\\) 4\\.[0-9].*") SET(HAVE_GCC4 1) ELSE(GCC_VERSION MATCHES ".*\\(GCC\\) 4\\.[0-9].*") SET(HAVE_GCC4 0) ENDIF(GCC_VERSION MATCHES ".*\\(GCC\\) 4\\.[0-9].*") ENDIF(CMAKE_COMPILER_IS_GNUC)Vhodné by asi bolo urobiť univerzálnejší skript s tým testom, ale to try_compile asi nie je oveľa zložitejšie.
IF(CMAKE_COMPILER_IS_GNUCC) EXEC_PROGRAM(${CMAKE_C_COMPILER} ARGS -dumpversion OUTPUT_VARIABLE GCC_VERSION) IF(NOT GCC_VERSION VERSION_LESS "4.6") MESSAGE(STATUS "GCC version: 4.6+") ELSE(NOT GCC_VERSION VERSION_LESS "4.6") MESSAGE(STATUS "GCC version: 4.6-") ENDIF(NOT GCC_VERSION VERSION_LESS "4.6") ENDIF(CMAKE_COMPILER_IS_GNUCC)
nevim o distribuci co by mela stable 4.5Nějaké se najdou, např. výše zmíněný ArchLinux. Hold, některé distribuce obsahují zastaralý software už v době vydání, některé distrubuce obsahují zastaralý software pořád až do vydání další verze, protože se drží pravidla - stabilní distribuce = starý software s málo funkcemi či nefunkčními funkcemi (např. ubuntu a můj problém s HDMI, nechtěli backportovat pitomej patch, který to dá do pořádku, v distru totiž přece nemůže být "ovladač" novější, než 1 rok). Alespoň, že některé (např. ArchLinux) se takového pravidla nedrží. Je to opravdu nepochopitelné, proč by v 5 let starém distru nemohl být týden starý program.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.