ci: Add Makefile CI
* Add documentation * Add docker layer diagram * Add Docker/Makefile ci * Add gh workflow * gh workflow disable fail-fast
This commit is contained in:
29
.github/workflows/docker_make.yml
vendored
Normal file
29
.github/workflows/docker_make.yml
vendored
Normal file
@@ -0,0 +1,29 @@
|
||||
name: Docker Make
|
||||
|
||||
on: [push, pull_request]
|
||||
|
||||
jobs:
|
||||
Distros:
|
||||
runs-on: ubuntu-latest
|
||||
strategy:
|
||||
matrix:
|
||||
distro: [alpine, archlinux, centos, debian, fedora, opensuse, ubuntu]
|
||||
lang: [cpp, python, dotnet, java]
|
||||
fail-fast: false
|
||||
env:
|
||||
DISTRO: ${{ matrix.distro }}
|
||||
LANG: ${{ matrix.lang }}
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- name: Build base image
|
||||
run: make --directory=makefiles ${DISTRO}_base
|
||||
- name: Build env image
|
||||
run: make --directory=makefiles ${DISTRO}_${LANG}_env
|
||||
- name: Build devel image
|
||||
run: make --directory=makefiles ${DISTRO}_${LANG}_devel
|
||||
- name: Build project
|
||||
run: make --directory=makefiles ${DISTRO}_${LANG}_build
|
||||
- name: Test project
|
||||
run: make --directory=makefiles ${DISTRO}_${LANG}_test
|
||||
- name: Package project
|
||||
run: make --directory=makefiles ${DISTRO}_${LANG}_package
|
||||
304
makefiles/Makefile
Normal file
304
makefiles/Makefile
Normal file
@@ -0,0 +1,304 @@
|
||||
PROJECT := ortools
|
||||
BUILD_SYSTEM := make
|
||||
BRANCH := $(shell git rev-parse --abbrev-ref HEAD)
|
||||
SHA1 := $(shell git rev-parse --verify HEAD)
|
||||
|
||||
# General commands
|
||||
.PHONY: help
|
||||
BOLD=\e[1m
|
||||
RESET=\e[0m
|
||||
|
||||
help:
|
||||
@echo -e "${BOLD}SYNOPSIS${RESET}"
|
||||
@echo -e "\tmake <target> [NOCACHE=1]"
|
||||
@echo
|
||||
@echo -e "${BOLD}DESCRIPTION${RESET}"
|
||||
@echo -e "\ttest build inside docker container to have a reproductible build."
|
||||
@echo
|
||||
@echo -e "${BOLD}MAKE TARGETS${RESET}"
|
||||
@echo -e "\t${BOLD}help${RESET}: display this help and exit."
|
||||
@echo
|
||||
@echo -e "\t${BOLD}<prestage>${RESET}: build <prestage> docker images for ALL DISTROS."
|
||||
@echo -e "\t${BOLD}<distro>_<prestage>${RESET}: build the <prestage> docker image for a specific distro."
|
||||
@echo -e "\t${BOLD}save_<prestage>${RESET}: Save <prestage> docker images for ALL DISTROS."
|
||||
@echo -e "\t${BOLD}save_<distro>_<prestage>${RESET}: Save the <prestage> docker image for a specific distro."
|
||||
@echo -e "\t${BOLD}sh_<distro>_<prestage>${RESET}: run a container using the <prestage> docker image specified (debug purpose)."
|
||||
@echo
|
||||
@echo -e "\t${BOLD}<stage>${RESET}: build <stage> docker images for ALL DISTROS and ALL LANGUAGES."
|
||||
@echo -e "\t${BOLD}<distro>_<stage>${RESET}: build <stage> docker images for a specific distro for ALL LANGUAGES."
|
||||
@echo -e "\t${BOLD}<lang>_<stage>${RESET}: build <stage> docker images for ALL DISTROS for a specific language."
|
||||
@echo -e "\t${BOLD}<distro>_<lang>_<stage>${RESET}: build the <stage> docker image for a specific distro for a specific language."
|
||||
@echo -e "\t${BOLD}save_<stage>${RESET}: Save <stage> docker images for ALL DISTROS for ALL LANGUAGES."
|
||||
@echo -e "\t${BOLD}save_<distro>_<stage>${RESET}: Save <stage> docker images for a specific distro for ALL LANGUAGES."
|
||||
@echo -e "\t${BOLD}save_<lang>_<stage>${RESET}: Save <stage> docker images for ALL DISTRO for a specific language."
|
||||
@echo -e "\t${BOLD}save_<distro>_<lang>_<stage>${RESET}: Save the <stage> docker image for a specific distro for a specific language."
|
||||
@echo -e "\t${BOLD}sh_<distro>_<lang>_<stage>${RESET}: run a container using the <stage> docker image specified (debug purpose)."
|
||||
@echo
|
||||
@echo -e "\t${BOLD}<distro>${RESET}:"
|
||||
@echo -e "\t\t${BOLD}alpine${RESET} (edge)"
|
||||
@echo -e "\t\t${BOLD}archlinux${RESET} (latest)"
|
||||
@echo -e "\t\t${BOLD}centos${RESET} (latest)"
|
||||
@echo -e "\t\t${BOLD}debian${RESET} (latest)"
|
||||
@echo -e "\t\t${BOLD}fedora${RESET} (latest)"
|
||||
@echo -e "\t\t${BOLD}opensuse${RESET} (tumbleweed)"
|
||||
@echo -e "\t\t${BOLD}ubuntu${RESET} (rolling)"
|
||||
@echo -e "\te.g. 'make test_ubuntu'"
|
||||
@echo
|
||||
@echo -e "\t${BOLD}<prestage>${RESET}:"
|
||||
@echo -e "\t\t${BOLD}base${RESET} (need by cpp)"
|
||||
@echo -e "\t\t${BOLD}swig${RESET} (need by .Net, Java and Python)"
|
||||
@echo -e "\te.g. 'make base'"
|
||||
@echo
|
||||
@echo -e "\t${BOLD}<lang>${RESET}:"
|
||||
@echo -e "\t\t${BOLD}cpp${RESET} (C++)"
|
||||
@echo -e "\t\t${BOLD}python${RESET} (Python >= 3)"
|
||||
@echo -e "\t\t${BOLD}java${RESET} (Java >= 8)"
|
||||
@echo -e "\t\t${BOLD}dotnet${RESET} (.Net Core >= 2.1)"
|
||||
@echo -e "\te.g. 'make devel_cpp'"
|
||||
@echo
|
||||
@echo -e "\t${BOLD}<stage>${RESET}:"
|
||||
@echo -e "\t\t${BOLD}env${RESET}"
|
||||
@echo -e "\t\t${BOLD}devel${RESET}"
|
||||
@echo -e "\t\t${BOLD}build${RESET}"
|
||||
@echo -e "\t\t${BOLD}test${RESET}"
|
||||
@echo -e "\t\t${BOLD}package${RESET}"
|
||||
@echo -e "\te.g. 'make build'"
|
||||
@echo
|
||||
@echo
|
||||
@echo -e "\t${BOLD}clean${RESET}: Remove cache and docker image."
|
||||
@echo -e "\t${BOLD}clean_<distro>${RESET}: Remove cache and docker image for the specified distro."
|
||||
@echo
|
||||
@echo -e "\t${BOLD}NOCACHE=1${RESET}: use 'docker build --no-cache' when building container (default use cache)."
|
||||
@echo
|
||||
@echo -e "branch: $(BRANCH)"
|
||||
@echo -e "sha1: $(SHA1)"
|
||||
|
||||
# Need to add cmd_distro to PHONY otherwise target are ignored since they do not
|
||||
# contain recipe (using FORCE do not work here)
|
||||
.PHONY: all
|
||||
all: devel
|
||||
|
||||
# Delete all implicit rules to speed up makefile
|
||||
MAKEFLAGS += --no-builtin-rules
|
||||
.SUFFIXES:
|
||||
# Remove some rules from gmake that .SUFFIXES does not remove.
|
||||
SUFFIXES =
|
||||
# Keep all intermediate files
|
||||
# ToDo: try to remove it later
|
||||
.SECONDARY:
|
||||
|
||||
# Docker image name prefix.
|
||||
IMAGE := ${PROJECT}/${BUILD_SYSTEM}
|
||||
|
||||
ifdef NOCACHE
|
||||
DOCKER_BUILD_CMD := docker build --no-cache
|
||||
else
|
||||
DOCKER_BUILD_CMD := docker build
|
||||
endif
|
||||
|
||||
DOCKER_RUN_CMD := docker run --rm --init --net=host
|
||||
|
||||
# Currently supported distro
|
||||
DISTROS = alpine archlinux centos debian fedora opensuse ubuntu
|
||||
LANGUAGES = cpp python java dotnet
|
||||
|
||||
# $* stem
|
||||
# $< first prerequist
|
||||
# $@ target name
|
||||
|
||||
###############
|
||||
## PRESTAGES ##
|
||||
###############
|
||||
PRESTAGES = base swig
|
||||
define make-prestage-target
|
||||
#$$(info STAGE: $1)
|
||||
#$$(info Create targets: $1 $(addsuffix _$1, $(DISTROS)).)
|
||||
targets_$1 = $(addsuffix _$1, $(DISTROS))
|
||||
.PHONY: $1 $$(targets_$1)
|
||||
$1: $$(targets_$1)
|
||||
$$(targets_$1): %_$1: docker/%/Dockerfile
|
||||
#@docker image rm -f ${IMAGE}:$$*_$1 2>/dev/null
|
||||
${DOCKER_BUILD_CMD} --target=$1 --tag ${IMAGE}:$$*_$1 -f $$< ..
|
||||
|
||||
#$$(info Create targets: save_$1 $(addprefix save_, $(addsuffix _$1, $(DISTROS))) (debug).)
|
||||
save_targets_$1 = $(addprefix save_, $(addsuffix _$1, $(DISTROS)))
|
||||
.PHONY: save_$1 $$(save_targets_$1)
|
||||
save_$1: $$(save_targets_$1)
|
||||
$$(save_targets_$1): save_%_$1: cache/%/docker_$1.tar
|
||||
cache/%/docker_$1.tar: %_$1
|
||||
@rm -f $$@
|
||||
mkdir -p cache/$$*
|
||||
docker save ${IMAGE}:$$*_$1 -o $$@
|
||||
|
||||
#$$(info Create targets: $(addprefix sh_, $(addsuffix _$1, $(DISTROS))) (debug).)
|
||||
sh_targets_$1 = $(addprefix sh_, $(addsuffix _$1, $(DISTROS)))
|
||||
.PHONY: $$(sh_targets_$1)
|
||||
$$(sh_targets_$1): sh_%_$1: %_$1
|
||||
${DOCKER_RUN_CMD} -it --name ${PROJECT}_${BUILD_SYSTEM}_$$*_$1 ${IMAGE}:$$*_$1
|
||||
|
||||
#$$(info Create targets: $(addprefix clean_, $(addsuffix _$1, $(DISTROS))).)
|
||||
clean_targets_$1 = $(addprefix clean_, $(addsuffix _$1, $(DISTROS)))
|
||||
.PHONY: clean_$1 $$(clean_targets_$1)
|
||||
clean_$1: $$(clean_targets_$1)
|
||||
$$(clean_targets_$1): clean_%_$1:
|
||||
docker image rm -f ${IMAGE}:$$*_$1 2>/dev/null
|
||||
rm -f cache/$$*/docker_$1.tar
|
||||
endef
|
||||
|
||||
$(foreach stage,$(PRESTAGES),$(eval $(call make-prestage-target,$(stage))))
|
||||
|
||||
############
|
||||
## STAGES ##
|
||||
############
|
||||
STAGES = env devel build test package
|
||||
define make-stage-target
|
||||
#$$(info STAGE: $1)
|
||||
#$$(info Create targets: $1 $(addsuffix _$1, $(DISTROS)).)
|
||||
targets_$1 = $(addsuffix _$1, $(DISTROS))
|
||||
.PHONY: $1 $$(targets_$1)
|
||||
$1: $$(targets_$1)
|
||||
$$(targets_$1): %_$1: $(addprefix %_, $(addsuffix _$1, $(LANGUAGES)))
|
||||
|
||||
#$$(info Create targets: $(addsuffix _$1, $(LANGUAGES)).)
|
||||
targets_$1 = $(addsuffix _$1, $(LANGUAGES))
|
||||
.PHONY: $$(targets_$1)
|
||||
$$(targets_$1): %_$1: $(addsuffix _$1, $(addsuffix _%, $(DISTROS)))
|
||||
|
||||
#$$(info Create targets: $(addsuffix _cpp_$1, $(DISTROS)))
|
||||
cpp_targets_$1 = $(addsuffix _cpp_$1, $(DISTROS))
|
||||
#$$(info Create targets: $(addsuffix _dotnet_$1, $(DISTROS)))
|
||||
dotnet_targets_$1 = $(addsuffix _dotnet_$1, $(DISTROS))
|
||||
#$$(info Create targets: $(addsuffix _java_$1, $(DISTROS)))
|
||||
java_targets_$1 = $(addsuffix _java_$1, $(DISTROS))
|
||||
#$$(info Create targets: $(addsuffix _python_$1, $(DISTROS)))
|
||||
python_targets_$1 = $(addsuffix _python_$1, $(DISTROS))
|
||||
.PHONY: $$(cpp_targets_$1) $$(dotnet_targets_$1) $$(java_targets_$1) $$(python_targets_$1)
|
||||
|
||||
$$(cpp_targets_$1): %_cpp_$1: docker/%/cpp.Dockerfile %_base
|
||||
#@docker image rm -f ${IMAGE}:$$*_cpp_$1 2>/dev/null
|
||||
${DOCKER_BUILD_CMD} --target=$1 --tag ${IMAGE}:$$*_cpp_$1 -f $$< ..
|
||||
$$(dotnet_targets_$1): %_dotnet_$1: docker/%/dotnet.Dockerfile %_swig
|
||||
#@docker image rm -f ${IMAGE}:$$*_dotnet_$1 2>/dev/null
|
||||
${DOCKER_BUILD_CMD} --target=$1 --tag ${IMAGE}:$$*_dotnet_$1 -f $$< ..
|
||||
$$(java_targets_$1): %_java_$1: docker/%/java.Dockerfile %_swig
|
||||
#@docker image rm -f ${IMAGE}:$$*_java_$1 2>/dev/null
|
||||
${DOCKER_BUILD_CMD} --target=$1 --tag ${IMAGE}:$$*_java_$1 -f $$< ..
|
||||
$$(python_targets_$1): %_python_$1: docker/%/python.Dockerfile %_swig
|
||||
#@docker image rm -f ${IMAGE}:$$*_python_$1 2>/dev/null
|
||||
${DOCKER_BUILD_CMD} --target=$1 --tag ${IMAGE}:$$*_python_$1 -f $$< ..
|
||||
|
||||
# Save $1 docker images (debug).
|
||||
#$$(info Create targets: save_$1 $(addprefix save_, $(addsuffix _$1, $(DISTROS))).)
|
||||
targets_$1 = $(addprefix save_, $(addsuffix _$1, $(DISTROS)))
|
||||
.PHONY: save_$1 $$(targets_$1)
|
||||
save_$1: $$(targets_$1)
|
||||
$$(targets_$1): save_%_$1: $(addprefix save_%_, $(addsuffix _$1, $(LANGUAGES)))
|
||||
|
||||
#$$(info Create targets: $(addprefix save_, $(addsuffix _$1, $(LANGUAGES))).)
|
||||
targets_$1 = $(addprefix save_, $(addsuffix _$1, $(LANGUAGES)))
|
||||
.PHONY: $$(targets_$1)
|
||||
$$(targets_$1): save_%_$1: $(addprefix save_, $(addsuffix _%_$1, $(DISTROS)))
|
||||
|
||||
#$$(info Create targets: $(addprefix save_, $(addsuffix _cpp_$1, $(DISTROS))))
|
||||
cpp_targets_$1 = $(addprefix save_, $(addsuffix _cpp_$1, $(DISTROS)))
|
||||
#$$(info Create targets: $(addprefix save_, $(addsuffix _dotnet_$1, $(DISTROS))))
|
||||
dotnet_targets_$1 = $(addprefix save_, $(addsuffix _dotnet_$1, $(DISTROS)))
|
||||
#$$(info Create targets: $(addprefix save_, $(addsuffix _java_$1, $(DISTROS))))
|
||||
java_targets_$1 = $(addprefix save_, $(addsuffix _java_$1, $(DISTROS)))
|
||||
#$$(info Create targets: $(addprefix save_, $(addsuffix _python_$1, $(DISTROS))))
|
||||
python_targets_$1 = $(addprefix save_, $(addsuffix _python_$1, $(DISTROS)))
|
||||
.PHONY: $$(cpp_targets_$1) $$(dotnet_targets_$1) $$(java_targets_$1) $$(python_targets_$1)
|
||||
|
||||
$$(cpp_targets_$1): save_%_cpp_$1: cache/%/docker_cpp_$1.tar
|
||||
cache/%/docker_cpp_$1.tar: %_cpp_$1
|
||||
@rm -f $$@
|
||||
mkdir -p cache/$$*
|
||||
docker save ${IMAGE}:$$*_cpp_$1 -o $$@
|
||||
$$(dotnet_targets_$1): save_%_dotnet_$1: cache/%/docker_dotnet_$1.tar
|
||||
cache/%/docker_dotnet_$1.tar: %_dotnet_$1
|
||||
@rm -f $$@
|
||||
mkdir -p cache/$$*
|
||||
docker save ${IMAGE}:$$*_dotnet_$1 -o $$@
|
||||
$$(java_targets_$1): save_%_java_$1: cache/%/docker_java_$1.tar
|
||||
cache/%/docker_java_$1.tar: %_java_$1
|
||||
@rm -f $$@
|
||||
mkdir -p cache/$$*
|
||||
docker save ${IMAGE}:$$*_java_$1 -o $$@
|
||||
$$(python_targets_$1): save_%_python_$1: cache/%/docker_python_$1.tar
|
||||
cache/%/docker_python_$1.tar: %_python_$1
|
||||
@rm -f $$@
|
||||
mkdir -p cache/$$*
|
||||
docker save ${IMAGE}:$$*_python_$1 -o $$@
|
||||
|
||||
# Run a container using the <distro>_<lang>_$1 image (debug).
|
||||
#$$(info Create targets: $(addprefix sh_, $(addsuffix _cpp_$1, $(DISTROS))))
|
||||
cpp_targets_$1 = $(addprefix sh_, $(addsuffix _cpp_$1, $(DISTROS)))
|
||||
#$$(info Create targets: $(addprefix sh_, $(addsuffix _dotnet_$1, $(DISTROS))))
|
||||
dotnet_targets_$1 = $(addprefix sh_, $(addsuffix _dotnet_$1, $(DISTROS)))
|
||||
#$$(info Create targets: $(addprefix sh_, $(addsuffix _java_$1, $(DISTROS))))
|
||||
java_targets_$1 = $(addprefix sh_, $(addsuffix _java_$1, $(DISTROS)))
|
||||
#$$(info Create targets: $(addprefix sh_, $(addsuffix _python_$1, $(DISTROS))))
|
||||
python_targets_$1 = $(addprefix sh_, $(addsuffix _python_$1, $(DISTROS)))
|
||||
.PHONY: $$(cpp_targets_$1) $$(dotnet_targets_$1) $$(java_targets_$1) $$(python_targets_$1)
|
||||
|
||||
$$(cpp_targets_$1): sh_%_cpp_$1: %_cpp_$1
|
||||
${DOCKER_RUN_CMD} -it --name ${PROJECT}_${BUILD_SYSTEM}_$$*_cpp_$1 ${IMAGE}:$$*_cpp_$1
|
||||
$$(dotnet_targets_$1): sh_%_dotnet_$1: %_dotnet_$1
|
||||
${DOCKER_RUN_CMD} -it --name ${PROJECT}_${BUILD_SYSTEM}_$$*_dotnet_$1 ${IMAGE}:$$*_dotnet_$1
|
||||
$$(java_targets_$1): sh_%_java_$1: %_java_$1
|
||||
${DOCKER_RUN_CMD} -it --name ${PROJECT}_${BUILD_SYSTEM}_$$*_java_$1 ${IMAGE}:$$*_java_$1
|
||||
$$(python_targets_$1): sh_%_python_$1: %_python_$1
|
||||
${DOCKER_RUN_CMD} -it --name ${PROJECT}_${BUILD_SYSTEM}_$$*_python_$1 ${IMAGE}:$$*_python_$1
|
||||
|
||||
# Clean $1 docker images.
|
||||
#$$(info Create targets: clean_$1 $(addprefix clean_, $(addsuffix _$1, $(DISTROS))).)
|
||||
targets_$1 = $(addprefix clean_, $(addsuffix _$1, $(DISTROS)))
|
||||
.PHONY: clean_$1 $(targets_$1)
|
||||
clean_$1: $$(targets_$1)
|
||||
$$(targets_$1): clean_%_$1: $(addprefix clean_%_, $(addsuffix _$1, $(LANGUAGES)))
|
||||
|
||||
#$$(info Create targets: $(addprefix clean_, $(addsuffix _$1, $(LANGUAGES))).)
|
||||
targets_$1 = $(addprefix clean_, $(addsuffix _$1, $(LANGUAGES)))
|
||||
.PHONY: $$(targets_$1)
|
||||
$$(targets_$1): clean_%_$1: $(addprefix clean_, $(addsuffix _%_$1, $(DISTROS)))
|
||||
|
||||
#$$(info Create targets: $(addprefix clean_, $(addsuffix _cpp_$1, $(DISTROS))))
|
||||
cpp_targets_$1 = $(addprefix clean_, $(addsuffix _cpp_$1, $(DISTROS)))
|
||||
#$$(info Create targets: $(addprefix clean_, $(addsuffix _dotnet_$1, $(DISTROS))))
|
||||
dotnet_targets_$1 = $(addprefix clean_, $(addsuffix _dotnet_$1, $(DISTROS)))
|
||||
#$$(info Create targets: $(addprefix clean_, $(addsuffix _java_$1, $(DISTROS))))
|
||||
java_targets_$1 = $(addprefix clean_, $(addsuffix _java_$1, $(DISTROS)))
|
||||
#$$(info Create targets: $(addprefix clean_, $(addsuffix _python_$1, $(DISTROS))))
|
||||
python_targets_$1 = $(addprefix clean_, $(addsuffix _python_$1, $(DISTROS)))
|
||||
.PHONY: $$(cpp_targets_$1) $$(dotnet_targets_$1) $$(java_targets_$1) $$(python_targets_$1)
|
||||
|
||||
$$(cpp_targets_$1): clean_%_cpp_$1:
|
||||
docker image rm -f ${IMAGE}:$$*_cpp_$1 2>/dev/null
|
||||
rm -f cache/$$*/docker_cpp_$1.tar
|
||||
$$(dotnet_targets_$1): clean_%_dotnet_$1:
|
||||
docker image rm -f ${IMAGE}:$$*_dotnet_$1 2>/dev/null
|
||||
rm -f cache/$$*/docker_dotnet_$1.tar
|
||||
$$(java_targets_$1): clean_%_java_$1:
|
||||
docker image rm -f ${IMAGE}:$$*_java_$1 2>/dev/null
|
||||
rm -f cache/$$*/docker_java_$1.tar
|
||||
$$(python_targets_$1): clean_%_python_$1:
|
||||
docker image rm -f ${IMAGE}:$$*_python_$1 2>/dev/null
|
||||
rm -f cache/$$*/docker_python_$1.tar
|
||||
endef
|
||||
|
||||
$(foreach stage,$(STAGES),$(eval $(call make-stage-target,$(stage))))
|
||||
|
||||
# CLEAN
|
||||
targets = $(addprefix clean_, $(DISTROS))
|
||||
.PHONY: clean $(targets)
|
||||
clean: $(targets)
|
||||
docker container prune -f
|
||||
docker image prune -f
|
||||
-rmdir cache
|
||||
$(targets): clean_%: $(addprefix clean_%_, $(PRESTAGES)) $(addprefix clean_%_, $(STAGES))
|
||||
-rmdir cache/$*
|
||||
|
||||
.PHONY: distclean
|
||||
distclean: clean
|
||||
-docker container rm -f $$(docker container ls -aq)
|
||||
-docker image rm -f $$(docker image ls -aq)
|
||||
50
makefiles/README.md
Normal file
50
makefiles/README.md
Normal file
@@ -0,0 +1,50 @@
|
||||
# OR-Tools Makefile Build Instructions
|
||||
|
||||
| OS | |
|
||||
|:--------|------------------------------------|
|
||||
| Linux | [![Status][linux_svg]][linux_link] |
|
||||
| MacOS | [![Status][osx_svg]][osx_link] |
|
||||
| Windows | [![Status][win_svg]][win_link] |
|
||||
|
||||
[linux_svg]: https://github.com/google/or-tools/workflows/Makefile/badge.svg
|
||||
[linux_link]: https://github.com/google/or-tools/actions?query=workflow%3A"Makefile"
|
||||
|
||||
Dockers: [![Status][docker_svg]][docker_link]
|
||||
|
||||
[docker_svg]: https://github.com/google/or-tools/workflows/Docker%20Make/badge.svg
|
||||
[docker_link]: https://github.com/google/or-tools/actions?query=workflow%3A"Docker+Make"
|
||||
|
||||
## Introduction
|
||||
<nav for="make"> |
|
||||
<a href="#deps">Dependencies</a> |
|
||||
<a href="doc/ci.md">CI</a> |
|
||||
</nav>
|
||||
|
||||
OR-Tools comes with a GNU Make based build ([Makefile](../Makefile)) that can be
|
||||
used on a wide range of platforms.
|
||||
|
||||
## [Dependencies](#deps)
|
||||
OR-Tools depends on severals mandatory libraries. You can compile them all
|
||||
using the target `third_party` or you can compile few of them and give the
|
||||
installation directory to the others using the Make variable below.
|
||||
|
||||
* ZLIB (`UNIX_ZLIB_DIR` or `WINDOWS_ZLIB_DIR`),
|
||||
* Google Abseil-cpp (`UNIX_ABSL_DIR` or `WINDOWS_ABSL_DIR`),
|
||||
* Google Gflags (`UNIX_GFLAG_DIR` or `WINDOWS_GFLAG_DIR`),
|
||||
* Google Glog (`UNIX_GLOG_DIR` or `WINDOWS_GLOG_DIR`),
|
||||
* Google Protobuf (`UNIX_PROTOBUF_DIR` or `WINDOWS_PROTOBUF_DIR`),
|
||||
* COIN-OR CoinUtils (`UNIX_COINUTILS_DIR` or `WINDOWS_COINUTILS_DIR`),
|
||||
* COIN-OR Osi (`UNIX_OSI_DIR` or `WINDOWS_OSI_DIR`),
|
||||
* COIN-OR Clp (`UNIX_CLP_DIR` or `WINDOWS_CLP_DIR`),
|
||||
* COIN-OR Cgl (`UNIX_CGL_DIR` or `WINDOWS_CGL_DIR`),
|
||||
* COIN-OR Cbc (`UNIX_CBC_DIR` or `WINDOWS_CBC_DIR`),
|
||||
|
||||
OR-Tools also have few (ed compile time) optional solvers support (disabled by
|
||||
default):
|
||||
|
||||
* SCIP (`UNIX_SCIP_DIR` or `WINDOWS_SCIP_DIR`),
|
||||
* CPLEX (`UNIX_CPLEX_DIR` or `WINDOWS_CPLEX_DIR`),
|
||||
* XPRESS (`UNIX_XPRESS_DIR` or `WINDOWS_XPRESS_DIR`)
|
||||
|
||||
**warning: Since these solvers require license and are proprietary, we can't
|
||||
test it on public CI and support can be broken.**
|
||||
37
makefiles/doc/ci.md
Normal file
37
makefiles/doc/ci.md
Normal file
@@ -0,0 +1,37 @@
|
||||
# CI: Makefile/Docker testing
|
||||
To test the build on various distro, I'm using docker containers and a Makefile for orchestration.
|
||||
|
||||
pros:
|
||||
* You are independent of third party CI runner config (e.g. github actions runners or Travis-CI VM images).
|
||||
* You can run it locally on your linux system.
|
||||
* Most CI provide runner with docker and Makefile installed (e.g. tarvis-ci [minimal images](https://docs.travis-ci.com/user/languages/minimal-and-generic/).
|
||||
|
||||
cons:
|
||||
* Only GNU/Linux distro supported.
|
||||
* Could take few GiB (~30 GiB for all distro and all languages)
|
||||
* ~500MiB OS + C++/CMake tools,
|
||||
* ~150 MiB Python,
|
||||
* ~400 MiB dotnet-sdk,
|
||||
* ~400 MiB java-jdk.
|
||||
|
||||
# Usage
|
||||
To get the help simply type:
|
||||
```sh
|
||||
make
|
||||
```
|
||||
|
||||
note: you can also use from top directory
|
||||
```sh
|
||||
make --directory=makefiles
|
||||
```
|
||||
|
||||
## Example
|
||||
For example to test `Python` inside an `Alpine` container:
|
||||
```sh
|
||||
make alpine_python_test
|
||||
```
|
||||
|
||||
# Docker layers
|
||||
Dockerfile is splitted in several stages.
|
||||
|
||||

|
||||
71
makefiles/doc/docker.dot
Normal file
71
makefiles/doc/docker.dot
Normal file
@@ -0,0 +1,71 @@
|
||||
@startdot
|
||||
digraph DockerDeps {
|
||||
//rankdir=BT;
|
||||
rankdir=TD;
|
||||
node [shape=cylinder, style="rounded,filled", color=black, fillcolor=royalblue];
|
||||
DISTRO_IMG [label="<distro>:latest"];
|
||||
PKG [label="Build packages\ne.g. cmake, g++", shape=box3d];
|
||||
PYPKG [label="Python packages\ne.g. python-dev", shape=box3d, fillcolor=gold];
|
||||
JAVAPKG [label="Java packages\ne.g. openjdk", shape=box3d, fillcolor=crimson];
|
||||
DOTNETPKG [label=".Net packages\ne.g. dotnet-cli", shape=box3d, fillcolor=forestgreen];
|
||||
SRC [label="git repo", shape=folder];
|
||||
SAMPLE [label="sample", shape=folder];
|
||||
|
||||
subgraph clusterDockerfile {
|
||||
BASE_IMG [label="ortools/make:<distro>_base\nbase"];
|
||||
SWIG_IMG [label="ortools/make:<distro>_swig\nswig"];
|
||||
|
||||
BASE_IMG -> SWIG_IMG;
|
||||
|
||||
color=royalblue;
|
||||
label = "docker/<distro>/Dockerfile";
|
||||
}
|
||||
DISTRO_IMG -> BASE_IMG;
|
||||
PKG -> BASE_IMG [label="install", style="dashed"];
|
||||
|
||||
// LANG
|
||||
subgraph clusterLang {
|
||||
LANGENV_IMG [label="ortools/make:<distro>_<lang>_env\nenv"];
|
||||
LANGDEVEL_IMG [label="ortools/make:<distro>_<lang>_devel\ndevel"];
|
||||
LANGBUILD_IMG [label="ortools/make:<distro>_<lang>_build\nbuild"];
|
||||
LANGTEST_IMG [label="ortools/make:<distro>_<lang>_test\ntest"];
|
||||
LANGPKG_IMG [label="ortools/make:<distro>_<lang>_package\ntest"];
|
||||
|
||||
LANGENV_IMG -> LANGDEVEL_IMG;
|
||||
LANGDEVEL_IMG -> LANGBUILD_IMG;
|
||||
LANGBUILD_IMG -> LANGTEST_IMG;
|
||||
LANGBUILD_IMG -> LANGPKG_IMG;
|
||||
|
||||
color=royalblue;
|
||||
label = "docker/<distro>/<lang>.Dockerfile";
|
||||
}
|
||||
SWIG_IMG -> LANGENV_IMG;
|
||||
PYPKG -> LANGENV_IMG [label="install", style="dashed"];
|
||||
JAVAPKG -> LANGENV_IMG [label="install", style="dashed"];
|
||||
DOTNETPKG -> LANGENV_IMG [label="install", style="dashed"];
|
||||
SRC -> LANGDEVEL_IMG [label="copy", style="dashed"];
|
||||
|
||||
subgraph clusterCache {
|
||||
node [shape=note, style="rounded,filled", color=black, fillcolor=royalblue];
|
||||
BASE_TAR [label="docker_base.tar"];
|
||||
SWIG_TAR [label="docker_swig.tar"];
|
||||
LANGENV_TAR [label="docker_<lang>_env.tar"];
|
||||
LANGDEVEL_TAR [label="docker_<lang>_devel.tar"];
|
||||
LANGBUILD_TAR [label="docker_<lang>_build.tar"];
|
||||
LANGTEST_TAR [label="docker_<lang>_test.tar"];
|
||||
LANGPKG_TAR [label="docker_<lang>_package.tar"];
|
||||
|
||||
edge [color=red];
|
||||
BASE_IMG -> BASE_TAR [label="make save_<distro>_base"];
|
||||
SWIG_IMG -> SWIG_TAR [label="make save_<distro>_swig"];
|
||||
LANGENV_IMG -> LANGENV_TAR [label="make save_<distro>_<lang>_env"];
|
||||
LANGDEVEL_IMG -> LANGDEVEL_TAR [label="make save_<distro>_<lang>_devel"];
|
||||
LANGBUILD_IMG -> LANGBUILD_TAR [label="make save_<distro>_<lang>_build"];
|
||||
LANGTEST_IMG -> LANGTEST_TAR [label="make save_<distro>_<lang>_test"];
|
||||
LANGPKG_IMG -> LANGPKG_TAR [label="make save_<distro>_<lang>_package"];
|
||||
|
||||
color=royalblue;
|
||||
label = "cache/<distro>/";
|
||||
}
|
||||
}
|
||||
@enddot
|
||||
325
makefiles/doc/docker.svg
Normal file
325
makefiles/doc/docker.svg
Normal file
@@ -0,0 +1,325 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
|
||||
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<!-- Generated by graphviz version 2.42.3 (0)
|
||||
-->
|
||||
<!-- Title: DockerDeps Pages: 1 -->
|
||||
<svg width="1606pt" height="818pt"
|
||||
viewBox="0.00 0.00 1606.01 817.50" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 813.5)">
|
||||
<title>DockerDeps</title>
|
||||
<polygon fill="white" stroke="transparent" points="-4,4 -4,-813.5 1602.01,-813.5 1602.01,4 -4,4"/>
|
||||
<g id="clust1" class="cluster">
|
||||
<title>clusterDockerfile</title>
|
||||
<polygon fill="none" stroke="royalblue" points="1089.01,-550 1089.01,-730.5 1325.01,-730.5 1325.01,-550 1089.01,-550"/>
|
||||
<text text-anchor="middle" x="1207.01" y="-715.3" font-family="Times,serif" font-size="14.00">docker/<distro>/Dockerfile</text>
|
||||
</g>
|
||||
<g id="clust2" class="cluster">
|
||||
<title>clusterLang</title>
|
||||
<polygon fill="none" stroke="royalblue" points="265.01,-116 265.01,-517 881.01,-517 881.01,-116 265.01,-116"/>
|
||||
<text text-anchor="middle" x="573.01" y="-501.8" font-family="Times,serif" font-size="14.00">docker/<distro>/<lang>.Dockerfile</text>
|
||||
</g>
|
||||
<g id="clust3" class="cluster">
|
||||
<title>clusterCache</title>
|
||||
<polygon fill="none" stroke="royalblue" points="67.01,-8 67.01,-83 1428.01,-83 1428.01,-8 67.01,-8"/>
|
||||
<text text-anchor="middle" x="747.51" y="-67.8" font-family="Times,serif" font-size="14.00">cache/<distro>/</text>
|
||||
</g>
|
||||
<!-- DISTRO_IMG -->
|
||||
<g id="node1" class="node">
|
||||
<title>DISTRO_IMG</title>
|
||||
<path fill="royalblue" stroke="black" d="M1196.01,-805.23C1196.01,-807.03 1167.33,-808.5 1132.01,-808.5 1096.7,-808.5 1068.01,-807.03 1068.01,-805.23 1068.01,-805.23 1068.01,-775.77 1068.01,-775.77 1068.01,-773.97 1096.7,-772.5 1132.01,-772.5 1167.33,-772.5 1196.01,-773.97 1196.01,-775.77 1196.01,-775.77 1196.01,-805.23 1196.01,-805.23"/>
|
||||
<path fill="none" stroke="black" d="M1196.01,-805.23C1196.01,-803.42 1167.33,-801.95 1132.01,-801.95 1096.7,-801.95 1068.01,-803.42 1068.01,-805.23"/>
|
||||
<text text-anchor="middle" x="1132.01" y="-786.8" font-family="Times,serif" font-size="14.00"><distro>:latest</text>
|
||||
</g>
|
||||
<!-- BASE_IMG -->
|
||||
<g id="node8" class="node">
|
||||
<title>BASE_IMG</title>
|
||||
<path fill="royalblue" stroke="black" d="M1316.51,-694.85C1316.51,-697.49 1267.43,-699.63 1207.01,-699.63 1146.59,-699.63 1097.51,-697.49 1097.51,-694.85 1097.51,-694.85 1097.51,-651.9 1097.51,-651.9 1097.51,-649.26 1146.59,-647.12 1207.01,-647.12 1267.43,-647.12 1316.51,-649.26 1316.51,-651.9 1316.51,-651.9 1316.51,-694.85 1316.51,-694.85"/>
|
||||
<path fill="none" stroke="black" d="M1316.51,-694.85C1316.51,-692.22 1267.43,-690.08 1207.01,-690.08 1146.59,-690.08 1097.51,-692.22 1097.51,-694.85"/>
|
||||
<text text-anchor="middle" x="1207.01" y="-677.17" font-family="Times,serif" font-size="14.00">ortools/make:<distro>_base</text>
|
||||
<text text-anchor="middle" x="1207.01" y="-662.17" font-family="Times,serif" font-size="14.00">base</text>
|
||||
</g>
|
||||
<!-- DISTRO_IMG->BASE_IMG -->
|
||||
<g id="edge2" class="edge">
|
||||
<title>DISTRO_IMG->BASE_IMG</title>
|
||||
<path fill="none" stroke="black" d="M1143.4,-772.01C1154.38,-755.17 1171.27,-729.24 1184.89,-708.34"/>
|
||||
<polygon fill="black" stroke="black" points="1187.97,-710.02 1190.5,-699.73 1182.11,-706.19 1187.97,-710.02"/>
|
||||
</g>
|
||||
<!-- PKG -->
|
||||
<g id="node2" class="node">
|
||||
<title>PKG</title>
|
||||
<polygon fill="royalblue" stroke="black" points="1349.51,-809.5 1218.51,-809.5 1214.51,-805.5 1214.51,-771.5 1345.51,-771.5 1349.51,-775.5 1349.51,-809.5"/>
|
||||
<polyline fill="none" stroke="black" points="1345.51,-805.5 1214.51,-805.5 "/>
|
||||
<polyline fill="none" stroke="black" points="1345.51,-805.5 1345.51,-771.5 "/>
|
||||
<polyline fill="none" stroke="black" points="1345.51,-805.5 1349.51,-809.5 "/>
|
||||
<text text-anchor="middle" x="1282.01" y="-794.3" font-family="Times,serif" font-size="14.00">Build packages</text>
|
||||
<text text-anchor="middle" x="1282.01" y="-779.3" font-family="Times,serif" font-size="14.00">e.g. cmake, g++</text>
|
||||
</g>
|
||||
<!-- PKG->BASE_IMG -->
|
||||
<g id="edge3" class="edge">
|
||||
<title>PKG->BASE_IMG</title>
|
||||
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M1270.13,-771.26C1259.14,-754.39 1242.54,-728.9 1229.11,-708.3"/>
|
||||
<polygon fill="black" stroke="black" points="1231.97,-706.28 1223.58,-699.81 1226.11,-710.1 1231.97,-706.28"/>
|
||||
<text text-anchor="middle" x="1279.51" y="-742.3" font-family="Times,serif" font-size="14.00">install</text>
|
||||
</g>
|
||||
<!-- PYPKG -->
|
||||
<g id="node3" class="node">
|
||||
<title>PYPKG</title>
|
||||
<polygon fill="gold" stroke="black" points="950.51,-603.12 817.51,-603.12 813.51,-599.12 813.51,-565.12 946.51,-565.12 950.51,-569.12 950.51,-603.12"/>
|
||||
<polyline fill="none" stroke="black" points="946.51,-599.12 813.51,-599.12 "/>
|
||||
<polyline fill="none" stroke="black" points="946.51,-599.12 946.51,-565.12 "/>
|
||||
<polyline fill="none" stroke="black" points="946.51,-599.12 950.51,-603.12 "/>
|
||||
<text text-anchor="middle" x="882.01" y="-587.92" font-family="Times,serif" font-size="14.00">Python packages</text>
|
||||
<text text-anchor="middle" x="882.01" y="-572.92" font-family="Times,serif" font-size="14.00">e.g. python-dev</text>
|
||||
</g>
|
||||
<!-- LANGENV_IMG -->
|
||||
<g id="node10" class="node">
|
||||
<title>LANGENV_IMG</title>
|
||||
<path fill="royalblue" stroke="black" d="M872.51,-481.35C872.51,-483.99 811.33,-486.13 736.01,-486.13 660.7,-486.13 599.51,-483.99 599.51,-481.35 599.51,-481.35 599.51,-438.4 599.51,-438.4 599.51,-435.76 660.7,-433.62 736.01,-433.62 811.33,-433.62 872.51,-435.76 872.51,-438.4 872.51,-438.4 872.51,-481.35 872.51,-481.35"/>
|
||||
<path fill="none" stroke="black" d="M872.51,-481.35C872.51,-478.72 811.33,-476.58 736.01,-476.58 660.7,-476.58 599.51,-478.72 599.51,-481.35"/>
|
||||
<text text-anchor="middle" x="736.01" y="-463.68" font-family="Times,serif" font-size="14.00">ortools/make:<distro>_<lang>_env</text>
|
||||
<text text-anchor="middle" x="736.01" y="-448.68" font-family="Times,serif" font-size="14.00">env</text>
|
||||
</g>
|
||||
<!-- PYPKG->LANGENV_IMG -->
|
||||
<g id="edge9" class="edge">
|
||||
<title>PYPKG->LANGENV_IMG</title>
|
||||
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M860.47,-565.09C837.8,-546.11 801.66,-515.84 774.15,-492.81"/>
|
||||
<polygon fill="black" stroke="black" points="776.2,-489.96 766.28,-486.22 771.7,-495.32 776.2,-489.96"/>
|
||||
<text text-anchor="middle" x="848.51" y="-528.8" font-family="Times,serif" font-size="14.00">install</text>
|
||||
</g>
|
||||
<!-- JAVAPKG -->
|
||||
<g id="node4" class="node">
|
||||
<title>JAVAPKG</title>
|
||||
<polygon fill="crimson" stroke="black" points="658.51,-603.12 545.51,-603.12 541.51,-599.12 541.51,-565.12 654.51,-565.12 658.51,-569.12 658.51,-603.12"/>
|
||||
<polyline fill="none" stroke="black" points="654.51,-599.12 541.51,-599.12 "/>
|
||||
<polyline fill="none" stroke="black" points="654.51,-599.12 654.51,-565.12 "/>
|
||||
<polyline fill="none" stroke="black" points="654.51,-599.12 658.51,-603.12 "/>
|
||||
<text text-anchor="middle" x="600.01" y="-587.92" font-family="Times,serif" font-size="14.00">Java packages</text>
|
||||
<text text-anchor="middle" x="600.01" y="-572.92" font-family="Times,serif" font-size="14.00">e.g. openjdk</text>
|
||||
</g>
|
||||
<!-- JAVAPKG->LANGENV_IMG -->
|
||||
<g id="edge10" class="edge">
|
||||
<title>JAVAPKG->LANGENV_IMG</title>
|
||||
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M620.08,-565.09C641.11,-546.19 674.57,-516.1 700.16,-493.11"/>
|
||||
<polygon fill="black" stroke="black" points="702.72,-495.51 707.82,-486.22 698.04,-490.3 702.72,-495.51"/>
|
||||
<text text-anchor="middle" x="685.51" y="-528.8" font-family="Times,serif" font-size="14.00">install</text>
|
||||
</g>
|
||||
<!-- DOTNETPKG -->
|
||||
<g id="node5" class="node">
|
||||
<title>DOTNETPKG</title>
|
||||
<polygon fill="forestgreen" stroke="black" points="795.01,-603.12 681.01,-603.12 677.01,-599.12 677.01,-565.12 791.01,-565.12 795.01,-569.12 795.01,-603.12"/>
|
||||
<polyline fill="none" stroke="black" points="791.01,-599.12 677.01,-599.12 "/>
|
||||
<polyline fill="none" stroke="black" points="791.01,-599.12 791.01,-565.12 "/>
|
||||
<polyline fill="none" stroke="black" points="791.01,-599.12 795.01,-603.12 "/>
|
||||
<text text-anchor="middle" x="736.01" y="-587.92" font-family="Times,serif" font-size="14.00">.Net packages</text>
|
||||
<text text-anchor="middle" x="736.01" y="-572.92" font-family="Times,serif" font-size="14.00">e.g. dotnet-cli</text>
|
||||
</g>
|
||||
<!-- DOTNETPKG->LANGENV_IMG -->
|
||||
<g id="edge11" class="edge">
|
||||
<title>DOTNETPKG->LANGENV_IMG</title>
|
||||
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M736.01,-565.09C736.01,-547.08 736.01,-518.93 736.01,-496.43"/>
|
||||
<polygon fill="black" stroke="black" points="739.51,-496.22 736.01,-486.22 732.51,-496.22 739.51,-496.22"/>
|
||||
<text text-anchor="middle" x="758.51" y="-528.8" font-family="Times,serif" font-size="14.00">install</text>
|
||||
</g>
|
||||
<!-- SRC -->
|
||||
<g id="node6" class="node">
|
||||
<title>SRC</title>
|
||||
<polygon fill="royalblue" stroke="black" points="1006.51,-477.88 1003.51,-481.88 982.51,-481.88 979.51,-477.88 933.51,-477.88 933.51,-441.88 1006.51,-441.88 1006.51,-477.88"/>
|
||||
<text text-anchor="middle" x="970.01" y="-456.18" font-family="Times,serif" font-size="14.00">git repo</text>
|
||||
</g>
|
||||
<!-- LANGDEVEL_IMG -->
|
||||
<g id="node11" class="node">
|
||||
<title>LANGDEVEL_IMG</title>
|
||||
<path fill="royalblue" stroke="black" d="M873.01,-378.1C873.01,-380.74 808.92,-382.88 730.01,-382.88 651.11,-382.88 587.01,-380.74 587.01,-378.1 587.01,-378.1 587.01,-335.15 587.01,-335.15 587.01,-332.51 651.11,-330.37 730.01,-330.37 808.92,-330.37 873.01,-332.51 873.01,-335.15 873.01,-335.15 873.01,-378.1 873.01,-378.1"/>
|
||||
<path fill="none" stroke="black" d="M873.01,-378.1C873.01,-375.47 808.92,-373.33 730.01,-373.33 651.11,-373.33 587.01,-375.47 587.01,-378.1"/>
|
||||
<text text-anchor="middle" x="730.01" y="-360.43" font-family="Times,serif" font-size="14.00">ortools/make:<distro>_<lang>_devel</text>
|
||||
<text text-anchor="middle" x="730.01" y="-345.43" font-family="Times,serif" font-size="14.00">devel</text>
|
||||
</g>
|
||||
<!-- SRC->LANGDEVEL_IMG -->
|
||||
<g id="edge12" class="edge">
|
||||
<title>SRC->LANGDEVEL_IMG</title>
|
||||
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M933.3,-443.39C897.7,-428.37 842.81,-405.21 799.03,-386.74"/>
|
||||
<polygon fill="black" stroke="black" points="800.16,-383.42 789.58,-382.76 797.44,-389.87 800.16,-383.42"/>
|
||||
<text text-anchor="middle" x="881.01" y="-404.55" font-family="Times,serif" font-size="14.00">copy</text>
|
||||
</g>
|
||||
<!-- SAMPLE -->
|
||||
<g id="node7" class="node">
|
||||
<title>SAMPLE</title>
|
||||
<polygon fill="royalblue" stroke="black" points="1436.01,-808.5 1433.01,-812.5 1412.01,-812.5 1409.01,-808.5 1368.01,-808.5 1368.01,-772.5 1436.01,-772.5 1436.01,-808.5"/>
|
||||
<text text-anchor="middle" x="1402.01" y="-786.8" font-family="Times,serif" font-size="14.00">sample</text>
|
||||
</g>
|
||||
<!-- SWIG_IMG -->
|
||||
<g id="node9" class="node">
|
||||
<title>SWIG_IMG</title>
|
||||
<path fill="royalblue" stroke="black" d="M1316.51,-605.6C1316.51,-608.24 1267.43,-610.38 1207.01,-610.38 1146.59,-610.38 1097.51,-608.24 1097.51,-605.6 1097.51,-605.6 1097.51,-562.65 1097.51,-562.65 1097.51,-560.01 1146.59,-557.87 1207.01,-557.87 1267.43,-557.87 1316.51,-560.01 1316.51,-562.65 1316.51,-562.65 1316.51,-605.6 1316.51,-605.6"/>
|
||||
<path fill="none" stroke="black" d="M1316.51,-605.6C1316.51,-602.97 1267.43,-600.83 1207.01,-600.83 1146.59,-600.83 1097.51,-602.97 1097.51,-605.6"/>
|
||||
<text text-anchor="middle" x="1207.01" y="-587.92" font-family="Times,serif" font-size="14.00">ortools/make:<distro>_swig</text>
|
||||
<text text-anchor="middle" x="1207.01" y="-572.92" font-family="Times,serif" font-size="14.00">swig</text>
|
||||
</g>
|
||||
<!-- BASE_IMG->SWIG_IMG -->
|
||||
<g id="edge1" class="edge">
|
||||
<title>BASE_IMG->SWIG_IMG</title>
|
||||
<path fill="none" stroke="black" d="M1207.01,-647.14C1207.01,-638.82 1207.01,-629.41 1207.01,-620.47"/>
|
||||
<polygon fill="black" stroke="black" points="1210.51,-620.3 1207.01,-610.3 1203.51,-620.3 1210.51,-620.3"/>
|
||||
</g>
|
||||
<!-- BASE_TAR -->
|
||||
<g id="node15" class="node">
|
||||
<title>BASE_TAR</title>
|
||||
<polygon fill="royalblue" stroke="black" points="1414.01,-52 1290.01,-52 1290.01,-16 1420.01,-16 1420.01,-46 1414.01,-52"/>
|
||||
<polyline fill="none" stroke="black" points="1414.01,-52 1414.01,-46 "/>
|
||||
<polyline fill="none" stroke="black" points="1420.01,-46 1414.01,-46 "/>
|
||||
<text text-anchor="middle" x="1355.01" y="-30.3" font-family="Times,serif" font-size="14.00">docker_base.tar</text>
|
||||
</g>
|
||||
<!-- BASE_IMG->BASE_TAR -->
|
||||
<g id="edge13" class="edge">
|
||||
<title>BASE_IMG->BASE_TAR</title>
|
||||
<path fill="none" stroke="red" d="M1316.54,-663.96C1364.48,-653.66 1410.01,-631.64 1410.01,-585.12 1410.01,-585.12 1410.01,-585.12 1410.01,-149.12 1410.01,-116.12 1391.11,-82.59 1375.47,-60.49"/>
|
||||
<polygon fill="red" stroke="red" points="1378.21,-58.31 1369.46,-52.33 1372.57,-62.46 1378.21,-58.31"/>
|
||||
<text text-anchor="middle" x="1504.01" y="-352.93" font-family="Times,serif" font-size="14.00">make save_<distro>_base</text>
|
||||
</g>
|
||||
<!-- SWIG_IMG->LANGENV_IMG -->
|
||||
<g id="edge8" class="edge">
|
||||
<title>SWIG_IMG->LANGENV_IMG</title>
|
||||
<path fill="none" stroke="black" d="M1101.19,-559.85C1048.13,-547.79 982.97,-532.39 925.01,-517 892.77,-508.44 857.69,-498.26 826.6,-488.94"/>
|
||||
<polygon fill="black" stroke="black" points="827.24,-485.48 816.66,-485.95 825.22,-492.18 827.24,-485.48"/>
|
||||
</g>
|
||||
<!-- SWIG_TAR -->
|
||||
<g id="node16" class="node">
|
||||
<title>SWIG_TAR</title>
|
||||
<polygon fill="royalblue" stroke="black" points="1266.01,-52 1142.01,-52 1142.01,-16 1272.01,-16 1272.01,-46 1266.01,-52"/>
|
||||
<polyline fill="none" stroke="black" points="1266.01,-52 1266.01,-46 "/>
|
||||
<polyline fill="none" stroke="black" points="1272.01,-46 1266.01,-46 "/>
|
||||
<text text-anchor="middle" x="1207.01" y="-30.3" font-family="Times,serif" font-size="14.00">docker_swig.tar</text>
|
||||
</g>
|
||||
<!-- SWIG_IMG->SWIG_TAR -->
|
||||
<g id="edge14" class="edge">
|
||||
<title>SWIG_IMG->SWIG_TAR</title>
|
||||
<path fill="none" stroke="red" d="M1207.01,-557.84C1207.01,-533.12 1207.01,-494.41 1207.01,-460.88 1207.01,-460.88 1207.01,-460.88 1207.01,-149.12 1207.01,-119.36 1207.01,-85.24 1207.01,-62.11"/>
|
||||
<polygon fill="red" stroke="red" points="1210.51,-62.01 1207.01,-52.01 1203.51,-62.02 1210.51,-62.01"/>
|
||||
<text text-anchor="middle" x="1301.01" y="-301.3" font-family="Times,serif" font-size="14.00">make save_<distro>_swig</text>
|
||||
</g>
|
||||
<!-- LANGENV_IMG->LANGDEVEL_IMG -->
|
||||
<g id="edge4" class="edge">
|
||||
<title>LANGENV_IMG->LANGDEVEL_IMG</title>
|
||||
<path fill="none" stroke="black" d="M734.52,-433.59C733.79,-421.38 732.91,-406.54 732.12,-393.22"/>
|
||||
<polygon fill="black" stroke="black" points="735.6,-392.72 731.51,-382.94 728.61,-393.13 735.6,-392.72"/>
|
||||
</g>
|
||||
<!-- LANGENV_TAR -->
|
||||
<g id="node17" class="node">
|
||||
<title>LANGENV_TAR</title>
|
||||
<polygon fill="royalblue" stroke="black" points="1118.01,-52 942.01,-52 942.01,-16 1124.01,-16 1124.01,-46 1118.01,-52"/>
|
||||
<polyline fill="none" stroke="black" points="1118.01,-52 1118.01,-46 "/>
|
||||
<polyline fill="none" stroke="black" points="1124.01,-46 1118.01,-46 "/>
|
||||
<text text-anchor="middle" x="1033.01" y="-30.3" font-family="Times,serif" font-size="14.00">docker_<lang>_env.tar</text>
|
||||
</g>
|
||||
<!-- LANGENV_IMG->LANGENV_TAR -->
|
||||
<g id="edge15" class="edge">
|
||||
<title>LANGENV_IMG->LANGENV_TAR</title>
|
||||
<path fill="none" stroke="red" d="M806.66,-433.68C832.95,-421.53 861.37,-404.74 882.01,-382.75 933.77,-327.63 894.65,-277.64 951.01,-227.25 970.82,-209.54 990.82,-229.51 1008.01,-209.25 1043.11,-167.89 1041.56,-100.13 1037.31,-62.45"/>
|
||||
<polygon fill="red" stroke="red" points="1040.74,-61.7 1036,-52.23 1033.8,-62.59 1040.74,-61.7"/>
|
||||
<text text-anchor="middle" x="1072.01" y="-249.68" font-family="Times,serif" font-size="14.00">make save_<distro>_<lang>_env</text>
|
||||
</g>
|
||||
<!-- LANGBUILD_IMG -->
|
||||
<g id="node12" class="node">
|
||||
<title>LANGBUILD_IMG</title>
|
||||
<path fill="royalblue" stroke="black" d="M652.01,-274.85C652.01,-277.49 588.37,-279.63 510.01,-279.63 431.66,-279.63 368.01,-277.49 368.01,-274.85 368.01,-274.85 368.01,-231.9 368.01,-231.9 368.01,-229.26 431.66,-227.12 510.01,-227.12 588.37,-227.12 652.01,-229.26 652.01,-231.9 652.01,-231.9 652.01,-274.85 652.01,-274.85"/>
|
||||
<path fill="none" stroke="black" d="M652.01,-274.85C652.01,-272.22 588.37,-270.08 510.01,-270.08 431.66,-270.08 368.01,-272.22 368.01,-274.85"/>
|
||||
<text text-anchor="middle" x="510.01" y="-257.18" font-family="Times,serif" font-size="14.00">ortools/make:<distro>_<lang>_build</text>
|
||||
<text text-anchor="middle" x="510.01" y="-242.18" font-family="Times,serif" font-size="14.00">build</text>
|
||||
</g>
|
||||
<!-- LANGDEVEL_IMG->LANGBUILD_IMG -->
|
||||
<g id="edge5" class="edge">
|
||||
<title>LANGDEVEL_IMG->LANGBUILD_IMG</title>
|
||||
<path fill="none" stroke="black" d="M675.35,-330.47C644.66,-316.34 606.19,-298.64 574.09,-283.86"/>
|
||||
<polygon fill="black" stroke="black" points="575.33,-280.58 564.78,-279.58 572.4,-286.94 575.33,-280.58"/>
|
||||
</g>
|
||||
<!-- LANGDEVEL_TAR -->
|
||||
<g id="node18" class="node">
|
||||
<title>LANGDEVEL_TAR</title>
|
||||
<polygon fill="royalblue" stroke="black" points="917.51,-52 726.51,-52 726.51,-16 923.51,-16 923.51,-46 917.51,-52"/>
|
||||
<polyline fill="none" stroke="black" points="917.51,-52 917.51,-46 "/>
|
||||
<polyline fill="none" stroke="black" points="923.51,-46 917.51,-46 "/>
|
||||
<text text-anchor="middle" x="825.01" y="-30.3" font-family="Times,serif" font-size="14.00">docker_<lang>_devel.tar</text>
|
||||
</g>
|
||||
<!-- LANGDEVEL_IMG->LANGDEVEL_TAR -->
|
||||
<g id="edge16" class="edge">
|
||||
<title>LANGDEVEL_IMG->LANGDEVEL_TAR</title>
|
||||
<path fill="none" stroke="red" d="M725.27,-330.32C720.19,-294.66 717.14,-230.02 753.01,-194.25 794.01,-153.38 842.49,-218.54 882.01,-176.25 907.93,-148.52 902.42,-125.68 887.01,-91 881.38,-78.32 871.31,-67.31 860.89,-58.47"/>
|
||||
<polygon fill="red" stroke="red" points="862.94,-55.63 852.93,-52.15 858.59,-61.11 862.94,-55.63"/>
|
||||
<text text-anchor="middle" x="880.51" y="-198.05" font-family="Times,serif" font-size="14.00">make save_<distro>_<lang>_devel</text>
|
||||
</g>
|
||||
<!-- LANGTEST_IMG -->
|
||||
<g id="node13" class="node">
|
||||
<title>LANGTEST_IMG</title>
|
||||
<path fill="royalblue" stroke="black" d="M548.51,-171.6C548.51,-174.24 486.88,-176.38 411.01,-176.38 335.14,-176.38 273.51,-174.24 273.51,-171.6 273.51,-171.6 273.51,-128.65 273.51,-128.65 273.51,-126.01 335.14,-123.87 411.01,-123.87 486.88,-123.87 548.51,-126.01 548.51,-128.65 548.51,-128.65 548.51,-171.6 548.51,-171.6"/>
|
||||
<path fill="none" stroke="black" d="M548.51,-171.6C548.51,-168.97 486.88,-166.83 411.01,-166.83 335.14,-166.83 273.51,-168.97 273.51,-171.6"/>
|
||||
<text text-anchor="middle" x="411.01" y="-153.93" font-family="Times,serif" font-size="14.00">ortools/make:<distro>_<lang>_test</text>
|
||||
<text text-anchor="middle" x="411.01" y="-138.93" font-family="Times,serif" font-size="14.00">test</text>
|
||||
</g>
|
||||
<!-- LANGBUILD_IMG->LANGTEST_IMG -->
|
||||
<g id="edge6" class="edge">
|
||||
<title>LANGBUILD_IMG->LANGTEST_IMG</title>
|
||||
<path fill="none" stroke="black" d="M485.29,-227.09C472.53,-214.04 456.82,-197.97 443.13,-183.97"/>
|
||||
<polygon fill="black" stroke="black" points="445.26,-181.15 435.77,-176.44 440.26,-186.04 445.26,-181.15"/>
|
||||
</g>
|
||||
<!-- LANGPKG_IMG -->
|
||||
<g id="node14" class="node">
|
||||
<title>LANGPKG_IMG</title>
|
||||
<path fill="royalblue" stroke="black" d="M873.01,-171.6C873.01,-174.24 804.44,-176.38 720.01,-176.38 635.59,-176.38 567.01,-174.24 567.01,-171.6 567.01,-171.6 567.01,-128.65 567.01,-128.65 567.01,-126.01 635.59,-123.87 720.01,-123.87 804.44,-123.87 873.01,-126.01 873.01,-128.65 873.01,-128.65 873.01,-171.6 873.01,-171.6"/>
|
||||
<path fill="none" stroke="black" d="M873.01,-171.6C873.01,-168.97 804.44,-166.83 720.01,-166.83 635.59,-166.83 567.01,-168.97 567.01,-171.6"/>
|
||||
<text text-anchor="middle" x="720.01" y="-153.93" font-family="Times,serif" font-size="14.00">ortools/make:<distro>_<lang>_package</text>
|
||||
<text text-anchor="middle" x="720.01" y="-138.93" font-family="Times,serif" font-size="14.00">test</text>
|
||||
</g>
|
||||
<!-- LANGBUILD_IMG->LANGPKG_IMG -->
|
||||
<g id="edge7" class="edge">
|
||||
<title>LANGBUILD_IMG->LANGPKG_IMG</title>
|
||||
<path fill="none" stroke="black" d="M562.19,-227.22C591.37,-213.15 627.89,-195.54 658.46,-180.8"/>
|
||||
<polygon fill="black" stroke="black" points="660.25,-183.82 667.74,-176.33 657.21,-177.52 660.25,-183.82"/>
|
||||
</g>
|
||||
<!-- LANGBUILD_TAR -->
|
||||
<g id="node19" class="node">
|
||||
<title>LANGBUILD_TAR</title>
|
||||
<polygon fill="royalblue" stroke="black" points="263.01,-52 75.01,-52 75.01,-16 269.01,-16 269.01,-46 263.01,-52"/>
|
||||
<polyline fill="none" stroke="black" points="263.01,-52 263.01,-46 "/>
|
||||
<polyline fill="none" stroke="black" points="269.01,-46 263.01,-46 "/>
|
||||
<text text-anchor="middle" x="172.01" y="-30.3" font-family="Times,serif" font-size="14.00">docker_<lang>_build.tar</text>
|
||||
</g>
|
||||
<!-- LANGBUILD_IMG->LANGBUILD_TAR -->
|
||||
<g id="edge17" class="edge">
|
||||
<title>LANGBUILD_IMG->LANGBUILD_TAR</title>
|
||||
<path fill="none" stroke="red" d="M367.98,-250.54C237.31,-245.49 57.17,-228.84 12.01,-176.25 -5.43,-155.93 -2.01,-138.81 12.01,-116 29.89,-86.91 61.81,-67.88 92.46,-55.63"/>
|
||||
<polygon fill="red" stroke="red" points="93.81,-58.86 101.91,-52.04 91.32,-52.32 93.81,-58.86"/>
|
||||
<text text-anchor="middle" x="138.51" y="-146.43" font-family="Times,serif" font-size="14.00">make save_<distro>_<lang>_build</text>
|
||||
</g>
|
||||
<!-- LANGTEST_TAR -->
|
||||
<g id="node20" class="node">
|
||||
<title>LANGTEST_TAR</title>
|
||||
<polygon fill="royalblue" stroke="black" points="467.01,-52 287.01,-52 287.01,-16 473.01,-16 473.01,-46 467.01,-52"/>
|
||||
<polyline fill="none" stroke="black" points="467.01,-52 467.01,-46 "/>
|
||||
<polyline fill="none" stroke="black" points="473.01,-46 467.01,-46 "/>
|
||||
<text text-anchor="middle" x="380.01" y="-30.3" font-family="Times,serif" font-size="14.00">docker_<lang>_test.tar</text>
|
||||
</g>
|
||||
<!-- LANGTEST_IMG->LANGTEST_TAR -->
|
||||
<g id="edge18" class="edge">
|
||||
<title>LANGTEST_IMG->LANGTEST_TAR</title>
|
||||
<path fill="none" stroke="red" d="M360.1,-123.9C354.06,-118.81 348.73,-112.86 345.01,-106 336.89,-90.99 344.89,-73.83 355.28,-60.14"/>
|
||||
<polygon fill="red" stroke="red" points="358.25,-62.04 361.94,-52.11 352.86,-57.58 358.25,-62.04"/>
|
||||
<text text-anchor="middle" x="467.01" y="-94.8" font-family="Times,serif" font-size="14.00">make save_<distro>_<lang>_test</text>
|
||||
</g>
|
||||
<!-- LANGPKG_TAR -->
|
||||
<g id="node21" class="node">
|
||||
<title>LANGPKG_TAR</title>
|
||||
<polygon fill="royalblue" stroke="black" points="702.51,-52 491.51,-52 491.51,-16 708.51,-16 708.51,-46 702.51,-52"/>
|
||||
<polyline fill="none" stroke="black" points="702.51,-52 702.51,-46 "/>
|
||||
<polyline fill="none" stroke="black" points="708.51,-46 702.51,-46 "/>
|
||||
<text text-anchor="middle" x="600.01" y="-30.3" font-family="Times,serif" font-size="14.00">docker_<lang>_package.tar</text>
|
||||
</g>
|
||||
<!-- LANGPKG_IMG->LANGPKG_TAR -->
|
||||
<g id="edge19" class="edge">
|
||||
<title>LANGPKG_IMG->LANGPKG_TAR</title>
|
||||
<path fill="none" stroke="red" d="M632.48,-123.94C624.76,-118.99 617.72,-113.07 612.01,-106 602.25,-93.91 599.14,-76.82 598.52,-62.43"/>
|
||||
<polygon fill="red" stroke="red" points="602.02,-62.07 598.47,-52.09 595.02,-62.11 602.02,-62.07"/>
|
||||
<text text-anchor="middle" x="749.51" y="-94.8" font-family="Times,serif" font-size="14.00">make save_<distro>_<lang>_package</text>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 23 KiB |
@@ -1,7 +1,7 @@
|
||||
#/usr/bin/env bash
|
||||
set -ex
|
||||
|
||||
rm *.svg
|
||||
rm -f *.svg
|
||||
for i in *.dot; do
|
||||
plantuml -Tsvg $i;
|
||||
done
|
||||
|
||||
@@ -1,100 +1,179 @@
|
||||
// C++: royalblue
|
||||
// Python: gold
|
||||
// Java: crimson
|
||||
// .Net: forestgreen
|
||||
// F#: indigo
|
||||
@startdot
|
||||
digraph Make {
|
||||
rankdir=BT;
|
||||
//rankdir=BT;
|
||||
rankdir=TD;
|
||||
|
||||
subgraph clusterPrerequisite {
|
||||
node [shape=box, style=rounded];
|
||||
M [label="Make/NMake"];
|
||||
CM [label="CMake", color=royalblue];
|
||||
SWIG [label="Swig\n(Unix)", color=chocolate];
|
||||
PY [label="Python\n(2.7,3.5,3.6)", color=gold];
|
||||
JV [label="Java", color=crimson];
|
||||
MONO [label="Mono\n(Unix)", color=blueviolet];
|
||||
FS [label="Fsharpc\n(Linux)", color=blueviolet];
|
||||
DN [label="Dotnet", color=blueviolet];
|
||||
M -> SWIG [arrowhead=none, style=invisible];
|
||||
node [shape=box3d, style=filled, color=black];
|
||||
M [label="Make", fillcolor=royalblue];
|
||||
CM [label="CMake", fillcolor=royalblue];
|
||||
SWIG [label="Swig\n(Unix)", fillcolor=chocolate];
|
||||
PY [label="Python\n(3.5+)", fillcolor=gold];
|
||||
JV [label="Java\n(openJDK 8+)", fillcolor=crimson];
|
||||
NET [label=".Net Core SDK\n(3.0.101)", fillcolor=forestgreen];
|
||||
FS [label=".Net F#", fillcolor=forestgreen];
|
||||
M -> SWIG [arrowhead=none, style=invisible];
|
||||
SWIG -> PY [arrowhead=none, style=invisible];
|
||||
SWIG -> JV [arrowhead=none, style=invisible];
|
||||
SWIG -> MONO [arrowhead=none, style=invisible];
|
||||
MONO -> FS [arrowhead=none, style=invisible];
|
||||
MONO -> DN [arrowhead=none, style=invisible];
|
||||
SWIG -> NET [arrowhead=none, style=invisible];
|
||||
NET -> FS [arrowhead=none, style=invisible];
|
||||
|
||||
label = "Prerequisite";
|
||||
}
|
||||
|
||||
subgraph clusterOR {
|
||||
node [shape=box,style=rounded];
|
||||
OR [label="C++\n(make cc)", style="rounded,filled,bold", color=dimgrey, fillcolor=grey64];
|
||||
OR_WPY [label="Python wrap", color=gold];
|
||||
OR_PY [label="Python\n(make python)", style="rounded,filled,bold", color=gold, fillcolor=gold];
|
||||
OR_WJV [label="Java wrap", color=crimson];
|
||||
OR_JV [label="Java\n(make java)", style="rounded,filled,bold", color=crimson, fillcolor=crimson];
|
||||
OR_WCS [label="C# wrap", color=blueviolet];
|
||||
OR_CS [label="C#\n(make csharp)", style="rounded,filled,bold", color=blueviolet, fillcolor=purple];
|
||||
OR_FS [label="F#\n(make fsharp)", style="rounded,filled,bold", color=blueviolet, fillcolor=purple];
|
||||
OR_NS [label=".NetStandard\n(make netstandard)", style="rounded,filled,bold", color=blueviolet, fillcolor=purple];
|
||||
OR -> OR_WPY [label="swig", color=chocolate];
|
||||
OR_WPY -> OR_PY [label="python", color=gold];
|
||||
OR -> OR_PY [label="python", color=gold];
|
||||
OR -> OR_WJV [label="swig", color=chocolate];
|
||||
OR_WJV -> OR_JV [label="javac", color=crimson];
|
||||
OR -> OR_JV [label="javac", color=crimson];
|
||||
OR -> OR_WCS [label="swig", color=chocolate];
|
||||
OR_WCS -> OR_CS [label="Mono", color=blueviolet];
|
||||
OR -> OR_CS [label="Mono", color=blueviolet];
|
||||
OR_CS -> OR_FS [label="fsharpc", color=blueviolet];
|
||||
OR_WCS -> OR_NS [label="dotnet", color=blueviolet];
|
||||
OR -> OR_NS [label="dotnet", color=blueviolet];
|
||||
node [shape=box, style="rounded,filled", color=black, fillcolor=royalblue];
|
||||
subgraph clusterDeps {
|
||||
node [shape=box,style=rounded];
|
||||
Z [label="Zlib\n(Make)", color=dimgrey];
|
||||
Z [label="Zlib\n(Make)", color=royalblue];
|
||||
ABSL [label="Abseil-cpp\n(CMake)", color=royalblue];
|
||||
GF [label="GFlags\n(CMake)", color=royalblue];
|
||||
GL [label="GLog\n(CMake)", color=royalblue];
|
||||
PB [label="Protobuf\n(CMake)", color=royalblue];
|
||||
CBC [label="Cbc\n(Autotools)", color=dimgrey];
|
||||
SWIG_WIN [label="Swig\n(Windows)", color=chocolate];
|
||||
SCIP [label="SCIP",style="rounded,dashed"];
|
||||
color=dimgrey;
|
||||
label = "Dependencies\n(make third_party)";
|
||||
}
|
||||
Z -> OR;
|
||||
PB -> OR;
|
||||
GF -> OR;
|
||||
GL -> OR;
|
||||
CBC -> OR;
|
||||
SCIP -> OR;
|
||||
subgraph clusterPackage {
|
||||
node [shape=component];
|
||||
PKG_CC [label=".deb Package\n(make deb_archive)", style="filled", color=dimgrey];
|
||||
PKG_PY [label="Pypi Package\n(make pypi_archive)", style="filled", color=gold];
|
||||
PKG_JV [label="Maven Package\n(make maven_archive)", style="filled", color=crimson];
|
||||
PKG_NS [label="Nuget Package\n(make nuget_archive)", style="filled", color=blueviolet];
|
||||
color=dimgrey;
|
||||
label = "Package";
|
||||
}
|
||||
OR -> PKG_CC [label="WIP", style="dotted", color=dimgrey];
|
||||
OR_PY -> PKG_PY [color=gold];
|
||||
OR_JV -> PKG_JV [label="WIP", style="dotted", color=crimson];
|
||||
OR_CS -> PKG_NS [label="WIP", style="dotted", color=blueviolet];
|
||||
OR_FS -> PKG_NS [label="WIP", style="dotted", color=blueviolet];
|
||||
OR_NS -> PKG_NS [label="WIP", style="dotted", color=blueviolet];
|
||||
subgraph clusterEX {
|
||||
node [shape=box,style="rounded,dashed"];
|
||||
EX_CC [label="C++\n(make test_cc)"];
|
||||
EX_PY [label="Python\n(make test_python)", color=gold];
|
||||
EX_JV [label="Java\n(make test_java)", color=crimson];
|
||||
EX_CS [label="C#\n(make test_csharp)", color=blueviolet];
|
||||
EX_FS [label="F#\n(make test_fsharp)", color=blueviolet];
|
||||
EX_NS [label=".NetStandard\n(make test_netstandard)", color=blueviolet];
|
||||
color=dimgrey;
|
||||
label = "Examples";
|
||||
}
|
||||
OR -> EX_CC;
|
||||
OR_PY -> EX_PY [color=gold];
|
||||
OR_JV -> EX_JV [color=crimson];
|
||||
OR_CS -> EX_CS [color=blueviolet];
|
||||
OR_FS -> EX_FS [color=blueviolet];
|
||||
OR_NS -> EX_NS [color=blueviolet];
|
||||
color=dimgrey;
|
||||
CU [label="CoinUtils\n(Autotools)", color=royalblue];
|
||||
OSI [label="Osi\n(Autotools)", color=royalblue];
|
||||
CLP [label="Clp\n(Autotools)", color=royalblue];
|
||||
CGL [label="Cgl\n(Autotools)", color=royalblue];
|
||||
CBC [label="Cbc\n(Autotools)", color=royalblue];
|
||||
SWIG_WIN [label="Swigwin\n(Windows)", color=chocolate];
|
||||
GLPK [label="GLPK",style="rounded,dashed", color=grey];
|
||||
SCIP [label="SCIP",style="rounded,dashed", color=grey];
|
||||
CPLEX [label="CPLEX",style="rounded,dashed", color=grey];
|
||||
GUROBI [label="Gurobi",style="rounded,dashed", color=grey];
|
||||
|
||||
Z -> PB;
|
||||
ABSL -> PB;
|
||||
GF -> GL;
|
||||
|
||||
CU -> OSI;
|
||||
CU -> CLP;
|
||||
OSI -> CLP;
|
||||
CU -> CGL;
|
||||
OSI -> CGL;
|
||||
CU -> CBC;
|
||||
OSI -> CBC;
|
||||
CLP -> CBC
|
||||
CGL -> CBC
|
||||
|
||||
color=grey;
|
||||
label = "Dependencies\nTarget: third_party";
|
||||
} // clusterDeps
|
||||
|
||||
subgraph clusterCXX {
|
||||
node [shape=box, style="rounded,filled", color=black, fillcolor=royalblue];
|
||||
OR_SRC [label="OR-Tools src\nortools/...", shape=folder];
|
||||
OR_CC [label="C++\nTarget: cc"];
|
||||
PKG_CC [label=".tar.gz/.zip Archive\nTarget: package_cc", shape=box3d];
|
||||
|
||||
subgraph clusterCXXTest {
|
||||
EX_CC [label="C++ Samples", shape=note];
|
||||
|
||||
label = "Examples\nTarget: test_cc";
|
||||
}
|
||||
OR_CC -> EX_CC;
|
||||
|
||||
Z -> OR_CC;
|
||||
ABSL -> OR_CC;
|
||||
GF -> OR_CC;
|
||||
GL -> OR_CC;
|
||||
PB -> OR_CC;
|
||||
CLP -> OR_CC;
|
||||
CBC -> OR_CC;
|
||||
|
||||
GLPK -> OR_CC;
|
||||
SCIP -> OR_CC;
|
||||
CPLEX -> OR_CC;
|
||||
GUROBI -> OR_CC;
|
||||
|
||||
OR_CC -> PKG_CC [label="WIP", style="dotted", color=dimgrey];
|
||||
|
||||
color=royalblue;
|
||||
label = "C++\nTarget: cc";
|
||||
} // clusterCXX
|
||||
|
||||
subgraph clusterPython {
|
||||
node [shape=box, style="rounded,filled", color=black, fillcolor=gold];
|
||||
OR_WPY [label="C++ Python wrappers", shape=note];
|
||||
OR_PY [label="Python files\nTarget: python", shape=note];
|
||||
PKG_PY [label="Wheel Package\nTarget: package_python", shape=box3d];
|
||||
|
||||
subgraph clusterPythonTest {
|
||||
EX_PY [label="Python Samples", shape=note];
|
||||
|
||||
label = "Examples\nTarget: test_python";
|
||||
}
|
||||
OR_PY -> EX_PY [color=gold];
|
||||
|
||||
OR_CC -> OR_WPY [label="swig", color=chocolate];
|
||||
OR_CC -> OR_PY [label="swig", color=chocolate];
|
||||
OR_WPY -> OR_PY [label="python", color=gold];
|
||||
OR_PY -> PKG_PY [label="python setup.py", color=gold];
|
||||
|
||||
color=gold;
|
||||
label = "Python\nTarget: python";
|
||||
} // clusterPython
|
||||
|
||||
subgraph clusterJava {
|
||||
node [shape=box, style="rounded,filled", color=black, fillcolor=crimson];
|
||||
OR_WJV [label="C++ Java wrappers", shape=note];
|
||||
OR_JV [label="Java files\nTarget: java", shape=note];
|
||||
PKG_JV [label="Maven Package\nTarget: package_java", shape=box3d];
|
||||
|
||||
subgraph clusterJavaTest {
|
||||
EX_JV [label="Java Samples", shape=note];
|
||||
|
||||
label = "Examples\nTarget: test_java";
|
||||
}
|
||||
OR_JV -> EX_JV [color=crimson];
|
||||
|
||||
OR_CC -> OR_WJV [label="swig", color=chocolate];
|
||||
OR_CC -> OR_JV [label="swig", color=chocolate];
|
||||
OR_WJV -> OR_JV [label="javac", color=crimson];
|
||||
OR_JV -> PKG_JV [label="maven (WIP)", style="dotted", color=crimson];
|
||||
|
||||
color=crimson;
|
||||
label = "Java\nTarget: java";
|
||||
} // clusterJava
|
||||
|
||||
subgraph clusterNet {
|
||||
node [shape=box, style="rounded,filled", color=black, fillcolor=forestgreen];
|
||||
OR_WNET [label="C++ .Net wrappers", shape=note];
|
||||
OR_NET [label=".Net files\nTarget: dotnet", shape=note];
|
||||
OR_FS [label="F# files\nTarget: fsharp", shape=note];
|
||||
PKG_NET_RT [label="Nuget Google.OrTools.runtime.rid.nupkg\nTarget: package_dotnet", shape=box3d];
|
||||
PKG_NET [label="Nuget Google.OrTools.nupkg\nTarget: package_dotnet", shape=box3d];
|
||||
PKG_FS [label="Nuget Google.OrTools.FSharp.nupkg\nTarget: package_dotnet", shape=box3d];
|
||||
|
||||
subgraph clusterNetTest {
|
||||
EX_NET [label="C# Samples", shape=note];
|
||||
EX_FS [label="F# Samples", shape=note];
|
||||
|
||||
label = "Examples\nTarget: test_dotnet";
|
||||
}
|
||||
OR_NET -> EX_NET [color=forestgreen];
|
||||
OR_FS -> EX_FS [color=forestgreen];
|
||||
|
||||
OR_CC -> OR_WNET [label="swig", color=chocolate];
|
||||
OR_CC -> OR_NET [label="swig", color=chocolate];
|
||||
OR_WNET -> OR_NET [label="dotnet", color=forestgreen];
|
||||
OR_NET -> OR_FS [label="dotnet", color=forestgreen];
|
||||
PKG_NET -> OR_FS [label="dotnet", color=forestgreen];
|
||||
OR_WNET -> PKG_NET_RT [label="dotnet package", color=forestgreen];
|
||||
PKG_NET_RT -> PKG_NET [color=forestgreen];
|
||||
OR_NET -> PKG_NET [label="dotnet package", color=forestgreen];
|
||||
OR_FS -> PKG_FS [label="dotnet package", color=forestgreen];
|
||||
|
||||
color=forestgreen;
|
||||
label = ".Net\nTarget: dotnet";
|
||||
} // clusterNet
|
||||
|
||||
color=royalblue;
|
||||
label = "OR-Tools (Makefile)";
|
||||
}
|
||||
}
|
||||
} // clusterOR
|
||||
} // digraph
|
||||
@enddot
|
||||
# vim tw:0
|
||||
// vim tw:0
|
||||
|
||||
732
makefiles/doc/make.svg
Normal file
732
makefiles/doc/make.svg
Normal file
@@ -0,0 +1,732 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
|
||||
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<!-- Generated by graphviz version 2.42.3 (0)
|
||||
-->
|
||||
<!-- Title: Make Pages: 1 -->
|
||||
<svg width="1978pt" height="1058pt"
|
||||
viewBox="0.00 0.00 1978.00 1058.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 1054)">
|
||||
<title>Make</title>
|
||||
<polygon fill="white" stroke="transparent" points="-4,4 -4,-1054 1974,-1054 1974,4 -4,4"/>
|
||||
<g id="clust1" class="cluster">
|
||||
<title>clusterPrerequisite</title>
|
||||
<polygon fill="none" stroke="black" points="8,-695 8,-995 364,-995 364,-695 8,-695"/>
|
||||
<text text-anchor="middle" x="186" y="-979.8" font-family="Times,serif" font-size="14.00">Prerequisite</text>
|
||||
</g>
|
||||
<g id="clust2" class="cluster">
|
||||
<title>clusterOR</title>
|
||||
<polygon fill="none" stroke="royalblue" points="372,-8 372,-1042 1962,-1042 1962,-8 372,-8"/>
|
||||
<text text-anchor="middle" x="1167" y="-1026.8" font-family="Times,serif" font-size="14.00">OR-Tools (Makefile)</text>
|
||||
</g>
|
||||
<g id="clust3" class="cluster">
|
||||
<title>clusterDeps</title>
|
||||
<polygon fill="none" stroke="grey" points="380,-694 380,-1011 1206,-1011 1206,-694 380,-694"/>
|
||||
<text text-anchor="middle" x="793" y="-995.8" font-family="Times,serif" font-size="14.00">Dependencies</text>
|
||||
<text text-anchor="middle" x="793" y="-980.8" font-family="Times,serif" font-size="14.00">Target: third_party</text>
|
||||
</g>
|
||||
<g id="clust4" class="cluster">
|
||||
<title>clusterCXX</title>
|
||||
<polygon fill="none" stroke="royalblue" points="380,-452 380,-675 690,-675 690,-452 380,-452"/>
|
||||
<text text-anchor="middle" x="535" y="-659.8" font-family="Times,serif" font-size="14.00">C++</text>
|
||||
<text text-anchor="middle" x="535" y="-644.8" font-family="Times,serif" font-size="14.00">Target: cc</text>
|
||||
</g>
|
||||
<g id="clust5" class="cluster">
|
||||
<title>clusterCXXTest</title>
|
||||
<polygon fill="none" stroke="black" points="550,-460 550,-550 682,-550 682,-460 550,-460"/>
|
||||
<text text-anchor="middle" x="616" y="-534.8" font-family="Times,serif" font-size="14.00">Examples</text>
|
||||
<text text-anchor="middle" x="616" y="-519.8" font-family="Times,serif" font-size="14.00">Target: test_cc</text>
|
||||
</g>
|
||||
<g id="clust6" class="cluster">
|
||||
<title>clusterPython</title>
|
||||
<polygon fill="none" stroke="gold" points="698,-234 698,-550 1064,-550 1064,-234 698,-234"/>
|
||||
<text text-anchor="middle" x="881" y="-534.8" font-family="Times,serif" font-size="14.00">Python</text>
|
||||
<text text-anchor="middle" x="881" y="-519.8" font-family="Times,serif" font-size="14.00">Target: python</text>
|
||||
</g>
|
||||
<g id="clust7" class="cluster">
|
||||
<title>clusterPythonTest</title>
|
||||
<polygon fill="none" stroke="black" points="900,-242 900,-332 1056,-332 1056,-242 900,-242"/>
|
||||
<text text-anchor="middle" x="978" y="-316.8" font-family="Times,serif" font-size="14.00">Examples</text>
|
||||
<text text-anchor="middle" x="978" y="-301.8" font-family="Times,serif" font-size="14.00">Target: test_python</text>
|
||||
</g>
|
||||
<g id="clust8" class="cluster">
|
||||
<title>clusterJava</title>
|
||||
<polygon fill="none" stroke="crimson" points="1072,-234 1072,-550 1398,-550 1398,-234 1072,-234"/>
|
||||
<text text-anchor="middle" x="1235" y="-534.8" font-family="Times,serif" font-size="14.00">Java</text>
|
||||
<text text-anchor="middle" x="1235" y="-519.8" font-family="Times,serif" font-size="14.00">Target: java</text>
|
||||
</g>
|
||||
<g id="clust9" class="cluster">
|
||||
<title>clusterJavaTest</title>
|
||||
<polygon fill="none" stroke="black" points="1254,-242 1254,-332 1390,-332 1390,-242 1254,-242"/>
|
||||
<text text-anchor="middle" x="1322" y="-316.8" font-family="Times,serif" font-size="14.00">Examples</text>
|
||||
<text text-anchor="middle" x="1322" y="-301.8" font-family="Times,serif" font-size="14.00">Target: test_java</text>
|
||||
</g>
|
||||
<g id="clust10" class="cluster">
|
||||
<title>clusterNet</title>
|
||||
<polygon fill="none" stroke="forestgreen" points="1406,-16 1406,-550 1954,-550 1954,-16 1406,-16"/>
|
||||
<text text-anchor="middle" x="1680" y="-534.8" font-family="Times,serif" font-size="14.00">.Net</text>
|
||||
<text text-anchor="middle" x="1680" y="-519.8" font-family="Times,serif" font-size="14.00">Target: dotnet</text>
|
||||
</g>
|
||||
<g id="clust11" class="cluster">
|
||||
<title>clusterNetTest</title>
|
||||
<polygon fill="none" stroke="black" points="1704,-24 1704,-114 1946,-114 1946,-24 1704,-24"/>
|
||||
<text text-anchor="middle" x="1825" y="-98.8" font-family="Times,serif" font-size="14.00">Examples</text>
|
||||
<text text-anchor="middle" x="1825" y="-83.8" font-family="Times,serif" font-size="14.00">Target: test_dotnet</text>
|
||||
</g>
|
||||
<!-- M -->
|
||||
<g id="node1" class="node">
|
||||
<title>M</title>
|
||||
<polygon fill="royalblue" stroke="black" points="187,-964 135,-964 131,-960 131,-928 183,-928 187,-932 187,-964"/>
|
||||
<polyline fill="none" stroke="black" points="183,-960 131,-960 "/>
|
||||
<polyline fill="none" stroke="black" points="183,-960 183,-928 "/>
|
||||
<polyline fill="none" stroke="black" points="183,-960 187,-964 "/>
|
||||
<text text-anchor="middle" x="159" y="-942.3" font-family="Times,serif" font-size="14.00">Make</text>
|
||||
</g>
|
||||
<!-- SWIG -->
|
||||
<g id="node3" class="node">
|
||||
<title>SWIG</title>
|
||||
<polygon fill="chocolate" stroke="black" points="189.5,-890 132.5,-890 128.5,-886 128.5,-852 185.5,-852 189.5,-856 189.5,-890"/>
|
||||
<polyline fill="none" stroke="black" points="185.5,-886 128.5,-886 "/>
|
||||
<polyline fill="none" stroke="black" points="185.5,-886 185.5,-852 "/>
|
||||
<polyline fill="none" stroke="black" points="185.5,-886 189.5,-890 "/>
|
||||
<text text-anchor="middle" x="159" y="-874.8" font-family="Times,serif" font-size="14.00">Swig</text>
|
||||
<text text-anchor="middle" x="159" y="-859.8" font-family="Times,serif" font-size="14.00">(Unix)</text>
|
||||
</g>
|
||||
<!-- M->SWIG -->
|
||||
<g id="edge1" class="edge">
|
||||
<title>M->SWIG</title>
|
||||
</g>
|
||||
<!-- CM -->
|
||||
<g id="node2" class="node">
|
||||
<title>CM</title>
|
||||
<polygon fill="royalblue" stroke="black" points="98,-964 36,-964 32,-960 32,-928 94,-928 98,-932 98,-964"/>
|
||||
<polyline fill="none" stroke="black" points="94,-960 32,-960 "/>
|
||||
<polyline fill="none" stroke="black" points="94,-960 94,-928 "/>
|
||||
<polyline fill="none" stroke="black" points="94,-960 98,-964 "/>
|
||||
<text text-anchor="middle" x="65" y="-942.3" font-family="Times,serif" font-size="14.00">CMake</text>
|
||||
</g>
|
||||
<!-- PY -->
|
||||
<g id="node4" class="node">
|
||||
<title>PY</title>
|
||||
<polygon fill="gold" stroke="black" points="83.5,-815 20.5,-815 16.5,-811 16.5,-777 79.5,-777 83.5,-781 83.5,-815"/>
|
||||
<polyline fill="none" stroke="black" points="79.5,-811 16.5,-811 "/>
|
||||
<polyline fill="none" stroke="black" points="79.5,-811 79.5,-777 "/>
|
||||
<polyline fill="none" stroke="black" points="79.5,-811 83.5,-815 "/>
|
||||
<text text-anchor="middle" x="50" y="-799.8" font-family="Times,serif" font-size="14.00">Python</text>
|
||||
<text text-anchor="middle" x="50" y="-784.8" font-family="Times,serif" font-size="14.00">(3.5+)</text>
|
||||
</g>
|
||||
<!-- SWIG->PY -->
|
||||
<g id="edge2" class="edge">
|
||||
<title>SWIG->PY</title>
|
||||
</g>
|
||||
<!-- JV -->
|
||||
<g id="node5" class="node">
|
||||
<title>JV</title>
|
||||
<polygon fill="crimson" stroke="black" points="216,-815 106,-815 102,-811 102,-777 212,-777 216,-781 216,-815"/>
|
||||
<polyline fill="none" stroke="black" points="212,-811 102,-811 "/>
|
||||
<polyline fill="none" stroke="black" points="212,-811 212,-777 "/>
|
||||
<polyline fill="none" stroke="black" points="212,-811 216,-815 "/>
|
||||
<text text-anchor="middle" x="159" y="-799.8" font-family="Times,serif" font-size="14.00">Java</text>
|
||||
<text text-anchor="middle" x="159" y="-784.8" font-family="Times,serif" font-size="14.00">(openJDK 8+)</text>
|
||||
</g>
|
||||
<!-- SWIG->JV -->
|
||||
<g id="edge3" class="edge">
|
||||
<title>SWIG->JV</title>
|
||||
</g>
|
||||
<!-- NET -->
|
||||
<g id="node6" class="node">
|
||||
<title>NET</title>
|
||||
<polygon fill="forestgreen" stroke="black" points="356,-815 238,-815 234,-811 234,-777 352,-777 356,-781 356,-815"/>
|
||||
<polyline fill="none" stroke="black" points="352,-811 234,-811 "/>
|
||||
<polyline fill="none" stroke="black" points="352,-811 352,-777 "/>
|
||||
<polyline fill="none" stroke="black" points="352,-811 356,-815 "/>
|
||||
<text text-anchor="middle" x="295" y="-799.8" font-family="Times,serif" font-size="14.00">.Net Core SDK</text>
|
||||
<text text-anchor="middle" x="295" y="-784.8" font-family="Times,serif" font-size="14.00">(3.0.101)</text>
|
||||
</g>
|
||||
<!-- SWIG->NET -->
|
||||
<g id="edge4" class="edge">
|
||||
<title>SWIG->NET</title>
|
||||
</g>
|
||||
<!-- FS -->
|
||||
<g id="node7" class="node">
|
||||
<title>FS</title>
|
||||
<polygon fill="forestgreen" stroke="black" points="332,-739 262,-739 258,-735 258,-703 328,-703 332,-707 332,-739"/>
|
||||
<polyline fill="none" stroke="black" points="328,-735 258,-735 "/>
|
||||
<polyline fill="none" stroke="black" points="328,-735 328,-703 "/>
|
||||
<polyline fill="none" stroke="black" points="328,-735 332,-739 "/>
|
||||
<text text-anchor="middle" x="295" y="-717.3" font-family="Times,serif" font-size="14.00">.Net F#</text>
|
||||
</g>
|
||||
<!-- NET->FS -->
|
||||
<g id="edge5" class="edge">
|
||||
<title>NET->FS</title>
|
||||
</g>
|
||||
<!-- Z -->
|
||||
<g id="node8" class="node">
|
||||
<title>Z</title>
|
||||
<path fill="royalblue" stroke="royalblue" d="M556,-965C556,-965 514,-965 514,-965 508,-965 502,-959 502,-953 502,-953 502,-939 502,-939 502,-933 508,-927 514,-927 514,-927 556,-927 556,-927 562,-927 568,-933 568,-939 568,-939 568,-953 568,-953 568,-959 562,-965 556,-965"/>
|
||||
<text text-anchor="middle" x="535" y="-949.8" font-family="Times,serif" font-size="14.00">Zlib</text>
|
||||
<text text-anchor="middle" x="535" y="-934.8" font-family="Times,serif" font-size="14.00">(Make)</text>
|
||||
</g>
|
||||
<!-- PB -->
|
||||
<g id="node12" class="node">
|
||||
<title>PB</title>
|
||||
<path fill="royalblue" stroke="royalblue" d="M537.5,-890C537.5,-890 482.5,-890 482.5,-890 476.5,-890 470.5,-884 470.5,-878 470.5,-878 470.5,-864 470.5,-864 470.5,-858 476.5,-852 482.5,-852 482.5,-852 537.5,-852 537.5,-852 543.5,-852 549.5,-858 549.5,-864 549.5,-864 549.5,-878 549.5,-878 549.5,-884 543.5,-890 537.5,-890"/>
|
||||
<text text-anchor="middle" x="510" y="-874.8" font-family="Times,serif" font-size="14.00">Protobuf</text>
|
||||
<text text-anchor="middle" x="510" y="-859.8" font-family="Times,serif" font-size="14.00">(CMake)</text>
|
||||
</g>
|
||||
<!-- Z->PB -->
|
||||
<g id="edge6" class="edge">
|
||||
<title>Z->PB</title>
|
||||
<path fill="none" stroke="black" d="M528.82,-926.96C526,-918.71 522.59,-908.75 519.45,-899.6"/>
|
||||
<polygon fill="black" stroke="black" points="522.75,-898.42 516.2,-890.09 516.12,-900.68 522.75,-898.42"/>
|
||||
</g>
|
||||
<!-- OR_CC -->
|
||||
<g id="node24" class="node">
|
||||
<title>OR_CC</title>
|
||||
<path fill="royalblue" stroke="black" d="M545.5,-629C545.5,-629 482.5,-629 482.5,-629 476.5,-629 470.5,-623 470.5,-617 470.5,-617 470.5,-603 470.5,-603 470.5,-597 476.5,-591 482.5,-591 482.5,-591 545.5,-591 545.5,-591 551.5,-591 557.5,-597 557.5,-603 557.5,-603 557.5,-617 557.5,-617 557.5,-623 551.5,-629 545.5,-629"/>
|
||||
<text text-anchor="middle" x="514" y="-613.8" font-family="Times,serif" font-size="14.00">C++</text>
|
||||
<text text-anchor="middle" x="514" y="-598.8" font-family="Times,serif" font-size="14.00">Target: cc</text>
|
||||
</g>
|
||||
<!-- Z->OR_CC -->
|
||||
<g id="edge19" class="edge">
|
||||
<title>Z->OR_CC</title>
|
||||
<path fill="none" stroke="black" d="M568.23,-930C571.17,-928.91 574.12,-927.89 577,-927 665.11,-899.88 777,-964.19 777,-872 777,-872 777,-872 777,-720 777,-624.55 648.62,-724.49 567,-675 551.82,-665.8 538.99,-650.65 529.76,-637.41"/>
|
||||
<polygon fill="black" stroke="black" points="532.66,-635.46 524.22,-629.06 526.83,-639.33 532.66,-635.46"/>
|
||||
</g>
|
||||
<!-- ABSL -->
|
||||
<g id="node9" class="node">
|
||||
<title>ABSL</title>
|
||||
<path fill="royalblue" stroke="royalblue" d="M664,-965C664,-965 598,-965 598,-965 592,-965 586,-959 586,-953 586,-953 586,-939 586,-939 586,-933 592,-927 598,-927 598,-927 664,-927 664,-927 670,-927 676,-933 676,-939 676,-939 676,-953 676,-953 676,-959 670,-965 664,-965"/>
|
||||
<text text-anchor="middle" x="631" y="-949.8" font-family="Times,serif" font-size="14.00">Abseil-cpp</text>
|
||||
<text text-anchor="middle" x="631" y="-934.8" font-family="Times,serif" font-size="14.00">(CMake)</text>
|
||||
</g>
|
||||
<!-- ABSL->PB -->
|
||||
<g id="edge7" class="edge">
|
||||
<title>ABSL->PB</title>
|
||||
<path fill="none" stroke="black" d="M601.09,-926.96C585.24,-917.39 565.58,-905.53 548.59,-895.28"/>
|
||||
<polygon fill="black" stroke="black" points="550.36,-892.26 539.99,-890.09 546.74,-898.25 550.36,-892.26"/>
|
||||
</g>
|
||||
<!-- ABSL->OR_CC -->
|
||||
<g id="edge20" class="edge">
|
||||
<title>ABSL->OR_CC</title>
|
||||
<path fill="none" stroke="black" d="M676.2,-929.78C679.51,-928.8 682.8,-927.86 686,-927 739.17,-912.71 797,-927.06 797,-872 797,-872 797,-872 797,-720 797,-706.66 792.84,-701.78 782,-694 761.75,-679.47 751.74,-686.08 727,-683 709.34,-680.8 582.91,-682.97 567,-675 550.92,-666.94 537.93,-651.55 528.83,-637.88"/>
|
||||
<polygon fill="black" stroke="black" points="531.7,-635.86 523.43,-629.24 525.77,-639.57 531.7,-635.86"/>
|
||||
</g>
|
||||
<!-- GF -->
|
||||
<g id="node10" class="node">
|
||||
<title>GF</title>
|
||||
<path fill="royalblue" stroke="royalblue" d="M759.5,-965C759.5,-965 706.5,-965 706.5,-965 700.5,-965 694.5,-959 694.5,-953 694.5,-953 694.5,-939 694.5,-939 694.5,-933 700.5,-927 706.5,-927 706.5,-927 759.5,-927 759.5,-927 765.5,-927 771.5,-933 771.5,-939 771.5,-939 771.5,-953 771.5,-953 771.5,-959 765.5,-965 759.5,-965"/>
|
||||
<text text-anchor="middle" x="733" y="-949.8" font-family="Times,serif" font-size="14.00">GFlags</text>
|
||||
<text text-anchor="middle" x="733" y="-934.8" font-family="Times,serif" font-size="14.00">(CMake)</text>
|
||||
</g>
|
||||
<!-- GL -->
|
||||
<g id="node11" class="node">
|
||||
<title>GL</title>
|
||||
<path fill="royalblue" stroke="royalblue" d="M632.5,-890C632.5,-890 579.5,-890 579.5,-890 573.5,-890 567.5,-884 567.5,-878 567.5,-878 567.5,-864 567.5,-864 567.5,-858 573.5,-852 579.5,-852 579.5,-852 632.5,-852 632.5,-852 638.5,-852 644.5,-858 644.5,-864 644.5,-864 644.5,-878 644.5,-878 644.5,-884 638.5,-890 632.5,-890"/>
|
||||
<text text-anchor="middle" x="606" y="-874.8" font-family="Times,serif" font-size="14.00">GLog</text>
|
||||
<text text-anchor="middle" x="606" y="-859.8" font-family="Times,serif" font-size="14.00">(CMake)</text>
|
||||
</g>
|
||||
<!-- GF->GL -->
|
||||
<g id="edge8" class="edge">
|
||||
<title>GF->GL</title>
|
||||
<path fill="none" stroke="black" d="M701.61,-926.96C684.97,-917.39 664.34,-905.53 646.51,-895.28"/>
|
||||
<polygon fill="black" stroke="black" points="647.89,-892.04 637.47,-890.09 644.4,-898.11 647.89,-892.04"/>
|
||||
</g>
|
||||
<!-- GF->OR_CC -->
|
||||
<g id="edge21" class="edge">
|
||||
<title>GF->OR_CC</title>
|
||||
<path fill="none" stroke="black" d="M771.56,-928.97C793.64,-916.96 817,-898.08 817,-872 817,-872 817,-872 817,-720 817,-706.66 812.89,-701.71 802,-694 780.23,-678.59 769.5,-686.06 743,-683 723.55,-680.76 584.52,-683.73 567,-675 550.9,-666.98 537.91,-651.59 528.82,-637.91"/>
|
||||
<polygon fill="black" stroke="black" points="531.68,-635.89 523.42,-629.26 525.75,-639.6 531.68,-635.89"/>
|
||||
</g>
|
||||
<!-- GL->OR_CC -->
|
||||
<g id="edge22" class="edge">
|
||||
<title>GL->OR_CC</title>
|
||||
<path fill="none" stroke="black" d="M567.4,-854.8C564.57,-853.81 561.75,-852.87 559,-852 494.76,-831.69 453.42,-868.14 412,-815 366.99,-757.26 440.21,-676.51 484.35,-636.11"/>
|
||||
<polygon fill="black" stroke="black" points="486.85,-638.56 491.95,-629.28 482.17,-633.35 486.85,-638.56"/>
|
||||
</g>
|
||||
<!-- PB->OR_CC -->
|
||||
<g id="edge23" class="edge">
|
||||
<title>PB->OR_CC</title>
|
||||
<path fill="none" stroke="black" d="M470.46,-868.83C444.74,-865.76 412.93,-857.1 396,-834 356.33,-779.87 363.15,-741.52 396,-683 410.06,-657.95 436.77,-640.58 461.23,-629.19"/>
|
||||
<polygon fill="black" stroke="black" points="462.73,-632.36 470.46,-625.11 459.9,-625.95 462.73,-632.36"/>
|
||||
</g>
|
||||
<!-- CU -->
|
||||
<g id="node13" class="node">
|
||||
<title>CU</title>
|
||||
<path fill="royalblue" stroke="royalblue" d="M471.5,-965C471.5,-965 400.5,-965 400.5,-965 394.5,-965 388.5,-959 388.5,-953 388.5,-953 388.5,-939 388.5,-939 388.5,-933 394.5,-927 400.5,-927 400.5,-927 471.5,-927 471.5,-927 477.5,-927 483.5,-933 483.5,-939 483.5,-939 483.5,-953 483.5,-953 483.5,-959 477.5,-965 471.5,-965"/>
|
||||
<text text-anchor="middle" x="436" y="-949.8" font-family="Times,serif" font-size="14.00">CoinUtils</text>
|
||||
<text text-anchor="middle" x="436" y="-934.8" font-family="Times,serif" font-size="14.00">(Autotools)</text>
|
||||
</g>
|
||||
<!-- OSI -->
|
||||
<g id="node14" class="node">
|
||||
<title>OSI</title>
|
||||
<path fill="royalblue" stroke="royalblue" d="M745.5,-890C745.5,-890 674.5,-890 674.5,-890 668.5,-890 662.5,-884 662.5,-878 662.5,-878 662.5,-864 662.5,-864 662.5,-858 668.5,-852 674.5,-852 674.5,-852 745.5,-852 745.5,-852 751.5,-852 757.5,-858 757.5,-864 757.5,-864 757.5,-878 757.5,-878 757.5,-884 751.5,-890 745.5,-890"/>
|
||||
<text text-anchor="middle" x="710" y="-874.8" font-family="Times,serif" font-size="14.00">Osi</text>
|
||||
<text text-anchor="middle" x="710" y="-859.8" font-family="Times,serif" font-size="14.00">(Autotools)</text>
|
||||
</g>
|
||||
<!-- CU->OSI -->
|
||||
<g id="edge9" class="edge">
|
||||
<title>CU->OSI</title>
|
||||
<path fill="none" stroke="black" d="M483.5,-929.69C486.71,-928.75 489.9,-927.85 493,-927 560.8,-908.54 581.45,-909.36 652.54,-890.29"/>
|
||||
<polygon fill="black" stroke="black" points="653.69,-893.6 662.42,-887.6 651.86,-886.85 653.69,-893.6"/>
|
||||
</g>
|
||||
<!-- CLP -->
|
||||
<g id="node15" class="node">
|
||||
<title>CLP</title>
|
||||
<path fill="royalblue" stroke="royalblue" d="M503.5,-815C503.5,-815 432.5,-815 432.5,-815 426.5,-815 420.5,-809 420.5,-803 420.5,-803 420.5,-789 420.5,-789 420.5,-783 426.5,-777 432.5,-777 432.5,-777 503.5,-777 503.5,-777 509.5,-777 515.5,-783 515.5,-789 515.5,-789 515.5,-803 515.5,-803 515.5,-809 509.5,-815 503.5,-815"/>
|
||||
<text text-anchor="middle" x="468" y="-799.8" font-family="Times,serif" font-size="14.00">Clp</text>
|
||||
<text text-anchor="middle" x="468" y="-784.8" font-family="Times,serif" font-size="14.00">(Autotools)</text>
|
||||
</g>
|
||||
<!-- CU->CLP -->
|
||||
<g id="edge10" class="edge">
|
||||
<title>CU->CLP</title>
|
||||
<path fill="none" stroke="black" d="M429.57,-926.72C422.57,-903.48 414.31,-862.81 430,-833 431.9,-829.39 434.3,-825.95 436.96,-822.71"/>
|
||||
<polygon fill="black" stroke="black" points="439.76,-824.85 444.01,-815.15 434.63,-820.08 439.76,-824.85"/>
|
||||
</g>
|
||||
<!-- CGL -->
|
||||
<g id="node16" class="node">
|
||||
<title>CGL</title>
|
||||
<path fill="royalblue" stroke="royalblue" d="M637.5,-815C637.5,-815 566.5,-815 566.5,-815 560.5,-815 554.5,-809 554.5,-803 554.5,-803 554.5,-789 554.5,-789 554.5,-783 560.5,-777 566.5,-777 566.5,-777 637.5,-777 637.5,-777 643.5,-777 649.5,-783 649.5,-789 649.5,-789 649.5,-803 649.5,-803 649.5,-809 643.5,-815 637.5,-815"/>
|
||||
<text text-anchor="middle" x="602" y="-799.8" font-family="Times,serif" font-size="14.00">Cgl</text>
|
||||
<text text-anchor="middle" x="602" y="-784.8" font-family="Times,serif" font-size="14.00">(Autotools)</text>
|
||||
</g>
|
||||
<!-- CU->CGL -->
|
||||
<g id="edge12" class="edge">
|
||||
<title>CU->CGL</title>
|
||||
<path fill="none" stroke="black" d="M436.41,-927C437.82,-906.42 443.12,-872.9 462,-852 473.71,-839.04 511.42,-824.6 544.75,-813.77"/>
|
||||
<polygon fill="black" stroke="black" points="546,-817.05 554.47,-810.67 543.88,-810.38 546,-817.05"/>
|
||||
</g>
|
||||
<!-- CBC -->
|
||||
<g id="node17" class="node">
|
||||
<title>CBC</title>
|
||||
<path fill="royalblue" stroke="royalblue" d="M570.5,-740C570.5,-740 499.5,-740 499.5,-740 493.5,-740 487.5,-734 487.5,-728 487.5,-728 487.5,-714 487.5,-714 487.5,-708 493.5,-702 499.5,-702 499.5,-702 570.5,-702 570.5,-702 576.5,-702 582.5,-708 582.5,-714 582.5,-714 582.5,-728 582.5,-728 582.5,-734 576.5,-740 570.5,-740"/>
|
||||
<text text-anchor="middle" x="535" y="-724.8" font-family="Times,serif" font-size="14.00">Cbc</text>
|
||||
<text text-anchor="middle" x="535" y="-709.8" font-family="Times,serif" font-size="14.00">(Autotools)</text>
|
||||
</g>
|
||||
<!-- CU->CBC -->
|
||||
<g id="edge14" class="edge">
|
||||
<title>CU->CBC</title>
|
||||
<path fill="none" stroke="black" d="M431,-926.83C426.59,-906.71 422.97,-874.2 438,-852 461.55,-817.2 499.98,-848.76 525,-815 538.69,-796.53 540.3,-770.05 539,-750.07"/>
|
||||
<polygon fill="black" stroke="black" points="542.47,-749.64 538.07,-740.01 535.5,-750.29 542.47,-749.64"/>
|
||||
</g>
|
||||
<!-- OSI->CLP -->
|
||||
<g id="edge11" class="edge">
|
||||
<title>OSI->CLP</title>
|
||||
<path fill="none" stroke="black" d="M662.37,-854.6C659.54,-853.72 656.73,-852.84 654,-852 611.21,-838.8 562.68,-824.47 525.92,-813.75"/>
|
||||
<polygon fill="black" stroke="black" points="526.46,-810.26 515.88,-810.82 524.5,-816.98 526.46,-810.26"/>
|
||||
</g>
|
||||
<!-- OSI->CGL -->
|
||||
<g id="edge13" class="edge">
|
||||
<title>OSI->CGL</title>
|
||||
<path fill="none" stroke="black" d="M683.3,-851.96C669.41,-842.57 652.25,-830.97 637.28,-820.85"/>
|
||||
<polygon fill="black" stroke="black" points="639.01,-817.79 628.76,-815.09 635.09,-823.59 639.01,-817.79"/>
|
||||
</g>
|
||||
<!-- OSI->CBC -->
|
||||
<g id="edge15" class="edge">
|
||||
<title>OSI->CBC</title>
|
||||
<path fill="none" stroke="black" d="M704,-851.64C696.45,-831.05 681.64,-797.81 659,-777 640.19,-759.71 615.05,-747.19 592.32,-738.51"/>
|
||||
<polygon fill="black" stroke="black" points="593.35,-735.16 582.76,-735.03 590.95,-741.74 593.35,-735.16"/>
|
||||
</g>
|
||||
<!-- CLP->CBC -->
|
||||
<g id="edge16" class="edge">
|
||||
<title>CLP->CBC</title>
|
||||
<path fill="none" stroke="black" d="M484.56,-776.96C492.7,-768.09 502.64,-757.26 511.54,-747.56"/>
|
||||
<polygon fill="black" stroke="black" points="514.21,-749.82 518.4,-740.09 509.06,-745.09 514.21,-749.82"/>
|
||||
</g>
|
||||
<!-- CLP->OR_CC -->
|
||||
<g id="edge24" class="edge">
|
||||
<title>CLP->OR_CC</title>
|
||||
<path fill="none" stroke="black" d="M468.4,-776.84C469.21,-756.4 471.65,-722.34 479,-694 483.97,-674.82 492.6,-654.29 500.04,-638.45"/>
|
||||
<polygon fill="black" stroke="black" points="503.29,-639.78 504.48,-629.25 496.98,-636.74 503.29,-639.78"/>
|
||||
</g>
|
||||
<!-- CGL->CBC -->
|
||||
<g id="edge17" class="edge">
|
||||
<title>CGL->CBC</title>
|
||||
<path fill="none" stroke="black" d="M585.44,-776.96C577.3,-768.09 567.36,-757.26 558.46,-747.56"/>
|
||||
<polygon fill="black" stroke="black" points="560.94,-745.09 551.6,-740.09 555.79,-749.82 560.94,-745.09"/>
|
||||
</g>
|
||||
<!-- CBC->OR_CC -->
|
||||
<g id="edge25" class="edge">
|
||||
<title>CBC->OR_CC</title>
|
||||
<path fill="none" stroke="black" d="M531.44,-701.51C528.14,-684.42 523.2,-658.77 519.42,-639.14"/>
|
||||
<polygon fill="black" stroke="black" points="522.84,-638.37 517.51,-629.22 515.96,-639.7 522.84,-638.37"/>
|
||||
</g>
|
||||
<!-- SWIG_WIN -->
|
||||
<g id="node18" class="node">
|
||||
<title>SWIG_WIN</title>
|
||||
<path fill="royalblue" stroke="chocolate" d="M870,-965C870,-965 802,-965 802,-965 796,-965 790,-959 790,-953 790,-953 790,-939 790,-939 790,-933 796,-927 802,-927 802,-927 870,-927 870,-927 876,-927 882,-933 882,-939 882,-939 882,-953 882,-953 882,-959 876,-965 870,-965"/>
|
||||
<text text-anchor="middle" x="836" y="-949.8" font-family="Times,serif" font-size="14.00">Swigwin</text>
|
||||
<text text-anchor="middle" x="836" y="-934.8" font-family="Times,serif" font-size="14.00">(Windows)</text>
|
||||
</g>
|
||||
<!-- GLPK -->
|
||||
<g id="node19" class="node">
|
||||
<title>GLPK</title>
|
||||
<path fill="none" stroke="grey" stroke-dasharray="5,2" d="M945.5,-964C945.5,-964 912.5,-964 912.5,-964 906.5,-964 900.5,-958 900.5,-952 900.5,-952 900.5,-940 900.5,-940 900.5,-934 906.5,-928 912.5,-928 912.5,-928 945.5,-928 945.5,-928 951.5,-928 957.5,-934 957.5,-940 957.5,-940 957.5,-952 957.5,-952 957.5,-958 951.5,-964 945.5,-964"/>
|
||||
<text text-anchor="middle" x="929" y="-942.3" font-family="Times,serif" font-size="14.00">GLPK</text>
|
||||
</g>
|
||||
<!-- GLPK->OR_CC -->
|
||||
<g id="edge26" class="edge">
|
||||
<title>GLPK->OR_CC</title>
|
||||
<path fill="none" stroke="black" d="M900.2,-928.45C882.04,-915.66 862,-896.08 862,-872 862,-872 862,-872 862,-720 862,-698.8 841.68,-701.9 822,-694 797.65,-684.22 790.07,-685.98 764,-683 742.24,-680.51 586.63,-684.72 567,-675 550.88,-667.02 537.89,-651.63 528.81,-637.94"/>
|
||||
<polygon fill="black" stroke="black" points="531.67,-635.92 523.41,-629.29 525.73,-639.62 531.67,-635.92"/>
|
||||
</g>
|
||||
<!-- SCIP -->
|
||||
<g id="node20" class="node">
|
||||
<title>SCIP</title>
|
||||
<path fill="none" stroke="grey" stroke-dasharray="5,2" d="M1018,-964C1018,-964 988,-964 988,-964 982,-964 976,-958 976,-952 976,-952 976,-940 976,-940 976,-934 982,-928 988,-928 988,-928 1018,-928 1018,-928 1024,-928 1030,-934 1030,-940 1030,-940 1030,-952 1030,-952 1030,-958 1024,-964 1018,-964"/>
|
||||
<text text-anchor="middle" x="1003" y="-942.3" font-family="Times,serif" font-size="14.00">SCIP</text>
|
||||
</g>
|
||||
<!-- SCIP->OR_CC -->
|
||||
<g id="edge27" class="edge">
|
||||
<title>SCIP->OR_CC</title>
|
||||
<path fill="none" stroke="black" d="M975.74,-930.61C956.08,-918.05 933,-897.81 933,-872 933,-872 933,-872 933,-720 933,-688.47 897.58,-701.67 867,-694 826.2,-683.76 814.94,-686.26 773,-683 750.16,-681.22 587.54,-685.15 567,-675 550.87,-667.03 537.88,-651.64 528.8,-637.95"/>
|
||||
<polygon fill="black" stroke="black" points="531.66,-635.93 523.4,-629.3 525.72,-639.63 531.66,-635.93"/>
|
||||
</g>
|
||||
<!-- CPLEX -->
|
||||
<g id="node21" class="node">
|
||||
<title>CPLEX</title>
|
||||
<path fill="none" stroke="grey" stroke-dasharray="5,2" d="M1102,-964C1102,-964 1060,-964 1060,-964 1054,-964 1048,-958 1048,-952 1048,-952 1048,-940 1048,-940 1048,-934 1054,-928 1060,-928 1060,-928 1102,-928 1102,-928 1108,-928 1114,-934 1114,-940 1114,-940 1114,-952 1114,-952 1114,-958 1108,-964 1102,-964"/>
|
||||
<text text-anchor="middle" x="1081" y="-942.3" font-family="Times,serif" font-size="14.00">CPLEX</text>
|
||||
</g>
|
||||
<!-- CPLEX->OR_CC -->
|
||||
<g id="edge28" class="edge">
|
||||
<title>CPLEX->OR_CC</title>
|
||||
<path fill="none" stroke="black" d="M1071.17,-927.91C1063.81,-913.49 1055,-892.05 1055,-872 1055,-872 1055,-872 1055,-720 1055,-666.73 990.71,-701.7 938,-694 870.1,-684.09 852.52,-686.71 784,-683 759.91,-681.7 588.64,-685.67 567,-675 550.76,-666.99 537.7,-651.46 528.61,-637.69"/>
|
||||
<polygon fill="black" stroke="black" points="531.47,-635.65 523.22,-629 525.52,-639.35 531.47,-635.65"/>
|
||||
</g>
|
||||
<!-- GUROBI -->
|
||||
<g id="node22" class="node">
|
||||
<title>GUROBI</title>
|
||||
<path fill="none" stroke="grey" stroke-dasharray="5,2" d="M1185.5,-964C1185.5,-964 1144.5,-964 1144.5,-964 1138.5,-964 1132.5,-958 1132.5,-952 1132.5,-952 1132.5,-940 1132.5,-940 1132.5,-934 1138.5,-928 1144.5,-928 1144.5,-928 1185.5,-928 1185.5,-928 1191.5,-928 1197.5,-934 1197.5,-940 1197.5,-940 1197.5,-952 1197.5,-952 1197.5,-958 1191.5,-964 1185.5,-964"/>
|
||||
<text text-anchor="middle" x="1165" y="-942.3" font-family="Times,serif" font-size="14.00">Gurobi</text>
|
||||
</g>
|
||||
<!-- GUROBI->OR_CC -->
|
||||
<g id="edge29" class="edge">
|
||||
<title>GUROBI->OR_CC</title>
|
||||
<path fill="none" stroke="black" d="M1152.34,-927.98C1143.03,-913.77 1132,-892.58 1132,-872 1132,-872 1132,-872 1132,-720 1132,-685.98 1093.38,-700.57 1060,-694 945.64,-671.5 914.46,-687.46 798,-683 785.17,-682.51 578.52,-680.66 567,-675 550.75,-667.01 537.7,-651.47 528.61,-637.71"/>
|
||||
<polygon fill="black" stroke="black" points="531.46,-635.67 523.22,-629.02 525.51,-639.36 531.46,-635.67"/>
|
||||
</g>
|
||||
<!-- OR_SRC -->
|
||||
<g id="node23" class="node">
|
||||
<title>OR_SRC</title>
|
||||
<polygon fill="royalblue" stroke="black" points="682,-629 679,-633 658,-633 655,-629 576,-629 576,-591 682,-591 682,-629"/>
|
||||
<text text-anchor="middle" x="629" y="-613.8" font-family="Times,serif" font-size="14.00">OR-Tools src</text>
|
||||
<text text-anchor="middle" x="629" y="-598.8" font-family="Times,serif" font-size="14.00">ortools/...</text>
|
||||
</g>
|
||||
<!-- PKG_CC -->
|
||||
<g id="node25" class="node">
|
||||
<title>PKG_CC</title>
|
||||
<polygon fill="royalblue" stroke="black" points="540,-505 392,-505 388,-501 388,-467 536,-467 540,-471 540,-505"/>
|
||||
<polyline fill="none" stroke="black" points="536,-501 388,-501 "/>
|
||||
<polyline fill="none" stroke="black" points="536,-501 536,-467 "/>
|
||||
<polyline fill="none" stroke="black" points="536,-501 540,-505 "/>
|
||||
<text text-anchor="middle" x="464" y="-489.8" font-family="Times,serif" font-size="14.00">.tar.gz/.zip Archive</text>
|
||||
<text text-anchor="middle" x="464" y="-474.8" font-family="Times,serif" font-size="14.00">Target: package_cc</text>
|
||||
</g>
|
||||
<!-- OR_CC->PKG_CC -->
|
||||
<g id="edge30" class="edge">
|
||||
<title>OR_CC->PKG_CC</title>
|
||||
<path fill="none" stroke="dimgrey" stroke-dasharray="1,5" d="M506.62,-591C498.35,-570.82 484.84,-537.86 475.25,-514.45"/>
|
||||
<polygon fill="dimgrey" stroke="dimgrey" points="478.44,-513 471.41,-505.08 471.96,-515.66 478.44,-513"/>
|
||||
<text text-anchor="middle" x="514" y="-561.8" font-family="Times,serif" font-size="14.00">WIP</text>
|
||||
</g>
|
||||
<!-- EX_CC -->
|
||||
<g id="node26" class="node">
|
||||
<title>EX_CC</title>
|
||||
<polygon fill="royalblue" stroke="black" points="668,-504 558,-504 558,-468 674,-468 674,-498 668,-504"/>
|
||||
<polyline fill="none" stroke="black" points="668,-504 668,-498 "/>
|
||||
<polyline fill="none" stroke="black" points="674,-498 668,-498 "/>
|
||||
<text text-anchor="middle" x="616" y="-482.3" font-family="Times,serif" font-size="14.00">C++ Samples</text>
|
||||
</g>
|
||||
<!-- OR_CC->EX_CC -->
|
||||
<g id="edge18" class="edge">
|
||||
<title>OR_CC->EX_CC</title>
|
||||
<path fill="none" stroke="black" d="M529.05,-591C546.5,-570.13 575.37,-535.59 595.02,-512.1"/>
|
||||
<polygon fill="black" stroke="black" points="597.82,-514.2 601.55,-504.29 592.45,-509.71 597.82,-514.2"/>
|
||||
</g>
|
||||
<!-- OR_WPY -->
|
||||
<g id="node27" class="node">
|
||||
<title>OR_WPY</title>
|
||||
<polygon fill="gold" stroke="black" points="878,-504 706,-504 706,-468 884,-468 884,-498 878,-504"/>
|
||||
<polyline fill="none" stroke="black" points="878,-504 878,-498 "/>
|
||||
<polyline fill="none" stroke="black" points="884,-498 878,-498 "/>
|
||||
<text text-anchor="middle" x="795" y="-482.3" font-family="Times,serif" font-size="14.00">C++ Python wrappers</text>
|
||||
</g>
|
||||
<!-- OR_CC->OR_WPY -->
|
||||
<g id="edge32" class="edge">
|
||||
<title>OR_CC->OR_WPY</title>
|
||||
<path fill="none" stroke="chocolate" d="M557.72,-594.12C607.66,-577.1 682.94,-551.39 686,-550 711.76,-538.27 739.35,-522.29 760.33,-509.35"/>
|
||||
<polygon fill="chocolate" stroke="chocolate" points="762.25,-512.28 768.89,-504.02 758.55,-506.34 762.25,-512.28"/>
|
||||
<text text-anchor="middle" x="679" y="-561.8" font-family="Times,serif" font-size="14.00">swig</text>
|
||||
</g>
|
||||
<!-- OR_PY -->
|
||||
<g id="node28" class="node">
|
||||
<title>OR_PY</title>
|
||||
<polygon fill="gold" stroke="black" points="928,-411 812,-411 812,-373 934,-373 934,-405 928,-411"/>
|
||||
<polyline fill="none" stroke="black" points="928,-411 928,-405 "/>
|
||||
<polyline fill="none" stroke="black" points="934,-405 928,-405 "/>
|
||||
<text text-anchor="middle" x="873" y="-395.8" font-family="Times,serif" font-size="14.00">Python files</text>
|
||||
<text text-anchor="middle" x="873" y="-380.8" font-family="Times,serif" font-size="14.00">Target: python</text>
|
||||
</g>
|
||||
<!-- OR_CC->OR_PY -->
|
||||
<g id="edge33" class="edge">
|
||||
<title>OR_CC->OR_PY</title>
|
||||
<path fill="none" stroke="chocolate" d="M557.76,-593.38C560.87,-592.5 563.97,-591.7 567,-591 638.15,-574.62 844.44,-604.53 893,-550 928.77,-509.84 908.04,-480.92 894,-429 893.2,-426.02 892.08,-423.04 890.77,-420.13"/>
|
||||
<polygon fill="chocolate" stroke="chocolate" points="893.85,-418.46 886.11,-411.22 887.64,-421.71 893.85,-418.46"/>
|
||||
<text text-anchor="middle" x="929" y="-482.3" font-family="Times,serif" font-size="14.00">swig</text>
|
||||
</g>
|
||||
<!-- OR_WJV -->
|
||||
<g id="node31" class="node">
|
||||
<title>OR_WJV</title>
|
||||
<polygon fill="crimson" stroke="black" points="1232,-504 1080,-504 1080,-468 1238,-468 1238,-498 1232,-504"/>
|
||||
<polyline fill="none" stroke="black" points="1232,-504 1232,-498 "/>
|
||||
<polyline fill="none" stroke="black" points="1238,-498 1232,-498 "/>
|
||||
<text text-anchor="middle" x="1159" y="-482.3" font-family="Times,serif" font-size="14.00">C++ Java wrappers</text>
|
||||
</g>
|
||||
<!-- OR_CC->OR_WJV -->
|
||||
<g id="edge37" class="edge">
|
||||
<title>OR_CC->OR_WJV</title>
|
||||
<path fill="none" stroke="chocolate" d="M557.71,-593.11C560.83,-592.3 563.95,-591.58 567,-591 786.44,-549.07 860.73,-633.39 1068,-550 1091.44,-540.57 1114.81,-524.21 1131.99,-510.52"/>
|
||||
<polygon fill="chocolate" stroke="chocolate" points="1134.37,-513.1 1139.91,-504.06 1129.95,-507.67 1134.37,-513.1"/>
|
||||
<text text-anchor="middle" x="1060" y="-561.8" font-family="Times,serif" font-size="14.00">swig</text>
|
||||
</g>
|
||||
<!-- OR_JV -->
|
||||
<g id="node32" class="node">
|
||||
<title>OR_JV</title>
|
||||
<polygon fill="crimson" stroke="black" points="1271.5,-411 1176.5,-411 1176.5,-373 1277.5,-373 1277.5,-405 1271.5,-411"/>
|
||||
<polyline fill="none" stroke="black" points="1271.5,-411 1271.5,-405 "/>
|
||||
<polyline fill="none" stroke="black" points="1277.5,-405 1271.5,-405 "/>
|
||||
<text text-anchor="middle" x="1227" y="-395.8" font-family="Times,serif" font-size="14.00">Java files</text>
|
||||
<text text-anchor="middle" x="1227" y="-380.8" font-family="Times,serif" font-size="14.00">Target: java</text>
|
||||
</g>
|
||||
<!-- OR_CC->OR_JV -->
|
||||
<g id="edge38" class="edge">
|
||||
<title>OR_CC->OR_JV</title>
|
||||
<path fill="none" stroke="chocolate" d="M557.7,-593.06C560.82,-592.26 563.94,-591.56 567,-591 679.42,-570.4 967.13,-582.86 1081,-573 1155.21,-566.58 1198.08,-606.17 1247,-550 1278.34,-514.02 1257.95,-454.6 1241.6,-420.1"/>
|
||||
<polygon fill="chocolate" stroke="chocolate" points="1244.71,-418.49 1237.14,-411.08 1238.43,-421.59 1244.71,-418.49"/>
|
||||
<text text-anchor="middle" x="1280" y="-482.3" font-family="Times,serif" font-size="14.00">swig</text>
|
||||
</g>
|
||||
<!-- OR_WNET -->
|
||||
<g id="node35" class="node">
|
||||
<title>OR_WNET</title>
|
||||
<polygon fill="forestgreen" stroke="black" points="1641,-504 1489,-504 1489,-468 1647,-468 1647,-498 1641,-504"/>
|
||||
<polyline fill="none" stroke="black" points="1641,-504 1641,-498 "/>
|
||||
<polyline fill="none" stroke="black" points="1647,-498 1641,-498 "/>
|
||||
<text text-anchor="middle" x="1568" y="-482.3" font-family="Times,serif" font-size="14.00">C++ .Net wrappers</text>
|
||||
</g>
|
||||
<!-- OR_CC->OR_WNET -->
|
||||
<g id="edge43" class="edge">
|
||||
<title>OR_CC->OR_WNET</title>
|
||||
<path fill="none" stroke="chocolate" d="M557.69,-593.03C560.81,-592.24 563.94,-591.55 567,-591 722.82,-563.23 1121.6,-589.6 1279,-573 1334.31,-567.17 1348.46,-565.04 1402,-550 1442.52,-538.62 1487.03,-521.46 1519.75,-507.92"/>
|
||||
<polygon fill="chocolate" stroke="chocolate" points="1521.2,-511.11 1529.08,-504.03 1518.51,-504.65 1521.2,-511.11"/>
|
||||
<text text-anchor="middle" x="1388" y="-561.8" font-family="Times,serif" font-size="14.00">swig</text>
|
||||
</g>
|
||||
<!-- OR_NET -->
|
||||
<g id="node36" class="node">
|
||||
<title>OR_NET</title>
|
||||
<polygon fill="forestgreen" stroke="black" points="1853.5,-411 1740.5,-411 1740.5,-373 1859.5,-373 1859.5,-405 1853.5,-411"/>
|
||||
<polyline fill="none" stroke="black" points="1853.5,-411 1853.5,-405 "/>
|
||||
<polyline fill="none" stroke="black" points="1859.5,-405 1853.5,-405 "/>
|
||||
<text text-anchor="middle" x="1800" y="-395.8" font-family="Times,serif" font-size="14.00">.Net files</text>
|
||||
<text text-anchor="middle" x="1800" y="-380.8" font-family="Times,serif" font-size="14.00">Target: dotnet</text>
|
||||
</g>
|
||||
<!-- OR_CC->OR_NET -->
|
||||
<g id="edge44" class="edge">
|
||||
<title>OR_CC->OR_NET</title>
|
||||
<path fill="none" stroke="chocolate" d="M557.69,-593.01C560.81,-592.23 563.94,-591.54 567,-591 751.32,-558.53 1222.15,-583.68 1409,-573 1519.07,-566.71 1555.57,-595.5 1656,-550 1716.1,-522.77 1762.36,-457.26 1784.89,-420.04"/>
|
||||
<polygon fill="chocolate" stroke="chocolate" points="1788.02,-421.61 1790.1,-411.22 1782,-418.05 1788.02,-421.61"/>
|
||||
<text text-anchor="middle" x="1780" y="-482.3" font-family="Times,serif" font-size="14.00">swig</text>
|
||||
</g>
|
||||
<!-- OR_WPY->OR_PY -->
|
||||
<g id="edge34" class="edge">
|
||||
<title>OR_WPY->OR_PY</title>
|
||||
<path fill="none" stroke="gold" d="M809.67,-467.7C821.32,-453.95 837.79,-434.53 851.02,-418.93"/>
|
||||
<polygon fill="gold" stroke="gold" points="853.8,-421.06 857.59,-411.17 848.46,-416.54 853.8,-421.06"/>
|
||||
<text text-anchor="middle" x="865" y="-432.8" font-family="Times,serif" font-size="14.00">python</text>
|
||||
</g>
|
||||
<!-- PKG_PY -->
|
||||
<g id="node29" class="node">
|
||||
<title>PKG_PY</title>
|
||||
<polygon fill="gold" stroke="black" points="892.5,-287 709.5,-287 705.5,-283 705.5,-249 888.5,-249 892.5,-253 892.5,-287"/>
|
||||
<polyline fill="none" stroke="black" points="888.5,-283 705.5,-283 "/>
|
||||
<polyline fill="none" stroke="black" points="888.5,-283 888.5,-249 "/>
|
||||
<polyline fill="none" stroke="black" points="888.5,-283 892.5,-287 "/>
|
||||
<text text-anchor="middle" x="799" y="-271.8" font-family="Times,serif" font-size="14.00">Wheel Package</text>
|
||||
<text text-anchor="middle" x="799" y="-256.8" font-family="Times,serif" font-size="14.00">Target: package_python</text>
|
||||
</g>
|
||||
<!-- OR_PY->PKG_PY -->
|
||||
<g id="edge35" class="edge">
|
||||
<title>OR_PY->PKG_PY</title>
|
||||
<path fill="none" stroke="gold" d="M855.67,-372.64C850.94,-367.18 846.02,-361.04 842,-355 829.71,-336.53 818.59,-314.06 810.74,-296.72"/>
|
||||
<polygon fill="gold" stroke="gold" points="813.76,-294.89 806.51,-287.17 807.36,-297.73 813.76,-294.89"/>
|
||||
<text text-anchor="middle" x="900" y="-343.8" font-family="Times,serif" font-size="14.00">python setup.py</text>
|
||||
</g>
|
||||
<!-- EX_PY -->
|
||||
<g id="node30" class="node">
|
||||
<title>EX_PY</title>
|
||||
<polygon fill="gold" stroke="black" points="1037,-286 911,-286 911,-250 1043,-250 1043,-280 1037,-286"/>
|
||||
<polyline fill="none" stroke="black" points="1037,-286 1037,-280 "/>
|
||||
<polyline fill="none" stroke="black" points="1043,-280 1037,-280 "/>
|
||||
<text text-anchor="middle" x="977" y="-264.3" font-family="Times,serif" font-size="14.00">Python Samples</text>
|
||||
</g>
|
||||
<!-- OR_PY->EX_PY -->
|
||||
<g id="edge31" class="edge">
|
||||
<title>OR_PY->EX_PY</title>
|
||||
<path fill="none" stroke="gold" d="M934.08,-373.7C943.12,-368.88 951.54,-362.76 958,-355 971.57,-338.69 976.01,-314.79 977.23,-296.32"/>
|
||||
<polygon fill="gold" stroke="gold" points="980.74,-296.31 977.62,-286.18 973.74,-296.04 980.74,-296.31"/>
|
||||
</g>
|
||||
<!-- OR_WJV->OR_JV -->
|
||||
<g id="edge39" class="edge">
|
||||
<title>OR_WJV->OR_JV</title>
|
||||
<path fill="none" stroke="crimson" d="M1171.79,-467.7C1181.85,-454.08 1196.04,-434.88 1207.52,-419.36"/>
|
||||
<polygon fill="crimson" stroke="crimson" points="1210.44,-421.29 1213.57,-411.17 1204.81,-417.13 1210.44,-421.29"/>
|
||||
<text text-anchor="middle" x="1217.5" y="-432.8" font-family="Times,serif" font-size="14.00">javac</text>
|
||||
</g>
|
||||
<!-- PKG_JV -->
|
||||
<g id="node33" class="node">
|
||||
<title>PKG_JV</title>
|
||||
<polygon fill="crimson" stroke="black" points="1246.5,-287 1083.5,-287 1079.5,-283 1079.5,-249 1242.5,-249 1246.5,-253 1246.5,-287"/>
|
||||
<polyline fill="none" stroke="black" points="1242.5,-283 1079.5,-283 "/>
|
||||
<polyline fill="none" stroke="black" points="1242.5,-283 1242.5,-249 "/>
|
||||
<polyline fill="none" stroke="black" points="1242.5,-283 1246.5,-287 "/>
|
||||
<text text-anchor="middle" x="1163" y="-271.8" font-family="Times,serif" font-size="14.00">Maven Package</text>
|
||||
<text text-anchor="middle" x="1163" y="-256.8" font-family="Times,serif" font-size="14.00">Target: package_java</text>
|
||||
</g>
|
||||
<!-- OR_JV->PKG_JV -->
|
||||
<g id="edge40" class="edge">
|
||||
<title>OR_JV->PKG_JV</title>
|
||||
<path fill="none" stroke="crimson" stroke-dasharray="1,5" d="M1217.32,-372.69C1214.33,-367.02 1211.02,-360.76 1208,-355 1197.71,-335.42 1186.15,-313.32 1177.32,-296.42"/>
|
||||
<polygon fill="crimson" stroke="crimson" points="1180.2,-294.37 1172.46,-287.13 1173.99,-297.61 1180.2,-294.37"/>
|
||||
<text text-anchor="middle" x="1254" y="-343.8" font-family="Times,serif" font-size="14.00">maven (WIP)</text>
|
||||
</g>
|
||||
<!-- EX_JV -->
|
||||
<g id="node34" class="node">
|
||||
<title>EX_JV</title>
|
||||
<polygon fill="crimson" stroke="black" points="1370,-286 1264,-286 1264,-250 1376,-250 1376,-280 1370,-286"/>
|
||||
<polyline fill="none" stroke="black" points="1370,-286 1370,-280 "/>
|
||||
<polyline fill="none" stroke="black" points="1376,-280 1370,-280 "/>
|
||||
<text text-anchor="middle" x="1320" y="-264.3" font-family="Times,serif" font-size="14.00">Java Samples</text>
|
||||
</g>
|
||||
<!-- OR_JV->EX_JV -->
|
||||
<g id="edge36" class="edge">
|
||||
<title>OR_JV->EX_JV</title>
|
||||
<path fill="none" stroke="crimson" d="M1277.62,-373.45C1286.08,-368.6 1294.03,-362.53 1300,-355 1313.22,-338.33 1317.98,-314.47 1319.58,-296.1"/>
|
||||
<polygon fill="crimson" stroke="crimson" points="1323.07,-296.22 1320.19,-286.02 1316.09,-295.79 1323.07,-296.22"/>
|
||||
</g>
|
||||
<!-- OR_WNET->OR_NET -->
|
||||
<g id="edge45" class="edge">
|
||||
<title>OR_WNET->OR_NET</title>
|
||||
<path fill="none" stroke="forestgreen" d="M1617.63,-467.91C1637.72,-460.8 1661.07,-452.28 1682,-444 1704.68,-435.03 1729.49,-424.43 1750.49,-415.22"/>
|
||||
<polygon fill="forestgreen" stroke="forestgreen" points="1752.11,-418.33 1759.85,-411.1 1749.28,-411.93 1752.11,-418.33"/>
|
||||
<text text-anchor="middle" x="1740.5" y="-432.8" font-family="Times,serif" font-size="14.00">dotnet</text>
|
||||
</g>
|
||||
<!-- PKG_NET_RT -->
|
||||
<g id="node38" class="node">
|
||||
<title>PKG_NET_RT</title>
|
||||
<polygon fill="forestgreen" stroke="black" points="1722.5,-411 1417.5,-411 1413.5,-407 1413.5,-373 1718.5,-373 1722.5,-377 1722.5,-411"/>
|
||||
<polyline fill="none" stroke="black" points="1718.5,-407 1413.5,-407 "/>
|
||||
<polyline fill="none" stroke="black" points="1718.5,-407 1718.5,-373 "/>
|
||||
<polyline fill="none" stroke="black" points="1718.5,-407 1722.5,-411 "/>
|
||||
<text text-anchor="middle" x="1568" y="-395.8" font-family="Times,serif" font-size="14.00">Nuget Google.OrTools.runtime.rid.nupkg</text>
|
||||
<text text-anchor="middle" x="1568" y="-380.8" font-family="Times,serif" font-size="14.00">Target: package_dotnet</text>
|
||||
</g>
|
||||
<!-- OR_WNET->PKG_NET_RT -->
|
||||
<g id="edge48" class="edge">
|
||||
<title>OR_WNET->PKG_NET_RT</title>
|
||||
<path fill="none" stroke="forestgreen" d="M1568,-467.7C1568,-454.71 1568,-436.65 1568,-421.54"/>
|
||||
<polygon fill="forestgreen" stroke="forestgreen" points="1571.5,-421.17 1568,-411.17 1564.5,-421.17 1571.5,-421.17"/>
|
||||
<text text-anchor="middle" x="1623" y="-432.8" font-family="Times,serif" font-size="14.00">dotnet package</text>
|
||||
</g>
|
||||
<!-- OR_FS -->
|
||||
<g id="node37" class="node">
|
||||
<title>OR_FS</title>
|
||||
<polygon fill="forestgreen" stroke="black" points="1754,-193 1642,-193 1642,-155 1760,-155 1760,-187 1754,-193"/>
|
||||
<polyline fill="none" stroke="black" points="1754,-193 1754,-187 "/>
|
||||
<polyline fill="none" stroke="black" points="1760,-187 1754,-187 "/>
|
||||
<text text-anchor="middle" x="1701" y="-177.8" font-family="Times,serif" font-size="14.00">F# files</text>
|
||||
<text text-anchor="middle" x="1701" y="-162.8" font-family="Times,serif" font-size="14.00">Target: fsharp</text>
|
||||
</g>
|
||||
<!-- OR_NET->OR_FS -->
|
||||
<g id="edge46" class="edge">
|
||||
<title>OR_NET->OR_FS</title>
|
||||
<path fill="none" stroke="forestgreen" d="M1801.01,-372.57C1801.85,-341.62 1799.79,-278.24 1773,-234 1764.84,-220.52 1752.45,-208.75 1740.24,-199.34"/>
|
||||
<polygon fill="forestgreen" stroke="forestgreen" points="1742,-196.3 1731.87,-193.22 1737.87,-201.95 1742,-196.3"/>
|
||||
<text text-anchor="middle" x="1822.5" y="-264.3" font-family="Times,serif" font-size="14.00">dotnet</text>
|
||||
</g>
|
||||
<!-- PKG_NET -->
|
||||
<g id="node39" class="node">
|
||||
<title>PKG_NET</title>
|
||||
<polygon fill="forestgreen" stroke="black" points="1763.5,-287 1544.5,-287 1540.5,-283 1540.5,-249 1759.5,-249 1763.5,-253 1763.5,-287"/>
|
||||
<polyline fill="none" stroke="black" points="1759.5,-283 1540.5,-283 "/>
|
||||
<polyline fill="none" stroke="black" points="1759.5,-283 1759.5,-249 "/>
|
||||
<polyline fill="none" stroke="black" points="1759.5,-283 1763.5,-287 "/>
|
||||
<text text-anchor="middle" x="1652" y="-271.8" font-family="Times,serif" font-size="14.00">Nuget Google.OrTools.nupkg</text>
|
||||
<text text-anchor="middle" x="1652" y="-256.8" font-family="Times,serif" font-size="14.00">Target: package_dotnet</text>
|
||||
</g>
|
||||
<!-- OR_NET->PKG_NET -->
|
||||
<g id="edge50" class="edge">
|
||||
<title>OR_NET->PKG_NET</title>
|
||||
<path fill="none" stroke="forestgreen" d="M1740.34,-374.76C1714.71,-367.34 1689.54,-359.26 1685,-355 1668.77,-339.76 1660.43,-315.66 1656.2,-296.85"/>
|
||||
<polygon fill="forestgreen" stroke="forestgreen" points="1659.63,-296.15 1654.25,-287.03 1652.77,-297.52 1659.63,-296.15"/>
|
||||
<text text-anchor="middle" x="1740" y="-343.8" font-family="Times,serif" font-size="14.00">dotnet package</text>
|
||||
</g>
|
||||
<!-- EX_NET -->
|
||||
<g id="node41" class="node">
|
||||
<title>EX_NET</title>
|
||||
<polygon fill="forestgreen" stroke="black" points="1932,-68 1834,-68 1834,-32 1938,-32 1938,-62 1932,-68"/>
|
||||
<polyline fill="none" stroke="black" points="1932,-68 1932,-62 "/>
|
||||
<polyline fill="none" stroke="black" points="1938,-62 1932,-62 "/>
|
||||
<text text-anchor="middle" x="1886" y="-46.3" font-family="Times,serif" font-size="14.00">C# Samples</text>
|
||||
</g>
|
||||
<!-- OR_NET->EX_NET -->
|
||||
<g id="edge41" class="edge">
|
||||
<title>OR_NET->EX_NET</title>
|
||||
<path fill="none" stroke="forestgreen" d="M1820.31,-372.78C1830.96,-362.01 1843.18,-347.48 1850,-332 1888.25,-245.24 1889.31,-129.79 1887.5,-78.07"/>
|
||||
<polygon fill="forestgreen" stroke="forestgreen" points="1890.99,-77.88 1887.08,-68.03 1884,-78.17 1890.99,-77.88"/>
|
||||
</g>
|
||||
<!-- PKG_FS -->
|
||||
<g id="node40" class="node">
|
||||
<title>PKG_FS</title>
|
||||
<polygon fill="forestgreen" stroke="black" points="1694,-69 1418,-69 1414,-65 1414,-31 1690,-31 1694,-35 1694,-69"/>
|
||||
<polyline fill="none" stroke="black" points="1690,-65 1414,-65 "/>
|
||||
<polyline fill="none" stroke="black" points="1690,-65 1690,-31 "/>
|
||||
<polyline fill="none" stroke="black" points="1690,-65 1694,-69 "/>
|
||||
<text text-anchor="middle" x="1554" y="-53.8" font-family="Times,serif" font-size="14.00">Nuget Google.OrTools.FSharp.nupkg</text>
|
||||
<text text-anchor="middle" x="1554" y="-38.8" font-family="Times,serif" font-size="14.00">Target: package_dotnet</text>
|
||||
</g>
|
||||
<!-- OR_FS->PKG_FS -->
|
||||
<g id="edge51" class="edge">
|
||||
<title>OR_FS->PKG_FS</title>
|
||||
<path fill="none" stroke="forestgreen" d="M1641.99,-158.02C1628.88,-152.83 1615.71,-145.97 1605,-137 1586.41,-121.44 1572.93,-97.26 1564.51,-78.5"/>
|
||||
<polygon fill="forestgreen" stroke="forestgreen" points="1567.71,-77.08 1560.57,-69.26 1561.27,-79.83 1567.71,-77.08"/>
|
||||
<text text-anchor="middle" x="1660" y="-125.8" font-family="Times,serif" font-size="14.00">dotnet package</text>
|
||||
</g>
|
||||
<!-- EX_FS -->
|
||||
<g id="node42" class="node">
|
||||
<title>EX_FS</title>
|
||||
<polygon fill="forestgreen" stroke="black" points="1810,-68 1712,-68 1712,-32 1816,-32 1816,-62 1810,-68"/>
|
||||
<polyline fill="none" stroke="black" points="1810,-68 1810,-62 "/>
|
||||
<polyline fill="none" stroke="black" points="1816,-62 1810,-62 "/>
|
||||
<text text-anchor="middle" x="1764" y="-46.3" font-family="Times,serif" font-size="14.00">F# Samples</text>
|
||||
</g>
|
||||
<!-- OR_FS->EX_FS -->
|
||||
<g id="edge42" class="edge">
|
||||
<title>OR_FS->EX_FS</title>
|
||||
<path fill="none" stroke="forestgreen" d="M1710.3,-155C1720.89,-134.49 1738.29,-100.8 1750.4,-77.34"/>
|
||||
<polygon fill="forestgreen" stroke="forestgreen" points="1753.6,-78.78 1755.07,-68.29 1747.38,-75.56 1753.6,-78.78"/>
|
||||
</g>
|
||||
<!-- PKG_NET_RT->PKG_NET -->
|
||||
<g id="edge49" class="edge">
|
||||
<title>PKG_NET_RT->PKG_NET</title>
|
||||
<path fill="none" stroke="forestgreen" d="M1580.39,-373C1594.48,-352.55 1617.59,-318.97 1633.74,-295.52"/>
|
||||
<polygon fill="forestgreen" stroke="forestgreen" points="1636.77,-297.3 1639.55,-287.08 1631,-293.33 1636.77,-297.3"/>
|
||||
</g>
|
||||
<!-- PKG_NET->OR_FS -->
|
||||
<g id="edge47" class="edge">
|
||||
<title>PKG_NET->OR_FS</title>
|
||||
<path fill="none" stroke="forestgreen" d="M1661.68,-248.82C1668.79,-235.47 1678.58,-217.1 1686.61,-202.02"/>
|
||||
<polygon fill="forestgreen" stroke="forestgreen" points="1689.73,-203.61 1691.34,-193.14 1683.55,-200.32 1689.73,-203.61"/>
|
||||
<text text-anchor="middle" x="1703.5" y="-214.8" font-family="Times,serif" font-size="14.00">dotnet</text>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 46 KiB |
11
makefiles/docker/alpine/Dockerfile
Normal file
11
makefiles/docker/alpine/Dockerfile
Normal file
@@ -0,0 +1,11 @@
|
||||
# Create a virtual environment with all tools installed
|
||||
# ref: https://hub.docker.com/_/alpine
|
||||
FROM alpine:edge AS base
|
||||
LABEL maintainer="corentinl@google.com"
|
||||
# Install system build dependencies
|
||||
ENV PATH=/usr/local/bin:$PATH
|
||||
RUN apk add --no-cache git build-base linux-headers cmake xfce4-dev-tools
|
||||
CMD [ "/bin/sh" ]
|
||||
|
||||
FROM base AS swig
|
||||
RUN apk add --no-cache swig
|
||||
16
makefiles/docker/alpine/cpp.Dockerfile
Normal file
16
makefiles/docker/alpine/cpp.Dockerfile
Normal file
@@ -0,0 +1,16 @@
|
||||
FROM ortools/make:alpine_base AS env
|
||||
RUN make -version
|
||||
|
||||
FROM env AS devel
|
||||
WORKDIR /home/lib
|
||||
COPY . .
|
||||
|
||||
FROM devel AS build
|
||||
RUN make third_party
|
||||
RUN make cc
|
||||
|
||||
FROM build AS test
|
||||
RUN make test_cc
|
||||
|
||||
FROM build AS package
|
||||
RUN make package_cc
|
||||
27
makefiles/docker/alpine/dotnet.Dockerfile
Normal file
27
makefiles/docker/alpine/dotnet.Dockerfile
Normal file
@@ -0,0 +1,27 @@
|
||||
FROM ortools/make:alpine_swig AS env
|
||||
RUN apk add --no-cache wget icu-libs libintl
|
||||
# .NET install
|
||||
RUN dotnet_sdk_version=3.1.101 \
|
||||
&& wget -O dotnet.tar.gz https://dotnetcli.azureedge.net/dotnet/Sdk/$dotnet_sdk_version/dotnet-sdk-$dotnet_sdk_version-linux-musl-x64.tar.gz \
|
||||
&& dotnet_sha512='ce386da8bc07033957fd404909fc230e8ab9e29929675478b90f400a1838223379595a4459056c6c2251ab5c722f80858b9ca536db1a2f6d1670a97094d0fe55' \
|
||||
&& echo "$dotnet_sha512 dotnet.tar.gz" | sha512sum -c - \
|
||||
&& mkdir -p /usr/share/dotnet \
|
||||
&& tar -C /usr/share/dotnet -oxzf dotnet.tar.gz \
|
||||
&& ln -s /usr/share/dotnet/dotnet /usr/bin/dotnet \
|
||||
&& rm dotnet.tar.gz
|
||||
# Trigger first run experience by running arbitrary cmd
|
||||
RUN dotnet --info
|
||||
|
||||
FROM env AS devel
|
||||
WORKDIR /home/lib
|
||||
COPY . .
|
||||
|
||||
FROM devel AS build
|
||||
RUN make third_party
|
||||
RUN make dotnet
|
||||
|
||||
FROM build AS test
|
||||
RUN make test_dotnet
|
||||
|
||||
FROM build AS package
|
||||
RUN make package_dotnet
|
||||
17
makefiles/docker/alpine/java.Dockerfile
Normal file
17
makefiles/docker/alpine/java.Dockerfile
Normal file
@@ -0,0 +1,17 @@
|
||||
FROM ortools/make:alpine_swig AS env
|
||||
ENV JAVA_HOME=/usr/lib/jvm/java-1.8-openjdk
|
||||
RUN apk add --no-cache openjdk8 maven
|
||||
|
||||
FROM env AS devel
|
||||
WORKDIR /home/lib
|
||||
COPY . .
|
||||
|
||||
FROM devel AS build
|
||||
RUN make third_party
|
||||
RUN make java
|
||||
|
||||
FROM build AS test
|
||||
RUN make test_java
|
||||
|
||||
FROM build AS package
|
||||
RUN make package_java
|
||||
16
makefiles/docker/alpine/python.Dockerfile
Normal file
16
makefiles/docker/alpine/python.Dockerfile
Normal file
@@ -0,0 +1,16 @@
|
||||
FROM ortools/make:alpine_swig AS env
|
||||
RUN apk add --no-cache python3-dev py3-pip py3-wheel
|
||||
|
||||
FROM env AS devel
|
||||
WORKDIR /home/lib
|
||||
COPY . .
|
||||
|
||||
FROM devel AS build
|
||||
RUN make third_party
|
||||
RUN make python
|
||||
|
||||
FROM build AS test
|
||||
RUN make test_python
|
||||
|
||||
FROM build AS package
|
||||
RUN make package_python
|
||||
12
makefiles/docker/archlinux/Dockerfile
Normal file
12
makefiles/docker/archlinux/Dockerfile
Normal file
@@ -0,0 +1,12 @@
|
||||
# Create a virtual environment with all tools installed
|
||||
# ref: https://hub.docker.com/_/archlinux/
|
||||
FROM archlinux/base AS base
|
||||
LABEL maintainer="corentinl@google.com"
|
||||
# Install system build dependencies
|
||||
ENV PATH=/usr/local/bin:$PATH
|
||||
RUN pacman -Syu --noconfirm \
|
||||
git base-devel cmake lsb-release
|
||||
CMD [ "/bin/bash" ]
|
||||
|
||||
FROM base AS swig
|
||||
RUN pacman -Syu --noconfirm swig
|
||||
16
makefiles/docker/archlinux/cpp.Dockerfile
Normal file
16
makefiles/docker/archlinux/cpp.Dockerfile
Normal file
@@ -0,0 +1,16 @@
|
||||
FROM ortools/make:archlinux_base AS env
|
||||
RUN make -version
|
||||
|
||||
FROM env AS devel
|
||||
WORKDIR /home/lib
|
||||
COPY . .
|
||||
|
||||
FROM devel AS build
|
||||
RUN make third_party
|
||||
RUN make cc
|
||||
|
||||
FROM build AS test
|
||||
RUN make test_cc
|
||||
|
||||
FROM build AS package
|
||||
RUN make package_cc
|
||||
18
makefiles/docker/archlinux/dotnet.Dockerfile
Normal file
18
makefiles/docker/archlinux/dotnet.Dockerfile
Normal file
@@ -0,0 +1,18 @@
|
||||
FROM ortools/make:archlinux_swig AS env
|
||||
RUN pacman -Syu --noconfirm dotnet-sdk
|
||||
# Trigger first run experience by running arbitrary cmd
|
||||
RUN dotnet --info
|
||||
|
||||
FROM env AS devel
|
||||
WORKDIR /home/lib
|
||||
COPY . .
|
||||
|
||||
FROM devel AS build
|
||||
RUN make third_party
|
||||
RUN make dotnet
|
||||
|
||||
FROM build AS test
|
||||
RUN make test_dotnet
|
||||
|
||||
FROM build AS package
|
||||
RUN make package_dotnet
|
||||
16
makefiles/docker/archlinux/java.Dockerfile
Normal file
16
makefiles/docker/archlinux/java.Dockerfile
Normal file
@@ -0,0 +1,16 @@
|
||||
FROM ortools/make:archlinux_swig AS env
|
||||
RUN pacman -Syu --noconfirm jdk-openjdk maven
|
||||
|
||||
FROM env AS devel
|
||||
WORKDIR /home/lib
|
||||
COPY . .
|
||||
|
||||
FROM devel AS build
|
||||
RUN make third_party
|
||||
RUN make java
|
||||
|
||||
FROM build AS test
|
||||
RUN make test_java
|
||||
|
||||
FROM build AS package
|
||||
RUN make package_java
|
||||
16
makefiles/docker/archlinux/python.Dockerfile
Normal file
16
makefiles/docker/archlinux/python.Dockerfile
Normal file
@@ -0,0 +1,16 @@
|
||||
FROM ortools/make:archlinux_swig AS env
|
||||
RUN pacman -Syu --noconfirm python python-pip python-wheel
|
||||
|
||||
FROM env AS devel
|
||||
WORKDIR /home/lib
|
||||
COPY . .
|
||||
|
||||
FROM devel AS build
|
||||
RUN make third_party
|
||||
RUN make python
|
||||
|
||||
FROM build AS test
|
||||
RUN make test_python
|
||||
|
||||
FROM build AS package
|
||||
RUN make package_python
|
||||
33
makefiles/docker/centos/Dockerfile
Normal file
33
makefiles/docker/centos/Dockerfile
Normal file
@@ -0,0 +1,33 @@
|
||||
# Create a virtual environment with all tools installed
|
||||
# ref: https://hub.docker.com/_/centos
|
||||
FROM centos:latest AS base
|
||||
LABEL maintainer="corentinl@google.com"
|
||||
# Install system build dependencies
|
||||
ENV PATH=/usr/local/bin:$PATH
|
||||
RUN yum -y update \
|
||||
&& yum -y install \
|
||||
git wget which redhat-lsb-core openssl-devel pkgconfig autoconf libtool zlib-devel \
|
||||
&& yum -y groupinstall "Development Tools" \
|
||||
&& yum clean all \
|
||||
&& rm -rf /var/cache/yum
|
||||
# Install CMake 3.16.4
|
||||
RUN wget "https://cmake.org/files/v3.16/cmake-3.16.4-Linux-x86_64.sh" \
|
||||
&& chmod a+x cmake-3.16.4-Linux-x86_64.sh \
|
||||
&& ./cmake-3.16.4-Linux-x86_64.sh --prefix=/usr/local/ --skip-license \
|
||||
&& rm cmake-3.16.4-Linux-x86_64.sh
|
||||
CMD [ "/usr/bin/bash" ]
|
||||
|
||||
FROM base AS swig
|
||||
RUN yum -y update \
|
||||
&& yum -y install pcre-devel \
|
||||
&& yum clean all \
|
||||
&& rm -rf /var/cache/yum \
|
||||
&& wget "https://downloads.sourceforge.net/project/swig/swig/swig-4.0.1/swig-4.0.1.tar.gz" \
|
||||
&& tar xvf swig-4.0.1.tar.gz \
|
||||
&& rm swig-4.0.1.tar.gz \
|
||||
&& cd swig-4.0.1 \
|
||||
&& ./configure --prefix=/usr \
|
||||
&& make -j 4 \
|
||||
&& make install \
|
||||
&& cd .. \
|
||||
&& rm -rf swig-4.0.1
|
||||
16
makefiles/docker/centos/cpp.Dockerfile
Normal file
16
makefiles/docker/centos/cpp.Dockerfile
Normal file
@@ -0,0 +1,16 @@
|
||||
FROM ortools/make:centos_base AS env
|
||||
RUN make -version
|
||||
|
||||
FROM env AS devel
|
||||
WORKDIR /home/lib
|
||||
COPY . .
|
||||
|
||||
FROM devel AS build
|
||||
RUN make third_party
|
||||
RUN make cc
|
||||
|
||||
FROM build AS test
|
||||
RUN make test_cc
|
||||
|
||||
FROM build AS package
|
||||
RUN make package_cc
|
||||
23
makefiles/docker/centos/dotnet.Dockerfile
Normal file
23
makefiles/docker/centos/dotnet.Dockerfile
Normal file
@@ -0,0 +1,23 @@
|
||||
FROM ortools/make:centos_swig AS env
|
||||
# see https://docs.microsoft.com/en-us/dotnet/core/install/linux-package-manager-centos7
|
||||
RUN rpm -Uvh "https://packages.microsoft.com/config/rhel/7/packages-microsoft-prod.rpm" \
|
||||
&& yum -y update \
|
||||
&& yum -y install dotnet-sdk-3.1 \
|
||||
&& yum clean all \
|
||||
&& rm -rf /var/cache/yum
|
||||
# Trigger first run experience by running arbitrary cmd
|
||||
RUN dotnet --info
|
||||
|
||||
FROM env AS devel
|
||||
WORKDIR /home/lib
|
||||
COPY . .
|
||||
|
||||
FROM devel AS build
|
||||
RUN make third_party
|
||||
RUN make dotnet
|
||||
|
||||
FROM build AS test
|
||||
RUN make test_dotnet
|
||||
|
||||
FROM build AS package
|
||||
RUN make package_dotnet
|
||||
19
makefiles/docker/centos/java.Dockerfile
Normal file
19
makefiles/docker/centos/java.Dockerfile
Normal file
@@ -0,0 +1,19 @@
|
||||
FROM ortools/make:centos_swig AS env
|
||||
RUN yum -y update \
|
||||
&& yum -y install java-1.8.0-openjdk java-1.8.0-openjdk-devel maven \
|
||||
&& yum clean all \
|
||||
&& rm -rf /var/cache/yum
|
||||
|
||||
FROM env AS devel
|
||||
WORKDIR /home/lib
|
||||
COPY . .
|
||||
|
||||
FROM devel AS build
|
||||
RUN make third_party
|
||||
RUN make java
|
||||
|
||||
FROM build AS test
|
||||
RUN make test_java
|
||||
|
||||
FROM build AS package
|
||||
RUN make package_java
|
||||
19
makefiles/docker/centos/python.Dockerfile
Normal file
19
makefiles/docker/centos/python.Dockerfile
Normal file
@@ -0,0 +1,19 @@
|
||||
FROM ortools/make:centos_swig AS env
|
||||
RUN yum -y update \
|
||||
&& yum -y install python36-devel python3-wheel \
|
||||
&& yum clean all \
|
||||
&& rm -rf /var/cache/yum
|
||||
|
||||
FROM env AS devel
|
||||
WORKDIR /home/lib
|
||||
COPY . .
|
||||
|
||||
FROM devel AS build
|
||||
RUN make third_party
|
||||
RUN make python
|
||||
|
||||
FROM build AS test
|
||||
RUN make test_python
|
||||
|
||||
FROM build AS package
|
||||
RUN make package_python
|
||||
24
makefiles/docker/debian/Dockerfile
Normal file
24
makefiles/docker/debian/Dockerfile
Normal file
@@ -0,0 +1,24 @@
|
||||
# Create a virtual environment with all tools installed
|
||||
# ref: https://hub.docker.com/_/debian
|
||||
FROM debian:latest AS base
|
||||
LABEL maintainer="corentinl@google.com"
|
||||
# Install system build dependencies
|
||||
ENV PATH=/usr/local/bin:$PATH
|
||||
RUN apt-get update -qq \
|
||||
&& apt-get install -yq \
|
||||
git wget libssl-dev pkg-config build-essential \
|
||||
autoconf libtool zlib1g-dev lsb-release \
|
||||
&& apt-get clean \
|
||||
&& rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
|
||||
# Install CMake 3.16.4
|
||||
RUN wget "https://cmake.org/files/v3.16/cmake-3.16.4-Linux-x86_64.sh" \
|
||||
&& chmod a+x cmake-3.16.4-Linux-x86_64.sh \
|
||||
&& ./cmake-3.16.4-Linux-x86_64.sh --prefix=/usr/local/ --skip-license \
|
||||
&& rm cmake-3.16.4-Linux-x86_64.sh
|
||||
CMD [ "/bin/bash" ]
|
||||
|
||||
FROM base AS swig
|
||||
RUN apt-get update -qq \
|
||||
&& apt-get install -yq swig \
|
||||
&& apt-get clean \
|
||||
&& rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
|
||||
16
makefiles/docker/debian/cpp.Dockerfile
Normal file
16
makefiles/docker/debian/cpp.Dockerfile
Normal file
@@ -0,0 +1,16 @@
|
||||
FROM ortools/make:debian_base AS env
|
||||
RUN make -version
|
||||
|
||||
FROM env AS devel
|
||||
WORKDIR /home/lib
|
||||
COPY . .
|
||||
|
||||
FROM devel AS build
|
||||
RUN make third_party
|
||||
RUN make cc
|
||||
|
||||
FROM build AS test
|
||||
RUN make test_cc
|
||||
|
||||
FROM build AS package
|
||||
RUN make package_cc
|
||||
28
makefiles/docker/debian/dotnet.Dockerfile
Normal file
28
makefiles/docker/debian/dotnet.Dockerfile
Normal file
@@ -0,0 +1,28 @@
|
||||
FROM ortools/make:debian_swig AS env
|
||||
# see: https://docs.microsoft.com/en-us/dotnet/core/install/linux-package-manager-debian10
|
||||
RUN apt-get update -qq \
|
||||
&& apt-get install -yq wget gpg apt-transport-https \
|
||||
&& wget -qO- https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > microsoft.asc.gpg \
|
||||
&& mv microsoft.asc.gpg /etc/apt/trusted.gpg.d/ \
|
||||
&& wget -q https://packages.microsoft.com/config/debian/10/prod.list \
|
||||
&& mv prod.list /etc/apt/sources.list.d/microsoft-prod.list \
|
||||
&& apt-get update -qq \
|
||||
&& apt-get install -yq dotnet-sdk-3.1 \
|
||||
&& apt-get clean \
|
||||
&& rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
|
||||
# Trigger first run experience by running arbitrary cmd
|
||||
RUN dotnet --info
|
||||
|
||||
FROM env AS devel
|
||||
WORKDIR /home/lib
|
||||
COPY . .
|
||||
|
||||
FROM devel AS build
|
||||
RUN make third_party
|
||||
RUN make dotnet
|
||||
|
||||
FROM build AS test
|
||||
RUN make test_dotnet
|
||||
|
||||
FROM build AS package
|
||||
RUN make package_dotnet
|
||||
19
makefiles/docker/debian/java.Dockerfile
Normal file
19
makefiles/docker/debian/java.Dockerfile
Normal file
@@ -0,0 +1,19 @@
|
||||
FROM ortools/make:debian_swig AS env
|
||||
RUN apt-get update -qq \
|
||||
&& apt-get install -yq default-jdk maven \
|
||||
&& apt-get clean \
|
||||
&& rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
|
||||
|
||||
FROM env AS devel
|
||||
WORKDIR /home/lib
|
||||
COPY . .
|
||||
|
||||
FROM devel AS build
|
||||
RUN make third_party
|
||||
RUN make java
|
||||
|
||||
FROM build AS test
|
||||
RUN make test_java
|
||||
|
||||
FROM build AS package
|
||||
RUN make package_java
|
||||
19
makefiles/docker/debian/python.Dockerfile
Normal file
19
makefiles/docker/debian/python.Dockerfile
Normal file
@@ -0,0 +1,19 @@
|
||||
FROM ortools/make:debian_swig AS env
|
||||
RUN apt-get update -qq \
|
||||
&& apt-get install -yq python3-dev python3-pip \
|
||||
&& apt-get clean \
|
||||
&& rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
|
||||
|
||||
FROM env AS devel
|
||||
WORKDIR /home/lib
|
||||
COPY . .
|
||||
|
||||
FROM devel AS build
|
||||
RUN make third_party
|
||||
RUN make python
|
||||
|
||||
FROM build AS test
|
||||
RUN make test_python
|
||||
|
||||
FROM build AS package
|
||||
RUN make package_python
|
||||
18
makefiles/docker/fedora/Dockerfile
Normal file
18
makefiles/docker/fedora/Dockerfile
Normal file
@@ -0,0 +1,18 @@
|
||||
# Create a virtual environment with all tools installed
|
||||
# ref: https://hub.docker.com/_/fedora
|
||||
FROM fedora:latest AS base
|
||||
LABEL maintainer="corentinl@google.com"
|
||||
# Install system build dependencies
|
||||
ENV PATH=/usr/local/bin:$PATH
|
||||
RUN dnf -y update \
|
||||
&& dnf -y install git \
|
||||
wget which redhat-lsb-core pkgconfig autoconf libtool zlib-devel \
|
||||
&& dnf -y groupinstall "Development Tools" \
|
||||
&& dnf -y install gcc-c++ cmake \
|
||||
&& dnf clean all
|
||||
CMD [ "/usr/bin/bash" ]
|
||||
|
||||
FROM base AS swig
|
||||
RUN dnf -y update \
|
||||
&& dnf -y install swig \
|
||||
&& dnf clean all
|
||||
16
makefiles/docker/fedora/cpp.Dockerfile
Normal file
16
makefiles/docker/fedora/cpp.Dockerfile
Normal file
@@ -0,0 +1,16 @@
|
||||
FROM ortools/make:fedora_base AS env
|
||||
RUN make -version
|
||||
|
||||
FROM env AS devel
|
||||
WORKDIR /home/lib
|
||||
COPY . .
|
||||
|
||||
FROM devel AS build
|
||||
RUN make third_party
|
||||
RUN make cc
|
||||
|
||||
FROM build AS test
|
||||
RUN make test_cc
|
||||
|
||||
FROM build AS package
|
||||
RUN make package_cc
|
||||
23
makefiles/docker/fedora/dotnet.Dockerfile
Normal file
23
makefiles/docker/fedora/dotnet.Dockerfile
Normal file
@@ -0,0 +1,23 @@
|
||||
FROM ortools/make:fedora_swig AS env
|
||||
# see: https://docs.microsoft.com/en-us/dotnet/core/install/linux-package-manager-fedora31
|
||||
RUN rpm --import https://packages.microsoft.com/keys/microsoft.asc \
|
||||
&& wget -q -O /etc/yum.repos.d/microsoft-prod.repo https://packages.microsoft.com/config/fedora/31/prod.repo \
|
||||
&& dnf -y update \
|
||||
&& dnf -y install dotnet-sdk-3.1 \
|
||||
&& dnf clean all
|
||||
# Trigger first run experience by running arbitrary cmd
|
||||
RUN dotnet --info
|
||||
|
||||
FROM env AS devel
|
||||
WORKDIR /home/lib
|
||||
COPY . .
|
||||
|
||||
FROM devel AS build
|
||||
RUN make third_party
|
||||
RUN make dotnet
|
||||
|
||||
FROM build AS test
|
||||
RUN make test_dotnet
|
||||
|
||||
FROM build AS package
|
||||
RUN make package_dotnet
|
||||
18
makefiles/docker/fedora/java.Dockerfile
Normal file
18
makefiles/docker/fedora/java.Dockerfile
Normal file
@@ -0,0 +1,18 @@
|
||||
FROM ortools/make:fedora_swig AS env
|
||||
RUN dnf -y update \
|
||||
&& dnf -y install java-1.8.0-openjdk java-1.8.0-openjdk-devel maven \
|
||||
&& dnf clean all
|
||||
|
||||
FROM env AS devel
|
||||
WORKDIR /home/lib
|
||||
COPY . .
|
||||
|
||||
FROM devel AS build
|
||||
RUN make third_party
|
||||
RUN make java
|
||||
|
||||
FROM build AS test
|
||||
RUN make test_java
|
||||
|
||||
FROM build AS package
|
||||
RUN make package_java
|
||||
19
makefiles/docker/fedora/python.Dockerfile
Normal file
19
makefiles/docker/fedora/python.Dockerfile
Normal file
@@ -0,0 +1,19 @@
|
||||
FROM ortools/make:fedora_swig AS env
|
||||
RUN dnf -y update \
|
||||
&& dnf -y install \
|
||||
python3 python3-devel python3-pip python3-six python3-wheel \
|
||||
&& dnf clean all
|
||||
|
||||
FROM env AS devel
|
||||
WORKDIR /home/lib
|
||||
COPY . .
|
||||
|
||||
FROM devel AS build
|
||||
RUN make third_party
|
||||
RUN make python
|
||||
|
||||
FROM build AS test
|
||||
RUN make test_python
|
||||
|
||||
FROM build AS package
|
||||
RUN make package_python
|
||||
17
makefiles/docker/opensuse/Dockerfile
Normal file
17
makefiles/docker/opensuse/Dockerfile
Normal file
@@ -0,0 +1,17 @@
|
||||
# Create a virtual environment with all tools installed
|
||||
# ref: https://hub.docker.com/r/opensuse/tumbleweed
|
||||
FROM opensuse/tumbleweed AS base
|
||||
LABEL maintainer="corentinl@google.com"
|
||||
# Install system build dependencies
|
||||
ENV PATH=/usr/local/bin:$PATH
|
||||
RUN zypper update -y \
|
||||
&& zypper install -y git gcc gcc-c++ cmake \
|
||||
wget which lsb-release pkgconfig autoconf libtool zlib-devel \
|
||||
&& zypper clean -a
|
||||
ENV CC=gcc CXX=g++
|
||||
CMD [ "/usr/bin/bash" ]
|
||||
|
||||
FROM base AS swig
|
||||
RUN zypper update -y \
|
||||
&& zypper install -y swig \
|
||||
&& zypper clean -a
|
||||
16
makefiles/docker/opensuse/cpp.Dockerfile
Normal file
16
makefiles/docker/opensuse/cpp.Dockerfile
Normal file
@@ -0,0 +1,16 @@
|
||||
FROM ortools/make:opensuse_base AS env
|
||||
RUN make -version
|
||||
|
||||
FROM env AS devel
|
||||
WORKDIR /home/lib
|
||||
COPY . .
|
||||
|
||||
FROM devel AS build
|
||||
RUN make third_party
|
||||
RUN make cc
|
||||
|
||||
FROM build AS test
|
||||
RUN make test_cc
|
||||
|
||||
FROM build AS package
|
||||
RUN make package_cc
|
||||
27
makefiles/docker/opensuse/dotnet.Dockerfile
Normal file
27
makefiles/docker/opensuse/dotnet.Dockerfile
Normal file
@@ -0,0 +1,27 @@
|
||||
FROM ortools/make:opensuse_swig AS env
|
||||
RUN zypper update -y \
|
||||
&& zypper install -y wget tar libicu-devel
|
||||
RUN dotnet_sdk_version=3.1.102 \
|
||||
&& wget -O dotnet.tar.gz https://dotnetcli.azureedge.net/dotnet/Sdk/$dotnet_sdk_version/dotnet-sdk-$dotnet_sdk_version-linux-x64.tar.gz \
|
||||
&& dotnet_sha512='9cacdc9700468a915e6fa51a3e5539b3519dd35b13e7f9d6c4dd0077e298baac0e50ad1880181df6781ef1dc64a232e9f78ad8e4494022987d12812c4ca15f29' \
|
||||
&& echo "$dotnet_sha512 dotnet.tar.gz" | sha512sum -c - \
|
||||
&& mkdir -p /usr/share/dotnet \
|
||||
&& tar -C /usr/share/dotnet -oxzf dotnet.tar.gz \
|
||||
&& ln -s /usr/share/dotnet/dotnet /usr/bin/dotnet \
|
||||
&& rm dotnet.tar.gz
|
||||
# Trigger first run experience by running arbitrary cmd
|
||||
RUN dotnet --info
|
||||
|
||||
FROM env AS devel
|
||||
WORKDIR /home/lib
|
||||
COPY . .
|
||||
|
||||
FROM devel AS build
|
||||
RUN make third_party
|
||||
RUN make dotnet
|
||||
|
||||
FROM build AS test
|
||||
RUN make test_dotnet
|
||||
|
||||
FROM build AS package
|
||||
RUN make package_dotnet
|
||||
18
makefiles/docker/opensuse/java.Dockerfile
Normal file
18
makefiles/docker/opensuse/java.Dockerfile
Normal file
@@ -0,0 +1,18 @@
|
||||
FROM ortools/make:opensuse_swig AS env
|
||||
RUN zypper update -y \
|
||||
&& zypper install -y java-1_8_0-openjdk java-1_8_0-openjdk-devel maven \
|
||||
&& zypper clean -a
|
||||
|
||||
FROM env AS devel
|
||||
WORKDIR /home/lib
|
||||
COPY . .
|
||||
|
||||
FROM devel AS build
|
||||
RUN make third_party
|
||||
RUN make java
|
||||
|
||||
FROM build AS test
|
||||
RUN make test_java
|
||||
|
||||
FROM build AS package
|
||||
RUN make package_java
|
||||
19
makefiles/docker/opensuse/python.Dockerfile
Normal file
19
makefiles/docker/opensuse/python.Dockerfile
Normal file
@@ -0,0 +1,19 @@
|
||||
FROM ortools/make:opensuse_swig AS env
|
||||
RUN zypper update -y \
|
||||
&& zypper install -y \
|
||||
python3 python3-pip python3-devel python3-wheel \
|
||||
&& zypper clean -a
|
||||
|
||||
FROM env AS devel
|
||||
WORKDIR /home/lib
|
||||
COPY . .
|
||||
|
||||
FROM devel AS build
|
||||
RUN make third_party
|
||||
RUN make python
|
||||
|
||||
FROM build AS test
|
||||
RUN make test_python
|
||||
|
||||
FROM build AS package
|
||||
RUN make package_python
|
||||
24
makefiles/docker/ubuntu/Dockerfile
Normal file
24
makefiles/docker/ubuntu/Dockerfile
Normal file
@@ -0,0 +1,24 @@
|
||||
# Create a virtual environment with all tools installed
|
||||
# ref: https://hub.docker.com/_/ubuntu
|
||||
FROM ubuntu:rolling AS base
|
||||
LABEL maintainer="corentinl@google.com"
|
||||
# Install system build dependencies
|
||||
ENV PATH=/usr/local/bin:$PATH
|
||||
RUN apt-get update -qq \
|
||||
&& apt-get install -yq \
|
||||
git wget libssl-dev pkg-config build-essential \
|
||||
autoconf libtool zlib1g-dev lsb-release \
|
||||
&& apt-get clean \
|
||||
&& rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
|
||||
# Install CMake 3.16.4
|
||||
RUN wget "https://cmake.org/files/v3.16/cmake-3.16.4-Linux-x86_64.sh" \
|
||||
&& chmod a+x cmake-3.16.4-Linux-x86_64.sh \
|
||||
&& ./cmake-3.16.4-Linux-x86_64.sh --prefix=/usr/local/ --skip-license \
|
||||
&& rm cmake-3.16.4-Linux-x86_64.sh
|
||||
CMD [ "/usr/bin/bash" ]
|
||||
|
||||
FROM base AS swig
|
||||
RUN apt-get update -qq \
|
||||
&& apt-get install -yq swig \
|
||||
&& apt-get clean \
|
||||
&& rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
|
||||
16
makefiles/docker/ubuntu/cpp.Dockerfile
Normal file
16
makefiles/docker/ubuntu/cpp.Dockerfile
Normal file
@@ -0,0 +1,16 @@
|
||||
FROM ortools/make:ubuntu_base AS env
|
||||
RUN make -version
|
||||
|
||||
FROM env AS devel
|
||||
WORKDIR /home/lib
|
||||
COPY . .
|
||||
|
||||
FROM devel AS build
|
||||
RUN make third_party
|
||||
RUN make cc
|
||||
|
||||
FROM build AS test
|
||||
RUN make test_cc
|
||||
|
||||
FROM build AS package
|
||||
RUN make package_cc
|
||||
26
makefiles/docker/ubuntu/dotnet.Dockerfile
Normal file
26
makefiles/docker/ubuntu/dotnet.Dockerfile
Normal file
@@ -0,0 +1,26 @@
|
||||
FROM ortools/make:ubuntu_swig AS env
|
||||
# see: https://docs.microsoft.com/en-us/dotnet/core/install/linux-package-manager-ubuntu-1910
|
||||
RUN apt-get update -qq \
|
||||
&& apt-get install -yq wget apt-transport-https \
|
||||
&& wget -q https://packages.microsoft.com/config/ubuntu/19.10/packages-microsoft-prod.deb -O packages-microsoft-prod.deb \
|
||||
&& dpkg -i packages-microsoft-prod.deb \
|
||||
&& apt-get update -qq \
|
||||
&& apt-get install -yq dotnet-sdk-3.1 \
|
||||
&& apt-get clean \
|
||||
&& rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
|
||||
# Trigger first run experience by running arbitrary cmd
|
||||
RUN dotnet --info
|
||||
|
||||
FROM env AS devel
|
||||
WORKDIR /home/lib
|
||||
COPY . .
|
||||
|
||||
FROM devel AS build
|
||||
RUN make third_party
|
||||
RUN make dotnet
|
||||
|
||||
FROM build AS test
|
||||
RUN make test_dotnet
|
||||
|
||||
FROM build AS package
|
||||
RUN make package_dotnet
|
||||
19
makefiles/docker/ubuntu/java.Dockerfile
Normal file
19
makefiles/docker/ubuntu/java.Dockerfile
Normal file
@@ -0,0 +1,19 @@
|
||||
FROM ortools/make:ubuntu_swig AS env
|
||||
RUN apt-get update -qq \
|
||||
&& apt-get install -yq default-jdk maven \
|
||||
&& apt-get clean \
|
||||
&& rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
|
||||
|
||||
FROM env AS devel
|
||||
WORKDIR /home/lib
|
||||
COPY . .
|
||||
|
||||
FROM devel AS build
|
||||
RUN make third_party
|
||||
RUN make java
|
||||
|
||||
FROM build AS test
|
||||
RUN make test_java
|
||||
|
||||
FROM build AS package
|
||||
RUN make package_java
|
||||
19
makefiles/docker/ubuntu/python.Dockerfile
Normal file
19
makefiles/docker/ubuntu/python.Dockerfile
Normal file
@@ -0,0 +1,19 @@
|
||||
FROM ortools/make:ubuntu_swig AS env
|
||||
RUN apt-get update -qq \
|
||||
&& apt-get install -yq python3-dev python3-pip \
|
||||
&& apt-get clean \
|
||||
&& rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
|
||||
|
||||
FROM env AS devel
|
||||
WORKDIR /home/lib
|
||||
COPY . .
|
||||
|
||||
FROM devel AS build
|
||||
RUN make third_party
|
||||
RUN make python
|
||||
|
||||
FROM build AS test
|
||||
RUN make test_python
|
||||
|
||||
FROM build AS package
|
||||
RUN make package_python
|
||||
Reference in New Issue
Block a user