mirror of https://github.com/mono/CppSharp.git
11 changed files with 268 additions and 271 deletions
@ -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 @@ |
|||||||
# -*- 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 @@ |
|||||||
# Vm config |
|
||||||
# Config your vm settings here |
|
||||||
|
|
||||||
config.vm.provider "virtualbox" do |v| |
|
||||||
v.memory = 8192 |
|
||||||
v.cpus = 4 |
|
||||||
end |
|
@ -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 @@ |
|||||||
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 @@ |
|||||||
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 @@ |
|||||||
|
# -*- 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