add VS2013 detection 11/14911/3
Antoine ELIAS [Fri, 18 Jul 2014 14:44:10 +0000 (16:44 +0200)]
Change-Id: Id80ad3d54fb1affc6e50912c16a08cc8860248cc

15 files changed:
scilab/modules/dynamic_link/macros/configure_msifort.sci
scilab/modules/dynamic_link/macros/detectmsifort64tools.sci
scilab/modules/dynamic_link/macros/detectmsvc64tools.sci
scilab/modules/dynamic_link/macros/findmsifortcompiler.sci
scilab/modules/dynamic_link/macros/windows/dlwConfigureVcx64.sci
scilab/modules/dynamic_link/macros/windows/dlwConfigureVcx86.sci
scilab/modules/dynamic_link/macros/windows/dlwFindMsVcCompiler.sci
scilab/modules/dynamic_link/macros/windows/dlwGet64BitPath.sci
scilab/modules/dynamic_link/macros/windows/dlwGetVc12ExpressPath.sci [new file with mode: 0644]
scilab/modules/dynamic_link/macros/windows/dlwGetVc12ProPath.sci [new file with mode: 0644]
scilab/modules/dynamic_link/macros/windows/dlwIsVc12Express.sci [new file with mode: 0644]
scilab/modules/dynamic_link/macros/windows/dlwIsVc12Pro.sci [new file with mode: 0644]
scilab/modules/dynamic_link/macros/windows/dlwSetEnvCommonVc12.sci [new file with mode: 0644]
scilab/modules/dynamic_link/macros/windows/dlwSetEnvVc12.sci [new file with mode: 0644]
scilab/modules/dynamic_link/src/scripts/Makefile.incl.mak

index 8f22a32..2d3c1ef 100644 (file)
@@ -31,6 +31,8 @@ function bOK = configure_msifort()
             ifpath = getenv("IFORT_COMPILER12", "");
         case "ifort13" then
             ifpath = getenv("IFORT_COMPILER13", "");
+        case "ifort14" then
+            ifpath = getenv("IFORT_COMPILER14", "");
         else
             ifpath = "";
         end
@@ -163,6 +165,8 @@ function bOK = configure_msifort()
                 machinepath = "ia32";
             else
                 select ifortcompiler,
+                case "ifort14" then
+                    machinepath = "intel64";
                 case "ifort13" then
                     machinepath = "intel64";
                 case "ifort12" then
@@ -175,6 +179,8 @@ function bOK = configure_msifort()
             end
 
             select ifortcompiler,
+            case "ifort14" then
+                bOK = set_commons_ifort12(if_path, machinepath);
             case "ifort13" then
                 bOK = set_commons_ifort12(if_path, machinepath);
             case "ifort12" then
index 724894c..4d58543 100644 (file)
@@ -16,6 +16,9 @@ function bOK = detectmsifort64tools()
         ifortcomp = findmsifortcompiler();
         if ifortcomp <> "unknown" then
             select ifortcomp,
+            case  "ifort14" then
+                IFORTPATH = getenv("IFORT_COMPILER14","");
+
             case  "ifort13" then
                 IFORTPATH = getenv("IFORT_COMPILER13","");
 
@@ -45,6 +48,8 @@ function bOK = detectmsifort64tools()
         end
 
         select ifortcomp,
+        case  "ifort14" then
+            IFORTSPATHEMT64 = IFORTPATH + "compiler\lib\intel64";
         case  "ifort13" then
             IFORTSPATHEMT64 = IFORTPATH + "compiler\lib\intel64";
         case  "ifort12" then
index 2b7ffcd..fb566f8 100644 (file)
@@ -42,24 +42,26 @@ function bOK = detectmsvc64tools()
         load("SCI/modules/dynamic_link/macros/windows/lib");
     end
 
-  if win64() then
-    compiler = findmsvccompiler();
-    supported_compiler = ['msvc110pro', ..
-                          'msvc110express', ..
-                          'msvc100pro', ..
-                          'msvc100express', ..
-                          'msvc90pro', ..
-                          'msvc90std', ..
-                          'msvc90express'];
+    if win64() then
+        compiler = findmsvccompiler();
+        supported_compiler = ["msvc120pro", ..
+        "msvc120express", ..
+        "msvc110pro", ..
+        "msvc110express", ..
+        "msvc100pro", ..
+        "msvc100express", ..
+        "msvc90pro", ..
+        "msvc90std", ..
+        "msvc90express"];
 
         if (find(supported_compiler == compiler) <> []) then
             MSVCBIN64PATH = dlwGet64BitPath();
