If CMAKE_ASM_COMPILER is set, cmake assumes
CMAKE_ASM_COMPILER_ID was also set, and doesn't try to set it.
Without CMAKE_ASM_COMPILER_ID, cmake can't set
CMAKE_ASM_COMPILER_OPTIONS_TARGET either, which means
CMAKE_ASM_COMPILER_TARGET is ignored, causing cross compiling to fail,
i.e., --target=${CMAKE_ASM_COMPILER_TARGET} isn't passed.