From 752f713658d450dccf0a273ea03a68092ca532ec Mon Sep 17 00:00:00 2001 From: Mathieu Baudier Date: Sat, 12 Feb 2022 11:25:00 +0100 Subject: [PATCH] Builds based on Make --- .gitignore | 1 + Makefile | 32 +++++++++ branch.properties | 2 + configure | 55 +++++++++++++++ org.argeo.app.theme.default/.classpath | 7 ++ org.argeo.app.theme.default/.project | 6 ++ .../{ => src}/rap/work.css | 0 .../{ => src}/swt/app.css | 0 org.argeo.app.ui.rap/src/.gitignore | 0 sdk/ecj.args | 4 ++ sdk/osgi.mk | 67 +++++++++++++++++++ 11 files changed, 174 insertions(+) create mode 100644 Makefile create mode 100644 branch.properties create mode 100644 configure create mode 100644 org.argeo.app.theme.default/.classpath rename org.argeo.app.theme.default/{ => src}/rap/work.css (100%) rename org.argeo.app.theme.default/{ => src}/swt/app.css (100%) create mode 100644 org.argeo.app.ui.rap/src/.gitignore create mode 100644 sdk/ecj.args create mode 100644 sdk/osgi.mk diff --git a/.gitignore b/.gitignore index 950facd..142a5c9 100644 --- a/.gitignore +++ b/.gitignore @@ -3,3 +3,4 @@ **/generated/ **/MANIFEST.MF **/.DS_Store +/sdk.mk diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..7d4c9cb --- /dev/null +++ b/Makefile @@ -0,0 +1,32 @@ +include sdk.mk +.PHONY: clean all osgi + +all: osgi + +A2_CATEGORY = org.argeo.suite + +BUNDLES = \ +org.argeo.app.api \ +org.argeo.app.core \ +org.argeo.app.servlet.odk \ +org.argeo.app.servlet.publish \ +org.argeo.app.ui \ +org.argeo.app.theme.default \ +org.argeo.app.ui.rap \ + +A2_OUTPUT = $(SDK_BUILD_BASE)/a2 +A2_BASE = $(A2_OUTPUT) + +DEP_CATEGORIES = \ +org.argeo.tp \ +org.argeo.tp.apache \ +org.argeo.tp.jetty \ +org.argeo.tp.eclipse.equinox \ +org.argeo.tp.eclipse.rap \ +org.argeo.tp.jcr \ +org.argeo.cms + +clean: + rm -rf $(BUILD_BASE) + +include $(SDK_SRC_BASE)/sdk/osgi.mk \ No newline at end of file diff --git a/branch.properties b/branch.properties new file mode 100644 index 0000000..7a7e579 --- /dev/null +++ b/branch.properties @@ -0,0 +1,2 @@ +MAJOR=2 +MINOR=3 diff --git a/configure b/configure new file mode 100644 index 0000000..da5dffb --- /dev/null +++ b/configure @@ -0,0 +1,55 @@ +#!/bin/sh + +# We build where we are +SDK_BUILD_BASE=$(pwd -P)/output + +# Source are located where this script is +SDK_SRC_BASE="$(cd "$(dirname "$0")"; pwd -P)" + +SDK_MK=$SDK_SRC_BASE/sdk.mk + +#echo SDK_BUILD_BASE=$SDK_BUILD_BASE +#echo SDK_SRC_BASE=$SDK_SRC_BASE +#echo SDK_MK=$SDK_MK + +if [ -f "$SDK_MK" ]; +then + +echo "File $SDK_MK already exists. Remove it in order to configure a new build location:" +echo "rm $SDK_MK" +exit 1 + +else + +if [ -z "$JAVA_HOME" ] +then +echo "Environment variable JAVA_HOME must be set" +exit 1 +fi + +# Create build directory, so that it can be used right away +# and we check whether we have the rights +mkdir -p $SDK_BUILD_BASE +if [ -f "$SDK_MK" ]; +then +echo "Cannot create $SDK_BUILD_BASE, SDK configuration has failed." +exit 2 +fi + +# Generate sdk.mk +cat > "$SDK_MK" < + + + + + + diff --git a/org.argeo.app.theme.default/.project b/org.argeo.app.theme.default/.project index 1a71c08..77b8e04 100644 --- a/org.argeo.app.theme.default/.project +++ b/org.argeo.app.theme.default/.project @@ -5,6 +5,11 @@ + + org.eclipse.jdt.core.javabuilder + + + org.eclipse.pde.ManifestBuilder @@ -23,5 +28,6 @@ org.eclipse.pde.PluginNature + org.eclipse.jdt.core.javanature diff --git a/org.argeo.app.theme.default/rap/work.css b/org.argeo.app.theme.default/src/rap/work.css similarity index 100% rename from org.argeo.app.theme.default/rap/work.css rename to org.argeo.app.theme.default/src/rap/work.css diff --git a/org.argeo.app.theme.default/swt/app.css b/org.argeo.app.theme.default/src/swt/app.css similarity index 100% rename from org.argeo.app.theme.default/swt/app.css rename to org.argeo.app.theme.default/src/swt/app.css diff --git a/org.argeo.app.ui.rap/src/.gitignore b/org.argeo.app.ui.rap/src/.gitignore new file mode 100644 index 0000000..e69de29 diff --git a/sdk/ecj.args b/sdk/ecj.args new file mode 100644 index 0000000..852a33d --- /dev/null +++ b/sdk/ecj.args @@ -0,0 +1,4 @@ +-source 17 +-target 11 +-nowarn +-time \ No newline at end of file diff --git a/sdk/osgi.mk b/sdk/osgi.mk new file mode 100644 index 0000000..a97a937 --- /dev/null +++ b/sdk/osgi.mk @@ -0,0 +1,67 @@ + + +# +# GENERIC +# +JVM := $(JAVA_HOME)/bin/java +JAVADOC := $(JAVA_HOME)/bin/javadoc +ECJ_JAR := $(SDK_BUILD_BASE)/a2/org.argeo.tp.sdk/org.eclipse.jdt.core.compiler.batch.3.28.jar +BND_TOOL := /usr/bin/bnd + +BUILD_BASE = $(SDK_BUILD_BASE)/$(A2_CATEGORY) + +WORKSPACE_BNDS := $(shell cd $(SDK_SRC_BASE) && find cnf -name '*.bnd') +BUILD_WORKSPACE_BNDS := $(WORKSPACE_BNDS:%=$(BUILD_BASE)/%) + +A2_JARS = $(foreach category, $(DEP_CATEGORIES), $(shell find $(A2_BASE)/$(category) -name '*.jar')) +A2_CLASSPATH = $(subst $(space),$(pathsep),$(strip $(A2_JARS))) + +A2_BUNDLES = $(foreach bundle, $(BUNDLES),$(A2_OUTPUT)/$(A2_CATEGORY)/$(shell basename $(bundle)).$(MAJOR).$(MINOR).jar) + +JAVA_SRCS = $(foreach bundle, $(BUNDLES), $(shell find $(bundle) -name '*.java')) +BNDS = $(foreach bundle, $(BUNDLES), $(BUILD_BASE)/$(shell basename $(bundle))/bnd.bnd) +ECJ_SRCS = $(foreach bundle, $(BUNDLES), $(bundle)/src[-d $(BUILD_BASE)/$(shell basename $(bundle))/bin]) + +JAVADOC_SRCS = $(foreach bundle, $(JAVADOC_BUNDLES),$(bundle)/src) + +osgi: $(BUILD_WORKSPACE_BNDS) $(A2_BUNDLES) + +javadoc: $(BUILD_BASE)/java-compiled + $(JAVADOC) -d $(BUILD_BASE)/api --source-path $(subst $(space),$(pathsep),$(strip $(JAVADOC_SRCS))) -subpackages $(JAVADOC_PACKAGES) + + +# SDK level +$(BUILD_BASE)/cnf/%.bnd: cnf/%.bnd + mkdir -p $(dir $@) + cp $< $@ + +$(SDK_BUILD_BASE)/a2/$(A2_CATEGORY)/%.$(MAJOR).$(MINOR).jar : $(BUILD_BASE)/%.jar + mkdir -p $(dir $@) + cp $< $@ + +$(BUILD_BASE)/%.jar: $(BUILD_BASE)/jars-built + mv $(basename $@)/generated/*.jar $(basename $@).jar + +# Build level +$(BUILD_BASE)/jars-built: $(BNDS) + cd $(BUILD_BASE) && $(BND_TOOL) build + touch $@ + +$(BUILD_BASE)/%/bnd.bnd : %/bnd.bnd $(BUILD_BASE)/java-compiled + mkdir -p $(dir $@)bin + rsync -r --exclude "*.java" $(dir $<)src/ $(dir $@)bin + if [ -d "$(dir $<)OSGI-INF" ]; then rsync -r $(dir $<)OSGI-INF/ $(dir $@)/OSGI-INF; fi + cp $< $@ + echo "\n-sourcepath:$(SDK_SRC_BASE)/$(dir $<)src\n" >> $@ + +$(BUILD_BASE)/java-compiled : $(JAVA_SRCS) + $(JVM) -jar $(ECJ_JAR) @$(SDK_SRC_BASE)/sdk/ecj.args -cp $(A2_CLASSPATH) $(ECJ_SRCS) + touch $@ + +# Local manifests +manifests : osgi + $(foreach bundle, $(BUNDLES), cp -v $(BUILD_BASE)/$(shell basename $(bundle))/META-INF/MANIFEST.MF $(bundle)/META-INF/MANIFEST.MF;) + +null := +space := $(null) # +pathsep := : -- 2.30.2