CMakeLists.txt

    [CMake] function: 반복되는 작업은 함수화하자!

    본 문서는 'cmake function'에 대해 다룹니다. 이는 CMakeLists.txt파일을 작성하는 과정에서 반복되는 과정을 함수로 정형화하는 과정이니 반복되는 cmake문을 작성하고 계셨던 분들은 참고 바랍니다. function function에 대한 기본적인 구조는 다음과 같다. function( [ ...]) endfunction() 기본적으로 function에 있는 argment를 불러오기 위해서는 변수명을 호출하는 것과 유사하게 진행한다. function(fooKeyword country city) message("Address: ${country} ${city}") endfunction() fooKeyword("germany" "munich") 추가적으로 인자에 대한 정보를 뽑기 위해서는..

    [CMake] FetchContent: 외부 라이브러리를 사용하자~

    💡 본 문서는 CMake로 환경을 build하는 중 외부의 필요한 라이브러리를 가져오는 FetchContent과정에 대해 자세히 설명합니다. 1. FetchContent FetchContent: 'configure time'에 외부 라이브러리를 가져옵니다(populating). configure time: CMake를 실행하는 시점 ExternalProject_Add(): 외부 라이브러리를 'build time'에 가져옵니다. build time: makefile을 활용하여 make 하는 시점. the FetchContent module makes content available immediately, allowing the configure step to use the content in command..

    [CMake] CMake 소개 및 필요성: Modern CMake 3.23+

    💡 본 문서는 'CMake 소개 및 필요성'에 대해 정리해놓은 글입니다. C/C++ 프로젝트의 빌드를 용이하게 해주는 CMake에 대한 간략한 소개 및 관련 자료들을 정리하였으니 참고하시기 바랍니다. 1. CMake 란? Make의 빌드관리시스템을 만들기 위한 오픈소스 프로젝트(Make 이외의 .ninja와 같은 빌드 파일도 만들 수 있음). 스스로 기존의 Make의 과정을 수행하지는 않고 지정한 운영 체제에 맞는 Make 파일의 생성 및 관리만을 수행하기 때문에 Meta Make라고도 불리우는 빌드 자동화 시스템. 한번 작성해 두면 유닉스 계열은 물론, 마이크로소프트 window 계열의 프로그래밍 도구도 지원. 2. 왜 CMake를 사용하는 걸까? You want to avoid hard-coding ..