1# Distributed under the OSI-approved BSD 3-Clause License. See accompanying 2# file Copyright.txt or https://cmake.org/licensing for details. 3 4 5# support for the nasm assembler 6 7set(CMAKE_ASM_NASM_SOURCE_FILE_EXTENSIONS nasm asm) 8 9if(NOT CMAKE_ASM_NASM_OBJECT_FORMAT) 10 if(WIN32) 11 if(DEFINED CMAKE_C_SIZEOF_DATA_PTR AND CMAKE_C_SIZEOF_DATA_PTR EQUAL 8) 12 set(CMAKE_ASM_NASM_OBJECT_FORMAT win64) 13 elseif(DEFINED CMAKE_CXX_SIZEOF_DATA_PTR AND CMAKE_CXX_SIZEOF_DATA_PTR EQUAL 8) 14 set(CMAKE_ASM_NASM_OBJECT_FORMAT win64) 15 else() 16 set(CMAKE_ASM_NASM_OBJECT_FORMAT win32) 17 endif() 18 elseif(APPLE) 19 if(DEFINED CMAKE_C_SIZEOF_DATA_PTR AND CMAKE_C_SIZEOF_DATA_PTR EQUAL 8) 20 set(CMAKE_ASM_NASM_OBJECT_FORMAT macho64) 21 elseif(DEFINED CMAKE_CXX_SIZEOF_DATA_PTR AND CMAKE_CXX_SIZEOF_DATA_PTR EQUAL 8) 22 set(CMAKE_ASM_NASM_OBJECT_FORMAT macho64) 23 else() 24 set(CMAKE_ASM_NASM_OBJECT_FORMAT macho) 25 endif() 26 else() 27 if(DEFINED CMAKE_C_SIZEOF_DATA_PTR AND CMAKE_C_SIZEOF_DATA_PTR EQUAL 8) 28 set(CMAKE_ASM_NASM_OBJECT_FORMAT elf64) 29 elseif(DEFINED CMAKE_CXX_SIZEOF_DATA_PTR AND CMAKE_CXX_SIZEOF_DATA_PTR EQUAL 8) 30 set(CMAKE_ASM_NASM_OBJECT_FORMAT elf64) 31 else() 32 set(CMAKE_ASM_NASM_OBJECT_FORMAT elf) 33 endif() 34 endif() 35endif() 36 37if(NOT CMAKE_ASM_NASM_COMPILE_OBJECT) 38 set(CMAKE_ASM_NASM_COMPILE_OBJECT "<CMAKE_ASM_NASM_COMPILER> <DEFINES> <INCLUDES> <FLAGS> -f ${CMAKE_ASM_NASM_OBJECT_FORMAT} -o <OBJECT> <SOURCE>") 39endif() 40 41if(CMAKE_ASM_NASM_COMPILER_ID STREQUAL "NASM") 42 set(CMAKE_DEPFILE_FLAGS_ASM_NASM "-MD <DEP_FILE> -MT <DEP_TARGET>") 43 44 if((NOT DEFINED CMAKE_DEPENDS_USE_COMPILER OR CMAKE_DEPENDS_USE_COMPILER) 45 AND CMAKE_GENERATOR MATCHES "Makefiles|WMake") 46 # dependencies are computed by the compiler itself 47 set(CMAKE_ASM_NASM_DEPFILE_FORMAT gcc) 48 set(CMAKE_ASM_NASM_DEPENDS_USE_COMPILER TRUE) 49 endif() 50endif() 51 52# Load the generic ASMInformation file: 53set(ASM_DIALECT "_NASM") 54include(CMakeASMInformation) 55set(ASM_DIALECT) 56