-            if dlwIsVc11Express() then
+            if dlwIsVc11Express() | dlwIsVc12Express() then
                 MSVCBIN64PATH = MSVCBIN64PATH + filesep() + "VC\bin";
             else
                 MSVCBIN64PATH = MSVCBIN64PATH + filesep() + "VC\bin\amd64";
             end
-            
+
             if isdir(MSVCBIN64PATH) then
                 bOK = %T;
             else
index a59018c..042ea8c 100644 (file)
@@ -13,6 +13,11 @@ function ifortCompiler = findmsifortcompiler()
     ifortCompiler = "unknown"; // unknown
 
     if getos() == "Windows" then
+        if getenv("IFORT_COMPILER14","NOK") <> "NOK" then
+            ifortCompiler = "ifort14";
+            return
+        end
+
         if getenv("IFORT_COMPILER13","NOK") <> "NOK" then
             ifortCompiler = "ifort13";
             return
index b7b630f..76ee94e 100644 (file)
@@ -1,5 +1,6 @@
 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
 // Copyright (C) DIGITEO - 2010 - Allan CORNET
+// Copyright (C) Scilab Enterprises - 2014 - Antoine ELIAS
 //
 // This file must be used under the terms of the CeCILL.
 // This source file is licensed as described in the file COPYING, which
@@ -12,34 +13,42 @@ function bOK = dlwConfigureVcx64()
   bOK = %F;
   msvc = findmsvccompiler();
 
-  select msvc,
+  select msvc
+     // Microsoft Visual 2013 Studio Professional
+     case  'msvc120pro' then
+         bOK = dlwSetEnvVc12(msvc, %t);
+
+     // Microsoft Visual 2013 Express
+     case  'msvc120express' then
+         bOK = dlwSetEnvVc12(msvc, %t);
+
      // Microsoft Visual 2012 Studio Professional
      case  'msvc110pro' then
-     bOK = dlwSetEnvVc11(msvc, %t);
+         bOK = dlwSetEnvVc11(msvc, %t);
 
      // Microsoft Visual 2012 Express
      case  'msvc110express' then
-     bOK = dlwSetEnvVc11(msvc, %t);
+         bOK = dlwSetEnvVc11(msvc, %t);
      
      // Microsoft Visual 2010 Studio Professional
-     case  'msvc100pro' then
-     bOK = dlwSetEnvVc10(msvc, %t);
+        case  'msvc100pro' then
+         bOK = dlwSetEnvVc10(msvc, %t);
 
      // Microsoft Visual 2010 Express
      case  'msvc100express' then
-     bOK = dlwSetEnvVc10(msvc, %t);
+         bOK = dlwSetEnvVc10(msvc, %t);
 
      // Microsoft Visual 2008 Studio Professional
      case  'msvc90pro' then
-     bOK = dlwSetEnvVc90(msvc, %t);
+         bOK = dlwSetEnvVc90(msvc, %t);
 
      // Microsoft Visual 2008 Studio Standard
      case  'msvc90std' then
-     bOK = dlwSetEnvVc90(msvc, %t);
+         bOK = dlwSetEnvVc90(msvc, %t);
 
     // Microsoft Visual 2008 Express
     case  'msvc90express' then
-    bOK = dlwSetEnvVc90(msvc, %t);
+        bOK = dlwSetEnvVc90(msvc, %t);
   else
   end  
 endfunction
index 7cb16f9..a73ac72 100644 (file)
@@ -1,5 +1,6 @@
 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
 // Copyright (C) DIGITEO - 2010 - Allan CORNET
+// Copyright (C) Scilab Enterprises - 2014 - Antoine ELIAS
 //
 // This file must be used under the terms of the CeCILL.
 // This source file is licensed as described in the file COPYING, which
@@ -12,54 +13,62 @@ function bOK = dlwConfigureVcx86()
   bOK = %F;
   msvc = findmsvccompiler();
 
-  select msvc,
+  select msvc
+    // Microsoft Visual 2013 Studio Professional
+    case  'msvc120pro' then
+        bOK = dlwSetEnvVc12(msvc, %f);
+
+    // Microsoft Visual 2013 Express
+    case  'msvc120express' then
+        bOK = dlwSetEnvVc12(msvc, %f);
+
     // Microsoft Visual 2012 Studio Professional
     case  'msvc110pro' then
