1693e01c9103b21d952f3c7f2bebc87103a03c531kjellander@webrtc.org#!/usr/bin/env python
2693e01c9103b21d952f3c7f2bebc87103a03c531kjellander@webrtc.org#
3693e01c9103b21d952f3c7f2bebc87103a03c531kjellander@webrtc.org# Copyright (c) 2015 The WebRTC project authors. All Rights Reserved.
4693e01c9103b21d952f3c7f2bebc87103a03c531kjellander@webrtc.org#
5693e01c9103b21d952f3c7f2bebc87103a03c531kjellander@webrtc.org# Use of this source code is governed by a BSD-style license
6693e01c9103b21d952f3c7f2bebc87103a03c531kjellander@webrtc.org# that can be found in the LICENSE file in the root of the source
7693e01c9103b21d952f3c7f2bebc87103a03c531kjellander@webrtc.org# tree. An additional intellectual property rights grant can be found
8693e01c9103b21d952f3c7f2bebc87103a03c531kjellander@webrtc.org# in the file PATENTS.  All contributing project authors may
9693e01c9103b21d952f3c7f2bebc87103a03c531kjellander@webrtc.org# be found in the AUTHORS file in the root of the source tree.
10693e01c9103b21d952f3c7f2bebc87103a03c531kjellander@webrtc.org
11693e01c9103b21d952f3c7f2bebc87103a03c531kjellander@webrtc.org"""Searches for DirectX SDK installation and prints full path to it."""
12693e01c9103b21d952f3c7f2bebc87103a03c531kjellander@webrtc.org
13693e01c9103b21d952f3c7f2bebc87103a03c531kjellander@webrtc.orgimport os
14693e01c9103b21d952f3c7f2bebc87103a03c531kjellander@webrtc.orgimport subprocess
15693e01c9103b21d952f3c7f2bebc87103a03c531kjellander@webrtc.orgimport sys
16693e01c9103b21d952f3c7f2bebc87103a03c531kjellander@webrtc.org
17693e01c9103b21d952f3c7f2bebc87103a03c531kjellander@webrtc.org
18693e01c9103b21d952f3c7f2bebc87103a03c531kjellander@webrtc.orgdef main():
19693e01c9103b21d952f3c7f2bebc87103a03c531kjellander@webrtc.org  sys.stdout.write(FindDirectXInstallation())
20693e01c9103b21d952f3c7f2bebc87103a03c531kjellander@webrtc.org  return 0
21693e01c9103b21d952f3c7f2bebc87103a03c531kjellander@webrtc.org
22693e01c9103b21d952f3c7f2bebc87103a03c531kjellander@webrtc.org
23693e01c9103b21d952f3c7f2bebc87103a03c531kjellander@webrtc.orgdef FindDirectXInstallation():
24693e01c9103b21d952f3c7f2bebc87103a03c531kjellander@webrtc.org  """Try to find an installation location for the DirectX SDK. Check for the
25693e01c9103b21d952f3c7f2bebc87103a03c531kjellander@webrtc.org  standard environment variable, and if that doesn't exist, try to find
26693e01c9103b21d952f3c7f2bebc87103a03c531kjellander@webrtc.org  via the registry. Returns empty string if not found in either location."""
27693e01c9103b21d952f3c7f2bebc87103a03c531kjellander@webrtc.org
28693e01c9103b21d952f3c7f2bebc87103a03c531kjellander@webrtc.org  dxsdk_dir = os.environ.get('DXSDK_DIR')
29693e01c9103b21d952f3c7f2bebc87103a03c531kjellander@webrtc.org  if dxsdk_dir:
30693e01c9103b21d952f3c7f2bebc87103a03c531kjellander@webrtc.org    return dxsdk_dir
31693e01c9103b21d952f3c7f2bebc87103a03c531kjellander@webrtc.org
32693e01c9103b21d952f3c7f2bebc87103a03c531kjellander@webrtc.org  # Setup params to pass to and attempt to launch reg.exe.
33693e01c9103b21d952f3c7f2bebc87103a03c531kjellander@webrtc.org  cmd = ['reg.exe', 'query', r'HKLM\Software\Microsoft\DirectX', '/s']
34693e01c9103b21d952f3c7f2bebc87103a03c531kjellander@webrtc.org  p = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
35693e01c9103b21d952f3c7f2bebc87103a03c531kjellander@webrtc.org  for line in p.communicate()[0].splitlines():
36693e01c9103b21d952f3c7f2bebc87103a03c531kjellander@webrtc.org    if 'InstallPath' in line:
37693e01c9103b21d952f3c7f2bebc87103a03c531kjellander@webrtc.org      return line.split('    ')[3] + "\\"
38693e01c9103b21d952f3c7f2bebc87103a03c531kjellander@webrtc.org
39693e01c9103b21d952f3c7f2bebc87103a03c531kjellander@webrtc.org  return ''
40693e01c9103b21d952f3c7f2bebc87103a03c531kjellander@webrtc.org
41693e01c9103b21d952f3c7f2bebc87103a03c531kjellander@webrtc.org
42693e01c9103b21d952f3c7f2bebc87103a03c531kjellander@webrtc.orgif __name__ == '__main__':
43693e01c9103b21d952f3c7f2bebc87103a03c531kjellander@webrtc.org  sys.exit(main())
44