Divide the project into subprojects

Hi there,

I want to split my project as well as a split engine:


Expose the networking, utils, access to the database, protobuf, cryptography to modules.
And recompile them separately if necessary. Now compilation epically long.

I want something like this:


How to do it? I read about the modules, but is a little different.
If I add a project to project, here is a mistake, how to set up correctly?

1>------ Clean started: Project: AndroidOpenSSL, Configuration: Development_Editor x64 ------
1>  Cleaning AndroidOpenSSLEditor Binaries...
1>  Performing full C++ include scan (building a new target)
1>EXEC : error : Couldn't find target rules file for target 'AndroidOpenSSLEditor' in rules assembly 'UE4Rules, Version=, Culture=neutral, PublicKeyToken=null'.
1>  Location: E:\Program Files\Epic Games\4.13\Engine\Intermediate\Build\BuildRules\UE4Rules.dll
1>  Target rules found:
1>  	UE4Editor - E:\Program Files\Epic Games\4.13\Engine\Source\UE4Editor.Target.cs
1>  	UE4Game - E:\Program Files\Epic Games\4.13\Engine\Source\UE4Game.Target.cs
1>  	UnrealHeaderTool - E:\Program Files\Epic Games\4.13\Engine\Source\Programs\UnrealHeaderTool\UnrealHeaderTool.Target.cs
1>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\Microsoft.MakeFile.Targets(36,5): error MSB3073: The command ""E:\Program Files\Epic Games\4.13\Engine\Build\BatchFiles\Clean.bat" AndroidOpenSSLEditor Win64 Development "C:\Users\Vadim\Documents\Unreal Projects\AndroidProtobuf\AndroidOpenSSL.uproject" -waitmutex" exited with code -1.
2>------ Clean started: Project: AndroidProtobuf, Configuration: Development_Editor x64 ------
2>  Cleaning AndroidProtobufEditor Binaries...
2>  Performing full C++ include scan (building a new target)
3>------ Clean started: Project: UE4, Configuration: BuiltWithUnrealBuildTool Win32 ------
========== Clean: 2 succeeded, 1 failed, 0 skipped ==========

Bad idea…

You will almost certainly waste far far more time trying to do this than you lose in build times.

Building projects with plugins is a sensible way to do things though, there was a stream on the subject recently.