-    bOK = dlwSetEnvVc11(msvc, %f);
+        bOK = dlwSetEnvVc11(msvc, %f);
 
     // Microsoft Visual 2010 Studio Professional
     case  'msvc100pro' then
-    bOK = dlwSetEnvVc10(msvc, %f);
+        bOK = dlwSetEnvVc10(msvc, %f);
 
     // Microsoft Visual 2012 Express
     case  'msvc110express' then
-    bOK = dlwSetEnvVc11(msvc, %f);
+        bOK = dlwSetEnvVc11(msvc, %f);
 
     // Microsoft Visual 2010 Express
     case  'msvc100express' then
-    bOK = dlwSetEnvVc10(msvc, %f);
+        bOK = dlwSetEnvVc10(msvc, %f);
 
     // Microsoft Visual 2008 Studio Professional
     case  'msvc90pro' then
-    bOK = dlwSetEnvVc90(msvc, %f);
+        bOK = dlwSetEnvVc90(msvc, %f);
 
     // Microsoft Visual 2008 Studio Standard
     case  'msvc90std' then
-    bOK = dlwSetEnvVc90(msvc, %f);
+        bOK = dlwSetEnvVc90(msvc, %f);
 
     // Microsoft Visual 2008 Express
     case  'msvc90express' then
-    bOK = dlwSetEnvVc90(msvc, %f);
+        bOK = dlwSetEnvVc90(msvc, %f);
 
     // Microsoft Visual 2005 Studio Professional
     case  'msvc80pro' then
-    bOK = dlwSetEnvVc80(msvc);
+        bOK = dlwSetEnvVc80(msvc);
 
     // Microsoft Visual 2005 Studio Standard
     case  'msvc80std' then
-    bOK = dlwSetEnvVc80(msvc);
+        bOK = dlwSetEnvVc80(msvc);
     
     // Microsoft Visual 2005 Express
     case  'msvc80express' then
-    bOK = dlwSetEnvVc80(msvc);
+        bOK = dlwSetEnvVc80(msvc);
 
     // Microsoft Visual Studio .NET 2003
     case  'msvc71' then
-    bOK = dlwSetEnvVc71();
+        bOK = dlwSetEnvVc71();
 
     // Microsoft Visual Studio .NET 2002
     case  'msvc70' then
-    bOK = dlwSetEnvVc70();
+        bOK = dlwSetEnvVc70();
   else
   end  
 endfunction
index 2f22f41..ca34c35 100644 (file)
@@ -1,5 +1,6 @@
 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
 // Copyright (C) DIGITEO - 2010 - Allan CORNET
+// Copyright (C) Scilab Enterprises - 2014 - Antoine ELIAS
 //
 // This file must be used under the terms of the CeCILL.
 // This source file is licensed as described in the file COPYING, which
@@ -14,21 +15,30 @@ function MSCompiler = dlwFindMsVcCompiler()
     // We use always last version of MS compiler
 
 
-  if dlwIsVc11Express() then
-    MSCompiler = 'msvc110express';     // Microsoft Visual 2012 Express
-    return;
-  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 dlwIsVc11Pro() then
-    MSCompiler = 'msvc110pro';       // Microsoft Visual 2012 Professional (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 dlwIsVc10Pro() & dlwIsVc10Express() then
+      MSCompiler = 'msvc100express';     // Microsoft Visual 2010 Express with SDK extension
+      return;
+    end
 
     if dlwIsVc10Express() then
         MSCompiler = "msvc100express";     // Microsoft Visual 2010 Express
index 3cb78ef..c7a65e8 100644 (file)
@@ -12,9 +12,14 @@ function vcPath64 = dlwGet64BitPath();
     vcPath64 = [];
     if win64() then
         MSCompiler = findmsvccompiler();
-        if (MSCompiler == 'msvc110express' | MSCompiler == 'msvc100express' | MSCompiler == 'msvc90express') then
+        if (MSCompiler == 'msvc120express' | MSCompiler == 'msvc110express' | MSCompiler == 'msvc100express' | MSCompiler == 'msvc90express') then
             programFilesx86Path = getenv('ProgramFiles(x86)', '');
             if (programFilesx86Path <> '') then
+                if isfile(programFilesx86Path + '\Microsoft Visual Studio 12.0\VC\bin\cl.exe') then
+                    vcPath64 = programFilesx86Path + '\Microsoft Visual Studio 12.0';
+                    return
+                end
+
                 if isfile(programFilesx86Path + '\Microsoft Visual Studio 11.0\VC\bin\cl.exe') then
                     vcPath64 = programFilesx86Path + '\Microsoft Visual Studio 11.0';
                     return
