[cmake/depsbuilder/msvc] Update to python 3.6 / numpy 1.13.1
authorRay Molenkamp <github@lazydodo.com>
Wed, 20 Sep 2017 18:29:50 +0000 (12:29 -0600)
committerRay Molenkamp <github@lazydodo.com>
Wed, 20 Sep 2017 18:31:40 +0000 (12:31 -0600)
-No more hardcoded python35/36 tokens in the scripts
-disabled python module for boost, was not used
-Updated patches for python to support building with msvc2013

build_files/build_environment/cmake/boost.cmake
build_files/build_environment/cmake/harvest.cmake
build_files/build_environment/cmake/mingw.cmake [deleted file]
build_files/build_environment/cmake/numpy.cmake
build_files/build_environment/cmake/python.cmake
build_files/build_environment/cmake/versions.cmake
build_files/build_environment/patches/python.diff

index 554db6583b731fc062806352dc2b9b8a14768d1c..0b4a490f4b35d167074176f42e4b5c44cb3dc19a 100644 (file)
@@ -40,14 +40,15 @@ if(WIN32)
        set(semi_path "${PATCH_DIR}/semi.txt")
        FILE(TO_NATIVE_PATH ${semi_path} semi_path)
        set(BOOST_CONFIGURE_COMMAND bootstrap.bat &&
-                                                               echo using python : 3.5 : ${PYTHON_OUTPUTDIR}\\python.exe > "${JAM_FILE}" &&
+                                                               echo using python : ${PYTHON_OUTPUTDIR}\\python.exe > "${JAM_FILE}" &&
                                                                echo.   : ${BUILD_DIR}/python/src/external_python/include ${BUILD_DIR}/python/src/external_python/pc >> "${JAM_FILE}" &&
                                                                echo.   : ${BUILD_DIR}/python/src/external_python/pcbuild >> "${JAM_FILE}" &&
                                                                type ${semi_path} >> "${JAM_FILE}"
        )
        set(BOOST_BUILD_COMMAND bjam)
-       set(BOOST_BUILD_OPTIONS runtime-link=static --user-config=user-config.jam)
-       set(BOOST_WITH_PYTHON --with-python)
+       #--user-config=user-config.jam
+       set(BOOST_BUILD_OPTIONS runtime-link=static )
+       #set(BOOST_WITH_PYTHON --with-python)
 elseif(APPLE)
        set(BOOST_CONFIGURE_COMMAND ./bootstrap.sh)
        set(BOOST_BUILD_COMMAND ./bjam)
index fbc9f8687f9a4e1041651cc6eac5dc9deacf65a4..44c0d2ccef945b5df850b93f488aa4da96152693 100644 (file)
@@ -114,11 +114,11 @@ if(BUILD_MODE STREQUAL Release)
                                ${CMAKE_COMMAND} -E copy ${LIBDIR}/BlendThumb64/bin/blendthumb.dll ${HARVEST_TARGET}/ThumbHandler/lib/BlendThumb64.dll &&
                                ${CMAKE_COMMAND} -E copy ${LIBDIR}/BlendThumb32/bin/blendthumb.dll ${HARVEST_TARGET}/ThumbHandler/lib/BlendThumb.dll &&
                                # python
-                               ${CMAKE_COMMAND} -E copy ${LIBDIR}/python35.tar.gz ${HARVEST_TARGET}/Release/python35.tar.gz &&
+                               ${CMAKE_COMMAND} -E copy ${LIBDIR}/python${PYTHON_SHORT_VERSION_NO_DOTS}.tar.gz ${HARVEST_TARGET}/Release/python${PYTHON_SHORT_VERSION_NO_DOTS}.tar.gz &&
                                # requests
                                ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/requests ${HARVEST_TARGET}/Release/site-packages/requests &&
                                # numpy
-                               ${CMAKE_COMMAND} -E copy ${LIBDIR}/python35_numpy${PYTHON_POSTFIX}_1.10.tar.gz ${HARVEST_TARGET}/Release/python35_numpy_1.10.tar.gz &&
+                               ${CMAKE_COMMAND} -E copy ${LIBDIR}/python${PYTHON_SHORT_VERSION_NO_DOTS}_numpy_${NUMPY_SHORT_VERSION}.tar.gz ${HARVEST_TARGET}/Release/python${PYTHON_SHORT_VERSION_NO_DOTS}_numpy_${NUMPY_SHORT_VERSION}.tar.gz &&
                                # hidapi
                                ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/hidapi/ ${HARVEST_TARGET}/hidapi/ &&
                                # webp, straight up copy
