...
Start with x86/x64 build as a reference and understand the "clean" build flow if possible, before trying to fix it on win-arm64.
There are cases where Windows related packages are released, but still not all tests are passing and these are suppressed on CI.
Historically Windows used to be equal to x86/x64, so Intel specific HW features are default enabled.
Example: https://github.com/ImageOptim/libimagequant/pull/66/commits/94adecb956eac74801bc035a0c403aaf44866d16
Example for a nice build error message:
Code Block xmmintrin.h(27,1): fatal error C1189: #error: This header is specific to X86 and X64 targets -> Intel Streaming SIMD Extensions (SSE) HW feature is turned on, as wrong platform was selected by one of the compiler switches.
Does the project include a Visual Studio project?
Open with VS and add ARM as new platform and try to build it.
Does the project include Arm assembly source file that could be reused for win-arm64?
MSVC compiler doesn’t call preprocessor for assembly files, like LLVM, so that should be done explicitly.
Example: https://github.com/mesonbuild/wrapdb/pull/205/commits/da6a13fb61f64baca0567763c51efaed9b14c41f
...
Do you have an executable that doesn’t start to run and you don’t see any error messages?
If you see this in console, try in GUI (Explorer) again, probably you’ll see some error pop-up window.
Do you see this as a CMake error that some simple C or C++ test is not able to run, so the build is aborted?
There is a good chance you hit this issue: Debug run-time DLL issue
Does the build fail in a veryl early phrase, reporting there are no C/C++ compiler found?
Try to invoke vcvars manually, then repeat it.
Powershell
Code Block cmd /k '"C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvarsx86_arm64.bat" & powershell'
cmd
Code Block "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvarsx86_arm64.bat"
If it’s fixed, you’d need to find where the environment should be set properly by the build process.
Does any of a dependant external library fail for win-arm64?
Check whether there is a newer release for that library.
There is a chance it’s already ported, just not donwstreamed.
Example:
Python related tips
Tests
Is there a test folder with test pythons scripts, but no hint how to run them?
Try install pytest and run this:
Code Block pytest <test directory>
...