diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 8d74f6cd..bb10b67d 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -14,22 +14,16 @@ jobs: run: | sudo add-apt-repository universe sudo apt-get update -qq - sudo apt-get install -y build-essential libgtk-3-dev libsdl2-dev git ninja-build nlohmann-json3-dev libfmt-dev + sudo apt-get install -y clang build-essential libgtk-3-dev libsdl2-dev git ninja-build qt6-base-dev sudo apt-get install -y vulkan-tools libvulkan1 libvulkan-dev vulkan-validationlayers-dev spirv-tools - - git clone --recursive https://github.com/mandreyel/mio - cd mio - cmake -B build -DBUILD_TESTING=False -DCMAKE_BUILD_TYPE=Release - cd build - sudo make install - name: Build Kaizen run: | - cmake -G Ninja -B build -DCMAKE_BUILD_TYPE=Release + cmake -G Ninja -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ -B build -DCMAKE_BUILD_TYPE=Release cmake --build build --config Release - name: Collect artifacts run: | mkdir upload - cp -r build/{kaizen,resources} upload + cp -r build/src/frontend/{kaizen-qt,resources} upload - name: Upload artifacts uses: actions/upload-artifact@master with: @@ -44,7 +38,12 @@ jobs: submodules: recursive - name: Setup dependencies run: | - vcpkg install sdl2[vulkan]:x64-windows fmt:x64-windows nlohmann-json:x64-windows mio:x64-windows + vcpkg install sdl2[vulkan]:x64-windows + - name: Setup Qt + uses: jurplel/install-qt-action@v3 + with: + arch: win64_msvc2019_64 + version: 6.6.* - name: Build Kaizen run: | cmake -B build -T clangcl -DCMAKE_TOOLCHAIN_FILE=C:/vcpkg/scripts/buildsystems/vcpkg.cmake -DCMAKE_BUILD_TYPE=Release @@ -52,11 +51,11 @@ jobs: - name: Collect artifacts run: | mkdir upload - cp build/Release/kaizen.exe upload + cp build/src/frontend/Release/kaizen-qt.exe upload mkdir upload/resources - cp build/resources/* upload/resources - cp build/Release/SDL2.dll upload - cp build/Release/fmt.dll upload + cp resources/* upload/resources + cp build/src/frontend/Release/SDL2.dll upload + windeployqt --dir upload upload/kaizen-qt.exe - name: Upload artifacts uses: actions/upload-artifact@master with: diff --git a/README.md b/README.md index 380925f0..6cb30c78 100644 --- a/README.md +++ b/README.md @@ -36,8 +36,7 @@ This build uses Visual Studio with Vcpkg and Clang-cl Dependencies: - CMake 3.20 or higher - SDL2 (install it by making sure that you're choosing the "vulkan" extension of the package and the x64-windows triplet: `vcpkg install sdl2[vulkan]:x64-windows`) -- fmtlib (install it by making sure that you're choosing the x64-windows triplet: `vcpkg install fmt:x64-windows`) -- nlohmann-json (install it by making sure that you're choosing the x64-windows triplet: `vcpkg install nlohmann-json:x64-windows`) +- Qt6 (install it with `vcpkg install qtbase[core,gui,widgets,vulkan]:x64-windows`) ``` cd path/to/kaizen @@ -53,9 +52,8 @@ Dependencies: - GCC or Clang with C++17 support - CMake 3.20 or higher - SDL2 -- fmtlib - Vulkan API (including the validation layers) + SPIR-V tools -- nlohmann-json +- Qt6 ``` cd path/to/kaizen @@ -78,7 +76,7 @@ Your GPU needs to support Vulkan 1.1+, because the RDP is implemented via [ParaL - [x] Full TLB emulation - [x] Full joybus emulation (but it's not configurable by the user at the moment) - [x] TAS replay (using Mupen's format) -- [ ] Qt or wxWidgets for native GUI (keeping ImGui as opt-in). +- [x] Qt for native GUI - [ ] JIT, with support for x86_64 and ARM (using an IR). - [ ] Debug tools: disassembly, breakpoints, single-step and memory editor - [ ] TAS tools: TAS input, recording (using Mupen's format), save-states, rewind and frame-advance