blob: f2b7a2429d2baf26739148e76c31072f7d75368e [file] [log] [blame]
Sean Callananb1e1c622014-12-05 01:15:04 +00001#! /usr/bin/env python
2
3# package-clang-headers.py
4#
5# The Clang module loader depends on built-in headers for the Clang compiler.
6# We grab these from the Clang build and move them into the LLDB module.
7
8# TARGET_DIR is where the lldb framework/shared library gets put.
9# LLVM_BUILD_DIR is where LLVM and Clang got built
10# LLVM_BUILD_DIR/lib/clang should exist and contain headers
11
12import os
13import re
14import shutil
15import sys
16
17if len(sys.argv) != 3:
18 print "usage: " + sys.argv[0] + " TARGET_DIR LLVM_BUILD_DIR"
19 sys.exit(1)
20
21target_dir = sys.argv[1]
22llvm_build_dir = sys.argv[2]
23
24if not os.path.isdir(target_dir):
25 print target_dir + " doesn't exist"
26 sys.exit(1)
27
28if not os.path.isdir(llvm_build_dir):
29 print llvm_build_dir + " doesn't exist"
30 sys.exit(1)
31
32resources = os.path.join(target_dir, "LLDB.framework", "Resources")
33
34if not os.path.isdir(resources):
35 print resources + " must exist"
36 sys.exit(1)
37
38clang_dir = os.path.join(llvm_build_dir, "lib", "clang")
39
40if not os.path.isdir(clang_dir):
41 print clang_dir + " must exist"
42 sys.exit(1)
43
44version_dir = None
45
46for subdir in os.listdir(clang_dir):
47 if (re.match("^[0-9]+(\.[0-9]+)*$", subdir)):
48 version_dir = os.path.join(clang_dir, subdir)
49 break
50
51if version_dir == None:
52 print "Couldn't find a subdirectory of the form #(.#)... in " + clang_dir
53 sys.exit(1)
54
55if not os.path.isdir(version_dir):
56 print version_dir + " is not a directory"
57 sys.exit(1)
58
59# Just checking... we're actually going to copy all of version_dir
60include_dir = os.path.join(version_dir, "include")
61
62if not os.path.isdir(include_dir):
63 print version_dir + " is not a directory"
64 sys.exit(1)
65
66clang_resources = os.path.join(resources, "Clang")
67
68if os.path.isdir(clang_resources):
69 shutil.rmtree(clang_resources)
70
71shutil.copytree(version_dir, clang_resources)