Skip to content

Public Interface of IUltraleapTrackingPlugin::SetSwizzles uses private enum ELeapQuatSwizzleAxisB defined in LeapWrapper.h #106

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

Closed
diekleinekuh opened this issue Dec 15, 2021 · 6 comments

Comments

@diekleinekuh
Copy link

When trying to build LeapMotion 4.03 in a monolithic game I get a compile error:

Module.UltraleapTracking.cpp:
... Plugins\LeapUnreal\Source\UltraleapTrackingCore\Public\IUltraleapTrackingPlugin.h(76): error C2061: syntax error: identifier 'ELeapQuatSwizzleAxisB'

This might be hidden by unity builds at times.

I worked around it by forward declaring the enum. But I guess the enum should rather be moved to UltraleapTrackingData.h.

@JimSimons-UH
Copy link
Contributor

JimSimons-UH commented Dec 15, 2021

Hi,

Could you provide some details about the build environment you're using?

  • Which version of Visual Studio?
  • Which build toolchain (it'll say something like 'Using Visual Studio 2019 14.29.30137 toolchain' in the build output)
  • How are you building from visual studio, or packaging in shipping/development mode?

@diekleinekuh
Copy link
Author

Hi:

  • Visual Studio 2019 14.29.30040 toolchain
  • UltraleapTracking as a project plugin
  • Visual Studio 2019 IDE

You can repro this issue by disabling unity builds for the UltraLeapTracking module in BuildConfiguration.xml
<?xml version="1.0" encoding="utf-8" ?> <Configuration xmlns="https://www.unrealengine.com/BuildConfiguration"> <ModuleConfiguration> <DisableUnityBuild> <Item>UltraleapTracking</Item> </DisableUnityBuild> </ModuleConfiguration> </Configuration>

Or by adding this to UltraleapTracking.Build.cs:
bUseUnity = false;

I stumbled upon this issue because I was making changes to the UltraLeap plugin and the adaptive unity build Unreal uses pulled out a file from the unity module of the plugin revealing the problem of the missing declarations.

I just did a run with unity builds turned off and it revealed more issues:
1> [1/3] OpenXRToLeapWrapper.cpp 1>...\Plugins\LeapUnreal\Source\UltraleapTrackingCore\Private\OpenXRToLeapWrapper.cpp(58): error C2027: use of undefined type 'IXRTrackingSystem'

@JimSimons-UH
Copy link
Contributor

thanks, this'll allow us to repro the issue.

@JimSimons-UH
Copy link
Contributor

I've pushed another branch with fixes for those issues, these will get merged into main in a subsequent release (see the last two commits).

https://github.com/ultraleap/UnrealPlugin/tree/MonolithicBuildFix

@diekleinekuh
Copy link
Author

Awesome. Thanks.

@JimSimons-UH
Copy link
Contributor

this is now merged into main

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants