dynamic_link: manage VS2017 and VS2019 14/20714/5
Antoine ELIAS [Sat, 19 Jan 2019 19:24:22 +0000 (20:24 +0100)]
Change-Id: Ic9bfe6c6bd480b58d83d784d9ccd306a50d2d6df

41 files changed:
scilab/modules/dynamic_link/macros/detectmsvc64tools.sci
scilab/modules/dynamic_link/macros/windows/dlwCompile.sci
scilab/modules/dynamic_link/macros/windows/dlwFindMsVcCompiler.sci
scilab/modules/dynamic_link/macros/windows/dlwGet64BitPath.sci
scilab/modules/dynamic_link/macros/windows/dlwGetEnvCmd.sci
scilab/modules/dynamic_link/macros/windows/dlwGetVc10ExpressPath.sci [deleted file]
scilab/modules/dynamic_link/macros/windows/dlwGetVc10ProPath.sci [deleted file]
scilab/modules/dynamic_link/macros/windows/dlwGetVc11ExpressPath.sci [deleted file]
scilab/modules/dynamic_link/macros/windows/dlwGetVc11ProPath.sci [deleted file]
scilab/modules/dynamic_link/macros/windows/dlwGetVc12ExpressPath.sci
scilab/modules/dynamic_link/macros/windows/dlwGetVc12ProPath.sci
scilab/modules/dynamic_link/macros/windows/dlwGetVc141ExpressPath.sci [moved from scilab/modules/dynamic_link/macros/windows/dlwIsVc11Pro.sci with 70% similarity]
scilab/modules/dynamic_link/macros/windows/dlwGetVc141ProPath.sci [moved from scilab/modules/dynamic_link/macros/windows/dlwIsVc11Express.sci with 72% similarity]
scilab/modules/dynamic_link/macros/windows/dlwGetVc142ExpressPath.sci [moved from scilab/modules/dynamic_link/macros/windows/dlwIsVc10Pro.sci with 69% similarity]
scilab/modules/dynamic_link/macros/windows/dlwGetVc142ProPath.sci [moved from scilab/modules/dynamic_link/macros/windows/dlwIsVc10Express.sci with 69% similarity]
scilab/modules/dynamic_link/macros/windows/dlwGetVc14ExpressPath.sci
scilab/modules/dynamic_link/macros/windows/dlwGetVc14ProPath.sci
scilab/modules/dynamic_link/macros/windows/dlwGetVc70Path.sci [deleted file]
scilab/modules/dynamic_link/macros/windows/dlwGetVc71Path.sci [deleted file]
scilab/modules/dynamic_link/macros/windows/dlwGetVc80ExpressPath.sci [deleted file]
scilab/modules/dynamic_link/macros/windows/dlwGetVc80ProPath.sci [deleted file]
scilab/modules/dynamic_link/macros/windows/dlwGetVc80StdPath.sci [deleted file]
scilab/modules/dynamic_link/macros/windows/dlwGetVc90ExpressPath.sci [deleted file]
scilab/modules/dynamic_link/macros/windows/dlwGetVc90ProPath.sci [deleted file]
scilab/modules/dynamic_link/macros/windows/dlwGetVc90StdPath.sci [deleted file]
scilab/modules/dynamic_link/macros/windows/dlwGetVisualStudioPath.sci
scilab/modules/dynamic_link/macros/windows/dlwIsVc141Express.sci [new file with mode: 0644]
scilab/modules/dynamic_link/macros/windows/dlwIsVc141Pro.sci [new file with mode: 0644]
scilab/modules/dynamic_link/macros/windows/dlwIsVc142Express.sci [new file with mode: 0644]
scilab/modules/dynamic_link/macros/windows/dlwIsVc142Pro.sci [new file with mode: 0644]
scilab/modules/dynamic_link/macros/windows/dlwIsVc70.sci [deleted file]
scilab/modules/dynamic_link/macros/windows/dlwIsVc71.sci [deleted file]
scilab/modules/dynamic_link/macros/windows/dlwIsVc80Express.sci [deleted file]
scilab/modules/dynamic_link/macros/windows/dlwIsVc80Pro.sci [deleted file]
scilab/modules/dynamic_link/macros/windows/dlwIsVc80Std.sci [deleted file]
scilab/modules/dynamic_link/macros/windows/dlwIsVc90Express.sci [deleted file]
scilab/modules/dynamic_link/macros/windows/dlwIsVc90Pro.sci [deleted file]
scilab/modules/dynamic_link/macros/windows/dlwIsVc90Std.sci [deleted file]
scilab/modules/dynamic_link/macros/windows/dlwMake.sci
scilab/modules/dynamic_link/macros/windows/getVsWhereInformation.sci [new file with mode: 0644]
scilab/tools/tools.iss

index d4a9b7e..730962a 100644 (file)
@@ -48,6 +48,10 @@ function bOK = detectmsvc64tools()
     if win64() then
         compiler = findmsvccompiler();
         supported_compiler = [ ...
+        "msvc142pro", ..
+        "msvc142express", ..
+        "msvc141pro", ..
+        "msvc141express", ..
         "msvc140pro", ..
         "msvc140express", ..
         "msvc120pro", ..
@@ -62,7 +66,9 @@ function bOK = detectmsvc64tools()
 
         if (find(supported_compiler == compiler) <> []) then
             MSVCBIN64PATH = dlwGet64BitPath();
-            if dlwIsVc11Express() | dlwIsVc12Express() | dlwIsVc14Express() then
+            if dlwIsVc141Express() ||dlwIsVc141Pro() ||dlwIsVc142Express() ||dlwIsVc142Pro() then
+                MSVCBIN64PATH = MSVCBIN64PATH + filesep() + "VC\Auxiliary\Build";
+            elseif dlwIsVc11Express() | dlwIsVc12Express() | dlwIsVc140Express() then
                 MSVCBIN64PATH = MSVCBIN64PATH + filesep() + "VC\bin";
             else
                 MSVCBIN64PATH = MSVCBIN64PATH + filesep() + "VC\bin\amd64";
index 054ea95..47ba3b1 100644 (file)
@@ -67,7 +67,7 @@ function filename = writeBatchFile(cmd)
             val = "NO";
         end
     end
-    
+
     if win64() then
         if dlwIsExpress() then
             arch = "x86_amd64";
@@ -81,11 +81,12 @@ function filename = writeBatchFile(cmd)
     path = dlwGetVisualStudioPath();
 
     scibuild = [ ...
-    "@call """ + path + "\VC\vcvarsall.bat"" " + arch;
+    "@call """ + path + "\vcvarsall.bat"" " + arch;
     "set DEBUG_SCILAB_DYNAMIC_LINK=" + val;
     cmd
     ];
 
+    //disp(scibuild);
     filename = TMPDIR + "/scibuild.bat";
     mputl(scibuild, filename);
     //filename = "call " + filename;
index 16ac436..54f80f7 100644 (file)
@@ -19,14 +19,14 @@ function MSCompiler = dlwFindMsVcCompiler()
     val = getenv("SCILAB_PREFERED_MSVC", "");
     if val <> "" then
         funcs = struct(...
+            "msvc142express", dlwIsVc142Express, ...
+            "msvc142pro", dlwIsVc142Pro, ...
+            "msvc141express", dlwIsVc141Express, ...
+            "msvc141pro", dlwIsVc141Pro, ...
             "msvc140express", dlwIsVc14Express, ...
             "msvc140pro", dlwIsVc14Pro, ...
             "msvc120express", dlwIsVc12Express, ...
-            "msvc120pro", dlwIsVc12Pro, ...
-            "msvc110express", dlwIsVc11Express, ...
-            "msvc110pro", dlwIsVc11Pro, ...
-            "msvc100express", dlwIsVc10Express, ...
-            "msvc100pro", dlwIsVc10Pro);
+            "msvc120pro", dlwIsVc12Pro);
 
         try
             func = funcs(val);
