load("SCI/modules/dynamic_link/macros/windows/lib");
end
- if win64() then
- compiler = findmsvccompiler();
- supported_compiler = ["msvc100pro", ..
- "msvc100express", ..
- "msvc90pro", ..
- "msvc90std", ..
- "msvc90express"];
+ if win64() then
+ compiler = findmsvccompiler();
+ supported_compiler = ['msvc110pro', ..
+ 'msvc110express', ..
+ 'msvc100pro', ..
+ 'msvc100express', ..
+ 'msvc90pro', ..
+ 'msvc90std', ..
+ 'msvc90express'];
if (find(supported_compiler == compiler) <> []) then
MSVCBIN64PATH = dlwGet64BitPath() + filesep() + "VC\bin\amd64";
//=============================================================================
function bOK = dlwConfigureVcx64()
- bOK = %F;
- msvc = findmsvccompiler();
-
- select msvc,
- // Microsoft Visual 2010 Studio Professional
- case "msvc100pro" then
- bOK = dlwSetEnvVc10(msvc, %t);
-
- // Microsoft Visual 2010 Express
- case "msvc100express" then
- bOK = dlwSetEnvVc10(msvc, %t);
-
- // Microsoft Visual 2008 Studio Professional
- case "msvc90pro" then
- bOK = dlwSetEnvVc90(msvc, %t);
-
- // Microsoft Visual 2008 Studio Standard
- case "msvc90std" then
- bOK = dlwSetEnvVc90(msvc, %t);
-
- // Microsoft Visual 2008 Express
- case "msvc90express" then
- bOK = dlwSetEnvVc90(msvc, %t);
- else
- end
+ bOK = %F;
+ msvc = findmsvccompiler();
+
+ select msvc,
+ // Microsoft Visual 2012 Studio Professional
+ case 'msvc110pro' then
+ bOK = dlwSetEnvVc11(msvc, %t);
+
+ // Microsoft Visual 2012 Express
+ case 'msvc110express' then
+ bOK = dlwSetEnvVc11(msvc, %t);
+
+ // Microsoft Visual 2010 Studio Professional
+ case 'msvc100pro' then
+ bOK = dlwSetEnvVc10(msvc, %t);
+
+ // Microsoft Visual 2010 Express
+ case 'msvc100express' then
+ bOK = dlwSetEnvVc10(msvc, %t);
+
+ // Microsoft Visual 2008 Studio Professional
+ case 'msvc90pro' then
+ bOK = dlwSetEnvVc90(msvc, %t);
+
+ // Microsoft Visual 2008 Studio Standard
+ case 'msvc90std' then
+ bOK = dlwSetEnvVc90(msvc, %t);
+
+ // Microsoft Visual 2008 Express
+ case 'msvc90express' then
+ bOK = dlwSetEnvVc90(msvc, %t);
+ else
+ end
endfunction
//=============================================================================
-
-
//=============================================================================
function bOK = dlwConfigureVcx86()
- bOK = %F;
- msvc = findmsvccompiler();
-
- select msvc,
- // Microsoft Visual 2010 Studio Professional
- case "msvc100pro" then
- bOK = dlwSetEnvVc10(msvc, %f);
-
- // Microsoft Visual 2010 Express
- case "msvc100express" then
- bOK = dlwSetEnvVc10(msvc, %f);
-
- // Microsoft Visual 2008 Studio Professional
- case "msvc90pro" then
- bOK = dlwSetEnvVc90(msvc, %f);
-
- // Microsoft Visual 2008 Studio Standard
- case "msvc90std" then
- bOK = dlwSetEnvVc90(msvc, %f);
-
- // Microsoft Visual 2008 Express
- case "msvc90express" then
- bOK = dlwSetEnvVc90(msvc, %f);
-
- // Microsoft Visual 2005 Studio Professional
- case "msvc80pro" then
- bOK = dlwSetEnvVc80(msvc);
-
- // Microsoft Visual 2005 Studio Standard
- case "msvc80std" then
- bOK = dlwSetEnvVc80(msvc);
-
- // Microsoft Visual 2005 Express
- case "msvc80express" then
- bOK = dlwSetEnvVc80(msvc);
-
- // Microsoft Visual Studio .NET 2003
- case "msvc71" then
- bOK = dlwSetEnvVc71();
-
- // Microsoft Visual Studio .NET 2002
- case "msvc70" then
- bOK = dlwSetEnvVc70();
- else
- end
+ bOK = %F;
+ msvc = findmsvccompiler();
+
+ select msvc,
+ // Microsoft Visual 2012 Studio Professional
+ case 'msvc110pro' then
+ bOK = dlwSetEnvVc11(msvc, %f);
+
+ // Microsoft Visual 2010 Studio Professional
+ case 'msvc100pro' then
+ bOK = dlwSetEnvVc10(msvc, %f);
+
+ // Microsoft Visual 2012 Express
+ case 'msvc110express' then
+ bOK = dlwSetEnvVc11(msvc, %f);
+
+ // Microsoft Visual 2010 Express
+ case 'msvc100express' then
+ bOK = dlwSetEnvVc10(msvc, %f);
+
+ // Microsoft Visual 2008 Studio Professional
+ case 'msvc90pro' then
+ bOK = dlwSetEnvVc90(msvc, %f);
+
+ // Microsoft Visual 2008 Studio Standard
+ case 'msvc90std' then
+ bOK = dlwSetEnvVc90(msvc, %f);
+
+ // Microsoft Visual 2008 Express
+ case 'msvc90express' then
+ bOK = dlwSetEnvVc90(msvc, %f);
+
+ // Microsoft Visual 2005 Studio Professional
+ case 'msvc80pro' then
+ bOK = dlwSetEnvVc80(msvc);
+
+ // Microsoft Visual 2005 Studio Standard
+ case 'msvc80std' then
+ bOK = dlwSetEnvVc80(msvc);
+
+ // Microsoft Visual 2005 Express
+ case 'msvc80express' then
+ bOK = dlwSetEnvVc80(msvc);
+
+ // Microsoft Visual Studio .NET 2003
+ case 'msvc71' then
+ bOK = dlwSetEnvVc71();
+
+ // Microsoft Visual Studio .NET 2002
+ case 'msvc70' then
+ bOK = dlwSetEnvVc70();
+ else
+ end
endfunction
//=============================================================================
// We use always last version of MS compiler
- if dlwIsVc10Pro() & dlwIsVc10Express() then
- MSCompiler = "msvc100express"; // Microsoft Visual 2010 Express with SDK extension
+
+ if dlwIsVc11Pro() & dlwIsVc11Express() then
+ MSCompiler = 'msvc110express'; // Microsoft Visual 2012 Express with SDK extension
+ 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
return;
end
- if dlwIsVc10Express() then
- MSCompiler = "msvc100express"; // Microsoft Visual 2010 Express
- return;
- end
-
if dlwIsVc90Pro() then
MSCompiler = "msvc90pro"; // Microsoft Visual 2008 Studio Professional
return;
vcPath64 = [];
end
end
-
- // remove last file separator if it exists
- if vcPath64 <> [] then
- vcPath64 = pathconvert(vcPath64, %f, %t);
end
endfunction
//=============================================================================
vcPath = [];
try
vcPath = winqueryreg('HKEY_LOCAL_MACHINE', ..
- 'Software\Microsoft\VCExpress\11.0\Setup\VC', ..
+ 'Software\Microsoft\VCExpress\11.0\Setup\VS', ..
'ProductDir');
catch
// remove last error on 'winqueryreg' fails
return;
end
- //remove VC in path
- if isdir(vcPath) then
- temp=pwd();cd(vcPath);cd("..");vcPath = pwd() + "\";cd(temp);
- // remove last file separator if it exists
- if vcPath <> [] then
- vcPath = pathconvert(vcPath, %f, %t);
- end
- else
- vcPath = [];
- end
+ // remove last file separator if it exists
+ if vcPath <> [] then
+ vcPath = pathconvert(vcPath, %f, %t);
+ end
endfunction
//=============================================================================
--- /dev/null
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) Scilab Enterprises - 2012 - 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-en.txt
+
+//=============================================================================
+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
+//=============================================================================
--- /dev/null
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) Scilab Enterprises - 2012 - 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-en.txt
+
+//=============================================================================
+function bOK = dlwIsVc11Express()
+ bOK = (dlwGetVc11ExpressPath() <> []);
+endfunction
+//=============================================================================
--- /dev/null
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) DIGITEO - 2010 - Allan CORNET
+//
+// 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-en.txt
+
+//=============================================================================
+function bOK = dlwIsVc11Pro()
+ bOK = (dlwGetVc11ProPath() <> []);
+endfunction
+//=============================================================================
--- /dev/null
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) Scilab Enterprises - 2012 - 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-en.txt
+
+//=============================================================================
+function bOK = dlwSetEnvCommonVc11(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 + ..
+ getenv("PROGRAMFILES(X86)") + "\Windows Kits\8.0\Lib\win8\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 + ..
+ getenv("PROGRAMFILES(X86)") + "\Windows Kits\8.0\Lib\win8\um\x86\;';
+
+endfunction
+//=============================================================================
+function newPATH = getNewPATHx64(PATH, msvsPath, sdkPath, bIsExpress)
+ newPATH = '';
+
+ if bIsExpress then
+ Vc64Path = dlwGet64BitPath();
+ newPATH = Vc64Path + '\VC\BIN\amd64' + 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(X86)") + '\Windows Kits\8.0\Include\um;' + ..
+ getenv("PROGRAMFILES(X86)") + '\Windows Kits\8.0\Include\shared;';
+;
+endfunction
+//=============================================================================
--- /dev/null
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) Scilab Enterprises - 2012 - 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-en.txt
+
+//=============================================================================
+function bOK = dlwSetEnvVc11(msCompiler, bWin64)
+ bOK = %F;
+ MSVSDir = '';
+ select msCompiler
+ case 'msvc110pro'
+ MSVSDir = dlwGetVc11ProPath();
+ case 'msvc110express'
+ MSVSDir = dlwGetVc11ExpressPath();
+ else
+ return
+ end
+
+ // MS compiler path is wrong
+ if MSVSDir == [] then
+ return
+ end
+
+ IsExpress = (msCompiler == 'msvc110express');
+
+ VS110COMNTOOLS = MSVSDir + '\Common7\Tools\'
+ if ~setenv('VS110COMNTOOLS', VS110COMNTOOLS) then
+ bOK = %F;
+ return
+ end
+
+ bOK = dlwSetEnvCommonVc11(MSVSDir, IsExpress, bWin64);
+
+endfunction
+//=============================================================================