Building without the x86 assembly code
0xC0000054 opened this issue · 3 comments
I am trying to build the library for a Windows on ARM64 target using Visual Studio 2022, but I am having trouble finding a way to stop the x86 assembly code from being included on that platform.
I tried excluding the ASM files from the build, this worked but that applies to all platforms instead of only ARM64. I also am not sure if that is the only place that would need to be updated for ARM64 support, e.g. the ARM64 version of MSVC warns about /arch:avx2
not being recognized when compiling transform.c
.
Most likely we will eventually remove the x86 assembly files entirely, though just removing the KVZ_COMPILE_ASM
from the project should be enoug to disable the compilation, I have no idea how to do this so that it would only exclude the ARM builds.
I'm bit confused why the compiler is complaining about /arch:avx2
for transform.c
as the /arch:avx2
is only enabled for the files in src/Optimization/strategies/avx2
I am facing the same challenge on Windows using VS 2019 whenever I build it generates this error below I am stuck
Error MSB3721 The command "vsyasm.exe -Xvc -f win64 -i "E:\kvazaar-B\trunk\build..\src\extras" -i "E:\kvazaar-B\trunk\build..\src\extras" -i "E:\kvazaar-B\trunk\build..\src\strategies\x86-asm" -d "ARCH_X86_64=1" -d "HAVE_ALIGNED_STACK=1" -o "x64-Release\" -rnasm -pnasm "....\src\strategies\x86_asm\picture-x86-asm-sad.asm" "....\src\strategies\x86_asm\picture-x86-asm-satd.asm"" exited with code 1. kvazaar_lib E:\kvazaar-B\trunk\build\yasm\vsyasm.targets 46
As of v2.3.0 yasm is no longer used and this should no longer be an issue