Portál AbcLinuxu, 25. dubna 2024 06:03


Dotaz: CMake - verze GCC

Jardík avatar 30.6.2010 12:40 Jardík | skóre: 40 | blog: jarda_bloguje
CMake - verze GCC
Přečteno: 374×
Odpovědět | Admin
Neví někdo, jak nějak jednoduše v CMakeLists.txt zkontrolovat verzi GCC (potřebuju >= 4.6). Našel jsem akorát způsob pomocí try_compile s tím, že ve zdrojáku použiju preprocesor na definice __GNUC__ a __GNUC_MINOR__, ale přijde mi to jako jít s kanónem na vrabce.
Věřím v jednoho Boha.

Řešení dotazu:


Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

30.6.2010 13:00 chrono
Rozbalit Rozbalit vše Re: CMake - verze GCC
Odpovědět | | Sbalit | Link | Blokovat | Admin
V jednom programe som videl niečo takéto:
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.
Jardík avatar 30.6.2010 13:09 Jardík | skóre: 40 | blog: jarda_bloguje
Rozbalit Rozbalit vše Re: CMake - verze GCC
Toto jsem také našel, bohužel to předpokládá název kompilátoru a řeší pouze major verzi a jenom GCC4, já bych potřeboval, aby to bralo GCC 4 s minor verzí >= 6 a pak všechny s major verí >= 5 (až jednou bude). Zatím teda nechám to try_compile, dokud se nenajde něco lepšího :-(
Věřím v jednoho Boha.
30.6.2010 14:03 chrono
Rozbalit Rozbalit vše Re: CMake - verze GCC
Môžeš vyskúšať niečo ako:
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)
Jardík avatar 30.6.2010 15:16 Jardík | skóre: 40 | blog: jarda_bloguje
Rozbalit Rozbalit vše Re: CMake - verze GCC
Super, funguje perfektně, dík.
Věřím v jednoho Boha.
1.7.2010 04:54 zulu
Rozbalit Rozbalit vše Re: CMake - verze GCC
Bohužel to je otvírák na pivo a já mám limču.
6.7.2010 07:17 mimi.vx | skóre: 37 | blog: Mimi.VX | Praha
Rozbalit Rozbalit vše Re: CMake - verze GCC
Odpovědět | | Sbalit | Link | Blokovat | Admin
gcc 4.6 ? vzdyt ta neni zatim ani alfa .... a vicemene nevim o distribuci co by mela stable 4.5 .....
USE="-gnome -kde";turris
6.7.2010 10:09 Václav Kramář | skóre: 31 | Nechanice
Rozbalit Rozbalit vše Re: CMake - verze GCC
Jardík avatar 6.7.2010 16:05 Jardík | skóre: 40 | blog: jarda_bloguje
Rozbalit Rozbalit vše Re: CMake - verze GCC
Ano, GCC 4.6. Kvůli o něco lepší podpoře C++0x ...
nevim o distribuci co by mela stable 4.5
Ně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.
Věřím v jednoho Boha.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.