ultravideo/kvazaar

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.

Jovasa commented

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

Jovasa commented

As of v2.3.0 yasm is no longer used and this should no longer be an issue