@@ -35,94 +35,50 @@ function MSCompiler = dlwFindMsVcCompiler()
             end
         catch
         end
-        
+
         if MSCompiler <> "unknown" then
             return;
         end
     end
 
-    if dlwIsVc12Express() then
-        MSCompiler = "msvc120express";     // Microsoft Visual 2013 Express
-        return;
-    end
-
-    if dlwIsVc12Pro() then
-        MSCompiler = "msvc120pro";       // Microsoft Visual 2013 Professional (or more)
-        return;
-    end
-
-    if dlwIsVc14Express() then
-        MSCompiler = "msvc140express";     // Microsoft Visual 2015 Express
-        return;
-    end
-
-    if dlwIsVc14Pro() then
-        MSCompiler = "msvc140pro";       // Microsoft Visual 2015 Professional / Community (or more)
-        return;
-    end
-
-    if dlwIsVc11Express() then
-        MSCompiler = "msvc110express";     // Microsoft Visual 2012 Express
-        return;
-    end
-
-    if dlwIsVc11Pro() then
-        MSCompiler = "msvc110pro";       // Microsoft Visual 2012 Professional (or more)
-        return;
-    end
-
-    if dlwIsVc10Pro() & dlwIsVc10Express() then
-        MSCompiler = "msvc100express";     // Microsoft Visual 2010 Express with SDK extension
-        return;
-    end
-
-    if dlwIsVc10Express() then
-        MSCompiler = "msvc100express";     // Microsoft Visual 2010 Express
-        return;
-    end
-
-    if dlwIsVc10Pro() then
-        MSCompiler = "msvc100pro";       // Microsoft Visual 2010 Professional (or more)
+    //Try to find fisrt the same compilator that which use to build Scilab
+    if dlwIsVc141Express() then
+        MSCompiler = "msvc141express";     // Microsoft Visual 2017 Express/Community
         return;
     end
 
-    if dlwIsVc90Pro() then
-        MSCompiler = "msvc90pro";      // Microsoft Visual 2008 Studio Professional
+    if dlwIsVc141Pro() then
+        MSCompiler = "msvc141pro";       // Microsoft Visual 2017 Professional (or more)
         return;
     end
 
-    if dlwIsVc90Std() then
-        MSCompiler = "msvc90std";      // Microsoft Visual 2008 Studio Standard
+    if dlwIsVc142Express() then
+        MSCompiler = "msvc142express";     // Microsoft Visual 2019 Express/Community
         return;
     end
 
-    if dlwIsVc90Express() then
-        MSCompiler = "msvc90express";    // Microsoft Visual 2008 Express
+    if dlwIsVc142Pro() then
+        MSCompiler = "msvc142pro";       // Microsoft Visual 2019 Professional (or more)
         return;
     end
 
-    if dlwIsVc80Pro() then
-        MSCompiler = "msvc80pro";      // Microsoft Visual 2005 Studio Professional
-        return;
-    end
-
-    if dlwIsVc80Std() then
-        MSCompiler = "msvc80std";      // Microsoft Visual 2005 Studio Standard
+    if dlwIsVc12Express() then
+        MSCompiler = "msvc120express";     // Microsoft Visual 2013 Express
         return;
     end
 
-    if dlwIsVc80Express() then
-        MSCompiler = "msvc80express";    // Microsoft Visual 2005 Express
+    if dlwIsVc12Pro() then
+        MSCompiler = "msvc120pro";       // Microsoft Visual 2013 Professional (or more)
         return;
     end
 
-    if dlwIsVc71() then
-        MSCompiler = "msvc71";         // Microsoft Visual Studio .NET 2003
+    if dlwIsVc14Express() then
+        MSCompiler = "msvc140express";     // Microsoft Visual 2015 Express
         return;
     end
 
-    if dlwIsVc70() then
-        MSCompiler = "msvc70";         // Microsoft Visual Studio .NET 2002
+    if dlwIsVc14Pro() then
+        MSCompiler = "msvc140pro";       // Microsoft Visual 2015 Professional / Community (or more)
         return;
     end
 endfunction
index 81cbd10..60bc3ad 100644 (file)
@@ -15,7 +15,10 @@ function vcPath64 = dlwGet64BitPath();
     vcPath64 = [];
     if win64() then
         MSCompiler = findmsvccompiler();
-        if find(MSCompiler == ["msvc140express";"msvc120express";"msvc110express";"msvc100express";"msvc90express"]) then
+        if find(MSCompiler == ["msvc142express";"msvc142pro";"msvc141express";"msvc141pro"]) then
+            vers = getVsWhereInformation();
+            vcPath64 = vers(MSCompiler);
+        elseif find(MSCompiler == ["msvc140express";"msvc120express";"msvc110express";"msvc100express";"msvc90express"]) then
             programFilesx86Path = getenv("ProgramFiles(x86)", "");
             if (programFilesx86Path <> "") then
                 if isfile(programFilesx86Path + "\Microsoft Visual Studio 14.0\VC\bin\cl.exe") then
index a463ab0..f6af5f6 100644 (file)
@@ -23,5 +23,5 @@ function cmd = dlwGetEnvCmd()
     end
 
     path = dlwGetVisualStudioPath();
-    cmd = """" + path + "\VC\vcvarsall.bat"" " + arch;
+    cmd = """" + path + "\vcvarsall.bat"" " + arch;
 endfunction
