Meson kullanarak Budgie uygulamalarını derleme
Bu ders içerik olarak Budgie masaüstü uygulamalarını derlemek dersinin aynısıdır.
Ancak kolay bir şekilde Meson kullanarak nasıl Budgie uygulamalarının derlenebileceği anlatılmaya çalışılmıştır.
Budgie uygulamalarını, tüm kullanıcılar için /usr/lib/budgie-desktop/plugins
dizininde, tek bir kullanıcı için ise ~/.local/share/budgie-desktop/plugins
dizininde oluşturmak gerekiyor.
Sınamalarımıza göre /usr/local/lib/budgie-desktop/plugins/
dizininde de uygulama oluşturulabiliyor.
Bir Budgie uygulaması, Vala için *.so
uzantılı paylaşılan bir kütüphane ve *.plugin
uzantılı bir eklentiden oluşuyor.
Budgie uygulamasının bir parçası olacak şekilde arzu edersek pencereli bir Gtk uygulaması da geliştirebiliriz.
Arka planda çalışan Budgie uygulaması, pencereli uygulamayı çağırabilir.
Öncelikle bu ders için uygulamanın kaynak kodunu indiriniz.
Ana dizindeki meson.build
isimli Meson kütüğüne baktığımızda bazı değişken tanımlamaları görebilirsiniz.
project('selam', 'vala', 'c')
gnome = import('gnome')
uygulamaIsmi = meson.project_name()
kok = get_option('prefix')
message('Kök dizini = ' + kok)
kutuphaneDizini = join_paths(kok, get_option('libdir'))
message('Kütüphane dizini = ' + kutuphaneDizini)
kurulumDizini = join_paths(kutuphaneDizini, 'budgie-desktop', 'plugins', 'selam')
message('Kurulum dizini = ' + kurulumDizini)
subdir('kaynak')
Bunlardan en önemlilerinden bir tanesi prefix
kelimesi ile gösterilen kök dizinidir.
Meson kurulum betiğini aşağıdaki gibi çalıştıralım.
meson setup oluştur
Burada bu değişkenlerin ekrana yazıldığını görebiliriz.
Message: Kök dizini = /usr/local
Message: Kütüphane dizini = /usr/local/lib
Message: Kurulum dizini = /usr/local/lib/budgie-desktop/plugins/selam
Eğer istersek derleme dizini sildikten sonra farklı bir kök dizini belirtebiliriz.
rm -rf oluştur/
meson setup --prefix=/usr oluştur
Değişkenlerin ve dolayısıyla kurulum dizininin değiştiğini görebilirsiniz.
Message: Kök dizini = /usr
Message: Kütüphane dizini = /usr/lib
Message: Kurulum dizini = /usr/lib/budgie-desktop/plugins/selam
join_paths
isimli işlev ise farklı dizinleri birleştiriyor.
Alt dizine geçmek için subdir
komutunu kullanıyoruz.
kaynak
isimli dizine geçtiğimizde ise meson.build
ismi ile bir meson kütüğü olduğunu görebiliriz.
İçeriği sadece aşağıdaki gibidir.
subdir ('selam')
Yani selam
dizinine geç diyor.
Neden böyle yaptığımız düşünülebilir.
Nedenine gelince selam
dizininde sadece geliştirmek istediğimiz Budgie uygulamasının kaynak kodları olabilir.
İleride örneğin selamla
isimli bir Gtk masa üstü uygulaması geliştirmek istediğimizi düşünelim.
Dizinleri ayırarak, geliştirme işini büyük ölçüde birbirinden bağımsız hale getirmek isteyebiliriz.
Tekrar selam
dizinine geçtiğimizde temel meson kütüğünü meson.build
ismi ile bulabiliriz.
install_data(
'Selam_.plugin',
install_dir: kurulumDizini
)
gerekliPaketler = [
dependency('glib-2.0'),
dependency('gobject-2.0'),
dependency('gtk+-3.0'),
dependency('budgie-1.0')
]
shared_library('selam',
'selam.vala',
dependencies: gerekliPaketler,
install: true,
install_dir: kurulumDizini)
install_data
komutu eklenti kütüğünü belirttiğimiz kurulum dizinine kuruyor.
Bu komutla çalıştırılabilir kabuk betiklerini de kurabiliriz.
En alttaki shared_library
anahtar kelimesi müşterek bir kütüphane üretmek istediğimizi belirtiyor.
Vala ile müşterek ortak kütüphane oluşturmak için bu derse bakabilirsiniz.
Uygulamanın kaynağını buradan indirebilirsiniz.
Eğer git kullanarak indirmek indirmek isterseniz
git clone https://codeberg.org/erdem/rizeden.git --branch Ders9
komutu ile bu dersi indirebilirsiniz.
rizeden
dizinin içine giriniz.
cd rizeden
Öncelikle derleme yapacağımız dizini oluşturuyoruz.
meson setup oluştur
Sonra bu oluşturduğumuz dizine girelim.
cd oluştur/
Burada uygulamayı derleyip kurmak için
sudo ninja install
komutunu verebilirsiniz.
Uygulamayı kaldırmak için aynı dizinin içinde
sudo ninja uninstall
komutu vermek yeterlidir.
Eklentiyi tanıtmak için aşağıdaki komutu verelim.
budgie-panel --replace &
Eğer bir hata vermezse eklentimiz kurulacaktır.
Eklentiyi etkinleştirmek için bu bölümü okuyunuz.
Yorumlar