Creating Binary Modules: CMake
Binary modüller, C++ kullanarak Lua'nın işlevselliğini genişletmenize olanak tanır.
Bu sayfa size CMake kullanarak binary modülleri derlemek için IDE'nizi nasıl kuracağınızı öğretecektir.
Kurulum tamamlandıktan sonra C Lua API ile etkileşim konusunda yardım için C Lua: Fonksiyonlar sayfasına bakın.
Bağımlılıklar
Binary Modüllerin oluşturulması için yalnızca CMake ve bir C++ derleyicisi gerekir.
Her ikisini de Windows'ta Visual Studio Installer (Visual Studio 2019'da "Desktop development with C++") aracılığıyla, macOS'ta Xcode/homebrew ile veya Linux'ta favori paket yöneticinizi kullanarak kurabilirsiniz. CMake için indirmeler CMake web sitesinde de mevcuttur.
Bir IDE kullanmak istiyorsanız, CMake projelerini desteklediği sürece herhangi birini (Visual Studio, CLion, vb.) seçebilirsiniz.
Bir IDE kullanmak istemiyorsanız, modülü manuel olarak da oluşturabilirsiniz, ancak bu yaklaşım bu kılavuzda ayrıntılı olarak anlatılmayacaktır.
Proje kurulumu
İhtiyacınız olan başlık dosyaları (header) burada mevcuttur. Bu dosyalar, projenize oyunla nasıl arayüz oluşturulacağı hakkında bilgi sağlayacak ve modülü derlemek için bazı genel ayarları belirleyecektir.
İlk olarak, boş bir klasör oluşturun. Bu klasör, modülünüzle ilgili tüm dosyaları içerecek ve bundan sonra "ana klasör" olarak anılacaktır.
Şimdi, başlık dosyalarının bir kopyasını indirin ve ana klasörün bir alt klasörüne yerleştirin.
Bu alt klasörü istediğiniz gibi adlandırabilirsiniz, ancak bu kılavuzda alt klasör adı olarak gmod-headers kullanılacaktır.
Farklı bir isim seçtiyseniz, bu ismi kendi seçtiğinizle değiştirmeniz gerekecektir.
Dosyaları doğru konuma çıkardığınızı kontrol etmek için, ana klasörde gmod-headers/include ve gmod-headers/examples yollarının bulunduğundan emin olun.
Sırada, bir CMake proje tanımı ayarlayacağız.
Bunu yapmak için, ana klasörde CMakeLists.txt adında bir dosya oluşturun ve aşağıdaki içeriği içine yapıştırın:
Projemizi tanımladığımıza göre, şimdi bir modüle derleyebileceğimiz bir şeye ihtiyacımız var.
Gösterim amacıyla "Hello World" örneği gayet iyi iş görür, bu yüzden gmod-headers/examples/HelloWorld/HelloWorld.cpp dosyasını kopyalayın ve ana klasöre module.cpp olarak yapıştırın.
Artık bu dosyayı değiştirebilir ve üzerinde denemeler yapabilirsiniz.
Derlemek için, ana klasörü seçtiğiniz IDE'de açın (yarı-düzgün herhangi bir IDE, CMakeLists.txt dosyasını algılayıp bir CMake projesi kurmalıdır) ve oradaki "Build" düğmesine basın.
IDE kullanmayan geliştiriciler, mevcut herhangi bir "bir CMake projesi nasıl derlenir" kılavuzunu takip edebilir.
Binary modül, CMake çıktısının yerleştirildiği yerde, doğru isim zaten uygulanmış olarak oluşacaktır.
İsimlendirme & Konum
Modül dosyaları garrysmod/lua/bin/ klasörüne yerleştirilmelidir.
İsimler, platforma ve Lua alanına (realm) göre farklılık gösterir.
| Dosya adı | Taraf | require(isim) | Platform |
|---|---|---|---|
gmsv_example_win32.dll |
Sunucu | example | Windows x32 |
gmcl_example_win32.dll |
İstemci | example | Windows x32 |
gmsv_example_win64.dll |
Sunucu | example | Windows x64 (x86-64 branch'i gereklidir) |
gmcl_example_win64.dll |
İstemci | example | Windows x64 (x86-64 branch'i gereklidir) |
gmsv_example_osx.dll |
Sunucu | example | OSX (aslında bir .so dosyasıdır, sadece yeniden adlandırılmıştır) |
gmcl_example_osx.dll |
İstemci | example | OSX (aslında bir .so dosyasıdır, sadece yeniden adlandırılmıştır) |
gmsv_example_linux.dll |
Sunucu | example | Linux x32 (aslında bir .so dosyasıdır, sadece yeniden adlandırılmıştır) |
gmcl_example_linux.dll |
İstemci | example | Linux x32 (aslında bir .so dosyasıdır, sadece yeniden adlandırılmıştır) |
gmsv_example_linux64.dll |
Sunucu | example | Linux x64 (aslında bir .so dosyasıdır, sadece yeniden adlandırılmıştır; x86-64 branch'i gereklidir) |
gmcl_example_linux64.dll |
İstemci | example | Linux x64 (aslında bir .so dosyasıdır, sadece yeniden adlandırılmıştır; x86-64 branch'i gereklidir) |
gmsv_isim_platform.dll altında kategorize edilirTüm sunucular · GmodTR Launcher · Rehber · GMod Wiki · GmodTR nedir? · Sunucu ekle · Discord