From de26b558a52fe54c5b3115a786289304407be943 Mon Sep 17 00:00:00 2001 From: Adrian Pop Date: Thu, 15 Mar 2018 23:14:58 +0100 Subject: [PATCH] fix msvc build - select skd 8.1 for msvc 2015 - use jom to compile things in parallel Belonging to [master]: - OpenModelica/OMCompiler#2280 --- Makefile.omdev.mingw | 50 +++++++++++----------- SimulationRuntime/cpp/Makefile.omdev.mingw | 10 ++--- 2 files changed, 31 insertions(+), 29 deletions(-) diff --git a/Makefile.omdev.mingw b/Makefile.omdev.mingw index 8b0954dd4f9..88d347f5269 100644 --- a/Makefile.omdev.mingw +++ b/Makefile.omdev.mingw @@ -117,6 +117,7 @@ endif else $(eval VSCOMNTOOLS=$(VS140COMNTOOLS)) $(eval BOOST_PATH_MSVC=$(OMDEVMSYS)/lib/3rdParty/boost-1_59/) + $(eval VCVARS_PARAMS='x86 8.1') endif else ifeq ($(VSVERSION),2010) @@ -132,6 +133,7 @@ else ifeq ($(VSVERSION),2015) $(eval VSCOMNTOOLS=$(VS140COMNTOOLS)) $(eval BOOST_PATH_MSVC=$(OMDEVMSYS)/lib/3rdParty/boost-1_59/) + $(eval VCVARS_PARAMS='x86 8.1') endif endif endif @@ -287,14 +289,14 @@ fmil_msvc: getMSVCversion test -f """${VSCOMNTOOLS}/../../VC/vcvarsall.bat""" echo 'Building CMinpack with MSVC' echo @echo on > 3rdParty/FMIL/build_msvc/build.bat - echo call '"${VSCOMNTOOLS}\\..\\..\\VC\\vcvarsall.bat"' >> 3rdParty/FMIL/build_msvc/build.bat + echo call '"${VSCOMNTOOLS}\\..\\..\\VC\\vcvarsall.bat" ${VCVARS_PARAMS}' >> 3rdParty/FMIL/build_msvc/build.bat echo echo Calling CMake >> 3rdParty/FMIL/build_msvc/build.bat - echo '%OMDEV%\\bin\\cmake\\bin\\cmake -DCMAKE_VERBOSE_MAKEFILE:Bool=ON -DFMILIB_BUILD_TESTS=OFF -DFMILIB_BUILD_STATIC_LIB=OFF -DCMAKE_BUILD_TYPE=RelWithDebInfo -DFMILIB_INSTALL_PREFIX=../install_msvc ../ -G "NMake Makefiles"' >> 3rdParty/FMIL/build_msvc/build.bat + echo '%OMDEV%\\bin\\cmake\\bin\\cmake -DCMAKE_VERBOSE_MAKEFILE:Bool=ON -DFMILIB_BUILD_TESTS=OFF -DFMILIB_BUILD_STATIC_LIB=OFF -DCMAKE_BUILD_TYPE=RelWithDebInfo -DFMILIB_INSTALL_PREFIX=../install_msvc ../ -G "NMake Makefiles" -D"CMAKE_MAKE_PROGRAM:PATH=%OMDEV%\\tools\\jom\\jom.exe"' >> 3rdParty/FMIL/build_msvc/build.bat echo @echo on >> 3rdParty/FMIL/build_msvc/build.bat echo set MAKE= >> 3rdParty/FMIL/build_msvc/build.bat echo set MAKEFLAGS= >> 3rdParty/FMIL/build_msvc/build.bat echo echo Building FMIL_msvc >> 3rdParty/FMIL/build_msvc/build.bat - echo nmake /f Makefile install >> 3rdParty/FMIL/build_msvc/build.bat + echo %OMDEV%\\tools\\jom\\jom.exe -j 1 /f Makefile install >> 3rdParty/FMIL/build_msvc/build.bat # Change into directory and run batch file cd ./3rdParty/FMIL/build_msvc; echo "change to 3rdParty/FMIL/build_msvc";\ @@ -322,14 +324,14 @@ CMinpack_msvc: getMSVCversion test -f """$(VSCOMNTOOLS)/../../VC/vcvarsall.bat""" echo 'Building CMinpack with MSVC' echo @echo on > 3rdParty/CMinpack/build_msvc/build.bat - echo call '"$(VSCOMNTOOLS)\\..\\..\\VC\\vcvarsall.bat"' >> 3rdParty/CMinpack/build_msvc/build.bat + echo call '"$(VSCOMNTOOLS)\\..\\..\\VC\\vcvarsall.bat" ${VCVARS_PARAMS}' >> 3rdParty/CMinpack/build_msvc/build.bat echo echo Calling CMake >> 3rdParty/CMinpack/build_msvc/build.bat - echo '%OMDEV%\\bin\\cmake\\bin\\cmake -DCMAKE_VERBOSE_MAKEFILE:Bool=ON -DSHARED_LIBS=OFF -DCMAKE_BUILD_TYPE=RelWithDebInfo -DCMAKE_INSTALL_PREFIX=../install_msvc ../ -G "NMake Makefiles"' >> 3rdParty/CMinpack/build_msvc/build.bat + echo '%OMDEV%\\bin\\cmake\\bin\\cmake -DCMAKE_VERBOSE_MAKEFILE:Bool=ON -DSHARED_LIBS=OFF -DCMAKE_BUILD_TYPE=RelWithDebInfo -DCMAKE_INSTALL_PREFIX=../install_msvc ../ -G "NMake Makefiles JOM" -D"CMAKE_MAKE_PROGRAM:PATH=%OMDEV%\\tools\\jom\\jom.exe"' >> 3rdParty/CMinpack/build_msvc/build.bat echo echo Building CMinpack >> 3rdParty/CMinpack/build_msvc/build.bat echo @echo on >> 3rdParty/CMinpack/build_msvc/build.bat echo set MAKE= >> 3rdParty/CMinpack/build_msvc/build.bat echo set MAKEFLAGS= >> 3rdParty/CMinpack/build_msvc/build.bat - echo nmake /f Makefile install >> 3rdParty/CMinpack/build_msvc/build.bat + echo %OMDEV%\\tools\\jom\\jom.exe /f Makefile install >> 3rdParty/CMinpack/build_msvc/build.bat # Change into directory and run batch file cd ./3rdParty/CMinpack/build_msvc; echo "change to 3rdParty/CMinpack/build_msvc";\ @@ -353,14 +355,14 @@ Umfpack_msvc: getMSVCversion test -f """${VSCOMNTOOLS}/../../VC/vcvarsall.bat""" echo 'Building Umfpack with MSVC' echo @echo on > 3rdParty/SuiteSparse/build_msvc/build.bat - echo call '"${VSCOMNTOOLS}\\..\\..\\VC\\vcvarsall.bat"' >> 3rdParty/SuiteSparse/build_msvc/build.bat + echo call '"${VSCOMNTOOLS}\\..\\..\\VC\\vcvarsall.bat" ${VCVARS_PARAMS}' >> 3rdParty/SuiteSparse/build_msvc/build.bat echo echo Calling CMake >> 3rdParty/SuiteSparse/build_msvc/build.bat - echo '%OMDEV%\\bin\\cmake\\bin\\cmake -DCMAKE_VERBOSE_MAKEFILE:Bool=ON -DCMAKE_BUILD_TYPE=RelWithDebInfo -DCMAKE_INSTALL_PREFIX=../install_msvc ../ -G "NMake Makefiles"' >> 3rdParty/SuiteSparse/build_msvc/build.bat + echo '%OMDEV%\\bin\\cmake\\bin\\cmake -DCMAKE_VERBOSE_MAKEFILE:Bool=ON -DCMAKE_BUILD_TYPE=RelWithDebInfo -DCMAKE_INSTALL_PREFIX=../install_msvc ../ -G "NMake Makefiles JOM" -D"CMAKE_MAKE_PROGRAM:PATH=%OMDEV%\\tools\\jom\\jom.exe"' >> 3rdParty/SuiteSparse/build_msvc/build.bat echo echo Building Umfpack >> 3rdParty/SuiteSparse/build_msvc/build.bat echo @echo on >> 3rdParty/SuiteSparse/build_msvc/build.bat echo set MAKE= >> 3rdParty/SuiteSparse/build_msvc/build.bat echo set MAKEFLAGS= >> 3rdParty/SuiteSparse/build_msvc/build.bat - echo nmake /f Makefile install >> 3rdParty/SuiteSparse/build_msvc/build.bat + echo %OMDEV%\\tools\\jom\\jom.exe /f Makefile install >> 3rdParty/SuiteSparse/build_msvc/build.bat # Change into directory and run batch file cd ./3rdParty/SuiteSparse/build_msvc; echo "change to 3rdParty/SuiteSparse/build_msvc";\ @@ -385,14 +387,14 @@ sundials_msvc: getMSVCversion 3rdParty/sundials/CMakeLists.txt test -f """${VSCOMNTOOLS}/../../VC/vcvarsall.bat""" echo 'Building sundials with MSVC' echo @echo on > 3rdParty/sundials/build_msvc/build.bat - echo call '"${VSCOMNTOOLS}\\..\\..\\VC\\vcvarsall.bat"' >> 3rdParty/sundials/build_msvc/build.bat + echo call '"${VSCOMNTOOLS}\\..\\..\\VC\\vcvarsall.bat" ${VCVARS_PARAMS}' >> 3rdParty/sundials/build_msvc/build.bat echo echo Calling CMake >> 3rdParty/sundials/build_msvc/build.bat - echo '%OMDEV%\\bin\\cmake\\bin\\cmake -DCMAKE_VERBOSE_MAKEFILE:Bool=ON -DBUILD_STATIC_LIBS=OFF -DCMAKE_BUILD_TYPE=RelWithDebInfo -DCMAKE_INSTALL_PREFIX=. ../ -G "NMake Makefiles"' >> 3rdParty/sundials/build_msvc/build.bat + echo '%OMDEV%\\bin\\cmake\\bin\\cmake -DCMAKE_VERBOSE_MAKEFILE:Bool=ON -DBUILD_STATIC_LIBS=OFF -DCMAKE_BUILD_TYPE=RelWithDebInfo -DCMAKE_INSTALL_PREFIX=. ../ -G "NMake Makefiles JOM" -D"CMAKE_MAKE_PROGRAM:PATH=%OMDEV%\\tools\\jom\\jom.exe"' >> 3rdParty/sundials/build_msvc/build.bat echo echo Building sundials >> 3rdParty/sundials/build_msvc/build.bat echo @echo on >> 3rdParty/sundials/build_msvc/build.bat echo set MAKE= >> 3rdParty/sundials/build_msvc/build.bat echo set MAKEFLAGS= >> 3rdParty/sundials/build_msvc/build.bat - echo nmake /f Makefile install >> 3rdParty/sundials/build_msvc/build.bat + echo %OMDEV%\\tools\\jom\\jom.exe /f Makefile install >> 3rdParty/sundials/build_msvc/build.bat # Change into directory and run batch file cd ./3rdParty/sundials/build_msvc; echo "change to 3rdParty/sundials/build_msvc";\ @@ -418,14 +420,14 @@ nox_msvc: getMSVCversion 3rdParty/trilinos-nox/CMakeLists.txt test -f """${VSCOMNTOOLS}/../../VC/vcvarsall.bat""" echo 'Building trilinos-nox with MSVC' echo @echo on > 3rdParty/trilinos-nox/build_msvc/build.bat - echo call '"${VSCOMNTOOLS}\\..\\..\\VC\\vcvarsall.bat"' >> 3rdParty/trilinos-nox/build_msvc/build.bat + echo call '"${VSCOMNTOOLS}\\..\\..\\VC\\vcvarsall.bat" ${VCVARS_PARAMS}' >> 3rdParty/trilinos-nox/build_msvc/build.bat echo echo Calling CMake >> 3rdParty/trilinos-nox/build_msvc/build.bat - echo '%OMDEV%\\bin\\cmake\\bin\\cmake -DCMAKE_VERBOSE_MAKEFILE:Bool=ON -DCMAKE_BUILD_TYPE=RelWithDebInfo -DCMAKE_INSTALL_PREFIX=. ../ -G "NMake Makefiles" -DOMDEV_DIR="$(OMDEVMSYS) ' >> 3rdParty/trilinos-nox/build_msvc/build.bat + echo '%OMDEV%\\bin\\cmake\\bin\\cmake -DCMAKE_VERBOSE_MAKEFILE:Bool=ON -DCMAKE_BUILD_TYPE=RelWithDebInfo -DCMAKE_INSTALL_PREFIX=. ../ -G "NMake Makefiles JOM" -D"CMAKE_MAKE_PROGRAM:PATH=%OMDEV%\\tools\\jom\\jom.exe" -DOMDEV_DIR="$(OMDEVMSYS) ' >> 3rdParty/trilinos-nox/build_msvc/build.bat echo echo Building trilinos-nox >> 3rdParty/trilinos-nox/build_msvc/build.bat echo @echo on >> 3rdParty/trilinos-nox/build_msvc/build.bat echo set MAKE= >> 3rdParty/trilinos-nox/build_msvc/build.bat echo set MAKEFLAGS= >> 3rdParty/trilinos-nox/build_msvc/build.bat - echo nmake /f Makefile install >> 3rdParty/trilinos-nox/build_msvc/build.bat + echo %OMDEV%\\tools\\jom\\jom.exe /f Makefile install >> 3rdParty/trilinos-nox/build_msvc/build.bat # Change into directory and run batch file cd ./3rdParty/trilinos-nox/build_msvc; echo "change to 3rdParty/trilinos-nox/build_msvc";\ @@ -449,12 +451,12 @@ simulationruntimecmsvc: mkbuilddirs getMSVCversion Umfpack_msvc CMinpack_msvc fm echo 'Build the MSVC RELEASE' mkdir -p SimulationRuntime/build_c echo @echo on > SimulationRuntime/build_c/build.bat - echo call '"${VSCOMNTOOLS}\\..\\..\\VC\\vcvarsall.bat"' >> SimulationRuntime/build_c/build.bat - echo '%OMDEV%\\bin\\cmake\\bin\\cmake -DCMAKE_VERBOSE_MAKEFILE:Bool=ON -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX:String=../../build ../c -G "NMake Makefiles"' >> SimulationRuntime/build_c/build.bat + echo call '"${VSCOMNTOOLS}\\..\\..\\VC\\vcvarsall.bat" ${VCVARS_PARAMS}' >> SimulationRuntime/build_c/build.bat + echo '%OMDEV%\\bin\\cmake\\bin\\cmake -DCMAKE_VERBOSE_MAKEFILE:Bool=ON -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX:String=../../build ../c -G "NMake Makefiles JOM" -D"CMAKE_MAKE_PROGRAM:PATH=%OMDEV%\\tools\\jom\\jom.exe"' >> SimulationRuntime/build_c/build.bat echo @echo on >> SimulationRuntime/build_c/build.bat echo set MAKE= >> SimulationRuntime/build_c/build.bat echo set MAKEFLAGS= >> SimulationRuntime/build_c/build.bat - echo nmake /f Makefile >> SimulationRuntime/build_c/build.bat + echo %OMDEV%\\tools\\jom\\jom.exe /f Makefile >> SimulationRuntime/build_c/build.bat cd SimulationRuntime/build_c && cmd /c build.bat echo 'Copy the .lib files (needed for compilation) and .pdb files (needed for debugging) to $(OMBUILDDIR)/lib/omc' (cd SimulationRuntime/build_c/ && find . -type f -path "*.lib" -exec cp {} $(OMBUILDDIR)/lib/omc/msvc/release/. \;) @@ -463,12 +465,12 @@ simulationruntimecmsvc: mkbuilddirs getMSVCversion Umfpack_msvc CMinpack_msvc fm echo 'Build the MSVC DEBUG' mkdir -p SimulationRuntime/build_debug_c echo @echo on > SimulationRuntime/build_debug_c/build.bat - echo call '"${VSCOMNTOOLS}\\..\\..\\VC\\vcvarsall.bat"' >> SimulationRuntime/build_debug_c/build.bat - echo '%OMDEV%\\bin\\cmake\\bin\\cmake -DCMAKE_BUILD_TYPE=Debug -DCMAKE_INSTALL_PREFIX:String=../../build_debug ../c -G "NMake Makefiles"' >> SimulationRuntime/build_debug_c/build.bat + echo call '"${VSCOMNTOOLS}\\..\\..\\VC\\vcvarsall.bat" ${VCVARS_PARAMS}' >> SimulationRuntime/build_debug_c/build.bat + echo '%OMDEV%\\bin\\cmake\\bin\\cmake -DCMAKE_BUILD_TYPE=Debug -DCMAKE_INSTALL_PREFIX:String=../../build_debug ../c -G "NMake Makefiles JOM" -D"CMAKE_MAKE_PROGRAM:PATH=%OMDEV%\\tools\\jom\\jom.exe"' >> SimulationRuntime/build_debug_c/build.bat echo @echo on >> SimulationRuntime/build_debug_c/build.bat echo set MAKE= >> SimulationRuntime/build_debug_c/build.bat echo set MAKEFLAGS= >> SimulationRuntime/build_debug_c/build.bat - echo nmake /f Makefile >> SimulationRuntime/build_debug_c/build.bat + echo %OMDEV%\\tools\\jom\\jom.exe /f Makefile >> SimulationRuntime/build_debug_c/build.bat cd SimulationRuntime/build_debug_c && cmd /c build.bat echo 'Copy the .lib files (needed for compilation) and .pdb files (needed for debugging) to $(OMBUILDDIR)/lib/omc' (cd SimulationRuntime/build_debug_c/ && find . -type f -path "*.lib" -exec cp {} $(OMBUILDDIR)/lib/omc/msvc/debug/. \;) @@ -488,12 +490,12 @@ simulationruntimecmsvc: mkbuilddirs getMSVCversion Umfpack_msvc CMinpack_msvc fm echo 'Build gc (RelWithDebInfo)' mkdir -p 3rdParty/gc/build_msvc echo @echo on > 3rdParty/gc/build_msvc/build.bat - echo call '"${VSCOMNTOOLS}\\..\\..\\VC\\vcvarsall.bat"' >> 3rdParty/gc/build_msvc/build.bat - echo '%OMDEV%\\bin\\cmake\\bin\\cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo ../ -G "NMake Makefiles"' >> 3rdParty/gc/build_msvc/build.bat + echo call '"${VSCOMNTOOLS}\\..\\..\\VC\\vcvarsall.bat" ${VCVARS_PARAMS}' >> 3rdParty/gc/build_msvc/build.bat + echo '%OMDEV%\\bin\\cmake\\bin\\cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo ../ -G "NMake Makefiles JOM" -D"CMAKE_MAKE_PROGRAM:PATH=%OMDEV%\\tools\\jom\\jom.exe"' >> 3rdParty/gc/build_msvc/build.bat echo @echo on >> 3rdParty/gc/build_msvc/build.bat echo set MAKE= >> 3rdParty/gc/build_msvc/build.bat echo set MAKEFLAGS= >> 3rdParty/gc/build_msvc/build.bat - echo nmake /f Makefile >> 3rdParty/gc/build_msvc/build.bat + echo %OMDEV%\\tools\\jom\\jom.exe /f Makefile >> 3rdParty/gc/build_msvc/build.bat cd 3rdParty/gc/build_msvc && cmd /c build.bat echo 'Copy the .lib files (needed for compilation) and .pdb files (needed for debugging) to $(OMBUILDDIR)/lib/omc/msvc/' cp -u 3rdParty/gc/build_msvc/gc-lib.* $(OMBUILDDIR)/lib/omc/msvc/ diff --git a/SimulationRuntime/cpp/Makefile.omdev.mingw b/SimulationRuntime/cpp/Makefile.omdev.mingw index 886d7e74d85..ee301bf00e9 100644 --- a/SimulationRuntime/cpp/Makefile.omdev.mingw +++ b/SimulationRuntime/cpp/Makefile.omdev.mingw @@ -102,8 +102,6 @@ else USE_KLU_COMMAND=-DUSE_KLU:BOOL=OFF endif - - getMSVCversion: echo "Check for given VSVERSION (2010|2012|2013|2015) version: [VSVERSION=$(VSVERSION)]" ifeq ("$(VSVERSION)","") @@ -125,6 +123,7 @@ else endif else $(eval VSCOMNTOOLS=$(VS140COMNTOOLS)) + $(eval VCVARS_PARAMS='x86 8.1') endif else ifeq ($(VSVERSION),2010) @@ -138,6 +137,7 @@ ifeq ($(VSVERSION),2013) else ifeq ($(VSVERSION),2015) $(eval VSCOMNTOOLS=$(VS140COMNTOOLS)) + $(eval VCVARS_PARAMS='x86 8.1') endif endif endif @@ -160,7 +160,7 @@ omcCAPImsvc: getMSVCversion echo 'Build the cppRuntime with MSVC' buildtype: $(BUILDTYPE) #rm -rf Build_MSVC mkdir -p Build_CAPI_MSVC - echo call '"${VSCOMNTOOLS}\\..\\..\\VC\\vcvarsall.bat"' > Build_CAPI_MSVC/build.bat + echo call '"${VSCOMNTOOLS}\\..\\..\\VC\\vcvarsall.bat" ${VCVARS_PARAMS}' > Build_CAPI_MSVC/build.bat echo echo Running CMake from '%OMDEV%\\bin\\cmake\\bin\\cmake' >> Build_CAPI_MSVC/build.bat echo echo using omc libraries from "$(OMBUILDDIR)" >> Build_CAPI_MSVC/build.bat @@ -177,7 +177,7 @@ runtimeCPPmsvc: getMSVCversion echo 'Build the cppRuntime with MSVC' buildtype: $(BUILDTYPE) #rm -rf Build_MSVC mkdir -p Build_MSVC - echo call '"${VSCOMNTOOLS}\\..\\..\\VC\\vcvarsall.bat"' > Build_MSVC/build.bat + echo call '"${VSCOMNTOOLS}\\..\\..\\VC\\vcvarsall.bat" ${VCVARS_PARAMS}' > Build_MSVC/build.bat echo echo Running CMake from '%OMDEV%\\bin\\cmake\\bin\\cmake' >> Build_MSVC/build.bat echo '%OMDEV%\\bin\\cmake\\bin\\cmake -DCMAKE_VERBOSE_MAKEFILE:Bool=ON -DPLATFORM="dynamic" $(CMAKE_FLAGS) -DIS_MINGW32=OFF -DIS_MINGW64=OFF -DCMAKE_INSTALL_PREFIX:PATH=./tmp ../ -G "NMake Makefiles JOM" -D"CMAKE_MAKE_PROGRAM:PATH=%OMDEV%\\tools\\jom\\jom.exe"' >> Build_MSVC/build.bat @@ -192,7 +192,7 @@ runtimeCPPmsvc: getMSVCversion echo 'Build cppRuntime (static) with MSVC' #rm -rf Build_MSVC_static mkdir -p Build_MSVC_static - echo call '"${VSCOMNTOOLS}\\..\\..\\VC\\vcvarsall.bat"' > Build_MSVC_static/build.bat + echo call '"${VSCOMNTOOLS}\\..\\..\\VC\\vcvarsall.bat" ${VCVARS_PARAMS}' > Build_MSVC_static/build.bat echo echo Running CMake from '%OMDEV%\\bin\\cmake\\bin\\cmake' >> Build_MSVC_static/build.bat echo '%OMDEV%\\bin\\cmake\\bin\\cmake -DCMAKE_VERBOSE_MAKEFILE:Bool=ON -DPLATFORM="static" $(CMAKE_FLAGS) -DIS_MINGW32=OFF -DIS_MINGW64=OFF -DCMAKE_INSTALL_PREFIX:PATH=./tmp ../ -G "NMake Makefiles JOM" -D"CMAKE_MAKE_PROGRAM:PATH=%OMDEV%\\tools\\jom\\jom.exe"' >> Build_MSVC_static/build.bat