| <?xml version="1.0" encoding="UTF-8"?> |
| <!-- |
| |
| Licensed to the Apache Software Foundation (ASF) under one |
| or more contributor license agreements. See the NOTICE file |
| distributed with this work for additional information |
| regarding copyright ownership. The ASF licenses this file |
| to you under the Apache License, Version 2.0 (the |
| "License"); you may not use this file except in compliance |
| with the License. You may obtain a copy of the License at |
| |
| http://www.apache.org/licenses/LICENSE-2.0 |
| |
| Unless required by applicable law or agreed to in writing, |
| software distributed under the License is distributed on an |
| "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| KIND, either express or implied. See the License for the |
| specific language governing permissions and limitations |
| under the License. |
| |
| --> |
| <project basedir="." default="netbeans" name="java/java.lsp.server"> |
| <description>Builds, tests, and runs the project org.netbeans.modules.java.lsp.server</description> |
| <import file="../../nbbuild/templates/projectized.xml"/> |
| <target name="proxy-setup" depends="test-init"> |
| <taskdef name="autoupdate" classname="org.netbeans.nbbuild.AutoUpdate" classpath="${nbantext.jar}"/> |
| <taskdef name="configureproxy" classname="org.netbeans.nbbuild.extlibs.ConfigureProxy" classpath="${nbantext.jar}"/> |
| <configureproxy connectto="https://netbeans.osuosl.org/binaries/" hostProperty="proxyHost" portProperty="proxyPort"/> |
| <setproxy proxyhost="${proxyHost}" proxyPort="${proxyPort}"/> |
| </target> |
| <target name="build-lsp-server" depends="-set-use-jdk-javac,build,test-init,proxy-setup" description="Prepares NetBeans bits for vscode extensions"> |
| <ant dir="nbcode" target="build-zip" inheritall="false" inheritrefs="false" /> |
| <unzip src="nbcode/dist/nbcode.zip" dest="${lsp.build.dir}/../"> |
| <globmapper from="nbcode/nb/*" to="nbcode/nbcode/*"/> |
| </unzip> |
| <mkdir dir="${lsp.build.dir}/bin" /> |
| <copy todir="${lsp.build.dir}/bin" file="script/bin/nbcode" overwrite="true" /> |
| <mkdir dir="${lsp.build.dir}/etc" /> |
| <copy todir="${lsp.build.dir}/etc" file="script/etc/nbcode.conf" overwrite="true" /> |
| <copy todir="${lsp.build.dir}/etc" file="script/etc/nbcode.clusters" overwrite="true" /> |
| <chmod file="${lsp.build.dir}/bin/nbcode" perm="u+x" /> |
| <chmod file="${lsp.build.dir}/platform/lib/nbexec" perm="u+x"/> |
| <chmod file="${lsp.build.dir}/java/maven/bin/mvn" perm="u+x" /> |
| <delete file="${lsp.build.dir}/lib/nb-javac-9-api.jar" /> |
| <delete file="${lsp.build.dir}/lib/nb-javac-9-impl.jar" /> |
| <delete file="${lsp.build.dir}/lib/org-netbeans-modules-java-source-nbjavac.jar" /> |
| |
| <property name="3rdparty.modules" value="dont-install-anything"/> |
| <autoupdate todir="${lsp.build.dir}/extra" updatecenter="file://${nb_all}/nb/updatecenters/build/classes/org/netbeans/modules/updatecenters/resources/3rdparty-catalog.xml"> |
| <modules includes="${3rdparty.modules}"/> |
| </autoupdate> |
| </target> |
| <target name="-set-use-jdk-javac"> |
| <property name="test.use.jdk.javac" value="true" /> |
| </target> |
| <target name="clean-vscode-ext" depends="clean" description="Cleans all VSCode related artifacts"> |
| <delete dir="${lsp.build.dir}" /> |
| <delete dir="vscode/node_modules" /> |
| <delete dir="vscode/out" /> |
| <ant dir="nbcode" target="clean" inheritall="false" inheritrefs="false"/> |
| </target> |
| <target name="build-vscode-ext" depends="build-lsp-server" description="Build the Visual Studio Code extension."> |
| <taskdef name="gitbranchhash" classname="org.netbeans.nbbuild.GitBranchHash" classpath="${nbantext.jar}" /> |
| <gitbranchhash file="." branchproperty="metabuild.branch" hashproperty="metabuild.hash" /> |
| <condition property="metabuild.hash" value="master" > |
| <not> |
| <isset property="metabuild.hash" /> |
| </not> |
| </condition> |
| <property name="vsix.version" value="0.1.0"/> |
| |
| <exec executable="npm" failonerror="true" dir="vscode"> |
| <arg value="--allow-same-version"/> |
| <arg value="version" /> |
| <arg value="${vsix.version}" /> |
| </exec> |
| |
| <exec executable="npm" failonerror="true" dir="vscode"> |
| <arg value="install" /> |
| </exec> |
| |
| <exec executable="npm" failonerror="true" dir="vscode"> |
| <arg value="run" /> |
| <arg value="compile" /> |
| </exec> |
| |
| <delete dir="${build.dir}/bundles" /> |
| <mkdir dir="${build.dir}/bundles/package" /> |
| <copy file="vscode/package.json" todir="${build.dir}/bundles/package" /> |
| <copy file="vscode/package-lock.json" todir="${build.dir}/bundles/package" /> |
| |
| <exec executable="mvn" failonerror="true" dir="${nb_all}/nbbuild/misc/prepare-bundles"> |
| <arg value="package" /> |
| <arg value="exec:java" /> |
| <arg value="-Dexec.mainClass=org.netbeans.prepare.bundles.PrepareBundles" /> |
| <arg value="-Dexec.args=${build.dir}/bundles ${nb_all}" /> |
| </exec> |
| |
| <mkdir dir="${build.dir}/vsce" /> |
| <exec executable="npm" failonerror="true" dir="${build.dir}/vsce"> |
| <arg value="install" /> |
| <arg value="--save" /> |
| <arg value="vsce@1.80.0" /> |
| </exec> |
| <exec executable="${build.dir}/vsce/node_modules/vsce/out/vsce" failonerror="true" dir="${basedir}/vscode"> |
| <arg value="package" /> |
| <arg value="--baseImagesUrl" /> |
| <arg value="https://github.com/apache/netbeans/raw/${metabuild.hash}/java/java.lsp.server/vscode" /> |
| <arg value="--out" /> |
| <arg value="${build.dir}/apache-netbeans-java-${vsix.version}.vsix" /> |
| </exec> |
| |
| <delete dir="${build.dir}/vscode" /> |
| <mkdir dir="${build.dir}/vscode" /> |
| <delete dir="${build.dir}/vscode-mandatory" /> |
| <mkdir dir="${build.dir}/vscode-mandatory/licenses" /> |
| |
| <unzip dest="${build.dir}/vscode" src="${build.dir}/apache-netbeans-java-${vsix.version}.vsix" /> |
| |
| <taskdef name="createlicensesummary" classname="org.netbeans.nbbuild.extlibs.CreateLicenseSummary" classpath="${nbantext.jar}"/> |
| |
| <property name="config.javadoc.all" value="" /> |
| <resolvelist name="allmodules" path="modules.fullpath" dir="${nb_all}" list="${clusters.config.java.list}"/> |
| |
| <createlicensesummary licenseStub="${nb_all}/LICENSE" |
| noticeStub="${nb_all}/nbbuild/notice-stub.txt" |
| report="${build.dir}/createlicensesummary.xml" |
| nball="${nb_all}" |
| build="${build.dir}/vscode" |
| license="${build.dir}/vscode-mandatory/LICENSE" |
| licenseTargetDir="${build.dir}/vscode-mandatory/licenses" |
| notice="${build.dir}/vscode-mandatory/NOTICE" |
| binary="true" |
| excludes="${nb-extra-files}" |
| extraExternalDirectory="${build.dir}/bundles/bundles" |
| extraLicenseDirectory="${build.dir}/bundles/licenses" |
| includeAllFiles="true" |
| /> |
| |
| <zip destfile="${build.dir}/apache-netbeans-java-${vsix.version}.vsix" basedir="${build.dir}/vscode-mandatory/" update="true" /> |
| </target> |
| <target name="test-lsp-server" description="Tests the LSP server behavior"> |
| <ant dir="nbcode" target="test" inheritall="false" inheritrefs="false" /> |
| </target> |
| |
| <target name="test-vscode-ext" depends="test-lsp-server" description="Tests the Visual Studio Code extension built by 'build-vscode-ext' target."> |
| <exec executable="npm" failonerror="true" dir="vscode"> |
| <arg value="--allow-same-version"/> |
| <arg value="run" /> |
| <arg value="nbjavac" /> |
| </exec> |
| <exec executable="npm" failonerror="true" dir="vscode"> |
| <arg value="--allow-same-version"/> |
| <arg value="run" /> |
| <arg value="test" /> |
| </exec> |
| </target> |
| </project> |