Open ClementineAccount opened 2 years ago
Note for anyone reading from the bounty
I will do the payout even if the issue is resolved by replacing CMakeLists.txt entirely with a different build method. Possiblities include reverting back to .Sln files (since the project makes one using CMake anyways) or Meson. As long as the project can be built easily with the revised instructions and methods.
A bigger problem TBH is the fact that this thing links directly against the 32-bit 2010 Havok SDK. I don't even understand how he was managing that with VS2019, let alone how anyone would manage it with VS2022.
Feel like it can't be really necessary given there's no way FNIS was doing that for example.
I wouldn't expect expect a response for Shiyko anytime soon though. Dude doesn't care enough to even bother showing up to fix absolute gems such as this and also this.
I managed to build Nemesis on the master branch after a difficult hundred hours of work.
Even with local my PC VS2022, I was able to generate an exe by installing what I needed and modifying some code.
I'm using VS2019 with GitHub Action because I need the v140 feature for the Cpython 3.8.2 build, but if I can check the v140 feature in the GUI on VS2022 which I did locally in some way and install it windows-latest
. and install it, it should be possible to build with windows-latest
.
Visual Studio
Python(For aqt command.This is Unofficial Qt installer)
build.ps1
param (
[switch]
$Verbose,
[switch]
$Deploy
)
#! NOTE: VS2022 gives me a syntax error when I try to compile 5.14.2. Therefore, use the one for VS2019.
# If GitHub CI definition, then ignore.
if (!$env:Qt5_DIR) {
$env:Qt5_DIR = Join-Path -Path $(Get-Location) -ChildPath "build/5.15.2/msvc2019/lib/cmake"
if (!$(Test-Path $env:Qt5_DIR)) {
Write-Host "Not found aqt(Qt install command). Try to install with Python3..." -ForegroundColor Cyan
if (Get-Command rye -ErrorAction SilentlyContinue) { rye install apt }
elseif (Get-Command python3 -ErrorAction SilentlyContinue) { pip install aqt }
else { throw "Couldn't found Python3" }
aqt install-qt windows desktop 5.15.2 win32_msvc2019 -O ./build
}
}
$local:IsVerbose = if ($Verbose) { 1 } else { 0 }
# -S: source path
# -B: build path
# -A Win32: Need IA-32(32bit) mode for `hkxcmd`
cmake -S . -B ./build -A Win32 -D CMAKE_BUILD_TYPE=Release -DCMAKE_VERBOSE_MAKEFILE="$IsVerbose"
cmake --build ./build -j $Env:NUMBER_OF_PROCESSORS --config Release
if ($Deploy) {
Copy-Item -Path ./build/Release/NemesisUnlimitedBehaviorEngine.exe -Destination './test environment' -Force
Copy-Item -Path './build/_deps/cpython-src/PCbuild/win32/python38.dll' -Destination './test environment' -Force
# This command will copy the dlls needed to run
if (Test-Path './build/5.15.2/msvc2019/bin/windeployqt') {
./build/5.15.2/msvc2019/bin/windeployqt './test environment/NemesisUnlimitedBehaviorEngine.exe'
}
elseif (Get-Command windeployqt -ErrorAction SilentlyContinue) {
windeployqt './test environment/NemesisUnlimitedBehaviorEngine.exe'
}
else { throw "Couldn't find windeployqt.exe" }
Compress-Archive -Path './test environment/*' -DestinationPath './NemesisUnlimitedBehaviorEngine-x86-windows-msvc'
}
Execute the following PowerShell command.
./build.ps1
The current code in the master branch has so many errors in the build that I have no idea how it was built.
The following issues must be addressed for the project to be maintainable by other contributors in its current state.
The rest of this post is a write up of the varius concerns that I have noticed about the current state of the project when it comes to building. As of writing this issue, I am still unable to successfully build Nemesis for my own development.
Note that this issue is similar to the following opened issues:
Resolving this issue will resolve these three other issues automatically.
README.md is outdated
The README.md references a version of the repo that was dependant on Visual Studios and a different version of CPython. This is no longer the case, making the Readme unhelpful for new contributors.
The current CMakeLists files references Python 3.8.2 while the README.md references Python 3.5.6 (Inconsistent Python versions)
Qt5 5.14.1 is not as easily accessible
The version of Qt5 set by the current CMakeLists.txt is not easily accessible using the Qt Online Installer. There are also no instructions on obtaining the correct Qt5 version for the project.
Boost.cmake is broken
Boost.cmake leads to a now dead page.. This link must be replaced with one to a publicly accessible repo.
This creates several, very difficult to resolve build errors with CMake, predictably, as developers have to make guesses and assumptions as to how the project is intended to be built. The following are examples of Build errors I have encountered in my attempt to build Nemesis, which require non-trivial fixes and research from the developer to modify.
(libftfi-7.lib is likely caused by Python.cmake)