summaryrefslogtreecommitdiffstats
path: root/Tests/VSMASM
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2014-08-07 18:53:57 (GMT)
committerBrad King <brad.king@kitware.com>2014-08-20 14:19:49 (GMT)
commitdf3b007d7f904f8de5877f3e05b629239af7220a (patch)
treebf0f6ea804beac70c0a41cf1647d90f16820f311 /Tests/VSMASM
parente872744990f48777a1f1cebc791911363515092d (diff)
downloadCMake-df3b007d7f904f8de5877f3e05b629239af7220a.zip
CMake-df3b007d7f904f8de5877f3e05b629239af7220a.tar.gz
CMake-df3b007d7f904f8de5877f3e05b629239af7220a.tar.bz2
VS: Add test for MASM support
It is now expected to work with VS >= 10 and MSVC >= 13.1.
Diffstat (limited to 'Tests/VSMASM')
-rw-r--r--Tests/VSMASM/CMakeLists.txt10
-rw-r--r--Tests/VSMASM/foo.asm7
-rw-r--r--Tests/VSMASM/include/foo-proc.asm4
-rw-r--r--Tests/VSMASM/main.c2
4 files changed, 23 insertions, 0 deletions
diff --git a/Tests/VSMASM/CMakeLists.txt b/Tests/VSMASM/CMakeLists.txt
new file mode 100644
index 0000000..f2570a3
--- /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 0000000..51cb969
--- /dev/null
+++ b/Tests/VSMASM/foo.asm
@@ -0,0 +1,7 @@
+ifndef TESTx64
+.386
+.model flat, c
+endif
+.code
+include <foo-proc.asm>
+end
diff --git a/Tests/VSMASM/include/foo-proc.asm b/Tests/VSMASM/include/foo-proc.asm
new file mode 100644
index 0000000..e8ba5dc
--- /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 0000000..570ba16
--- /dev/null
+++ b/Tests/VSMASM/main.c
@@ -0,0 +1,2 @@
+extern int foo(void);
+int main(void) { return foo(); }