diff --git a/scilab/modules/dynamic_link/macros/windows/dlwGetVc10ExpressPath.sci b/scilab/modules/dynamic_link/macros/windows/dlwGetVc10ExpressPath.sci
deleted file mode 100644 (file)
index c16dfd6..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
-// Copyright (C) DIGITEO - 2010 - Allan CORNET
-//
-// Copyright (C) 2012 - 2016 - Scilab Enterprises
-//
-// This file is hereby licensed under the terms of the GNU GPL v2.0,
-// pursuant to article 5.3.4 of the CeCILL v.2.1.
-// This file was originally licensed under the terms of the CeCILL v2.1,
-// and continues to be available under such terms.
-// For more information, see the COPYING file which you should have received
-// along with this program.
-
-//=============================================================================
-function vcPath = dlwGetVc10ExpressPath()
-    vcPath = [];
-    try
-        vcPath = winqueryreg("HKEY_LOCAL_MACHINE", ..
-        "Software\Microsoft\VCExpress\10.0\Setup\VS", ..
-        "ProductDir");
-    catch
-        // remove last error on 'winqueryreg' fails
-        lasterror();
-        return;
-    end
-
-    // remove last file separator if it exists
-    if vcPath <> [] then
-        vcPath = pathconvert(vcPath, %f, %t);
-    end
-endfunction
-//=============================================================================
diff --git a/scilab/modules/dynamic_link/macros/windows/dlwGetVc10ProPath.sci b/scilab/modules/dynamic_link/macros/windows/dlwGetVc10ProPath.sci
deleted file mode 100644 (file)
index 01db486..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
-// Copyright (C) DIGITEO - 2010 - Allan CORNET
-//
-// Copyright (C) 2012 - 2016 - Scilab Enterprises
-//
-// This file is hereby licensed under the terms of the GNU GPL v2.0,
-// pursuant to article 5.3.4 of the CeCILL v.2.1.
-// This file was originally licensed under the terms of the CeCILL v2.1,
-// and continues to be available under such terms.
-// For more information, see the COPYING file which you should have received
-// along with this program.
-
-//=============================================================================
-function vcPath = dlwGetVc10ProPath()
-    vcPath = [];
-    try
-        vcPath = winqueryreg("HKEY_LOCAL_MACHINE", ..
-        "Software\Microsoft\VisualStudio\10.0\Setup\VS", ..
-        "ProductDir");
-    catch
-        // remove last error on 'winqueryreg' fails
-        lasterror();
-        return;
-    end
-
-    // remove last file separator if it exists
-    if vcPath <> [] then
-        vcPath = pathconvert(vcPath, %f, %t);
-    end
-
-endfunction
-//=============================================================================
diff --git a/scilab/modules/dynamic_link/macros/windows/dlwGetVc11ExpressPath.sci b/scilab/modules/dynamic_link/macros/windows/dlwGetVc11ExpressPath.sci
deleted file mode 100644 (file)
index 26ed3bc..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
-// Copyright (C) Scilab Enterprises - 2012 - Antoine ELIAS
-//
-// Copyright (C) 2012 - 2016 - Scilab Enterprises
-//
-// This file is hereby licensed under the terms of the GNU GPL v2.0,
-// pursuant to article 5.3.4 of the CeCILL v.2.1.
-// This file was originally licensed under the terms of the CeCILL v2.1,
-// and continues to be available under such terms.
-// For more information, see the COPYING file which you should have received
-// along with this program.
-
-//=============================================================================
-function vcPath = dlwGetVc11ExpressPath()
-  vcPath = [];
-  try
-    vcPath = winqueryreg('HKEY_LOCAL_MACHINE', ..
-                     'Software\Microsoft\VisualStudio\11.0\Setup\VS', ..
-                     'ProductDir');
-  catch
-    // remove last error on 'winqueryreg' fails
-    lasterror();
-    return;
-  end
-
-  // remove last file separator if it exists
-  if vcPath <> [] then
-    vcPath = pathconvert(vcPath, %f, %t);
-  end
-endfunction
-//=============================================================================
diff --git a/scilab/modules/dynamic_link/macros/windows/dlwGetVc11ProPath.sci b/scilab/modules/dynamic_link/macros/windows/dlwGetVc11ProPath.sci
deleted file mode 100644 (file)
index 853e050..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
-// Copyright (C) Scilab Enterprises - 2012 - Antoine ELIAS
-//
-// Copyright (C) 2012 - 2016 - Scilab Enterprises
-//
-// This file is hereby licensed under the terms of the GNU GPL v2.0,
-// pursuant to article 5.3.4 of the CeCILL v.2.1.
-// This file was originally licensed under the terms of the CeCILL v2.1,
-// and continues to be available under such terms.
-// For more information, see the COPYING file which you should have received
-// along with this program.
-
-//=============================================================================
-function vcPath = dlwGetVc11ProPath()
-  vcPath = [];
-  try
-    vcPath = winqueryreg('HKEY_LOCAL_MACHINE', ..
-                     'Software\Microsoft\VisualStudio\11.0\Setup\VS', ..
-                     'ProductDir');
-  catch
-    // remove last error on 'winqueryreg' fails
-    lasterror();
-    return;
-  end
-
-  // remove last file separator if it exists
-  if vcPath <> [] then
-    vcPath = pathconvert(vcPath, %f, %t);
-  end
-
-endfunction
-//=============================================================================
index ccf6430..a078bf2 100644 (file)
 
 //=============================================================================
 function vcPath = dlwGetVc12ExpressPath()
-  vcPath = [];
-  try
-    vcPath = winqueryreg('HKEY_LOCAL_MACHINE', ..
-                     'Software\Microsoft\VisualStudio\12.0\Setup\VS', ..
-                     'ProductDir');
-  catch
-    // remove last error on 'winqueryreg' fails
-    lasterror();
-    return;
-  end
+    vcPath = [];
+    try
+        vcPath = winqueryreg("HKEY_LOCAL_MACHINE", ..
+            "Software\Microsoft\VisualStudio\12.0\Setup\VS", ..
+            "ProductDir");
+    catch
+        // remove last error on 'winqueryreg' fails
+        lasterror();
+        return;
+    end
 
-  // remove last file separator if it exists
-  if vcPath <> [] then
-    vcPath = pathconvert(vcPath, %f, %t);
-  end
+    // remove last file separator if it exists
+    if vcPath <> [] then
+        vcPath = pathconvert(vcPath, %f, %t) + "\VC";
+    end
 endfunction
 //=============================================================================
index 6fbfbea..e877de9 100644 (file)
 
 //=============================================================================
 function vcPath = dlwGetVc12ProPath()
