bkaradzic / bgfx

Cross-platform, graphics API agnostic, "Bring Your Own Engine/Framework" style rendering library.
https://bkaradzic.github.io/bgfx/overview.html
BSD 2-Clause "Simplified" License
15.15k stars 1.95k forks source link

genie can not generate the correct projects file on Windows VS2019 for ARM/ARM64 #2351

Open WenceyWang opened 3 years ago

WenceyWang commented 3 years ago

Describe the bug genie can not generate the correct projects file on Windows VS2019 ARM/ARM64

There are three problems. The first is the OutDir and IntDir is wrong.

<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
  <OutDir>..\..\win64_vs2019\bin\</OutDir>
  <IntDir>..\..\win64_vs2019\obj\x64\Debug\bgfx\</IntDir>
  <TargetName>bgfxDebug</TargetName>
  <TargetExt>.lib</TargetExt>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
  <OutDir>..\..\..\scripts\</OutDir>
  <IntDir>obj\ARM64\Debug\bgfx\</IntDir>
  <TargetName>bgfxDebug</TargetName>
  <TargetExt>.lib</TargetExt>
</PropertyGroup>

The second is that lacks links of psapi and gdi32. I found that there are configuration { "vs201*", "x32 or x64" } in genie.lua, which is strange.

The third one is that WindowsTargetPlatformVersion is still 8.1 which seems has been fixed up in https://github.com/bkaradzic/GENie/issues/467 but in fact nope.

To Reproduce ..\bx\tools\bin\windows\genie.exe --with-tools --with-examples --with-profiler --with-shared-lib --platform=ARM64 vs2019

Expected behavior A compilable vs project.

Screenshots If applicable, add screenshots to help explain your problem.

Additional context

..\bx\tools\bin\windows\genie.exe  --version
GENie - Project generator tool version 1141 (commit 44918162588e56512ddac6264b08ca6ba4e67468)
https://github.com/bkaradzic/GENie
WenceyWang commented 3 years ago

There is also a problem that bgfx\3rdparty\glslang\build_info.h seems not had been generated in the correct position, which include path is bgfx\3rdparty\glslang\glslang\

bkaradzic commented 3 years ago

Which ARM64 Windows platform you're targeting? --platform=ARM64 definitely won't work because that's not how GENie is setup for my projects.

WenceyWang commented 3 years ago

I am targeting general desktop Windows on ARM64.

bkaradzic commented 3 years ago

Try using --vs=ARM64 (it's not going to work fully since there are no configurations for it, but platform inside VS might be selected correctly).