From 6376c0e72f67ff3f69685de4218c4ccdf46c623a Mon Sep 17 00:00:00 2001 From: Mizux Seiha Date: Thu, 2 Jun 2022 15:37:05 +0200 Subject: [PATCH] version: be able to override MAJOR/MINOR/PATCH * now, we can use OR_TOOLS_* to overload version name * rename GIT_REVISION in OR_TOOLS_PATCH for consistency --- Makefile | 4 +++- cmake/utils.cmake | 41 ++++++++++++++++++++++-------------- makefiles/Makefile.dotnet.mk | 10 ++++----- makefiles/Makefile.java.mk | 6 +++--- makefiles/Makefile.port.mk | 35 ++++++++++++++++++------------ makefiles/Makefile.python.mk | 2 +- 6 files changed, 59 insertions(+), 39 deletions(-) diff --git a/Makefile b/Makefile index 3a4f9a68cf..9c3295f9e2 100644 --- a/Makefile +++ b/Makefile @@ -47,7 +47,9 @@ SUFFIXES = .SECONDARY: # Read version. -include $(OR_ROOT)Version.txt +ifeq ($(OR_TOOLS_MAJOR)$(OR_TOOLS_MINOR),) + include $(OR_ROOT)Version.txt +endif # We try to detect the platform, and load system specific macros. include $(OR_ROOT)makefiles/Makefile.port.mk diff --git a/cmake/utils.cmake b/cmake/utils.cmake index e2b5656967..684a646428 100644 --- a/cmake/utils.cmake +++ b/cmake/utils.cmake @@ -23,23 +23,32 @@ function(get_patch_from_git VERSION_PATCH VERSION_MAJOR) endfunction() function(set_version VERSION) - # Get Major and Minor from Version.txt - file(STRINGS "Version.txt" VERSION_STR) - foreach(STR ${VERSION_STR}) - if(${STR} MATCHES "OR_TOOLS_MAJOR=(.*)") - set(MAJOR ${CMAKE_MATCH_1}) - endif() - if(${STR} MATCHES "OR_TOOLS_MINOR=(.*)") - set(MINOR ${CMAKE_MATCH_1}) - endif() - endforeach() - - # Compute Patch if .git is present otherwise set it to 9999 - get_filename_component(GIT_DIR ".git" ABSOLUTE) - if(EXISTS ${GIT_DIR}) - get_patch_from_git(PATCH ${MAJOR}) + if(DEFINED ENV{OR_TOOLS_MAJOR} AND DEFINED ENV{OR_TOOLS_MINOR}) + set(MAJOR $ENV{OR_TOOLS_MAJOR}) + set(MINOR $ENV{OR_TOOLS_MINOR}) else() - set(PATCH 9999) + # Get Major and Minor from Version.txt + file(STRINGS "Version.txt" VERSION_STR) + foreach(STR ${VERSION_STR}) + if(${STR} MATCHES "OR_TOOLS_MAJOR=(.*)") + set(MAJOR ${CMAKE_MATCH_1}) + endif() + if(${STR} MATCHES "OR_TOOLS_MINOR=(.*)") + set(MINOR ${CMAKE_MATCH_1}) + endif() + endforeach() + endif() + + if(DEFINED ENV{OR_TOOLS_PATCH}) + set(PATCH $ENV{OR_TOOLS_PATCH}) + else() + # Compute Patch if .git is present otherwise set it to 9999 + get_filename_component(GIT_DIR ".git" ABSOLUTE) + if(EXISTS ${GIT_DIR}) + get_patch_from_git(PATCH ${MAJOR}) + else() + set(PATCH 9999) + endif() endif() set(${VERSION} "${MAJOR}.${MINOR}.${PATCH}" PARENT_SCOPE) endfunction() diff --git a/makefiles/Makefile.dotnet.mk b/makefiles/Makefile.dotnet.mk index 4083831b9e..a49b5a1004 100644 --- a/makefiles/Makefile.dotnet.mk +++ b/makefiles/Makefile.dotnet.mk @@ -104,7 +104,7 @@ $(TEMP_DOTNET_DIR)/$1/%/%.csproj: \ $(TEMP_DOTNET_DIR)$S$1$S$$*$S$$*.csproj $(SED) -i -e 's/@PROJECT_VERSION_MINOR@/$(OR_TOOLS_MINOR)/' \ $(TEMP_DOTNET_DIR)$S$1$S$$*$S$$*.csproj - $(SED) -i -e 's/@PROJECT_VERSION_PATCH@/$(GIT_REVISION)/' \ + $(SED) -i -e 's/@PROJECT_VERSION_PATCH@/$(OR_TOOLS_PATCH)/' \ $(TEMP_DOTNET_DIR)$S$1$S$$*$S$$*.csproj $(SED) -i -e 's/@FILE_NAME@/$$*.cs/' \ $(TEMP_DOTNET_DIR)$S$1$S$$*$S$$*.csproj @@ -155,7 +155,7 @@ $(TEMP_DOTNET_DIR)/$1/%/%.csproj: \ $(TEMP_DOTNET_DIR)$S$1$S$$*$S$$*.csproj $(SED) -i -e 's/@PROJECT_VERSION_MINOR@/$(OR_TOOLS_MINOR)/' \ $(TEMP_DOTNET_DIR)$S$1$S$$*$S$$*.csproj - $(SED) -i -e 's/@PROJECT_VERSION_PATCH@/$(GIT_REVISION)/' \ + $(SED) -i -e 's/@PROJECT_VERSION_PATCH@/$(OR_TOOLS_PATCH)/' \ $(TEMP_DOTNET_DIR)$S$1$S$$*$S$$*.csproj $(SED) -i -e 's/@FILE_NAME@/$$*.cs/' \ $(TEMP_DOTNET_DIR)$S$1$S$$*$S$$*.csproj @@ -207,7 +207,7 @@ $(TEMP_DOTNET_DIR)/tests/%/%.csproj: \ $(TEMP_DOTNET_DIR)$Stests$S$*$S$*.csproj $(SED) -i -e 's/@PROJECT_VERSION_MINOR@/$(OR_TOOLS_MINOR)/' \ $(TEMP_DOTNET_DIR)$Stests$S$*$S$*.csproj - $(SED) -i -e 's/@PROJECT_VERSION_PATCH@/$(GIT_REVISION)/' \ + $(SED) -i -e 's/@PROJECT_VERSION_PATCH@/$(OR_TOOLS_PATCH)/' \ $(TEMP_DOTNET_DIR)$Stests$S$*$S$*.csproj $(SED) -i -e 's/@DOTNET_PROJECT@/$(DOTNET_ORTOOLS_PROJECT)/' \ $(TEMP_DOTNET_DIR)$Stests$S$*$S$*.csproj @@ -566,7 +566,7 @@ $(TEMP_DOTNET_DIR)/ortools_examples/examples/dotnet/%.csproj: \ $(TEMP_DOTNET_DIR)$Sortools_examples$Sexamples$Sdotnet$S$$*.csproj $(SED) -i -e 's/@PROJECT_VERSION_MINOR@/$(OR_TOOLS_MINOR)/' \ $(TEMP_DOTNET_DIR)$Sortools_examples$Sexamples$Sdotnet$S$$*.csproj - $(SED) -i -e 's/@PROJECT_VERSION_PATCH@/$(GIT_REVISION)/' \ + $(SED) -i -e 's/@PROJECT_VERSION_PATCH@/$(OR_TOOLS_PATCH)/' \ $(TEMP_DOTNET_DIR)$Sortools_examples$Sexamples$Sdotnet$S$$*.csproj $(SED) -i -e 's/@DOTNET_PACKAGES_DIR@/./' \ $(TEMP_DOTNET_DIR)$Sortools_examples$Sexamples$Sdotnet$S$$*.csproj @@ -597,7 +597,7 @@ $(TEMP_DOTNET_DIR)/ortools_examples/examples/dotnet/%.csproj: \ $(TEMP_DOTNET_DIR)$Sortools_examples$Sexamples$Sdotnet$S$$*.csproj $(SED) -i -e 's/@PROJECT_VERSION_MINOR@/$(OR_TOOLS_MINOR)/' \ $(TEMP_DOTNET_DIR)$Sortools_examples$Sexamples$Sdotnet$S$$*.csproj - $(SED) -i -e 's/@PROJECT_VERSION_PATCH@/$(GIT_REVISION)/' \ + $(SED) -i -e 's/@PROJECT_VERSION_PATCH@/$(OR_TOOLS_PATCH)/' \ $(TEMP_DOTNET_DIR)$Sortools_examples$Sexamples$Sdotnet$S$$*.csproj $(SED) -i -e 's/@DOTNET_PACKAGES_DIR@/./' \ $(TEMP_DOTNET_DIR)$Sortools_examples$Sexamples$Sdotnet$S$$*.csproj diff --git a/makefiles/Makefile.java.mk b/makefiles/Makefile.java.mk index 9b7d381e8b..85fb41a520 100644 --- a/makefiles/Makefile.java.mk +++ b/makefiles/Makefile.java.mk @@ -132,7 +132,7 @@ $(TEMP_JAVA_DIR)/$1/%/pom.xml: \ $(TEMP_JAVA_DIR)$S$1$S$$*$Spom.xml $(SED) -i -e 's/@PROJECT_VERSION_MINOR@/$(OR_TOOLS_MINOR)/' \ $(TEMP_JAVA_DIR)$S$1$S$$*$Spom.xml - $(SED) -i -e 's/@PROJECT_VERSION_PATCH@/$(GIT_REVISION)/' \ + $(SED) -i -e 's/@PROJECT_VERSION_PATCH@/$(OR_TOOLS_PATCH)/' \ $(TEMP_JAVA_DIR)$S$1$S$$*$Spom.xml $(SED) -i -e 's/@JAVA_PROJECT@/$(JAVA_ORTOOLS_PROJECT)/' \ $(TEMP_JAVA_DIR)$S$1$S$$*$Spom.xml @@ -182,7 +182,7 @@ $(TEMP_JAVA_DIR)/$1/%/pom.xml: \ $(TEMP_JAVA_DIR)$S$1$S$$*$Spom.xml $(SED) -i -e 's/@PROJECT_VERSION_MINOR@/$(OR_TOOLS_MINOR)/' \ $(TEMP_JAVA_DIR)$S$1$S$$*$Spom.xml - $(SED) -i -e 's/@PROJECT_VERSION_PATCH@/$(GIT_REVISION)/' \ + $(SED) -i -e 's/@PROJECT_VERSION_PATCH@/$(OR_TOOLS_PATCH)/' \ $(TEMP_JAVA_DIR)$S$1$S$$*$Spom.xml $(SED) -i -e 's/@JAVA_PROJECT@/$(JAVA_ORTOOLS_PROJECT)/' \ $(TEMP_JAVA_DIR)$S$1$S$$*$Spom.xml @@ -231,7 +231,7 @@ $(TEMP_JAVA_DIR)/tests/%/pom.xml: \ $(TEMP_JAVA_DIR)$Stests$S$*$Spom.xml $(SED) -i -e 's/@PROJECT_VERSION_MINOR@/$(OR_TOOLS_MINOR)/' \ $(TEMP_JAVA_DIR)$Stests$S$*$Spom.xml - $(SED) -i -e 's/@PROJECT_VERSION_PATCH@/$(GIT_REVISION)/' \ + $(SED) -i -e 's/@PROJECT_VERSION_PATCH@/$(OR_TOOLS_PATCH)/' \ $(TEMP_JAVA_DIR)$Stests$S$*$Spom.xml $(SED) -i -e 's/@JAVA_PROJECT@/$(JAVA_ORTOOLS_PROJECT)/' \ $(TEMP_JAVA_DIR)$Stests$S$*$Spom.xml diff --git a/makefiles/Makefile.port.mk b/makefiles/Makefile.port.mk index f93f166cd5..0cb35b3109 100644 --- a/makefiles/Makefile.port.mk +++ b/makefiles/Makefile.port.mk @@ -266,26 +266,33 @@ BUILD_DIR := $(OR_ROOT)build_make INSTALL_DIR ?= $(OR_ROOT)install_make # Get github revision level -ifneq ($(wildcard .git),) - ifneq ($(wildcard .git/shallow),) - $(warning you are using a shallow copy) - GIT_REVISION:= 9999 - else - GIT_REVISION:= $(shell git rev-list --count v$(OR_TOOLS_MAJOR).0..HEAD) - endif - GIT_HASH:= $(shell git rev-parse --short HEAD) -else - GIT_REVISION:= 9999 - GIT_HASH:= "not_on_git" +ifeq ($(OR_TOOLS_PATCH),) + ifneq ($(wildcard .git),) + ifneq ($(wildcard .git/shallow),) + $(warning you are using a shallow copy) + OR_TOOLS_PATCH:= 9999 + else + OR_TOOLS_PATCH:= $(shell git rev-list --count v$(OR_TOOLS_MAJOR).0..HEAD) + endif + else + $(warning you are not using a .git archive) + OR_TOOLS_PATCH:= 9999 + endif endif -OR_TOOLS_VERSION := $(OR_TOOLS_MAJOR).$(OR_TOOLS_MINOR).$(GIT_REVISION) +OR_TOOLS_VERSION := $(OR_TOOLS_MAJOR).$(OR_TOOLS_MINOR).$(OR_TOOLS_PATCH) OR_TOOLS_SHORT_VERSION := $(OR_TOOLS_MAJOR).$(OR_TOOLS_MINOR) ifdef PRE_RELEASE OR_TOOLS_VERSION := $(OR_TOOLS_VERSION)-beta OR_TOOLS_SHORT_VERSION := $(OR_TOOLS_SHORT_VERSION)-beta endif +ifneq ($(wildcard .git),) + GIT_HASH:= $(shell git rev-parse --short HEAD) +else + GIT_HASH:= "not_on_git" +endif + #FZ_INSTALL_NAME := or-tools_flatzinc_$(PORT)_v$(OR_TOOLS_VERSION) INSTALL_CPP_NAME := or-tools_cpp_$(PORT)_v$(OR_TOOLS_VERSION) INSTALL_DOTNET_NAME := or-tools_dotnet_$(PORT)_v$(OR_TOOLS_VERSION) @@ -304,9 +311,11 @@ detect_port: @echo OS = $(OS) @echo PLATFORM = $(PLATFORM) @echo PORT = $(PORT) + @echo OR_TOOLS_MAJOR = $(OR_TOOLS_MAJOR) + @echo OR_TOOLS_MINOR = $(OR_TOOLS_MINOR) + @echo OR_TOOLS_PATCH = $(OR_TOOLS_PATCH) @echo OR_TOOLS_VERSION = $(OR_TOOLS_VERSION) @echo OR_TOOLS_SHORT_VERSION = $(OR_TOOLS_SHORT_VERSION) - @echo GIT_REVISION = $(GIT_REVISION) @echo GIT_HASH = $(GIT_HASH) @echo CMAKE = $(CMAKE) @echo CMAKE_PLATFORM = $(CMAKE_PLATFORM) diff --git a/makefiles/Makefile.python.mk b/makefiles/Makefile.python.mk index 37fad8cf3e..797d6a172e 100644 --- a/makefiles/Makefile.python.mk +++ b/makefiles/Makefile.python.mk @@ -432,7 +432,7 @@ $(PYPI_ARCHIVE_TEMP_DIR)/ortools/LICENSE: LICENSE | $(PYPI_ARCHIVE_TEMP_DIR)/ort ifndef PRE_RELEASE OR_TOOLS_PYTHON_VERSION := $(OR_TOOLS_VERSION) else -OR_TOOLS_PYTHON_VERSION := $(OR_TOOLS_MAJOR).$(OR_TOOLS_MINOR)b$(GIT_REVISION) +OR_TOOLS_PYTHON_VERSION := $(OR_TOOLS_MAJOR).$(OR_TOOLS_MINOR)b$(OR_TOOLS_PATCH) endif