[Araç] SDL3 ve Conan

Evet sevgili yazılımperver dostlarım uzun bir aradan sonra tekrar bir aradayız ve son kaldığımız yerden devam ediyoruz.
Nerede kalmıştık peki 🙂 Öncelikle, C++ ile SDL3 geliştirmeye yönelik hazırlamış olduğumuz cpp-playground reposunda, SDL3 tabanlı uygulamamızı
CMake kullanarak hem windows hem de linux’te nasıl derleyebileceğimize bakmıştık. Detaylar için aşağıdaki yazıya göz atabilirsiniz:

[ARAÇ] SDL3 CI/CD

Bunu yaparken de, SDL kütüphanelerini tek tek indirip, oluşturmaya ilişkin adımları ve betikleri eklemiştik.
Bunlar, hem zaman alıcı hem de her seferinde yapmak çok zor oluyordu.
Artık bunu da Conan 2’ye geçirmenin vakti geldi. Bu yazımızda, bu geçişe bakıyor olacağız. Conan 2’ye yönelik hususlar için aşağıdaki yazıma göz atabilirsiniz:

[ARAÇ] Conan 2.0 – C++ Paket Yönetim Aracı

Conan 2’yi, uygulamalarda kullanmak oldukça kolay. Burada “conanfile.txt” hazırlayıp, daha sonra ilgili toolchain dosyalarını CMake preset dosyaları içerisine eklemeniz yeterli. Şimdi sırayla neler yaptığımıza göz atalım.

İlk olarak, conanfile.txt’yi oluşturduk. Bu dosya temelde, uygulamanın hangi paketlere ve sürümlerine ihtiyacı olduğunu söylüyor:

Burada, tavsiye edilen genelde ilgili sürümü direk girmek, (ör. 3.4.0) bunula birlikte aralık da tanımlamanız mümkün. Yukarıdaki satırları girdikten sonra aşağıdaki komut ile ilgili paketleri yerel makinemize indiriyoruz. Conan’da yazılım oluşturma ilgili ayarları hizalamak için profiller kullanılmakta. Bu uygulama için özel bir profil hazırlamasak da, daha profesyonel ya da takım içeren durumlar için kendi profillerinizi oluşturmanızda fayda var. Sonraki yazılarımda, profil konusuna da detaylı eğileceğim. Şimdilik aşağıdaki komut ile halihazırdaki derleme aracını kullanıyor olacağız.

Tabi bu komutu çağırmadan önce, gerekli derleyicilerin, komut satırından erişebilir olduğundan emin olmalısınız. Windows için MSVC geliştirici komut satırını, linux için ise yine benzer şekilde g++/clang++’ı kurmuş ve c++ için ilgili derleyiciyi ayarlamış olmanız lazım. Buna yönelik İpucu Varsayılan Derleyici Değiştirme yazıma göz atabilirsiniz.

Bu komut ile artık, conan’ın varsayılan dizini altında (C:\Users\yazilimperver-dev\.conan2\profiles) default isimli bir dosya oluşmuş olacak. Benim için içeriği aşağıdaki gibi:

Profilimize da baktıktan sonra, artık bu profil ile uyumlu bağımlılıkları indirebiliriz. Bu noktada Conan, conancenter’a bakıyor olacak ve bizim profil ile birebir uyumlu bir binary hazır var ise direk onu indirecek, yok ise yerel makinemizde bunu build ediyor olacak (profil ile ilgili yazımdan sonra burada hazırlayacağımız profiller ile tekrar tekrar build ettirmeden de kullanılabilecek bir noktaya geleceğiz).

Bu komutu çağırdıktan sonra, conan, cmake için gerekli bağımlılıkları (CMakeDeps) ve derleyici ayarlarını (CMakeToolchain) kullabilmemiz için, bir toolchain dosyasını (conan_toolchain.cmake) build dizini altına oluşturur. Daha sonra bu dosyayı, CMake presetleri içerisine aşağıdaki gibi ekliyoruz:

bu adımdan sonra, bu presetleri miras alacak presetler de, bu toolchain dosyasını kullanıyor olacaklar.

Install işlemi biraz sürebilir. Burada bütün kütüphaneleri ve ilgili bağımlılıkları indiriyor olacak (SDL3 de oldukça büyük 🙂 )

Yerel makinenizde bunu bir kere yaptıktan sonra, artık her seferinde bunu tekrar tekrar oluşturmaya ihtiyaç kalmayacak.

Bu işlemler de bittikten sonra artık cmake konfigürasyon ve build adımlarına geçebiliriz. Bunlar için ise aşağıdaki komutları çağırmanız yeterli (Release build’ler için de debug’ları release ile değiştirmeniz yeterli):

Evet, bu adımlar sonrasında, artık yazılımın oluşturulmasına yönelik adımları tamamlamış oluyoruz.

Şimdi gelelim, gitlab CI/CD adımlarına. Bir önceki yazımda temel işlevleri tamamlamıştık ve linux için build adımlarını eklemiştik. Şimdi windows runner için de gerekli adımları ekleyerek, pipeline’ımızı tamamına erdireceğiz.

Aşağıda ilgili pipeline yaml dosyasını görebilirsiniz:

 

Windows için gerekli adımlar, build-windows job‘ı altında gerçekleştiriyoruz. Şimdilik hepsi tek bir adımda ve bir yerde. Sonraki adımlarda bunları da tekrar kullanılabilir hale getireceğiz.

Öncelikli olarak Conan’a dair paketleri ve ilgili dosyaları genelde, runner çalışma dizini altına oluşturulması önerilmektedir. Bunun için de CONAN_HOME ortam değişkenini tanımlamanız yeterli:

C++ uygulamalarınız gitlab tarafından sunulan “saas-windows-medium-amd64” imajı içerisine kurulu MSBuild araçları ile oluşturabilirsiniz.

Bu araç içerisinde, Python ve CMake de kuruludur. CMake ile bunu kullanabilmek için öncelikle vcvars’ı çağırmamız gerekiyor. Aşağıda buna yönelik adımları bulabilirsiniz:

Bir sonraki adımda, Conan kurulumuna yönelik adımları görebilirsiniz:

 

Son olarak da, yazılım oluşturma adımlarını gerçekleştiriyoruz. Burada da üç adım var:

Linux için gerekli adımları, build-linux job’ı altında gerçekleştiriyoruz. Çoğu adım windows’a benziyor. Kullandığımız imaj burada, ubuntu:24.04, bir de burada bağımlılıklarımızı da manuel olarak kuruyoruz.

İlgili yazılım oluşturma adımları sonrasında, test-linux job’ı ile birlikte, birim test projemizi oluşturup, sonuçları artifact olarak yayınlıyoruz.

Evet sevgili dostlar, yine yekünü çok olan bir yazımızın sonuna eriştik. Conan’ın kullanımına biraz daha aşinalık kazandığınızı umuyorum. Elbette müphem bir takım noktalar kalmış olabilir, bununla birlikte bunlar sizlerin ilave araştırmalarınız ile sizlere aşikar olacaktır. Öğrenmenin bence en güzel yollarından birisi de bu ya da çeto’yu da bu anlamda kullanabilirsiniz.

Bir sonraki yazımda görüşmek dileğiyle kendinize çok iyi bakın.

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Bu site, istenmeyenleri azaltmak için Akismet kullanıyor. Yorum verilerinizin nasıl işlendiği hakkında daha fazla bilgi edinin.