Home

More Modern CMake - Finding Packages

Finding Packages Overview 질문 How do I search for packages? 목표 Understand FindPackage.cmake Understand PackageConfig.cmake You can search for packages in CMake in two ways; both of them, however, use the same interface. Here’s what it would look like: find_package(MyPackage 1.2) This will lo...

Read more

More Modern CMake - Debugging

Debugging Overview 질문 모든 것을 어떻게 디버깅할까? 목표 CMake에서 문제를 찾는 방법을 알아보기 디버깅을 위해 빌드를 설정하는 방법을 알아보기 CMake를 사용하면 디버깅이 쉽다. 우리는 CMake 코드 디버깅과 C++ 코드 디버깅: 두 가지 형태의 디버깅을 다룰 것이다. CMake 디버깅 먼저 CMakeLists 또는 기타 CMake 파일을 디버깅하는 방법을 살펴보자. 변수 출력하기 Cmake에서 print 문의 시간에 따른 방법은 다음과 같다: message(STATUS "MY_VARIA...

Read more

More Modern CMake - Common Problems and Solutions

일반적인 문제 및 해결 방법 Overview 질문 무엇이 잘못될 수 있나? 목표 몇 가지 일반적인 실수 식별하기 일반적인 실수 피하기 이제 CMake 코드 및 빌드와 관련된 몇 가지 일반적인 문제를 살펴보자. 1: 낮은 최소 CMake 버전 cmake_minimum_required(VERSION 3.0 FATAL_ERROR) 어떤 경우에는 이 숫자를 올리는 것만으로도 문제가 해결된다. 예를 들어 3.0 이하에서는 맥OS에서 링크할 때 잘못된 동작하는 경향이 있다. 해결책: 최소 버전을 높게 설정하거나 버전 범위 ...

Read more

More Modern CMake - Project Structure

프로젝트 구조 Overview 질문 내 프로젝트는 어떤 모습이어야 할까? 목표 프로젝트 구조에 대한 몇 가지 모범 사례를 알아보자. 이 섹션에서는 code/03-structure의 프로젝트를 살펴보자. code/03-structure/ ├── CMakeLists.txt ├── README.md ├── apps │ ├── CMakeLists.txt │ └── app.cpp ├── cmake │ └── FindSomeLib.cmake ├── docs │ ├── CMakeLists.txt │ └── mainpage.m...

Read more

More Modern CMake - Variables explained

변수 설명 Overview 질문 변수는 어떻게 작동하는가? 목표 지역 변수에 대해 알아보자. 캐시된 변수가 실행 전반에 걸쳐 지속된다는 점을 이해하라. 글로브(glob)할 줄 알아야 하고, 왜 하면안되는지 알아야 한다. 변수 이 연습에서는 CMakeLists.txt를 실행하는 대신 CMake 스크립트를 직접 실행한다. 이를 수행하는 명령은 다음과 같다: # example.cmake라는 파일이 있다고 가정한다: cmake -P example.cmake 이렇게 하면, 주변에 작은 빌드들이 많이 생기지 않는다....

Read more

More Modern CMake - Working with Targets

Working with Targets Overview 질문 타겟(target)은 어떻게 동작하는가? 목표 타겟(target) 설정 방법을 알아두자 linking 및 INTERFACE 속성 이해하자 INTERFACE 타겟(target) 만들기 타겟(Targets) 이제 CMake의 세 라인을 사용하여 단일 파일을 컴파일하는 방법을 알게 되었다. 하지만 종속성이 있는 파일이 두 개 이상 있으면 어떻게 될까? 프로젝트 구조에 대해 CMake에 알릴 수 있어야 하며 이는 프로젝트를 빌드하는 데 도움이 된다. 그러기 ...

Read more

More Modern CMake - Your first CMakeLists.txt file

Your first CMakeLists.txt file Overview 질문 내 CMakeLists에서 얼마나 최소화할 수 있는가? 목표 cmake_minimum_version의 깊은 의미를 이해하자. project 설정 방법을 알아두자. 적어도 하나의 타겟을 만드는 방법을 알아두자. CMakeLists 파일 작성 다음 파일은 그 다음 예에 적합하다 : /* simple.c or simple.cpp */ #include <stdio.h> int main() { printf("Hello, W...

Read more

More Modern CMake - Building with CMake

Building With CMake Overview 질문 프로젝트를 어떻게 빌드하는가? 목표 CMake 설치에 대한 참고. 기존 프로젝트를 빌드하는 방법을 알아보자. 빌드를 사용자 정의한다. 몇 가지 기본적인 디버깅을 수행하는 방법을 알아보자. CMake 설치 거의 모든 곳에 최신 버전의 CMake를 설치하는 데 일반적으로 한 줄 또는 두 줄에 불과하다. CMake 설명을 참조. CMake 로 빌드하기 CMake를 작성하기 전에 CMake를 실행하여 만드는 방법을 알고 있는지 확인하겠다. 이는 ...

Read more