From 01d6be4d512118d39ef52f79ca9ddddd2bba3f32 Mon Sep 17 00:00:00 2001
From: stijn
Date: Mon, 5 May 2014 12:18:27 +0200
Subject: Windows MSVC port
Extend the windows port so it compiles with the toolchain from Visual Studio 2013
---
windows/msvc/common.props | 22 +++++++++++++
windows/msvc/debug.props | 13 ++++++++
windows/msvc/genhdr.targets | 76 +++++++++++++++++++++++++++++++++++++++++++++
windows/msvc/release.props | 16 ++++++++++
windows/msvc/snprintf.c | 44 ++++++++++++++++++++++++++
windows/msvc/sources.props | 17 ++++++++++
windows/msvc/unistd.h | 28 +++++++++++++++++
7 files changed, 216 insertions(+)
create mode 100644 windows/msvc/common.props
create mode 100644 windows/msvc/debug.props
create mode 100644 windows/msvc/genhdr.targets
create mode 100644 windows/msvc/release.props
create mode 100644 windows/msvc/snprintf.c
create mode 100644 windows/msvc/sources.props
create mode 100644 windows/msvc/unistd.h
(limited to 'windows/msvc')
diff --git a/windows/msvc/common.props b/windows/msvc/common.props
new file mode 100644
index 000000000..300de46a5
--- /dev/null
+++ b/windows/msvc/common.props
@@ -0,0 +1,22 @@
+
+
+
+
+
+ $(ProjectDir)
+ $(ProjectDir)build\$(Configuration)$(Platform)\
+
+
+
+ .\;.\build;.\msvc;..\py
+ _USE_MATH_DEFINES;_CRT_SECURE_NO_WARNINGS;_MBCS;%(PreprocessorDefinitions)
+ false
+ Level1
+ false
+
+
+ true
+
+
+
+
\ No newline at end of file
diff --git a/windows/msvc/debug.props b/windows/msvc/debug.props
new file mode 100644
index 000000000..c0a22be85
--- /dev/null
+++ b/windows/msvc/debug.props
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+ DEBUG;%(PreprocessorDefinitions)
+
+
+
+
diff --git a/windows/msvc/genhdr.targets b/windows/msvc/genhdr.targets
new file mode 100644
index 000000000..453d2ff1e
--- /dev/null
+++ b/windows/msvc/genhdr.targets
@@ -0,0 +1,76 @@
+
+
+
+
+
+
+
+ $(MsBuildThisFileDirectory)..\..\py\
+ $(MsBuildThisFileDirectory)..\build\genhdr\
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ $(DestDir)qstrdefs.preprocessed.h
+ $(MsBuildThisFileDirectory)..\..\unix\qstrdefsport.h
+ $(DestDir)qstrdefs.generated.h
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ $(GitHash)-dirty
+
+
+ $(DestDir)py-version.h
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/windows/msvc/release.props b/windows/msvc/release.props
new file mode 100644
index 000000000..ea0bf433d
--- /dev/null
+++ b/windows/msvc/release.props
@@ -0,0 +1,16 @@
+
+
+
+
+
+
+
+ true
+ true
+
+
+ true
+
+
+
+
diff --git a/windows/msvc/snprintf.c b/windows/msvc/snprintf.c
new file mode 100644
index 000000000..d200a4cbc
--- /dev/null
+++ b/windows/msvc/snprintf.c
@@ -0,0 +1,44 @@
+/*
+* This file is part of the Micro Python project, http://micropython.org/
+*
+* The MIT License (MIT)
+*
+* Copyright (c) 2013, 2014 Damien P. George
+*
+* Permission is hereby granted, free of charge, to any person obtaining a copy
+* of this software and associated documentation files (the "Software"), to deal
+* in the Software without restriction, including without limitation the rights
+* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+* copies of the Software, and to permit persons to whom the Software is
+* furnished to do so, subject to the following conditions:
+*
+* The above copyright notice and this permission notice shall be included in
+* all copies or substantial portions of the Software.
+*
+* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+* THE SOFTWARE.
+*/
+
+#include
+#include
+#include
+
+// _snprintf/vsnprintf are fine, except the 'F' specifier is not handled
+int snprintf(char *dest, size_t count, const char *format, ...) {
+ const size_t fmtLen = strlen(format) + 1;
+ char *fixedFmt = alloca(fmtLen);
+ for (size_t i = 0; i < fmtLen; ++i)
+ fixedFmt[i] = format[i] == 'F' ? 'f' : format[i];
+
+ va_list args;
+ va_start(args, format);
+ const int ret = vsnprintf(dest, count, fixedFmt, args);
+ va_end(args);
+
+ return ret;
+}
diff --git a/windows/msvc/sources.props b/windows/msvc/sources.props
new file mode 100644
index 000000000..9af7d6e11
--- /dev/null
+++ b/windows/msvc/sources.props
@@ -0,0 +1,17 @@
+
+
+
+ $(MsbuildThisFileDirectory)..\..\
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/windows/msvc/unistd.h b/windows/msvc/unistd.h
new file mode 100644
index 000000000..ece86fa74
--- /dev/null
+++ b/windows/msvc/unistd.h
@@ -0,0 +1,28 @@
+/*
+* This file is part of the Micro Python project, http://micropython.org/
+*
+* The MIT License (MIT)
+*
+* Copyright (c) 2013, 2014 Damien P. George
+*
+* Permission is hereby granted, free of charge, to any person obtaining a copy
+* of this software and associated documentation files (the "Software"), to deal
+* in the Software without restriction, including without limitation the rights
+* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+* copies of the Software, and to permit persons to whom the Software is
+* furnished to do so, subject to the following conditions:
+*
+* The above copyright notice and this permission notice shall be included in
+* all copies or substantial portions of the Software.
+*
+* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+* THE SOFTWARE.
+*/
+
+// There's no unistd.h, but this is the equivalent
+#include
--
cgit v1.2.3