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

[CompilerApp] Use StrideEditorTargetFramework #1969

Closed

Conversation

Kryptos-FR
Copy link
Member

PR Details

Stride.Core.Assets.CompilerApp.targets hadn't been updated in PR #1908

Types of changes

  • Docs change / refactoring / dependency upgrade
  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to change)

Checklist

  • Solution on a clean clone builds.

@manio143
Copy link
Member

See my comment on #1968 about Stride solution targets vs user targets

@manio143
Copy link
Member

Also, I don't think you can use that property in the build folder which is shipped to the user - either has to be defined in the same file or use net6.0 explicitly.

@Kryptos-FR
Copy link
Member Author

Kryptos-FR commented Oct 19, 2023

Also, I don't think you can use that property in the build folder which is shipped to the user - either has to be defined in the same file or use net6.0 explicitly.

Good point. I didn't realize it was shipped.

@@ -118,8 +118,8 @@
<Target Name="_StridePrepareAssetCompiler">
<PropertyGroup>
<!-- First try NuGet layout, then git checkout -->
<StrideCompileAssetCommand Condition="'$(StrideCompileAssetCommand)' == '' And Exists('$(MSBuildThisFileDirectory)..\lib\net6.0-windows7.0\')">$(MSBuildThisFileDirectory)..\tools\net6.0-windows7.0\Stride.Core.Assets.CompilerApp.exe</StrideCompileAssetCommand>
<StrideCompileAssetCommand Condition="'$(StrideCompileAssetCommand)' == '' And Exists('$(MSBuildThisFileDirectory)..\Stride.Core.Assets.CompilerApp.csproj')">$(MSBuildThisFileDirectory)..\bin\$(Configuration)\net6.0-windows7.0\Stride.Core.Assets.CompilerApp.exe</StrideCompileAssetCommand>
<StrideCompileAssetCommand Condition="'$(StrideCompileAssetCommand)' == '' And Exists('$(MSBuildThisFileDirectory)..\lib\net6.0\')">$(MSBuildThisFileDirectory)..\tools\net6.0\Stride.Core.Assets.CompilerApp.exe</StrideCompileAssetCommand>
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That path doesn't look correct by the way. I can't find that tools folder in either the nuget package or the installed stride.

In addition, inside the nuget package, the file has a .dll extension, not .exe.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

i can't find the .exe too

Copy link
Contributor

@Doprez Doprez Oct 19, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

When building with net6.0-windows7.0 I get the tools folder with the exe in it.
image
But not with just net6.0 and that was part of the problem it seemed.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

can you gen exe with the .net8.0? @Doprez

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

it's the same issue, with net8.0-windows it works but with just net8.0 it doesn't.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

https://learn.microsoft.com/en-us/dotnet/core/deploying/
'exe' is a Windows thing so only appears when the platform is specified, otherwise you only get the 'cross-platform dll'

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That makes more sense. I guess the next question is why is it an exe instead of a loadable dll/nuget like other libraries to remove this dependancy. Converting the CompilerApp cross platform would probably be a fairly large task I am guessing.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The way this is worked around for AssemblyProcessor is that it is loaded as an MSBuild task, but here it wouldn't be possible (VS would require it to target netstandard2.0).
I suggest reverting asset compiler to target windows for the moment to unblock compilation, and file an issue to discuss how to make it run cross platform correctly (linked with the Linux issue made by Caspian).

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Wouldn't be better to have a main assembly as a dll and another project to build it as an app? That way there could be a different app for each supported platform.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Would it be possible instead to invoke dotnet /path/to/dll?

@Doprez
Copy link
Contributor

Doprez commented Oct 21, 2023

While this gets worked on should the original PR be reverted? it breaks GameStudio in master currently.

@manio143
Copy link
Member

Agreed, let's revert asset compiler TFM change and keep the targets as they were for the moment to unblock people.

@IXLLEGACYIXL
Copy link
Collaborator

IXLLEGACYIXL commented Oct 22, 2023

after running into issues again, when the assetcompiler compiled once with net6.0-windows and you change the assemblyprocessor to net6 it still works but it uses the old assemblyprocessor

but i cant get rid of the old one either so i dont know how to build the assemblyprocessor for now

@Kryptos-FR
Copy link
Member Author

Not relevant any more (we moved to .NET 8). Will be done differently on the other xplat PRs. Closing.

@Kryptos-FR Kryptos-FR closed this Dec 30, 2023
@Kryptos-FR Kryptos-FR deleted the feature/CompilerApp-build-fix branch December 30, 2023 23:47
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

Successfully merging this pull request may close these issues.

None yet

6 participants