Portál AbcLinuxu, 1. května 2025 05:27
Místo
if((${UNIX}) AND NOT ((${APPLE}) OR (${CYGWIN})))
by mělo být spíš
if(UNIX AND NOT (APPLE OR CYGWIN))
CMake jinak booleany vyhodnocuje blbě.
AND NOT ...
část.((...) OR (...))
- ačkoli to na první pohled vypadá nesmyslně (to mám odzkoušeno).${}
, tak tam nevím, dokumentace je poněkud kryptická, nicméně jestli jsem to dobře pochopil, ta tvrdí, že if (boobah)
bere jako if (${boobah})
, ale nepochytil jsem z teho, jestli to platí (i) pro booleany, nebo jen pro ty proměnný, co definici booleanu nevyhovují... No kdyžtak to upravim.
${}
pouze s extra závorkami nebo uvozovkami. (Verze CMake totožná). Zajímavá nekonsistence... set (foo "true")
Potom se if (foo)
vyhodnotí jako pravda a if (${foo})
se vyhodnotí jako ${true}
, tedy jako nepravda (true
nebylo definováno, má tedy svou výchozí hodnotu nepravdivou). Pokud se tedy nemýlím, ale věřím, že jsem to teď napsal správně.
Díky za zápisek, záložkuju si to jako "jednou by se mohlo hodit" :)
public
prvky viditelné vyšímu kódu a private
prvky soukromé pro platformu.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.