-  vcPath = [];
-  try
-    vcPath = winqueryreg('HKEY_LOCAL_MACHINE', ..
-                     'Software\Microsoft\VisualStudio\12.0\Setup\VS', ..
-                     'ProductDir');
-  catch
-    // remove last error on 'winqueryreg' fails
-    lasterror();
-    return;
-  end
-
-  // remove last file separator if it exists
-  if vcPath <> [] then
-    vcPath = pathconvert(vcPath, %f, %t);
-  end
+    vcPath = [];
+    try
+        vcPath = winqueryreg("HKEY_LOCAL_MACHINE", ..
+            "Software\Microsoft\VisualStudio\12.0\Setup\VS", ..
+            "ProductDir");
+    catch
+        // remove last error on 'winqueryreg' fails
+        lasterror();
+        return;
+    end
 
+    // remove last file separator if it exists
+    if vcPath <> [] then
+        vcPath = pathconvert(vcPath, %f, %t) + "\VC";
+    end
 endfunction
 //=============================================================================
@@ -1,5 +1,5 @@
 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
-// Copyright (C) DIGITEO - 2010 - Allan CORNET
+// Copyright (C) Scilab Enterprises - 2014 - Antoine ELIAS
 //
 // Copyright (C) 2012 - 2016 - Scilab Enterprises
 //
 // along with this program.
 
 //=============================================================================
-function bOK = dlwIsVc11Pro()
-    bOK = %f;
+function vcPath = dlwGetVc141ExpressPath()
+    vcPath = [];
     try
-        if winqueryreg('HKLM', 'Software\Microsoft\DevDiv\vs\Servicing\11.0\devenv', "install") == 1  & ...
-                dlwIsVc11Express() == %f then
-            bOK = %t;
-        end
+        vcPath = getVsWhereInformation()("msvc141express");
     catch
+        lasterror();
+        return;
     end
+
+    vcPath = vcPath + "\VC\Auxiliary\Build";
 endfunction
 //=============================================================================
@@ -1,5 +1,5 @@
 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
-// Copyright (C) Scilab Enterprises - 2012 - Antoine ELIAS
+// Copyright (C) Scilab Enterprises - 2014 - Antoine ELIAS
 //
 // Copyright (C) 2012 - 2016 - Scilab Enterprises
 //
 // along with this program.
 
 //=============================================================================
-function bOK = dlwIsVc11Express()
-    bOK = %f;
+function vcPath = dlwGetVc141ProPath()
+    vcPath = [];
     try
-        if winqueryreg('key', 'HKLM', 'Software\Microsoft\DevDiv\wdexpress\Servicing\11.0') <> [] then
-            bOK = %t;
-        end
+        vcPath = getVsWhereInformation()("msvc141pro");
     catch
+        lasterror();
+        return;
     end
+
+    vcPath = vcPath + "\VC\Auxiliary\Build";
 endfunction
 //=============================================================================
@@ -1,5 +1,5 @@
 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
-// Copyright (C) DIGITEO - 2010 - Allan CORNET
+// Copyright (C) Scilab Enterprises - 2014 - Antoine ELIAS
 //
 // Copyright (C) 2012 - 2016 - Scilab Enterprises
 //
 // along with this program.
 
 //=============================================================================
-function bOK = dlwIsVc10Pro()
-    bOK = (dlwGetVc10ProPath() <> []);
+function vcPath = dlwGetVc142ExpressPath()
+    vcPath = [];
+    try
+        vcPath = getVsWhereInformation()("msvc142express");
+    catch
+        lasterror();
+        return;
+    end
+
+    vcPath = vcPath + "\VC\Auxiliary\Build";
 endfunction
 //=============================================================================
@@ -1,5 +1,5 @@
 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
-// Copyright (C) DIGITEO - 2010 - Allan CORNET
+// Copyright (C) Scilab Enterprises - 2014 - Antoine ELIAS
 //
 // Copyright (C) 2012 - 2016 - Scilab Enterprises
 //
 // along with this program.
 
 //=============================================================================
-function bOK = dlwIsVc10Express()
-    bOK = (dlwGetVc10ExpressPath() <> []);
+function vcPath = dlwGetVc142ProPath()
+    vcPath = [];
+    try
+        vcPath = getVsWhereInformation()("msvc142pro");
+    catch
+        lasterror();
+        return;
+    end
+
+    vcPath = vcPath + "\VC\Auxiliary\Build";
 endfunction
 //=============================================================================
index fe627d9..cdd4817 100644 (file)
@@ -15,8 +15,8 @@ function vcPath = dlwGetVc14ExpressPath()
     vcPath = [];
     try
         vcPath = winqueryreg("HKEY_LOCAL_MACHINE", ..
-        "Software\Microsoft\VisualStudio\14.0\Setup\VS", ..
-        "ProductDir");
+            "Software\Microsoft\VisualStudio\14.0\Setup\VS", ..
+            "ProductDir");
     catch
         // remove last error on 'winqueryreg' fails
         lasterror();
@@ -25,7 +25,7 @@ function vcPath = dlwGetVc14ExpressPath()
 
     // remove last file separator if it exists
     if vcPath <> [] then
-        vcPath = pathconvert(vcPath, %f, %t);
+        vcPath = pathconvert(vcPath, %f, %t) + "\VC";
     end
 endfunction
 //=============================================================================
index cde8c2a..4464459 100644 (file)
@@ -15,8 +15,8 @@ function vcPath = dlwGetVc14ProPath()
     vcPath = [];
     try
         vcPath = winqueryreg("HKEY_LOCAL_MACHINE", ..
-        "Software\Microsoft\VisualStudio\14.0\Setup\VS", ..
-        "ProductDir");
+            "Software\Microsoft\VisualStudio\14.0\Setup\VS", ..
+            "ProductDir");
     catch
         // remove last error on 'winqueryreg' fails
         lasterror();
@@ -25,7 +25,7 @@ function vcPath = dlwGetVc14ProPath()
 
     // remove last file separator if it exists
     if vcPath <> [] then
-        vcPath = pathconvert(vcPath, %f, %t);
+        vcPath = pathconvert(vcPath, %f, %t) + "\VC";
     end
 
 endfunction
