CMake๋ ๊ฐ๋จํ ์คํฌ๋ฆฝํ ์ธ์ด, ๋ชจ๋์ ํตํด ๊ธฐ๋ฅ์ ํ์ฅํ๋ ์๋จ, ์ต์ํ์ ์ข ์์ฑ(M4, Perl ๋๋ Python์ ๋ํ ๋ฐ์ธ๋ฉ ์์), ์บ์ฑ ์ง์, ๊ต์ฐจ ์ปดํ์ผ์ ์ํ ๋๊ตฌ ์กด์ฌ, ๋น๋ ์์ฑ ์ง์์ ์ ๊ณตํ๋ ๊ฒ์ผ๋ก ์ ๋ช ํฉ๋๋ค. ๊ด๋ฒ์ํ ๋น๋ ์์คํ ๋ฐ ์ปดํ์ผ๋ฌ์ฉ ํ์ผ, ํ ์คํธ ์คํฌ๋ฆฝํธ ์ ์ ๋ฐ ํจํค์ง ๋น๋๋ฅผ ์ํ ctest ๋ฐ cpack ์ ํธ๋ฆฌํฐ, ๋น๋ ๋งค๊ฐ๋ณ์๋ฅผ ๋ํํ์ผ๋ก ์ค์ ํ๊ธฐ ์ํ cmake-gui ์ ํธ๋ฆฌํฐ.
์ฃผ์
- Ninja ํดํท์ ๊ธฐ๋ฐ์ผ๋ก ํ ์๋ก์ด ์ด์ ๋ธ๋ฆฌ ์คํฌ๋ฆฝํธ ์์ฑ๊ธฐ์ธ "Ninja Multi-Config"๊ฐ ์ถ๊ฐ๋์์ต๋๋ค. ์ด๋ ์ฌ๋ฌ ์ด์ ๋ธ๋ฆฌ ๊ตฌ์ฑ์ ํ ๋ฒ์ ์ฒ๋ฆฌํ ์ ์๋ค๋ ์ ์์ ์ด์ ์์ฑ๊ธฐ์ ๋ค๋ฆ ๋๋ค.
- Visual Studio์ฉ ์ด์
๋ธ๋ฆฌ ์คํฌ๋ฆฝํธ ์์ฑ๊ธฐ
์ถ์ฐ ํ ๊ฐ ๊ตฌ์ฑ๊ณผ ๊ด๋ จ๋ ์์ค ํ์ผ์ ์ ์ํ๋ ๊ธฐ๋ฅ(๊ตฌ์ฑ๋ณ ์์ค) - CUDA์ ๋ํ ๋ฉํ ๋งค๊ฐ๋ณ์("cuda_std_03", "cuda_std_14" ๋ฑ)๋ฅผ ์ค์ ํ๋ ๊ธฐ๋ฅ์ด ์ปดํ์ผ๋ฌ ๋งค๊ฐ๋ณ์ ์ค์ ๋๊ตฌ(์ปดํ์ผ ๊ธฐ๋ฅ)์ ์ถ๊ฐ๋์์ต๋๋ค.
- CUDA๋ฅผ ์ฌ์ฉํ ๋ ๋ฐํ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ ํ์ ์ ํํ๊ธฐ ์ํด ๋ณ์ "CMAKE_CUDA_RUNTIME_LIBRARY" ๋ฐ "CUDA_RUNTIME_LIBRARY"๋ฅผ ์ถ๊ฐํ์ต๋๋ค.
- CUDA ์ธ์ด๋ฅผ ํ์ฑํํ์ง ์๊ณ ์์คํ ์์ ์ฌ์ฉ ๊ฐ๋ฅํ CUDA ํดํท์ ํ์ธํ๊ธฐ ์ํด "FindCUDAToolkit" ๋ชจ๋์ ์ถ๊ฐํ์ต๋๋ค.
- ๊ฒ์ ์์ ์ ์ํํ ๋ ์ฝ์ ์ ์๋ ์ถ๊ฐ ์ง๋จ์ ์ถ๋ ฅํ๊ธฐ ์ํด cmake์ "--debug-find" ๋ช ๋ น์ ์ถ๊ฐํ์ต๋๋ค. ๋น์ทํ ๋ชฉ์ ์ผ๋ก CMAKE_FIND_DEBUG_MODE ๋ณ์๊ฐ ์ถ๊ฐ๋์์ต๋๋ค.
- cmake์์ ์์ฑ๋ ๊ตฌ์ฑ ํ์ผ "CURLConfig.cmake"๋ฅผ ์ฌ์ฉํ์ฌ CURL ๋๊ตฌ ๊ฒ์์ ๋ํ ์ง์์ "FindCURL" ๋ชจ๋์ ์ถ๊ฐํ์ต๋๋ค. ์ด ๋์์ ๋นํ์ฑํํ๊ธฐ ์ํด CURL_NO_CURL_CMAKE ๋ณ์๊ฐ ์ ๊ณต๋ฉ๋๋ค.
- FindPython ๋ชจ๋์๋ "conda"๋ฅผ ์ฌ์ฉํ์ฌ ๊ด๋ฆฌ๋๋ ๊ฐ์ ํ๊ฒฝ์์ Python ๊ตฌ์ฑ ์์๋ฅผ ๊ฒ์ํ๋ ๊ธฐ๋ฅ์ด ์ถ๊ฐ๋์์ต๋๋ค.
- ctest ์ ํธ๋ฆฌํฐ์๋ ํ ์คํธ๊ฐ ์๋ ๊ฒฝ์ฐ ๋์์ ์ ์ํ๋ "--no-tests=[error|ignore]" ์ต์ ๊ณผ ํ ์คํธ ์ฌ์คํ ์กฐ๊ฑด์ ์ค์ ํ๋ "--repeat" ์ต์ ์ด ์ถ๊ฐ๋์์ต๋๋ค(ํต๊ณผ, ์๊ฐ ์ด๊ณผ ํ).
- ์ด์ ๋ธ๋ฆฌ ๋์ ์์ฑ INTERFACE_LINK_OPTIONS, INTERFACE_LINK_DIRECTORIES ๋ฐ INTERFACE_LINK_DEPENDS๋ ์ด์ ์ ์ ์ผ๋ก ์ด์ ๋ธ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋ด๋ถ ์ข ์์ฑ ๊ฐ์ ์ ์ก๋ฉ๋๋ค.
- MinGW ํดํท์ ์ฌ์ฉํ ๋ find_library ๋ช ๋ น์ ์ฌ์ฉํ DLL ํ์ผ ๊ฒ์์ ๊ธฐ๋ณธ์ ์ผ๋ก ๋นํ์ฑํ๋ฉ๋๋ค(๋์ ๊ธฐ๋ณธ ์๋๋ ".dll.a" ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๊ฐ์ ธ์ค๋ ๊ฒ์ ๋๋ค).
- ์ด์ Ninja ์์ฑ๊ธฐ์์ ninja ์ ํธ๋ฆฌํฐ๋ฅผ ์ ํํ๋ ๋ ผ๋ฆฌ๋ ์คํ ํ์ผ ์ด๋ฆ์ ์์กดํ์ง ์์ต๋๋ค. PATH ํ๊ฒฝ ๋ณ์๋ฅผ ํตํด ์ ์๋ ๊ฒฝ๋ก์ ์๋ ์ฒซ ๋ฒ์งธ ninja-build, ninja ๋๋ samu ์ ํธ๋ฆฌํฐ๊ฐ ์ฌ์ฉ๋ฉ๋๋ค.
- ๋ณ๋์ "-E ์ ๊ฑฐ" ๋ฐ "-E ์ ๊ฑฐ_๋๋ ํฐ๋ฆฌ" ๋ช ๋ น ๋์ ํ์ผ ๋ฐ ๋๋ ํฐ๋ฆฌ๋ฅผ ์ ๊ฑฐํ๋ ๋ฐ ์ฌ์ฉํ ์ ์๋ "-E rm" ๋ช ๋ น์ cmake์ ์ถ๊ฐํ์ต๋๋ค.
์ถ์ฒ : opennet.ru