Study: DeveloperTools(DevTool)/DevTool: CMake

    [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 라는 파일을 읽어서 주어진 방식대로 명령어를 처리하게 합니다. 덕분에 많은 수의 파일들을 명령어 한 번으로 컴파일 할 수 있습..

    [C++] C++ 빌드 시스템(툴)에는 뭐가 있을까?

    본 문서는 C++을 위한 빌드시스템을 비교한 문서로 다음의 feature를 기준으로 비교 작성한다. 1. C++11 support 2. Cross platform (Linux as main target, but able to build on at least Windows as well) 3. Decent unit testing support 4. Support for multiple modules for separating code out 5. Support for code generation (Using asn1c or protobuf - not 100% sure yet) 6. Easy to maintain 참고 An overview of build systems (mostly for C++ proje..