사용하기 쉬운 시작점을 목표로 하는 최신 CMake 프로젝트를 위한 빠른 C++ 템플릿입니다.
이것은 이러한 유형의 템플릿에 대한 개인적인 견해이므로 모범 사례를 사용하지 않을 수도 있고 귀하가 작업 방식에 동의하지 않을 수도 있습니다. 모든 피드백은 매우 감사합니다!
내가 아는 한 모범 사례를 사용하는 최신 CMake 구성 및 프로젝트
기본 Google 모델에서 영감을 받아 약간의 수정을 가한 Clang-Format 구성의 예입니다. 코딩 스타일은 주관적인 문제이므로 모든 사람이 자유롭게 삭제하거나( LLVM 기본값의 경우) 자신만의 대안을 제공할 수 있습니다.
Clang-Tidy 및 Cppcheck를 사용한 정적 분석기 통합(전자는 기본 옵션임)
ENABLE_DOXYGEN
옵션을 통한 Doxygen 지원은 사용하려는 경우 활성화할 수 있습니다.
GoogleTest ( GoogleMock 활성화 옵션 포함) 또는 Catch2를 통한 단위 테스트 지원,
Codecov CI 통합을 통해 ENABLE_CODE_COVERAGE
옵션을 사용하여 활성화된 코드 적용 범위 ,
Conan 및 Vcpkg 와 함께 해당 옵션을 통해 패키지 관리자 지원
GitHub Actions를 사용하는 Windows, Linux 및 MacOS용 CI 워크플로는 캐싱 기능을 활용하여 최소 실행 시간을 보장합니다.
.md 템플릿 : README , 기여 지침 , 문제 및 끌어오기 요청 ,
가능한 한 쉽게 통합할 수 있는 허용 라이센스입니다 . 템플릿은 Unlicense에 따라 라이센스가 부여됩니다.
정적 또는 공유 라이브러리뿐만 아니라 헤더 전용 라이브러리 또는 실행 파일로 빌드하는 옵션입니다.
재구축 시간 단축을 위한 Ccache 통합
이 지침은 개발 및 테스트 목적으로 로컬 컴퓨터에서 프로젝트 사본을 시작하고 실행하는 데 도움이 됩니다.
이 프로젝트는 템플릿일 뿐이므로 사용되는 소프트웨어 버전은 개발자의 요구에 더 적합하도록 변경될 수 있습니다. 템플릿을 있는 그대로 사용하려면, 즉 여기에서 권장하는 버전을 사용하려면 다음이 필요합니다.
CMake v3.15+ - https://cmake.org/에서 찾을 수 있습니다.
C++ 컴파일러 - 최소한 C++17 표준(예: MSVC , GCC , Clang) 을 지원해야 합니다.
참고: 또한 CMake에 지원되는 생성기를 제공할 수 있어야 합니다.
프로젝트를 설치하는 것은 매우 쉽습니다. GitHub에서 복제하거나 GitHub 에서 새 저장소를 생성하기만 하면 됩니다.
저장소를 생성하는 대신 복제하려면 다음을 실행하면 됩니다.
git clone https://github.com/filipdutescu/modern-cpp-template/
위의 방법 중 하나를 사용하여 프로젝트 복사본 가져오기를 마친 후 include/
폴더에 프로젝트 이름으로 새 폴더를 만듭니다. cmake/SourcesAndHeaders.cmake
편집하여 파일을 추가하세요.
또한 프로젝트의 정확한 이름 으로 시작하려면 cmake/ProjectConfig.cmake.in
파일의 이름을 바꿔야 합니다. 예: cmake/MyNewProjectConfig.cmake.in
. 또한 제공된 GitHub 워크플로(예: .github/workflows/ubuntu.yml
)에서도 동일한 변경 작업을 수행해야 합니다. 여기서 CMake 옵션 -DProject_ENABLE_CODE_COVERAGE=1
-DMyNewProject_ENABLE_CODE_COVERAGE=1
로 바꿔야 합니다.
마지막으로 CMakeLists.txt
에서 "Project"
변경합니다.
project (
"Project"
VERSION 0.1.0
LANGUAGES CXX
)
프로젝트의 정확한 이름 으로, 즉 이전 이름을 사용하면 다음과 같습니다.
project (
MyNewProject
VERSION 0.1.0
LANGUAGES CXX
)
이미 빌드된 프로젝트를 설치하려면 CMake를 사용하여 install
대상을 실행해야 합니다. 예를 들어:
cmake --build build --target install --config Release
# a more general syntax for that command is:
cmake --build < build_directory > --target install --config < desired_config >
프로젝트를 빌드하려면 프로젝트를 올바르게 설치한 후 아래와 유사한 CMake 루틴을 실행하기만 하면 됩니다.
mkdir build/ && cd build/
cmake .. -DCMAKE_INSTALL_PREFIX=/absolute/path/to/custom/install/directory
cmake --build . --target install
참고: 기본 설치 위치에 설치하려는 경우 사용자 지정
CMAKE_INSTALL_PREFIX
생략할 수 있습니다.
프로젝트에 대해 설정할 수 있는 추가 옵션은 cmake/StandardSettings.cmake
파일에서 찾을 수 있습니다. 특정 옵션의 경우 해당 *.cmake
파일에 추가 구성이 필요할 수 있습니다(예: Conan은 CONAN_REQUIRES
가 필요하고 올바르게 작동하려면 CONAN_OPTIONS
를 설정해야 할 수 있습니다. 두 가지는 cmake/Conan.cmake
파일에 설정되어 있습니다).
프로젝트에 대한 문서를 생성하려면 Doxygen을 사용하도록 빌드를 구성해야 합니다. 위에 표시된 작업 흐름을 다음과 같이 수정하면 쉽게 수행할 수 있습니다.
mkdir build/ && cd build/
cmake .. -D < project_name > _ENABLE_DOXYGEN=1 -DCMAKE_INSTALL_PREFIX=/absolute/path/to/custom/install/directory
cmake --build . --target doxygen-docs
참고: 그러면 프로젝트의 루트 디렉터리 에
docs/
디렉터리가 생성됩니다.
기본적으로 템플릿은 단위 테스트를 위해 Google Test를 사용합니다. 옵션에서 ENABLE_UNIT_TESTING
(cmake/StandardSettings.cmake에서)을 false로 설정하여 단위 테스트를 비활성화할 수 있습니다. 테스트를 실행하려면 빌드 디렉터리에서 CTest를 사용하여 테스트를 실행할 원하는 구성을 전달하면 됩니다. 이 절차의 예는 다음과 같습니다.
cd build # if not in the build directory already
ctest -C Release # or `ctest -C Debug` or any other configuration you wish to test
# you can also run tests with the `-VV` flag for a more verbose output (i.e.
# GoogleTest output as well)
해당하는 경우 여기에 제시해야 합니다.
해당하는 경우 여기에 제시해야 합니다.
기여자가 되는 방법과 끌어오기 요청을 제출하는 프로세스에 대한 자세한 내용은 CONTRIBUTING.md를 읽어보세요.
이 프로젝트는 버전 관리를 위해 SemVer를 사용합니다. 기존 버전 목록은 프로젝트 릴리스에서 찾을 수 있습니다.
이 프로젝트는 Unlicense에 따라 라이센스가 부여됩니다. 자세한 내용은 LICENSE 파일을 참조하세요.