Today i spent much time to investigate what is the mysterious reason of solution generation difference between beta and release versions. And i have got interesting result
1. In Beta shell command “generate project files” worked fine, and solution project properties had:
[]
BUILD: …\Engine\Build\BatchFiles\Build.bat SteammancerEditor Win64 DebugGame “$(SolutionDir)$(SolutionName).uproject” -rocket
REBUILD: …\Engine\Build\BatchFiles\Rebuild.bat SteammancerEditor Win64 DebugGame “$(SolutionDir)$(SolutionName).uproject” -rocket
CLEAN: …\Engine\Build\BatchFiles\Clean.bat SteammancerEditor Win64 DebugGame “$(SolutionDir)$(SolutionName).uproject” -rocket
PREPROCESSOR DIFINITIONS: $(NMakePreprocessorDefinitions);UE_GAME=1;UE_ROCKET=1;IS_PROGRAM=0;UNICODE;_UNICODE;UNREAL;…etc many other parameters
[/]
2. in UE 4.0.1 from github \Engine\Build\BatchFiles\RegisterShellCommands.bat did not worked properly, so shell command “generate project files” did not worked. And i used commandline command to generate project files:
[]
“D:\Dev\UnrealEngine4\UnrealEngine\Engine\Build\BatchFiles\RocketGenerateProjectFiles.bat” “D:\Dev\UnrealEngine4\Steammancer\Steammancer.uproject”
[/]
This command generated solution file with same project properties as was in beta, so build, rebuild and clean works fine.
Also RocketGenerateProjectFiles.bat generates files with command:
[]
…\Binaries\DotNET\UnrealBuildTool.exe -ProjectFiles -rocket %*
[/]
As you can see here is parameter option -rocket
3. in UE 4.0.2 from github \Engine\Build\BatchFiles\RegisterShellCommands.bat was fixed and now it works fine and it generates project files.
But now solution tree in VS have UE4 sources, tools and project, additional build options.
And as i wrote above, any code changing will start engine recompilation.
“Rescan project folder” suggestion from this thread: Problem: The engine compiles every time we do changes to our project - C++ - Epic Developer Community Forums helps, but it is not a good way to do it after every code change. Also project scans starts automatically after i open VS, but i should do rescan any way.
Shell command “generate project files” run
[]
Engine\Build\BatchFiles\GenerateProjectFiles.bat -project=“…” -game -engine
[/]
GenerateProjectFiles.bat generates files with command:
[]
…\Binaries\DotNET\UnrealBuildTool.exe -ProjectFiles %*
[/]
So, as you can see it has no -rocket parameter
Also generated solution project properties now contain:
[]
BUILD: …\Engine\Build\BatchFiles\Build.bat SteammancerEditor Win64 DebugGame “$(SolutionDir)$(SolutionName).uproject”
REBUILD: …\Engine\Build\BatchFiles\Rebuild.bat SteammancerEditor Win64 DebugGame “$(SolutionDir)$(SolutionName).uproject”
CLEAN: …\Engine\Build\BatchFiles\Clean.bat SteammancerEditor Win64 DebugGame “$(SolutionDir)$(SolutionName).uproject”
PREPROCESSOR DIFINITIONS: $(NMakePreprocessorDefinitions);UE_GAME=1;IS_PROGRAM=0;UNICODE;_UNICODE;UNREAL;…etc many other parameters
[/]
There is no UE_ROCKET=1 and -rocket parameters options.
4. UE 4.0.2 installed from launcher (binary version)
In this version shell command “generate project files” worked fine, and solution project properties had:
[]
BUILD: …\Engine\Build\BatchFiles\Build.bat SteammancerEditor Win64 DebugGame “$(SolutionDir)$(SolutionName).uproject” -rocket
REBUILD: …\Engine\Build\BatchFiles\Rebuild.bat SteammancerEditor Win64 DebugGame “$(SolutionDir)$(SolutionName).uproject” -rocket
CLEAN: …\Engine\Build\BatchFiles\Clean.bat SteammancerEditor Win64 DebugGame “$(SolutionDir)$(SolutionName).uproject” -rocket
PREPROCESSOR DIFINITIONS: $(NMakePreprocessorDefinitions);UE_GAME=1;UE_ROCKET=1;IS_PROGRAM=0;UNICODE;_UNICODE;UNREAL;…etc many other parameters
[/]
so, it is same as in Beta and when you use RocketGenerateProjectFiles.bat and different that solution generated by GenerateProjectFiles.bat.
So, for now, i am still using RocketGenerateProjectFiles.bat to generate solution which not recompiles engine at every code changing.