Patrzę na rozpoczęcie nowego projektu w C ++ - początkowo tylko w swoim czasie - i badam dostępne systemy kompilacji. Wydawałoby się, że odpowiedź brzmi: „Wiele i wszystkie są okropne”.
Funkcje, których szczególnie potrzebuję, to:
- Obsługa C ++ 11
- Wieloplatformowy (Linux jako główny cel, ale może również zbudować przynajmniej na Windows)
- Przyzwoite wsparcie dla testów jednostkowych
- Obsługa wielu modułów do oddzielania kodu
- Wsparcie dla generowania kodu (przy użyciu asn1c lub protobuf - jeszcze nie w 100%)
- Łatwe w utrzymaniu
Teraz wiem, że mogę z łatwością wykonać 1-4 z tych za pomocą CMake i Autotools. Prawdopodobnie także z SCons i Waf oraz kilkoma innymi. Problem w tym, że nigdy nie wymyśliłem, jak poprawnie generować kod za ich pomocą - czyli pliki źródłowe, które nie istnieją do czasu pierwszego uruchomienia procesu kompilacji, więc pliki źródłowe, które system kompilacji musi być w stanie przekonwertować na kod wykonywalny ale tak naprawdę nie wie o tym do momentu uruchomienia kompilacji ... (w szczególności ASN1C generuje dziesiątki plików nagłówkowych i źródłowych, które muszą być w stanie ze sobą współpracować, a rzeczywisty zestaw generowanych plików zależy od zawartości twojego pliku asn). również fakt, że żadna z nich nie jest szczególnie łatwa w utrzymaniu - CMake i Autotools mają własny, ogromny zestaw skryptów, którymi trzeba zarządzać, aby działały,
Więc - jakie systemy kompilacji są zalecane do czegoś takiego? A może na razie utknę z tworzeniem plików i skryptami powłoki?