This is the main server code for SWGSource 1.2 as originally forked from the https://bitbucket.org/stellabellumswg/ repository. Please see that repository for original publication and alteration credit.
- 64-bit-types - fully 64 bit version that builds and runs completely.
- Download JDK 11 32 bit (https://www.azul.com/downloads/?version=java-11-lts&architecture=x86-32-bit&package=jdk) and set your JAVA_HOME to the java directory.
- Download perl (https://strawberryperl.com/) and add it to the PATH environment variable.
- Download cmake for windows.
- Download Visual Studio 2022 Community Edition, make sure you select cmake tools during installation
- Open the cmake GUI application and set the source and build folder
- Click configure, use Visual Studio 17 2022 as generator, and set optional platform for generator to Win32 (IMPORTANT!)
- Press finish
- Click Generate
- Click open project
- Build
Important: For versions of clang <= 4 you'll probably have to remove/omit a deprecated CFLAG or two from the CMakelists.txt file
Only use the Debug and Release targets unless you want to work on 64 bit. For local testing, and non-live builds set MODE=Release or MODE=debug in build_linux.sh.
For local testing, and non-live builds set MODE=Release or MODE=Debug in the build.properties file in swg-main.
For production, user facing builds, set MODE=MINSIZEREL for profile built, heavily optimized versions of the binaries.
To generate new profiles, build SWG with MODE=RELWITHDEBINFO.
Add export LLVM_PROFILE_FILE="output-%p.profraw" to your startServer.sh file.
WHILE THE SERVER IS RUNNING do a ps -a to get the pid's of each SWG executable. And take note of which ones are which.
After you cleanly exit (shutdown) the server, and ctrl+c the LoginServer, move each output-pid.profraw to a folder named for it's process.
Then, proceed to combine them into usable profiles for the compiler:
llvm-profdata merge -output=code.profdata output-*.profraw
Finally, then replace the profdata files with the updated versions, within the src/ tree.
See http://clang.llvm.org/docs/UsersManual.html#profiling-with-instrumentation for more information.
See https://swg-source.github.io/ for more information on the SWG Source project.
Join the SWGSource Discord if you would like to contribute: https://discord.gg/j53cMj9