summaryrefslogtreecommitdiffstats
path: root/Modules
diff options
context:
space:
mode:
authorVito Gamberini <vito@gamberini.email>2024-03-04 16:42:46 (GMT)
committerVito Gamberini <vito@gamberini.email>2024-03-04 18:09:58 (GMT)
commit7cf45c9e6a7633cb231dfa07d8e7346200242af0 (patch)
tree013f5b71b9a2269461cb189d219a3da6d321d6ea /Modules
parent47bc42b5ac66ed4a144ad7822c12cd9a3f34c333 (diff)
downloadCMake-7cf45c9e6a7633cb231dfa07d8e7346200242af0.zip
CMake-7cf45c9e6a7633cb231dfa07d8e7346200242af0.tar.gz
CMake-7cf45c9e6a7633cb231dfa07d8e7346200242af0.tar.bz2
ASM_NASM: Improve support for standalone usage
* Add tests for standalone NASM usage * Change generic ASM_NASM executable linker to <CMAKE_LINKER> * Use CMAKE_SYSTEM_PROCESSOR to determine output format when used without a C/CXX compiler
Diffstat (limited to 'Modules')
-rw-r--r--Modules/CMakeASM_NASMInformation.cmake11
1 files changed, 11 insertions, 0 deletions
diff --git a/Modules/CMakeASM_NASMInformation.cmake b/Modules/CMakeASM_NASMInformation.cmake
index a72575b..898b823 100644
--- a/Modules/CMakeASM_NASMInformation.cmake
+++ b/Modules/CMakeASM_NASMInformation.cmake
@@ -12,6 +12,8 @@ if(NOT CMAKE_ASM_NASM_OBJECT_FORMAT)
set(CMAKE_ASM_NASM_OBJECT_FORMAT win64)
elseif(DEFINED CMAKE_CXX_SIZEOF_DATA_PTR AND CMAKE_CXX_SIZEOF_DATA_PTR EQUAL 8)
set(CMAKE_ASM_NASM_OBJECT_FORMAT win64)
+ elseif(CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
+ set(CMAKE_ASM_NASM_OBJECT_FORMAT win64)
else()
set(CMAKE_ASM_NASM_OBJECT_FORMAT win32)
endif()
@@ -20,6 +22,8 @@ if(NOT CMAKE_ASM_NASM_OBJECT_FORMAT)
set(CMAKE_ASM_NASM_OBJECT_FORMAT macho64)
elseif(DEFINED CMAKE_CXX_SIZEOF_DATA_PTR AND CMAKE_CXX_SIZEOF_DATA_PTR EQUAL 8)
set(CMAKE_ASM_NASM_OBJECT_FORMAT macho64)
+ elseif(CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
+ set(CMAKE_ASM_NASM_OBJECT_FORMAT macho64)
else()
set(CMAKE_ASM_NASM_OBJECT_FORMAT macho)
endif()
@@ -28,6 +32,8 @@ if(NOT CMAKE_ASM_NASM_OBJECT_FORMAT)
set(CMAKE_ASM_NASM_OBJECT_FORMAT elf64)
elseif(DEFINED CMAKE_CXX_SIZEOF_DATA_PTR AND CMAKE_CXX_SIZEOF_DATA_PTR EQUAL 8)
set(CMAKE_ASM_NASM_OBJECT_FORMAT elf64)
+ elseif(CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
+ set(CMAKE_ASM_NASM_OBJECT_FORMAT elf64)
else()
set(CMAKE_ASM_NASM_OBJECT_FORMAT elf)
endif()
@@ -38,6 +44,11 @@ if(NOT CMAKE_ASM_NASM_COMPILE_OBJECT)
set(CMAKE_ASM_NASM_COMPILE_OBJECT "<CMAKE_ASM_NASM_COMPILER> <DEFINES> <INCLUDES> <FLAGS> -f ${CMAKE_ASM_NASM_OBJECT_FORMAT} -o <OBJECT> <SOURCE>")
endif()
+if(NOT CMAKE_ASM_NASM_LINK_EXECUTABLE)
+ set(CMAKE_ASM_NASM_LINK_EXECUTABLE
+ "<CMAKE_LINKER> <CMAKE_ASM_NASM_LINK_FLAGS> <LINK_FLAGS> <OBJECTS> -o <TARGET> <LINK_LIBRARIES>")
+endif()
+
if(CMAKE_ASM_NASM_COMPILER_ID STREQUAL "NASM")
set(CMAKE_DEPFILE_FLAGS_ASM_NASM "-MD <DEP_FILE> -MT <DEP_TARGET>")