Templat C++ cepat untuk proyek CMake modern, bertujuan untuk menjadi titik awal yang mudah digunakan.
Ini adalah pendapat pribadi saya tentang jenis templat ini, jadi saya mungkin tidak menggunakan praktik terbaik atau Anda mungkin tidak setuju dengan cara saya melakukan sesuatu. Setiap dan semua masukan sangat kami hargai!
Konfigurasi dan proyek CMake modern, yang sepanjang pengetahuan saya menggunakan praktik terbaik,
Contoh konfigurasi Clang-Format , yang terinspirasi dari model dasar Google , dengan sedikit perubahan. Ini ditujukan hanya sebagai titik awal, karena gaya pengkodean adalah masalah subjektif, setiap orang bebas menghapusnya (untuk default LLVM ) atau menyediakan alternatifnya sendiri,
Integrasi penganalisis statis , dengan Clang-Tidy dan Cppcheck , yang pertama menjadi opsi default,
Dukungan Doxygen , melalui opsi ENABLE_DOXYGEN
, yang dapat Anda aktifkan jika ingin menggunakannya,
Dukungan pengujian unit , melalui GoogleTest (dengan opsi untuk mengaktifkan GoogleMock ) atau Catch2 ,
Cakupan kode , diaktifkan dengan menggunakan opsi ENABLE_CODE_COVERAGE
, melalui integrasi Codecov CI,
Dukungan manajer paket , dengan Conan dan Vcpkg , melalui opsi masing-masing
Alur kerja CI untuk Windows, Linux dan MacOS menggunakan GitHub Actions , memanfaatkan fitur caching, untuk memastikan waktu berjalan minimum,
Templat .md untuk: README , Pedoman Kontribusi , Masalah dan Permintaan Tarik ,
Lisensi permisif untuk memungkinkan Anda mengintegrasikannya semudah mungkin. Templat ini dilisensikan di bawah Unlicense,
Opsi untuk dibuat sebagai pustaka khusus header atau dapat dieksekusi, bukan hanya pustaka statis atau bersama.
Integrasi CCache , untuk mempercepat waktu pembangunan kembali
Petunjuk ini akan membuat Anda mendapatkan salinan proyek dan berjalan di mesin lokal Anda untuk tujuan pengembangan dan pengujian.
Proyek ini dimaksudkan hanya sebagai templat, sehingga versi perangkat lunak yang digunakan dapat diubah agar lebih sesuai dengan kebutuhan pengembang. Jika Anda ingin menggunakan templat apa adanya , artinya menggunakan versi yang direkomendasikan di sini, Anda memerlukan:
CMake v3.15+ - ditemukan di https://cmake.org/
C++ Compiler - perlu mendukung setidaknya standar C++17 , yaitu MSVC , GCC , Clang
Catatan: Anda juga harus dapat menyediakan generator yang didukung CMake .
Menginstal proyek ini cukup mudah, yang perlu Anda lakukan hanyalah mengkloningnya dari GitHub atau membuat repositori baru dari proyek tersebut (juga di GitHub ).
Jika Anda ingin mengkloning repositori, daripada membuatnya, Anda hanya perlu menjalankan:
git clone https://github.com/filipdutescu/modern-cpp-template/
Setelah selesai mendapatkan salinan proyek, dengan salah satu cara di atas, buat folder baru di folder include/
, dengan nama proyek Anda. Edit cmake/SourcesAndHeaders.cmake
untuk menambahkan file Anda.
Anda juga perlu mengganti nama file cmake/ProjectConfig.cmake.in
untuk memulai dengan nama persis proyek Anda . Seperti cmake/MyNewProjectConfig.cmake.in
. Anda juga harus membuat perubahan yang sama pada alur kerja GitHub yang disediakan, terutama .github/workflows/ubuntu.yml
, di mana Anda harus mengganti opsi CMake -DProject_ENABLE_CODE_COVERAGE=1
menjadi -DMyNewProject_ENABLE_CODE_COVERAGE=1
.
Terakhir, ubah "Project"
dari CMakeLists.txt
, dari
project (
"Project"
VERSION 0.1.0
LANGUAGES CXX
)
dengan nama persis proyek Anda , yaitu menggunakan nama sebelumnya maka akan menjadi:
project (
MyNewProject
VERSION 0.1.0
LANGUAGES CXX
)
Untuk menginstal proyek yang sudah dibangun, Anda perlu menjalankan target install
dengan CMake. Misalnya:
cmake --build build --target install --config Release
# a more general syntax for that command is:
cmake --build < build_directory > --target install --config < desired_config >
Untuk membangun proyek, yang perlu Anda lakukan, setelah menginstal proyek dengan benar , adalah menjalankan rutinitas CMake yang serupa dengan yang di bawah ini:
mkdir build/ && cd build/
cmake .. -DCMAKE_INSTALL_PREFIX=/absolute/path/to/custom/install/directory
cmake --build . --target install
Catatan:
CMAKE_INSTALL_PREFIX
khusus dapat dihilangkan jika Anda ingin menginstal di lokasi instalasi default.
Opsi lainnya yang dapat Anda atur untuk proyek dapat ditemukan di file cmake/StandardSettings.cmake
. Untuk opsi tertentu, konfigurasi tambahan mungkin diperlukan dalam file *.cmake
masing-masing (yaitu Conan memerlukan CONAN_REQUIRES
dan mungkin memerlukan CONAN_OPTIONS
untuk dikonfigurasi agar berfungsi dengan benar; keduanya diatur dalam file cmake/Conan.cmake
).
Untuk menghasilkan dokumentasi proyek, Anda perlu mengonfigurasi build untuk menggunakan Doxygen. Hal ini mudah dilakukan, dengan memodifikasi alur kerja yang ditunjukkan di atas sebagai berikut:
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
Catatan: Ini akan menghasilkan direktori
docs/
di direktori root proyek .
Secara default, template menggunakan Google Test untuk pengujian unit. Pengujian unit dapat dinonaktifkan dalam opsi, dengan mengatur ENABLE_UNIT_TESTING
(dari cmake/StandardSettings.cmake) menjadi false. Untuk menjalankan pengujian, cukup gunakan CTest, dari direktori build, lewati konfigurasi yang diinginkan untuk menjalankan pengujian. Contoh dari prosedur ini adalah:
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)
Jika berlaku, harus disajikan di sini.
Jika berlaku, harus disajikan di sini.
Silakan baca CONTRIBUTING.md untuk detail tentang bagaimana Anda bisa menjadi kontributor dan proses mengirimkan permintaan penarikan kepada kami.
Proyek ini menggunakan SemVer untuk pembuatan versi. Daftar versi yang ada dapat ditemukan di rilis proyek.
Proyek ini dilisensikan di bawah Unlicense - lihat file LICENSE untuk rinciannya