diff options
author | Alexander Neundorf <neundorf@kde.org> | 2008-11-05 22:27:41 (GMT) |
---|---|---|
committer | Alexander Neundorf <neundorf@kde.org> | 2008-11-05 22:27:41 (GMT) |
commit | 19046aa98c863c8ed2e957f0ddd404b60577be85 (patch) | |
tree | 9a5c5b48a25a261fcfff24ef396e3046c445a531 | |
parent | 49db4e53a1e351278bc8e93bf004510e71804486 (diff) | |
download | CMake-19046aa98c863c8ed2e957f0ddd404b60577be85.zip CMake-19046aa98c863c8ed2e957f0ddd404b60577be85.tar.gz CMake-19046aa98c863c8ed2e957f0ddd404b60577be85.tar.bz2 |
ENH: add support for the MS masm and masm64 assemblers, works with nmake,
not (yet) with the Visual Studio generators
Alex
-rw-r--r-- | Modules/CMakeASM_MASMInformation.cmake | 10 | ||||
-rw-r--r-- | Modules/CMakeDetermineASM-ATTCompiler.cmake | 2 | ||||
-rw-r--r-- | Modules/CMakeDetermineASMCompiler.cmake | 2 | ||||
-rw-r--r-- | Modules/CMakeDetermineASM_MASMCompiler.cmake | 13 | ||||
-rw-r--r-- | Modules/CMakeTestASM-ATTCompiler.cmake | 1 | ||||
-rw-r--r-- | Modules/CMakeTestASM_MASMCompiler.cmake | 10 |
6 files changed, 36 insertions, 2 deletions
diff --git a/Modules/CMakeASM_MASMInformation.cmake b/Modules/CMakeASM_MASMInformation.cmake new file mode 100644 index 0000000..05366b9 --- /dev/null +++ b/Modules/CMakeASM_MASMInformation.cmake @@ -0,0 +1,10 @@ +# support for the MS assembler, masm and masm64 + +SET(ASM_DIALECT "_MASM") + +SET(CMAKE_ASM${ASM_DIALECT}_SOURCE_FILE_EXTENSIONS asm) + +SET(CMAKE_ASM${ASM_DIALECT}_COMPILE_OBJECT "<CMAKE_ASM${ASM_DIALECT}_COMPILER> <FLAGS> /c /Fo <OBJECT> <SOURCE>") + +INCLUDE(CMakeASMInformation) +SET(ASM_DIALECT) diff --git a/Modules/CMakeDetermineASM-ATTCompiler.cmake b/Modules/CMakeDetermineASM-ATTCompiler.cmake index 71e98c2..5861159 100644 --- a/Modules/CMakeDetermineASM-ATTCompiler.cmake +++ b/Modules/CMakeDetermineASM-ATTCompiler.cmake @@ -1,4 +1,4 @@ -# determine the compiler to use for ASM using AT&T syntax +# determine the compiler to use for ASM using AT&T syntax, e.g. GNU as SET(ASM_DIALECT "-ATT") SET(CMAKE_ASM${ASM_DIALECT}_COMPILER_INIT ${_CMAKE_TOOLCHAIN_PREFIX}gas ${_CMAKE_TOOLCHAIN_PREFIX}as) diff --git a/Modules/CMakeDetermineASMCompiler.cmake b/Modules/CMakeDetermineASMCompiler.cmake index eac8c55..da7194a 100644 --- a/Modules/CMakeDetermineASMCompiler.cmake +++ b/Modules/CMakeDetermineASMCompiler.cmake @@ -17,7 +17,7 @@ IF(NOT CMAKE_ASM${ASM_DIALECT}_COMPILER) IF (_CMAKE_USER_CXX_COMPILER_PATH OR _CMAKE_USER_C_COMPILER_PATH) FIND_PROGRAM(CMAKE_ASM${ASM_DIALECT}_COMPILER NAMES ${CMAKE_ASM${ASM_DIALECT}_COMPILER_LIST} PATHS ${_CMAKE_USER_C_COMPILER_PATH} ${_CMAKE_USER_CXX_COMPILER_PATH} DOC "Assembler" NO_DEFAULT_PATH) ENDIF (_CMAKE_USER_CXX_COMPILER_PATH OR _CMAKE_USER_C_COMPILER_PATH) - FIND_PROGRAM(CMAKE_ASM${ASM_DIALECT}_COMPILER NAMES ${CMAKE_ASM${ASM_DIALECT}_COMPILER_LIST} DOC "Assembler") + FIND_PROGRAM(CMAKE_ASM${ASM_DIALECT}_COMPILER NAMES ${CMAKE_ASM${ASM_DIALECT}_COMPILER_LIST} PATHS ${_CMAKE_TOOLCHAIN_LOCATION} DOC "Assembler") ELSE(NOT CMAKE_ASM${ASM_DIALECT}_COMPILER) diff --git a/Modules/CMakeDetermineASM_MASMCompiler.cmake b/Modules/CMakeDetermineASM_MASMCompiler.cmake new file mode 100644 index 0000000..3b72e07 --- /dev/null +++ b/Modules/CMakeDetermineASM_MASMCompiler.cmake @@ -0,0 +1,13 @@ +# Find the MS assembler (masm or masm64) + +SET(ASM_DIALECT "_MASM") + +# if we are using the 64bit cl compiler, assume we also want the 64bit assembler +IF(CMAKE_CL_64) + SET(CMAKE_ASM${ASM_DIALECT}_COMPILER_INIT ml64) +ELSE(CMAKE_CL_64) + SET(CMAKE_ASM${ASM_DIALECT}_COMPILER_INIT ml) +ENDIF(CMAKE_CL_64) + +INCLUDE(CMakeDetermineASMCompiler) +SET(ASM_DIALECT) diff --git a/Modules/CMakeTestASM-ATTCompiler.cmake b/Modules/CMakeTestASM-ATTCompiler.cmake index 3844f5b..1b4ef4f 100644 --- a/Modules/CMakeTestASM-ATTCompiler.cmake +++ b/Modules/CMakeTestASM-ATTCompiler.cmake @@ -4,6 +4,7 @@ # and link the most basic of programs. If not, a fatal error # is set and cmake stops processing commands and will not generate # any makefiles or projects. + SET(ASM_DIALECT "-ATT") INCLUDE(CMakeTestASMCompiler) SET(ASM_DIALECT) diff --git a/Modules/CMakeTestASM_MASMCompiler.cmake b/Modules/CMakeTestASM_MASMCompiler.cmake new file mode 100644 index 0000000..9bdf13a --- /dev/null +++ b/Modules/CMakeTestASM_MASMCompiler.cmake @@ -0,0 +1,10 @@ + +# This file is used by EnableLanguage in cmGlobalGenerator to +# determine that the selected ASM_MASM "compiler" (should be masm or masm64) +# can actually "compile" and link the most basic of programs. If not, a +# fatal error is set and cmake stops processing commands and will not generate +# any makefiles or projects. + +SET(ASM_DIALECT "_MASM") +INCLUDE(CMakeTestASMCompiler) +SET(ASM_DIALECT) |