diff options
author | Vito Gamberini <vito@gamberini.email> | 2024-03-04 16:42:46 (GMT) |
---|---|---|
committer | Vito Gamberini <vito@gamberini.email> | 2024-03-04 18:09:58 (GMT) |
commit | 7cf45c9e6a7633cb231dfa07d8e7346200242af0 (patch) | |
tree | 013f5b71b9a2269461cb189d219a3da6d321d6ea /Modules | |
parent | 47bc42b5ac66ed4a144ad7822c12cd9a3f34c333 (diff) | |
download | CMake-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.cmake | 11 |
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>") |