Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
71 changes: 48 additions & 23 deletions scripts/build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -2,38 +2,63 @@

set -e

# Needed once
# if [ ! -e node_modules ]; then
# npm install
# fi

# Build standalone java
if [ ! -e jdks/linux/jdk-21 ]; then
./scripts/download_linux_jdk.sh
# Detect usable system Java
USE_SYSTEM_JAVA=false

if [ -n "$JAVA_HOME" ] && [ -x "$JAVA_HOME/bin/java" ]; then
VERSION=$("$JAVA_HOME/bin/java" -version 2>&1 | awk -F[\".] '/version/ {print $2}')
if [ "$VERSION" -ge 21 ]; then
USE_SYSTEM_JAVA=true
fi
fi
if [ ! -e jdks/windows/jdk-21 ]; then
./scripts/download_windows_jdk.sh

OS="$(uname -s)"

# Download JDK only if needed
if [ "$USE_SYSTEM_JAVA" = false ]; then
case "$OS" in
Linux*)
if [ ! -e jdks/linux/jdk-21 ]; then
./scripts/download_linux_jdk.sh
fi
;;
Darwin*)
if [ ! -e jdks/mac/jdk-21 ]; then
./scripts/download_mac_jdk.sh
fi
;;
MINGW* | MSYS* | CYGWIN*)
if [ ! -e jdks/windows/jdk-21 ]; then
./scripts/download_windows_jdk.sh
fi
;;
esac
fi
if [ ! -e dist/linux/bin/java ]; then

# Run only the correct link script
case "$OS" in
Linux*)
if [ ! -e dist/linux/bin/java ]; then
./scripts/link_linux.sh
fi
if [ ! -e dist/windows/bin/java.exe ]; then
./scripts/link_windows.sh
fi
if [ ! -e dist/mac/bin/java ]; then
fi
;;
Darwin*)
if [ ! -e dist/mac/bin/java ]; then
./scripts/link_mac.sh
fi
fi
;;
MINGW* | MSYS* | CYGWIN*)
if [ ! -e dist/windows/bin/java.exe ]; then
./scripts/link_windows.sh
fi
;;
esac

# Compile sources
if [ ! -e src/main/java/com/google/devtools/build/lib/analysis/AnalysisProtos.java ]; then
./scripts/gen_proto.sh
./scripts/gen_proto.sh
fi

mvn package -DskipTests

# Build vsix
# npm run-script vscode:build
#
# code --install-extension build.vsix --force

echo 'Reload VSCode to update extension'
17 changes: 13 additions & 4 deletions scripts/link_linux.sh
Original file line number Diff line number Diff line change
Expand Up @@ -3,15 +3,24 @@

set -e

# Set env variables to build with mac toolchain but linux target
JAVA_HOME="./jdks/linux/jdk-21"
# Decide which JDK to use
if [ -n "$JAVA_HOME" ] && [ -x "$JAVA_HOME/bin/java" ]; then
VERSION=$("$JAVA_HOME/bin/java" -version 2>&1 | awk -F[\".] '/version/ {print $2}')
if [ "$VERSION" -ge 21 ]; then
JDK="$JAVA_HOME"
else
JDK="./jdks/linux/jdk-21"
fi
else
JDK="./jdks/linux/jdk-21"
fi

# Build in dist/linux
rm -rf dist/linux
jlink \
--module-path $JAVA_HOME/jmods \
--module-path "$JDK/jmods" \
--add-modules java.base,java.compiler,java.logging,java.sql,java.xml,jdk.compiler,jdk.jdi,jdk.unsupported,jdk.zipfs \
--output dist/linux \
--no-header-files \
--no-man-pages \
--compress 2
--compress 2
17 changes: 13 additions & 4 deletions scripts/link_mac.sh
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,22 @@

set -e

# Set env variables to build with mac toolchain but linux target
JAVA_HOME="./jdks/mac/jdk-21"
# Decide which JDK to use
if [ -n "$JAVA_HOME" ] && [ -x "$JAVA_HOME/bin/java" ]; then
VERSION=$("$JAVA_HOME/bin/java" -version 2>&1 | awk -F[\".] '/version/ {print $2}')
if [ "$VERSION" -ge 21 ]; then
JDK="$JAVA_HOME"
else
JDK="./jdks/mac/jdk-21/Contents/Home"
fi
else
JDK="./jdks/mac/jdk-21/Contents/Home"
fi

# Build using jlink
rm -rf dist/mac
$JAVA_HOME/Contents/Home/bin/jlink \
--module-path $JAVA_HOME/Contents/Home/jmods \
"$JDK/bin/jlink" \
--module-path "$JDK/jmods" \
--add-modules java.base,java.compiler,java.logging,java.sql,java.xml,jdk.compiler,jdk.jdi,jdk.unsupported,jdk.zipfs \
--output dist/mac \
--no-header-files \
Expand Down
17 changes: 14 additions & 3 deletions scripts/link_windows.sh
Original file line number Diff line number Diff line change
Expand Up @@ -4,14 +4,25 @@
set -e

# Set env variables to build with mac toolchain but windows target
JAVA_HOME="./jdks/windows/jdk-21"
# Decide which JDK to use
if [ -n "$JAVA_HOME" ] && [ -x "$JAVA_HOME/bin/java" ]; then
VERSION=$("$JAVA_HOME/bin/java" -version 2>&1 | awk -F[\".] '/version/ {print $2}')
if [ "$VERSION" -ge 21 ]; then
JDK="$JAVA_HOME"
else
JDK="./jdks/linux/jdk-21"
fi
else
JDK="./jdks/linux/jdk-21"
fi

# Build in dist/windows
rm -rf dist/windows
jlink \
--module-path $JAVA_HOME/jmods \
--module-path $JDK/jmods \
--add-modules java.base,java.compiler,java.logging,java.sql,java.xml,jdk.compiler,jdk.jdi,jdk.unsupported,jdk.zipfs \
--output dist/windows \
--no-header-files \
--no-man-pages \
--compress 2
--compress 2

4 changes: 2 additions & 2 deletions src/test/java/org/javacs/HoverTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -79,8 +79,8 @@ private String symbolAt(String file, int line, int character) {
new TextDocumentPositionParams(
new TextDocumentIdentifier(FindResource.uri(file)), new Position(line - 1, character - 1));
var result = new StringJoiner("\n");
for (var h : server.hover(pos).get().contents) {
result.add(h.value);
for (var h : (Iterable<?>) server.hover(pos).get().contents) {
result.add(h.toString());
}
return result.toString();
}
Expand Down