طريقة بناء محاكي Eden من المصدر على Windows وLinux وmacOS


<header class="eb-hero"><p>هذا الدليل مخصص للمطورين والـPackagers فقط. بناء Eden من المصدر
        يحتاج معرفة بـGit وCMake والمترجمات وحل أخطاء الاعتماديات، وليس
        الطريقة المناسبة للمستخدم اللي يبي يشغل المحاكي فقط.
    </p>
</header>

<div class="eb-logo">
    <a href="https://git.eden-emu.dev/eden-emu/eden" rel="noopener noreferrer" target="_blank">
        <img alt="شعار محاكي Eden الرسمي" loading="eager" src="https://eden-emu.dev/assets/logos/named_logo.png" />
    </a>
</div>

<section class="eb-user-card">
    <span class="eb-user-label">للمستخدم العادي</span>

    <h3>Eden Emulator 2025: تثبيت وتشغيل Switch</h3>

    <p>
        ما تحتاج تبني المشروع من المصدر عشان تستخدم Eden. تابع شرح التثبيت
        والتشغيل الجاهز في قناة HAKAMIQ بدل الدخول في بيئة التطوير.
    </p>

    <a class="eb-user-button" href="https://www.youtube.com/@HAKAMIQ/search?query=Eden%20Emulator%202025" rel="noopener noreferrer" target="_blank">
        فتح الفيديو داخل قناة HAKAMIQ
    </a>
</section>

<section class="eb-card">
    <h3>تنبيه المطورين</h3>

    <div class="eb-danger">
        الدعم المخصص لعملية البناء غالبًا يُقدم للمطورين والـPackagers فقط.
        لا تستخدم هذه الخطوات كبديل عن تنزيل Stable أو Nightly الجاهز.
    </div>

    <div class="eb-note">
        تعليمات البناء والاعتماديات تتغير مع تطور المشروع. استخدم صفحة
        المنصة الرسمية وراجع آخر تغييرات المستودع قبل تثبيت نسخ محددة من
        CMake أو Qt أو المترجم.
    </div>
</section>

<section class="eb-card">
    <h3>الاعتماديات الأساسية</h3>

    <p>
        تختلف الحزم الدقيقة حسب النظام وطريقة البناء، لكن بيئة التطوير
        تحتاج عادةً العناصر التالية:
    </p>

    <div class="eb-method-grid">
        <div class="eb-method-card">
            <strong>Git</strong>
            لاستنساخ المستودع وتحديث المصدر.
        </div>

        <div class="eb-method-card">
            <strong>CMake حديث</strong>
            لتهيئة المشروع وتوليد ملفات البناء.
        </div>

        <div class="eb-method-card">
            <strong>C++ Toolchain</strong>
            مثل GCC أو Clang أو MSVC/clang-cl حسب النظام.
        </div>

        <div class="eb-method-card">
            <strong>Qt 6 وVulkan</strong>
            لبناء الواجهة الرسومية ومكونات العرض المطلوبة.
        </div>

        <div class="eb-method-card">
            <strong>Ninja أو Generator مناسب</strong>
            حسب طريقة البناء والبيئة المستخدمة.
        </div>

        <div class="eb-method-card">
            <strong>حزم المنصة</strong>
            مكتبات وأدوات إضافية موضحة في صفحة Dependencies الخاصة بنظامك.
        </div>
    </div>

    <div class="eb-warning">
        المشروع رفع الحد الأدنى لـCMake في الإصدارات الحديثة. لا تعتمد على
        قوائم اعتماديات قديمة محفوظة في شروحات أو توزيعات سابقة.
    </div>
</section>

<section class="eb-card">
    <h3>استنساخ مصدر Eden</h3>

    <p>
        افتح Terminal أو PowerShell في المكان اللي تبي تحفظ المشروع داخله،
        ثم نفذ:
    </p>

    <pre class="eb-code-block">git clone https://git.eden-emu.dev/eden-emu/eden.git

cd eden

    <div class="eb-info">
        تقدر تستنسخ المشروع من داخل Qt Creator عبر:
        <span class="eb-code">Create Project → Import Project → Git Clone</span>.
    </div>
