يحاول هذا المستودع تحديث قاعدة بيانات DOSBox باستخدام ممارسات وأدوات التطوير الحالية، وإصلاح المشكلات، وإضافة ميزات تدعم الأنظمة الحالية بشكل أفضل.
لينكس، ويندوز، ماك
التنمية يبني.
ميزة | حالة |
---|---|
التحكم في الإصدار | بوابة |
لغة | سي++20 |
SDL | >= 2.0.5 |
التسجيل | Loguru لـ C++ 5 |
نظام البناء | ميسون أو فيجوال ستوديو 2022 |
سي آي | نعم |
التحليل الساكن | نعم 1،3،4 |
التحليل الديناميكي | نعم |
تنسيق رنة | نعم |
التنمية يبني | نعم |
اختبارات الوحدة | نعم 6 |
اختبارات الانحدار الآلي | قيد التنفيذ |
يحتوي DOSBox Staging على تبعيات المكتبة التالية:
طَرد | اسم ليب | يوفر ميزة | حضور | التفاف ميسون | VCPKG | توافر الريبو |
---|---|---|---|---|---|---|
FluidSynth | com.fluidsynth | تشغيل MIDI العام | خياري | نعم | نعم | شائع |
اختبار جوجل + موك | gmock | إطار اختبار الوحدة (التطوير) | خياري | نعم | نعم | شائع |
آي آي آر | iir1 | تصفية الصوت | إلزامي | نعم | نعم | نادر |
libpng | libpng | PNG ترميز لقطات الشاشة | خياري | نعم | نعم | شائع جدًا |
مونت | libmt32emu | تشغيل رولاند MT-32 وCM-32L | خياري | نعم | نعم | نادر |
ملف التأليف | com.opusfile | تشغيل CDDA لملفات المسار المشفرة بـ Opus | إلزامي | لا ؟ | نعم | شائع |
إس دي إل 2.0 | sdl2 | واجهة برمجة التطبيقات المحايدة لنظام التشغيل للفيديو والصوت والأحداث | إلزامي | نعم | نعم | شائع |
SDL_net 2.0 | sdl2-net | واجهة برمجة تطبيقات الشبكة للمسلسل وIPX الذي تمت محاكاته | خياري | نعم | نعم | شائع |
slirp | libslirp | مكدس TCP/IP افتراضي غير مميز للإيثرنت | خياري | نعم | نعم | أقل شيوعا |
سبيكسDSP | com.speexdsp | إعادة تشكيل الصوت | إلزامي | نعم | نعم | شائع |
تريسي ملف التعريف | تريسي | الملف الشخصي للحدث (التطوير) | خياري | نعم | نعم | نادر |
زليب | زليب | ZMBV التقاط الفيديو | خياري | لا ؟ | نعم | شائع جدًا |
zlib-ng | zlib-ng | التقاط فيديو ZMBV (استبدال zlib أكثر أداءً) | خياري | نعم | نعم | شائع |
راجع ملفات التفاف Meson في المشاريع الفرعية لإصدارات المكتبة الحالية التي نستخدمها.
استنساخ المستودع (خطوة لمرة واحدة):
git clone https://github.com/dosbox-staging/dosbox-staging.git
اقرأ BUILD.md للحصول على دليل التجميع الشامل.
ملحوظة
يعد دعم CMake حاليًا ميزة تجريبية داخلية فقط وقيد التنفيذ؛ انها ليست جاهزة للاستهلاك العام بعد. الرجاء تجاهل ملفات
CMakeLists.txt
الموجودة في الشجرة المصدر.
تثبيت تبعيات البناء المناسبة لنظام التشغيل الخاص بك:
# Fedora
sudo dnf install ccache gcc-c++ meson alsa-lib-devel libatomic libpng-devel
SDL2-devel SDL2_net-devel opusfile-devel
fluidsynth-devel iir1-devel mt32emu-devel libslirp-devel
speexdsp-devel libXi-devel zlib-ng-devel
# Debian, Ubuntu
sudo apt install ccache build-essential libasound2-dev libatomic1 libpng-dev
libsdl2-dev libsdl2-net-dev libopusfile-dev
libfluidsynth-dev libslirp-dev libspeexdsp-dev libxi-dev
# Install Meson on Debian-11 "Bullseye" or Ubuntu-21.04 and newer
sudo apt install meson
# Arch, Manjaro
sudo pacman -S ccache gcc meson alsa-lib libpng sdl2 sdl2_net
opusfile fluidsynth libslirp speexdsp libxi pkgconf
# openSUSE
sudo zypper install ccache gcc gcc-c++ meson alsa-devel libatomic1 libpng-devel
libSDL2-devel libSDL2_net-devel
opusfile-devel fluidsynth-devel libmt32emu-devel libslirp-devel
speexdsp libXi-devel
# Void Linux
sudo xbps-install -S SDL2-devel SDL2_net-devel alsa-lib-devel
fluidsynth-devel libiir1-devel libmt32emu-devel
libpng-devel libslirp-devel opusfile-devel
speexdsp-devel libatomic-devel libXi-devel
# NixOS
# With Home Manager on home.nix (Recommended Permanent Installation)
home.packages = [ pkg-config gcc_multi cmake ccache SDL2 SDL2_net
fluidsynth glib gtest libGL libGLU libjack2 libmt32emu libogg
libpng libpulseaudio libslirp libsndfile meson ninja opusfile
libselinux speexdsp stdenv alsa-lib xorg.libXi irr1 ]
# Note: the same package list will work with environment.systemPackages
# on configuration.nix
# macOS
xcode-select --install
brew install cmake ccache meson libpng sdl2 sdl2_net opusfile
fluid-synth libslirp pkg-config python3 speexdsp
تعرف على الفرع الرئيسي:
# commit or stash any personal code changes
git checkout main -f
سحب آخر التحديثات. يعد هذا ضروريًا في كل مرة تريد فيها إنشاءًا جديدًا:
git pull
قم بإعداد البناء. هذه خطوة لمرة واحدة إما بعد استنساخ الريبو أو تنظيف أدلة العمل الخاصة بك:
meson setup build
ما ورد أعلاه يمكّن جميع الميزات الوظيفية لـ DOSBox Staging. إذا كنت مهتمًا برؤية جميع خيارات إعداد Meson، فقم بتشغيل meson configure
.
تجميع المصادر. يعد هذا ضروريًا في كل مرة تريد فيها إنشاءًا جديدًا:
meson compile -C build
الثنائي الخاص بك هو: build/dosbox
يعتمد الملف الثنائي على الموارد المحلية المرتبطة به، لذا نقترح الارتباط بالملف الثنائي من PATH
الخاص بك، مثل ~/.local/bin/
.
استمتع!
أولاً، تحتاج إلى إعداد vcpkg لتثبيت تبعيات البناء. بمجرد تشغيل vcpkg، افتح PowerShell وقم بتشغيل:
PS: > .vcpkg integrate install
ستضمن هذه الخطوة أن MSVC يمكنه استخدام vcpkg لإنشاء كافة التبعيات والعثور عليها وربطها.
ابدأ تشغيل Visual Studio وافتح الملف vsdosbox.sln
. تأكد من تحديد x64
كنظام أساسي للحل. استخدم Ctrl+Shift+B لإنشاء كافة المشاريع.
لاحظ أنه في المرة الأولى التي تقوم فيها بإنشاء تكوين، سيتم إنشاء التبعيات تلقائيًا وتخزينها في الدليل vcpkg_installed
. قد يستغرق هذا وقتًا طويلاً.
تم توثيق الإرشادات الخاصة بأنظمة البناء وأنظمة التشغيل الأخرى في BUILD.md.
روابط للتعليمات الخاصة بنظام التشغيل: MSYS2، MacPorts، Haiku، NixOS.
يتم استيراد الالتزامات الأولية إلى هذا الريبو في الوقت المناسب، راجع الفرع svn/trunk
.
svn/*
- فروع من SVNforks/*
- رمز لمختلف شوكات DOSBox المهجورةvogons/*
- تصحيحات المجتمع المنشورة في منتدى Vogons تشير علامات Git المطابقة للنمط svn/*
إلى الالتزامات المشار إليها بواسطة مسارات "علامة" SVN في وقت الإنشاء.
بالإضافة إلى ذلك، نرفق بعض البيانات التعريفية الاختيارية للإلتزامات في شكل ملاحظات Git. لإحضارهم، قم بتشغيل:
git fetch origin " refs/notes/*:refs/notes/* "
يرجى الرجوع إلى دليل التوثيق قبل إجراء تغييرات على الموقع أو الوثائق.