Skip to content

Commit

Permalink
Add PackageCompiler project and compilation script
Browse files Browse the repository at this point in the history
This PR adds script for package compilation into binary
  • Loading branch information
Matsievskiy S.V committed Oct 9, 2020
1 parent 131557f commit ef8b14a
Show file tree
Hide file tree
Showing 5 changed files with 87 additions and 0 deletions.
1 change: 1 addition & 0 deletions contrib/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
JuliaLSP_compiled
8 changes: 8 additions & 0 deletions contrib/JuliaLSP/Project.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
name = "JuliaLSP"
uuid = "9488cb22-ff86-4d62-8f4a-077fe1791049"
authors = ["Matsievskiy S.V. <matsievskiysv@gmail.com>"]
version = "0.1.0"

[deps]
LanguageServer = "2b0e0bc5-e4fd-59b4-8912-456d1b03d8d7"
SymbolServer = "cf896787-08d5-524d-9de7-132aaa0cb996"
4 changes: 4 additions & 0 deletions contrib/JuliaLSP/precompile_app.jl
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
using JuliaLSP

push!(ARGS, "arg")
JuliaLSP.julia_main()
12 changes: 12 additions & 0 deletions contrib/JuliaLSP/src/JuliaLSP.jl
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
module JuliaLSP

using LanguageServer, LanguageServer.SymbolServer

function julia_main()::Cint
server = LanguageServer.LanguageServerInstance(stdin, stdout)
server.runlinter = true
run(server)
return 0 # if things finished successfully
end

end # module
62 changes: 62 additions & 0 deletions contrib/compile.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
#!/usr/bin/env bash

JULIABIN="julia"
JULIAPROJ="JuliaLSP"
JULIACOMP="JuliaLSP_compiled"

REPO="https://github.com/julia-vscode/LanguageServer.jl"
BRANCH="master"

HL='\033[1;4;31m'
NC='\033[0m'

errorexit() {
echo -e ${HL}"$@"${NC}
exit 1
}

while [[ $# -gt 0 ]]
do
key="$1"

case $key in
-j|--julia)
JULIABIN="$2"
shift
;;
-b|--branch)
BRANCH="$2"
shift
;;
-r|--repo)
REPO="$2"
shift
;;
*)
echo -e "Usage:\ncompile.sh [-j|--julia <julia binary>] [-b|--branch <repo branch>]" >&2
exit
;;
esac
shift
done

echo -e ${HL}Updating packages${NC}

$JULIABIN --project=${JULIAPROJ} --startup-file=no --history-file=no -e \
"import Pkg;
Pkg.add(Pkg.PackageSpec(url=\"${REPO}\", rev=\"${BRANCH}\"));
Pkg.update();" || errorexit Cannot update packages

echo -e ${HL}Compiling...${NC}

# Additional libs are needed for running tests
$JULIABIN --startup-file=no --history-file=no -e \
"import Pkg;
Pkg.add(\"PackageCompiler\")
using PackageCompiler;
Pkg.activate(\"${JULIAPROJ}\");
create_app(\"${JULIAPROJ}\", \"${JULIACOMP}\",
force=true, precompile_execution_file=\"../test/runtests.jl\");" \
|| errorexit Cannot compile packages

echo -e ${HL}Compiled${NC}

0 comments on commit ef8b14a

Please sign in to comment.