</section>

<section class="eb-card">
    <h3>بناء Android</h3>

    <p>
        نسخة Android تستخدم مسار بناء مختلف عن نسخ Desktop، لذلك ما تطبق
        عليها خطوات Qt Creator أو CMake العامة الموجودة تحت.
    </p>

    <div class="eb-success">
        افتح دليل <strong>Building for Android</strong> الرسمي والتزم بنسخ
        Android Studio وSDK وNDK وGradle المذكورة فيه.
    </div>
</section>

<section class="eb-card">
    <h3>اختيار طريقة التهيئة والبناء</h3>

    <div class="eb-method-grid">
        <div class="eb-method-card">
            <strong>Option A — Qt Creator</strong>
            الطريقة الرسومية الموصى بها على Linux وmacOS وWindows.
            <span>مناسبة لتحرير الكود والتهيئة والبناء والتشغيل من نفس الواجهة.</span>
        </div>

        <div class="eb-method-card">
            <strong>Option B — Command Line</strong>
            الأفضل للـCI والسكربتات والمطور اللي يعرف CMake وGenerators.
            <span>الإعداد يتغير حسب النظام والمترجم.</span>
        </div>

        <div class="eb-method-card">
            <strong>Option C — CLion</strong>
            بيئة JetBrains مع CMake Profiles وToolchains.
            <span>تحتاج ضبط Build Type وGenerator ومسار build.</span>
        </div>

        <div class="eb-method-card">
            <strong>Option D — Visual Studio + clang-cl</strong>
            خيار Windows لاستخدام Visual Studio Generator مع ClangCL.
            <span>موجه للمطورين اللي يحتاجون اختبار clang-cl بدل MSVC.</span>
        </div>
    </div>
</section>

<section class="eb-card">
    <h3>Option A — البناء باستخدام Qt Creator</h3>

    <div class="eb-step-grid">
        <div class="eb-step-row">
            <span class="eb-step-number">1</span>
            <div class="eb-step-text">
                افتح مجلد مصدر Eden أو استنسخه مباشرة من Qt Creator.
            </div>
        </div>

        <div class="eb-step-row">
            <span class="eb-step-number">2</span>
            <div class="eb-step-text">
                اختر Kit مناسب لنظامك ومعمارية الجهاز.
            </div>
        </div>

        <div class="eb-step-row">
            <span class="eb-step-number">3</span>
            <div class="eb-step-text">
                خل Build Type على <span class="eb-code">Release</span>
                للاستخدام الطبيعي، أو Debug فقط عند التشخيص.
            </div>
        </div>

        <div class="eb-step-row">
            <span class="eb-step-number">4</span>
            <div class="eb-step-text">
                راجع CMake Configuration واترك الخيارات الافتراضية أولًا.
            </div>
        </div>

        <div class="eb-step-row">
            <span class="eb-step-number">5</span>
            <div class="eb-step-text">
                اضغط <span class="eb-code">Ctrl+B</span>
                أو أيقونة المطرقة لبدء البناء.
            </div>
        </div>

        <div class="eb-step-row">
            <span class="eb-step-number">6</span>
            <div class="eb-step-text">
                للتشغيل اضغط <span class="eb-code">Ctrl+R</span>
                أو أيقونة Play.
            </div>
        </div>
    </div>
</section>

<section class="eb-card">
    <h3>Option B — البناء من Command Line</h3>

    <p>
        أمر التهيئة يختلف حسب النظام والـGenerator. المثال التالي يستخدم
        Ninja وRelease على بيئة تدعمه:
    </p>

    <pre class="eb-code-block">cmake -S . -B build -G Ninja -DCMAKE_BUILD_TYPE=Release

cmake –build build –parallel

    <div class="eb-note">
        الأمر الأساسي المذكور في الدليل هو:
        <span class="eb-code">cmake --build build</span>.
        أضف <span class="eb-code">--parallel</span> مع Ninja أو UNIX Makefiles
        أو Visual Studio 2022 لتسريع البناء إذا كانت الذاكرة والمعالج تسمح.
    </div>

    <div class="eb-warning">
        لا تنسخ Generator من نظام مختلف. اختيار Ninja أو Visual Studio أو
        UNIX Makefiles يعتمد على الأدوات المثبتة عندك.
    </div>
