From df3b007d7f904f8de5877f3e05b629239af7220a Mon Sep 17 00:00:00 2001 From: Brad King Date: Thu, 7 Aug 2014 14:53:57 -0400 Subject: [PATCH] VS: Add test for MASM support It is now expected to work with VS >= 10 and MSVC >= 13.1. --- Tests/CMakeLists.txt | 5 +++++ Tests/VSMASM/CMakeLists.txt | 10 ++++++++++ Tests/VSMASM/foo.asm | 7 +++++++ Tests/VSMASM/include/foo-proc.asm | 4 ++++ Tests/VSMASM/main.c | 2 ++ 5 files changed, 28 insertions(+) create mode 100644 Tests/VSMASM/CMakeLists.txt create mode 100644 Tests/VSMASM/foo.asm create mode 100644 Tests/VSMASM/include/foo-proc.asm create mode 100644 Tests/VSMASM/main.c diff --git a/Tests/CMakeLists.txt b/Tests/CMakeLists.txt index ca7fcdc41..f237f21c9 100644 --- a/Tests/CMakeLists.txt +++ b/Tests/CMakeLists.txt @@ -1679,6 +1679,11 @@ ${CMake_BINARY_DIR}/bin/cmake -DDIR=dev -P ${CMake_SOURCE_DIR}/Utilities/Release list(APPEND TEST_BUILD_DIRS "${CMake_BINARY_DIR}/Tests/MFC") endif() + if(MSVC AND NOT MSVC_VERSION LESS 1310 + AND NOT CMAKE_GENERATOR MATCHES "Visual Studio [6789]( |$)") + ADD_TEST_MACRO(VSMASM VSMASM) + endif() + if(${CMAKE_GENERATOR} MATCHES "Visual Studio") if(NOT MSVC60) ADD_TEST_MACRO(SBCS SBCS) diff --git a/Tests/VSMASM/CMakeLists.txt b/Tests/VSMASM/CMakeLists.txt new file mode 100644 index 000000000..f2570a309 --- /dev/null +++ b/Tests/VSMASM/CMakeLists.txt @@ -0,0 +1,10 @@ +cmake_minimum_required(VERSION 2.8.12) +project(VSMASM C ASM_MASM) +if(CMAKE_SIZEOF_VOID_P EQUAL 8) + add_definitions(-DTESTx64) +else() + add_definitions(-DTESTi386) + set(CMAKE_ASM_MASM_FLAGS "${CMAKE_ASM_MASM_FLAGS} /safeseh") +endif() +include_directories(${CMAKE_CURRENT_SOURCE_DIR}/include) +add_executable(VSMASM main.c foo.asm) diff --git a/Tests/VSMASM/foo.asm b/Tests/VSMASM/foo.asm new file mode 100644 index 000000000..51cb96931 --- /dev/null +++ b/Tests/VSMASM/foo.asm @@ -0,0 +1,7 @@ +ifndef TESTx64 +.386 +.model flat, c +endif +.code +include +end diff --git a/Tests/VSMASM/include/foo-proc.asm b/Tests/VSMASM/include/foo-proc.asm new file mode 100644 index 000000000..e8ba5dcb4 --- /dev/null +++ b/Tests/VSMASM/include/foo-proc.asm @@ -0,0 +1,4 @@ +foo proc public + mov eax,0 + ret +foo endp diff --git a/Tests/VSMASM/main.c b/Tests/VSMASM/main.c new file mode 100644 index 000000000..570ba161b --- /dev/null +++ b/Tests/VSMASM/main.c @@ -0,0 +1,2 @@ +extern int foo(void); +int main(void) { return foo(); }