Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Need CI support for downloaded plugin builds #1469

Open
csciguy8 opened this issue Jul 2, 2024 · 3 comments
Open

Need CI support for downloaded plugin builds #1469

csciguy8 opened this issue Jul 2, 2024 · 3 comments
Labels
quality Improve code quality or encourage developer success

Comments

@csciguy8
Copy link
Contributor

csciguy8 commented Jul 2, 2024

Some users download our released plugin, put in it their project, Unreal Editor is rebuilding it for them, and the build fails.

One example is on the forum here.

Although the forum issue was solved, we need to be able to catch errors like this on CI before we release.


It's possible to reproduce this locally by doing this..

  • Create an empty blueprint project in Unreal 5.4
  • Download the cesium-unreal 2.7 release to that projects/Plugins/CesiumForUnreal folder
  • Create some cesium assets
  • Close the project
  • Delete the contents of Plugins/CesiumForUnreal/Binaries/Win64
  • Open the project, it'll ask you to compile the plugin

In this case, the build failed, and produced messages like this in the log...

Building UnrealEditor...
Using Visual Studio 2022 14.38.33135 toolchain (C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.38.33130) and Windows 10.0.22621.0 SDK (C:\Program Files (x86)\Windows Kits\10).
[Adaptive Build] Excluded from CesiumRuntime unity file: CalcBounds.cpp, Cesium3DTileset.cpp, Cesium3DTilesetRoot.cpp, CesiumActors.cpp, CesiumBingMapsRasterOverlay.cpp, CesiumBoundingVolumeComponent.cpp, CesiumCamera.cpp, CesiumCameraManager.cpp, ...
...
[21/142] Compile [x64] Cesium3DTilesetRoot.cpp
[22/142] Compile [x64] CesiumBoundingVolumeComponent.cpp
[23/142] Compile [x64] CesiumGlobeAnchorComponent.cpp
C:\Users\SomeUser\Documents\Unreal Projects\Test54Blueprint\Plugins\CesiumForUnreal\Source\CesiumRuntime\Public\CesiumGlobeAnchorComponent.h(185): error C2143: syntax error: missing ';' before '*'
C:\Users\SomeUser\Documents\Unreal Projects\Test54Blueprint\Plugins\CesiumForUnreal\Source\CesiumRuntime\Public\CesiumGlobeAnchorComponent.h(185): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
...
@csciguy8
Copy link
Contributor Author

csciguy8 commented Jul 2, 2024

One solution could be to just make some of our CI builds "non-unity" builds, but this could would come at the cost of compile time and artifact size, which came up in this issue

@csciguy8 csciguy8 changed the title Need CI support downloaded plugin builds Need CI support for downloaded plugin builds Jul 2, 2024
@csciguy8
Copy link
Contributor Author

csciguy8 commented Jul 3, 2024

One possible solution is to use a IWYU (include what you use) tool to strip out unneeded headers, but also ensure that proper headers are included for every source file.

  • Github repo here

  • CMake 3.3 seems to have support with CMAKE__INCLUDE_WHAT_YOU_USE

  • Unreal looks to have related code, but haven't found any documentation for its use
    \Epic Games\UE_5.4\Engine\Source\Programs\UnrealBuildTool\ToolChain\IWYUToolChain.cs
    \Epic Games\UE_5.4\Engine\Source\Programs\UnrealBuildTool\Modes\IWYUMode.cs

@grantwilk
Copy link

Adidng a +1 to anything that makes the manual download/install experience better. Our team uses source builds of Unreal and it is massively helpful for us to have plugins distributed by means other than the Unreal Marketplace. We had this same issue.

@j9liu j9liu added the quality Improve code quality or encourage developer success label Nov 8, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
quality Improve code quality or encourage developer success
Projects
None yet
Development

No branches or pull requests

3 participants