Saya sedang mencari untuk memulai proyek baru di C ++ - hanya dalam waktu saya sendiri pada awalnya - dan saya sedang menyelidiki sistem build yang tersedia. Tampaknya jawabannya adalah "Banyak, dan semuanya mengerikan".
Fitur yang secara khusus saya butuhkan untuk ini adalah:
- Dukungan C ++ 11
- Lintas platform (Linux sebagai target utama, tetapi dapat dibangun setidaknya di Windows juga)
- Dukungan pengujian unit yang layak
- Dukungan untuk beberapa modul untuk memisahkan kode
- Dukungan untuk pembuatan kode (Menggunakan asn1c atau protobuf - belum 100% yakin)
- Mudah dirawat
Sekarang, saya tahu saya dapat melakukan 1-4 dari mereka yang menggunakan CMake dan Autotools dengan cukup mudah. Mungkin juga dengan SCons dan Waf dan beberapa lainnya juga. Masalahnya adalah saya tidak pernah mengetahui cara membuat kode dengan benar menggunakannya - yaitu file sumber yang tidak ada hingga proses build dijalankan pertama kali, jadi file sumber yang sistem build harus dapat diubah menjadi kode yang dapat dieksekusi tetapi tidak benar-benar mengetahuinya sampai build dimulai ... (ASN1C secara khusus menghasilkan lusinan file header dan sumber yang harus dapat bekerja sama, dan kumpulan file sebenarnya yang dihasilkan bergantung pada konten file asn Anda) Ada juga fakta bahwa tidak ada yang sangat mudah untuk dipelihara - CMake dan Autotools memiliki sekumpulan besar skrip yang perlu Anda kelola agar berfungsi,
Jadi - sistem build apa yang direkomendasikan untuk hal seperti ini? Atau apakah saya akan terjebak dengan membuat file dan skrip shell untuk saat ini?