make: Add maven package
This commit is contained in:
1
.gitignore
vendored
1
.gitignore
vendored
@@ -30,6 +30,7 @@ temp_test/
|
||||
temp_fz/
|
||||
temp_fz_test/
|
||||
temp_python*
|
||||
temp_java/
|
||||
temp_dotnet/
|
||||
temp_dotnet_test/
|
||||
temp_archive/
|
||||
|
||||
@@ -26,8 +26,9 @@ HAS_JAVA =
|
||||
endif
|
||||
|
||||
TEMP_JAVA_DIR = temp_java
|
||||
JAVA_OR_TOOLS_LIBS := $(LIB_DIR)/com.google.ortools$J
|
||||
JAVA_OR_TOOLS_NATIVE_LIBS := $(LIB_DIR)/$(LIB_PREFIX)jniortools.$(JNI_LIB_EXT)
|
||||
JAVA_ORTOOLS_PACKAGE := com.google.ortools
|
||||
JAVA_ORTOOLS_JAR := $(LIB_DIR)/$(JAVA_ORTOOLS_PACKAGE)$J
|
||||
JAVA_ORTOOLS_NATIVE_LIBS := $(LIB_DIR)/$(LIB_PREFIX)jniortools.$(JNI_LIB_EXT)
|
||||
JAVAFLAGS := -Djava.library.path=$(LIB_DIR)
|
||||
|
||||
# Main target
|
||||
@@ -48,14 +49,34 @@ check_java: java
|
||||
test_java: java
|
||||
package_java: java
|
||||
else
|
||||
java: $(JAVA_OR_TOOLS_LIBS)
|
||||
java: $(JAVA_ORTOOLS_JAR)
|
||||
check_java: check_java_pimpl
|
||||
test_java: test_java_pimpl
|
||||
package_java: java
|
||||
@echo NOT IMPLEMENTED
|
||||
package_java: package_java_pimpl
|
||||
BUILT_LANGUAGES +=, Java
|
||||
endif
|
||||
|
||||
# Detect RuntimeIDentifier
|
||||
ifeq ($(OS),Windows)
|
||||
JAVA_NATIVE_IDENTIFIER=win32-x86-64
|
||||
else
|
||||
ifeq ($(OS),Linux)
|
||||
JAVA_NATIVE_IDENTIFIER=linux-x86-64
|
||||
else
|
||||
ifeq ($(OS),Darwin)
|
||||
JAVA_NATIVE_IDENTIFIER=darwin
|
||||
else
|
||||
$(error OS unknown !)
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
|
||||
# All libraries and dependencies
|
||||
JAVA_ORTOOLS_NATIVE_PROJECT := ortools-$(JAVA_NATIVE_IDENTIFIER)
|
||||
JAVA_ORTOOLS_PROJECT := ortools-java
|
||||
JAVA_NATIVE_PATH := $(TEMP_JAVA_DIR)$S$(JAVA_ORTOOLS_NATIVE_PROJECT)$Ssrc$Smain
|
||||
JAVA_PATH := $(TEMP_JAVA_DIR)$S$(JAVA_ORTOOLS_PROJECT)$Ssrc$Smain
|
||||
|
||||
$(GEN_DIR)/java/com/google/ortools/algorithms:
|
||||
-$(MKDIR_P) $(GEN_PATH)$Sjava$Scom$Sgoogle$Sortools$Salgorithms
|
||||
|
||||
@@ -219,7 +240,7 @@ $(OBJ_DIR)/swig/util_java_wrap.$O: \
|
||||
-c $(GEN_PATH)$Sortools$Sutil$Sutil_java_wrap.cc \
|
||||
$(OBJ_OUT)$(OBJ_DIR)$Sswig$Sutil_java_wrap.$O
|
||||
|
||||
$(JAVA_OR_TOOLS_NATIVE_LIBS): \
|
||||
$(JAVA_ORTOOLS_NATIVE_LIBS): \
|
||||
$(OR_TOOLS_LIBS) \
|
||||
$(OBJ_DIR)/swig/constraint_solver_java_wrap.$O \
|
||||
$(OBJ_DIR)/swig/knapsack_solver_java_wrap.$O \
|
||||
@@ -285,8 +306,8 @@ $(GEN_DIR)/java/com/google/ortools/util/OptionalBoolean.java: \
|
||||
| $(GEN_DIR)/java/com/google/ortools/util
|
||||
$(PROTOC) --proto_path=$(SRC_DIR) --java_out=$(GEN_PATH)$Sjava $(SRC_DIR)$Sortools$Sutil$Soptional_boolean.proto
|
||||
|
||||
$(JAVA_OR_TOOLS_LIBS): \
|
||||
$(JAVA_OR_TOOLS_NATIVE_LIBS) \
|
||||
$(JAVA_ORTOOLS_JAR): \
|
||||
$(JAVA_ORTOOLS_NATIVE_LIBS) \
|
||||
$(LIB_DIR)/protobuf.jar \
|
||||
$(GEN_DIR)/java/com/google/ortools/constraintsolver/SolverParameters.java \
|
||||
$(GEN_DIR)/java/com/google/ortools/constraintsolver/SearchLimitProtobuf.java \
|
||||
@@ -313,7 +334,7 @@ $(JAVA_OR_TOOLS_LIBS): \
|
||||
## Java SOURCE ##
|
||||
###################
|
||||
ifeq ($(SOURCE_SUFFIX),.java) # Those rules will be used if SOURCE contain a .java file
|
||||
$(CLASS_DIR)/$(SOURCE_NAME): $(SOURCE) $(JAVA_OR_TOOLS_LIBS) | $(CLASS_DIR)
|
||||
$(CLASS_DIR)/$(SOURCE_NAME): $(SOURCE) $(JAVA_ORTOOLS_JAR) | $(CLASS_DIR)
|
||||
-$(DELREC) $(CLASS_DIR)$S$(SOURCE_NAME)
|
||||
-$(MKDIR_P) $(CLASS_DIR)$S$(SOURCE_NAME)
|
||||
"$(JAVAC_BIN)" -encoding UTF-8 -d $(CLASS_DIR)$S$(SOURCE_NAME) \
|
||||
@@ -337,56 +358,56 @@ endif
|
||||
#############################
|
||||
## Java Examples/Samples ##
|
||||
#############################
|
||||
$(CLASS_DIR)/%: $(TEST_DIR)/%.java $(JAVA_OR_TOOLS_LIBS) | $(CLASS_DIR)
|
||||
$(CLASS_DIR)/%: $(TEST_DIR)/%.java $(JAVA_ORTOOLS_JAR) | $(CLASS_DIR)
|
||||
-$(DELREC) $(CLASS_DIR)$S$*
|
||||
-$(MKDIR_P) $(CLASS_DIR)$S$*
|
||||
"$(JAVAC_BIN)" -encoding UTF-8 -d $(CLASS_DIR)$S$* \
|
||||
-cp $(LIB_DIR)$Scom.google.ortools.jar$(CPSEP)$(LIB_DIR)$Sprotobuf.jar \
|
||||
$(TEST_PATH)$S$*.java
|
||||
|
||||
$(CLASS_DIR)/%: $(JAVA_EX_DIR)/%.java $(JAVA_OR_TOOLS_LIBS) | $(CLASS_DIR)
|
||||
$(CLASS_DIR)/%: $(JAVA_EX_DIR)/%.java $(JAVA_ORTOOLS_JAR) | $(CLASS_DIR)
|
||||
-$(DELREC) $(CLASS_DIR)$S$*
|
||||
-$(MKDIR_P) $(CLASS_DIR)$S$*
|
||||
"$(JAVAC_BIN)" -encoding UTF-8 -d $(CLASS_DIR)$S$* \
|
||||
-cp $(LIB_DIR)$Scom.google.ortools.jar$(CPSEP)$(LIB_DIR)$Sprotobuf.jar \
|
||||
$(JAVA_EX_PATH)$S$*.java
|
||||
|
||||
$(CLASS_DIR)/%: $(CONTRIB_EX_DIR)/%.java $(JAVA_OR_TOOLS_LIBS) | $(CLASS_DIR)
|
||||
$(CLASS_DIR)/%: $(CONTRIB_EX_DIR)/%.java $(JAVA_ORTOOLS_JAR) | $(CLASS_DIR)
|
||||
-$(DELREC) $(CLASS_DIR)$S$*
|
||||
-$(MKDIR_P) $(CLASS_DIR)$S$*
|
||||
"$(JAVAC_BIN)" -encoding UTF-8 -d $(CLASS_DIR)$S$* \
|
||||
-cp $(LIB_DIR)$Scom.google.ortools.jar$(CPSEP)$(LIB_DIR)$Sprotobuf.jar \
|
||||
$(CONTRIB_EX_PATH)$S$*.java
|
||||
|
||||
$(CLASS_DIR)/%: $(SRC_DIR)/ortools/algorithms/samples/%.java $(JAVA_OR_TOOLS_LIBS) | $(CLASS_DIR)
|
||||
$(CLASS_DIR)/%: $(SRC_DIR)/ortools/algorithms/samples/%.java $(JAVA_ORTOOLS_JAR) | $(CLASS_DIR)
|
||||
-$(DELREC) $(CLASS_DIR)$S$*
|
||||
-$(MKDIR_P) $(CLASS_DIR)$S$*
|
||||
"$(JAVAC_BIN)" -encoding UTF-8 -d $(CLASS_DIR)$S$* \
|
||||
-cp $(LIB_DIR)$Scom.google.ortools.jar$(CPSEP)$(LIB_DIR)$Sprotobuf.jar \
|
||||
ortools$Salgorithms$Ssamples$S$*.java
|
||||
|
||||
$(CLASS_DIR)/%: $(SRC_DIR)/ortools/constraint_solver/samples/%.java $(JAVA_OR_TOOLS_LIBS) | $(CLASS_DIR)
|
||||
$(CLASS_DIR)/%: $(SRC_DIR)/ortools/constraint_solver/samples/%.java $(JAVA_ORTOOLS_JAR) | $(CLASS_DIR)
|
||||
-$(DELREC) $(CLASS_DIR)$S$*
|
||||
-$(MKDIR_P) $(CLASS_DIR)$S$*
|
||||
"$(JAVAC_BIN)" -encoding UTF-8 -d $(CLASS_DIR)$S$* \
|
||||
-cp $(LIB_DIR)$Scom.google.ortools.jar$(CPSEP)$(LIB_DIR)$Sprotobuf.jar \
|
||||
ortools$Sconstraint_solver$Ssamples$S$*.java
|
||||
|
||||
$(CLASS_DIR)/%: $(SRC_DIR)/ortools/graph/samples/%.java $(JAVA_OR_TOOLS_LIBS) | $(CLASS_DIR)
|
||||
$(CLASS_DIR)/%: $(SRC_DIR)/ortools/graph/samples/%.java $(JAVA_ORTOOLS_JAR) | $(CLASS_DIR)
|
||||
-$(DELREC) $(CLASS_DIR)$S$*
|
||||
-$(MKDIR_P) $(CLASS_DIR)$S$*
|
||||
"$(JAVAC_BIN)" -encoding UTF-8 -d $(CLASS_DIR)$S$* \
|
||||
-cp $(LIB_DIR)$Scom.google.ortools.jar$(CPSEP)$(LIB_DIR)$Sprotobuf.jar \
|
||||
ortools$Sgraph$Ssamples$S$*.java
|
||||
|
||||
$(CLASS_DIR)/%: $(SRC_DIR)/ortools/linear_solver/samples/%.java $(JAVA_OR_TOOLS_LIBS) | $(CLASS_DIR)
|
||||
$(CLASS_DIR)/%: $(SRC_DIR)/ortools/linear_solver/samples/%.java $(JAVA_ORTOOLS_JAR) | $(CLASS_DIR)
|
||||
-$(DELREC) $(CLASS_DIR)$S$*
|
||||
-$(MKDIR_P) $(CLASS_DIR)$S$*
|
||||
"$(JAVAC_BIN)" -encoding UTF-8 -d $(CLASS_DIR)$S$* \
|
||||
-cp $(LIB_DIR)$Scom.google.ortools.jar$(CPSEP)$(LIB_DIR)$Sprotobuf.jar \
|
||||
ortools$Slinear_solver$Ssamples$S$*.java
|
||||
|
||||
$(CLASS_DIR)/%: $(SRC_DIR)/ortools/sat/samples/%.java $(JAVA_OR_TOOLS_LIBS) | $(CLASS_DIR)
|
||||
$(CLASS_DIR)/%: $(SRC_DIR)/ortools/sat/samples/%.java $(JAVA_ORTOOLS_JAR) | $(CLASS_DIR)
|
||||
-$(DELREC) $(CLASS_DIR)$S$*
|
||||
-$(MKDIR_P) $(CLASS_DIR)$S$*
|
||||
"$(JAVAC_BIN)" -encoding UTF-8 -d $(CLASS_DIR)$S$* \
|
||||
@@ -596,6 +617,68 @@ clean_java:
|
||||
-$(DEL) $(OBJ_DIR)$Sswig$S*_java_wrap.$O
|
||||
-$(DEL) $(LIB_DIR)$S$(LIB_PREFIX)jni*.$(JNI_LIB_EXT)
|
||||
-$(DEL) $(LIB_DIR)$S*.jar
|
||||
-$(DELREC) temp_java
|
||||
|
||||
###################
|
||||
## Maven package ##
|
||||
###################
|
||||
$(TEMP_JAVA_DIR):
|
||||
-$(MKDIR) $(TEMP_JAVA_DIR)
|
||||
|
||||
$(TEMP_JAVA_DIR)/$(JAVA_ORTOOLS_PROJECT): | $(TEMP_JAVA_DIR)
|
||||
-$(MKDIR) $(TEMP_JAVA_DIR)$S$(JAVA_ORTOOLS_PROJECT)
|
||||
|
||||
$(TEMP_JAVA_DIR)/$(JAVA_ORTOOLS_NATIVE_PROJECT): | $(TEMP_JAVA_DIR)
|
||||
-$(MKDIR) $(TEMP_JAVA_DIR)$S$(JAVA_ORTOOLS_NATIVE_PROJECT)
|
||||
|
||||
package_java_pimpl: java_package
|
||||
|
||||
$(TEMP_JAVA_DIR)/$(JAVA_ORTOOLS_NATIVE_PROJECT)/pom.xml: \
|
||||
${SRC_DIR}/ortools/java/pom-native.xml.in \
|
||||
| $(TEMP_JAVA_DIR)/$(JAVA_ORTOOLS_NATIVE_PROJECT)
|
||||
$(SED) -e "s/@PROJECT_VERSION@/$(OR_TOOLS_VERSION)/" \
|
||||
ortools$Sjava$Spom-native.xml.in \
|
||||
> $(TEMP_JAVA_DIR)$S$(JAVA_ORTOOLS_NATIVE_PROJECT)$Spom.xml
|
||||
$(SED) -i -e 's/@JAVA_PACKAGE@/$(JAVA_ORTOOLS_PACKAGE)/' \
|
||||
$(TEMP_JAVA_DIR)$S$(JAVA_ORTOOLS_NATIVE_PROJECT)$Spom.xml
|
||||
$(SED) -i -e 's/@JAVA_NATIVE_PROJECT@/$(JAVA_ORTOOLS_NATIVE_PROJECT)/' \
|
||||
$(TEMP_JAVA_DIR)$S$(JAVA_ORTOOLS_NATIVE_PROJECT)$Spom.xml
|
||||
|
||||
java_runtime: \
|
||||
java \
|
||||
$(TEMP_JAVA_DIR)/$(JAVA_ORTOOLS_NATIVE_PROJECT)/pom.xml
|
||||
$(MKDIR_P) $(JAVA_NATIVE_PATH)$Sresources$S$(JAVA_NATIVE_IDENTIFIER)
|
||||
$(COPY) $(JAVA_ORTOOLS_NATIVE_LIBS) $(JAVA_NATIVE_PATH)$Sresources$S$(JAVA_NATIVE_IDENTIFIER)
|
||||
ifeq ($(SYSTEM),unix)
|
||||
$(COPY) $(OR_TOOLS_LIBS) $(JAVA_NATIVE_PATH)$Sresources$S$(JAVA_NATIVE_IDENTIFIER)
|
||||
endif
|
||||
cd $(TEMP_JAVA_DIR)$S$(JAVA_ORTOOLS_NATIVE_PROJECT) && "$(MVN_BIN)" compile
|
||||
cd $(TEMP_JAVA_DIR)$S$(JAVA_ORTOOLS_NATIVE_PROJECT) && "$(MVN_BIN)" package
|
||||
cd $(TEMP_JAVA_DIR)$S$(JAVA_ORTOOLS_NATIVE_PROJECT) && "$(MVN_BIN)" install
|
||||
|
||||
|
||||
$(TEMP_JAVA_DIR)/$(JAVA_ORTOOLS_PROJECT)/pom.xml: \
|
||||
${SRC_DIR}/ortools/java/pom-local.xml.in \
|
||||
| $(TEMP_JAVA_DIR)/$(JAVA_ORTOOLS_PROJECT)
|
||||
$(SED) -e "s/@PROJECT_VERSION@/$(OR_TOOLS_VERSION)/" \
|
||||
ortools$Sjava$Spom-local.xml.in \
|
||||
> $(TEMP_JAVA_DIR)$S$(JAVA_ORTOOLS_PROJECT)$Spom.xml
|
||||
$(SED) -i -e 's/@JAVA_PACKAGE@/$(JAVA_ORTOOLS_PACKAGE)/' \
|
||||
$(TEMP_JAVA_DIR)$S$(JAVA_ORTOOLS_PROJECT)$Spom.xml
|
||||
$(SED) -i -e 's/@JAVA_NATIVE_PROJECT@/$(JAVA_ORTOOLS_NATIVE_PROJECT)/' \
|
||||
$(TEMP_JAVA_DIR)$S$(JAVA_ORTOOLS_PROJECT)$Spom.xml
|
||||
$(SED) -i -e 's/@JAVA_PROJECT@/$(JAVA_ORTOOLS_PROJECT)/' \
|
||||
$(TEMP_JAVA_DIR)$S$(JAVA_ORTOOLS_PROJECT)$Spom.xml
|
||||
|
||||
java_package: \
|
||||
java_runtime \
|
||||
$(TEMP_JAVA_DIR)/$(JAVA_ORTOOLS_PROJECT)/pom.xml
|
||||
$(MKDIR_P) $(JAVA_PATH)$Sjava
|
||||
$(COPYREC) $(SRC_DIR)$Sortools$Sjava$Scom $(GEN_PATH)$Sjava$Scom $(JAVA_PATH)$Sjava
|
||||
$(COPY) $(SRC_DIR)$Sortools$Sjava$SLoader.java $(JAVA_PATH)$Sjava$Scom$Sgoogle$Sortools
|
||||
cd $(TEMP_JAVA_DIR)$S$(JAVA_ORTOOLS_PROJECT) && "$(MVN_BIN)" compile
|
||||
cd $(TEMP_JAVA_DIR)$S$(JAVA_ORTOOLS_PROJECT) && "$(MVN_BIN)" package
|
||||
cd $(TEMP_JAVA_DIR)$S$(JAVA_ORTOOLS_PROJECT) && "$(MVN_BIN)" install
|
||||
|
||||
#############
|
||||
## DEBUG ##
|
||||
@@ -611,9 +694,13 @@ detect_java:
|
||||
@echo JAR_BIN = $(JAR_BIN)
|
||||
@echo JAVA_BIN = $(JAVA_BIN)
|
||||
@echo JAVAFLAGS = $(JAVAFLAGS)
|
||||
@echo JAVA_OR_TOOLS_LIBS = $(JAVA_OR_TOOLS_LIBS)
|
||||
@echo JAVA_ORTOOLS_JAR = $(JAVA_ORTOOLS_JAR)
|
||||
@echo SWIG_BINARY = $(SWIG_BINARY)
|
||||
@echo SWIG_INC = $(SWIG_INC)
|
||||
@echo MVN_BIN = $(MVN_BIN)
|
||||
@echo JAVA_ORTOOLS_PACKAGE = $(JAVA_ORTOOLS_PACKAGE)
|
||||
@echo JAVA_ORTOOLS_NATIVE_PROJECT = $(JAVA_ORTOOLS_NATIVE_PROJECT)
|
||||
@echo JAVA_ORTOOLS_PROJECT = $(JAVA_ORTOOLS_PROJECT)
|
||||
ifeq ($(SYSTEM),win)
|
||||
@echo off & echo(
|
||||
else
|
||||
|
||||
Reference in New Issue
Block a user