Browse Source

Update windows/VS2017 support

Chachay 7 years ago
parent
commit
6e3fcf65c8
4 changed files with 41 additions and 8 deletions
  1. 6 2
      contrib/CMakeLists.txt
  2. 14 1
      contrib/README.md
  3. 19 4
      contrib/WinBuild.cmd
  4. 2 1
      examples/xkcd.cpp

+ 6 - 2
contrib/CMakeLists.txt

@@ -1,10 +1,11 @@
-cmake_minimum_required(VERSION 3.1)
+cmake_minimum_required(VERSION 3.7)
 project (MatplotlibCPP_Test)
 
 set(CMAKE_CXX_STANDARD 11)
 set(CMAKE_CXX_STANDARD_REQUIRED ON)
 
 include_directories(${PYTHONHOME}/include)
+include_directories(${PYTHONHOME}/Lib/site-packages/numpy/core/include)
 link_directories(${PYTHONHOME}/libs)
 
 add_definitions(-DMATPLOTLIBCPP_PYTHON_HEADER=Python.h)
@@ -12,10 +13,13 @@ add_definitions(-DMATPLOTLIBCPP_PYTHON_HEADER=Python.h)
 # message(STATUS "*** dump start cmake variables ***")
 # get_cmake_property(_variableNames VARIABLES)
 # foreach(_variableName ${_variableNames})
-        # message(STATUS "${_variableName}=${${_variableName}}")
+#         message(STATUS "${_variableName}=${${_variableName}}")
 # endforeach()
 # message(STATUS "*** dump end ***")
 
 add_executable(minimal ${CMAKE_CURRENT_SOURCE_DIR}/../examples/minimal.cpp)
 add_executable(basic ${CMAKE_CURRENT_SOURCE_DIR}/../examples/basic.cpp)
 add_executable(modern ${CMAKE_CURRENT_SOURCE_DIR}/../examples/modern.cpp)
+add_executable(animation ${CMAKE_CURRENT_SOURCE_DIR}/../examples/animation.cpp)
+add_executable(nonblock ${CMAKE_CURRENT_SOURCE_DIR}/../examples/nonblock.cpp)
+add_executable(xkcd ${CMAKE_CURRENT_SOURCE_DIR}/../examples/xkcd.cpp)

+ 14 - 1
contrib/README.md

@@ -8,12 +8,25 @@ contributors are not required to and may be unable to check whether their
 changes break any of them.
 
 ## Windows support
+Tested on the following environment
+* Windows 10 - 64bit
+* Anaconda 4.3 (64 bit)
+* Python 3.6.0
+* CMake 3.9.4
+* Visual Studio 2017, 2015, 2013
 
 ### Configuring and Building Samples
+1. Edit WinBuild.cmd for your environment(Line:5-7)
+    if NOT DEFINED MSVC_VERSION set MSVC_VERSION=[Your Visual Studio Version(12, 14, 15)]
+    if NOT DEFINED CMAKE_CONFIG set CMAKE_CONFIG=Release
+    if NOT DEFINED PYTHONHOME   set PYTHONHOME=[Your Python Path]
 
+2. Run WinBuild.cmd to build
 ```cmd
 > cd contrib
 > WinBuild.cmd
 ```
-
 The `WinBuild.cmd` will set up temporal ENV variables and build binaries in (matplotlib root)/examples with the Release configuration.
+
+3. Find exe files in examples/build/Release
+Note: platforms folder is necessary to make qt works.

+ 19 - 4
contrib/WinBuild.cmd

@@ -1,9 +1,14 @@
 @echo off
 @setlocal EnableDelayedExpansion
 
-if NOT DEFINED MSVC_VERSION set MSVC_VERSION=14
+REM ------Set Your Environment------------------------------- 
+if NOT DEFINED MSVC_VERSION set MSVC_VERSION=15
 if NOT DEFINED CMAKE_CONFIG set CMAKE_CONFIG=Release
 if NOT DEFINED PYTHONHOME   set PYTHONHOME=C:/Users/%username%/Anaconda3
+REM ---------------------------------------------------------
+
+set KEY_NAME="HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\VisualStudio\SxS\VS7"
+set VALUE_NAME=15.0
 
 if "%MSVC_VERSION%"=="14" (
     if "%processor_architecture%" == "AMD64" (
@@ -14,13 +19,23 @@ if "%MSVC_VERSION%"=="14" (
 ) else if "%MSVC_VERSION%"=="12" (
     if "%processor_architecture%" == "AMD64" (
         set CMAKE_GENERATOR=Visual Studio 12 2013 Win64
-    
     ) else (
         set CMAKE_GENERATOR=Visual Studio 12 2013
     )
+) else if "%MSVC_VERSION%"=="15" (
+    if "%processor_architecture%" == "AMD64" (
+        set CMAKE_GENERATOR=Visual Studio 15 2017 Win64
+    ) else (
+        set CMAKE_GENERATOR=Visual Studio 15 2017
+    )
+)
+if "%MSVC_VERSION%"=="15" (
+    for /F "usebackq tokens=1,2,*" %%A in (`REG QUERY %KEY_NAME% /v %VALUE_NAME%`) do (
+        set batch_file=%%CVC\Auxiliary\Build\vcvarsall.bat
+    )
+) else (
+    set batch_file=!VS%MSVC_VERSION%0COMNTOOLS!..\..\VC\vcvarsall.bat
 )
-
-set batch_file=!VS%MSVC_VERSION%0COMNTOOLS!..\..\VC\vcvarsall.bat
 call "%batch_file%" %processor_architecture%
 
 pushd ..

+ 2 - 1
examples/xkcd.cpp

@@ -1,6 +1,7 @@
+#define _USE_MATH_DEFINES
+#include <cmath>
 #include "../matplotlibcpp.h"
 #include <vector>
-#include <cmath>
 
 namespace plt = matplotlibcpp;