microsoft / winfile

Original Windows File Manager (winfile) with enhancements
MIT License
6.76k stars 699 forks source link

Craigwi use 2019 toolset #362

Closed craigwims closed 1 year ago

craigwims commented 1 year ago

Prepare for release using internal Microsoft built pipeline, which requires 2019 toolset and some specific settings.

@schinagl, can you review?

schinagl commented 1 year ago

I compiled with recent VS2019 build tools and SDK 18362. Did a quick smoketest in rel/dbg x86/x64 ==> Fine

During compilation and checking the diffs a few things came to my mind

Little limitations of my review

craigwims commented 1 year ago

Thanks @schinagl. VerifyResources doesn't need to compile x64 and I won't be building any of the extra tools in the offical build pipeline. I changed the version number as you saw.

Due to the lack of internal documentation and there being no local build to verify the settings I had to try different combinations until I got success. Win32 uses SEH; x64 uses Control Guard. I could probably remove the <ControlFlowGuard>Guard</ControlFlowGuard> in ClCompile for Win32.

I will confirm the above and create builds to verify.

schinagl commented 1 year ago

Perfect☺️

malxau commented 1 year ago
Is there someone who can give it a smoke test on ARM?

I guess that's me.

Firstly, note that the "ARM" architecture is basically legacy as far as I can tell. Any new ARM device today is ARM64; ARM was for Windows RT, which doesn't officially support Win32 applications. As in, AFAIK, the set of devices that can run WinFile ARM but not ARM64 is zero.

The result of the smoke test is that the binary doesn't run because it's missing vcruntime140.dll et al, the ARM(32) versions of those DLLs are not included in the ARM64 redistributable package, and there's no public ARM32 package (see http://aka.ms/vcredist ). They are included with the compiler, so it's possible to copy files around and execute, but this seems like it will cause problems for users.

I pushed a change that renames ARM to ARM64, and I think we should do something along those lines: https://github.com/malxau/winfile/tree/arm-to-arm64

Some notes:

craigwims commented 1 year ago

yes, let's move to ARM64 without the SDK change (for now).

craigwims commented 1 year ago

The builds work as noted in the upcoming release issue #356.