diff --git a/scilab/modules/dynamic_link/macros/windows/dlwGetVc70Path.sci b/scilab/modules/dynamic_link/macros/windows/dlwGetVc70Path.sci
deleted file mode 100644 (file)
index 6f03828..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
-// Copyright (C) DIGITEO - 2010 - Allan CORNET
-//
-// Copyright (C) 2012 - 2016 - Scilab Enterprises
-//
-// This file is hereby licensed under the terms of the GNU GPL v2.0,
-// pursuant to article 5.3.4 of the CeCILL v.2.1.
-// This file was originally licensed under the terms of the CeCILL v2.1,
-// and continues to be available under such terms.
-// For more information, see the COPYING file which you should have received
-// along with this program.
-
-//=============================================================================
-function vcPath = dlwGetVc70Path()
-    vcPath = [];
-    try
-        vcPath = winqueryreg("HKEY_LOCAL_MACHINE", ..
-        "SOFTWARE\Microsoft\VisualStudio\7.0\Setup\VC", ..
-        "ProductDir");
-    catch
-        // remove last error on 'winqueryreg' fails
-        lasterror();
-        return;
-    end
-
-    // remove last file separator if it exists
-    if vcPath <> [] then
-        vcPath = pathconvert(vcPath, %f, %t);
-    end
-
-endfunction
-//=============================================================================
diff --git a/scilab/modules/dynamic_link/macros/windows/dlwGetVc71Path.sci b/scilab/modules/dynamic_link/macros/windows/dlwGetVc71Path.sci
deleted file mode 100644 (file)
index 9ef9d7b..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
-// Copyright (C) DIGITEO - 2010 - Allan CORNET
-//
-// Copyright (C) 2012 - 2016 - Scilab Enterprises
-//
-// This file is hereby licensed under the terms of the GNU GPL v2.0,
-// pursuant to article 5.3.4 of the CeCILL v.2.1.
-// This file was originally licensed under the terms of the CeCILL v2.1,
-// and continues to be available under such terms.
-// For more information, see the COPYING file which you should have received
-// along with this program.
-
-//=============================================================================
-function vcPath = dlwGetVc71Path()
-    vcPath = [];
-    try
-        vcPath = winqueryreg("HKEY_LOCAL_MACHINE", ..
-        "SOFTWARE\Microsoft\VisualStudio\7.1\Setup\VC", ..
-        "ProductDir");
-    catch
-        // remove last error on 'winqueryreg' fails
-        lasterror();
-        return;
-    end
-
-    // remove last file separator if it exists
-    if vcPath <> [] then
-        vcPath = pathconvert(vcPath, %f, %t);
-    end
-
-endfunction
-//=============================================================================
diff --git a/scilab/modules/dynamic_link/macros/windows/dlwGetVc80ExpressPath.sci b/scilab/modules/dynamic_link/macros/windows/dlwGetVc80ExpressPath.sci
deleted file mode 100644 (file)
index 56b4bd4..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
-// Copyright (C) DIGITEO - 2010 - Allan CORNET
-//
-// Copyright (C) 2012 - 2016 - Scilab Enterprises
-//
-// This file is hereby licensed under the terms of the GNU GPL v2.0,
-// pursuant to article 5.3.4 of the CeCILL v.2.1.
-// This file was originally licensed under the terms of the CeCILL v2.1,
-// and continues to be available under such terms.
-// For more information, see the COPYING file which you should have received
-// along with this program.
-
-//=============================================================================
-function vcPath = dlwGetVc80ExpressPath()
-    vcPath = [];
-    try
-        vcPath = winqueryreg("HKEY_LOCAL_MACHINE", ..
-        "Software\Microsoft\VCExpress\8.0\Setup\VS", ..
-        "ProductDir");
-    catch
-        // remove last error on 'winqueryreg' fails
-        lasterror();
-        return;
-    end
-
-    // remove last file separator if it exists
-    if vcPath <> [] then
-        vcPath = pathconvert(vcPath, %f, %t);
-    end
-
-endfunction
-//=============================================================================
diff --git a/scilab/modules/dynamic_link/macros/windows/dlwGetVc80ProPath.sci b/scilab/modules/dynamic_link/macros/windows/dlwGetVc80ProPath.sci
deleted file mode 100644 (file)
index 41ec2fc..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
-// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
-// Copyright (C) DIGITEO - 2010 - Allan CORNET
-//
-// Copyright (C) 2012 - 2016 - Scilab Enterprises
-//
-// This file is hereby licensed under the terms of the GNU GPL v2.0,
-// pursuant to article 5.3.4 of the CeCILL v.2.1.
-// This file was originally licensed under the terms of the CeCILL v2.1,
-// and continues to be available under such terms.
-// For more information, see the COPYING file which you should have received
-// along with this program.
-
-//=============================================================================
-function vcPath = dlwGetVc80ProPath()
-    vcPath = [];
-    try
-        vcPath = winqueryreg("HKEY_LOCAL_MACHINE", ..
-        "Software\Microsoft\VisualStudio\8.0\Setup\VS\Pro", ..
-        "ProductDir");
-    catch
-        // remove last error on 'winqueryreg' fails
-        lasterror();
-        return;
-    end
-
-    // remove last file separator if it exists
-    if vcPath <> [] then
-        vcPath = pathconvert(vcPath, %f, %t);
-    end
-
-endfunction
-//=============================================================================
-
diff --git a/scilab/modules/dynamic_link/macros/windows/dlwGetVc80StdPath.sci b/scilab/modules/dynamic_link/macros/windows/dlwGetVc80StdPath.sci
deleted file mode 100644 (file)
index 5ee3bc4..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
-// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
-// Copyright (C) DIGITEO - 2010 - Allan CORNET
-//
-// Copyright (C) 2012 - 2016 - Scilab Enterprises
-//
-// This file is hereby licensed under the terms of the GNU GPL v2.0,
-// pursuant to article 5.3.4 of the CeCILL v.2.1.
-// This file was originally licensed under the terms of the CeCILL v2.1,
-// and continues to be available under such terms.
-// For more information, see the COPYING file which you should have received
-// along with this program.
-
-//=============================================================================
-function vcPath = dlwGetVc80StdPath()
-    vcPath = [];
-    try
-        vcPath = winqueryreg("HKEY_LOCAL_MACHINE", ..
-        "Software\Microsoft\VisualStudio\8.0\Setup\VS\Std", ..
-        "ProductDir");
-    catch
-        // remove last error on 'winqueryreg' fails
-        lasterror();
-        return;
-    end
-
-    // remove last file separator if it exists
-    if vcPath <> [] then
-        vcPath = pathconvert(vcPath, %f, %t);
-    end
-
-endfunction
-//=============================================================================
-
diff --git a/scilab/modules/dynamic_link/macros/windows/dlwGetVc90ExpressPath.sci b/scilab/modules/dynamic_link/macros/windows/dlwGetVc90ExpressPath.sci
deleted file mode 100644 (file)
index e9028a2..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
-// Copyright (C) DIGITEO - 2010 - Allan CORNET
-//
-// Copyright (C) 2012 - 2016 - Scilab Enterprises
-//
-// This file is hereby licensed under the terms of the GNU GPL v2.0,
-// pursuant to article 5.3.4 of the CeCILL v.2.1.
-// This file was originally licensed under the terms of the CeCILL v2.1,
-// and continues to be available under such terms.
-// For more information, see the COPYING file which you should have received
-// along with this program.
-
-//=============================================================================
-function vcPath = dlwGetVc90ExpressPath()
-    vcPath = [];
-    try
-        vcPath = winqueryreg("HKEY_LOCAL_MACHINE", ..
-        "Software\Microsoft\VCExpress\9.0\Setup\VS", ..
-        "ProductDir");
-    catch
-        // remove last error on 'winqueryreg' fails
-        lasterror();
-        return;
-    end
-
-    // remove last file separator if it exists
-    if vcPath <> [] then
-        vcPath = pathconvert(vcPath, %f, %t);
-    end
-
-endfunction
-//=============================================================================
diff --git a/scilab/modules/dynamic_link/macros/windows/dlwGetVc90ProPath.sci b/scilab/modules/dynamic_link/macros/windows/dlwGetVc90ProPath.sci
deleted file mode 100644 (file)
index 4ca5fdc..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
-// Copyright (C) DIGITEO - 2010 - Allan CORNET
-//
-// Copyright (C) 2012 - 2016 - Scilab Enterprises
-//
-// This file is hereby licensed under the terms of the GNU GPL v2.0,
-// pursuant to article 5.3.4 of the CeCILL v.2.1.
-// This file was originally licensed under the terms of the CeCILL v2.1,
-// and continues to be available under such terms.
-// For more information, see the COPYING file which you should have received
-// along with this program.
-
-//=============================================================================
-function vcPath = dlwGetVc90ProPath()
-    vcPath = [];
-    try
-        vcPath = winqueryreg("HKEY_LOCAL_MACHINE", ..
-        "Software\Microsoft\VisualStudio\9.0\Setup\VS\Pro", ..
-        "ProductDir");
-    catch
-        // remove last error on 'winqueryreg' fails
-        lasterror();
-        return;
-    end
-
-    // remove last file separator if it exists
-    if vcPath <> [] then
-        vcPath = pathconvert(vcPath, %f, %t);
-    end
-
-endfunction
-//=============================================================================
diff --git a/scilab/modules/dynamic_link/macros/windows/dlwGetVc90StdPath.sci b/scilab/modules/dynamic_link/macros/windows/dlwGetVc90StdPath.sci
deleted file mode 100644 (file)
index b0322a6..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
-// Copyright (C) DIGITEO - 2010 - Allan CORNET
-//
-// Copyright (C) 2012 - 2016 - Scilab Enterprises
-//
-// This file is hereby licensed under the terms of the GNU GPL v2.0,
-// pursuant to article 5.3.4 of the CeCILL v.2.1.
-// This file was originally licensed under the terms of the CeCILL v2.1,
-// and continues to be available under such terms.
-// For more information, see the COPYING file which you should have received
-// along with this program.
-
-//=============================================================================
-function vcPath = dlwGetVc90StdPath()
-    vcPath = [];
-    try
-        vcPath = winqueryreg("HKEY_LOCAL_MACHINE", ..
-        "Software\Microsoft\VisualStudio\9.0\Setup\VS\Std", ..
-        "ProductDir");
-    catch
-        // remove last error on 'winqueryreg' fails
-        lasterror();
-        return;
-    end
-
-    // remove last file separator if it exists
-    if vcPath <> [] then
-        vcPath = pathconvert(vcPath, %f, %t);
-    end
-
-endfunction
-//=============================================================================
index e64fd1a..7f3a76c 100644 (file)
@@ -16,10 +16,22 @@ function VSPath = dlwGetVisualStudioPath()
 
     VSPath = "";
     select msvc