</section>

<section class="eb-card">
    <h3>Option C — البناء باستخدام CLion</h3>

    <div class="eb-step-grid">
        <div class="eb-step-row">
            <span class="eb-step-number">1</span>
            <div class="eb-step-text">
                افتح المشروع داخل CLion وانتظر اكتمال فهرسة المصدر.
            </div>
        </div>

        <div class="eb-step-row">
            <span class="eb-step-number">2</span>
            <div class="eb-step-text">
                أنشئ CMake Profile باسم
                <span class="eb-code">Release</span>.
            </div>
        </div>

        <div class="eb-step-row">
            <span class="eb-step-number">3</span>
            <div class="eb-step-text">
                اختر Toolchain الصحيح واترك Generator تلقائيًا إلا إذا
                كانت صفحة منصتك تطلب غير ذلك.
            </div>
        </div>

        <div class="eb-step-row">
            <span class="eb-step-number">4</span>
            <div class="eb-step-text">
                خل Build Directory باسم
                <span class="eb-code">build</span>.
            </div>
        </div>

        <div class="eb-step-row">
            <span class="eb-step-number">5</span>
            <div class="eb-step-text">
                اختر Target الخاص بـEden ثم نفذ Build أو Run.
            </div>
        </div>
    </div>
</section>

<section class="eb-card">
    <h3>Option D — Visual Studio مع clang-cl</h3>

    <p>
        هذا الخيار مخصص لبناء Windows باستخدام Visual Studio Generator
        مع أداة ClangCL بدل مترجم MSVC الافتراضي.
    </p>

    <pre class="eb-code-block">cmake -S . -B build -G "Visual Studio 17 2022" -A x64 -T ClangCL

cmake –build build –config Release –parallel

    <div class="eb-warning">
        لازم تكون مكونات C++ وClang tools وWindows SDK مثبتة من Visual Studio
        Installer. لو فشلت التهيئة، ارجع لصفحة Dependencies الخاصة بـWindows.
    </div>
</section>

<section class="eb-card">
    <h3>مكان الملف التنفيذي بعد البناء</h3>

    <div class="eb-output-grid">
        <div class="eb-output-card">
            <strong>Windows</strong>
            <code>build/bin/eden.exe</code>
        </div>

        <div class="eb-output-card">
            <strong>macOS</strong>
            <code>build/bin/eden.app/Contents/MacOS/eden</code>
        </div>

        <div class="eb-output-card">
            <strong>Linux والأنظمة الأخرى</strong>
            <code>build/bin/eden</code>
        </div>
    </div>

    <div class="eb-info">
        بعض الـGenerators متعددة الإعدادات قد تضيف مجلدًا خاصًا بـRelease
        حسب طريقة التهيئة. راجع مخرجات CMake لو ما لقيت الملف في المسار المتوقع.
    </div>
</section>

<section class="eb-card">
    <h3>حل فشل Initial Configure</h3>

    <div class="eb-step-grid">
        <div class="eb-step-row">
            <span class="eb-step-number">1</span>
            <div class="eb-step-text">
                راجع دليل Dependencies من البداية وتأكد أن الأدوات موجودة في PATH.
            </div>
        </div>

        <div class="eb-step-row">
            <span class="eb-step-number">2</span>
            <div class="eb-step-text">
                احذف CPM Cache:
                <span class="eb-code">.cache/cpm</span>.
            </div>
        </div>

        <div class="eb-step-row">
            <span class="eb-step-number">3</span>
            <div class="eb-step-text">
                احذف CMake Cache:
                <span class="eb-code">&lt;build directory&gt;/CMakeCache.txt</span>.
            </div>
        </div>

        <div class="eb-step-row">
            <span class="eb-step-number">4</span>
            <div class="eb-step-text">
                اقرأ أول Error فعلي في سجل Configure، مو آخر سطر فقط.
            </div>
        </div>

        <div class="eb-step-row">
            <span class="eb-step-number">5</span>
            <div class="eb-step-text">
                راجع إعدادات CPM لمعرفة هل تحتاج إجبار المشروع على Bundled Package.
            </div>
        </div>

        <div class="eb-step-row">
            <span class="eb-step-number">6</span>
            <div class="eb-step-text">
                لو استمرت المشكلة، ارفق سجل Configure كامل عند طلب الدعم
                في Stoat أو Discord الخاص بالمشروع.
            </div>
        </div>
    </div>

    <div class="eb-danger">
        حذف <span class="eb-code">CMakeCache.txt</span> وحده قد ما يكفي إذا
        تغير Generator أو Toolchain. أحيانًا الأفضل حذف مجلد build كامل
        وإنشاؤه من جديد.
    </div>
