You need Visual Studio C++ 2017 (with Windows XP support for C++).
First you need to compile all 3rd-party libraries.
Precompiled libraries and everything else that are needed to build the program also avaliable here:
You don't need to follow the instructions below if you use it, but you must use the same compiler (VC++ 2017 for now).
- Download amalgamation from https://www.sqlite.org/download.html
- Unzip all files to Winyl/src/sqlite3/sqlite3/src
- Build Winyl/src/sqlite3/sqlite3.sln
- Download https://github.com/taglib/taglib
- Configure Visual Studio projects with CMake (CMake GUI is the easiest way) with ENABLE_STATIC_RUNTIME only option
- Patch file taglib/mpeg/id3v2/id3v2tag.cpp: in function downgradeFrames replace all String::Latin1 to String::UTF16 (must be 5 replacements)
- In Visual studio in tag project properties change Platform Toolset to v141_xp
- Build only tag project, other projects aren't needed
- Copy all .h and .tcc files to Winyl/src/taglib (cmdline: for /r "taglib-master\taglib" %f in (.h;.tcc) do copy "%f" "Winyl\Winyl\src\taglib")
- x86: Copy Release and Debug folders with .lib and .pdb files to Winyl/src/taglib
- x64: Reconfigure Win64 Visual Studio projects with CMake and build it
- x64: Copy Release and Debug folders with .lib and .pdb files to Winyl/src/taglib/x64
Build zlib (can be skipped, needed only for PackSkin utility):
- Download zlib https://zlib.net
- Open contrib/vstudio/vc14/zlibvc.sln
- Open zlibstat ReleaseWithoutAsm project properties
- Change Platform Toolset to v141_xp
- Change C/C++ -> Code Generation -> Runtime Library -> Set /MT
- Change C/C++ -> General -> Debug Information Format -> Set None
- Build zlibstat ReleaseWithoutAsm
- x86: Copy zlibstat.lib to Winyl/src/zlib
- x64: Copy zlibstat.lib to Winyl/src/zlib/x64
- Copy zlib.h, zconf.h, ioapi.h, zip.h, unzip.h to Winyl/src/zlib
- Build PackSkin utility Winyl/PackSkin/PackSkin.sln
- Download pugixml https://pugixml.org
- Unzip it to Winyl/src/pugixml
- Uncomment the following lines in pugiconfig.hpp
- Download from http://www.un4seen.com
- Unzip .h files to Winyl/src/bass
- x86: Unzip .lib files to Winyl/src/bass (for bass_fx use .lib file from safeseh folder)
- x64: Unzip x64 .lib files to Winyl/src/bass/x64
That is all if you only need to compile the release version, build it with Winyl.sln.
To run under the debugger or create packages you need Winyl/data folder.
The data folder structure:
x64/(the same as above but dlls are x64)
- Copy the data folder somewhere
- Remove Profile subfolder
- Copy Winyl.exe to the data folder
- Move dlls from x86/x64 to the data folder and delete x86 and x64 folders
- Copy PackSkin.exe to data\Skin folder
- Pack all skins with PackSkin utility and delete unpacked skins
- Rename the data folder to 'Winyl'
- Portable version: zip the folder
- Setup version: run Inno Setup script
- Repeat all for x64 version