Pokud někdo nechce volat CMake z podadresáře `build/` a pak explicitně make (což nefunguje na Widlích) lze použít:
`cmake -B build`
a pak
`cmake --build build`
Podobně se dá volat z kořenového adresáře i CTest a nemusíme chodit vůbec do adresáře `build/`
Se mi zda, ze to na tech W maji vyrazne komplikovanejsi... :-)
(a podle meho pozorovani u kolegu v praci jim to neprijde divne a ani jim to nevadi)
Ono to s Widlema ale zase tak nesouvisí, je jasný že tam není make.
CMaku se dá předhodit, který build systém mám použít a pokud deklarativně napíšu `cmake --build build ...` tak se nemusím starat o volání konkrétního build systému. Na Windows si to vygeneruje .sln file a `--build` za mě zavolá co má + můžu přidat další parametry.
Ta poznámka byla spíš o tom, že se dá CMake používat deklarativněji... a bez změny adresářů.
Co je blbý, že na webu je stále spousta špatně napsaných projektů, za což může blbá dokumentace a nikde nezapsaný best practices. Pak člověk po koutech hledá, jak kdo co kde napsal a je rád, že to zkompiluje na svém stroji, což jde naprosto proti tomu, proč CMake vznikl.
https://www.youtube.com/watch?v=bsXLMQ6WgIk&ab_channel=CppNow
Na Windows instaluju jen CMake + kompilátor bez VS + Vulkan SDK a zprovozněno za 10 minut.
Ale tím samozřejmě neříkám, že Windows preferuju pro práci.
8. 7. 2021, 10:38 editováno autorem komentáře
Od iste verzie (2019 nieco) Visual Studio instaluje CMAKE niekde hlboko v ich adresari. Takze by malo stacit VS + Vulkan SDK a cmake.exe najst.
U mna je to
C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\bin\cmake.exe
prip. aj C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Common7\IDE\CommonExtensions\Microsoft\CMake\Ninja\ninja.exe
Co som naposledy pozeral tak to bolo mierne upravene (patchovane) mierne pozadu (jednu-dve verzie), co bolo v pohode na to co som potreboval.
Stačí pustit "Prompt Native Tools" nebo jak se to jmenuje, to nastaví cesty automaticky pro všechny nástroje včetně cmake, msbuild atd.
Ani ne, normálně se v adresáři “build” zavolá “cmake ..” a pak jednoduše “msbuild”, což vygeneruje spustitelný soubor.
Co konkretne na tom nefunguje? S uspechom som to takto pouzival na widliach niekolko rokov.
cmake -DCMAKE_BUILD_TYPE=Debug ..
make -j
Fungovalo bez problemov.
Edit: Spominam, ze som mal preload skript, kde som nadeklaroval, ze chcem vygenerovat unix makefiles.
9. 7. 2021, 14:41 editováno autorem komentáře
Standardně na Widlích není make nebo ano? Když předhodím někomu příklad s CMakem, tak `cmake --build ...` tě ušetří od volání konkrétního build systému. Když někomu řekneš napiš `cmake --build build --target test` bude mu to fungovat na všech platformách (za předpokladu že má instalovaný tools). Nepochybuju, že sis zvládl nastavit systém podle svého , ale na widlích je výchozí volba msbuild.
Já navíc třeba používám i CTest, takže pro mě psát `cmake ...` a `ctest ...` je daleko pohodlnější než např. při změněn platformy jednou volat `make` a jindy `msbuild` "ručně".
9. 7. 2021, 16:34 editováno autorem komentáře