</section>

<section class="eb-card">
    <h3>Caveats الخاصة بالمنصات</h3>

    <p>
        Windows وLinux وmacOS وبقية الأنظمة لها اختلافات في المترجمات
        والمكتبات ومسارات التشغيل والتوقيع وحزم الرسوميات. راجع Caveats
        الخاصة بمنصتك قبل اعتبار أي خطأ مشكلة في كود Eden نفسه.
    </p>
</section>

<section class="eb-card">
    <h3>استخدام سكربتات CI</h3>

    <p>
        مستودع Eden يحتوي سكربتات CI تقدر تراجعها لفهم طريقة إعداد بيئات
        البناء الرسمية. على أي POSIX Shell يمكن الاستفادة من:
    </p>

    <pre class="eb-code-block">.ci/common/configure.sh</pre>

    <div class="eb-warning">
        المطورون يشجعون على كتابة سكربتك الخاص اعتمادًا على CMake بدل نسخ
        سكربت CI كامل بدون فهم؛ سكربتات CI قد تحتوي افتراضات خاصة بخوادم البناء.
    </div>
</section>

<section class="eb-source-card">
    <h3>المصادر والروابط الرسمية</h3>

    <div class="eb-links">
        <a class="eb-link" href="https://git.eden-emu.dev/eden-emu/eden" rel="noopener noreferrer" target="_blank">
            مستودع Eden الرسمي
        </a>

        <a class="eb-link" href="https://git.eden-emu.dev/eden-emu/eden/wiki/Building-for-Windows.-" rel="noopener noreferrer" target="_blank">
            دليل البناء على Windows
        </a>

        <a class="eb-link" href="https://git.eden-emu.dev/eden-emu/eden/wiki/Building-for-Linux.-" rel="noopener noreferrer" target="_blank">
            دليل البناء على Linux
        </a>

        <a class="eb-link" href="https://git.eden-emu.dev/eden-emu/eden/wiki/Building-for-Android" rel="noopener noreferrer" target="_blank">
            دليل البناء على Android
        </a>

        <a class="eb-link" href="https://git.eden-emu.dev/eden-emu/eden/wiki/?action=_pages" rel="noopener noreferrer" target="_blank">
            جميع صفحات Eden Wiki
        </a>

        <a class="eb-link" href="https://eden-emu.dev/downloads/" rel="noopener noreferrer" target="_blank">
            تنزيل Builds الجاهزة
        </a>

        <a class="eb-link" href="https://git.eden-emu.dev/eden-emu/eden/src/branch/master/.ci" rel="noopener noreferrer" target="_blank">
            سكربتات CI في المستودع
        </a>

        <a class="eb-link" href="https://www.youtube.com/@HAKAMIQ/search?query=Eden%20Emulator%202025" rel="noopener noreferrer" target="_blank">
            شرح Eden في قناة HAKAMIQ
        </a>
    </div>
</section>

<footer class="eb-footer">
    <p>
        ابدأ بالاعتماديات الخاصة بمنصتك، ثم استنسخ المصدر وهيئ CMake
        ببيئة صحيحة. عند فشل البناء، اعتمد على أول خطأ فعلي ونظف Cache
        قبل تغيير خيارات عشوائية.
    </p>
</footer>