@@ -178,9 +178,9 @@ if(BUILD_MODE STREQUAL Debug)
                                # hdf5
                                ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/hdf5/lib ${HARVEST_TARGET}/hdf5/lib &&
                                # numpy
-                               ${CMAKE_COMMAND} -E copy ${LIBDIR}/python35_numpy_1.10d.tar.gz ${HARVEST_TARGET}/Release/python35_numpy_1.10d.tar.gz &&
+                               ${CMAKE_COMMAND} -E copy ${LIBDIR}/python${PYTHON_SHORT_VERSION_NO_DOTS}_numpy_${NUMPY_SHORT_VERSION}d.tar.gz ${HARVEST_TARGET}/Release/python${PYTHON_SHORT_VERSION_NO_DOTS}_numpy_${NUMPY_SHORT_VERSION}d.tar.gz &&
                                # python
-                               ${CMAKE_COMMAND} -E copy ${LIBDIR}/python35_d.tar.gz ${HARVEST_TARGET}/Release/python35_d.tar.gz
+                               ${CMAKE_COMMAND} -E copy ${LIBDIR}/python${PYTHON_SHORT_VERSION_NO_DOTS}_d.tar.gz ${HARVEST_TARGET}/Release/python${PYTHON_SHORT_VERSION_NO_DOTS}_d.tar.gz
                DEPENDS Package_Python
 )
 endif(BUILD_MODE STREQUAL Debug)
diff --git a/build_files/build_environment/cmake/mingw.cmake b/build_files/build_environment/cmake/mingw.cmake
deleted file mode 100644 (file)
index d8b87d8..0000000
+++ /dev/null
@@ -1,40 +0,0 @@
-# ***** BEGIN GPL LICENSE BLOCK *****
-#
-# This program is free software; you can redistribute it and/or
-# modify it under the terms of the GNU General Public License
-# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software Foundation,
-# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-#
-# ***** END GPL LICENSE BLOCK *****
-
-if(MSVC)
-       if(BUILD_MODE STREQUAL Release)
-               set(NUMPY_POSTFIX)
-               message("Python_binary = ${PYTHON_BINARY}")
-               message("Python_post = ${PYTHON_POSTFIX}")
-
-               ExternalProject_Add(external_numpy
-                       URL ${NUMPY_URI}
-                       DOWNLOAD_DIR ${DOWNLOAD_DIR}
-                       URL_HASH MD5=${NUMPY_HASH}
-                       PREFIX ${BUILD_DIR}/numpy
-                       PATCH_COMMAND ${PATCH_CMD}      --verbose -p 1 -N -d ${BUILD_DIR}/numpy/src/external_numpy < ${PATCH_DIR}/numpy.diff
-                       CONFIGURE_COMMAND ""
-                       LOG_BUILD 1
-                       BUILD_COMMAND ${PYTHON_BINARY} ${BUILD_DIR}/numpy/src/external_numpy/setup.py build
-                       INSTALL_COMMAND ${CMAKE_COMMAND} -E chdir "${BUILD_DIR}/numpy/src/external_numpy/build/lib.${PYTHON_ARCH2}-3.5"
-                                                       ${CMAKE_COMMAND} -E tar "cfvz" "${LIBDIR}/python35_numpy${PYTHON_POSTFIX}_1.11.tar.gz" "."
-               )
-
-               add_dependencies(external_numpy Make_Python_Environment)
-       endif()
-endif()
index 874158fb5e9581c370534f91b09046b0ca2cd8c7..107947dabd317ab9e882377cc715ef0140d53ac4 100644 (file)
@@ -32,12 +32,14 @@ set(NUMPY_POSTFIX)
 
 if(WIN32)
        set(NUMPY_INSTALL
-               ${CMAKE_COMMAND} -E copy_directory "${BUILD_DIR}/python/src/external_python/run/lib/site-packages/numpy/core/include/numpy" "${LIBDIR}/python/include/python3.5/numpy" &&
-               ${CMAKE_COMMAND} -E chdir "${BUILD_DIR}/numpy/src/external_numpy/build/lib.${PYTHON_ARCH2}-3.5${NUMPY_DIR_POSTFIX}" 
-               ${CMAKE_COMMAND} -E tar "cfvz" "${LIBDIR}/python35_numpy_${NUMPY_SHORT_VERSION}${NUMPY_ARCHIVE_POSTFIX}.tar.gz" "." 
+               ${CMAKE_COMMAND} -E copy_directory "${BUILD_DIR}/python/src/external_python/run/lib/site-packages/numpy/core/include/numpy" "${LIBDIR}/python/include/python${PYTHON_SHORT_VERSION}/numpy" &&
+               ${CMAKE_COMMAND} -E chdir "${BUILD_DIR}/numpy/src/external_numpy/build/lib.${PYTHON_ARCH2}-${PYTHON_SHORT_VERSION}${NUMPY_DIR_POSTFIX}" 
+               ${CMAKE_COMMAND} -E tar "cfvz" "${LIBDIR}/python${PYTHON_SHORT_VERSION_NO_DOTS}_numpy_${NUMPY_SHORT_VERSION}${NUMPY_ARCHIVE_POSTFIX}.tar.gz" "." 
        )
