9b6cdf6ca195ef48684f12f77b7a9b68fb7092a8
[scilab.git] / scilab / modules / dynamic_link / macros / windows / dlwGetSdkPath.sci
1 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
2 // Copyright (C) DIGITEO - 2010-2011 - Allan CORNET
3 //
4 // This file must be used under the terms of the CeCILL.
5 // This source file is licensed as described in the file COPYING, which
6 // you should have received as part of this distribution.  The terms
7 // are also available at
8 // http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
9
10 //=============================================================================
11 function SDKpath = dlwGetSdkPath()
12
13     SDKpath = [];
14
15     entries = [
16         "Software\Microsoft\Microsoft SDKs\Windows\v8.0A" "InstallationFolder" ; .. // Windows 8 A
17         "Software\Microsoft\Microsoft SDKs\Windows\v8.0" "InstallationFolder" ; .. // Windows 8    
18         "Software\Microsoft\Microsoft SDKs\Windows\v7.0" "InstallationFolder"; .. // Microsoft Windows SDK 7.0
19         "Software\Microsoft\Microsoft SDKs\Windows\v7.0A" "InstallationFolder"; .. // Microsoft Windows SDK 7.0A
20         "Software\Microsoft\Microsoft SDKs\Windows\v7.1" "InstallationFolder"; .. // Microsoft Windows SDK 7.1
21         "Software\Microsoft\Microsoft SDKs\Windows" "CurrentInstallFolder" ; .. // Vista & Seven SDK
22         "Software\Microsoft\MicrosoftSDK\InstalledSDKs\D2FF9F89-8AA2-4373-8A31-C838BF4DBBE1" "Install Dir" ; .. // Windows 2003 R2 SDK
23         "Software\Microsoft\MicrosoftSDK\InstalledSDKs\8F9E5EF3-A9A5-491B-A889-C58EFFECE8B3" "Install Dir"]; // Windows 2003 SDK
24
25     for i = 1:size(entries(:,1),"*")
26         err = execstr("SDKpath = winqueryreg(""HKEY_LOCAL_MACHINE"", entries(i,1), entries(i,2))", "errcatch");
27         // remove last file separator if it exists
28         if err == 0 & SDKpath <> [] then
29             SDKpath = pathconvert(SDKpath, %f, %t);
30             // We check that returned path exists
31             // case: install and uninstall sdk, uninstaller does not remove registry key
32             if isdir(SDKpath) then
33                 break;
34             else
35                 SDKpath = [];
36             end
37         else
38             errclear();
39         end
40     end
41 endfunction
42 //=============================================================================