@@ -31,6 +36,9 @@ function vcPath64 = dlwGet64BitPath();
             end
         else
             select MSCompiler,
+            // Microsoft Visual 2013 Studio Professional
+            case  'msvc120pro' then
+                vcPath64 = dlwGetVc12ProPath(); //same as VS2012
             // Microsoft Visual 2012 Studio Professional
             case  'msvc110pro' then
                 vcPath64 = dlwGetVc11ProPath();
diff --git a/scilab/modules/dynamic_link/macros/windows/dlwGetVc12ExpressPath.sci b/scilab/modules/dynamic_link/macros/windows/dlwGetVc12ExpressPath.sci
new file mode 100644 (file)
index 0000000..9ff180a
--- /dev/null
@@ -0,0 +1,28 @@
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) Scilab Enterprises - 2014 - Antoine ELIAS
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution.  The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+
+//=============================================================================
+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
+
+  // 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/dlwGetVc12ProPath.sci b/scilab/modules/dynamic_link/macros/windows/dlwGetVc12ProPath.sci
new file mode 100644 (file)
index 0000000..ace6f6c
--- /dev/null
@@ -0,0 +1,29 @@
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) Scilab Enterprises - 2014 - Antoine ELIAS
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution.  The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+
+//=============================================================================
+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
+
+endfunction
+//=============================================================================
diff --git a/scilab/modules/dynamic_link/macros/windows/dlwIsVc12Express.sci b/scilab/modules/dynamic_link/macros/windows/dlwIsVc12Express.sci
new file mode 100644 (file)
index 0000000..8a38be3
--- /dev/null
@@ -0,0 +1,20 @@
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) Scilab Enterprises - 2014 - Antoine ELIAS
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution.  The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+
+//=============================================================================
+function bOK = dlwIsVc12Express()
+    bOK = %f;
+    try
+        if winqueryreg('key', 'HKLM', 'Software\Microsoft\DevDiv\wdexpress\Servicing\12.0') <> [] then
+            bOK = %t;
+        end
+    catch
+    end
+endfunction
+//=============================================================================
diff --git a/scilab/modules/dynamic_link/macros/windows/dlwIsVc12Pro.sci b/scilab/modules/dynamic_link/macros/windows/dlwIsVc12Pro.sci
new file mode 100644 (file)
index 0000000..3ac132c
--- /dev/null
@@ -0,0 +1,21 @@
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) Scilab Enterprises - 2014 - Antoine ELIAS
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution.  The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+
+//=============================================================================
+function bOK = dlwIsVc12Pro()
+    bOK = %f;
+    try
+        if winqueryreg('HKLM', 'Software\Microsoft\DevDiv\vs\Servicing\12.0\devenv', "install") == 1  & ...
+                dlwIsVc12Express() == %f then
+            bOK = %t;
+        end
+    catch
+    end
+endfunction
+//=============================================================================
diff --git a/scilab/modules/dynamic_link/macros/windows/dlwSetEnvCommonVc12.sci b/scilab/modules/dynamic_link/macros/windows/dlwSetEnvCommonVc12.sci
new file mode 100644 (file)
index 0000000..f4408a9
--- /dev/null
@@ -0,0 +1,195 @@
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) Scilab Enterprises - 2014 - Antoine ELIAS
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution.  The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+
+//=============================================================================
+function bOK = dlwSetEnvCommonVc12(MSVSDir, IsExpress, bWin64)
+    bOK = %F;
+
+    windowsSdkPath = dlwGetSdkPath();
+    if (windowsSdkPath <> []) then
+        err = setenv("WindowsSdkDir", windowsSdkPath);
+    else
+        windowsSdkPath = "";
+    end
+
+    err = setenv("VSINSTALLDIR", MSVSDir);
+    if (err == %F) then
+        bOK = %F;
+        return
+    end
+
+    DevEnvDir = MSVSDir + "\Common7\IDE";
+    err = setenv("DevEnvDir", DevEnvDir);
+    if (err == %F) then
+        bOK = %F;
+        return
+    end
+
+    err = setenv("VCINSTALLDIR", MSVSDir + "\VC\");
+    if (err == %F) then
+        bOK = %F;
+        return
+    end
+
+    PATH = getenv("PATH", "");
+    INCLUDE = getenv("INCLUDE", "");
+    LIB = getenv("LIB", "");
+    LIBPATH = getenv("LIBPATH", "");
+
+    if bWin64 then
+        PATH = getNewPATHx64(PATH, MSVSDir, windowsSdkPath, IsExpress);
+        INCLUDE = getNewINCLUDEx64(INCLUDE, MSVSDir, windowsSdkPath, IsExpress);
+        LIB = getNewLIBx64(LIB, MSVSDir, windowsSdkPath, IsExpress);
+        LIBPATH = getNewLIBPATHx64(LIBPATH, MSVSDir, windowsSdkPath, IsExpress);
+    else
+        PATH = getNewPATHx86(PATH, MSVSDir, windowsSdkPath, IsExpress);
+        INCLUDE = getNewINCLUDEx86(INCLUDE, MSVSDir, windowsSdkPath, IsExpress);
+        LIB = getNewLIBx86(LIB, MSVSDir, windowsSdkPath, IsExpress);
+        LIBPATH = getNewLIBPATHx86(LIBPATH, MSVSDir, windowsSdkPath, IsExpress);
+    end
+
+    err = setenv("PATH", PATH);
+    if (err == %F) then
+        bOK = %F;
+        return
+    end
+
+    err = setenv("INCLUDE", INCLUDE);
+    if (err == %F) then
+        bOK = %F;
+        return
+    end
+
+    err = setenv("LIB", LIB);
+    if (err == %F) then
+        bOK = %F;
+        return
+    end
+
+    err = setenv("LIBPATH", LIBPATH);
+    if (err == %F) then
+        bOK = %F;
+        return
+    end
+
+    bOK = %T;
+endfunction
+//=============================================================================
+function newLIB = getNewLIBx64(LIB, msvsPath, sdkPath, bIsExpress)
+    newLIB = "";
+
+    if bIsExpress then
+        Vc64Path = dlwGet64BitPath();
+        newLIB = Vc64Path + "\VC\LIB\amd64" + pathsep();
+    else
+        newLIB = msvsPath + "\VC\ATLMFC\LIB\amd64" + pathsep() + ..
+        msvsPath + "\VC\LIB\amd64" + pathsep();
+    end
+
+    newLIB = newLIB + ..
+    sdkPath + "\lib\x64" + pathsep() + LIB + pathsep() + ..
+    getenv("PROGRAMFILES(X86)") + "\Windows Kits\8.1\Lib\winv6.3\um\x64\;";
+endfunction
+//=============================================================================
+function newLIB = getNewLIBx86(LIB, msvsPath, sdkPath, bIsExpress)
+    newLIB = "";
+    if ~bIsExpress then
+        newLIB =  msvsPath + filesep() + "VC\ATLMFC\LIB" + pathsep();
+    end
+    newLIB = newLIB + ..
+    msvsPath + filesep() + "VC\LIB" + pathsep() + ..
+    sdkPath + filesep() + "lib" + pathsep() + ..
+    LIB + pathsep() + ..
+    getenv("PROGRAMFILES") + "\Windows Kits\8.1\Lib\winv6.3\um\x86\;";
+endfunction
+//=============================================================================
+function newPATH = getNewPATHx64(PATH, msvsPath, sdkPath, bIsExpress)
+    newPATH = "";
+
+    if bIsExpress then
+        newPATH = msvsPath + "\VC\BIN\x86_amd64" + pathsep();
+        newPATH = newPATH + msvsPath + "\VC\BIN" + pathsep();
+    else
+        newPATH = msvsPath + "\VC\BIN\amd64" + pathsep();
+    end
+
+    newPATH = newPATH + ..
+    msvsPath + "\VC\VCPackages" + pathsep() + ..
+    msvsPath + "\Common7\IDE" + pathsep() + ..
+    msvsPath + "\Common7\Tools" + pathsep() + ..
+    msvsPath + "\Common7\Tools\bin" + pathsep() + ..
+    sdkPath + "\bin\x64" + pathsep() + ..
+    sdkPath + "\bin\win64\x64" + pathsep() + ..
+    sdkPath + "\bin" + pathsep() + PATH;
+endfunction
+//=============================================================================
+function newPATH = getNewPATHx86(PATH, msvsPath, sdkPath, bIsExpress)
+    newPATH = msvsPath + "\Common7\IDE\" + pathsep() + ..
+    msvsPath + "\VC\bin" + pathsep() + ..
+    msvsPath + "\Common7\Tools"+ pathsep() + ..
+    msvsPath + "\VC\VCPackages" + pathsep() + ..
+    sdkPath + "\bin" + pathsep() + PATH + pathsep();
+endfunction
+//=============================================================================
+function newLIBPATH = getNewLIBPATHx64(LIBPATH, msvsPath, sdkPath, bIsExpress)
+    newLIBPATH = "";
+
+    if bIsExpress then
+        Vc64Path = dlwGet64BitPath();
+        newLIBPATH = Vc64Path +  "\VC\LIB\amd64" + pathsep() + LIBPATH;
+    else
+        newLIBPATH = msvsPath + "\VC\ATLMFC\LIB\amd64" + pathsep() + ..
+        msvsPath + "\VC\LIB\amd64" + pathsep() + LIBPATH;
+    end
+
+endfunction
+//=============================================================================
+function newLIBPATH = getNewLIBPATHx86(LIBPATH, msvsPath, sdkPath, bIsExpress)
+    newLIBPATH = "";
+
+    if ~bIsExpress then
+        newLIBPATH = msvsPath + "\VC\ATLMFC\LIB" + pathsep();
+    end
+
+    newLIBPATH = newLIBPATH + ..
+    msvsPath + "\VC\LIB";
+endfunction
+//=============================================================================
+function newINCLUDE = getNewINCLUDEx64(INCLUDE, msvsPath, sdkPath, bIsExpress)
+    newINCLUDE = "";
+    if bIsExpress then
+        Vc64Path = dlwGet64BitPath();
+        newINCLUDE = Vc64Path + "\VC\INCLUDE" + pathsep();
+    else
+        newINCLUDE = msvsPath + "\VC\INCLUDE" + pathsep() + ..
+        msvsPath + "\VC\ATLMFC\INCLUDE" + pathsep();
+    end
+
+    newINCLUDE = newINCLUDE + ..
+    sdkPath + "\include" + pathsep() + INCLUDE + ..
+    getenv("PROGRAMFILES(X86)") + "\Windows Kits\8.0\Include\um;" + ..
+    getenv("PROGRAMFILES(X86)") + "\Windows Kits\8.0\Include\shared;";
+
+endfunction
+//=============================================================================
+function newINCLUDE = getNewINCLUDEx86(INCLUDE, msvsPath, sdkPath, bIsExpress)
+    newINCLUDE = "";
+
+    if ~bIsExpress then
+        newINCLUDE = msvsPath + "\VC\ATLMFC\INCLUDE"  + pathsep();
+    end
+
+    newINCLUDE = newINCLUDE + ..
+    msvsPath + "\VC\INCLUDE"  + pathsep() + ..
+    sdkPath + "\include" + pathsep() + INCLUDE + ..
+    getenv("PROGRAMFILES") + "\Windows Kits\8.0\Include\um;" + ..
+    getenv("PROGRAMFILES") + "\Windows Kits\8.0\Include\shared;";
+    ;
+endfunction
+//=============================================================================
diff --git a/scilab/modules/dynamic_link/macros/windows/dlwSetEnvVc12.sci b/scilab/modules/dynamic_link/macros/windows/dlwSetEnvVc12.sci
new file mode 100644 (file)
index 0000000..5ab3714
--- /dev/null
@@ -0,0 +1,39 @@
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) Scilab Enterprises - 2014 - Antoine ELIAS
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution.  The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+
+//=============================================================================
+function bOK = dlwSetEnvVc12(msCompiler, bWin64)
+  bOK = %F;
+  MSVSDir = '';
+  select msCompiler
+    case 'msvc120pro'
+      MSVSDir = dlwGetVc12ProPath();
+    case 'msvc120express'
+      MSVSDir = dlwGetVc12ExpressPath();
+  else
+    return
+  end
+
+  // MS compiler path is wrong
+  if MSVSDir == [] then
+    return
+  end
+
+  IsExpress = (msCompiler == 'msvc120express');
+
+  VS110COMNTOOLS = MSVSDir + '\Common7\Tools\'
+  if ~setenv('VS120COMNTOOLS', VS110COMNTOOLS) then
+    bOK = %F;
+    return
+  end
+
+  bOK = dlwSetEnvCommonVc12(MSVSDir, IsExpress, bWin64);
+
+endfunction
+//=============================================================================
index 5c9c273..b36df54 100644 (file)
@@ -61,6 +61,10 @@ USE_F2C=NO
 !ELSE
 USE_F2C=NO
 !ENDIF
+!IF "$(IFORT_COMPILER14)" == ""
+!ELSE
+USE_F2C=NO
+!ENDIF
 
 #==================================================
 # if USE_F2C is set to NO we will use the following Fortran compiler (i.e Intel Fortran 10.x)