+        // Microsoft Visual 2019 Studio Professional
+    case  "msvc142pro" then
+        VSPath = dlwGetVc142ProPath();
+        // Microsoft Visual 2019 Studio Express
+    case  "msvc142express" then
+        VSPath = dlwGetVc142ExpressPath();
+        // Microsoft Visual 2017 Studio Professional
+    case  "msvc141pro" then
+        VSPath = dlwGetVc141ProPath();
+        // Microsoft Visual 2017 Studio Express
+    case  "msvc141express" then
+        VSPath = dlwGetVc141ExpressPath();
         // Microsoft Visual 2015 Studio Professional
     case  "msvc140pro" then
         VSPath = dlwGetVc14ProPath();
-        // Microsoft Visual 2015 Express
+        // Microsoft Visual 2015 Studio Express
     case  "msvc140express" then
         VSPath = dlwGetVc14ExpressPath();
         // Microsoft Visual 2013 Studio Professional
@@ -28,27 +40,6 @@ function VSPath = dlwGetVisualStudioPath()
         // Microsoft Visual 2013 Express
     case  "msvc120express" then
         VSPath = dlwGetVc12ExpressPath();
-        // Microsoft Visual 2012 Studio Professional
-    case  "msvc110pro" then
-        VSPath = dlwGetVc11ProPath();
-        // Microsoft Visual 2012 Express
-    case  "msvc110express" then
-        VSPath = dlwGetVc11ExpressPath();
-        // Microsoft Visual 2010 Studio Professional
-    case  "msvc100pro" then
-        VSPath = dlwGetVc10ProPath();
-        // Microsoft Visual 2010 Express
-    case  "msvc100express" then
-        VSPath = dlwGetVc10ExpressPath();
-        // Microsoft Visual 2008 Studio Professional
-    case  "msvc90pro" then
-        VSPath = dlwGetVc90ProPath();
-        // Microsoft Visual 2008 Studio Standard
-    case  "msvc90std" then
-        VSPath = dlwGetVc90StdPath();
-        // Microsoft Visual 2008 Express
-    case  "msvc90express" then
-        VSPath = dlwGetVc90ExpressPath();
     else
     end
 endfunction