+       set(NUMPY_PATCH ${PATCH_CMD} --verbose -p 1 -N -d ${BUILD_DIR}/numpy/src/external_numpy < ${PATCH_DIR}/numpy.diff )
 else()
        set(NUMPY_INSTALL echo .)
+       set(NUMPY_PATCH echo .)
 endif()
 
 ExternalProject_Add(external_numpy
@@ -45,6 +47,7 @@ ExternalProject_Add(external_numpy
        DOWNLOAD_DIR ${DOWNLOAD_DIR}
        URL_HASH MD5=${NUMPY_HASH}
        PREFIX ${BUILD_DIR}/numpy
+       PATCH_COMMAND ${NUMPY_PATCH}
        CONFIGURE_COMMAND ""
        LOG_BUILD 1
        BUILD_COMMAND ${PYTHON_BINARY} ${BUILD_DIR}/numpy/src/external_numpy/setup.py build ${NUMPY_BUILD_OPTION} install --old-and-unmanageable
index c1c7bf7001c2e31cf38eee3fc24e4118135fcf13..98d9d4ae63ecf82b39ca293ef7c349f6175ab63f 100644 (file)
@@ -50,11 +50,11 @@ if(WIN32)
                                                 ${PATCH_CMD} --verbose -p 0 -d ${BUILD_DIR}/python/src/external_python/pc < ${PATCH_DIR}/pyshell.diff
                CONFIGURE_COMMAND ""
                BUILD_COMMAND cd ${BUILD_DIR}/python/src/external_python/pcbuild/ && set IncludeTkinter=false && call build.bat -e -p ${PYTHON_ARCH} -c ${BUILD_MODE} -k ${PYTHON_COMPILER_STRING}
-               INSTALL_COMMAND COMMAND ${CMAKE_COMMAND} -E copy ${PYTHON_OUTPUTDIR}/python35${PYTHON_POSTFIX}.dll ${LIBDIR}/python/lib/python35${PYTHON_POSTFIX}.dll &&
-                                                               ${CMAKE_COMMAND} -E copy ${PYTHON_OUTPUTDIR}/python35${PYTHON_POSTFIX}.lib ${LIBDIR}/python/lib/python35${PYTHON_POSTFIX}.lib &&
-                                                               ${CMAKE_COMMAND} -E copy ${PYTHON_OUTPUTDIR}/python35${PYTHON_POSTFIX}.exp ${LIBDIR}/python/lib/python35${PYTHON_POSTFIX}.exp &&
-                                                               ${CMAKE_COMMAND} -E copy_directory ${BUILD_DIR}/python/src/external_python/include ${LIBDIR}/python/include/Python3.5 &&
-                                                               ${CMAKE_COMMAND} -E copy "${BUILD_DIR}/python/src/external_python/PC/pyconfig.h" ${LIBDIR}/python/include/Python3.5/pyconfig.h
+               INSTALL_COMMAND COMMAND ${CMAKE_COMMAND} -E copy ${PYTHON_OUTPUTDIR}/python${PYTHON_SHORT_VERSION_NO_DOTS}${PYTHON_POSTFIX}.dll ${LIBDIR}/python/lib/python${PYTHON_SHORT_VERSION_NO_DOTS}${PYTHON_POSTFIX}.dll &&
+                                                               ${CMAKE_COMMAND} -E copy ${PYTHON_OUTPUTDIR}/python${PYTHON_SHORT_VERSION_NO_DOTS}${PYTHON_POSTFIX}.lib ${LIBDIR}/python/lib/python${PYTHON_SHORT_VERSION_NO_DOTS}${PYTHON_POSTFIX}.lib &&
+                                                               ${CMAKE_COMMAND} -E copy ${PYTHON_OUTPUTDIR}/python${PYTHON_SHORT_VERSION_NO_DOTS}${PYTHON_POSTFIX}.exp ${LIBDIR}/python/lib/python${PYTHON_SHORT_VERSION_NO_DOTS}${PYTHON_POSTFIX}.exp &&
+                                                               ${CMAKE_COMMAND} -E copy_directory ${BUILD_DIR}/python/src/external_python/include ${LIBDIR}/python/include/Python${PYTHON_SHORT_VERSION} &&
+                                                               ${CMAKE_COMMAND} -E copy "${BUILD_DIR}/python/src/external_python/PC/pyconfig.h" ${LIBDIR}/python/include/Python${PYTHON_SHORT_VERSION}/pyconfig.h
        )
        Message("PythinRedist = ${BUILD_DIR}/python/src/external_python/redist")
        Message("POutput = ${PYTHON_OUTPUTDIR}")
@@ -87,7 +87,7 @@ endif()
 
 if(MSVC)
        add_custom_command(
-               OUTPUT ${LIBDIR}/python35${PYTHON_POSTFIX}.tar.gz
+               OUTPUT ${LIBDIR}/python${PYTHON_SHORT_VERSION_NO_DOTS}${PYTHON_POSTFIX}.tar.gz
                OUTPUT ${BUILD_DIR}/python/src/external_python/redist/bin/python${PYTHON_POSTFIX}.exe
                COMMAND ${CMAKE_COMMAND} -E copy_directory ${BUILD_DIR}/python/src/external_python/lib ${BUILD_DIR}/python/src/external_python/redist/lib
                COMMAND ${CMAKE_COMMAND} -E copy "${PYTHON_OUTPUTDIR}/python${PYTHON_POSTFIX}.exe" ${BUILD_DIR}/python/src/external_python/redist/bin/python${PYTHON_POSTFIX}.exe
@@ -112,10 +112,10 @@ if(MSVC)
                COMMAND ${CMAKE_COMMAND} -E copy "${PYTHON_OUTPUTDIR}/_testcapi${PYTHON_POSTFIX}.pyd" ${BUILD_DIR}/python/src/external_python/redist/lib/_testcapi${PYTHON_POSTFIX}.pyd
                COMMAND ${CMAKE_COMMAND} -E copy "${PYTHON_OUTPUTDIR}/_testimportmultiple${PYTHON_POSTFIX}.pyd" ${BUILD_DIR}/python/src/external_python/redist/lib/_testimportmultiple${PYTHON_POSTFIX}.pyd
                COMMAND ${CMAKE_COMMAND} -E copy "${PYTHON_OUTPUTDIR}/_testmultiphase${PYTHON_POSTFIX}.pyd" ${BUILD_DIR}/python/src/external_python/redist/lib/_testmultiphase${PYTHON_POSTFIX}.pyd
-               COMMAND ${CMAKE_COMMAND} -E chdir "${BUILD_DIR}/python/src/external_python/redist" ${CMAKE_COMMAND} -E tar "cfvz" "${LIBDIR}/python35${PYTHON_POSTFIX}.tar.gz" "."
+               COMMAND ${CMAKE_COMMAND} -E chdir "${BUILD_DIR}/python/src/external_python/redist" ${CMAKE_COMMAND} -E tar "cfvz" "${LIBDIR}/python${PYTHON_SHORT_VERSION_NO_DOTS}${PYTHON_POSTFIX}.tar.gz" "."
        )
 
-       add_custom_target(Package_Python ALL DEPENDS external_python ${LIBDIR}/python35${PYTHON_POSTFIX}.tar.gz ${BUILD_DIR}/python/src/external_python/redist/bin/python${PYTHON_POSTFIX}.exe)
+       add_custom_target(Package_Python ALL DEPENDS external_python ${LIBDIR}/python${PYTHON_SHORT_VERSION_NO_DOTS}${PYTHON_POSTFIX}.tar.gz ${BUILD_DIR}/python/src/external_python/redist/bin/python${PYTHON_POSTFIX}.exe)
 
        if(MSVC12)
                set(PYTHON_DISTUTIL_PATCH ${PATCH_CMD} --verbose -p 0 -d ${BUILD_DIR}/python/src/external_python/run/lib/distutils < ${PATCH_DIR}/python_runtime_vc2013.diff)
@@ -127,9 +127,9 @@ if(MSVC)
                COMMAND ${CMAKE_COMMAND} -E copy_directory ${BUILD_DIR}/python/src/external_python/redist ${BUILD_DIR}/python/src/external_python/run
                COMMAND ${CMAKE_COMMAND} -E copy_directory ${BUILD_DIR}/python/src/external_python/include ${BUILD_DIR}/python/src/external_python/run/include
                COMMAND ${CMAKE_COMMAND} -E copy "${BUILD_DIR}/python/src/external_python/PC/pyconfig.h" ${BUILD_DIR}/python/src/external_python/run/include/pyconfig.h
-               COMMAND ${CMAKE_COMMAND} -E copy "${PYTHON_OUTPUTDIR}/python35${PYTHON_POSTFIX}.dll" ${BUILD_DIR}/python/src/external_python/run/python35${PYTHON_POSTFIX}.dll
-               COMMAND ${CMAKE_COMMAND} -E copy "${PYTHON_OUTPUTDIR}/python35${PYTHON_POSTFIX}.lib" ${BUILD_DIR}/python/src/external_python/run/libs/python35.lib  #missing postfix on purpose, distutils is not expecting it
-               COMMAND ${CMAKE_COMMAND} -E copy "${PYTHON_OUTPUTDIR}/python35${PYTHON_POSTFIX}.lib" ${BUILD_DIR}/python/src/external_python/run/libs/python35${PYTHON_POSTFIX}.lib  #other things like numpy still want it though.
+               COMMAND ${CMAKE_COMMAND} -E copy "${PYTHON_OUTPUTDIR}/python${PYTHON_SHORT_VERSION_NO_DOTS}${PYTHON_POSTFIX}.dll" ${BUILD_DIR}/python/src/external_python/run/python${PYTHON_SHORT_VERSION_NO_DOTS}${PYTHON_POSTFIX}.dll
+               COMMAND ${CMAKE_COMMAND} -E copy "${PYTHON_OUTPUTDIR}/python${PYTHON_SHORT_VERSION_NO_DOTS}${PYTHON_POSTFIX}.lib" ${BUILD_DIR}/python/src/external_python/run/libs/python${PYTHON_SHORT_VERSION_NO_DOTS}.lib  #missing postfix on purpose, distutils is not expecting it
+               COMMAND ${CMAKE_COMMAND} -E copy "${PYTHON_OUTPUTDIR}/python${PYTHON_SHORT_VERSION_NO_DOTS}${PYTHON_POSTFIX}.lib" ${BUILD_DIR}/python/src/external_python/run/libs/python${PYTHON_SHORT_VERSION_NO_DOTS}${PYTHON_POSTFIX}.lib  #other things like numpy still want it though.
                COMMAND ${CMAKE_COMMAND} -E copy "${PYTHON_OUTPUTDIR}/python${PYTHON_POSTFIX}.exe" ${BUILD_DIR}/python/src/external_python/run/python${PYTHON_POSTFIX}.exe
                COMMAND ${BUILD_DIR}/python/src/external_python/run/python${PYTHON_POSTFIX}.exe -m ensurepip --upgrade
                COMMAND ${PYTHON_DISTUTIL_PATCH}
index 77ae955d6a31a52e9a8a20f18d9c374c7971c438..a4d834dd22b2e81e96d8bfa07f7cf639b0f5a7a3 100644 (file)
@@ -133,6 +133,7 @@ set(OSL_HASH 6924dd5d453159e7b6eb106a08c358cf)
 
 set(PYTHON_VERSION 3.6.2)
 set(PYTHON_SHORT_VERSION 3.6)
+set(PYTHON_SHORT_VERSION_NO_DOTS 36)
 set(PYTHON_URI https://www.python.org/ftp/python/${PYTHON_VERSION}/Python-${PYTHON_VERSION}.tar.xz)
 set(PYTHON_HASH 2c68846471994897278364fc18730dd9)
 
index 749a51d69728aae6bea983b2e4e3bda8bd953b0d..9e7eccfafff47476b0d65248655e650e7be21046 100644 (file)
@@ -1,3 +1,45 @@
+--- Include/Python.h   2017-07-07 21:33:27 -0600
++++ Include/Python.h   2017-09-19 10:36:10 -0600
+@@ -2,6 +2,10 @@
+ #define Py_PYTHON_H
+ /* Since this is a "meta-include" file, no #ifdef __cplusplus / extern "C" { */
++#if _MSC_VER < 1900
++#define inline __inline
++#endif
++
+ /* Include nearly all Python header files */
+ #include "patchlevel.h"
+--- Include/pydtrace.h 2017-07-07 21:33:27 -0600
++++ Include/pydtrace.h 2017-09-19 10:32:31 -0600
+@@ -2,6 +2,11 @@
+ #ifndef Py_DTRACE_H
+ #define Py_DTRACE_H
++
++#if _MSC_VER < 1900
++#define inline __inline
++#endif
++
+ #ifdef __cplusplus
+ extern "C" {
+ #endif
+
+--- Modules/_blake2/impl/blake2.h      2017-07-07 21:33:27 -0600
++++ Modules/_blake2/impl/blake2.h      2017-09-19 10:22:41 -0600
+@@ -19,6 +19,10 @@
+ #include <stddef.h>
+ #include <stdint.h>
++#if _MSC_VER < 1900
++#define inline __inline 
++#endif
++
+ #ifdef BLAKE2_NO_INLINE
+ #define BLAKE2_LOCAL_INLINE(type) static type
+ #endif
+
 --- pcbuild/build.bat   2016-05-21 09:53:55 -0600
 +++ pcbuild/build.bat   2016-05-21 09:56:16 -0600
 @@ -59,6 +59,7 @@
  if "%~1"=="-r" (set target=Rebuild) & shift & goto CheckOpts
  if "%~1"=="-t" (set target=%2) & shift & shift & goto CheckOpts
  if "%~1"=="-d" (set conf=Debug) & shift & goto CheckOpts
-@@ -126,7 +126,7 @@
+@@ -120,7 +120,7 @@
 
  :Kill
  echo on
--msbuild "%dir%\pythoncore.vcxproj" /t:KillPython %verbose%^
-+msbuild "%dir%\pythoncore.vcxproj" /t:KillPython %verbose% /p:PlatformToolset=%vs_toolset%^
+-%MSBUILD% "%dir%\pythoncore.vcxproj" /t:KillPython %verbose%^
++%MSBUILD% "%dir%\pythoncore.vcxproj" /t:KillPython %verbose% /p:PlatformToolset=%vs_toolset%^
   /p:Configuration=%conf% /p:Platform=%platf%^
   /p:KillPython=true
 
-@@ -95,7 +96,7 @@
+@@ -130,7 +130,7 @@
  rem batch is, shall we say, "lackluster"
  echo on
msbuild "%dir%pcbuild.proj" /t:%target% %parallel% %verbose%^
%MSBUILD% "%dir%pcbuild.proj" /t:%target% %parallel% %verbose%^
 - /p:Configuration=%conf% /p:Platform=%platf%^
 + /p:Configuration=%conf% /p:Platform=%platf% /p:PlatformToolset=%vs_toolset%^
   /p:IncludeExternals=%IncludeExternals%^