afritz1/OpenTESArena

Improving first-time contributor experience on Windows

Opened this issue · 1 comments

While assisting @ZeriBun with compiling OpenTESArena in Visual Studio, a number of friction points about the current process came up:
A. What to do with OpenAL Soft/SDL2 downloads
B. Environment variables (OPENALDIR, SDL2DIR, WILDMIDIDIR)
C. Manually setting CMake entries (SDL2MAIN_LIBRARY, etc.) because CMake failed to automatically find them
D. Setting the Visual Studio TESArena project file to be the default one on start-up
E. Setting ArenaPath manually in options-default.txt
F. Copying data + options and .dlls into the built executable's folder

The Readme currently assumes the user has experience with CMake and library dependencies but that could be expanded for novice users.

Maybe there is a way in CMake to set start-up projects. If not then just make a Readme note.

The only way to make ArenaPath be set automatically across platforms might be with a Qt5 install wizard. I didn't want to bring all of the Qt dependencies into the project for a long time but this might be the best way to do it 🤷‍♂️

With 'F', I was thinking of having a post-build command of some kind, although it looks like CMake should already be doing that. It isn't copying data and options into the current build type's folder (Debug, ReleaseGeneric, etc.):

# Copy over required files

The topic of vcpkg has been tossed around, and maybe it should be the default approach for all future contributors. We should try not to expose environment variables to novice users if possible, and if vcpkg takes care of this, that would be ideal.

For completeness sake: Chocolately was explored as another option aside from vcpkg for installing dependencies, but key ones like SDL2 are not available through that, so it's not an option.