diff options
author | Alex Neundorf <neundorf@kde.org> | 2010-09-25 18:57:03 (GMT) |
---|---|---|
committer | Alex Neundorf <neundorf@kde.org> | 2010-09-25 18:57:03 (GMT) |
commit | e1fc9b902ac737c98ecaf236568d3e685ea3dce1 (patch) | |
tree | d28314fdcab124959154232ac520e1422069d770 /Modules | |
parent | f42bae0bd535aa62cd0b6e380251bceb16f75fb0 (diff) | |
download | CMake-e1fc9b902ac737c98ecaf236568d3e685ea3dce1.zip CMake-e1fc9b902ac737c98ecaf236568d3e685ea3dce1.tar.gz CMake-e1fc9b902ac737c98ecaf236568d3e685ea3dce1.tar.bz2 |
Add support for nasm assembler, patch by Peter Collingbourne (see #10069)
Alex
Diffstat (limited to 'Modules')
-rw-r--r-- | Modules/CMakeASM_NASMInformation.cmake | 30 | ||||
-rw-r--r-- | Modules/CMakeDetermineASM_NASMCompiler.cmake | 13 | ||||
-rw-r--r-- | Modules/CMakeTestASM_NASMCompiler.cmake | 9 |
3 files changed, 52 insertions, 0 deletions
diff --git a/Modules/CMakeASM_NASMInformation.cmake b/Modules/CMakeASM_NASMInformation.cmake new file mode 100644 index 0000000..2a73aca --- /dev/null +++ b/Modules/CMakeASM_NASMInformation.cmake @@ -0,0 +1,30 @@ +# support for the nasm assembler + +set(CMAKE_ASM_NASM_SOURCE_FILE_EXTENSIONS nasm) + +if(WIN32) + if(CMAKE_C_SIZEOF_DATA_PTR EQUAL 8) + SET(CMAKE_ASM_NASM_OBJECT_FORMAT win64) + else() + SET(CMAKE_ASM_NASM_OBJECT_FORMAT win32) + endif() +elseif(APPLE) + if(CMAKE_C_SIZEOF_DATA_PTR EQUAL 8) + SET(CMAKE_ASM_NASM_OBJECT_FORMAT macho64) + else() + SET(CMAKE_ASM_NASM_OBJECT_FORMAT macho) + endif() +else() + if(CMAKE_C_SIZEOF_DATA_PTR EQUAL 8) + SET(CMAKE_ASM_NASM_OBJECT_FORMAT elf64) + else() + SET(CMAKE_ASM_NASM_OBJECT_FORMAT elf) + endif() +endif() + +set(CMAKE_ASM_NASM_COMPILE_OBJECT "<CMAKE_ASM_NASM_COMPILER> <FLAGS> -f ${CMAKE_ASM_NASM_OBJECT_FORMAT} -o <OBJECT> <SOURCE>") + +# Load the generic ASMInformation file: +set(ASM_DIALECT "_NASM") +include(CMakeASMInformation) +set(ASM_DIALECT) diff --git a/Modules/CMakeDetermineASM_NASMCompiler.cmake b/Modules/CMakeDetermineASM_NASMCompiler.cmake new file mode 100644 index 0000000..2c8cda5 --- /dev/null +++ b/Modules/CMakeDetermineASM_NASMCompiler.cmake @@ -0,0 +1,13 @@ +# Find the nasm assembler + +SET(CMAKE_ASM_NASM_COMPILER_INIT nasm) + +IF(NOT CMAKE_ASM_NASM_COMPILER) + FIND_PROGRAM(CMAKE_ASM_NASM_COMPILER nasm + "$ENV{ProgramFiles}/NASM") +ENDIF(NOT CMAKE_ASM_NASM_COMPILER) + +# Load the generic DetermineASM compiler file with the DIALECT set properly: +SET(ASM_DIALECT "_NASM") +INCLUDE(CMakeDetermineASMCompiler) +SET(ASM_DIALECT) diff --git a/Modules/CMakeTestASM_NASMCompiler.cmake b/Modules/CMakeTestASM_NASMCompiler.cmake new file mode 100644 index 0000000..ba0e658 --- /dev/null +++ b/Modules/CMakeTestASM_NASMCompiler.cmake @@ -0,0 +1,9 @@ +# This file is used by EnableLanguage in cmGlobalGenerator to +# determine that the selected ASM_NASM "compiler" works. +# For assembler this can only check whether the compiler has been found, +# because otherwise there would have to be a separate assembler source file +# for each assembler on every architecture. + +SET(ASM_DIALECT "_NASM") +INCLUDE(CMakeTestASMCompiler) +SET(ASM_DIALECT) |