์๋ ํ์ธ์,
CMake๋ฅผ ํตํด ๋์๋ฅผ ์ฌ์ฉํ๊ณ ์์ต๋๋ค. Unix Makefile ์์ฑ๊ธฐ๋ฅผ ์ฌ์ฉํ๋ฉด ๊ธฐ๋ณธ์ ์ผ๋ก ์์ธํ Makefile์ด ์์ฑ๋๋ -DCMAKE_VERBOSE_MAKEFILE=ON
๋ฅผ ์ ๋ฌํ ์ ์์ต๋๋ค. Makefile ์์ฑ๊ธฐ๋ VERBOSE=1
๋ฅผ makefile์ ์์ฑํ์ฌ ์ด๋ฅผ ์์นด์ด๋ธํฉ๋๋ค. -v
๋ฅผ ํตํด ninja๋ฅผ ํธ์ถํ๋ ๊ฒ๊ณผ ๋์ผํ ๊ฒฐ๊ณผ๋ฅผ ์ป๊ธฐ ์ํด ninja ํ์ผ์ ์ธ ์ ์๋ ๊ฒ์ด ์์ต๋๊น?
๊ฐ์ฌ ํด์,
๊ทธ๋ ๊ณ ๋ฅด
์๋์. -v
๋์๋ฅผ ๋ถ๋ฅด๋๊ฒ ๋ฌด์จ ๋ฌธ์ ์ธ๊ฐ์?
๋์๋ง์ผ๋ก๋ ํด๊ฒฐํ ์ ์์ต๋๋ค.
cmake -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON -G Ninja ../src/cmake4eclipse/testprojects/C-1src/src1
-- Configuring done
-- Generating done
CMake Warning:
Manually-specified variables were not used by the project:
CMake 3.3์๋ ์ด์ ๋ํ ํด๊ฒฐ ๋ฐฉ๋ฒ์ด ์์ต๋๋ค. https://github.com/Kitware/CMake/commit/ce935ebe50926bde199d86fbde4a78974a4043f9
-DCMAKE_VERBOSE_MAKEFILE=ON
ํ๋ฉด cmake --build
๊ฐ -v
๋งค๊ฐ๋ณ์๋ฅผ ๋์ ํธ์ถ์ ์ถ๊ฐํฉ๋๋ค.
๊ทธ๋๋ Ninjafiles์ ์ถ๊ฐํ ์ ์๋ ๊ฒ์ด ์์ผ๋ฉด ์ข์ ๊ฒ์ ๋๋ค. ๊ทธ๋ฌ๋ ํ์ฌ๋ ํ์ ์ ์ง์ ๋ฐ๋ผ ์ด ์ ์์ต๋๋ค.
@gjasny , ์ ๋ CMake 3.10์ ์ฌ์ฉํ๊ณ CMakeLists.txt
์ ๋ค์ set(CMAKE_VERBOSE_MAKEFILE ON)
์ค์ ํ์ง๋ง Ninja์์ ์ถ๊ฐ ์ ๋ณด๋ฅผ ์ป์ง ๋ชปํ์ต๋๋ค.
์ด๋ค ์์ด๋์ด๋ผ๋?
์บ์ ๋ณ์๋ก ๋ง๋ค์ด์ผ ํฉ๋๋ค. ์ด ์์ ์ ์ํํ๋ ๋ฐฉ๋ฒ์ CMake set ๋ช ๋ น์ ์ฐธ์กฐํ์ธ์.
๋ค๋ฅธ ์ฌ๋๋ค์ ์ํด ์ด SET
๋ช
๋ น์ ์์
์ ์ํํ๊ณ Ninja๋ฅผ ์ฅํฉํ๊ฒ ๋ง๋ค์์ต๋๋ค.
set(CMAKE_VERBOSE_MAKEFILE ON CACHE BOOL "ON")
๊ทธ๋๋ Ninjafiles์ ์ถ๊ฐํ ์ ์๋ ๊ฒ์ด ์์ผ๋ฉด ์ข์ ๊ฒ์ ๋๋ค.
๊ทธ๊ฒ ์ ํ์ํ ๊น์?
์ด๊ฒ์ด ์ฌ์ ํ ํ์ํ๋ค๊ณ ์๊ฐ๋๋ฉด ๋ค์ ์ฌ์ญ์์ค.
์ด ๋ฒ๊ทธ์ ์ฌ ์ ์๋ ๋ค๋ฅธ ์ฌ๋๋ค์ ์ํด: set(CMAKE_VERBOSE_MAKEFILE ON CACHE BOOL "ON")
๋ Windows์์ ์๋ํ์ง ์๋ ๊ฒ ๊ฐ์ต๋๋ค. ์์:
CMakeLists.txt
cmake_minimum_required(VERSION 3.5 FATAL_ERROR)
project(simplecmake CXX)
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
set(CMAKE_VERBOSE_MAKEFILE ON CACHE BOOL "ON")
add_library(simplecmake simple.cpp)
simple.cpp์ ๋ด์ฉ์ ์ค์ํ์ง ์์ต๋๋ค.
๊ทธ๋ฐ ๋ค์ cmake๋ฅผ ์คํํ๋ ๋ฐ ์ฌ์ฉํ๋ ์คํฌ๋ฆฝํธ์ ๋๋ค.
<strong i="12">@echo</strong> off
call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvarsall.bat" x86_amd64
cd c:/Users/Administrator/ezyang/lab3
cd build
set CC=cl
set CXX=cl
cmake -GNinja ..
cmake --build .
-DCMAKE_VERBOSE_MAKEFILE=ON
๋ฅผ cmake ํธ์ถ์ ์ ๋ฌํ๋ฉด ์๋ํฉ๋๋ค.
cmake๊ฐ ์ค์ ์ ์ผํค๋๋ก set(CMAKE_VERBOSE_MAKEFILE ON CACHE BOOL "ON" FORCE)
๋ฅผ ์ถ๊ฐํ๋ฉด ์ ์๊ฒ ํจ๊ณผ์ ์ด์์ต๋๋ค. ํ์ง๋ง ์ฌ์์ฑํด์ผ ํ ์๋ ์์ต๋๋ค.
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
๋ค๋ฅธ ์ฌ๋๋ค์ ์ํด ์ด
SET
๋ช ๋ น์ ์์ ์ ์ํํ๊ณ Ninja๋ฅผ ์ฅํฉํ๊ฒ ๋ง๋ค์์ต๋๋ค.