You've already forked linux-packaging-mono
							
							
		
			
				
	
	
		
			83 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			83 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| #! /usr/bin/env python
 | |
| 
 | |
| # package-clang-headers.py
 | |
| #
 | |
| # The Clang module loader depends on built-in headers for the Clang compiler.
 | |
| # We grab these from the Clang build and move them into the LLDB module.
 | |
| 
 | |
| # TARGET_DIR is where the lldb framework/shared library gets put.
 | |
| # LLVM_BUILD_DIR is where LLVM and Clang got built
 | |
| # LLVM_BUILD_DIR/lib/clang should exist and contain headers
 | |
| 
 | |
| import os
 | |
| import re
 | |
| import shutil
 | |
| import sys
 | |
| 
 | |
| import lldbbuild
 | |
| 
 | |
| if len(sys.argv) != 3:
 | |
|     print "usage: " + sys.argv[0] + " TARGET_DIR LLVM_BUILD_DIR"
 | |
|     sys.exit(1)
 | |
| 
 | |
| target_dir = sys.argv[1]
 | |
| llvm_build_dir = lldbbuild.expected_package_build_path_for("llvm")
 | |
| 
 | |
| if not os.path.isdir(target_dir):
 | |
|     print target_dir + " doesn't exist"
 | |
|     sys.exit(1)
 | |
| 
 | |
| if not os.path.isdir(llvm_build_dir):
 | |
|     llvm_build_dir = re.sub("-macosx-", "-iphoneos-", llvm_build_dir)
 | |
| 
 | |
| if not os.path.isdir(llvm_build_dir):
 | |
|     llvm_build_dir = re.sub("-iphoneos-", "-appletvos-", llvm_build_dir)
 | |
| 
 | |
| if not os.path.isdir(llvm_build_dir):
 | |
|     llvm_build_dir = re.sub("-appletvos-", "-watchos-", llvm_build_dir)
 | |
| 
 | |
| if not os.path.isdir(llvm_build_dir):
 | |
|     print llvm_build_dir + " doesn't exist"
 | |
|     sys.exit(1)
 | |
| 
 | |
| resources = os.path.join(target_dir, "LLDB.framework", "Resources")
 | |
| 
 | |
| if not os.path.isdir(resources):
 | |
|     print resources + " must exist"
 | |
|     sys.exit(1)
 | |
| 
 | |
| clang_dir = os.path.join(llvm_build_dir, "lib", "clang")
 | |
| 
 | |
| if not os.path.isdir(clang_dir):
 | |
|     print clang_dir + " must exist"
 | |
|     sys.exit(1)
 | |
| 
 | |
| version_dir = None
 | |
| 
 | |
| for subdir in os.listdir(clang_dir):
 | |
|     if (re.match("^[0-9]+(\.[0-9]+)*$", subdir)):
 | |
|         version_dir = os.path.join(clang_dir, subdir)
 | |
|         break
 | |
| 
 | |
| if version_dir is None:
 | |
|     print "Couldn't find a subdirectory of the form #(.#)... in " + clang_dir
 | |
|     sys.exit(1)
 | |
| 
 | |
| if not os.path.isdir(version_dir):
 | |
|     print version_dir + " is not a directory"
 | |
|     sys.exit(1)
 | |
| 
 | |
| # Just checking... we're actually going to copy all of version_dir
 | |
| include_dir = os.path.join(version_dir, "include")
 | |
| 
 | |
| if not os.path.isdir(include_dir):
 | |
|     print version_dir + " is not a directory"
 | |
|     sys.exit(1)
 | |
| 
 | |
| clang_resources = os.path.join(resources, "Clang")
 | |
| 
 | |
| if os.path.isdir(clang_resources):
 | |
|     shutil.rmtree(clang_resources)
 | |
| 
 | |
| shutil.copytree(version_dir, clang_resources)
 |