| <project default="build_artifact"> |
| <property name="artifact.root" value="out/artifacts/Kotlin"/> |
| <property name="production.root" value="out/production/kotlin-ultimate"/> |
| <property name="meta.inf" value="${production.root}/META-INF"/> |
| <property name="kotlin.plugin.jar" value="${artifact.root}/lib/kotlin-plugin.jar"/> |
| |
| <macrodef name="merge_plugin_xml"> |
| <attribute name="main.plugin.xml.dir" /> |
| |
| <sequential> |
| <loadfile srcfile="${meta.inf}/ultimate-plugin.xml" property="ultimate.plugin.xml.content"> |
| <filterchain> |
| <tokenfilter> |
| <filetokenizer/> |
| <replaceregex pattern="\<idea-plugin\>" replace="" /> |
| <replaceregex pattern="\</idea-plugin\>" replace="" /> |
| </tokenfilter> |
| </filterchain> |
| </loadfile> |
| |
| <replace file="@{main.plugin.xml.dir}/plugin.xml" token="<!-- ULTIMATE-PLUGIN-PLACEHOLDER -->" value="${ultimate.plugin.xml.content}"/> |
| </sequential> |
| </macrodef> |
| |
| <target name="build_artifact"> |
| <copy todir="${artifact.root}"> |
| <fileset dir="../${artifact.root}"/> |
| </copy> |
| |
| <unzip src="${kotlin.plugin.jar}" dest="${production.root}"> |
| <patternset> |
| <include name="META-INF/plugin.xml"/> |
| </patternset> |
| </unzip> |
| |
| <merge_plugin_xml main.plugin.xml.dir="${meta.inf}"/> |
| |
| <jar destfile="${kotlin.plugin.jar}" update="true"> |
| <fileset dir="${production.root}"/> |
| <file file="${meta.inf}/plugin.xml"/> |
| </jar> |
| |
| <delete file="${meta.inf}/plugin.xml"/> |
| </target> |
| |
| <target name="patch_outer_plugin_xml_for_tests"> |
| <merge_plugin_xml main.plugin.xml.dir="../out/production/idea/META-INF" /> |
| </target> |
| </project> |