diff --git a/scilab/modules/dynamic_link/macros/windows/dlwIsVc141Express.sci b/scilab/modules/dynamic_link/macros/windows/dlwIsVc141Express.sci
new file mode 100644 (file)
index 0000000..5176072
--- /dev/null
@@ -0,0 +1,29 @@
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) Scilab Enterprises - 2015 - Antoine ELIAS
+//
+// Copyright (C) 2012 - 2016 - Scilab Enterprises
+//
+// This file is hereby licensed under the terms of the GNU GPL v2.0,
+// pursuant to article 5.3.4 of the CeCILL v.2.1.
+// This file was originally licensed under the terms of the CeCILL v2.1,
+// and continues to be available under such terms.
+// For more information, see the COPYING file which you should have received
+// along with this program.
+
+//=============================================================================
+function bOK = dlwIsVc141Express()
+    bOK = %f;
+    vers = getVsWhereInformation();
+    if isempty(vers) then
+        return;
+    end
+    
+    x = fieldnames(vers);
+    x = find(x == "msvc141express");
+    if isempty(x) then
+        return;
+    end
+    
+    bOK = %t;
+endfunction
+//=============================================================================
diff --git a/scilab/modules/dynamic_link/macros/windows/dlwIsVc141Pro.sci b/scilab/modules/dynamic_link/macros/windows/dlwIsVc141Pro.sci
new file mode 100644 (file)
index 0000000..c52fc67
--- /dev/null
@@ -0,0 +1,29 @@
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) Scilab Enterprises - 2015 - Antoine ELIAS
+//
+// Copyright (C) 2012 - 2016 - Scilab Enterprises
+//
+// This file is hereby licensed under the terms of the GNU GPL v2.0,
+// pursuant to article 5.3.4 of the CeCILL v.2.1.
+// This file was originally licensed under the terms of the CeCILL v2.1,
+// and continues to be available under such terms.
+// For more information, see the COPYING file which you should have received
+// along with this program.
+
+//=============================================================================
+function bOK = dlwIsVc141Pro()
+    bOK = %f;
+    vers = getVsWhereInformation();
+    if isempty(vers) then
+        return;
+    end
+    
+    x = fieldnames(vers);
+    x = find(x == "msvc141pro");
+    if isempty(x) then
+        return;
+    end
+
+    bOK = %t;
+endfunction
+//=============================================================================
diff --git a/scilab/modules/dynamic_link/macros/windows/dlwIsVc142Express.sci b/scilab/modules/dynamic_link/macros/windows/dlwIsVc142Express.sci
new file mode 100644 (file)
index 0000000..918af2b
--- /dev/null
@@ -0,0 +1,29 @@
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) Scilab Enterprises - 2015 - Antoine ELIAS
+//
+// Copyright (C) 2012 - 2016 - Scilab Enterprises
+//
+// This file is hereby licensed under the terms of the GNU GPL v2.0,
+// pursuant to article 5.3.4 of the CeCILL v.2.1.
+// This file was originally licensed under the terms of the CeCILL v2.1,
+// and continues to be available under such terms.
+// For more information, see the COPYING file which you should have received
+// along with this program.
+
+//=============================================================================
+function bOK = dlwIsVc142Express()
+    bOK = %f;
+    vers = getVsWhereInformation();
+    if isempty(vers) then
+        return;
+    end
+
+    x = fieldnames(vers);
+    x = find(x == "msvc142express");
+    if isempty(x) then
+        return;
+    end
+
+    bOK = %t;
+endfunction
+//=============================================================================
diff --git a/scilab/modules/dynamic_link/macros/windows/dlwIsVc142Pro.sci b/scilab/modules/dynamic_link/macros/windows/dlwIsVc142Pro.sci
new file mode 100644 (file)
index 0000000..d408e43
--- /dev/null
@@ -0,0 +1,29 @@
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) Scilab Enterprises - 2015 - Antoine ELIAS
+//
+// Copyright (C) 2012 - 2016 - Scilab Enterprises
+//
+// This file is hereby licensed under the terms of the GNU GPL v2.0,
+// pursuant to article 5.3.4 of the CeCILL v.2.1.
+// This file was originally licensed under the terms of the CeCILL v2.1,
+// and continues to be available under such terms.
+// For more information, see the COPYING file which you should have received
+// along with this program.
+
+//=============================================================================
+function bOK = dlwIsVc142Pro()
+    bOK = %f;
+    vers = getVsWhereInformation();
+    if isempty(vers) then
+        return;
+    end
+    
+    x = fieldnames(vers);
+    x = find(x == "msvc142pro");
+    if isempty(x) then
+        return;
+    end
+    
+    bOK = %t;
+endfunction
+//=============================================================================
diff --git a/scilab/modules/dynamic_link/macros/windows/dlwIsVc70.sci b/scilab/modules/dynamic_link/macros/windows/dlwIsVc70.sci
deleted file mode 100644 (file)
index 8754610..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
-// Copyright (C) DIGITEO - 2010 - Allan CORNET
-//
-// Copyright (C) 2012 - 2016 - Scilab Enterprises
-//
-// This file is hereby licensed under the terms of the GNU GPL v2.0,
-// pursuant to article 5.3.4 of the CeCILL v.2.1.
-// This file was originally licensed under the terms of the CeCILL v2.1,
-// and continues to be available under such terms.
-// For more information, see the COPYING file which you should have received
-// along with this program.
-
-//=============================================================================
-function bOK = dlwIsVc70()
-    bOK = (dlwGetVc70Path() <> []);
-endfunction
-//=============================================================================
diff --git a/scilab/modules/dynamic_link/macros/windows/dlwIsVc71.sci b/scilab/modules/dynamic_link/macros/windows/dlwIsVc71.sci
deleted file mode 100644 (file)
index 060af2f..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
-// Copyright (C) DIGITEO - 2010 - Allan CORNET
-//
-// Copyright (C) 2012 - 2016 - Scilab Enterprises
-//
-// This file is hereby licensed under the terms of the GNU GPL v2.0,
-// pursuant to article 5.3.4 of the CeCILL v.2.1.
-// This file was originally licensed under the terms of the CeCILL v2.1,
-// and continues to be available under such terms.
-// For more information, see the COPYING file which you should have received
-// along with this program.
-
-//=============================================================================
-function bOK = dlwIsVc71()
-    bOK = (dlwGetVc71Path() <> []);
-endfunction
-//=============================================================================
diff --git a/scilab/modules/dynamic_link/macros/windows/dlwIsVc80Express.sci b/scilab/modules/dynamic_link/macros/windows/dlwIsVc80Express.sci
deleted file mode 100644 (file)
index f63d7f3..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
-// Copyright (C) DIGITEO - 2010 - Allan CORNET
-//
-// Copyright (C) 2012 - 2016 - Scilab Enterprises
-//
-// This file is hereby licensed under the terms of the GNU GPL v2.0,
-// pursuant to article 5.3.4 of the CeCILL v.2.1.
-// This file was originally licensed under the terms of the CeCILL v2.1,
-// and continues to be available under such terms.
-// For more information, see the COPYING file which you should have received
-// along with this program.
-
-//=============================================================================
-function bOK = dlwIsVc80Express()
-    bOK = (dlwGetVc80ExpressPath() <> []);
-endfunction
-//=============================================================================
diff --git a/scilab/modules/dynamic_link/macros/windows/dlwIsVc80Pro.sci b/scilab/modules/dynamic_link/macros/windows/dlwIsVc80Pro.sci
deleted file mode 100644 (file)
index 77f1c5e..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
-// Copyright (C) DIGITEO - 2010 - Allan CORNET
-//
-// Copyright (C) 2012 - 2016 - Scilab Enterprises
-//
-// This file is hereby licensed under the terms of the GNU GPL v2.0,
-// pursuant to article 5.3.4 of the CeCILL v.2.1.
-// This file was originally licensed under the terms of the CeCILL v2.1,
-// and continues to be available under such terms.
-// For more information, see the COPYING file which you should have received
-// along with this program.
-
-//=============================================================================
-function bOK = dlwIsVc80Pro()
-    bOK = (dlwGetVc80ProPath() <> []);
-endfunction
-//=============================================================================
diff --git a/scilab/modules/dynamic_link/macros/windows/dlwIsVc80Std.sci b/scilab/modules/dynamic_link/macros/windows/dlwIsVc80Std.sci
deleted file mode 100644 (file)
index a0d30a9..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
-// Copyright (C) DIGITEO - 2010 - Allan CORNET
-//
-// Copyright (C) 2012 - 2016 - Scilab Enterprises
-//
-// This file is hereby licensed under the terms of the GNU GPL v2.0,
-// pursuant to article 5.3.4 of the CeCILL v.2.1.
-// This file was originally licensed under the terms of the CeCILL v2.1,
-// and continues to be available under such terms.
-// For more information, see the COPYING file which you should have received
-// along with this program.
-
-//=============================================================================
-function bOK = dlwIsVc80Std()
-    bOK = (dlwGetVc80StdPath() <> []);
-endfunction
-//=============================================================================
diff --git a/scilab/modules/dynamic_link/macros/windows/dlwIsVc90Express.sci b/scilab/modules/dynamic_link/macros/windows/dlwIsVc90Express.sci
deleted file mode 100644 (file)
index 05de820..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
-// Copyright (C) DIGITEO - 2010 - Allan CORNET
-//
-// Copyright (C) 2012 - 2016 - Scilab Enterprises
-//
-// This file is hereby licensed under the terms of the GNU GPL v2.0,
-// pursuant to article 5.3.4 of the CeCILL v.2.1.
-// This file was originally licensed under the terms of the CeCILL v2.1,
-// and continues to be available under such terms.
-// For more information, see the COPYING file which you should have received
-// along with this program.
-
-//=============================================================================
-function bOK = dlwIsVc90Express()
-    bOK = (dlwGetVc90ExpressPath() <> []);
-endfunction
-//=============================================================================
diff --git a/scilab/modules/dynamic_link/macros/windows/dlwIsVc90Pro.sci b/scilab/modules/dynamic_link/macros/windows/dlwIsVc90Pro.sci
deleted file mode 100644 (file)
index 342519c..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
-// Copyright (C) DIGITEO - 2010 - Allan CORNET
-//
-// Copyright (C) 2012 - 2016 - Scilab Enterprises
-//
-// This file is hereby licensed under the terms of the GNU GPL v2.0,
-// pursuant to article 5.3.4 of the CeCILL v.2.1.
-// This file was originally licensed under the terms of the CeCILL v2.1,
-// and continues to be available under such terms.
-// For more information, see the COPYING file which you should have received
-// along with this program.
-
-//=============================================================================
-function bOK = dlwIsVc90Pro()
-    bOK = (dlwGetVc90ProPath() <> []);
-endfunction
-//=============================================================================
diff --git a/scilab/modules/dynamic_link/macros/windows/dlwIsVc90Std.sci b/scilab/modules/dynamic_link/macros/windows/dlwIsVc90Std.sci
deleted file mode 100644 (file)
index 2ebc7e9..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
-// Copyright (C) DIGITEO - 2010 - Allan CORNET
-//
-// Copyright (C) 2012 - 2016 - Scilab Enterprises
-//
-// This file is hereby licensed under the terms of the GNU GPL v2.0,
-// pursuant to article 5.3.4 of the CeCILL v.2.1.
-// This file was originally licensed under the terms of the CeCILL v2.1,
-// and continues to be available under such terms.
-// For more information, see the COPYING file which you should have received
-// along with this program.
-
-//=============================================================================
-function bOK = dlwIsVc90Std()
-    bOK = (dlwGetVc90StdPath() <> []);
-endfunction
-//=============================================================================
index 2ac46d5..ba76106 100644 (file)
@@ -67,7 +67,7 @@ function filename = writeBatchFile(cmd)
     path = dlwGetVisualStudioPath();
 
     scibuild = [ ...
-    "@call """ + path + "\VC\vcvarsall.bat"" " + arch;
+    "@call """ + path + "\vcvarsall.bat"" " + arch;
     "set DEBUG_SCILAB_DYNAMIC_LINK=" + val;
     cmd
     ];
