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