During compiling after upgrading to 4.24 I was notified of a few engine changes and went about updating my code to account for depreciations. All was well, other than a default build setting that had changed:
[Upgrade] bLegacyPublicIncludePaths = false => Omits subfolders from public include paths to reduce compiler command line length. (Previously: true).
As it says, setting this value to true will mess up your includes if you have split your files into multiple subdirectories.
My project source folder is as follows (Wall of text incoming):
C:.
β Game.Target.cs
β GameEditor.Target.cs
β
ββββGame
β Game.Build.cs
β Game.cpp
β Game.h
β GameCharacter.cpp
β GameCharacter.h
β GameCharacterAnimInstance.cpp
β GameCharacterAnimInstance.h
β GameGameInstance.cpp
β GameGameInstance.h
β GameGameMode.cpp
β GameGameMode.h
β HealthBar.cpp
β HealthBar.h
β LoginGameMode.cpp
β LoginGameMode.h
β
ββββAbilities
β β ChanceProcAbility.cpp
β β ChanceProcAbility.h
β β SelfHealAbility.cpp
β β SelfHealAbility.h
β β SellfEffectAbility.cpp
β β SellfEffectAbility.h
β β SingleEffectAbility.cpp
β β SingleEffectAbility.h
β β UseIfEffectActive.cpp
β β UseIfEffectActive.h
β β
β ββββCore
β AbilityComponent.cpp
β AbilityComponent.h
β
ββββGameplayEffects
β β MovementControlLossEffect.cpp
β β MovementControlLossEffect.h
β β ProcOverlayEffect.cpp
β β ProcOverlayEffect.h
β β StatEffect.cpp
β β StatEffect.h
β β
β ββββCore
β DOTEffect.cpp
β DOTEffect.h
β GamePlayEffectComponent.cpp
β GamePlayEffectComponent.h
β
ββββLobby
β LobbyGameMode.cpp
β LobbyGameMode.h
β LobbyPlayerController.cpp
β LobbyPlayerController.h
β
ββββPlayer
β ββββCore
β GamePlayerController.cpp
β GamePlayerController.h
β PlayerCharacter.cpp
β PlayerCharacter.h
β PlayerCharacterAnimInstance.cpp
β PlayerCharacterAnimInstance.h
β
ββββUserInterface
AbilityBarItem.cpp
AbilityBarItem.h
EffectStackBar.cpp
EffectStackBar.h
EffectStackBarItem.cpp
EffectStackBarItem.h
HotBar.cpp
HotBar.h
LoginWidget.cpp
LoginWidget.h
WinnerOverlayWidget.cpp
WinnerOverlayWidget.h
Iβm assuming that by this upgrade being the new default, the way Iβve been going at it is not intended. It feels off to have everything in one folder. You can split it up in visual studio using filters, but every time you βGenerate project filesβ they are lost to the abyss.
Soβ¦
What are best practices regarding c++ project folder structure?
Bonus:
Any tips to smooth the transition to whatever is correct (seeing as my project is quite large)?
Thank you in advance!!! <3