diff --git a/scilab/modules/dynamic_link/macros/windows/getVsWhereInformation.sci b/scilab/modules/dynamic_link/macros/windows/getVsWhereInformation.sci
new file mode 100644 (file)
index 0000000..d52ec9c
--- /dev/null
@@ -0,0 +1,39 @@
+function vs = getVsWhereInformation()
+    //call vswhere MS tools to get Information about VSs >= 2015 installed.
+
+    //command vswhere -all -prerelease -format json -utf8
+
+    //From vswhere -?
+    //-all           Finds all instances even if they are incomplete and may not launch.
+    //-prerelease    Also searches prereleases. By default, only releases are searched.
+    //-legacy        Also searches Visual Studio 2015 and older products. Information is limited.
+    //               This option cannot be used with either -products or -requires.
+    //-format arg    Return information about instances found in a format described below.
+    //-utf8          Use UTF-8 encoding (recommended for JSON).
+
+    cmd = sprintf("""%s"" -all -prerelease -format json -utf8 -include packages", fullfile(SCI, "tools", "vswhere", "vswhere"));
+    x = unix_g(cmd);
+    vs = [];
+    if isempty(x) == %f then
+        x = fromJSON(x);
+        for i = 1:length(x)
+            xi = x(i);
+
+            for p = 1:length(xi.packages)
+                if xi.packages(p).id == "Microsoft.VisualCpp.Tools.HostX64.TargetX64" then
+                    v = xi.packages(p).version;
+                    vers = int(evstr(v)(1) * 10)
+                end
+            end
+
+            [a,b,c,d] = regexp(xi.productId, "/.*\.([0-9a-zA-Z]+)$/");
+
+            t = "express";
+            if d == "Enterprise" || d == "Professional" then
+                t = "pro";
+            end
+
+            vs(sprintf("msvc%d%s", vers, t)) = sprintf(xi.installationPath);
+        end
+    end
+endfunction
index ecf578b..db6c307 100644 (file)
@@ -11,4 +11,5 @@ Source: tools\zip\*.*; DestDir: {app}\tools\zip; Flags: recursesubdirs; Componen
 Source: tools\gzip\*.*; DestDir: {app}\tools\gzip; Flags: recursesubdirs; Components: {#COMPN_SCILAB}
 Source: tools\diff\*.*; DestDir: {app}\tools\diff; Flags: recursesubdirs; Components: {#COMPN_SCILAB}
 Source: tools\gettext\*.*; DestDir: {app}\tools\gettext; Flags: recursesubdirs; Components: {#COMPN_SCILAB}
+Source: tools\vswhere\*.*; DestDir: {app}\tools\vswhere; Flags: recursesubdirs; Components: {#COMPN_SCILAB}
 ;