make: refactor archive generation (#3200)
* Add archive_{cpp,dotnet,java,python,data} targets
* Create a Makefile for each archive to ease build
* Add test_archive_* targets
* Rework tools/README.md
This commit is contained in:
committed by
Mizux Seiha
parent
f85534c694
commit
c1998eab4d
@@ -20,17 +20,17 @@ java:
|
||||
@echo JAVA_BIN = $(JAVA_BIN)
|
||||
@echo MVN_BIN = $(MVN_BIN)
|
||||
$(warning Either JAVA support was turned off, or the the makefile cannot\
|
||||
find 'java' or 'maven' command which is needed for build. \
|
||||
Please make sure it is installed and in system path. \
|
||||
Or turn java support ON.)
|
||||
find 'java' or 'maven' command which is needed for build. \
|
||||
Please make sure it is installed and in system path. \
|
||||
Or turn java support ON.)
|
||||
check_java: java
|
||||
test_java: java
|
||||
package_java: java
|
||||
|
||||
else # HAS_JAVA=ON
|
||||
|
||||
JAVA_BUILD_PATH = $(BUILD_DIR)$Sjava
|
||||
TEMP_JAVA_DIR = temp_java
|
||||
JAVA_BUILD_PATH := $(BUILD_DIR)$Sjava
|
||||
TEMP_JAVA_DIR := temp_java
|
||||
JAVA_ORTOOLS_PACKAGE := com.google.ortools
|
||||
|
||||
# Main target
|
||||
@@ -46,13 +46,13 @@ java:
|
||||
|
||||
# Detect RuntimeIDentifier
|
||||
ifeq ($(OS),Windows)
|
||||
JAVA_NATIVE_IDENTIFIER=win32-x86-64
|
||||
JAVA_NATIVE_IDENTIFIER := win32-x86-64
|
||||
else
|
||||
ifeq ($(OS),Linux)
|
||||
JAVA_NATIVE_IDENTIFIER=linux-x86-64
|
||||
JAVA_NATIVE_IDENTIFIER := linux-x86-64
|
||||
else
|
||||
ifeq ($(OS),Darwin)
|
||||
JAVA_NATIVE_IDENTIFIER=darwin-x86-64
|
||||
JAVA_NATIVE_IDENTIFIER := darwin-x86-64
|
||||
else
|
||||
$(error OS unknown !)
|
||||
endif
|
||||
@@ -302,7 +302,7 @@ test_java_linear_solver_samples: \
|
||||
test_java_model_builder_samples: \
|
||||
rjava_SimpleLpProgramMb \
|
||||
rjava_SimpleMipProgramMb
|
||||
|
||||
|
||||
.PHONY: test_java_sat_samples # Build and Run all Java SAT Samples (located in ortools/sat/samples)
|
||||
test_java_sat_samples: \
|
||||
rjava_AssignmentSat \
|
||||
@@ -413,6 +413,86 @@ test_java: \
|
||||
test_java_contrib \
|
||||
test_java_java
|
||||
|
||||
###############
|
||||
## Archive ##
|
||||
###############
|
||||
.PHONY: archive_java # Add C++ OR-Tools to archive.
|
||||
archive_java: $(INSTALL_JAVA_NAME)$(ARCHIVE_EXT)
|
||||
|
||||
$(INSTALL_JAVA_NAME):
|
||||
$(MKDIR) $(INSTALL_JAVA_NAME)
|
||||
|
||||
$(INSTALL_JAVA_NAME)/examples: | $(INSTALL_JAVA_NAME)
|
||||
$(MKDIR) $(INSTALL_JAVA_NAME)$Sexamples
|
||||
|
||||
define java-sample-archive =
|
||||
$(INSTALL_JAVA_NAME)/examples/%/pom.xml: \
|
||||
$(TEMP_JAVA_DIR)/$1/%/pom.xml \
|
||||
$(SRC_DIR)/ortools/$1/samples/%.java \
|
||||
| $(INSTALL_JAVA_NAME)/examples
|
||||
-$(MKDIR_P) $(INSTALL_JAVA_NAME)$Sexamples$S$$*$S$(JAVA_SRC_PATH)
|
||||
$(COPY) $(TEMP_JAVA_DIR)$S$1$S$$*$Spom.xml $(INSTALL_JAVA_NAME)$Sexamples$S$$*
|
||||
$(COPY) $(SRC_DIR)$Sortools$S$1$Ssamples$S$$*.java $(INSTALL_JAVA_NAME)$Sexamples$S$$*$S$(JAVA_SRC_PATH)
|
||||
endef
|
||||
|
||||
$(foreach sample,$(JAVA_SAMPLES),$(eval $(call java-sample-archive,$(sample))))
|
||||
|
||||
define java-example-archive =
|
||||
$(INSTALL_JAVA_NAME)/examples/%/pom.xml: \
|
||||
$(TEMP_JAVA_DIR)/$1/%/pom.xml \
|
||||
$(SRC_DIR)/examples/$1/%.java \
|
||||
| $(INSTALL_JAVA_NAME)/examples
|
||||
-$(MKDIR_P) $(INSTALL_JAVA_NAME)$Sexamples$S$$*$S$(JAVA_SRC_PATH)
|
||||
$(COPY) $(TEMP_JAVA_DIR)$S$1$S$$*$Spom.xml $(INSTALL_JAVA_NAME)$Sexamples$S$$*
|
||||
$(COPY) $(SRC_DIR)$Sexamples$S$1$S$$*.java $(INSTALL_JAVA_NAME)$Sexamples$S$$*$S$(JAVA_SRC_PATH)
|
||||
endef
|
||||
|
||||
$(foreach example,$(JAVA_EXAMPLES),$(eval $(call java-example-archive,$(example))))
|
||||
|
||||
SAMPLE_JAVA_FILES = \
|
||||
$(addsuffix /pom.xml,$(addprefix $(INSTALL_JAVA_NAME)/examples/,$(basename $(notdir $(wildcard ortools/*/samples/*.java)))))
|
||||
|
||||
EXAMPLE_JAVA_FILES = \
|
||||
$(addsuffix /pom.xml,$(addprefix $(INSTALL_JAVA_NAME)/examples/,$(basename $(notdir $(wildcard examples/contrib/*.java))))) \
|
||||
$(addsuffix /pom.xml,$(addprefix $(INSTALL_JAVA_NAME)/examples/,$(basename $(notdir $(wildcard examples/java/*.java)))))
|
||||
|
||||
$(INSTALL_JAVA_NAME)$(ARCHIVE_EXT): java \
|
||||
$(SAMPLE_JAVA_FILES) \
|
||||
$(EXAMPLE_JAVA_FILES) \
|
||||
LICENSE tools/README.java.md tools/Makefile.java
|
||||
$(COPY) $(JAVA_BUILD_PATH)$Sortools-java$Starget$S*.jar $(INSTALL_JAVA_NAME)$S
|
||||
$(COPY) $(JAVA_BUILD_PATH)$Sortools-$(JAVA_NATIVE_IDENTIFIER)$Starget$S*.jar $(INSTALL_JAVA_NAME)$S
|
||||
$(COPY) LICENSE $(INSTALL_JAVA_NAME)$SLICENSE
|
||||
$(COPY) tools$SREADME.java.md $(INSTALL_JAVA_NAME)$SREADME.md
|
||||
$(COPY) tools$SMakefile.java $(INSTALL_JAVA_NAME)$SMakefile
|
||||
$(SED) -i -e 's/@PROJECT_VERSION@/$(OR_TOOLS_VERSION)/' $(INSTALL_JAVA_NAME)$SMakefile
|
||||
ifeq ($(PLATFORM),WIN64)
|
||||
$(MKDIR) $(INSTALL_JAVA_NAME)$Sbin
|
||||
$(COPY) $(WHICH) $(INSTALL_JAVA_NAME)$Sbin$S
|
||||
$(COPY) $(TOUCH) $(INSTALL_JAVA_NAME)$Sbin$S
|
||||
$(ZIP) -r $(INSTALL_JAVA_NAME)$(ARCHIVE_EXT) $(INSTALL_JAVA_NAME)
|
||||
else
|
||||
$(TAR) --no-same-owner -czvf $(INSTALL_JAVA_NAME)$(ARCHIVE_EXT) $(INSTALL_JAVA_NAME)
|
||||
endif
|
||||
|
||||
# Test archive
|
||||
TEMP_JAVA_TEST_DIR := temp_java_test
|
||||
.PHONY: test_archive_java # Test C++ OR-Tools archive is OK.
|
||||
test_archive_java: $(INSTALL_JAVA_NAME)$(ARCHIVE_EXT)
|
||||
-$(DELREC) $(TEMP_JAVA_TEST_DIR)
|
||||
-$(MKDIR) $(TEMP_JAVA_TEST_DIR)
|
||||
ifeq ($(PLATFORM),WIN64)
|
||||
$(UNZIP) $< -d $(TEMP_JAVA_TEST_DIR)
|
||||
else
|
||||
$(TAR) -xvf $< -C $(TEMP_JAVA_TEST_DIR)
|
||||
endif
|
||||
cd $(TEMP_JAVA_TEST_DIR)$S$(INSTALL_JAVA_NAME) \
|
||||
&& $(MAKE) MAKEFLAGS= \
|
||||
&& $(MAKE) MAKEFLAGS= test
|
||||
|
||||
########################
|
||||
## Publish Java Pkg ##
|
||||
########################
|
||||
.PHONY: publish_java_runtime
|
||||
publish_java_runtime: java_runtime
|
||||
cd $(TEMP_JAVA_DIR)$S$(JAVA_ORTOOLS_NATIVE_PROJECT) && "$(MVN_BIN)" deploy
|
||||
@@ -499,6 +579,9 @@ endif # HAS_JAVA=ON
|
||||
.PHONY: clean_java # Clean Java output from previous build.
|
||||
clean_java:
|
||||
-$(DELREC) $(TEMP_JAVA_DIR)
|
||||
-$(DELREC) $(INSTALL_JAVA_NAME)
|
||||
-$(DELREC) or-tools_java_*
|
||||
-$(DELREC) $(TEMP_JAVA_TEST_DIR)
|
||||
-$(DEL) *.jar
|
||||
|
||||
#############
|
||||
|
||||
Reference in New Issue
Block a user