CMake 开启/使用 NASM 编译汇编代码 配置

CMake使用一例,并设置使用NASM汇编器,编译asm 64位汇编代码

 

cmake_minimum_required(VERSION 3.2)


set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_STANDARD 17)

set(CMAKE_ASM_NASM_SOURCE_FILE_EXETENSIONS asm) #启用汇编文件后缀
ENABLE_LANGUAGE(ASM_NASM)

set(CMAKE_ASM_NASM_FLAGS "-f elf64") #使用64位汇编  linux默认nasm使用32位
set(CMAKE_ASM_NASM_OBJECT_FORMAT elf64)

#设置NASM编译时的选项
set(CMAKE_ASM_NASM_COMPILE_OBJECT "<CMAKE_ASM_NASM_COMPILER> <INCLUDES> \
    <FLAGS> -f ${CMAKE_ASM_NASM_OBJECT_FORMAT} -o <OBJECT> <SOURCE>")


message("### echo  ${CMAKE_ASM_NASM_COMPILER}")
。。。。。。

file(GLOB_RECURSE SERVICE_SRC ./*.cpp ./*.hpp ./*.cc ./*.c ./*.asm) #递归搜索所有 .asm 文件加入

。。。。。。

set(SOURCES ${SOURCES} ${SERVICE_SRC} ${PROVER_SRC} ${TOOLS_SRC} ${gen_protos})

add_executable(${PROJECT_NAME} ${SOURCES} ) #加入程序对象中