2019-11-25 编写cmake 脚本注意事项

message(FATAL_ERROR "NO ASSEMBLER! Must install nasm or yasm")

CMake 中的 YASM 支持

https://developer.android.google.cn/ndk/guides/cmake#yasm-cmake

NDK 为构建以 YASM 编写的汇编代码提供 CMake 支持,以便在 x86 和 x86-64 架构上运行。YASM 是基于 NASM 汇编程序且针对 x86 和 x86-64 架构的开源汇编程序。

该程序可用于将汇编语言程序或例程与 C 代码关联,以便从您的汇编代码访问 C 库或函数。您还能在编译完的 C 代码中添加简短的汇编例程,以充分利用汇编代码提供的更出色的机器性能。

要使用 CMake 构建汇编代码,请在您项目的 CMakeLists.txt 中作出以下变更:

  1. 调用 enable_language,且值设置为 ASM_NASM
  2. 根据您是构建共享库还是可执行二进制文件来决定调用 add_libraryadd_executable。在参数中,传入源文件列表。源文件包括 YASM 中汇编程序的 .asm 文件,以及关联 C 库或函数的 .c 文件。

以下片段展示如何配置您的 CMakeLists.txt,以将 YASM 程序构建为共享库。

cmake_minimum_required(VERSION 3.6.0)

enable_language(ASM_NASM)

add_library(test-yasm SHARED jni/test-yasm.c jni/print_hello.asm)

如需通过示例了解如何将 YASM 程序构建为可执行文件,请参阅 git 代码库中的https://android.googlesource.com/platform/ndk/+/master/tests/device/yasm/ 代码。

如您遇到 CMake 开放源代码版本以外的问题,请通过 GitHub 上的 [android-ndk/ndk](https://github.com/android-ndk/ndk/issues) 问题追踪器报告。

你可能感兴趣的:(2019-11-25 编写cmake 脚本注意事项)