Files
PrimeWorldEditor/README.md
Lioncache b2bd0cd326 General: Update to Qt6
Migrate over to Qt 6 so that we can keep the UI toolkit pegged at the
current major version.

Unfortunately this also means we have to gut a small feature in the
progress dialogs, since the extras module doesn't exist in Qt6 anymore.

Few things of note:

QVector<> is internally an alias of QList now, so any changeover is due
to that to make the semantics a little clearer.

QtConcurrent requires arguments to be swapped on some invocations, and
discarding instances need to use the global thread pool instead.

fromStdList(), etc can be replaced with range constructors.

--no-angle and other commands are removed from newer versions of
windeployqt

QVariant::Invalid (and other type IDs) are deprecated and also break
existing functionality. Instead we can return default constructed
QVariants where applicable, which restores functionality that would be
broken if left as is (e.g. many list would straight up not populate or
have wonky size hinting).

The reason for this is that the QVariant(QVariant::Type) constructor
models a unique kind of internal QVariant state where it's considered
to be in an invalid state, but accessing the (supposedly) invalid state
will instead return a default constructed value of the internal type.

This kinda sucks because this means genuinely invalid states that would
warrant an assertion or other type of error would be silently ignored
and execution would continue on as normal, so this also enforces
correctness a little bit (on top of, well, fixing all the broken UI
controls).
2025-11-29 19:54:35 -05:00

4.1 KiB

Prime World Editor

Prime World Editor is a custom editor suite for Retro Studios' GameCube and Wii games, including the Metroid Prime series and Donkey Kong Country Returns.

Clone Submodules First!

Builders on all platforms should ensure submodules are up to date with the current PrimeWorldEditor by running git submodule update --init --recursive.

Building on Windows

Requirements

64-bit Note: Except for Visual Studio and the Qt installer, ensure 64-bit (x86-64, x64) packages are installed.

Build using Qt Creator

Compiler Note: Before starting, it is wise to select the 64-bit compiler by opening Tools > Kits > Kits tab. The C and C++ compilers should be set to Visual Studio Community 2022 (amd64).

CMake Note: At the time of writing, Qt Creator will search for a user-installed CMake but this is not necessary. The CMake that comes with Visual Studio may be manually selected by opening Tools > Kits > CMake tab, then adding a manual CMake with the path: C:\Program Files (x86)\Microsoft Visual Studio\2022\Community\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\bin\cmake.exe.

Debugger Note: To use Qt Creator for debugging, Debugging Tools for Windows must be installed from the Windows SDK package. Once installed, the Qt Creator kit should automatically detect CDB. Make sure the x64 version is selected.

  1. File > Open File or Project
  2. Select CMakeLists.txt at root of cloned PrimeWorldEditor
  3. Select desired build configurations within the Desktop Qt Kit. It is generally fine to just check Debug and Release.
  4. Click Configure Project
  5. Wait for dependencies to build and CMake project to generate (this may take a while).
  6. Edit/Build/Debug/Run

Build using Visual Studio

Qt Note: It may be necessary to edit both CMAKE_PREFIX_PATH entries in the CMakeSettings.json file. They should be set to C:/Qt/<QT VERSION>/msvc2022_64/lib/cmake/Qt6.

  1. File > Open > CMake
  2. Select CMakeLists.txt at root of cloned PrimeWorldEditor
  3. Wait for dependencies to build and CMake project to generate (this may take a while).
  4. Edit/Build/Debug/Run

Build using Command Line

  1. Launch x64 Native Tools Command Prompt for VS 2022
  2. cd <PATH TO PrimeWorldEditor ROOT>
  3. mkdir build
  4. cd build
  5. cmake -G Ninja -DCMAKE_BUILD_TYPE=Release -DCMAKE_PREFIX_PATH=C:/Qt/<QT VERSION>/msvc2022_64/lib/cmake/Qt6 ..
  6. ninja
  7. PrimeWorldEditor.exe is found in the build/bin directory.

Building on macOS

Requirements

Build using Xcode

  1. cd <PATH TO PrimeWorldEditor ROOT>
  2. mkdir build
  3. cd build
  4. cmake -G Xcode -DCMAKE_BUILD_TYPE=Release -DCMAKE_PREFIX_PATH=~/Qt/<QT VERSION>/clang_64/lib/cmake/Qt6 ..
  5. Open PrimeWorldEditor.xcodeproj
  6. Edit/Build/Debug/Run

Build using Command Line

  1. cd <PATH TO PrimeWorldEditor ROOT>
  2. mkdir build
  3. cd build
  4. cmake -G Ninja -DCMAKE_BUILD_TYPE=Release -DCMAKE_PREFIX_PATH=~/Qt/<QT VERSION>/clang_64/lib/cmake/Qt6 ..
  5. ninja
  6. PrimeWorldEditor.app is found in the build/bin directory.

Building on Linux

Requirements

  • A working compiler toolchain (GCC or Clang)
  • cmake, ninja, python3, qt6 (dev), clang (dev) packages

Build using Command Line

  1. cd <PATH TO PrimeWorldEditor ROOT>
  2. mkdir build
  3. cd build
  4. cmake -G Ninja -DCMAKE_BUILD_TYPE=Release ..
  5. ninja
  6. PrimeWorldEditor is found in the build/bin directory.