mirror of https://github.com/mono/CppSharp.git
11 changed files with 268 additions and 271 deletions
@ -1,26 +0,0 @@
@@ -1,26 +0,0 @@
|
||||
rmdir /s /q out |
||||
mkdir out |
||||
mkdir out\tools\clang |
||||
mkdir out\tools\clang\lib\CodeGen |
||||
mkdir out\tools\clang\lib\Driver |
||||
mkdir out\build\ |
||||
mkdir out\build\tools\clang\ |
||||
|
||||
set rbcopy=%systemroot%\System32\robocopy /NDL /NFL /NJH /NJS |
||||
set dircopy=%rbcopy% /E |
||||
|
||||
%dircopy% include\ out\include |
||||
%dircopy% build\include\ out\build\include |
||||
%dircopy% build\RelWithDebInfo\lib out\build\RelWithDebInfo\lib |
||||
|
||||
%dircopy% tools\clang\include\ out\tools\clang\include |
||||
copy /Y tools\clang\lib\CodeGen\*.h out\tools\clang\lib\CodeGen >nul |
||||
copy /Y tools\clang\lib\Driver\*.h out\tools\clang\lib\Driver >nul |
||||
%dircopy% build\tools\clang\include\ out\build\tools\clang\include |
||||
|
||||
del out\build\RelWithDebInfo\lib\LLVM*ObjCARCOpts*.lib |
||||
del out\build\RelWithDebInfo\lib\clang*ARC*.lib |
||||
del out\build\RelWithDebInfo\lib\clang*Matchers*.lib |
||||
del out\build\RelWithDebInfo\lib\clang*Rewrite*.lib |
||||
del out\build\RelWithDebInfo\lib\clang*StaticAnalyzer*.lib |
||||
del out\build\RelWithDebInfo\lib\clang*Tooling*.lib |
@ -1,118 +0,0 @@
@@ -1,118 +0,0 @@
|
||||
# -*- mode: ruby -*- |
||||
# vi: set ft=ruby : |
||||
|
||||
$script = <<SCRIPT |
||||
SCRIPT |
||||
|
||||
Vagrant.configure(2) do |config| |
||||
# For a complete reference, please see the online documentation at |
||||
# https://docs.vagrantup.com. |
||||
|
||||
config.vm.box = "ubuntu/trusty64" |
||||
|
||||
#load external box config |
||||
external = File.read 'vmsettings.cfg' |
||||
eval external |
||||
|
||||
# this function fixes errors with ubuntu interactive shell |
||||
config.vm.provision "fix-no-tty", type: "shell" do |s| |
||||
s.privileged = false |
||||
s.inline = "sudo sed -i '/tty/!s/mesg n/tty -s \\&\\& mesg n/' /root/.profile" |
||||
end |
||||
|
||||
#this section runs as root |
||||
config.vm.provision "shell", privileged: true , inline: <<-SHELL |
||||
|
||||
# Add Repos |
||||
apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF |
||||
echo "deb http://download.mono-project.com/repo/debian wheezy main" | sudo tee /etc/apt/sources.list.d/mono-xamarin.list |
||||
|
||||
sudo add-apt-repository ppa:george-edison55/cmake-3.x |
||||
apt-get update |
||||
|
||||
# Build tools |
||||
apt-get install -y git build-essential clang cmake ninja-build |
||||
|
||||
apt-get install -y p7zip-full |
||||
|
||||
# Mono |
||||
apt-get install -y mono-devel |
||||
|
||||
SHELL |
||||
|
||||
#this section runs as normal user |
||||
config.vm.provision "shell", privileged: false , inline: <<-SHELL |
||||
function mkcd () { mkdir -p "$@" && cd "$@"; } |
||||
|
||||
git clone https://github.com/mono/CppSharp.git |
||||
|
||||
cd CppSharp/deps/ |
||||
|
||||
git clone https://github.com/llvm-mirror/llvm.git |
||||
|
||||
cd llvm/ |
||||
|
||||
llvm_commit=`cat ../../build/LLVM-commit` |
||||
git reset --hard $llvm_commit |
||||
|
||||
cd tools/ |
||||
|
||||
git clone https://github.com/llvm-mirror/clang.git |
||||
|
||||
cd clang/ |
||||
|
||||
clang_commit=`cat ../../../../build/Clang-commit` |
||||
git reset --hard $clang_commit |
||||
|
||||
mkcd ../../build |
||||
|
||||
cmake -G Ninja -DCLANG_BUILD_EXAMPLES=false -DCLANG_INCLUDE_DOCS=false -DCLANG_INCLUDE_TESTS=false -DCLANG_INCLUDE_DOCS=false -DCLANG_BUILD_EXAMPLES=false -DLLVM_TARGETS_TO_BUILD="X86" -DLLVM_INCLUDE_EXAMPLES=false -DLLVM_INCLUDE_DOCS=false -DLLVM_INCLUDE_TESTS=false -DCMAKE_BUILD_TYPE=Release .. |
||||
|
||||
ninja |
||||
ninja clang-headers |
||||
|
||||
# make the output package |
||||
cd .. |
||||
if [ -d "out" ]; then rm -rf out; fi |
||||
mkdir out |
||||
mkdir -p out/lib/clang |
||||
mkdir -p out/tools/clang |
||||
mkdir -p out/tools/clang/lib/CodeGen |
||||
mkdir -p out/tools/clang/lib/Driver |
||||
mkdir -p out/build/ |
||||
mkdir -p out/build/lib |
||||
mkdir -p out/build/tools/clang |
||||
mkdir -p out/build/tools/clang/lib |
||||
|
||||
cp -R include/ out/ |
||||
cp -R build/include/ out/build |
||||
cp build/lib/*.a out/build/lib |
||||
|
||||
cp -R tools/clang/include/ out/tools/clang |
||||
cp -R tools/clang/lib/CodeGen/*.h out/tools/clang/lib/CodeGen |
||||
cp -R tools/clang/lib/Driver/*.h out/tools/clang/lib/Driver |
||||
cp -R build/lib/clang out/lib/clang |
||||
cp -R build/tools/clang/include/ out/build/tools/clang |
||||
|
||||
rm out/build/lib/libllvm*ObjCARCOpts*.a |
||||
rm out/build/lib/libclang*ARC*.a |
||||
rm out/build/lib/libclang*Matchers*.a |
||||
rm out/build/lib/libclang*Rewrite*.a |
||||
rm out/build/lib/libclang*StaticAnalyzer*.a |
||||
rm out/build/lib/libclang*Tooling*.a |
||||
|
||||
7z a llvm_linux_x86_64.7z ./out/* |
||||
|
||||
# upload to dropbox |
||||
curl "https://raw.githubusercontent.com/andreafabrizi/Dropbox-Uploader/master/dropbox_uploader.sh" -o dropbox_uploader.sh |
||||
|
||||
echo APPKEY= > ~/.dropbox_uploader |
||||
echo APPSECRET= >> ~/.dropbox_uploader |
||||
echo ACCESS_LEVEL=sandbox >> ~/.dropbox_uploader |
||||
echo OAUTH_ACCESS_TOKEN= >> ~/.dropbox_uploader |
||||
echo OAUTH_ACCESS_TOKEN_SECRET= >> ~/.dropbox_uploader |
||||
|
||||
./dropbox_uploader.sh upload llvm_linux_x86_64.7z llvm_linux_x86_64.7z |
||||
|
||||
SHELL |
||||
end |
@ -1,7 +0,0 @@
@@ -1,7 +0,0 @@
|
||||
# Vm config |
||||
# Config your vm settings here |
||||
|
||||
config.vm.provider "virtualbox" do |v| |
||||
v.memory = 8192 |
||||
v.cpus = 4 |
||||
end |
@ -0,0 +1,117 @@
@@ -0,0 +1,117 @@
|
||||
require "Build" |
||||
require "Utils" |
||||
|
||||
local llvm = "../../deps/llvm/" |
||||
local llvm_build = "../../deps/llvm/" .. os.get() |
||||
|
||||
function clone_llvm() |
||||
local llvm_release = cat("LLVM-commit") |
||||
print("LLVM release: " .. llvm_release) |
||||
|
||||
local clang_release = cat("Clang-commit") |
||||
print("Clang release: " .. clang_release) |
||||
|
||||
if not os.isdir(llvm) then |
||||
git.clone(llvm, "http://llvm.org/git/llvm.git") |
||||
git.checkout(llvm, llvm_release) |
||||
end |
||||
|
||||
if not os.isdir(llvm .. "/tools/clang") then |
||||
git.clone(llvm .. "/tools/clang", "http://llvm.org/git/clang.git") |
||||
git.checkout(llvm .. "/tools/clang", clang_release) |
||||
end |
||||
end |
||||
|
||||
function download_llvm() |
||||
if os.is("windows") then |
||||
http.download("https://dl.dropboxusercontent.com/u/194502/CppSharp/llvm_windows_x86.7z") |
||||
end |
||||
|
||||
-- extract the package |
||||
execute("7z x llvm_windows_x86.7z -o%DEPS_PATH%\llvm -y > nul") |
||||
end |
||||
|
||||
function cmake(gen, conf) |
||||
print(os.getcwd()) |
||||
print(llvm_build) |
||||
os.chdir(llvm_build) |
||||
print(os.getcwd()) |
||||
local cmd = "cmake -G " .. '"' .. gen .. '"' |
||||
.. ' -DCLANG_BUILD_EXAMPLES=false -DCLANG_INCLUDE_DOCS=false -DCLANG_INCLUDE_TESTS=false' |
||||
.. ' -DCLANG_ENABLE_ARCMT=false -DCLANG_ENABLE_REWRITER=false -DCLANG_ENABLE_STATIC_ANALYZER=false' |
||||
.. ' -DLLVM_INCLUDE_EXAMPLES=false -DLLVM_INCLUDE_DOCS=false -DLLVM_INCLUDE_TESTS=false' |
||||
.. ' -DLLVM_TARGETS_TO_BUILD="X86"' |
||||
.. ' -DCMAKE_BUILD_TYPE=' .. conf .. ' ..' |
||||
execute(cmd) |
||||
end |
||||
|
||||
function clean_llvm(llvm_build) |
||||
if os.isdir(llvm_build) then os.rmdir(llvm_build) end |
||||
os.mkdir(llvm_build) |
||||
end |
||||
|
||||
function build_llvm(llvm_build) |
||||
if os.is("windows") then |
||||
cmake("Visual Studio 12 2013", "RelWithDebInfo") |
||||
|
||||
local llvm_sln = path.join(llvm_build, "LLVM.sln") |
||||
msbuild(llvm_sln, "RelWithDebInfo") |
||||
else |
||||
cmake("Ninja", "Release") |
||||
execute("ninja") |
||||
execute("ninja clang-headers") |
||||
end |
||||
end |
||||
|
||||
function package_llvm(conf, llvm, llvm_build) |
||||
local out = "llvm-" .. os.get() .. "-" .. conf |
||||
|
||||
if os.isdir(out) then os.rmdir(out) end |
||||
os.mkdir(out) |
||||
|
||||
os.copydir(llvm .. "/include", out .. "/include") |
||||
os.copydir(llvm_build .. "/include", out .. "/build/include") |
||||
|
||||
local lib_dir = os.is("windows") and "/" .. conf .. "/lib" or "/lib" |
||||
local llvm_build_libdir = llvm_build .. lib_dir |
||||
|
||||
if os.is("windows") then |
||||
os.copydir(llvm_build_libdir, out .. "/build" .. lib_dir, "*.lib") |
||||
else |
||||
os.copydir(llvm_build_libdir, out .. "/build/lib", "*.a") |
||||
end |
||||
|
||||
os.copydir(llvm .. "/tools/clang/include", out .. "/tools/clang/include") |
||||
os.copydir(llvm_build .. "/tools/clang/include", out .. "/build/tools/clang/include") |
||||
|
||||
os.copydir(llvm .. "/tools/clang/lib/CodeGen", out .. "/tools/clang/lib/CodeGen", "*.h") |
||||
os.copydir(llvm .. "/tools/clang/lib/Driver", out .. "/tools/clang/lib/Driver", "*.h") |
||||
|
||||
local out_lib_dir = out .. "/build" .. lib_dir |
||||
if os.is("windows") then |
||||
os.rmfiles(out_lib_dir, "LLVM*ObjCARCOpts*.lib") |
||||
os.rmfiles(out_lib_dir, "clang*ARC*.lib") |
||||
os.rmfiles(out_lib_dir, "clang*Matchers*.lib") |
||||
os.rmfiles(out_lib_dir, "clang*Rewrite*.lib") |
||||
os.rmfiles(out_lib_dir, "clang*StaticAnalyzer*.lib") |
||||
os.rmfiles(out_lib_dir, "clang*Tooling*.lib") |
||||
else |
||||
os.rmfiles(out_lib_dir, "libllvm*ObjCARCOpts*.a") |
||||
os.rmfiles(out_lib_dir, "libclang*ARC*.a") |
||||
os.rmfiles(out_lib_dir, "libclang*Matchers*.a") |
||||
os.rmfiles(out_lib_dir, "libclang*Rewrite*.a") |
||||
os.rmfiles(out_lib_dir, "libclang*StaticAnalyzer*.a") |
||||
os.rmfiles(out_lib_dir, "libclang*Tooling*.a") |
||||
end |
||||
|
||||
return out |
||||
end |
||||
|
||||
function archive_llvm(dir) |
||||
execute("7z a " .. out .. ".7z " .. "./" .. out .. "/*") |
||||
end |
||||
|
||||
clean_llvm(llvm_build) |
||||
build_llvm(llvm_build) |
||||
--local out = package_llvm("RelWithDebInfo", llvm, llvm_build) |
||||
--archive_llvm(out) |
@ -1,26 +0,0 @@
@@ -1,26 +0,0 @@
|
||||
rmdir /s /q out |
||||
mkdir out |
||||
mkdir out\tools\clang |
||||
mkdir out\tools\clang\lib\CodeGen |
||||
mkdir out\tools\clang\lib\Driver |
||||
mkdir out\build\ |
||||
mkdir out\build\tools\clang\ |
||||
|
||||
set rbcopy=%systemroot%\System32\robocopy /NDL /NFL /NJH /NJS |
||||
set dircopy=%rbcopy% /E |
||||
|
||||
%dircopy% include\ out\include |
||||
%dircopy% build\include\ out\build\include |
||||
%dircopy% build\RelWithDebInfo\lib out\build\RelWithDebInfo\lib |
||||
|
||||
%dircopy% tools\clang\include\ out\tools\clang\include |
||||
copy /Y tools\clang\lib\CodeGen\*.h out\tools\clang\lib\CodeGen >nul |
||||
copy /Y tools\clang\lib\Driver\*.h out\tools\clang\lib\Driver >nul |
||||
%dircopy% build\tools\clang\include\ out\build\tools\clang\include |
||||
|
||||
del out\build\RelWithDebInfo\lib\LLVM*ObjCARCOpts*.lib |
||||
del out\build\RelWithDebInfo\lib\clang*ARC*.lib |
||||
del out\build\RelWithDebInfo\lib\clang*Matchers*.lib |
||||
del out\build\RelWithDebInfo\lib\clang*Rewrite*.lib |
||||
del out\build\RelWithDebInfo\lib\clang*StaticAnalyzer*.lib |
||||
del out\build\RelWithDebInfo\lib\clang*Tooling*.lib |
@ -1,31 +0,0 @@
@@ -1,31 +0,0 @@
|
||||
cd ../../deps/llvm |
||||
|
||||
if [ -d "out" ]; then rm -rf out; fi |
||||
mkdir out |
||||
mkdir -p out/lib/clang |
||||
mkdir -p out/tools/clang |
||||
mkdir -p out/tools/clang/lib/CodeGen |
||||
mkdir -p out/tools/clang/lib/Driver |
||||
mkdir -p out/build/ |
||||
mkdir -p out/build/lib |
||||
mkdir -p out/build/tools/clang |
||||
mkdir -p out/build/tools/clang/lib |
||||
|
||||
cp -R include/ out/ |
||||
cp -R build/include/ out/build |
||||
cp build/lib/*.a out/build/lib |
||||
|
||||
cp -R tools/clang/include/ out/tools/clang |
||||
cp -R tools/clang/lib/CodeGen/*.h out/tools/clang/lib/CodeGen |
||||
cp -R tools/clang/lib/Driver/*.h out/tools/clang/lib/Driver |
||||
cp -R build/lib/clang out/lib/clang |
||||
cp -R build/tools/clang/include/ out/build/tools/clang |
||||
|
||||
rm out/build/lib/libllvm*ObjCARCOpts*.a |
||||
rm out/build/lib/libclang*ARC*.a |
||||
rm out/build/lib/libclang*Matchers*.a |
||||
rm out/build/lib/libclang*Rewrite*.a |
||||
rm out/build/lib/libclang*StaticAnalyzer*.a |
||||
rm out/build/lib/libclang*Tooling*.a |
||||
|
||||
7z a llvm_linux_x86_64.7z ./out/* |
@ -0,0 +1,40 @@
@@ -0,0 +1,40 @@
|
||||
# -*- mode: ruby -*- |
||||
# vi: set ft=ruby : |
||||
|
||||
$script = <<SCRIPT |
||||
SCRIPT |
||||
|
||||
Vagrant.configure(2) do |config| |
||||
# For a complete reference, please see the online documentation at |
||||
# https://docs.vagrantup.com. |
||||
|
||||
config.vm.box = "ubuntu/trusty64" |
||||
|
||||
#load external box config |
||||
config.vm.provider "virtualbox" do |vb| |
||||
vb.memory = 8192 |
||||
vb.cpus = 4 |
||||
vb.customize ["setextradata", :id, "VBoxInternal2/SharedFoldersEnableSymlinksCreate//cppsharp","1"] |
||||
end |
||||
|
||||
config.vm.synced_folder "../..", "/cppsharp" |
||||
|
||||
# this function fixes errors with ubuntu interactive shell |
||||
config.vm.provision "fix-no-tty", type: "shell" do |s| |
||||
s.privileged = false |
||||
s.inline = "sudo sed -i '/tty/!s/mesg n/tty -s \\&\\& mesg n/' /root/.profile" |
||||
end |
||||
|
||||
#this section runs as root |
||||
config.vm.provision "shell", privileged: true , inline: <<-SHELL |
||||
|
||||
cd /cppsharp/ |
||||
sudo sh ./build/scripts/Provision.sh |
||||
|
||||
SHELL |
||||
|
||||
#this section runs as normal user |
||||
config.vm.provision "shell", privileged: false , inline: <<-SHELL |
||||
|
||||
SHELL |
||||
end |
Loading…
Reference in new issue