Study: DeveloperTools(DevTool)

    [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] An Introduction to Modern CMake 정리

    💡 본 문서는 'An Introduction to Modern CMake'에 대해 정리해놓은 글입니다. CMake를 사용하는 이유부터 CMake의 구성 및 CMakeLists.txt 파일 작성법까지 다루고 있으니 CMake를 입문하여 활용하는 입장에서 많은 도움이 될 것입니다. 1. CMake 란 1.1 CMake 도입 CMake는 Kitware에서 개발하고 있으며, cmake.org에서 학습하고 다운로드 할 수 있습니다. 전통적인 C/C++ 빌드 도구는 make입니다. make는 Makefile을 작성해 주어야 하는데, Makefile 작성시 의존관계를 개발자가 직접 기술해야 하며, 개발자는 정확한 의존성을 위해 소스코드를 들여다보며 많은 노동을 투입하여 작성해야 합니다. Makefile 작성시 실수로..

    [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 ..

    [CMake] Makefile 및 CMake의 필요성 정리

    본 문서는 '빌드를 위한 스크립트 파일인 Makefile 에 대한 정보'를 정리한 문서입니다. CMake와 같이 Makefile을 자동으로 만들어주는 빌드 툴로 인해 Makefile 자체를 직접 다룰 일이 줄어들었으나, 기본적인 골격은 매우 단순하므로 한 번 익혀두는 것을 권장합니다. 1. Makefile이란? 원래 리눅스 상에서 프로그램을 컴파일 할 때, 쉘상에서 컴파일을 하려면 어떤 파일들을 컴파일 하고, 어떠한 방식으로 컴파일 할 지 직접 컴파일러에게 알려줘야 합니다. 이 문제를 해결하기 위해서 리눅스에서는 make 라는 프로그램을 제공하는데, 이 프로그램은 Makefile 라는 파일을 읽어서 주어진 방식대로 명령어를 처리하게 합니다. 덕분에 많은 수의 파일들을 명령어 한 번으로 컴파일 할 수 있습..