Talk:Building On Linux
Clang seems to peak at using only 2 CPU cores when compiling.
That seems to allow for more CPU cores to be utilized when building by increasing the number of concurrent jobs make can perform. I tried to make using the "-j" argument, but clang still only used 2 cores.
Can this CPU core preference be added in to the Unreal build(s) or is it not supported by clang?
I came upon this article from the Unreal Tournament GitHub repo, regarding building the game.
I'm running Linux Mint 18, and wish to note one must still build prerequisites manually on Mint 18 because:
after following all instructions on this page, ./GenerateProjectFiles.sh still complains "You have not run Setup.sh, the build will likely fail." (I followed the instructions specific to Mint users regarding LD_PRELOAD and then followed the general first time instructions, including running ./Setup.sh, and still ran into this)
GenerateProjectFiles.sh will indeed fail complaining of "xbuild not found"
building prerequisites manually requires following simple instructions given by apt regarding some of the packages having been replaced. easy to get around
building prerequisites manually gets past this error and, even though GPF still complains "You have not run Setup.sh, the build will likely fail.", GPF seems to succeed. I am then able to compile the game.
As a separate aside, some packages related to Clang have also been updated since those listed in this article and are safe to use.
I'll add all this info to the article if given the go-ahead. Contact me via my filter email email@example.com with comments or questions.
-- Alexander Nye 8/25/16
EDIT: let me be more clear. I did run ./Setup.sh and also followed the manual steps for building prerequisites without reverting any changes made by ./Setup.sh. This script just runs a binary through mono, so I'm not sure what all it does. But hey, my steps worked.
github Readme has newer info
We should refer readers to https://github.com/EpicGames/UnrealEngine/blob/release/Engine/Build/BatchFiles/Linux/README.md as it has more up-to-date information like pulling from the release branch instead of the master one.