Beberapa waktu lalu kita sempat menyinggung penggunaan meson untuk mengkompilasi pustaka / library wlroots. Hari ini kita akan sedikit belajar tentang penggunaan meson untuk kompilasi secara dasar. Sebagai catatan, kita tidak akan terlalu dalam membahas semua opsi atau pilihan yang dimiliki meson, tapi hanya beberapa bagian yang sekiranya penting untuk diketahui. Langsung saja, berikut ini adalah pembahasannya !
A. Mendapatkan tool meson.
Hal pertama yang perlu kita lakukan adalah mendapatkan / memasang tool meson. Bagaimana cara memasangnya ? Berikut adalah beberapa pilihan untuk memasang tool meson.
1. Memasang meson lewat paket manager.
Meson sepertinya sudah tersedia hampir pada semua distro GNU/Linux. Meson bisa dipasang lewat paket manager pada masing-masing distro GNU/Linux. Sebagai contoh pada distro debian dan turunannya, kita bisa memasang meson dengan perintah berikut, distro lain menyesuaikan.
$ sudo apt install meson
Code language: Shell Session (shell)
Memasang meson pada distro debian dengan apt.
2. Memasang meson dengan pip.
Selain lewat paket manager yang dimiliki setiap distro GNU/Linux, meson juga bisa dipasang lewat pip. Memasang lewat pip bisa menjadi satu alternatif bagus, ketika distro yang kita pakai kebetulan belum menyediakan paket meson. Bagi pengguna distro source based yang kebetulan (ehem) malas mengkompil meson dari kode sumber, memasang lewat pip juga menjadi alternatif bagus.
Untuk memasang meson lewat pip, kita bisa menggunakan perintah berikut.
$ pip install meson
Code language: Shell Session (shell)
Memasang meson lewat pip.
Catatan !
Usahakan menggunakan lingkungan virtual / virtual environment saat memasang modul menggunakan pip ! Untuk distro GNU/Linux yang lain, versi meson bisa dilihat pada tautan ini.
B. Mengkompil dengan meson.
Setelah kita mendapatkan tool meson, kita bisa langsung masuk pada bahasan mengkompil dengan meson. Untuk contoh project yang menggunakan meson, kita bisa menggunakan contoh yaitu tinytile, atau kalau ada project yang lain juga tidak mengapa.
1. Mengkonfigurasi dengan opsi bawaan / default.
Kita bisa menggunakan meson sebagai tool untuk mengkonfigurasi kompilan project yang kita kompil. Ini mirip dengan skrip “configure” pada beberapa project. Kita bisa menjalankan perintah berikut ini.
$ meson setup <direktori>
Code language: Shell Session (shell)
Contoh real-nya mungkin seperti ini.
$ meson setup build
Code language: Shell Session (shell)
Contoh mengkonfigurasi kompilan sebelum kita mengkompil.
2. Mengkonfigurasi prefix.
Kita bisa menentukan prefix di mana hasil kompilan dipasang. Kita bisa menggunakan opsi –prefix. Sebagai contoh, saya akan mengatur prefix ke direktori ~/.local, perintah yang bisa kita jalankan yaitu :
$ meson setup build --prefix=~/.local
Code language: Shell Session (shell)
C. Membangun / build dengan meson.
Setelah kita selesai mengkonfigurasi, kita bisa langsung membangun / build project dengan meson. Perintah yang bisa kita jalankan yaitu :
$ meson compile -C <direktori>
Code language: Shell Session (shell)
Jika kita sudah mengkonfigurasi pada direktori build, maka kita bisa menjalankan perintah berikut.
$ meson compile -C build
Code language: Shell Session (shell)
D. Memasang hasil build.
Setelah project bisa kita build secara sempurna dan selesai, kita bisa memasangnya ke prefix (jika diatur sebelumnya). Perintah yang bisa dijalankan yaitu :
$ meson install -C build
Code language: Shell Session (shell)
Catatan !
- selain menggunakan meson, kita bisa menggunakan ninja. Karena kita hari ini membahas tentang meson, jadi untuk proses build / compile dan pemasangan kita menggunakan meson sepenuhnya.
- alternatif tool untuk melakukan build yang lain yaitu ninja.
Referensi.
Berikut ini adalah referensi yang kita gunakan pada bahasan hari ini.
- Panduan meson dari Archwiki.
- Project tinytile oleh Godalming123.
Penutup.
Demikian tadi panduan mengkompil dengan meson, semoga tidak bingung lagi ketika menghadapi sebuah project yang menggunakan meson. Semoga bermanfaat dan bisa menjadi referensi bagi kita semua. Terima kasih dan sampai berjumpa pada bahasan selanjutnya !
Leave a Reply