Bläddra i källkod

Merge pull request #688 from Green-Sky/only_build_needed_llvm_parts

[Enhancement] llvm: only build "needed" parts
Brian Fiete 4 år sedan
förälder
incheckning
9f0295013b
2 ändrade filer med 16 tillägg och 14 borttagningar
  1. 15 14
      extern/llvm_build.sh
  2. 1 0
      extern/llvm_targets.txt

+ 15 - 14
extern/llvm_build.sh

@@ -2,39 +2,40 @@
 set -e
 set -e
 
 
 if [ ! -d llvm-project_11_0_0 ]; then
 if [ ! -d llvm-project_11_0_0 ]; then
-  if [ -f llvm-11.0.0.src.tar.xz ]; then # if user downloaded llvm-11.0.0.src.tar.xz then use it instead
-	tar -xf llvm-11.0.0.src.tar.xz
-	mkdir llvm-project_11_0_0
-	mv llvm-11.0.0.src llvm-project_11_0_0/llvm
-  else # shallow git clone llvm repo if llvm-11.0.0.src.tar.xz does not exists 
-	git clone --depth 1 --branch llvmorg-11.0.0 https://github.com/llvm/llvm-project.git llvm-project_11_0_0
-  fi
+	if [ -f llvm-11.0.0.src.tar.xz ]; then # if user downloaded llvm-11.0.0.src.tar.xz then use it instead
+		tar -xf llvm-11.0.0.src.tar.xz
+		mkdir llvm-project_11_0_0
+		mv llvm-11.0.0.src llvm-project_11_0_0/llvm
+	else # shallow git clone llvm repo if llvm-11.0.0.src.tar.xz does not exists
+		git clone --depth 1 --branch llvmorg-11.0.0 https://github.com/llvm/llvm-project.git llvm-project_11_0_0
+	fi
 fi #end if llvm-project_11_0_0 exists
 fi #end if llvm-project_11_0_0 exists
 
 
 if [ ! -d llvm_linux_11_0_0 ]; then
 if [ ! -d llvm_linux_11_0_0 ]; then
-	mkdir llvm_linux_11_0_0	
+	mkdir llvm_linux_11_0_0
 fi
 fi
 
 
 if [ ! -d llvm_linux_11_0_0/bin ]; then
 if [ ! -d llvm_linux_11_0_0/bin ]; then
 	cd llvm_linux_11_0_0
 	cd llvm_linux_11_0_0
-	cmake ../llvm-project_11_0_0/llvm
-	cmake --build .
+	cmake ../llvm-project_11_0_0/llvm -DLLVM_TARGETS_TO_BUILD="AArch64;ARM;X86;WebAssembly" -DCMAKE_BUILD_TYPE:String="Debug"
+	cmake --build . -t $(cat ../llvm_targets.txt)
 	cd ..
 	cd ..
 fi
 fi
 
 
 if [ ! -d llvm_linux_rel_11_0_0 ]; then
 if [ ! -d llvm_linux_rel_11_0_0 ]; then
-	mkdir llvm_linux_rel_11_0_0	
+	mkdir llvm_linux_rel_11_0_0
 fi
 fi
 
 
 if [ ! -d llvm_linux_rel_11_0_0/bin ]; then
 if [ ! -d llvm_linux_rel_11_0_0/bin ]; then
 	cd llvm_linux_rel_11_0_0
 	cd llvm_linux_rel_11_0_0
-	cmake ../llvm-project_11_0_0/llvm -DCMAKE_BUILD_TYPE:String=Release
-	cmake --build .
+	cmake ../llvm-project_11_0_0/llvm -DLLVM_TARGETS_TO_BUILD="AArch64;ARM;X86;WebAssembly" -DCMAKE_BUILD_TYPE:String="Release"
+	cmake --build . -t $(cat ../llvm_targets.txt)
 	cd ..
 	cd ..
 fi
 fi
-	
+
 if [ ! -d ../IDE/dist/llvm/bin ]; then
 if [ ! -d ../IDE/dist/llvm/bin ]; then
 	mkdir ../IDE/dist/llvm
 	mkdir ../IDE/dist/llvm
 	mkdir ../IDE/dist/llvm/bin
 	mkdir ../IDE/dist/llvm/bin
 fi
 fi
 cp llvm_linux_rel_11_0_0/bin/llvm-ar ../IDE/dist/llvm/bin
 cp llvm_linux_rel_11_0_0/bin/llvm-ar ../IDE/dist/llvm/bin
+

+ 1 - 0
extern/llvm_targets.txt

@@ -0,0 +1 @@
+llvm-ar llvm-config gtest_main LLVMX86Disassembler LLVMMCDisassembler LLVMSupport LLVMX86Info LLVMX86Desc LLVMMC LLVMObject LLVMCore LLVMBitReader LLVMAsmParser LLVMMCParser LLVMCodeGen LLVMTarget LLVMX86CodeGen LLVMScalarOpts LLVMInstCombine LLVMSelectionDAG LLVMProfileData LLVMTransformUtils LLVMAnalysis LLVMX86AsmParser LLVMAsmPrinter LLVMBitWriter LLVMVectorize LLVMipo LLVMInstrumentation LLVMDebugInfoDWARF LLVMDebugInfoPDB LLVMDebugInfoCodeView LLVMGlobalISel LLVMBinaryFormat LLVMCoverage LLVMDebugInfoGSYM LLVMDWARFLinker LLVMRuntimeDyld LLVMExecutionEngine LLVMMCJIT LLVMFuzzMutate LLVMInterpreter LLVMLineEditor LLVMExtensions LLVMObjCARCOpts LLVMCoroutines LLVMPasses LLVMLTO LLVMMCA LLVMMIRParser LLVMObjectYAML LLVMJITLink LLVMOrcError LLVMOrcJIT LLVMSymbolize LLVMTestingSupport LLVMWindowsManifest LLVMXRay LLVMARMCodeGen LLVMARMDisassembler LLVMAArch64CodeGen LLVMAArch64Disassembler LLVMWebAssemblyCodeGen LLVMWebAssemblyDisassembler