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
This commit is contained in:
Mizux Seiha
2022-06-02 15:37:05 +02:00
parent f76a7c5ffb
commit 6376c0e72f
6 changed files with 59 additions and 39 deletions

View File

@@ -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

View File

@@ -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()

View File

@@ -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

View File

@@ -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

View File

@@ -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)

View File

@@ -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