Merge branch 'master' of github.com:google/or-tools
This commit is contained in:
193
.github/workflows/docker.yml
vendored
Normal file
193
.github/workflows/docker.yml
vendored
Normal file
@@ -0,0 +1,193 @@
|
||||
name: Docker
|
||||
|
||||
on: [push, pull_request]
|
||||
|
||||
jobs:
|
||||
Alpine:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- name: Build env image
|
||||
run: make --directory=cmake alpine_env
|
||||
- name: Build devel project
|
||||
run: make --directory=cmake alpine_devel
|
||||
- name: Build project
|
||||
run: make --directory=cmake alpine_build
|
||||
- name: Test C++
|
||||
run: make --directory=cmake alpine_cpp_test
|
||||
- name: Test Python
|
||||
run: make --directory=cmake alpine_python_test
|
||||
- name: Test Java
|
||||
run: make --directory=cmake alpine_java_test
|
||||
- name: Test .Net
|
||||
run: make --directory=cmake alpine_dotnet_test
|
||||
- name: Test C++ Install
|
||||
run: make --directory=cmake alpine_cpp_install_test
|
||||
- name: Test Python Install
|
||||
run: make --directory=cmake alpine_python_install_test
|
||||
- name: Test Java Install
|
||||
run: make --directory=cmake alpine_java_install_test
|
||||
- name: Test .Net Install
|
||||
run: make --directory=cmake alpine_dotnet_install_test
|
||||
|
||||
Archlinux:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- name: Build env image
|
||||
run: make --directory=cmake archlinux_env
|
||||
- name: Build devel project
|
||||
run: make --directory=cmake archlinux_devel
|
||||
- name: Build project
|
||||
run: make --directory=cmake archlinux_build
|
||||
- name: Test C++
|
||||
run: make --directory=cmake archlinux_cpp_test
|
||||
- name: Test Python
|
||||
run: make --directory=cmake archlinux_python_test
|
||||
- name: Test Java
|
||||
run: make --directory=cmake archlinux_java_test
|
||||
- name: Test .Net
|
||||
run: make --directory=cmake archlinux_dotnet_test
|
||||
- name: Test C++ Install
|
||||
run: make --directory=cmake archlinux_cpp_install_test
|
||||
- name: Test Python Install
|
||||
run: make --directory=cmake archlinux_python_install_test
|
||||
- name: Test Java Install
|
||||
run: make --directory=cmake archlinux_java_install_test
|
||||
- name: Test .Net Install
|
||||
run: make --directory=cmake archlinux_dotnet_install_test
|
||||
|
||||
Centos:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- name: Build env image
|
||||
run: make --directory=cmake centos_env
|
||||
- name: Build devel project
|
||||
run: make --directory=cmake centos_devel
|
||||
- name: Build project
|
||||
run: make --directory=cmake centos_build
|
||||
- name: Test C++
|
||||
run: make --directory=cmake centos_cpp_test
|
||||
- name: Test Python
|
||||
run: make --directory=cmake centos_python_test
|
||||
- name: Test Java
|
||||
run: make --directory=cmake centos_java_test
|
||||
- name: Test .Net
|
||||
run: make --directory=cmake centos_dotnet_test
|
||||
- name: Test C++ Install
|
||||
run: make --directory=cmake centos_cpp_install_test
|
||||
- name: Test Python Install
|
||||
run: make --directory=cmake centos_python_install_test
|
||||
- name: Test Java Install
|
||||
run: make --directory=cmake centos_java_install_test
|
||||
- name: Test .Net Install
|
||||
run: make --directory=cmake centos_dotnet_install_test
|
||||
|
||||
Debian:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- name: Build env image
|
||||
run: make --directory=cmake debian_env
|
||||
- name: Build devel project
|
||||
run: make --directory=cmake debian_devel
|
||||
- name: Build project
|
||||
run: make --directory=cmake debian_build
|
||||
- name: Test C++
|
||||
run: make --directory=cmake debian_cpp_test
|
||||
- name: Test Python
|
||||
run: make --directory=cmake debian_python_test
|
||||
- name: Test Java
|
||||
run: make --directory=cmake debian_java_test
|
||||
- name: Test .Net
|
||||
run: make --directory=cmake debian_dotnet_test
|
||||
- name: Test C++ Install
|
||||
run: make --directory=cmake debian_cpp_install_test
|
||||
- name: Test Python Install
|
||||
run: make --directory=cmake debian_python_install_test
|
||||
- name: Test Java Install
|
||||
run: make --directory=cmake debian_java_install_test
|
||||
- name: Test .Net Install
|
||||
run: make --directory=cmake debian_dotnet_install_test
|
||||
|
||||
Fedora:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- name: Build env image
|
||||
run: make --directory=cmake fedora_env
|
||||
- name: Build devel project
|
||||
run: make --directory=cmake fedora_devel
|
||||
- name: Build project
|
||||
run: make --directory=cmake fedora_build
|
||||
- name: Test C++
|
||||
run: make --directory=cmake fedora_cpp_test
|
||||
- name: Test Python
|
||||
run: make --directory=cmake fedora_python_test
|
||||
- name: Test Java
|
||||
run: make --directory=cmake fedora_java_test
|
||||
- name: Test .Net
|
||||
run: make --directory=cmake fedora_dotnet_test
|
||||
- name: Test C++ Install
|
||||
run: make --directory=cmake fedora_cpp_install_test
|
||||
- name: Test Python Install
|
||||
run: make --directory=cmake fedora_python_install_test
|
||||
- name: Test Java Install
|
||||
run: make --directory=cmake fedora_java_install_test
|
||||
- name: Test .Net Install
|
||||
run: make --directory=cmake fedora_dotnet_install_test
|
||||
|
||||
OpenSuse:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- name: Build env image
|
||||
run: make --directory=cmake opensuse_env
|
||||
- name: Build devel project
|
||||
run: make --directory=cmake opensuse_devel
|
||||
- name: Build project
|
||||
run: make --directory=cmake opensuse_build
|
||||
- name: Test C++
|
||||
run: make --directory=cmake opensuse_cpp_test
|
||||
- name: Test Python
|
||||
run: make --directory=cmake opensuse_python_test
|
||||
- name: Test Java
|
||||
run: make --directory=cmake opensuse_java_test
|
||||
- name: Test .Net
|
||||
run: make --directory=cmake opensuse_dotnet_test
|
||||
- name: Test C++ Install
|
||||
run: make --directory=cmake opensuse_cpp_install_test
|
||||
- name: Test Python Install
|
||||
run: make --directory=cmake opensuse_python_install_test
|
||||
- name: Test Java Install
|
||||
run: make --directory=cmake opensuse_java_install_test
|
||||
- name: Test .Net Install
|
||||
run: make --directory=cmake opensuse_dotnet_install_test
|
||||
|
||||
Ubuntu:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- name: Build env image
|
||||
run: make --directory=cmake ubuntu_env
|
||||
- name: Build devel project
|
||||
run: make --directory=cmake ubuntu_devel
|
||||
- name: Build project
|
||||
run: make --directory=cmake ubuntu_build
|
||||
- name: Test C++
|
||||
run: make --directory=cmake ubuntu_cpp_test
|
||||
- name: Test Python
|
||||
run: make --directory=cmake ubuntu_python_test
|
||||
- name: Test Java
|
||||
run: make --directory=cmake ubuntu_java_test
|
||||
- name: Test .Net
|
||||
run: make --directory=cmake ubuntu_dotnet_test
|
||||
- name: Test C++ Install
|
||||
run: make --directory=cmake ubuntu_cpp_install_test
|
||||
- name: Test Python Install
|
||||
run: make --directory=cmake ubuntu_python_install_test
|
||||
- name: Test Java Install
|
||||
run: make --directory=cmake ubuntu_java_install_test
|
||||
- name: Test .Net Install
|
||||
run: make --directory=cmake ubuntu_dotnet_install_test
|
||||
444
cmake/Makefile
444
cmake/Makefile
@@ -17,26 +17,36 @@ help:
|
||||
@echo -e "${BOLD}MAKE TARGETS${RESET}"
|
||||
@echo -e "\t${BOLD}help${RESET}: display this help and exit."
|
||||
@echo
|
||||
@echo -e "\t${BOLD}env${RESET}: build a virtual env image."
|
||||
@echo -e "\t${BOLD}sh_env_<distro>${RESET}: run a container using the virtual env image (debug purpose)."
|
||||
@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}devel${RESET}: build the library for all LANGUAGES and all DISTROS."
|
||||
@echo -e "\t${BOLD}devel_<distro>${RESET}: build the library for all LANGUAGES using a specific distro."
|
||||
@echo -e "\t${BOLD}devel_<lang>${RESET}: build the library for all DISTROS using a specific language."
|
||||
@echo -e "\t${BOLD}devel_<distro>_<lang>${RESET}: build the library using a specific distro and language."
|
||||
@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}test_<distro>${RESET}: auto test using the devel image."
|
||||
@echo -e "\t${BOLD}test_<distro>_<lang>${RESET}: auto test using the devel image."
|
||||
@echo -e "\t${BOLD}sh_<distro>_<lang>${RESET}: run a container using the devel image (debug purpose)."
|
||||
@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}install${RESET}: execute the cmake target ${BOLD}install${RESET} using all devel image container, then create an install image with it."
|
||||
@echo -e "\t${BOLD}install_<distro>${RESET}: execute the cmake target ${BOLD}install${RESET} using the devel image container specified, then create an install image with it."
|
||||
@echo -e "\t${BOLD}test_install${RESET}: configure, build, install then test a sample project against it using all ${BOLD}install${RESET} image containers."
|
||||
@echo -e "\t${BOLD}test_install_<distro>${RESET}: configure, build, install then test a sample project against it using the ${BOLD}install${RESET} image container specified."
|
||||
@echo -e "\t${BOLD}sh_install_<distro>_<lang>${RESET}: run a container using the install image (debug purpose)."
|
||||
@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 -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++)"
|
||||
@@ -45,18 +55,20 @@ help:
|
||||
@echo -e "\t\t${BOLD}dotnet${RESET} (.Net Core >= 2.1)"
|
||||
@echo -e "\te.g. 'make devel_cpp'"
|
||||
@echo
|
||||
@echo -e "\t${BOLD}<distro>${RESET}:"
|
||||
@echo -e "\t\t${BOLD}alpine${RESET} (latest)"
|
||||
@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} (latest)"
|
||||
@echo -e "\te.g. 'make devel_alpine'"
|
||||
@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}install_env${RESET}"
|
||||
@echo -e "\t\t${BOLD}install_devel${RESET}"
|
||||
@echo -e "\t\t${BOLD}install_build${RESET}"
|
||||
@echo -e "\t\t${BOLD}install_test${RESET}"
|
||||
@echo -e "\te.g. 'make build'"
|
||||
@echo
|
||||
@echo -e "\tYou can also mix both using: ${BOLD}<distro>_<lang>${RESET}"
|
||||
@echo -e "\te.g. 'make devel_alpine_cpp'"
|
||||
@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
|
||||
@@ -96,244 +108,196 @@ LANGUAGES = cpp python java dotnet
|
||||
# $< first prerequist
|
||||
# $@ target name
|
||||
|
||||
# ENV
|
||||
targets = $(addprefix env_, $(DISTROS))
|
||||
.PHONY: env $(targets)
|
||||
env: $(targets)
|
||||
$(targets): env_%: cache/%/docker_env.tar
|
||||
cache/%/docker_env.tar: docker/%/Dockerfile
|
||||
@docker image rm -f ${IMAGE}:$*_env 2>/dev/null
|
||||
${DOCKER_BUILD_CMD} --target=env --tag ${IMAGE}:$*_env -f $< docker/$*
|
||||
@rm -f $@
|
||||
mkdir -p cache/$*
|
||||
docker save ${IMAGE}:$*_env -o $@
|
||||
###############
|
||||
## 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 $$< ..
|
||||
|
||||
# Run a container using the env image.
|
||||
targets = $(addprefix sh_env_, $(DISTROS))
|
||||
.PHONY: $(targets)
|
||||
$(targets): sh_env_%: cache/%/docker_env.tar
|
||||
${DOCKER_RUN_CMD} -it --name ${IMAGE}_$* ${IMAGE}:$*_env /bin/sh
|
||||
#$$(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 $$@
|
||||
|
||||
# DEVEL
|
||||
.PHONY: devel
|
||||
devel: $(addprefix devel_, $(DISTROS))
|
||||
#$$(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 ${IMAGE}_$$*_$1 ${IMAGE}:$$*_$1 /bin/sh
|
||||
|
||||
distro_targets = $(addprefix devel_, $(DISTROS))
|
||||
.PHONY: $(distro_targets)
|
||||
$(distro_targets): devel_%: $(addprefix devel_%_, $(LANGUAGES))
|
||||
#$$(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
|
||||
|
||||
lang_targets = $(addprefix devel_, $(LANGUAGES))
|
||||
.PHONY: $(lang_targets)
|
||||
$(lang_targets): devel_%: $(addsuffix _%, $(addprefix devel_, $(DISTROS)))
|
||||
$(foreach stage,$(PRESTAGES),$(eval $(call make-prestage-target,$(stage))))
|
||||
|
||||
distro_cpp_targets = $(addprefix devel_, $(addsuffix _cpp, $(DISTROS)))
|
||||
distro_python_targets = $(addprefix devel_, $(addsuffix _python, $(DISTROS)))
|
||||
distro_java_targets = $(addprefix devel_, $(addsuffix _java, $(DISTROS)))
|
||||
distro_dotnet_targets = $(addprefix devel_, $(addsuffix _dotnet, $(DISTROS)))
|
||||
.PHONY: $(distro_cpp_targets) $(distro_python_targets) $(distro_java_targets) $(distro_dotnet_targets)
|
||||
$(distro_cpp_targets): devel_%_cpp: cache/%/docker_cpp.tar
|
||||
$(distro_python_targets): devel_%_python: cache/%/docker_python.tar
|
||||
$(distro_java_targets): devel_%_java: cache/%/docker_java.tar
|
||||
$(distro_dotnet_targets): devel_%_dotnet: cache/%/docker_dotnet.tar
|
||||
############
|
||||
## STAGES ##
|
||||
############
|
||||
STAGES = env devel build test install_env install_devel install_build install_test
|
||||
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)))
|
||||
|
||||
cache/%/docker_cpp.tar: docker/%/Dockerfile ../CMakeLists.txt ../cmake
|
||||
@echo building $@...
|
||||
@docker image rm -f ${IMAGE}:$*_cpp 2>/dev/null
|
||||
${DOCKER_BUILD_CMD} --target=cpp --tag ${IMAGE}:$*_cpp -f $< ..
|
||||
@rm -f $@
|
||||
mkdir -p cache/$*
|
||||
docker save ${IMAGE}:$*_cpp -o $@
|
||||
#$$(info Create targets: $(addsuffix _$1, $(LANGUAGES)).)
|
||||
targets_$1 = $(addsuffix _$1, $(LANGUAGES))
|
||||
.PHONY: $$(targets_$1)
|
||||
$$(targets_$1): %_$1: $(addsuffix _$1, $(addsuffix _%, $(DISTROS)))
|
||||
|
||||
cache/%/docker_python.tar: docker/%/Dockerfile ../CMakeLists.txt ../cmake
|
||||
@echo building $@...
|
||||
@docker image rm -f ${IMAGE}:$*_python 2>/dev/null
|
||||
${DOCKER_BUILD_CMD} --target=python --tag ${IMAGE}:$*_python -f $< ..
|
||||
@rm -f $@
|
||||
mkdir -p cache/$*
|
||||
docker save ${IMAGE}:$*_python -o $@
|
||||
#$$(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)
|
||||
|
||||
cache/%/docker_java.tar: docker/%/Dockerfile ../CMakeLists.txt ../cmake
|
||||
@echo building $@...
|
||||
@docker image rm -f ${IMAGE}:$*_java 2>/dev/null
|
||||
${DOCKER_BUILD_CMD} --target=java --tag ${IMAGE}:$*_java -f $< ..
|
||||
@rm -f $@
|
||||
mkdir -p cache/$*
|
||||
docker save ${IMAGE}:$*_java -o $@
|
||||
$$(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 $$< ..
|
||||
|
||||
cache/%/docker_dotnet.tar: docker/%/Dockerfile ../CMakeLists.txt ../cmake
|
||||
@echo building $@...
|
||||
@docker image rm -f ${IMAGE}:$*_dotnet 2>/dev/null
|
||||
${DOCKER_BUILD_CMD} --target=dotnet --tag ${IMAGE}:$*_dotnet -f $< ..
|
||||
@rm -f $@
|
||||
mkdir -p cache/$*
|
||||
docker save ${IMAGE}:$*_dotnet -o $@
|
||||
# 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)))
|
||||
|
||||
# DOCKER BASH INSTALL (debug)
|
||||
distro_cpp_targets = $(addprefix sh_, $(addsuffix _cpp, $(DISTROS)))
|
||||
distro_python_targets = $(addprefix sh_, $(addsuffix _python, $(DISTROS)))
|
||||
distro_java_targets = $(addprefix sh_, $(addsuffix _java, $(DISTROS)))
|
||||
distro_dotnet_targets = $(addprefix sh_, $(addsuffix _dotnet, $(DISTROS)))
|
||||
.PHONY: $(distro_cpp_targets) $(distro_python_targets) $(distro_java_targets) $(distro_dotnet_targets)
|
||||
#$$(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)))
|
||||
|
||||
$(distro_cpp_targets): sh_%_cpp: cache/%/docker_cpp.tar
|
||||
${DOCKER_RUN_CMD} -it --name ${IMAGE}_$*_cpp ${IMAGE}:$*_cpp /bin/sh
|
||||
$(distro_python_targets): sh_%_python: cache/%/docker_python.tar
|
||||
${DOCKER_RUN_CMD} -it --name ${IMAGE}_$*_python ${IMAGE}:$*_python /bin/sh
|
||||
$(distro_java_targets): sh_%_java: cache/%/docker_java.tar
|
||||
${DOCKER_RUN_CMD} -it --name ${IMAGE}_$*_java ${IMAGE}:$*_java /bin/sh
|
||||
$(distro_dotnet_targets): sh_%_dotnet: cache/%/docker_dotnet.tar
|
||||
${DOCKER_RUN_CMD} -it --name ${IMAGE}_$*_dotnet ${IMAGE}:$*_dotnet /bin/sh
|
||||
#$$(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)
|
||||
|
||||
# TEST DEVEL
|
||||
.PHONY: test
|
||||
test: $(addprefix test_, $(DISTROS))
|
||||
$$(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 $$@
|
||||
|
||||
distro_targets = $(addprefix test_, $(DISTROS))
|
||||
.PHONY: $(distro_targets)
|
||||
$(distro_targets): test_%: $(addprefix test_%_, $(LANGUAGES))
|
||||
# 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)
|
||||
|
||||
lang_targets = $(addprefix test_, $(LANGUAGES))
|
||||
.PHONY: $(lang_targets)
|
||||
$(lang_targets): test_%: $(addsuffix _%, $(addprefix test_, $(DISTROS)))
|
||||
$$(cpp_targets): sh_%_cpp_$1: %_cpp_$1
|
||||
${DOCKER_RUN_CMD} -it --name ${IMAGE}_$$*_cpp_$1 ${IMAGE}:$$*_cpp_$1 /bin/sh
|
||||
$$(dotnet_targets): sh_%_dotnet_$1: %_dotnet_$1
|
||||
${DOCKER_RUN_CMD} -it --name ${IMAGE}_$$*_dotnet_$1 ${IMAGE}:$$*_dotnet_$1 /bin/sh
|
||||
$$(java_targets): sh_%_java_$1: %_java_$1
|
||||
${DOCKER_RUN_CMD} -it --name ${IMAGE}_$$*_java_$1 ${IMAGE}:$$*_java_$1 /bin/sh
|
||||
$$(python_targets): sh_%_python_$1: %_python_$1
|
||||
${DOCKER_RUN_CMD} -it --name ${IMAGE}_$$*_python_$1 ${IMAGE}:$$*_python_$1 /bin/sh
|
||||
|
||||
distro_cpp_targets = $(addprefix test_, $(addsuffix _cpp, $(DISTROS)))
|
||||
distro_python_targets = $(addprefix test_, $(addsuffix _python, $(DISTROS)))
|
||||
distro_java_targets = $(addprefix test_, $(addsuffix _java, $(DISTROS)))
|
||||
distro_dotnet_targets = $(addprefix test_, $(addsuffix _dotnet, $(DISTROS)))
|
||||
.PHONY: $(distro_cpp_targets) $(distro_python_targets) $(distro_java_targets) $(distro_dotnet_targets)
|
||||
# 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)))
|
||||
|
||||
$(distro_cpp_targets): test_%_cpp: cache/%/docker_cpp.tar
|
||||
${DOCKER_RUN_CMD} -t --name ${IMAGE}_$*_cpp ${IMAGE}:$*_cpp cmake --build build --target test -- CTEST_OUTPUT_ON_FAILURE=1
|
||||
$(distro_python_targets): test_%_python: cache/%/docker_python.tar
|
||||
${DOCKER_RUN_CMD} -t --name ${IMAGE}_$*_python ${IMAGE}:$*_python cmake --build build --target test -- CTEST_OUTPUT_ON_FAILURE=1
|
||||
$(distro_java_targets): test_%_java: cache/%/docker_java.tar
|
||||
${DOCKER_RUN_CMD} -t --name ${IMAGE}_$*_java ${IMAGE}:$*_java cmake --build build --target test -- CTEST_OUTPUT_ON_FAILURE=1
|
||||
$(distro_dotnet_targets): test_%_dotnet: cache/%/docker_dotnet.tar
|
||||
${DOCKER_RUN_CMD} -t --name ${IMAGE}_$*_dotnet ${IMAGE}:$*_dotnet cmake --build build --target test -- CTEST_OUTPUT_ON_FAILURE=1
|
||||
#$$(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)))
|
||||
|
||||
# INSTALL
|
||||
.PHONY: install
|
||||
install: $(addprefix install_, $(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)
|
||||
|
||||
distro_targets = $(addprefix install_, $(DISTROS))
|
||||
.PHONY: $(distro_targets)
|
||||
$(distro_targets): install_%: $(addprefix install_%_, $(LANGUAGES))
|
||||
$$(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
|
||||
|
||||
lang_targets = $(addprefix install_, $(LANGUAGES))
|
||||
.PHONY: $(lang_targets)
|
||||
$(lang_targets): install_%: $(addsuffix _%, $(addprefix install_, $(DISTROS)))
|
||||
|
||||
distro_cpp_targets = $(addprefix install_, $(addsuffix _cpp, $(DISTROS)))
|
||||
distro_python_targets = $(addprefix install_, $(addsuffix _python, $(DISTROS)))
|
||||
distro_java_targets = $(addprefix install_, $(addsuffix _java, $(DISTROS)))
|
||||
distro_dotnet_targets = $(addprefix install_, $(addsuffix _dotnet, $(DISTROS)))
|
||||
.PHONY: $(distro_cpp_targets) $(distro_python_targets) $(distro_java_targets) $(distro_dotnet_targets)
|
||||
$(distro_cpp_targets): install_%_cpp: cache/%/docker_install_cpp.tar
|
||||
$(distro_python_targets): install_%_python: cache/%/docker_install_python.tar
|
||||
$(distro_java_targets): install_%_java: cache/%/docker_install_java.tar
|
||||
$(distro_dotnet_targets): install_%_dotnet: cache/%/docker_install_dotnet.tar
|
||||
|
||||
cache/%/docker_install_cpp.tar: docker/%/Dockerfile sample_cpp
|
||||
@docker image rm -f ${IMAGE}:$*_install_cpp 2>/dev/null
|
||||
${DOCKER_BUILD_CMD} --target=install_cpp --tag ${IMAGE}:$*_install_cpp -f $< ..
|
||||
@rm -f $@
|
||||
mkdir -p cache/$*
|
||||
docker save ${IMAGE}:$*_install_cpp -o $@
|
||||
|
||||
cache/%/docker_install_python.tar: docker/%/Dockerfile sample_python
|
||||
@docker image rm -f ${IMAGE}:$*_install_python 2>/dev/null
|
||||
${DOCKER_BUILD_CMD} --target=install_python --tag ${IMAGE}:$*_install_python -f $< ..
|
||||
@rm -f $@
|
||||
mkdir -p cache/$*
|
||||
docker save ${IMAGE}:$*_install_python -o $@
|
||||
|
||||
cache/%/docker_install_java.tar: docker/%/Dockerfile sample_java
|
||||
@docker image rm -f ${IMAGE}:$*_install_java 2>/dev/null
|
||||
${DOCKER_BUILD_CMD} --target=install_java --tag ${IMAGE}:$*_install_java -f $< ..
|
||||
@rm -f $@
|
||||
mkdir -p cache/$*
|
||||
docker save ${IMAGE}:$*_install_java -o $@
|
||||
|
||||
cache/%/docker_install_dotnet.tar: docker/%/Dockerfile sample_dotnet
|
||||
@docker image rm -f ${IMAGE}:$*_install_dotnet 2>/dev/null
|
||||
${DOCKER_BUILD_CMD} --target=install_dotnet --tag ${IMAGE}:$*_install_dotnet -f $< ..
|
||||
@rm -f $@
|
||||
mkdir -p cache/$*
|
||||
docker save ${IMAGE}:$*_install_dotnet -o $@
|
||||
|
||||
# DOCKER BASH INSTALL (debug)
|
||||
distro_cpp_targets = $(addprefix sh_install_, $(addsuffix _cpp, $(DISTROS)))
|
||||
.PHONY: $(distro_cpp_targets)
|
||||
distro_python_targets = $(addprefix sh_install_, $(addsuffix _python, $(DISTROS)))
|
||||
.PHONY: $(distro_python_targets)
|
||||
distro_java_targets = $(addprefix sh_install_, $(addsuffix _java, $(DISTROS)))
|
||||
.PHONY: $(distro_java_targets)
|
||||
distro_dotnet_targets = $(addprefix sh_install_, $(addsuffix _dotnet, $(DISTROS)))
|
||||
.PHONY: $(distro_dotnet_targets)
|
||||
|
||||
$(distro_cpp_targets): sh_install_%_cpp: cache/%/docker_install_cpp.tar
|
||||
${DOCKER_RUN_CMD} -it --name ${IMAGE}_$*_install_cpp ${IMAGE}:$*_install_cpp /bin/sh
|
||||
$(distro_python_targets): sh_install_%_python: cache/%/docker_install_python.tar
|
||||
${DOCKER_RUN_CMD} -it --name ${IMAGE}_$*_install_python ${IMAGE}:$*_install_python /bin/sh
|
||||
$(distro_java_targets): sh_install_%_java: cache/%/docker_install_java.tar
|
||||
${DOCKER_RUN_CMD} -it --name ${IMAGE}_$*_install_java ${IMAGE}:$*_install_java /bin/sh
|
||||
$(distro_dotnet_targets): sh_install_%_dotnet: cache/%/docker_install_dotnet.tar
|
||||
${DOCKER_RUN_CMD} -it --name ${IMAGE}_$*_install_dotnet ${IMAGE}:$*_install_dotnet /bin/sh
|
||||
|
||||
# TEST INSTALL#
|
||||
.PHONY: test_install
|
||||
test_install: $(addprefix test_install, $(DISTROS))
|
||||
|
||||
distro_targets = $(addprefix test_install_, $(DISTROS))
|
||||
.PHONY: $(distro_targets)
|
||||
$(distro_targets): test_install_%: $(addprefix test_install_%_, cpp)
|
||||
|
||||
distro_cpp_targets = $(addprefix test_install_, $(addsuffix _cpp, $(DISTROS)))
|
||||
distro_python_targets = $(addprefix test_install_, $(addsuffix _python, $(DISTROS)))
|
||||
distro_java_targets = $(addprefix test_install_, $(addsuffix _java, $(DISTROS)))
|
||||
distro_dotnet_targets = $(addprefix test_install_, $(addsuffix _dotnet, $(DISTROS)))
|
||||
.PHONY: $(distro_cpp_targets) $(distro_python_targets) $(distro_java_targets) $(distro_dotnet_targets)
|
||||
|
||||
$(distro_cpp_targets): test_install_%_cpp: cache/%/docker_install_cpp.tar
|
||||
${DOCKER_RUN_CMD} -t --name ${IMAGE}_$*_install_cpp ${IMAGE}:$*_install_cpp /bin/sh -c \
|
||||
"cmake -H. -Bbuild; \
|
||||
cmake --build build --target all; \
|
||||
cmake --build build --target test; \
|
||||
cmake --build build --target install"
|
||||
|
||||
$(distro_python_targets): test_install_%_python: cache/%/docker_install_python.tar
|
||||
${DOCKER_RUN_CMD} -t --name ${IMAGE}_$*_install_python ${IMAGE}:$*_install_python /bin/sh -c \
|
||||
"./sample.py"
|
||||
|
||||
$(distro_java_targets): test_install_%_java: cache/%/docker_install_java.tar
|
||||
${DOCKER_RUN_CMD} -t --name ${IMAGE}_$*_install_java ${IMAGE}:$*_install_java /bin/sh -c \
|
||||
"java sample.java"
|
||||
|
||||
$(distro_dotnet_targets): test_install_%_dotnet: cache/%/docker_install_dotnet.tar
|
||||
${DOCKER_RUN_CMD} -t --name ${IMAGE}_$*_install_dotnet ${IMAGE}:$*_install_dotnet /bin/sh -c \
|
||||
"dotnet build; \
|
||||
dotnet run --project sample.csproj"
|
||||
$(foreach stage,$(STAGES),$(eval $(call make-stage-target,$(stage))))
|
||||
|
||||
# CLEAN
|
||||
targets = $(addprefix clean_, $(DISTROS))
|
||||
.PHONY: clean $(targets)
|
||||
clean: $(targets)
|
||||
-rmdir cache
|
||||
$(targets): clean_%:
|
||||
docker container prune -f
|
||||
docker image prune -f
|
||||
-docker image rm -f ${IMAGE}:$*_install_cpp 2>/dev/null
|
||||
-docker image rm -f ${IMAGE}:$*_dotnet 2>/dev/null
|
||||
-docker image rm -f ${IMAGE}:$*_java 2>/dev/null
|
||||
-docker image rm -f ${IMAGE}:$*_python 2>/dev/null
|
||||
-docker image rm -f ${IMAGE}:$*_cpp 2>/dev/null
|
||||
-docker image rm -f ${IMAGE}:$*_env 2>/dev/null
|
||||
-rm -f cache/$*/docker_install_cpp.tar
|
||||
-rm -f cache/$*/docker_dotnet.tar
|
||||
-rm -f cache/$*/docker_java.tar
|
||||
-rm -f cache/$*/docker_python.tar
|
||||
-rm -f cache/$*/docker_cpp.tar
|
||||
-rm -f cache/$*/docker_env.tar
|
||||
-rmdir cache
|
||||
$(targets): clean_%: $(addprefix clean_%_, $(PRESTAGES)) $(addprefix clean_%_, $(STAGES))
|
||||
-rmdir cache/$*
|
||||
|
||||
.PHONY: distclean
|
||||
|
||||
@@ -43,6 +43,7 @@
|
||||
<a href="doc/dotnet.md">.Net Core</a> |
|
||||
<a href="doc/java.md">Java</a> |
|
||||
<a href="#integration">Integration</a> |
|
||||
<a href="doc/ci.md">CI</a> |
|
||||
</nav>
|
||||
|
||||
OR-Tools comes with a CMake based build ([CMakeLists.txt](../CMakeLists.txt))
|
||||
|
||||
37
cmake/doc/ci.md
Normal file
37
cmake/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=ci
|
||||
```
|
||||
|
||||
## Example
|
||||
For example to test `Python` inside an `Alpine` container:
|
||||
```sh
|
||||
make test_alpine_python
|
||||
```
|
||||
|
||||
# Docker layers
|
||||
Dockerfile is splitted in several stages.
|
||||
|
||||

|
||||
684
cmake/doc/cmake.svg
Normal file
684
cmake/doc/cmake.svg
Normal file
@@ -0,0 +1,684 @@
|
||||
<?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: CMake Pages: 1 -->
|
||||
<svg width="1828pt" height="1322pt"
|
||||
viewBox="0.00 0.00 1828.00 1322.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 1318)">
|
||||
<title>CMake</title>
|
||||
<polygon fill="white" stroke="transparent" points="-4,4 -4,-1318 1824,-1318 1824,4 -4,4"/>
|
||||
<g id="clust1" class="cluster">
|
||||
<title>clusterPrerequisite</title>
|
||||
<polygon fill="none" stroke="black" points="8,-917 8,-1183 364,-1183 364,-917 8,-917"/>
|
||||
<text text-anchor="middle" x="186" y="-1167.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,-1306 1812,-1306 1812,-8 372,-8"/>
|
||||
<text text-anchor="middle" x="1092" y="-1290.8" font-family="Times,serif" font-size="14.00">OR-Tools (CMake)</text>
|
||||
</g>
|
||||
<g id="clust3" class="cluster">
|
||||
<title>clusterDeps</title>
|
||||
<polygon fill="none" stroke="grey" points="380,-567 380,-1275 1804,-1275 1804,-567 380,-567"/>
|
||||
<text text-anchor="middle" x="1092" y="-1259.8" font-family="Times,serif" font-size="14.00">Dependencies</text>
|
||||
<text text-anchor="middle" x="1092" y="-1244.8" font-family="Times,serif" font-size="14.00">(-DBUILD_DEPS=ON)</text>
|
||||
</g>
|
||||
<g id="clust4" class="cluster">
|
||||
<title>clusterZLIB</title>
|
||||
<polygon fill="none" stroke="royalblue" points="904,-1108 904,-1183 1136,-1183 1136,-1108 904,-1108"/>
|
||||
<text text-anchor="middle" x="1020" y="-1167.8" font-family="Times,serif" font-size="14.00">madler/zlib.git + cmake patch</text>
|
||||
</g>
|
||||
<g id="clust5" class="cluster">
|
||||
<title>clusterAbsl</title>
|
||||
<polygon fill="none" stroke="royalblue" points="1144,-1108 1144,-1183 1303,-1183 1303,-1108 1144,-1108"/>
|
||||
<text text-anchor="middle" x="1223.5" y="-1167.8" font-family="Times,serif" font-size="14.00">abseil/abseil-cpp.git</text>
|
||||
</g>
|
||||
<g id="clust6" class="cluster">
|
||||
<title>clusterGFlags</title>
|
||||
<polygon fill="none" stroke="royalblue" points="1311,-1108 1311,-1183 1442,-1183 1442,-1108 1311,-1108"/>
|
||||
<text text-anchor="middle" x="1376.5" y="-1167.8" font-family="Times,serif" font-size="14.00">gflags/gflags.git</text>
|
||||
</g>
|
||||
<g id="clust7" class="cluster">
|
||||
<title>clusterGLog</title>
|
||||
<polygon fill="none" stroke="royalblue" points="1450,-1108 1450,-1183 1573,-1183 1573,-1108 1450,-1108"/>
|
||||
<text text-anchor="middle" x="1511.5" y="-1167.8" font-family="Times,serif" font-size="14.00">google/glog.git</text>
|
||||
</g>
|
||||
<g id="clust8" class="cluster">
|
||||
<title>clusterProtobuf</title>
|
||||
<polygon fill="none" stroke="royalblue" points="1581,-1108 1581,-1183 1796,-1183 1796,-1108 1581,-1108"/>
|
||||
<text text-anchor="middle" x="1688.5" y="-1167.8" font-family="Times,serif" font-size="14.00">protocolbuffers/protobuf.git</text>
|
||||
</g>
|
||||
<g id="clust9" class="cluster">
|
||||
<title>clusterCoinOR</title>
|
||||
<polygon fill="none" stroke="royalblue" points="488,-575 488,-1229 896,-1229 896,-575 488,-575"/>
|
||||
<text text-anchor="middle" x="692" y="-1213.8" font-family="Times,serif" font-size="14.00">Coin-OR Solver</text>
|
||||
<text text-anchor="middle" x="692" y="-1198.8" font-family="Times,serif" font-size="14.00">(-DUSE_COINOR=ON)</text>
|
||||
</g>
|
||||
<g id="clust10" class="cluster">
|
||||
<title>clusterCoinUtils</title>
|
||||
<polygon fill="none" stroke="royalblue" points="704,-1108 704,-1183 859,-1183 859,-1108 704,-1108"/>
|
||||
<text text-anchor="middle" x="781.5" y="-1167.8" font-family="Times,serif" font-size="14.00">mizux/CoinUtils.git</text>
|
||||
</g>
|
||||
<g id="clust11" class="cluster">
|
||||
<title>clusterOsi</title>
|
||||
<polygon fill="none" stroke="royalblue" points="747,-1013 747,-1088 858,-1088 858,-1013 747,-1013"/>
|
||||
<text text-anchor="middle" x="802.5" y="-1072.8" font-family="Times,serif" font-size="14.00">mizux/Osi.git</text>
|
||||
</g>
|
||||
<g id="clust12" class="cluster">
|
||||
<title>clusterClp</title>
|
||||
<polygon fill="none" stroke="royalblue" points="528,-844 528,-993 796,-993 796,-844 528,-844"/>
|
||||
<text text-anchor="middle" x="662" y="-977.8" font-family="Times,serif" font-size="14.00">mizux/Clp.git</text>
|
||||
</g>
|
||||
<g id="clust13" class="cluster">
|
||||
<title>clusterCgl</title>
|
||||
<polygon fill="none" stroke="royalblue" points="726,-750 726,-825 838,-825 838,-750 726,-750"/>
|
||||
<text text-anchor="middle" x="782" y="-809.8" font-family="Times,serif" font-size="14.00">mizux/Cgl.git</text>
|
||||
</g>
|
||||
<g id="clust14" class="cluster">
|
||||
<title>clusterCbc</title>
|
||||
<polygon fill="none" stroke="royalblue" points="614,-583 614,-731 888,-731 888,-583 614,-583"/>
|
||||
<text text-anchor="middle" x="751" y="-715.8" font-family="Times,serif" font-size="14.00">mizux/Cbc.git</text>
|
||||
</g>
|
||||
<g id="clust15" class="cluster">
|
||||
<title>clusterCXX</title>
|
||||
<polygon fill="none" stroke="royalblue" points="680,-131 680,-550 910,-550 910,-131 680,-131"/>
|
||||
<text text-anchor="middle" x="795" y="-534.8" font-family="Times,serif" font-size="14.00">C++</text>
|
||||
<text text-anchor="middle" x="795" y="-519.8" font-family="Times,serif" font-size="14.00">(-DBUILD_CXX=ON)</text>
|
||||
</g>
|
||||
<g id="clust16" class="cluster">
|
||||
<title>clusterCXXTest</title>
|
||||
<polygon fill="none" stroke="black" points="688,-139 688,-229 902,-229 902,-139 688,-139"/>
|
||||
<text text-anchor="middle" x="795" y="-213.8" font-family="Times,serif" font-size="14.00">Examples</text>
|
||||
<text text-anchor="middle" x="795" y="-198.8" font-family="Times,serif" font-size="14.00">(-DENABLE_TESTING=ON)</text>
|
||||
</g>
|
||||
<g id="clust17" class="cluster">
|
||||
<title>clusterPython</title>
|
||||
<polygon fill="none" stroke="gold" points="918,-16 918,-427 1148,-427 1148,-16 918,-16"/>
|
||||
<text text-anchor="middle" x="1033" y="-411.8" font-family="Times,serif" font-size="14.00">Python</text>
|
||||
<text text-anchor="middle" x="1033" y="-396.8" font-family="Times,serif" font-size="14.00">(-DBUILD_PYTHON=ON)</text>
|
||||
</g>
|
||||
<g id="clust18" class="cluster">
|
||||
<title>clusterPythonTest</title>
|
||||
<polygon fill="none" stroke="black" points="926,-24 926,-114 1140,-114 1140,-24 926,-24"/>
|
||||
<text text-anchor="middle" x="1033" y="-98.8" font-family="Times,serif" font-size="14.00">Examples</text>
|
||||
<text text-anchor="middle" x="1033" y="-83.8" font-family="Times,serif" font-size="14.00">(-DENABLE_TESTING=ON)</text>
|
||||
</g>
|
||||
<g id="clust19" class="cluster">
|
||||
<title>clusterJava</title>
|
||||
<polygon fill="none" stroke="crimson" points="1183,-16 1183,-427 1413,-427 1413,-16 1183,-16"/>
|
||||
<text text-anchor="middle" x="1298" y="-411.8" font-family="Times,serif" font-size="14.00">Java</text>
|
||||
<text text-anchor="middle" x="1298" y="-396.8" font-family="Times,serif" font-size="14.00">(-DBUILD_JAVA=ON)</text>
|
||||
</g>
|
||||
<g id="clust20" class="cluster">
|
||||
<title>clusterJavaTest</title>
|
||||
<polygon fill="none" stroke="black" points="1191,-24 1191,-114 1405,-114 1405,-24 1191,-24"/>
|
||||
<text text-anchor="middle" x="1298" y="-98.8" font-family="Times,serif" font-size="14.00">Examples</text>
|
||||
<text text-anchor="middle" x="1298" y="-83.8" font-family="Times,serif" font-size="14.00">(-DENABLE_TESTING=ON)</text>
|
||||
</g>
|
||||
<g id="clust21" class="cluster">
|
||||
<title>clusterNet</title>
|
||||
<polygon fill="none" stroke="forestgreen" points="1428,-16 1428,-427 1804,-427 1804,-16 1428,-16"/>
|
||||
<text text-anchor="middle" x="1616" y="-411.8" font-family="Times,serif" font-size="14.00">.Net</text>
|
||||
<text text-anchor="middle" x="1616" y="-396.8" font-family="Times,serif" font-size="14.00">(-DBUILD_DOTNET=ON)</text>
|
||||
</g>
|
||||
<g id="clust22" class="cluster">
|
||||
<title>clusterNetTest</title>
|
||||
<polygon fill="none" stroke="black" points="1479,-24 1479,-114 1693,-114 1693,-24 1479,-24"/>
|
||||
<text text-anchor="middle" x="1586" y="-98.8" font-family="Times,serif" font-size="14.00">Examples</text>
|
||||
<text text-anchor="middle" x="1586" y="-83.8" font-family="Times,serif" font-size="14.00">(-DENABLE_TESTING=ON)</text>
|
||||
</g>
|
||||
<!-- CM -->
|
||||
<g id="node1" class="node">
|
||||
<title>CM</title>
|
||||
<path fill="none" stroke="royalblue" d="M180,-1152C180,-1152 138,-1152 138,-1152 132,-1152 126,-1146 126,-1140 126,-1140 126,-1128 126,-1128 126,-1122 132,-1116 138,-1116 138,-1116 180,-1116 180,-1116 186,-1116 192,-1122 192,-1128 192,-1128 192,-1140 192,-1140 192,-1146 186,-1152 180,-1152"/>
|
||||
<text text-anchor="middle" x="159" y="-1130.3" font-family="Times,serif" font-size="14.00">CMake</text>
|
||||
</g>
|
||||
<!-- SWIG -->
|
||||
<g id="node2" class="node">
|
||||
<title>SWIG</title>
|
||||
<path fill="none" stroke="chocolate" d="M177.5,-1058C177.5,-1058 140.5,-1058 140.5,-1058 134.5,-1058 128.5,-1052 128.5,-1046 128.5,-1046 128.5,-1032 128.5,-1032 128.5,-1026 134.5,-1020 140.5,-1020 140.5,-1020 177.5,-1020 177.5,-1020 183.5,-1020 189.5,-1026 189.5,-1032 189.5,-1032 189.5,-1046 189.5,-1046 189.5,-1052 183.5,-1058 177.5,-1058"/>
|
||||
<text text-anchor="middle" x="159" y="-1042.8" font-family="Times,serif" font-size="14.00">Swig</text>
|
||||
<text text-anchor="middle" x="159" y="-1027.8" font-family="Times,serif" font-size="14.00">(Unix)</text>
|
||||
</g>
|
||||
<!-- CM->SWIG -->
|
||||
<g id="edge1" class="edge">
|
||||
<title>CM->SWIG</title>
|
||||
</g>
|
||||
<!-- PY -->
|
||||
<g id="node3" class="node">
|
||||
<title>PY</title>
|
||||
<path fill="none" stroke="gold" d="M71.5,-963C71.5,-963 28.5,-963 28.5,-963 22.5,-963 16.5,-957 16.5,-951 16.5,-951 16.5,-937 16.5,-937 16.5,-931 22.5,-925 28.5,-925 28.5,-925 71.5,-925 71.5,-925 77.5,-925 83.5,-931 83.5,-937 83.5,-937 83.5,-951 83.5,-951 83.5,-957 77.5,-963 71.5,-963"/>
|
||||
<text text-anchor="middle" x="50" y="-947.8" font-family="Times,serif" font-size="14.00">Python</text>
|
||||
<text text-anchor="middle" x="50" y="-932.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>
|
||||
<!-- Java -->
|
||||
<g id="node4" class="node">
|
||||
<title>Java</title>
|
||||
<path fill="none" stroke="indigo" d="M204,-963C204,-963 114,-963 114,-963 108,-963 102,-957 102,-951 102,-951 102,-937 102,-937 102,-931 108,-925 114,-925 114,-925 204,-925 204,-925 210,-925 216,-931 216,-937 216,-937 216,-951 216,-951 216,-957 210,-963 204,-963"/>
|
||||
<text text-anchor="middle" x="159" y="-947.8" font-family="Times,serif" font-size="14.00">Java</text>
|
||||
<text text-anchor="middle" x="159" y="-932.8" font-family="Times,serif" font-size="14.00">(openJDK 8+)</text>
|
||||
</g>
|
||||
<!-- SWIG->Java -->
|
||||
<g id="edge3" class="edge">
|
||||
<title>SWIG->Java</title>
|
||||
</g>
|
||||
<!-- Dotnet -->
|
||||
<g id="node5" class="node">
|
||||
<title>Dotnet</title>
|
||||
<path fill="none" stroke="forestgreen" d="M344,-963C344,-963 246,-963 246,-963 240,-963 234,-957 234,-951 234,-951 234,-937 234,-937 234,-931 240,-925 246,-925 246,-925 344,-925 344,-925 350,-925 356,-931 356,-937 356,-937 356,-951 356,-951 356,-957 350,-963 344,-963"/>
|
||||
<text text-anchor="middle" x="295" y="-947.8" font-family="Times,serif" font-size="14.00">.Net Core SDK</text>
|
||||
<text text-anchor="middle" x="295" y="-932.8" font-family="Times,serif" font-size="14.00">(3.0.101)</text>
|
||||
</g>
|
||||
<!-- SWIG->Dotnet -->
|
||||
<g id="edge4" class="edge">
|
||||
<title>SWIG->Dotnet</title>
|
||||
</g>
|
||||
<!-- ZLIB -->
|
||||
<g id="node6" class="node">
|
||||
<title>ZLIB</title>
|
||||
<path fill="royalblue" stroke="royalblue" d="M995.5,-1152C995.5,-1152 924.5,-1152 924.5,-1152 918.5,-1152 912.5,-1146 912.5,-1140 912.5,-1140 912.5,-1128 912.5,-1128 912.5,-1122 918.5,-1116 924.5,-1116 924.5,-1116 995.5,-1116 995.5,-1116 1001.5,-1116 1007.5,-1122 1007.5,-1128 1007.5,-1128 1007.5,-1140 1007.5,-1140 1007.5,-1146 1001.5,-1152 995.5,-1152"/>
|
||||
<text text-anchor="middle" x="960" y="-1130.3" font-family="Times,serif" font-size="14.00">ZLIB::ZLIB</text>
|
||||
</g>
|
||||
<!-- OR_SRC -->
|
||||
<g id="node21" class="node">
|
||||
<title>OR_SRC</title>
|
||||
<polygon fill="royalblue" stroke="royalblue" points="896,-504 796,-504 796,-468 902,-468 902,-498 896,-504"/>
|
||||
<polyline fill="none" stroke="royalblue" points="896,-504 896,-498 "/>
|
||||
<polyline fill="none" stroke="royalblue" points="902,-498 896,-498 "/>
|
||||
<text text-anchor="middle" x="849" y="-482.3" font-family="Times,serif" font-size="14.00">OR-Tools src</text>
|
||||
</g>
|
||||
<!-- ZLIB->OR_SRC -->
|
||||
<g id="edge23" class="edge">
|
||||
<title>ZLIB->OR_SRC</title>
|
||||
<path fill="none" stroke="black" d="M951.9,-1115.95C943.95,-1097.61 933,-1067.4 933,-1040 933,-1040 933,-1040 933,-608 933,-568.77 902.84,-533.11 878.66,-510.83"/>
|
||||
<polygon fill="black" stroke="black" points="880.87,-508.1 871.07,-504.07 876.22,-513.33 880.87,-508.1"/>
|
||||
</g>
|
||||
<!-- Absl -->
|
||||
<g id="node7" class="node">
|
||||
<title>Absl</title>
|
||||
<path fill="royalblue" stroke="royalblue" d="M1238,-1152C1238,-1152 1164,-1152 1164,-1152 1158,-1152 1152,-1146 1152,-1140 1152,-1140 1152,-1128 1152,-1128 1152,-1122 1158,-1116 1164,-1116 1164,-1116 1238,-1116 1238,-1116 1244,-1116 1250,-1122 1250,-1128 1250,-1128 1250,-1140 1250,-1140 1250,-1146 1244,-1152 1238,-1152"/>
|
||||
<text text-anchor="middle" x="1201" y="-1130.3" font-family="Times,serif" font-size="14.00">absl::absl_*</text>
|
||||
</g>
|
||||
<!-- Absl->OR_SRC -->
|
||||
<g id="edge24" class="edge">
|
||||
<title>Absl->OR_SRC</title>
|
||||
<path fill="none" stroke="black" d="M1155.85,-1115.96C1125.12,-1101.1 1090,-1076.2 1090,-1040 1090,-1040 1090,-1040 1090,-608 1090,-528.46 983.86,-501.2 912.45,-491.86"/>
|
||||
<polygon fill="black" stroke="black" points="912.54,-488.35 902.19,-490.61 911.69,-495.3 912.54,-488.35"/>
|
||||
</g>
|
||||
<!-- GFlags -->
|
||||
<g id="node8" class="node">
|
||||
<title>GFlags</title>
|
||||
<path fill="royalblue" stroke="royalblue" d="M1417.5,-1152C1417.5,-1152 1330.5,-1152 1330.5,-1152 1324.5,-1152 1318.5,-1146 1318.5,-1140 1318.5,-1140 1318.5,-1128 1318.5,-1128 1318.5,-1122 1324.5,-1116 1330.5,-1116 1330.5,-1116 1417.5,-1116 1417.5,-1116 1423.5,-1116 1429.5,-1122 1429.5,-1128 1429.5,-1128 1429.5,-1140 1429.5,-1140 1429.5,-1146 1423.5,-1152 1417.5,-1152"/>
|
||||
<text text-anchor="middle" x="1374" y="-1130.3" font-family="Times,serif" font-size="14.00">gflags::gflags</text>
|
||||
</g>
|
||||
<!-- GFlags->OR_SRC -->
|
||||
<g id="edge26" class="edge">
|
||||
<title>GFlags->OR_SRC</title>
|
||||
<path fill="none" stroke="black" d="M1323.53,-1115.94C1291.1,-1101.43 1255,-1076.97 1255,-1040 1255,-1040 1255,-1040 1255,-608 1255,-537.32 1026.15,-504.57 912.08,-492.63"/>
|
||||
<polygon fill="black" stroke="black" points="912.38,-489.14 902.08,-491.61 911.67,-496.11 912.38,-489.14"/>
|
||||
</g>
|
||||
<!-- GLog -->
|
||||
<g id="node9" class="node">
|
||||
<title>GLog</title>
|
||||
<path fill="royalblue" stroke="royalblue" d="M1533.5,-1152C1533.5,-1152 1470.5,-1152 1470.5,-1152 1464.5,-1152 1458.5,-1146 1458.5,-1140 1458.5,-1140 1458.5,-1128 1458.5,-1128 1458.5,-1122 1464.5,-1116 1470.5,-1116 1470.5,-1116 1533.5,-1116 1533.5,-1116 1539.5,-1116 1545.5,-1122 1545.5,-1128 1545.5,-1128 1545.5,-1140 1545.5,-1140 1545.5,-1146 1539.5,-1152 1533.5,-1152"/>
|
||||
<text text-anchor="middle" x="1502" y="-1130.3" font-family="Times,serif" font-size="14.00">glog::glog</text>
|
||||
</g>
|
||||
<!-- GLog->OR_SRC -->
|
||||
<g id="edge27" class="edge">
|
||||
<title>GLog->OR_SRC</title>
|
||||
<path fill="none" stroke="black" d="M1467.9,-1115.86C1430.59,-1095.95 1376,-1062.91 1376,-1040 1376,-1040 1376,-1040 1376,-608 1376,-513.9 1052.79,-492.98 912.6,-488.33"/>
|
||||
<polygon fill="black" stroke="black" points="912.54,-484.82 902.43,-488.01 912.32,-491.82 912.54,-484.82"/>
|
||||
</g>
|
||||
<!-- Protobuf -->
|
||||
<g id="node10" class="node">
|
||||
<title>Protobuf</title>
|
||||
<path fill="royalblue" stroke="royalblue" d="M1743.5,-1152C1743.5,-1152 1600.5,-1152 1600.5,-1152 1594.5,-1152 1588.5,-1146 1588.5,-1140 1588.5,-1140 1588.5,-1128 1588.5,-1128 1588.5,-1122 1594.5,-1116 1600.5,-1116 1600.5,-1116 1743.5,-1116 1743.5,-1116 1749.5,-1116 1755.5,-1122 1755.5,-1128 1755.5,-1128 1755.5,-1140 1755.5,-1140 1755.5,-1146 1749.5,-1152 1743.5,-1152"/>
|
||||
<text text-anchor="middle" x="1672" y="-1130.3" font-family="Times,serif" font-size="14.00">protobuf::libprotobuf</text>
|
||||
</g>
|
||||
<!-- Protobuf->OR_SRC -->
|
||||
<g id="edge25" class="edge">
|
||||
<title>Protobuf->OR_SRC</title>
|
||||
<path fill="none" stroke="black" d="M1645.77,-1115.69C1624.14,-1099.11 1597,-1071.94 1597,-1040 1597,-1040 1597,-1040 1597,-608 1597,-538.88 1092.85,-501.7 912.34,-490.6"/>
|
||||
<polygon fill="black" stroke="black" points="912.39,-487.1 902.19,-489.98 911.96,-494.08 912.39,-487.1"/>
|
||||
</g>
|
||||
<!-- CoinUtils -->
|
||||
<g id="node11" class="node">
|
||||
<title>CoinUtils</title>
|
||||
<path fill="royalblue" stroke="royalblue" d="M831.5,-1152C831.5,-1152 730.5,-1152 730.5,-1152 724.5,-1152 718.5,-1146 718.5,-1140 718.5,-1140 718.5,-1128 718.5,-1128 718.5,-1122 724.5,-1116 730.5,-1116 730.5,-1116 831.5,-1116 831.5,-1116 837.5,-1116 843.5,-1122 843.5,-1128 843.5,-1128 843.5,-1140 843.5,-1140 843.5,-1146 837.5,-1152 831.5,-1152"/>
|
||||
<text text-anchor="middle" x="781" y="-1130.3" font-family="Times,serif" font-size="14.00">Coin::CoinUtils</text>
|
||||
</g>
|
||||
<!-- Osi -->
|
||||
<g id="node12" class="node">
|
||||
<title>Osi</title>
|
||||
<path fill="royalblue" stroke="royalblue" d="M831.5,-1057C831.5,-1057 774.5,-1057 774.5,-1057 768.5,-1057 762.5,-1051 762.5,-1045 762.5,-1045 762.5,-1033 762.5,-1033 762.5,-1027 768.5,-1021 774.5,-1021 774.5,-1021 831.5,-1021 831.5,-1021 837.5,-1021 843.5,-1027 843.5,-1033 843.5,-1033 843.5,-1045 843.5,-1045 843.5,-1051 837.5,-1057 831.5,-1057"/>
|
||||
<text text-anchor="middle" x="803" y="-1035.3" font-family="Times,serif" font-size="14.00">Coin::Osi</text>
|
||||
</g>
|
||||
<!-- CoinUtils->Osi -->
|
||||
<g id="edge5" class="edge">
|
||||
<title>CoinUtils->Osi</title>
|
||||
<path fill="none" stroke="black" d="M785.04,-1115.94C788.27,-1102.26 792.87,-1082.81 796.61,-1067.02"/>
|
||||
<polygon fill="black" stroke="black" points="800.02,-1067.8 798.92,-1057.26 793.21,-1066.19 800.02,-1067.8"/>
|
||||
</g>
|
||||
<!-- Clp -->
|
||||
<g id="node13" class="node">
|
||||
<title>Clp</title>
|
||||
<path fill="royalblue" stroke="royalblue" d="M707,-962C707,-962 649,-962 649,-962 643,-962 637,-956 637,-950 637,-950 637,-938 637,-938 637,-932 643,-926 649,-926 649,-926 707,-926 707,-926 713,-926 719,-932 719,-938 719,-938 719,-950 719,-950 719,-956 713,-962 707,-962"/>
|
||||
<text text-anchor="middle" x="678" y="-940.3" font-family="Times,serif" font-size="14.00">Coin::Clp</text>
|
||||
</g>
|
||||
<!-- CoinUtils->Clp -->
|
||||
<g id="edge6" class="edge">
|
||||
<title>CoinUtils->Clp</title>
|
||||
<path fill="none" stroke="black" d="M752.66,-1115.98C745.5,-1110.63 738.33,-1104.2 733,-1097 704.65,-1058.7 689.71,-1004.33 682.86,-972.07"/>
|
||||
<polygon fill="black" stroke="black" points="686.25,-971.14 680.85,-962.02 679.39,-972.52 686.25,-971.14"/>
|
||||
</g>
|
||||
<!-- OsiClp -->
|
||||
<g id="node14" class="node">
|
||||
<title>OsiClp</title>
|
||||
<path fill="royalblue" stroke="royalblue" d="M775.5,-888C775.5,-888 694.5,-888 694.5,-888 688.5,-888 682.5,-882 682.5,-876 682.5,-876 682.5,-864 682.5,-864 682.5,-858 688.5,-852 694.5,-852 694.5,-852 775.5,-852 775.5,-852 781.5,-852 787.5,-858 787.5,-864 787.5,-864 787.5,-876 787.5,-876 787.5,-882 781.5,-888 775.5,-888"/>
|
||||
<text text-anchor="middle" x="735" y="-866.3" font-family="Times,serif" font-size="14.00">Coin::OsiClp</text>
|
||||
</g>
|
||||
<!-- CoinUtils->OsiClp -->
|
||||
<g id="edge8" class="edge">
|
||||
<title>CoinUtils->OsiClp</title>
|
||||
<path fill="none" stroke="black" d="M761.58,-1115.6C754.37,-1107.92 746.98,-1098.3 743,-1088 729.92,-1054.18 731.98,-948.64 733.81,-898.28"/>
|
||||
<polygon fill="black" stroke="black" points="737.32,-898.26 734.21,-888.13 730.32,-897.99 737.32,-898.26"/>
|
||||
</g>
|
||||
<!-- Cgl -->
|
||||
<g id="node16" class="node">
|
||||
<title>Cgl</title>
|
||||
<path fill="royalblue" stroke="royalblue" d="M811,-794C811,-794 753,-794 753,-794 747,-794 741,-788 741,-782 741,-782 741,-770 741,-770 741,-764 747,-758 753,-758 753,-758 811,-758 811,-758 817,-758 823,-764 823,-770 823,-770 823,-782 823,-782 823,-788 817,-794 811,-794"/>
|
||||
<text text-anchor="middle" x="782" y="-772.3" font-family="Times,serif" font-size="14.00">Coin::Cgl</text>
|
||||
</g>
|
||||
<!-- CoinUtils->Cgl -->
|
||||
<g id="edge12" class="edge">
|
||||
<title>CoinUtils->Cgl</title>
|
||||
<path fill="none" stroke="black" d="M829.36,-1115.79C841.91,-1109.03 854.11,-1099.95 862,-1088 873.82,-1070.1 867,-1061.45 867,-1040 867,-1040 867,-1040 867,-869 867,-839.88 843.75,-816.06 821.57,-799.95"/>
|
||||
<polygon fill="black" stroke="black" points="823.39,-796.96 813.17,-794.16 819.42,-802.72 823.39,-796.96"/>
|
||||
</g>
|
||||
<!-- Cbc -->
|
||||
<g id="node17" class="node">
|
||||
<title>Cbc</title>
|
||||
<path fill="royalblue" stroke="royalblue" d="M740.5,-700C740.5,-700 679.5,-700 679.5,-700 673.5,-700 667.5,-694 667.5,-688 667.5,-688 667.5,-676 667.5,-676 667.5,-670 673.5,-664 679.5,-664 679.5,-664 740.5,-664 740.5,-664 746.5,-664 752.5,-670 752.5,-676 752.5,-676 752.5,-688 752.5,-688 752.5,-694 746.5,-700 740.5,-700"/>
|
||||
<text text-anchor="middle" x="710" y="-678.3" font-family="Times,serif" font-size="14.00">Coin::Cbc</text>
|
||||
</g>
|
||||
<!-- CoinUtils->Cbc -->
|
||||
<g id="edge15" class="edge">
|
||||
<title>CoinUtils->Cbc</title>
|
||||
<path fill="none" stroke="black" d="M737.11,-1115.96C729.76,-1113.22 722.18,-1110.48 715,-1108 619.06,-1074.9 497,-1141.49 497,-1040 497,-1040 497,-1040 497,-775 497,-705.36 594.13,-687.82 657.21,-683.77"/>
|
||||
<polygon fill="black" stroke="black" points="657.61,-687.26 667.41,-683.22 657.23,-680.27 657.61,-687.26"/>
|
||||
</g>
|
||||
<!-- OsiCbc -->
|
||||
<g id="node18" class="node">
|
||||
<title>OsiCbc</title>
|
||||
<path fill="royalblue" stroke="royalblue" d="M868,-627C868,-627 784,-627 784,-627 778,-627 772,-621 772,-615 772,-615 772,-603 772,-603 772,-597 778,-591 784,-591 784,-591 868,-591 868,-591 874,-591 880,-597 880,-603 880,-603 880,-615 880,-615 880,-621 874,-627 868,-627"/>
|
||||
<text text-anchor="middle" x="826" y="-605.3" font-family="Times,serif" font-size="14.00">Coin::OsiCbc</text>
|
||||
</g>
|
||||
<!-- CoinUtils->OsiCbc -->
|
||||
<g id="edge19" class="edge">
|
||||
<title>CoinUtils->OsiCbc</title>
|
||||
<path fill="none" stroke="black" d="M824.9,-1115.86C836.69,-1110.5 849.16,-1104.11 860,-1097 883.44,-1081.63 887,-1068.03 887,-1040 887,-1040 887,-1040 887,-681 887,-662.25 874.61,-645.98 861,-633.77"/>
|
||||
<polygon fill="black" stroke="black" points="862.86,-630.76 852.93,-627.05 858.38,-636.14 862.86,-630.76"/>
|
||||
</g>
|
||||
<!-- Osi->Clp -->
|
||||
<g id="edge7" class="edge">
|
||||
<title>Osi->Clp</title>
|
||||
<path fill="none" stroke="black" d="M780.07,-1020.94C760.2,-1006.16 731.26,-984.62 709.26,-968.26"/>
|
||||
<polygon fill="black" stroke="black" points="711.32,-965.43 701.2,-962.26 707.14,-971.04 711.32,-965.43"/>
|
||||
</g>
|
||||
<!-- Osi->OsiClp -->
|
||||
<g id="edge9" class="edge">
|
||||
<title>Osi->OsiClp</title>
|
||||
<path fill="none" stroke="black" d="M795.98,-1020.76C784.12,-991.63 760.04,-932.49 745.94,-897.88"/>
|
||||
<polygon fill="black" stroke="black" points="749.1,-896.34 742.08,-888.4 742.61,-898.98 749.1,-896.34"/>
|
||||
</g>
|
||||
<!-- Osi->Cgl -->
|
||||
<g id="edge13" class="edge">
|
||||
<title>Osi->Cgl</title>
|
||||
<path fill="none" stroke="black" d="M808.17,-1020.95C809.73,-1015.01 811.23,-1008.27 812,-1002 820.58,-932.3 826.67,-912.67 812,-844 809,-829.94 802.81,-815.25 796.83,-803.23"/>
|
||||
<polygon fill="black" stroke="black" points="799.87,-801.48 792.15,-794.22 793.66,-804.71 799.87,-801.48"/>
|
||||
</g>
|
||||
<!-- Osi->Cbc -->
|
||||
<g id="edge16" class="edge">
|
||||
<title>Osi->Cbc</title>
|
||||
<path fill="none" stroke="black" d="M803.91,-1020.9C806.12,-976.06 810.87,-857.62 800,-844 777.74,-816.11 745.21,-852.1 722,-825 694.82,-793.26 698.28,-741.59 703.78,-710.1"/>
|
||||
<polygon fill="black" stroke="black" points="707.23,-710.74 705.69,-700.26 700.35,-709.41 707.23,-710.74"/>
|
||||
</g>
|
||||
<!-- Osi->OsiCbc -->
|
||||
<g id="edge20" class="edge">
|
||||
<title>Osi->OsiCbc</title>
|
||||
<path fill="none" stroke="black" d="M816.68,-1020.96C829.6,-1003.13 847,-973.76 847,-945 847,-945 847,-945 847,-681 847,-665.84 842.54,-649.58 837.74,-636.45"/>
|
||||
<polygon fill="black" stroke="black" points="840.97,-635.12 834.06,-627.09 834.46,-637.68 840.97,-635.12"/>
|
||||
</g>
|
||||
<!-- Clp->OsiClp -->
|
||||
<g id="edge10" class="edge">
|
||||
<title>Clp->OsiClp</title>
|
||||
<path fill="none" stroke="black" d="M691.51,-925.94C698.5,-917.1 707.18,-906.14 714.95,-896.33"/>
|
||||
<polygon fill="black" stroke="black" points="717.73,-898.45 721.19,-888.44 712.24,-894.11 717.73,-898.45"/>
|
||||
</g>
|
||||
<!-- ClpSolver -->
|
||||
<g id="node15" class="node">
|
||||
<title>ClpSolver</title>
|
||||
<path fill="royalblue" stroke="royalblue" d="M652,-888C652,-888 548,-888 548,-888 542,-888 536,-882 536,-876 536,-876 536,-864 536,-864 536,-858 542,-852 548,-852 548,-852 652,-852 652,-852 658,-852 664,-858 664,-864 664,-864 664,-876 664,-876 664,-882 658,-888 652,-888"/>
|
||||
<text text-anchor="middle" x="600" y="-866.3" font-family="Times,serif" font-size="14.00">Coin::ClpSolver</text>
|
||||
</g>
|
||||
<!-- Clp->ClpSolver -->
|
||||
<g id="edge11" class="edge">
|
||||
<title>Clp->ClpSolver</title>
|
||||
<path fill="none" stroke="black" d="M659.52,-925.94C649.58,-916.77 637.17,-905.31 626.25,-895.23"/>
|
||||
<polygon fill="black" stroke="black" points="628.34,-892.4 618.62,-888.19 623.6,-897.54 628.34,-892.4"/>
|
||||
</g>
|
||||
<!-- Clp->Cbc -->
|
||||
<g id="edge17" class="edge">
|
||||
<title>Clp->Cbc</title>
|
||||
<path fill="none" stroke="black" d="M636.92,-940.53C601.28,-935.95 551.64,-923.2 527,-888 515.79,-871.98 518.94,-861.82 527,-844 555.87,-780.15 623.96,-731.54 668.45,-705.17"/>
|
||||
<polygon fill="black" stroke="black" points="670.4,-708.08 677.29,-700.04 666.88,-702.03 670.4,-708.08"/>
|
||||
</g>
|
||||
<!-- OsiClp->Cgl -->
|
||||
<g id="edge14" class="edge">
|
||||
<title>OsiClp->Cgl</title>
|
||||
<path fill="none" stroke="black" d="M743.84,-851.7C750.8,-838.07 760.61,-818.86 768.55,-803.34"/>
|
||||
<polygon fill="black" stroke="black" points="771.77,-804.72 773.2,-794.23 765.53,-801.54 771.77,-804.72"/>
|
||||
</g>
|
||||
<!-- ClpSolver->OR_SRC -->
|
||||
<g id="edge28" class="edge">
|
||||
<title>ClpSolver->OR_SRC</title>
|
||||
<path fill="none" stroke="black" d="M546.05,-851.99C513,-837.83 477,-813.93 477,-777 477,-777 477,-777 477,-608 477,-543.85 679.56,-508.49 785.74,-494.36"/>
|
||||
<polygon fill="black" stroke="black" points="786.24,-497.82 795.7,-493.06 785.33,-490.88 786.24,-497.82"/>
|
||||
</g>
|
||||
<!-- Cgl->Cbc -->
|
||||
<g id="edge18" class="edge">
|
||||
<title>Cgl->Cbc</title>
|
||||
<path fill="none" stroke="black" d="M768.46,-757.7C757.6,-743.82 742.19,-724.14 729.93,-708.46"/>
|
||||
<polygon fill="black" stroke="black" points="732.4,-705.94 723.48,-700.23 726.89,-710.26 732.4,-705.94"/>
|
||||
</g>
|
||||
<!-- Cbc->OsiCbc -->
|
||||
<g id="edge21" class="edge">
|
||||
<title>Cbc->OsiCbc</title>
|
||||
<path fill="none" stroke="black" d="M737.78,-663.99C753.17,-654.58 772.48,-642.76 789.12,-632.57"/>
|
||||
<polygon fill="black" stroke="black" points="791.34,-635.32 798.04,-627.11 787.68,-629.35 791.34,-635.32"/>
|
||||
</g>
|
||||
<!-- CbcSolver -->
|
||||
<g id="node19" class="node">
|
||||
<title>CbcSolver</title>
|
||||
<path fill="royalblue" stroke="royalblue" d="M741.5,-627C741.5,-627 634.5,-627 634.5,-627 628.5,-627 622.5,-621 622.5,-615 622.5,-615 622.5,-603 622.5,-603 622.5,-597 628.5,-591 634.5,-591 634.5,-591 741.5,-591 741.5,-591 747.5,-591 753.5,-597 753.5,-603 753.5,-603 753.5,-615 753.5,-615 753.5,-621 747.5,-627 741.5,-627"/>
|
||||
<text text-anchor="middle" x="688" y="-605.3" font-family="Times,serif" font-size="14.00">Coin::CbcSolver</text>
|
||||
</g>
|
||||
<!-- Cbc->CbcSolver -->
|
||||
<g id="edge22" class="edge">
|
||||
<title>Cbc->CbcSolver</title>
|
||||
<path fill="none" stroke="black" d="M704.67,-663.81C702.16,-655.7 699.1,-645.84 696.3,-636.78"/>
|
||||
<polygon fill="black" stroke="black" points="699.58,-635.54 693.28,-627.03 692.89,-637.62 699.58,-635.54"/>
|
||||
</g>
|
||||
<!-- CbcSolver->OR_SRC -->
|
||||
<g id="edge29" class="edge">
|
||||
<title>CbcSolver->OR_SRC</title>
|
||||
<path fill="none" stroke="black" d="M710.73,-590.92C738.81,-569.81 786.73,-533.8 818.13,-510.2"/>
|
||||
<polygon fill="black" stroke="black" points="820.24,-512.99 826.13,-504.19 816.03,-507.4 820.24,-512.99"/>
|
||||
</g>
|
||||
<!-- SWIG_WIN -->
|
||||
<g id="node20" class="node">
|
||||
<title>SWIG_WIN</title>
|
||||
<path fill="royalblue" stroke="chocolate" d="M468,-1153C468,-1153 400,-1153 400,-1153 394,-1153 388,-1147 388,-1141 388,-1141 388,-1127 388,-1127 388,-1121 394,-1115 400,-1115 400,-1115 468,-1115 468,-1115 474,-1115 480,-1121 480,-1127 480,-1127 480,-1141 480,-1141 480,-1147 474,-1153 468,-1153"/>
|
||||
<text text-anchor="middle" x="434" y="-1137.8" font-family="Times,serif" font-size="14.00">swigwin</text>
|
||||
<text text-anchor="middle" x="434" y="-1122.8" font-family="Times,serif" font-size="14.00">(Windows)</text>
|
||||
</g>
|
||||
<!-- OR_CPP -->
|
||||
<g id="node22" class="node">
|
||||
<title>OR_CPP</title>
|
||||
<path fill="royalblue" stroke="royalblue" d="M888.5,-381C888.5,-381 787.5,-381 787.5,-381 781.5,-381 775.5,-375 775.5,-369 775.5,-369 775.5,-357 775.5,-357 775.5,-351 781.5,-345 787.5,-345 787.5,-345 888.5,-345 888.5,-345 894.5,-345 900.5,-351 900.5,-357 900.5,-357 900.5,-369 900.5,-369 900.5,-375 894.5,-381 888.5,-381"/>
|
||||
<text text-anchor="middle" x="838" y="-359.3" font-family="Times,serif" font-size="14.00">ortools::ortools</text>
|
||||
</g>
|
||||
<!-- OR_SRC->OR_CPP -->
|
||||
<g id="edge30" class="edge">
|
||||
<title>OR_SRC->OR_CPP</title>
|
||||
<path fill="none" stroke="black" d="M847.45,-467.92C845.64,-448.04 842.63,-414.92 840.49,-391.42"/>
|
||||
<polygon fill="black" stroke="black" points="843.97,-391.03 839.58,-381.38 837,-391.66 843.97,-391.03"/>
|
||||
</g>
|
||||
<!-- OR_WPY -->
|
||||
<g id="node25" class="node">
|
||||
<title>OR_WPY</title>
|
||||
<polygon fill="gold" stroke="gold" points="1098,-381 926,-381 926,-345 1104,-345 1104,-375 1098,-381"/>
|
||||
<polyline fill="none" stroke="gold" points="1098,-381 1098,-375 "/>
|
||||
<polyline fill="none" stroke="gold" points="1104,-375 1098,-375 "/>
|
||||
<text text-anchor="middle" x="1015" y="-359.3" font-family="Times,serif" font-size="14.00">C++ Python wrappers</text>
|
||||
</g>
|
||||
<!-- OR_SRC->OR_WPY -->
|
||||
<g id="edge33" class="edge">
|
||||
<title>OR_SRC->OR_WPY</title>
|
||||
<path fill="none" stroke="chocolate" d="M872.43,-467.92C901.39,-446.81 950.8,-410.8 983.18,-387.2"/>
|
||||
<polygon fill="chocolate" stroke="chocolate" points="985.4,-389.91 991.42,-381.19 981.28,-384.25 985.4,-389.91"/>
|
||||
<text text-anchor="middle" x="934" y="-438.8" font-family="Times,serif" font-size="14.00">swig</text>
|
||||
</g>
|
||||
<!-- OR_PY -->
|
||||
<g id="node26" class="node">
|
||||
<title>OR_PY</title>
|
||||
<polygon fill="gold" stroke="gold" points="1098.5,-293 1003.5,-293 1003.5,-257 1104.5,-257 1104.5,-287 1098.5,-293"/>
|
||||
<polyline fill="none" stroke="gold" points="1098.5,-293 1098.5,-287 "/>
|
||||
<polyline fill="none" stroke="gold" points="1104.5,-287 1098.5,-287 "/>
|
||||
<text text-anchor="middle" x="1054" y="-271.3" font-family="Times,serif" font-size="14.00">Python files</text>
|
||||
</g>
|
||||
<!-- OR_SRC->OR_PY -->
|
||||
<g id="edge34" class="edge">
|
||||
<title>OR_SRC->OR_PY</title>
|
||||
<path fill="none" stroke="chocolate" d="M902.06,-481.03C971.39,-474.61 1087.05,-459.27 1113,-427 1135.84,-398.6 1125.62,-379.19 1113,-345 1106.72,-327.98 1094.15,-312.32 1082.23,-300.23"/>
|
||||
<polygon fill="chocolate" stroke="chocolate" points="1084.57,-297.62 1074.95,-293.19 1079.7,-302.65 1084.57,-297.62"/>
|
||||
<text text-anchor="middle" x="1143" y="-359.3" font-family="Times,serif" font-size="14.00">swig</text>
|
||||
</g>
|
||||
<!-- OR_WJAVA -->
|
||||
<g id="node29" class="node">
|
||||
<title>OR_WJAVA</title>
|
||||
<polygon fill="crimson" stroke="crimson" points="1344,-381 1192,-381 1192,-345 1350,-345 1350,-375 1344,-381"/>
|
||||
<polyline fill="none" stroke="crimson" points="1344,-381 1344,-375 "/>
|
||||
<polyline fill="none" stroke="crimson" points="1350,-375 1344,-375 "/>
|
||||
<text text-anchor="middle" x="1271" y="-359.3" font-family="Times,serif" font-size="14.00">C++ Java wrappers</text>
|
||||
</g>
|
||||
<!-- OR_SRC->OR_WJAVA -->
|
||||
<g id="edge38" class="edge">
|
||||
<title>OR_SRC->OR_WJAVA</title>
|
||||
<path fill="none" stroke="chocolate" d="M902.07,-481.77C974.9,-476.82 1101.75,-466.2 1145,-450 1182.88,-435.81 1220.41,-407.94 1244.53,-387.77"/>
|
||||
<polygon fill="chocolate" stroke="chocolate" points="1246.83,-390.4 1252.17,-381.25 1242.29,-385.07 1246.83,-390.4"/>
|
||||
<text text-anchor="middle" x="1192" y="-438.8" font-family="Times,serif" font-size="14.00">swig</text>
|
||||
</g>
|
||||
<!-- OR_JAVA -->
|
||||
<g id="node30" class="node">
|
||||
<title>OR_JAVA</title>
|
||||
<polygon fill="crimson" stroke="crimson" points="1357,-293 1283,-293 1283,-257 1363,-257 1363,-287 1357,-293"/>
|
||||
<polyline fill="none" stroke="crimson" points="1357,-293 1357,-287 "/>
|
||||
<polyline fill="none" stroke="crimson" points="1363,-287 1357,-287 "/>
|
||||
<text text-anchor="middle" x="1323" y="-271.3" font-family="Times,serif" font-size="14.00">Java files</text>
|
||||
</g>
|
||||
<!-- OR_SRC->OR_JAVA -->
|
||||
<g id="edge39" class="edge">
|
||||
<title>OR_SRC->OR_JAVA</title>
|
||||
<path fill="none" stroke="chocolate" d="M902.21,-482.97C1026.89,-477.66 1329.65,-461.33 1359,-427 1389.41,-391.42 1361.99,-334.62 1341.21,-301.77"/>
|
||||
<polygon fill="chocolate" stroke="chocolate" points="1343.99,-299.62 1335.58,-293.17 1338.13,-303.46 1343.99,-299.62"/>
|
||||
<text text-anchor="middle" x="1389" y="-359.3" font-family="Times,serif" font-size="14.00">swig</text>
|
||||
</g>
|
||||
<!-- OR_WNET -->
|
||||
<g id="node33" class="node">
|
||||
<title>OR_WNET</title>
|
||||
<polygon fill="forestgreen" stroke="forestgreen" points="1590,-381 1438,-381 1438,-345 1596,-345 1596,-375 1590,-381"/>
|
||||
<polyline fill="none" stroke="forestgreen" points="1590,-381 1590,-375 "/>
|
||||
<polyline fill="none" stroke="forestgreen" points="1596,-375 1590,-375 "/>
|
||||
<text text-anchor="middle" x="1517" y="-359.3" font-family="Times,serif" font-size="14.00">C++ .Net wrappers</text>
|
||||
</g>
|
||||
<!-- OR_SRC->OR_WNET -->
|
||||
<g id="edge43" class="edge">
|
||||
<title>OR_SRC->OR_WNET</title>
|
||||
<path fill="none" stroke="chocolate" d="M902.22,-485.12C1020.48,-484.81 1301.74,-480.74 1391,-450 1429.47,-436.75 1467.15,-408.43 1491.13,-387.9"/>
|
||||
<polygon fill="chocolate" stroke="chocolate" points="1493.49,-390.48 1498.71,-381.27 1488.88,-385.21 1493.49,-390.48"/>
|
||||
<text text-anchor="middle" x="1438" y="-438.8" font-family="Times,serif" font-size="14.00">swig</text>
|
||||
</g>
|
||||
<!-- OR_NET -->
|
||||
<g id="node34" class="node">
|
||||
<title>OR_NET</title>
|
||||
<polygon fill="forestgreen" stroke="forestgreen" points="1511.5,-293 1436.5,-293 1436.5,-257 1517.5,-257 1517.5,-287 1511.5,-293"/>
|
||||
<polyline fill="none" stroke="forestgreen" points="1511.5,-293 1511.5,-287 "/>
|
||||
<polyline fill="none" stroke="forestgreen" points="1517.5,-287 1511.5,-287 "/>
|
||||
<text text-anchor="middle" x="1477" y="-271.3" font-family="Times,serif" font-size="14.00">.Net files</text>
|
||||
</g>
|
||||
<!-- OR_SRC->OR_NET -->
|
||||
<g id="edge44" class="edge">
|
||||
<title>OR_SRC->OR_NET</title>
|
||||
<path fill="none" stroke="chocolate" d="M902.26,-485.15C1066.92,-485.05 1559.48,-480.25 1605,-427 1628.68,-399.3 1623.68,-376.29 1605,-345 1595.99,-329.91 1558.91,-310.82 1526.96,-296.55"/>
|
||||
<polygon fill="chocolate" stroke="chocolate" points="1528.24,-293.29 1517.68,-292.47 1525.43,-299.7 1528.24,-293.29"/>
|
||||
<text text-anchor="middle" x="1637" y="-359.3" font-family="Times,serif" font-size="14.00">swig</text>
|
||||
</g>
|
||||
<!-- PKG_CPP -->
|
||||
<g id="node23" class="node">
|
||||
<title>PKG_CPP</title>
|
||||
<polygon fill="royalblue" stroke="royalblue" points="901.5,-293 776.5,-293 772.5,-289 772.5,-257 897.5,-257 901.5,-261 901.5,-293"/>
|
||||
<polyline fill="none" stroke="royalblue" points="897.5,-289 772.5,-289 "/>
|
||||
<polyline fill="none" stroke="royalblue" points="897.5,-289 897.5,-257 "/>
|
||||
<polyline fill="none" stroke="royalblue" points="897.5,-289 901.5,-293 "/>
|
||||
<text text-anchor="middle" x="837" y="-271.3" font-family="Times,serif" font-size="14.00">CMake Package</text>
|
||||
</g>
|
||||
<!-- OR_CPP->PKG_CPP -->
|
||||
<g id="edge31" class="edge">
|
||||
<title>OR_CPP->PKG_CPP</title>
|
||||
<path fill="none" stroke="dimgrey" stroke-dasharray="1,5" d="M837.8,-344.6C837.66,-332.75 837.47,-316.82 837.32,-303.29"/>
|
||||
<polygon fill="dimgrey" stroke="dimgrey" points="840.81,-303.04 837.2,-293.08 833.82,-303.12 840.81,-303.04"/>
|
||||
<text text-anchor="middle" x="852" y="-315.8" font-family="Times,serif" font-size="14.00">WIP</text>
|
||||
</g>
|
||||
<!-- EX_CPP -->
|
||||
<g id="node24" class="node">
|
||||
<title>EX_CPP</title>
|
||||
<path fill="royalblue" stroke="royalblue" d="M882,-183C882,-183 792,-183 792,-183 786,-183 780,-177 780,-171 780,-171 780,-159 780,-159 780,-153 786,-147 792,-147 792,-147 882,-147 882,-147 888,-147 894,-153 894,-159 894,-159 894,-171 894,-171 894,-177 888,-183 882,-183"/>
|
||||
<text text-anchor="middle" x="837" y="-161.3" font-family="Times,serif" font-size="14.00">C++ samples</text>
|
||||
</g>
|
||||
<!-- PKG_CPP->EX_CPP -->
|
||||
<g id="edge32" class="edge">
|
||||
<title>PKG_CPP->EX_CPP</title>
|
||||
<path fill="none" stroke="black" d="M837,-256.65C837,-239.56 837,-213.22 837,-193.32"/>
|
||||
<polygon fill="black" stroke="black" points="840.5,-193.31 837,-183.31 833.5,-193.31 840.5,-193.31"/>
|
||||
</g>
|
||||
<!-- OR_WPY->OR_PY -->
|
||||
<g id="edge35" class="edge">
|
||||
<title>OR_WPY->OR_PY</title>
|
||||
<path fill="none" stroke="black" d="M1022.89,-344.6C1028.37,-332.51 1035.78,-316.18 1041.99,-302.49"/>
|
||||
<polygon fill="black" stroke="black" points="1045.31,-303.64 1046.25,-293.08 1038.93,-300.75 1045.31,-303.64"/>
|
||||
</g>
|
||||
<!-- PKG_PY -->
|
||||
<g id="node27" class="node">
|
||||
<title>PKG_PY</title>
|
||||
<polygon fill="gold" stroke="gold" points="1116,-183 996,-183 992,-179 992,-147 1112,-147 1116,-151 1116,-183"/>
|
||||
<polyline fill="none" stroke="gold" points="1112,-179 992,-179 "/>
|
||||
<polyline fill="none" stroke="gold" points="1112,-179 1112,-147 "/>
|
||||
<polyline fill="none" stroke="gold" points="1112,-179 1116,-183 "/>
|
||||
<text text-anchor="middle" x="1054" y="-161.3" font-family="Times,serif" font-size="14.00">Wheel package</text>
|
||||
</g>
|
||||
<!-- OR_PY->PKG_PY -->
|
||||
<g id="edge36" class="edge">
|
||||
<title>OR_PY->PKG_PY</title>
|
||||
<path fill="none" stroke="gold" d="M1054,-256.65C1054,-239.56 1054,-213.22 1054,-193.32"/>
|
||||
<polygon fill="gold" stroke="gold" points="1057.5,-193.31 1054,-183.31 1050.5,-193.31 1057.5,-193.31"/>
|
||||
</g>
|
||||
<!-- EX_PY -->
|
||||
<g id="node28" class="node">
|
||||
<title>EX_PY</title>
|
||||
<path fill="gold" stroke="gold" d="M1107,-68C1107,-68 1001,-68 1001,-68 995,-68 989,-62 989,-56 989,-56 989,-44 989,-44 989,-38 995,-32 1001,-32 1001,-32 1107,-32 1107,-32 1113,-32 1119,-38 1119,-44 1119,-44 1119,-56 1119,-56 1119,-62 1113,-68 1107,-68"/>
|
||||
<text text-anchor="middle" x="1054" y="-46.3" font-family="Times,serif" font-size="14.00">Python samples</text>
|
||||
</g>
|
||||
<!-- PKG_PY->EX_PY -->
|
||||
<g id="edge37" class="edge">
|
||||
<title>PKG_PY->EX_PY</title>
|
||||
<path fill="none" stroke="black" d="M1054,-146.84C1054,-128.67 1054,-99.72 1054,-78.39"/>
|
||||
<polygon fill="black" stroke="black" points="1057.5,-78.32 1054,-68.32 1050.5,-78.32 1057.5,-78.32"/>
|
||||
</g>
|
||||
<!-- OR_WJAVA->OR_JAVA -->
|
||||
<g id="edge40" class="edge">
|
||||
<title>OR_WJAVA->OR_JAVA</title>
|
||||
<path fill="none" stroke="black" d="M1281.52,-344.6C1288.97,-332.28 1299.09,-315.55 1307.46,-301.7"/>
|
||||
<polygon fill="black" stroke="black" points="1310.49,-303.45 1312.67,-293.08 1304.5,-299.83 1310.49,-303.45"/>
|
||||
</g>
|
||||
<!-- PKG_JAVA -->
|
||||
<g id="node31" class="node">
|
||||
<title>PKG_JAVA</title>
|
||||
<polygon fill="crimson" stroke="crimson" points="1387,-183 1263,-183 1259,-179 1259,-147 1383,-147 1387,-151 1387,-183"/>
|
||||
<polyline fill="none" stroke="crimson" points="1383,-179 1259,-179 "/>
|
||||
<polyline fill="none" stroke="crimson" points="1383,-179 1383,-147 "/>
|
||||
<polyline fill="none" stroke="crimson" points="1383,-179 1387,-183 "/>
|
||||
<text text-anchor="middle" x="1323" y="-161.3" font-family="Times,serif" font-size="14.00">Maven package</text>
|
||||
</g>
|
||||
<!-- OR_JAVA->PKG_JAVA -->
|
||||
<g id="edge41" class="edge">
|
||||
<title>OR_JAVA->PKG_JAVA</title>
|
||||
<path fill="none" stroke="crimson" d="M1323,-256.65C1323,-239.56 1323,-213.22 1323,-193.32"/>
|
||||
<polygon fill="crimson" stroke="crimson" points="1326.5,-193.31 1323,-183.31 1319.5,-193.31 1326.5,-193.31"/>
|
||||
</g>
|
||||
<!-- EX_JAVA -->
|
||||
<g id="node32" class="node">
|
||||
<title>EX_JAVA</title>
|
||||
<path fill="crimson" stroke="crimson" d="M1366,-68C1366,-68 1280,-68 1280,-68 1274,-68 1268,-62 1268,-56 1268,-56 1268,-44 1268,-44 1268,-38 1274,-32 1280,-32 1280,-32 1366,-32 1366,-32 1372,-32 1378,-38 1378,-44 1378,-44 1378,-56 1378,-56 1378,-62 1372,-68 1366,-68"/>
|
||||
<text text-anchor="middle" x="1323" y="-46.3" font-family="Times,serif" font-size="14.00">Java samples</text>
|
||||
</g>
|
||||
<!-- PKG_JAVA->EX_JAVA -->
|
||||
<g id="edge42" class="edge">
|
||||
<title>PKG_JAVA->EX_JAVA</title>
|
||||
<path fill="none" stroke="black" d="M1323,-146.84C1323,-128.67 1323,-99.72 1323,-78.39"/>
|
||||
<polygon fill="black" stroke="black" points="1326.5,-78.32 1323,-68.32 1319.5,-78.32 1326.5,-78.32"/>
|
||||
</g>
|
||||
<!-- OR_WNET->OR_NET -->
|
||||
<g id="edge45" class="edge">
|
||||
<title>OR_WNET->OR_NET</title>
|
||||
<path fill="none" stroke="black" d="M1508.91,-344.6C1503.28,-332.51 1495.69,-316.18 1489.32,-302.49"/>
|
||||
<polygon fill="black" stroke="black" points="1492.34,-300.68 1484.95,-293.08 1485.99,-303.63 1492.34,-300.68"/>
|
||||
</g>
|
||||
<!-- PKG_NET_RT -->
|
||||
<g id="node35" class="node">
|
||||
<title>PKG_NET_RT</title>
|
||||
<polygon fill="forestgreen" stroke="forestgreen" points="1796,-294 1540,-294 1536,-290 1536,-256 1792,-256 1796,-260 1796,-294"/>
|
||||
<polyline fill="none" stroke="forestgreen" points="1792,-290 1536,-290 "/>
|
||||
<polyline fill="none" stroke="forestgreen" points="1792,-290 1792,-256 "/>
|
||||
<polyline fill="none" stroke="forestgreen" points="1792,-290 1796,-294 "/>
|
||||
<text text-anchor="middle" x="1666" y="-278.8" font-family="Times,serif" font-size="14.00">Nuget runtime package</text>
|
||||
<text text-anchor="middle" x="1666" y="-263.8" font-family="Times,serif" font-size="14.00">Google.OrTools.runtime.rid.nupkg</text>
|
||||
</g>
|
||||
<!-- OR_WNET->PKG_NET_RT -->
|
||||
<g id="edge46" class="edge">
|
||||
<title>OR_WNET->PKG_NET_RT</title>
|
||||
<path fill="none" stroke="black" d="M1546.79,-344.8C1569.49,-331.71 1600.96,-313.54 1625.87,-299.17"/>
|
||||
<polygon fill="black" stroke="black" points="1627.81,-302.09 1634.72,-294.06 1624.31,-296.02 1627.81,-302.09"/>
|
||||
</g>
|
||||
<!-- PKG_NET -->
|
||||
<g id="node36" class="node">
|
||||
<title>PKG_NET</title>
|
||||
<polygon fill="forestgreen" stroke="forestgreen" points="1671,-184 1501,-184 1497,-180 1497,-146 1667,-146 1671,-150 1671,-184"/>
|
||||
<polyline fill="none" stroke="forestgreen" points="1667,-180 1497,-180 "/>
|
||||
<polyline fill="none" stroke="forestgreen" points="1667,-180 1667,-146 "/>
|
||||
<polyline fill="none" stroke="forestgreen" points="1667,-180 1671,-184 "/>
|
||||
<text text-anchor="middle" x="1584" y="-168.8" font-family="Times,serif" font-size="14.00">Nuget package</text>
|
||||
<text text-anchor="middle" x="1584" y="-153.8" font-family="Times,serif" font-size="14.00">Google.OrTools.nupkg</text>
|
||||
</g>
|
||||
<!-- OR_NET->PKG_NET -->
|
||||
<g id="edge47" class="edge">
|
||||
<title>OR_NET->PKG_NET</title>
|
||||
<path fill="none" stroke="black" d="M1494.19,-256.65C1511.69,-238.99 1538.99,-211.43 1558.9,-191.33"/>
|
||||
<polygon fill="black" stroke="black" points="1561.59,-193.6 1566.14,-184.03 1556.61,-188.67 1561.59,-193.6"/>
|
||||
</g>
|
||||
<!-- PKG_NET_RT->PKG_NET -->
|
||||
<g id="edge48" class="edge">
|
||||
<title>PKG_NET_RT->PKG_NET</title>
|
||||
<path fill="none" stroke="forestgreen" d="M1652.09,-255.68C1638.88,-238.27 1618.86,-211.92 1603.95,-192.28"/>
|
||||
<polygon fill="forestgreen" stroke="forestgreen" points="1606.54,-189.9 1597.7,-184.05 1600.96,-194.13 1606.54,-189.9"/>
|
||||
</g>
|
||||
<!-- EX_NET -->
|
||||
<g id="node37" class="node">
|
||||
<title>EX_NET</title>
|
||||
<path fill="forestgreen" stroke="forestgreen" d="M1627,-68C1627,-68 1541,-68 1541,-68 1535,-68 1529,-62 1529,-56 1529,-56 1529,-44 1529,-44 1529,-38 1535,-32 1541,-32 1541,-32 1627,-32 1627,-32 1633,-32 1639,-38 1639,-44 1639,-44 1639,-56 1639,-56 1639,-62 1633,-68 1627,-68"/>
|
||||
<text text-anchor="middle" x="1584" y="-46.3" font-family="Times,serif" font-size="14.00">.Net samples</text>
|
||||
</g>
|
||||
<!-- PKG_NET->EX_NET -->
|
||||
<g id="edge49" class="edge">
|
||||
<title>PKG_NET->EX_NET</title>
|
||||
<path fill="none" stroke="black" d="M1584,-145.84C1584,-127.57 1584,-99.16 1584,-78.19"/>
|
||||
<polygon fill="black" stroke="black" points="1587.5,-78 1584,-68 1580.5,-78 1587.5,-78"/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 42 KiB |
292
cmake/doc/deps.svg
Normal file
292
cmake/doc/deps.svg
Normal file
@@ -0,0 +1,292 @@
|
||||
<?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: CMakeDeps Pages: 1 -->
|
||||
<svg width="1075pt" height="614pt"
|
||||
viewBox="0.00 0.00 1075.00 614.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 610)">
|
||||
<title>CMakeDeps</title>
|
||||
<polygon fill="white" stroke="transparent" points="-4,4 -4,-610 1071,-610 1071,4 -4,4"/>
|
||||
<g id="clust1" class="cluster">
|
||||
<title>clusterZLIB</title>
|
||||
<polygon fill="none" stroke="royalblue" points="250,-171 250,-246 482,-246 482,-171 250,-171"/>
|
||||
<text text-anchor="middle" x="366" y="-230.8" font-family="Times,serif" font-size="14.00">madler/zlib.git + cmake patch</text>
|
||||
</g>
|
||||
<g id="clust2" class="cluster">
|
||||
<title>clusterAbsl</title>
|
||||
<polygon fill="none" stroke="royalblue" points="83,-171 83,-246 242,-246 242,-171 83,-171"/>
|
||||
<text text-anchor="middle" x="162.5" y="-230.8" font-family="Times,serif" font-size="14.00">abseil/abseil-cpp.git</text>
|
||||
</g>
|
||||
<g id="clust3" class="cluster">
|
||||
<title>clusterGFlags</title>
|
||||
<polygon fill="none" stroke="royalblue" points="924,-492 924,-567 1055,-567 1055,-492 924,-492"/>
|
||||
<text text-anchor="middle" x="989.5" y="-551.8" font-family="Times,serif" font-size="14.00">gflags/gflags.git</text>
|
||||
</g>
|
||||
<g id="clust4" class="cluster">
|
||||
<title>clusterGLog</title>
|
||||
<polygon fill="none" stroke="royalblue" points="936,-409 936,-484 1059,-484 1059,-409 936,-409"/>
|
||||
<text text-anchor="middle" x="997.5" y="-468.8" font-family="Times,serif" font-size="14.00">google/glog.git</text>
|
||||
</g>
|
||||
<g id="clust5" class="cluster">
|
||||
<title>clusterProtobuf</title>
|
||||
<polygon fill="none" stroke="royalblue" points="8,-88 8,-163 342,-163 342,-88 8,-88"/>
|
||||
<text text-anchor="middle" x="175" y="-147.8" font-family="Times,serif" font-size="14.00">protocolbuffers/protobuf.git</text>
|
||||
</g>
|
||||
<g id="clust6" class="cluster">
|
||||
<title>clusterCoinOR</title>
|
||||
<polygon fill="none" stroke="royalblue" points="490,-8 490,-598 916,-598 916,-8 490,-8"/>
|
||||
<text text-anchor="middle" x="703" y="-582.8" font-family="Times,serif" font-size="14.00">-DUSE_COINOR=ON AND -DBUILD_DEPS=ON</text>
|
||||
</g>
|
||||
<g id="clust7" class="cluster">
|
||||
<title>clusterCoinUtils</title>
|
||||
<polygon fill="none" stroke="royalblue" points="741,-492 741,-567 883,-567 883,-492 741,-492"/>
|
||||
<text text-anchor="middle" x="812" y="-551.8" font-family="Times,serif" font-size="14.00">CoinUtils.git</text>
|
||||
</g>
|
||||
<g id="clust8" class="cluster">
|
||||
<title>clusterOsi</title>
|
||||
<polygon fill="none" stroke="royalblue" points="738,-409 738,-484 836,-484 836,-409 738,-409"/>
|
||||
<text text-anchor="middle" x="787" y="-468.8" font-family="Times,serif" font-size="14.00">Osi.git</text>
|
||||
</g>
|
||||
<g id="clust9" class="cluster">
|
||||
<title>clusterClp</title>
|
||||
<polygon fill="none" stroke="royalblue" points="550,-254 550,-401 818,-401 818,-254 550,-254"/>
|
||||
<text text-anchor="middle" x="684" y="-385.8" font-family="Times,serif" font-size="14.00">Clp.git</text>
|
||||
</g>
|
||||
<g id="clust10" class="cluster">
|
||||
<title>clusterCgl</title>
|
||||
<polygon fill="none" stroke="royalblue" points="733,-171 733,-246 831,-246 831,-171 733,-171"/>
|
||||
<text text-anchor="middle" x="782" y="-230.8" font-family="Times,serif" font-size="14.00">Cgl.git</text>
|
||||
</g>
|
||||
<g id="clust11" class="cluster">
|
||||
<title>clusterCbc</title>
|
||||
<polygon fill="none" stroke="royalblue" points="498,-16 498,-163 772,-163 772,-16 498,-16"/>
|
||||
<text text-anchor="middle" x="635" y="-147.8" font-family="Times,serif" font-size="14.00">Cbc.git</text>
|
||||
</g>
|
||||
<!-- ZLIB -->
|
||||
<g id="node1" class="node">
|
||||
<title>ZLIB</title>
|
||||
<path fill="royalblue" stroke="royalblue" d="M351.5,-215C351.5,-215 280.5,-215 280.5,-215 274.5,-215 268.5,-209 268.5,-203 268.5,-203 268.5,-191 268.5,-191 268.5,-185 274.5,-179 280.5,-179 280.5,-179 351.5,-179 351.5,-179 357.5,-179 363.5,-185 363.5,-191 363.5,-191 363.5,-203 363.5,-203 363.5,-209 357.5,-215 351.5,-215"/>
|
||||
<text text-anchor="middle" x="316" y="-193.3" font-family="Times,serif" font-size="14.00">ZLIB::ZLIB</text>
|
||||
</g>
|
||||
<!-- Protobuf -->
|
||||
<g id="node5" class="node">
|
||||
<title>Protobuf</title>
|
||||
<path fill="royalblue" stroke="royalblue" d="M322.5,-132C322.5,-132 179.5,-132 179.5,-132 173.5,-132 167.5,-126 167.5,-120 167.5,-120 167.5,-108 167.5,-108 167.5,-102 173.5,-96 179.5,-96 179.5,-96 322.5,-96 322.5,-96 328.5,-96 334.5,-102 334.5,-108 334.5,-108 334.5,-120 334.5,-120 334.5,-126 328.5,-132 322.5,-132"/>
|
||||
<text text-anchor="middle" x="251" y="-110.3" font-family="Times,serif" font-size="14.00">protobuf::libprotobuf</text>
|
||||
</g>
|
||||
<!-- ZLIB->Protobuf -->
|
||||
<g id="edge19" class="edge">
|
||||
<title>ZLIB->Protobuf</title>
|
||||
<path fill="none" stroke="black" d="M302.22,-178.82C293.17,-167.55 281.18,-152.61 271.08,-140.02"/>
|
||||
<polygon fill="black" stroke="black" points="273.75,-137.76 264.76,-132.15 268.29,-142.14 273.75,-137.76"/>
|
||||
</g>
|
||||
<!-- Cbc -->
|
||||
<g id="node13" class="node">
|
||||
<title>Cbc</title>
|
||||
<path fill="royalblue" stroke="royalblue" d="M579.5,-132C579.5,-132 518.5,-132 518.5,-132 512.5,-132 506.5,-126 506.5,-120 506.5,-120 506.5,-108 506.5,-108 506.5,-102 512.5,-96 518.5,-96 518.5,-96 579.5,-96 579.5,-96 585.5,-96 591.5,-102 591.5,-108 591.5,-108 591.5,-120 591.5,-120 591.5,-126 585.5,-132 579.5,-132"/>
|
||||
<text text-anchor="middle" x="549" y="-110.3" font-family="Times,serif" font-size="14.00">Coin::Cbc</text>
|
||||
</g>
|
||||
<!-- ZLIB->Cbc -->
|
||||
<g id="edge20" class="edge">
|
||||
<title>ZLIB->Cbc</title>
|
||||
<path fill="none" stroke="black" d="M363.71,-179.41C402.46,-165.94 457.02,-146.98 496.9,-133.11"/>
|
||||
<polygon fill="black" stroke="black" points="498.15,-136.38 506.44,-129.79 495.85,-129.77 498.15,-136.38"/>
|
||||
</g>
|
||||
<!-- Absl -->
|
||||
<g id="node2" class="node">
|
||||
<title>Absl</title>
|
||||
<path fill="royalblue" stroke="royalblue" d="M222,-215C222,-215 148,-215 148,-215 142,-215 136,-209 136,-203 136,-203 136,-191 136,-191 136,-185 142,-179 148,-179 148,-179 222,-179 222,-179 228,-179 234,-185 234,-191 234,-191 234,-203 234,-203 234,-209 228,-215 222,-215"/>
|
||||
<text text-anchor="middle" x="185" y="-193.3" font-family="Times,serif" font-size="14.00">absl::absl_*</text>
|
||||
</g>
|
||||
<!-- Absl->Protobuf -->
|
||||
<g id="edge21" class="edge">
|
||||
<title>Absl->Protobuf</title>
|
||||
<path fill="none" stroke="black" d="M199,-178.82C208.18,-167.55 220.35,-152.61 230.61,-140.02"/>
|
||||
<polygon fill="black" stroke="black" points="233.42,-142.12 237.02,-132.15 227.99,-137.69 233.42,-142.12"/>
|
||||
</g>
|
||||
<!-- GFlags -->
|
||||
<g id="node3" class="node">
|
||||
<title>GFlags</title>
|
||||
<path fill="royalblue" stroke="royalblue" d="M1032.5,-536C1032.5,-536 945.5,-536 945.5,-536 939.5,-536 933.5,-530 933.5,-524 933.5,-524 933.5,-512 933.5,-512 933.5,-506 939.5,-500 945.5,-500 945.5,-500 1032.5,-500 1032.5,-500 1038.5,-500 1044.5,-506 1044.5,-512 1044.5,-512 1044.5,-524 1044.5,-524 1044.5,-530 1038.5,-536 1032.5,-536"/>
|
||||
<text text-anchor="middle" x="989" y="-514.3" font-family="Times,serif" font-size="14.00">gflags::gflags</text>
|
||||
</g>
|
||||
<!-- GLog -->
|
||||
<g id="node4" class="node">
|
||||
<title>GLog</title>
|
||||
<path fill="royalblue" stroke="royalblue" d="M1020.5,-453C1020.5,-453 957.5,-453 957.5,-453 951.5,-453 945.5,-447 945.5,-441 945.5,-441 945.5,-429 945.5,-429 945.5,-423 951.5,-417 957.5,-417 957.5,-417 1020.5,-417 1020.5,-417 1026.5,-417 1032.5,-423 1032.5,-429 1032.5,-429 1032.5,-441 1032.5,-441 1032.5,-447 1026.5,-453 1020.5,-453"/>
|
||||
<text text-anchor="middle" x="989" y="-431.3" font-family="Times,serif" font-size="14.00">glog::glog</text>
|
||||
</g>
|
||||
<!-- GFlags->GLog -->
|
||||
<g id="edge22" class="edge">
|
||||
<title>GFlags->GLog</title>
|
||||
<path fill="none" stroke="black" d="M989,-499.82C989,-489.19 989,-475.31 989,-463.2"/>
|
||||
<polygon fill="black" stroke="black" points="992.5,-463.15 989,-453.15 985.5,-463.15 992.5,-463.15"/>
|
||||
</g>
|
||||
<!-- Protoc -->
|
||||
<g id="node6" class="node">
|
||||
<title>Protoc</title>
|
||||
<polygon fill="royalblue" stroke="royalblue" points="149.5,-132 16.5,-132 16.5,-128 12.5,-128 12.5,-124 16.5,-124 16.5,-104 12.5,-104 12.5,-100 16.5,-100 16.5,-96 149.5,-96 149.5,-132"/>
|
||||
<polyline fill="none" stroke="royalblue" points="16.5,-128 20.5,-128 20.5,-124 16.5,-124 "/>
|
||||
<polyline fill="none" stroke="royalblue" points="16.5,-104 20.5,-104 20.5,-100 16.5,-100 "/>
|
||||
<text text-anchor="middle" x="83" y="-110.3" font-family="Times,serif" font-size="14.00">protobuf::protoc</text>
|
||||
</g>
|
||||
<!-- CoinUtils -->
|
||||
<g id="node7" class="node">
|
||||
<title>CoinUtils</title>
|
||||
<path fill="royalblue" stroke="royalblue" d="M862.5,-536C862.5,-536 761.5,-536 761.5,-536 755.5,-536 749.5,-530 749.5,-524 749.5,-524 749.5,-512 749.5,-512 749.5,-506 755.5,-500 761.5,-500 761.5,-500 862.5,-500 862.5,-500 868.5,-500 874.5,-506 874.5,-512 874.5,-512 874.5,-524 874.5,-524 874.5,-530 868.5,-536 862.5,-536"/>
|
||||
<text text-anchor="middle" x="812" y="-514.3" font-family="Times,serif" font-size="14.00">Coin::CoinUtils</text>
|
||||
</g>
|
||||
<!-- Osi -->
|
||||
<g id="node8" class="node">
|
||||
<title>Osi</title>
|
||||
<path fill="royalblue" stroke="royalblue" d="M815.5,-453C815.5,-453 758.5,-453 758.5,-453 752.5,-453 746.5,-447 746.5,-441 746.5,-441 746.5,-429 746.5,-429 746.5,-423 752.5,-417 758.5,-417 758.5,-417 815.5,-417 815.5,-417 821.5,-417 827.5,-423 827.5,-429 827.5,-429 827.5,-441 827.5,-441 827.5,-447 821.5,-453 815.5,-453"/>
|
||||
<text text-anchor="middle" x="787" y="-431.3" font-family="Times,serif" font-size="14.00">Coin::Osi</text>
|
||||
</g>
|
||||
<!-- CoinUtils->Osi -->
|
||||
<g id="edge1" class="edge">
|
||||
<title>CoinUtils->Osi</title>
|
||||
<path fill="none" stroke="black" d="M806.7,-499.82C803.38,-489.08 799.04,-475.03 795.28,-462.84"/>
|
||||
<polygon fill="black" stroke="black" points="798.59,-461.68 792.29,-453.15 791.9,-463.74 798.59,-461.68"/>
|
||||
</g>
|
||||
<!-- Clp -->
|
||||
<g id="node9" class="node">
|
||||
<title>Clp</title>
|
||||
<path fill="royalblue" stroke="royalblue" d="M756,-370C756,-370 698,-370 698,-370 692,-370 686,-364 686,-358 686,-358 686,-346 686,-346 686,-340 692,-334 698,-334 698,-334 756,-334 756,-334 762,-334 768,-340 768,-346 768,-346 768,-358 768,-358 768,-364 762,-370 756,-370"/>
|
||||
<text text-anchor="middle" x="727" y="-348.3" font-family="Times,serif" font-size="14.00">Coin::Clp</text>
|
||||
</g>
|
||||
<!-- CoinUtils->Clp -->
|
||||
<g id="edge2" class="edge">
|
||||
<title>CoinUtils->Clp</title>
|
||||
<path fill="none" stroke="black" d="M751.47,-499.92C744.67,-495.72 738.56,-490.5 734,-484 712.65,-453.58 715.67,-408.73 720.67,-380.19"/>
|
||||
<polygon fill="black" stroke="black" points="724.16,-380.6 722.64,-370.12 717.29,-379.26 724.16,-380.6"/>
|
||||
</g>
|
||||
<!-- OsiClp -->
|
||||
<g id="node10" class="node">
|
||||
<title>OsiClp</title>
|
||||
<path fill="royalblue" stroke="royalblue" d="M797.5,-298C797.5,-298 716.5,-298 716.5,-298 710.5,-298 704.5,-292 704.5,-286 704.5,-286 704.5,-274 704.5,-274 704.5,-268 710.5,-262 716.5,-262 716.5,-262 797.5,-262 797.5,-262 803.5,-262 809.5,-268 809.5,-274 809.5,-274 809.5,-286 809.5,-286 809.5,-292 803.5,-298 797.5,-298"/>
|
||||
<text text-anchor="middle" x="757" y="-276.3" font-family="Times,serif" font-size="14.00">Coin::OsiClp</text>
|
||||
</g>
|
||||
<!-- CoinUtils->OsiClp -->
|
||||
<g id="edge4" class="edge">
|
||||
<title>CoinUtils->OsiClp</title>
|
||||
<path fill="none" stroke="black" d="M830.57,-499.65C834.42,-494.98 837.93,-489.64 840,-484 851.49,-452.71 849.46,-440.96 840,-409 828.25,-369.3 799.9,-330.35 779.61,-306.05"/>
|
||||
<polygon fill="black" stroke="black" points="782.22,-303.72 773.07,-298.38 776.9,-308.26 782.22,-303.72"/>
|
||||
</g>
|
||||
<!-- Cgl -->
|
||||
<g id="node12" class="node">
|
||||
<title>Cgl</title>
|
||||
<path fill="royalblue" stroke="royalblue" d="M811,-215C811,-215 753,-215 753,-215 747,-215 741,-209 741,-203 741,-203 741,-191 741,-191 741,-185 747,-179 753,-179 753,-179 811,-179 811,-179 817,-179 823,-185 823,-191 823,-191 823,-203 823,-203 823,-209 817,-215 811,-215"/>
|
||||
<text text-anchor="middle" x="782" y="-193.3" font-family="Times,serif" font-size="14.00">Coin::Cgl</text>
|
||||
</g>
|
||||
<!-- CoinUtils->Cgl -->
|
||||
<g id="edge8" class="edge">
|
||||
<title>CoinUtils->Cgl</title>
|
||||
<path fill="none" stroke="black" d="M836.52,-499.75C841.18,-495.2 845.41,-489.9 848,-484 865.43,-444.39 845.97,-283.24 833,-254 827.79,-242.26 819.14,-231.33 810.42,-222.3"/>
|
||||
<polygon fill="black" stroke="black" points="812.75,-219.68 803.16,-215.18 807.85,-224.68 812.75,-219.68"/>
|
||||
</g>
|
||||
<!-- CoinUtils->Cbc -->
|
||||
<g id="edge11" class="edge">
|
||||
<title>CoinUtils->Cbc</title>
|
||||
<path fill="none" stroke="black" d="M749.41,-511.89C658.07,-500.64 499,-464.96 499,-353 499,-353 499,-353 499,-279 499,-230.65 495.34,-216.38 512,-171 515.96,-160.22 522.35,-149.45 528.71,-140.27"/>
|
||||
<polygon fill="black" stroke="black" points="531.67,-142.15 534.73,-132.01 526.01,-138.03 531.67,-142.15"/>
|
||||
</g>
|
||||
<!-- OsiCbc -->
|
||||
<g id="node14" class="node">
|
||||
<title>OsiCbc</title>
|
||||
<path fill="royalblue" stroke="royalblue" d="M752,-60C752,-60 668,-60 668,-60 662,-60 656,-54 656,-48 656,-48 656,-36 656,-36 656,-30 662,-24 668,-24 668,-24 752,-24 752,-24 758,-24 764,-30 764,-36 764,-36 764,-48 764,-48 764,-54 758,-60 752,-60"/>
|
||||
<text text-anchor="middle" x="710" y="-38.3" font-family="Times,serif" font-size="14.00">Coin::OsiCbc</text>
|
||||
</g>
|
||||
<!-- CoinUtils->OsiCbc -->
|
||||
<g id="edge15" class="edge">
|
||||
<title>CoinUtils->OsiCbc</title>
|
||||
<path fill="none" stroke="black" d="M839.7,-499.93C845.65,-495.31 851.5,-489.93 856,-484 893.78,-434.23 907,-415.48 907,-353 907,-353 907,-353 907,-196 907,-138.06 879.69,-123.63 834,-88 816.46,-74.32 794.38,-64.55 773.73,-57.68"/>
|
||||
<polygon fill="black" stroke="black" points="774.64,-54.3 764.05,-54.63 772.54,-60.97 774.64,-54.3"/>
|
||||
</g>
|
||||
<!-- Osi->Clp -->
|
||||
<g id="edge3" class="edge">
|
||||
<title>Osi->Clp</title>
|
||||
<path fill="none" stroke="black" d="M774.28,-416.82C766,-405.65 755.07,-390.9 745.8,-378.38"/>
|
||||
<polygon fill="black" stroke="black" points="748.47,-376.11 739.71,-370.15 742.85,-380.27 748.47,-376.11"/>
|
||||
</g>
|
||||
<!-- Osi->OsiClp -->
|
||||
<g id="edge5" class="edge">
|
||||
<title>Osi->OsiClp</title>
|
||||
<path fill="none" stroke="black" d="M786.64,-416.79C785.91,-396.69 783.69,-362.54 777,-334 774.96,-325.29 771.84,-316.07 768.67,-307.81"/>
|
||||
<polygon fill="black" stroke="black" points="771.83,-306.28 764.85,-298.31 765.33,-308.89 771.83,-306.28"/>
|
||||
</g>
|
||||
<!-- Osi->Cgl -->
|
||||
<g id="edge9" class="edge">
|
||||
<title>Osi->Cgl</title>
|
||||
<path fill="none" stroke="black" d="M810.49,-417C815.16,-412.38 819.42,-406.98 822,-401 847.89,-341.01 841.94,-316.22 822,-254 818.43,-242.85 811.73,-232.03 804.82,-222.92"/>
|
||||
<polygon fill="black" stroke="black" points="807.5,-220.67 798.5,-215.08 802.05,-225.06 807.5,-220.67"/>
|
||||
</g>
|
||||
<!-- Osi->Cbc -->
|
||||
<g id="edge12" class="edge">
|
||||
<title>Osi->Cbc</title>
|
||||
<path fill="none" stroke="black" d="M746.2,-433.99C685.09,-433.08 573.95,-427.68 546,-401 508.86,-365.54 513.3,-221.22 524,-171 526.17,-160.8 530.35,-150.2 534.67,-141.01"/>
|
||||
<polygon fill="black" stroke="black" points="537.82,-142.52 539.15,-132.01 531.56,-139.4 537.82,-142.52"/>
|
||||
</g>
|
||||
<!-- Osi->OsiCbc -->
|
||||
<g id="edge16" class="edge">
|
||||
<title>Osi->OsiCbc</title>
|
||||
<path fill="none" stroke="black" d="M818.74,-416.95C824.85,-412.45 830.69,-407.11 835,-401 866.83,-355.9 867,-336.2 867,-281 867,-281 867,-281 867,-196 867,-134.27 803.98,-89.35 757.8,-64.71"/>
|
||||
<polygon fill="black" stroke="black" points="759.3,-61.55 748.81,-60.06 756.08,-67.76 759.3,-61.55"/>
|
||||
</g>
|
||||
<!-- Clp->OsiClp -->
|
||||
<g id="edge6" class="edge">
|
||||
<title>Clp->OsiClp</title>
|
||||
<path fill="none" stroke="black" d="M734.42,-333.7C737.79,-325.81 741.87,-316.3 745.62,-307.55"/>
|
||||
<polygon fill="black" stroke="black" points="748.95,-308.67 749.67,-298.1 742.51,-305.92 748.95,-308.67"/>
|
||||
</g>
|
||||
<!-- ClpSolver -->
|
||||
<g id="node11" class="node">
|
||||
<title>ClpSolver</title>
|
||||
<path fill="royalblue" stroke="royalblue" d="M674,-298C674,-298 570,-298 570,-298 564,-298 558,-292 558,-286 558,-286 558,-274 558,-274 558,-268 564,-262 570,-262 570,-262 674,-262 674,-262 680,-262 686,-268 686,-274 686,-274 686,-286 686,-286 686,-292 680,-298 674,-298"/>
|
||||
<text text-anchor="middle" x="622" y="-276.3" font-family="Times,serif" font-size="14.00">Coin::ClpSolver</text>
|
||||
</g>
|
||||
<!-- Clp->ClpSolver -->
|
||||
<g id="edge7" class="edge">
|
||||
<title>Clp->ClpSolver</title>
|
||||
<path fill="none" stroke="black" d="M701.31,-333.88C687.71,-324.81 670.83,-313.55 656.14,-303.76"/>
|
||||
<polygon fill="black" stroke="black" points="658.05,-300.82 647.78,-298.19 654.16,-306.65 658.05,-300.82"/>
|
||||
</g>
|
||||
<!-- Clp->Cbc -->
|
||||
<g id="edge13" class="edge">
|
||||
<title>Clp->Cbc</title>
|
||||
<path fill="none" stroke="black" d="M685.78,-344.51C638.5,-336.13 565.38,-319.97 549,-298 514.98,-252.37 528.57,-180.98 539.8,-142.23"/>
|
||||
<polygon fill="black" stroke="black" points="543.29,-142.81 542.87,-132.22 536.59,-140.76 543.29,-142.81"/>
|
||||
</g>
|
||||
<!-- OsiClp->Cgl -->
|
||||
<g id="edge10" class="edge">
|
||||
<title>OsiClp->Cgl</title>
|
||||
<path fill="none" stroke="black" d="M762.3,-261.82C765.62,-251.08 769.96,-237.03 773.72,-224.84"/>
|
||||
<polygon fill="black" stroke="black" points="777.1,-225.74 776.71,-215.15 770.41,-223.68 777.1,-225.74"/>
|
||||
</g>
|
||||
<!-- Cgl->Cbc -->
|
||||
<g id="edge14" class="edge">
|
||||
<title>Cgl->Cbc</title>
|
||||
<path fill="none" stroke="black" d="M740.88,-181.71C701.97,-168.18 643.41,-147.82 601.22,-133.15"/>
|
||||
<polygon fill="black" stroke="black" points="602.27,-129.81 591.68,-129.84 599.97,-136.43 602.27,-129.81"/>
|
||||
</g>
|
||||
<!-- Cbc->OsiCbc -->
|
||||
<g id="edge17" class="edge">
|
||||
<title>Cbc->OsiCbc</title>
|
||||
<path fill="none" stroke="black" d="M588.39,-95.88C610.39,-86.31 638.01,-74.3 661.36,-64.15"/>
|
||||
<polygon fill="black" stroke="black" points="662.97,-67.27 670.74,-60.07 660.18,-60.85 662.97,-67.27"/>
|
||||
</g>
|
||||
<!-- CbcSolver -->
|
||||
<g id="node15" class="node">
|
||||
<title>CbcSolver</title>
|
||||
<path fill="royalblue" stroke="royalblue" d="M625.5,-60C625.5,-60 518.5,-60 518.5,-60 512.5,-60 506.5,-54 506.5,-48 506.5,-48 506.5,-36 506.5,-36 506.5,-30 512.5,-24 518.5,-24 518.5,-24 625.5,-24 625.5,-24 631.5,-24 637.5,-30 637.5,-36 637.5,-36 637.5,-48 637.5,-48 637.5,-54 631.5,-60 625.5,-60"/>
|
||||
<text text-anchor="middle" x="572" y="-38.3" font-family="Times,serif" font-size="14.00">Coin::CbcSolver</text>
|
||||
</g>
|
||||
<!-- Cbc->CbcSolver -->
|
||||
<g id="edge18" class="edge">
|
||||
<title>Cbc->CbcSolver</title>
|
||||
<path fill="none" stroke="black" d="M554.69,-95.7C557.25,-87.9 560.33,-78.51 563.18,-69.83"/>
|
||||
<polygon fill="black" stroke="black" points="566.58,-70.7 566.38,-60.1 559.93,-68.51 566.58,-70.7"/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 18 KiB |
85
cmake/doc/docker.dot
Normal file
85
cmake/doc/docker.dot
Normal file
@@ -0,0 +1,85 @@
|
||||
@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:<distro>_base\nbase"];
|
||||
SWIG_IMG [label="ortools:<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:<distro>_<lang>_env\nenv"];
|
||||
LANGDEVEL_IMG [label="ortools:<distro>_<lang>_devel\ndevel"];
|
||||
LANGBUILD_IMG [label="ortools:<distro>_<lang>_build\nbuild"];
|
||||
LANGTEST_IMG [label="ortools:<distro>_<lang>_test\ntest"];
|
||||
LANGINSTALLENV_IMG [label="ortools:<distro>_<lang>_install_env\ninstall_env"];
|
||||
LANGINSTALLDEVEL_IMG [label="ortools:<distro>_<lang>_install_devel\ninstall_devel"];
|
||||
LANGINSTALLBUILD_IMG [label="ortools:<distro>_<lang>_install_build\ninstall_build"];
|
||||
LANGINSTALLTEST_IMG [label="ortools:<distro>_<lang>_install_test\ninstall_test"];
|
||||
|
||||
LANGENV_IMG -> LANGDEVEL_IMG;
|
||||
LANGDEVEL_IMG -> LANGBUILD_IMG;
|
||||
LANGBUILD_IMG -> LANGTEST_IMG;
|
||||
LANGBUILD_IMG -> LANGINSTALLENV_IMG [label="copy install", style="dashed"];
|
||||
LANGENV_IMG -> LANGINSTALLENV_IMG;
|
||||
LANGINSTALLENV_IMG -> LANGINSTALLDEVEL_IMG;
|
||||
LANGINSTALLDEVEL_IMG -> LANGINSTALLBUILD_IMG;
|
||||
LANGINSTALLBUILD_IMG -> LANGINSTALLTEST_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"];
|
||||
SAMPLE -> LANGINSTALLDEVEL_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"];
|
||||
LANGINSTALLENV_TAR [label="docker_<lang>_install_env.tar"];
|
||||
LANGINSTALLDEVEL_TAR [label="docker_<lang>_install_devel.tar"];
|
||||
LANGINSTALLBUILD_TAR [label="docker_<lang>_install_build.tar"];
|
||||
LANGINSTALLTEST_TAR [label="docker_<lang>_install_test.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"];
|
||||
LANGINSTALLENV_IMG -> LANGINSTALLENV_TAR [label="make save_<distro>_<lang>_install_env"];
|
||||
LANGINSTALLDEVEL_IMG -> LANGINSTALLDEVEL_TAR [label="make save_<distro>_<lang>_install_devel"];
|
||||
LANGINSTALLBUILD_IMG -> LANGINSTALLBUILD_TAR [label="make save_<distro>_<lang>_install_build"];
|
||||
LANGINSTALLTEST_IMG -> LANGINSTALLTEST_TAR [label="make save_<distro>_<lang>_install_test"];
|
||||
|
||||
color=royalblue;
|
||||
label = "cache/<distro>/";
|
||||
}
|
||||
}
|
||||
@enddot
|
||||
426
cmake/doc/docker.svg
Normal file
426
cmake/doc/docker.svg
Normal file
@@ -0,0 +1,426 @@
|
||||
<?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="2371pt" height="1113pt"
|
||||
viewBox="0.00 0.00 2371.00 1113.25" 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 1109.25)">
|
||||
<title>DockerDeps</title>
|
||||
<polygon fill="white" stroke="transparent" points="-4,4 -4,-1109.25 2367,-1109.25 2367,4 -4,4"/>
|
||||
<g id="clust1" class="cluster">
|
||||
<title>clusterDockerfile</title>
|
||||
<polygon fill="none" stroke="royalblue" points="1853,-845.75 1853,-1026.25 2065,-1026.25 2065,-845.75 1853,-845.75"/>
|
||||
<text text-anchor="middle" x="1959" y="-1011.05" 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="797,-116 797,-812.75 1345,-812.75 1345,-116 797,-116"/>
|
||||
<text text-anchor="middle" x="1071" y="-797.55" 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="8,-8 8,-83 2170,-83 2170,-8 8,-8"/>
|
||||
<text text-anchor="middle" x="1089" 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="M1953,-1100.98C1953,-1102.78 1924.31,-1104.25 1889,-1104.25 1853.69,-1104.25 1825,-1102.78 1825,-1100.98 1825,-1100.98 1825,-1071.52 1825,-1071.52 1825,-1069.72 1853.69,-1068.25 1889,-1068.25 1924.31,-1068.25 1953,-1069.72 1953,-1071.52 1953,-1071.52 1953,-1100.98 1953,-1100.98"/>
|
||||
<path fill="none" stroke="black" d="M1953,-1100.98C1953,-1099.17 1924.31,-1097.7 1889,-1097.7 1853.69,-1097.7 1825,-1099.17 1825,-1100.98"/>
|
||||
<text text-anchor="middle" x="1889" y="-1082.55" 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="M2052,-990.6C2052,-993.24 2012.56,-995.38 1964,-995.38 1915.44,-995.38 1876,-993.24 1876,-990.6 1876,-990.6 1876,-947.65 1876,-947.65 1876,-945.01 1915.44,-942.87 1964,-942.87 2012.56,-942.87 2052,-945.01 2052,-947.65 2052,-947.65 2052,-990.6 2052,-990.6"/>
|
||||
<path fill="none" stroke="black" d="M2052,-990.6C2052,-987.97 2012.56,-985.83 1964,-985.83 1915.44,-985.83 1876,-987.97 1876,-990.6"/>
|
||||
<text text-anchor="middle" x="1964" y="-972.92" font-family="Times,serif" font-size="14.00">ortools:<distro>_base</text>
|
||||
<text text-anchor="middle" x="1964" y="-957.92" 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="M1900.39,-1067.76C1911.36,-1050.92 1928.25,-1024.99 1941.87,-1004.09"/>
|
||||
<polygon fill="black" stroke="black" points="1944.96,-1005.77 1947.48,-995.48 1939.09,-1001.94 1944.96,-1005.77"/>
|
||||
</g>
|
||||
<!-- PKG -->
|
||||
<g id="node2" class="node">
|
||||
<title>PKG</title>
|
||||
<polygon fill="royalblue" stroke="black" points="2106.5,-1105.25 1975.5,-1105.25 1971.5,-1101.25 1971.5,-1067.25 2102.5,-1067.25 2106.5,-1071.25 2106.5,-1105.25"/>
|
||||
<polyline fill="none" stroke="black" points="2102.5,-1101.25 1971.5,-1101.25 "/>
|
||||
<polyline fill="none" stroke="black" points="2102.5,-1101.25 2102.5,-1067.25 "/>
|
||||
<polyline fill="none" stroke="black" points="2102.5,-1101.25 2106.5,-1105.25 "/>
|
||||
<text text-anchor="middle" x="2039" y="-1090.05" font-family="Times,serif" font-size="14.00">Build packages</text>
|
||||
<text text-anchor="middle" x="2039" y="-1075.05" 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="M2027.12,-1067.01C2016.13,-1050.14 1999.52,-1024.65 1986.1,-1004.05"/>
|
||||
<polygon fill="black" stroke="black" points="1988.96,-1002.03 1980.57,-995.56 1983.1,-1005.85 1988.96,-1002.03"/>
|
||||
<text text-anchor="middle" x="2036.5" y="-1038.05" 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="1132.5,-898.88 999.5,-898.88 995.5,-894.88 995.5,-860.88 1128.5,-860.88 1132.5,-864.88 1132.5,-898.88"/>
|
||||
<polyline fill="none" stroke="black" points="1128.5,-894.88 995.5,-894.88 "/>
|
||||
<polyline fill="none" stroke="black" points="1128.5,-894.88 1128.5,-860.88 "/>
|
||||
<polyline fill="none" stroke="black" points="1128.5,-894.88 1132.5,-898.88 "/>
|
||||
<text text-anchor="middle" x="1064" y="-883.67" font-family="Times,serif" font-size="14.00">Python packages</text>
|
||||
<text text-anchor="middle" x="1064" y="-868.67" 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="M1324,-777.1C1324,-779.74 1272.46,-781.88 1209,-781.88 1145.54,-781.88 1094,-779.74 1094,-777.1 1094,-777.1 1094,-734.15 1094,-734.15 1094,-731.51 1145.54,-729.37 1209,-729.37 1272.46,-729.37 1324,-731.51 1324,-734.15 1324,-734.15 1324,-777.1 1324,-777.1"/>
|
||||
<path fill="none" stroke="black" d="M1324,-777.1C1324,-774.47 1272.46,-772.33 1209,-772.33 1145.54,-772.33 1094,-774.47 1094,-777.1"/>
|
||||
<text text-anchor="middle" x="1209" y="-759.42" font-family="Times,serif" font-size="14.00">ortools:<distro>_<lang>_env</text>
|
||||
<text text-anchor="middle" x="1209" y="-744.42" font-family="Times,serif" font-size="14.00">env</text>
|
||||
</g>
|
||||
<!-- PYPKG->LANGENV_IMG -->
|
||||
<g id="edge13" class="edge">
|
||||
<title>PYPKG->LANGENV_IMG</title>
|
||||
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M1085.4,-860.84C1107.91,-841.86 1143.8,-811.59 1171.12,-788.56"/>
|
||||
<polygon fill="black" stroke="black" points="1173.55,-791.09 1178.94,-781.97 1169.04,-785.74 1173.55,-791.09"/>
|
||||
<text text-anchor="middle" x="1154.5" y="-824.55" 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="1267.5,-898.88 1154.5,-898.88 1150.5,-894.88 1150.5,-860.88 1263.5,-860.88 1267.5,-864.88 1267.5,-898.88"/>
|
||||
<polyline fill="none" stroke="black" points="1263.5,-894.88 1150.5,-894.88 "/>
|
||||
<polyline fill="none" stroke="black" points="1263.5,-894.88 1263.5,-860.88 "/>
|
||||
<polyline fill="none" stroke="black" points="1263.5,-894.88 1267.5,-898.88 "/>
|
||||
<text text-anchor="middle" x="1209" y="-883.67" font-family="Times,serif" font-size="14.00">Java packages</text>
|
||||
<text text-anchor="middle" x="1209" y="-868.67" font-family="Times,serif" font-size="14.00">e.g. openjdk</text>
|
||||
</g>
|
||||
<!-- JAVAPKG->LANGENV_IMG -->
|
||||
<g id="edge14" class="edge">
|
||||
<title>JAVAPKG->LANGENV_IMG</title>
|
||||
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M1209,-860.84C1209,-842.83 1209,-814.68 1209,-792.18"/>
|
||||
<polygon fill="black" stroke="black" points="1212.5,-791.97 1209,-781.97 1205.5,-791.97 1212.5,-791.97"/>
|
||||
<text text-anchor="middle" x="1231.5" y="-824.55" 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="1404,-898.88 1290,-898.88 1286,-894.88 1286,-860.88 1400,-860.88 1404,-864.88 1404,-898.88"/>
|
||||
<polyline fill="none" stroke="black" points="1400,-894.88 1286,-894.88 "/>
|
||||
<polyline fill="none" stroke="black" points="1400,-894.88 1400,-860.88 "/>
|
||||
<polyline fill="none" stroke="black" points="1400,-894.88 1404,-898.88 "/>
|
||||
<text text-anchor="middle" x="1345" y="-883.67" font-family="Times,serif" font-size="14.00">.Net packages</text>
|
||||
<text text-anchor="middle" x="1345" y="-868.67" font-family="Times,serif" font-size="14.00">e.g. dotnet-cli</text>
|
||||
</g>
|
||||
<!-- DOTNETPKG->LANGENV_IMG -->
|
||||
<g id="edge15" class="edge">
|
||||
<title>DOTNETPKG->LANGENV_IMG</title>
|
||||
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M1324.93,-860.84C1303.91,-841.94 1270.44,-811.85 1244.86,-788.86"/>
|
||||
<polygon fill="black" stroke="black" points="1246.97,-786.05 1237.19,-781.97 1242.29,-791.26 1246.97,-786.05"/>
|
||||
<text text-anchor="middle" x="1315.5" y="-824.55" 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="788.5,-773.62 785.5,-777.62 764.5,-777.62 761.5,-773.62 715.5,-773.62 715.5,-737.62 788.5,-737.62 788.5,-773.62"/>
|
||||
<text text-anchor="middle" x="752" y="-751.92" 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="M1106.5,-673.85C1106.5,-676.49 1052.04,-678.63 985,-678.63 917.96,-678.63 863.5,-676.49 863.5,-673.85 863.5,-673.85 863.5,-630.9 863.5,-630.9 863.5,-628.26 917.96,-626.12 985,-626.12 1052.04,-626.12 1106.5,-628.26 1106.5,-630.9 1106.5,-630.9 1106.5,-673.85 1106.5,-673.85"/>
|
||||
<path fill="none" stroke="black" d="M1106.5,-673.85C1106.5,-671.22 1052.04,-669.08 985,-669.08 917.96,-669.08 863.5,-671.22 863.5,-673.85"/>
|
||||
<text text-anchor="middle" x="985" y="-656.17" font-family="Times,serif" font-size="14.00">ortools:<distro>_<lang>_devel</text>
|
||||
<text text-anchor="middle" x="985" y="-641.17" font-family="Times,serif" font-size="14.00">devel</text>
|
||||
</g>
|
||||
<!-- SRC->LANGDEVEL_IMG -->
|
||||
<g id="edge16" class="edge">
|
||||
<title>SRC->LANGDEVEL_IMG</title>
|
||||
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M778.53,-737.46C783.27,-734.65 788.22,-731.89 793,-729.5 828.33,-711.84 868.8,-695.28 903.44,-682.15"/>
|
||||
<polygon fill="black" stroke="black" points="904.92,-685.33 913.05,-678.54 902.46,-678.78 904.92,-685.33"/>
|
||||
<text text-anchor="middle" x="882" y="-700.3" 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="1423,-477.88 1420,-481.88 1399,-481.88 1396,-477.88 1355,-477.88 1355,-441.88 1423,-441.88 1423,-477.88"/>
|
||||
<text text-anchor="middle" x="1389" y="-456.18" font-family="Times,serif" font-size="14.00">sample</text>
|
||||
</g>
|
||||
<!-- LANGINSTALLDEVEL_IMG -->
|
||||
<g id="node15" class="node">
|
||||
<title>LANGINSTALLDEVEL_IMG</title>
|
||||
<path fill="royalblue" stroke="black" d="M1217,-378.1C1217,-380.74 1151.11,-382.88 1070,-382.88 988.89,-382.88 923,-380.74 923,-378.1 923,-378.1 923,-335.15 923,-335.15 923,-332.51 988.89,-330.37 1070,-330.37 1151.11,-330.37 1217,-332.51 1217,-335.15 1217,-335.15 1217,-378.1 1217,-378.1"/>
|
||||
<path fill="none" stroke="black" d="M1217,-378.1C1217,-375.47 1151.11,-373.33 1070,-373.33 988.89,-373.33 923,-375.47 923,-378.1"/>
|
||||
<text text-anchor="middle" x="1070" y="-360.43" font-family="Times,serif" font-size="14.00">ortools:<distro>_<lang>_install_devel</text>
|
||||
<text text-anchor="middle" x="1070" y="-345.43" font-family="Times,serif" font-size="14.00">install_devel</text>
|
||||
</g>
|
||||
<!-- SAMPLE->LANGINSTALLDEVEL_IMG -->
|
||||
<g id="edge17" class="edge">
|
||||
<title>SAMPLE->LANGINSTALLDEVEL_IMG</title>
|
||||
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M1364.23,-441.75C1359.32,-438.81 1354.11,-435.99 1349,-433.75 1301.36,-412.84 1246.59,-396.39 1198.25,-384.21"/>
|
||||
<polygon fill="black" stroke="black" points="1198.9,-380.76 1188.36,-381.75 1197.22,-387.56 1198.9,-380.76"/>
|
||||
<text text-anchor="middle" x="1314" y="-404.55" font-family="Times,serif" font-size="14.00">copy</text>
|
||||
</g>
|
||||
<!-- SWIG_IMG -->
|
||||
<g id="node9" class="node">
|
||||
<title>SWIG_IMG</title>
|
||||
<path fill="royalblue" stroke="black" d="M2047,-901.35C2047,-903.99 2007.56,-906.13 1959,-906.13 1910.44,-906.13 1871,-903.99 1871,-901.35 1871,-901.35 1871,-858.4 1871,-858.4 1871,-855.76 1910.44,-853.62 1959,-853.62 2007.56,-853.62 2047,-855.76 2047,-858.4 2047,-858.4 2047,-901.35 2047,-901.35"/>
|
||||
<path fill="none" stroke="black" d="M2047,-901.35C2047,-898.72 2007.56,-896.58 1959,-896.58 1910.44,-896.58 1871,-898.72 1871,-901.35"/>
|
||||
<text text-anchor="middle" x="1959" y="-883.67" font-family="Times,serif" font-size="14.00">ortools:<distro>_swig</text>
|
||||
<text text-anchor="middle" x="1959" y="-868.67" 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="M1962.55,-942.89C1962.08,-934.57 1961.54,-925.16 1961.03,-916.22"/>
|
||||
<polygon fill="black" stroke="black" points="1964.51,-915.84 1960.44,-906.05 1957.52,-916.24 1964.51,-915.84"/>
|
||||
</g>
|
||||
<!-- BASE_TAR -->
|
||||
<g id="node18" class="node">
|
||||
<title>BASE_TAR</title>
|
||||
<polygon fill="royalblue" stroke="black" points="2156,-52 2032,-52 2032,-16 2162,-16 2162,-46 2156,-52"/>
|
||||
<polyline fill="none" stroke="black" points="2156,-52 2156,-46 "/>
|
||||
<polyline fill="none" stroke="black" points="2162,-46 2156,-46 "/>
|
||||
<text text-anchor="middle" x="2097" y="-30.3" font-family="Times,serif" font-size="14.00">docker_base.tar</text>
|
||||
</g>
|
||||
<!-- BASE_IMG->BASE_TAR -->
|
||||
<g id="edge18" class="edge">
|
||||
<title>BASE_IMG->BASE_TAR</title>
|
||||
<path fill="none" stroke="red" d="M2052.26,-965.12C2110.08,-957.85 2175,-937.16 2175,-880.88 2175,-880.88 2175,-880.88 2175,-149.12 2175,-113.27 2148.44,-80.4 2126.32,-59.24"/>
|
||||
<polygon fill="red" stroke="red" points="2128.46,-56.45 2118.73,-52.26 2123.72,-61.6 2128.46,-56.45"/>
|
||||
<text text-anchor="middle" x="2269" y="-507.8" font-family="Times,serif" font-size="14.00">make save_<distro>_base</text>
|
||||
</g>
|
||||
<!-- SWIG_IMG->LANGENV_IMG -->
|
||||
<g id="edge12" class="edge">
|
||||
<title>SWIG_IMG->LANGENV_IMG</title>
|
||||
<path fill="none" stroke="black" d="M1870.76,-864.49C1737.99,-842.85 1486.27,-801.82 1334.46,-777.08"/>
|
||||
<polygon fill="black" stroke="black" points="1334.59,-773.55 1324.16,-775.4 1333.46,-780.46 1334.59,-773.55"/>
|
||||
</g>
|
||||
<!-- SWIG_TAR -->
|
||||
<g id="node19" class="node">
|
||||
<title>SWIG_TAR</title>
|
||||
<polygon fill="royalblue" stroke="black" points="2008,-52 1884,-52 1884,-16 2014,-16 2014,-46 2008,-52"/>
|
||||
<polyline fill="none" stroke="black" points="2008,-52 2008,-46 "/>
|
||||
<polyline fill="none" stroke="black" points="2014,-46 2008,-46 "/>
|
||||
<text text-anchor="middle" x="1949" y="-30.3" font-family="Times,serif" font-size="14.00">docker_swig.tar</text>
|
||||
</g>
|
||||
<!-- SWIG_IMG->SWIG_TAR -->
|
||||
<g id="edge19" class="edge">
|
||||
<title>SWIG_IMG->SWIG_TAR</title>
|
||||
<path fill="none" stroke="red" d="M1959,-853.59C1959,-828.87 1959,-790.16 1959,-756.62 1959,-756.62 1959,-756.62 1959,-149.12 1959,-119.42 1955.6,-85.53 1952.76,-62.45"/>
|
||||
<polygon fill="red" stroke="red" points="1956.21,-61.84 1951.47,-52.36 1949.27,-62.72 1956.21,-61.84"/>
|
||||
<text text-anchor="middle" x="2053" y="-456.18" 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="M1153.34,-729.47C1122.09,-715.34 1082.92,-697.64 1050.24,-682.86"/>
|
||||
<polygon fill="black" stroke="black" points="1051.31,-679.51 1040.76,-678.58 1048.43,-685.89 1051.31,-679.51"/>
|
||||
</g>
|
||||
<!-- LANGINSTALLENV_IMG -->
|
||||
<g id="node14" class="node">
|
||||
<title>LANGINSTALLENV_IMG</title>
|
||||
<path fill="royalblue" stroke="black" d="M1336.5,-481.35C1336.5,-483.99 1273.53,-486.13 1196,-486.13 1118.47,-486.13 1055.5,-483.99 1055.5,-481.35 1055.5,-481.35 1055.5,-438.4 1055.5,-438.4 1055.5,-435.76 1118.47,-433.62 1196,-433.62 1273.53,-433.62 1336.5,-435.76 1336.5,-438.4 1336.5,-438.4 1336.5,-481.35 1336.5,-481.35"/>
|
||||
<path fill="none" stroke="black" d="M1336.5,-481.35C1336.5,-478.72 1273.53,-476.58 1196,-476.58 1118.47,-476.58 1055.5,-478.72 1055.5,-481.35"/>
|
||||
<text text-anchor="middle" x="1196" y="-463.68" font-family="Times,serif" font-size="14.00">ortools:<distro>_<lang>_install_env</text>
|
||||
<text text-anchor="middle" x="1196" y="-448.68" font-family="Times,serif" font-size="14.00">install_env</text>
|
||||
</g>
|
||||
<!-- LANGENV_IMG->LANGINSTALLENV_IMG -->
|
||||
<g id="edge8" class="edge">
|
||||
<title>LANGENV_IMG->LANGINSTALLENV_IMG</title>
|
||||
<path fill="none" stroke="black" d="M1207.91,-729.37C1205.96,-684.16 1201.72,-586.45 1198,-504 1197.89,-501.6 1197.78,-499.12 1197.67,-496.63"/>
|
||||
<polygon fill="black" stroke="black" points="1201.15,-496.24 1197.19,-486.41 1194.16,-496.56 1201.15,-496.24"/>
|
||||
</g>
|
||||
<!-- LANGENV_TAR -->
|
||||
<g id="node20" class="node">
|
||||
<title>LANGENV_TAR</title>
|
||||
<polygon fill="royalblue" stroke="black" points="1860,-52 1684,-52 1684,-16 1866,-16 1866,-46 1860,-52"/>
|
||||
<polyline fill="none" stroke="black" points="1860,-52 1860,-46 "/>
|
||||
<polyline fill="none" stroke="black" points="1866,-46 1860,-46 "/>
|
||||
<text text-anchor="middle" x="1775" y="-30.3" font-family="Times,serif" font-size="14.00">docker_<lang>_env.tar</text>
|
||||
</g>
|
||||
<!-- LANGENV_IMG->LANGENV_TAR -->
|
||||
<g id="edge20" class="edge">
|
||||
<title>LANGENV_IMG->LANGENV_TAR</title>
|
||||
<path fill="none" stroke="red" d="M1324.28,-753.64C1469.97,-749.21 1702,-730.1 1702,-653.38 1702,-653.38 1702,-653.38 1702,-458.88 1702,-433.04 1696.53,-425.76 1703,-400.75 1714.14,-357.73 1737.31,-355.09 1750,-312.5 1776.45,-223.75 1777.32,-112.54 1776.08,-62.1"/>
|
||||
<polygon fill="red" stroke="red" points="1779.57,-61.91 1775.78,-52.01 1772.58,-62.11 1779.57,-61.91"/>
|
||||
<text text-anchor="middle" x="1824" y="-404.55" 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="M1164.5,-584.6C1164.5,-587.24 1110.49,-589.38 1044,-589.38 977.51,-589.38 923.5,-587.24 923.5,-584.6 923.5,-584.6 923.5,-541.65 923.5,-541.65 923.5,-539.01 977.51,-536.87 1044,-536.87 1110.49,-536.87 1164.5,-539.01 1164.5,-541.65 1164.5,-541.65 1164.5,-584.6 1164.5,-584.6"/>
|
||||
<path fill="none" stroke="black" d="M1164.5,-584.6C1164.5,-581.97 1110.49,-579.83 1044,-579.83 977.51,-579.83 923.5,-581.97 923.5,-584.6"/>
|
||||
<text text-anchor="middle" x="1044" y="-566.92" font-family="Times,serif" font-size="14.00">ortools:<distro>_<lang>_build</text>
|
||||
<text text-anchor="middle" x="1044" y="-551.92" 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="M1002.07,-626.14C1008.06,-617.28 1014.89,-607.17 1021.27,-597.73"/>
|
||||
<polygon fill="black" stroke="black" points="1024.27,-599.55 1026.97,-589.3 1018.47,-595.63 1024.27,-599.55"/>
|
||||
</g>
|
||||
<!-- LANGDEVEL_TAR -->
|
||||
<g id="node21" class="node">
|
||||
<title>LANGDEVEL_TAR</title>
|
||||
<polygon fill="royalblue" stroke="black" points="207.5,-52 16.5,-52 16.5,-16 213.5,-16 213.5,-46 207.5,-52"/>
|
||||
<polyline fill="none" stroke="black" points="207.5,-52 207.5,-46 "/>
|
||||
<polyline fill="none" stroke="black" points="213.5,-46 207.5,-46 "/>
|
||||
<text text-anchor="middle" x="115" y="-30.3" font-family="Times,serif" font-size="14.00">docker_<lang>_devel.tar</text>
|
||||
</g>
|
||||
<!-- LANGDEVEL_IMG->LANGDEVEL_TAR -->
|
||||
<g id="edge21" class="edge">
|
||||
<title>LANGDEVEL_IMG->LANGDEVEL_TAR</title>
|
||||
<path fill="none" stroke="red" d="M863.17,-646.3C608.25,-634.87 42,-604.89 42,-564.12 42,-564.12 42,-564.12 42,-149.12 42,-113.78 67.16,-80.6 87.93,-59.23"/>
|
||||
<polygon fill="red" stroke="red" points="90.41,-61.7 95.05,-52.18 85.49,-56.73 90.41,-61.7"/>
|
||||
<text text-anchor="middle" x="169.5" y="-352.93" 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="M1037.5,-481.35C1037.5,-483.99 985.28,-486.13 921,-486.13 856.72,-486.13 804.5,-483.99 804.5,-481.35 804.5,-481.35 804.5,-438.4 804.5,-438.4 804.5,-435.76 856.72,-433.62 921,-433.62 985.28,-433.62 1037.5,-435.76 1037.5,-438.4 1037.5,-438.4 1037.5,-481.35 1037.5,-481.35"/>
|
||||
<path fill="none" stroke="black" d="M1037.5,-481.35C1037.5,-478.72 985.28,-476.58 921,-476.58 856.72,-476.58 804.5,-478.72 804.5,-481.35"/>
|
||||
<text text-anchor="middle" x="921" y="-463.68" font-family="Times,serif" font-size="14.00">ortools:<distro>_<lang>_test</text>
|
||||
<text text-anchor="middle" x="921" y="-448.68" 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="M1013.28,-536.84C996.99,-523.43 976.82,-506.82 959.49,-492.56"/>
|
||||
<polygon fill="black" stroke="black" points="961.7,-489.85 951.76,-486.19 957.25,-495.25 961.7,-489.85"/>
|
||||
</g>
|
||||
<!-- LANGBUILD_IMG->LANGINSTALLENV_IMG -->
|
||||
<g id="edge7" class="edge">
|
||||
<title>LANGBUILD_IMG->LANGINSTALLENV_IMG</title>
|
||||
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M1072.84,-536.81C1085.64,-526.11 1101.15,-513.87 1116,-504 1122.56,-499.64 1129.6,-495.34 1136.69,-491.24"/>
|
||||
<polygon fill="black" stroke="black" points="1138.68,-494.14 1145.66,-486.17 1135.23,-488.04 1138.68,-494.14"/>
|
||||
<text text-anchor="middle" x="1157" y="-507.8" font-family="Times,serif" font-size="14.00">copy install</text>
|
||||
</g>
|
||||
<!-- LANGBUILD_TAR -->
|
||||
<g id="node22" class="node">
|
||||
<title>LANGBUILD_TAR</title>
|
||||
<polygon fill="royalblue" stroke="black" points="1660,-52 1472,-52 1472,-16 1666,-16 1666,-46 1660,-52"/>
|
||||
<polyline fill="none" stroke="black" points="1660,-52 1660,-46 "/>
|
||||
<polyline fill="none" stroke="black" points="1666,-46 1660,-46 "/>
|
||||
<text text-anchor="middle" x="1569" y="-30.3" font-family="Times,serif" font-size="14.00">docker_<lang>_build.tar</text>
|
||||
</g>
|
||||
<!-- LANGBUILD_IMG->LANGBUILD_TAR -->
|
||||
<g id="edge22" class="edge">
|
||||
<title>LANGBUILD_IMG->LANGBUILD_TAR</title>
|
||||
<path fill="none" stroke="red" d="M1164.59,-551.6C1263.24,-540.67 1392.65,-520.25 1432,-486 1498.84,-427.82 1433.37,-359.18 1497,-297.5 1516.38,-278.71 1538.38,-300.76 1555,-279.5 1605.01,-215.53 1588.19,-110.92 1576.43,-61.92"/>
|
||||
<polygon fill="red" stroke="red" points="1579.78,-60.91 1573.95,-52.07 1572.99,-62.62 1579.78,-60.91"/>
|
||||
<text text-anchor="middle" x="1623.5" y="-301.3" font-family="Times,serif" font-size="14.00">make save_<distro>_<lang>_build</text>
|
||||
</g>
|
||||
<!-- LANGTEST_TAR -->
|
||||
<g id="node23" class="node">
|
||||
<title>LANGTEST_TAR</title>
|
||||
<polygon fill="royalblue" stroke="black" points="412,-52 232,-52 232,-16 418,-16 418,-46 412,-52"/>
|
||||
<polyline fill="none" stroke="black" points="412,-52 412,-46 "/>
|
||||
<polyline fill="none" stroke="black" points="418,-46 412,-46 "/>
|
||||
<text text-anchor="middle" x="325" y="-30.3" font-family="Times,serif" font-size="14.00">docker_<lang>_test.tar</text>
|
||||
</g>
|
||||
<!-- LANGTEST_IMG->LANGTEST_TAR -->
|
||||
<g id="edge23" class="edge">
|
||||
<title>LANGTEST_IMG->LANGTEST_TAR</title>
|
||||
<path fill="none" stroke="red" d="M804.32,-450.67C630.81,-436.88 325,-405.74 325,-357.62 325,-357.62 325,-357.62 325,-149.12 325,-119.36 325,-85.24 325,-62.11"/>
|
||||
<polygon fill="red" stroke="red" points="328.5,-62.01 325,-52.01 321.5,-62.02 328.5,-62.01"/>
|
||||
<text text-anchor="middle" x="447" y="-249.68" font-family="Times,serif" font-size="14.00">make save_<distro>_<lang>_test</text>
|
||||
</g>
|
||||
<!-- LANGINSTALLENV_IMG->LANGINSTALLDEVEL_IMG -->
|
||||
<g id="edge9" class="edge">
|
||||
<title>LANGINSTALLENV_IMG->LANGINSTALLDEVEL_IMG</title>
|
||||
<path fill="none" stroke="black" d="M1164.53,-433.59C1147.84,-420.18 1127.18,-403.57 1109.43,-389.31"/>
|
||||
<polygon fill="black" stroke="black" points="1111.49,-386.48 1101.51,-382.94 1107.11,-391.93 1111.49,-386.48"/>
|
||||
</g>
|
||||
<!-- LANGINSTALLENV_TAR -->
|
||||
<g id="node24" class="node">
|
||||
<title>LANGINSTALLENV_TAR</title>
|
||||
<polygon fill="royalblue" stroke="black" points="1447.5,-52 1220.5,-52 1220.5,-16 1453.5,-16 1453.5,-46 1447.5,-52"/>
|
||||
<polyline fill="none" stroke="black" points="1447.5,-52 1447.5,-46 "/>
|
||||
<polyline fill="none" stroke="black" points="1453.5,-46 1447.5,-46 "/>
|
||||
<text text-anchor="middle" x="1337" y="-30.3" font-family="Times,serif" font-size="14.00">docker_<lang>_install_env.tar</text>
|
||||
</g>
|
||||
<!-- LANGINSTALLENV_IMG->LANGINSTALLENV_TAR -->
|
||||
<g id="edge24" class="edge">
|
||||
<title>LANGINSTALLENV_IMG->LANGINSTALLENV_TAR</title>
|
||||
<path fill="none" stroke="red" d="M1207.1,-433.49C1213.22,-418.85 1220.64,-399.98 1226,-382.75 1247.06,-315.01 1220.42,-284.72 1262,-227.25 1287.6,-191.86 1323.24,-213.53 1346,-176.25 1367.3,-141.35 1357.11,-92.15 1347.37,-61.98"/>
|
||||
<polygon fill="red" stroke="red" points="1350.55,-60.48 1343.99,-52.16 1343.93,-62.75 1350.55,-60.48"/>
|
||||
<text text-anchor="middle" x="1408.5" y="-249.68" font-family="Times,serif" font-size="14.00">make save_<distro>_<lang>_install_env</text>
|
||||
</g>
|
||||
<!-- LANGINSTALLBUILD_IMG -->
|
||||
<g id="node16" class="node">
|
||||
<title>LANGINSTALLBUILD_IMG</title>
|
||||
<path fill="royalblue" stroke="black" d="M1212,-274.85C1212,-277.49 1146.56,-279.63 1066,-279.63 985.44,-279.63 920,-277.49 920,-274.85 920,-274.85 920,-231.9 920,-231.9 920,-229.26 985.44,-227.12 1066,-227.12 1146.56,-227.12 1212,-229.26 1212,-231.9 1212,-231.9 1212,-274.85 1212,-274.85"/>
|
||||
<path fill="none" stroke="black" d="M1212,-274.85C1212,-272.22 1146.56,-270.08 1066,-270.08 985.44,-270.08 920,-272.22 920,-274.85"/>
|
||||
<text text-anchor="middle" x="1066" y="-257.18" font-family="Times,serif" font-size="14.00">ortools:<distro>_<lang>_install_build</text>
|
||||
<text text-anchor="middle" x="1066" y="-242.18" font-family="Times,serif" font-size="14.00">install_build</text>
|
||||
</g>
|
||||
<!-- LANGINSTALLDEVEL_IMG->LANGINSTALLBUILD_IMG -->
|
||||
<g id="edge10" class="edge">
|
||||
<title>LANGINSTALLDEVEL_IMG->LANGINSTALLBUILD_IMG</title>
|
||||
<path fill="none" stroke="black" d="M1069,-330.34C1068.52,-318.13 1067.93,-303.29 1067.41,-289.97"/>
|
||||
<polygon fill="black" stroke="black" points="1070.89,-289.55 1067,-279.69 1063.9,-289.82 1070.89,-289.55"/>
|
||||
</g>
|
||||
<!-- LANGINSTALLDEVEL_TAR -->
|
||||
<g id="node25" class="node">
|
||||
<title>LANGINSTALLDEVEL_TAR</title>
|
||||
<polygon fill="royalblue" stroke="black" points="678,-52 436,-52 436,-16 684,-16 684,-46 678,-52"/>
|
||||
<polyline fill="none" stroke="black" points="678,-52 678,-46 "/>
|
||||
<polyline fill="none" stroke="black" points="684,-46 678,-46 "/>
|
||||
<text text-anchor="middle" x="560" y="-30.3" font-family="Times,serif" font-size="14.00">docker_<lang>_install_devel.tar</text>
|
||||
</g>
|
||||
<!-- LANGINSTALLDEVEL_IMG->LANGINSTALLDEVEL_TAR -->
|
||||
<g id="edge25" class="edge">
|
||||
<title>LANGINSTALLDEVEL_IMG->LANGINSTALLDEVEL_TAR</title>
|
||||
<path fill="none" stroke="red" d="M930.71,-332.24C801.03,-307.44 621.14,-264.27 576,-209.25 541.8,-167.57 547.33,-99.93 553.94,-62.36"/>
|
||||
<polygon fill="red" stroke="red" points="557.45,-62.65 555.89,-52.17 550.57,-61.33 557.45,-62.65"/>
|
||||
<text text-anchor="middle" x="729" y="-198.05" font-family="Times,serif" font-size="14.00">make save_<distro>_<lang>_install_devel</text>
|
||||
</g>
|
||||
<!-- LANGINSTALLTEST_IMG -->
|
||||
<g id="node17" class="node">
|
||||
<title>LANGINSTALLTEST_IMG</title>
|
||||
<path fill="royalblue" stroke="black" d="M1337,-171.6C1337,-174.24 1273.35,-176.38 1195,-176.38 1116.65,-176.38 1053,-174.24 1053,-171.6 1053,-171.6 1053,-128.65 1053,-128.65 1053,-126.01 1116.65,-123.87 1195,-123.87 1273.35,-123.87 1337,-126.01 1337,-128.65 1337,-128.65 1337,-171.6 1337,-171.6"/>
|
||||
<path fill="none" stroke="black" d="M1337,-171.6C1337,-168.97 1273.35,-166.83 1195,-166.83 1116.65,-166.83 1053,-168.97 1053,-171.6"/>
|
||||
<text text-anchor="middle" x="1195" y="-153.93" font-family="Times,serif" font-size="14.00">ortools:<distro>_<lang>_install_test</text>
|
||||
<text text-anchor="middle" x="1195" y="-138.93" font-family="Times,serif" font-size="14.00">install_test</text>
|
||||
</g>
|
||||
<!-- LANGINSTALLBUILD_IMG->LANGINSTALLTEST_IMG -->
|
||||
<g id="edge11" class="edge">
|
||||
<title>LANGINSTALLBUILD_IMG->LANGINSTALLTEST_IMG</title>
|
||||
<path fill="none" stroke="black" d="M1098.22,-227.09C1115.3,-213.68 1136.46,-197.07 1154.63,-182.81"/>
|
||||
<polygon fill="black" stroke="black" points="1157.04,-185.37 1162.74,-176.44 1152.72,-179.86 1157.04,-185.37"/>
|
||||
</g>
|
||||
<!-- LANGINSTALLBUILD_TAR -->
|
||||
<g id="node26" class="node">
|
||||
<title>LANGINSTALLBUILD_TAR</title>
|
||||
<polygon fill="royalblue" stroke="black" points="941.5,-52 702.5,-52 702.5,-16 947.5,-16 947.5,-46 941.5,-52"/>
|
||||
<polyline fill="none" stroke="black" points="941.5,-52 941.5,-46 "/>
|
||||
<polyline fill="none" stroke="black" points="947.5,-46 941.5,-46 "/>
|
||||
<text text-anchor="middle" x="825" y="-30.3" font-family="Times,serif" font-size="14.00">docker_<lang>_install_build.tar</text>
|
||||
</g>
|
||||
<!-- LANGINSTALLBUILD_IMG->LANGINSTALLBUILD_TAR -->
|
||||
<g id="edge26" class="edge">
|
||||
<title>LANGINSTALLBUILD_IMG->LANGINSTALLBUILD_TAR</title>
|
||||
<path fill="none" stroke="red" d="M998.46,-227.2C965.04,-215.61 923.84,-202.61 886,-194.25 854.08,-187.2 761.66,-200.74 740,-176.25 707.3,-139.28 757.23,-88.02 793.31,-58.5"/>
|
||||
<polygon fill="red" stroke="red" points="795.58,-61.16 801.21,-52.19 791.21,-55.69 795.58,-61.16"/>
|
||||
<text text-anchor="middle" x="892" y="-146.43" font-family="Times,serif" font-size="14.00">make save_<distro>_<lang>_install_build</text>
|
||||
</g>
|
||||
<!-- LANGINSTALLTEST_TAR -->
|
||||
<g id="node27" class="node">
|
||||
<title>LANGINSTALLTEST_TAR</title>
|
||||
<polygon fill="royalblue" stroke="black" points="1196.5,-52 965.5,-52 965.5,-16 1202.5,-16 1202.5,-46 1196.5,-52"/>
|
||||
<polyline fill="none" stroke="black" points="1196.5,-52 1196.5,-46 "/>
|
||||
<polyline fill="none" stroke="black" points="1202.5,-46 1196.5,-46 "/>
|
||||
<text text-anchor="middle" x="1084" y="-30.3" font-family="Times,serif" font-size="14.00">docker_<lang>_install_test.tar</text>
|
||||
</g>
|
||||
<!-- LANGINSTALLTEST_IMG->LANGINSTALLTEST_TAR -->
|
||||
<g id="edge27" class="edge">
|
||||
<title>LANGINSTALLTEST_IMG->LANGINSTALLTEST_TAR</title>
|
||||
<path fill="none" stroke="red" d="M1076.36,-125.18C1068.58,-119.95 1061.62,-113.63 1056,-106 1045.98,-92.4 1052.89,-74.73 1062.35,-60.42"/>
|
||||
<polygon fill="red" stroke="red" points="1065.41,-62.16 1068.44,-52.01 1059.74,-58.05 1065.41,-62.16"/>
|
||||
<text text-anchor="middle" x="1203.5" y="-94.8" font-family="Times,serif" font-size="14.00">make save_<distro>_<lang>_install_test</text>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 30 KiB |
@@ -15,7 +15,7 @@ Try to build a .NetStandard2.0 native (for win-x64, linux-x64 and osx-x64) nuget
|
||||
# Build the Binary Packages
|
||||
To build the .Net nuget packages, simply run:
|
||||
```sh
|
||||
cmake -S. -Bbuild -DBUILD_DOTNET=ON
|
||||
cmake -S. -Bbuild -DBUILD_DEPS=ON -DBUILD_DOTNET=ON
|
||||
cmake --build build --target dotnet_package -v
|
||||
```
|
||||
note: Since `dotnet_package` is in target `all`, you can also ommit the
|
||||
@@ -82,14 +82,14 @@ src: `tree build/dotnet --prune -I "obj|bin"`
|
||||
* [Requirement](#requirement)
|
||||
* [Directory Layout](#directory-layout)
|
||||
* [Build Process](#build-process)
|
||||
* [Local Mizux.CMakeSwig Package](#local-mizuxfoo-package)
|
||||
* [Building a runtime Mizux.CMakeSwig Package](#building-local-runtime-mizuxfoo-package)
|
||||
* [Building a Local Mizux.CMakeSwig Package](#building-local-mizuxfoo-package)
|
||||
* [Testing the Local Mizux.CMakeSwig Package](#testing-local-mizuxfoo-package)
|
||||
* [Complete Mizux.CMakeSwig Package](#complete-mizuxfoo-package)
|
||||
* [Building all runtime Mizux.CMakeSwig Package](#building-all-runtime-mizuxfoo-package)
|
||||
* [Building a Complete Mizux.CMakeSwig Package](#building-complete-mizuxfoo-package)
|
||||
* [Testing the Complete Mizux.CMakeSwig Package](#testing-complete-mizuxfoo-package)
|
||||
* [Local Google.OrTools Package](#local-googleortools-package)
|
||||
* [Building a runtime Google.OrTools Package](#building-local-runtime-googleortools-package)
|
||||
* [Building a Local Google.OrTools Package](#building-local-googleortools-package)
|
||||
* [Testing the Local Google.OrTools Package](#testing-local-googleortools-package)
|
||||
* [Complete Google.OrTools Package](#complete-googleortools-package)
|
||||
* [Building all runtime Google.OrTools Package](#building-all-runtime-googleortools-package)
|
||||
* [Building a Complete Google.OrTools Package](#building-complete-googleortools-package)
|
||||
* [Testing the Complete Google.OrTools Package](#testing-complete-googleortools-package)
|
||||
* [Appendices](#appendices)
|
||||
* [Ressources](#ressources)
|
||||
* [Issues](#issues)
|
||||
@@ -100,64 +100,64 @@ You'll need the ".Net Core SDK 3.1" to get the dotnet cli.
|
||||
i.e. We won't/can't rely on VS 2019 since we want a portable cross-platform [`dotnet/cli`](https://github.com/dotnet/cli) pipeline.
|
||||
|
||||
# Directory Layout
|
||||
* [`src/dotnet/Mizux.CMakeSwig.runtime.linux-x64`](src/dotnet/Mizux.CMakeSwig.runtime.linux-x64)
|
||||
* [`src/dotnet/Google.OrTools.runtime.linux-x64`](src/dotnet/Google.OrTools.runtime.linux-x64)
|
||||
Contains the hypothetical C++ linux-x64 shared library.
|
||||
* [`src/dotnet/Mizux.CMakeSwig.runtime.osx-x64`](src/dotnet/Mizux.CMakeSwig.runtime.osx-x64)
|
||||
* [`src/dotnet/Google.OrTools.runtime.osx-x64`](src/dotnet/Google.OrTools.runtime.osx-x64)
|
||||
Contains the hypothetical C++ osx-x64 shared library.
|
||||
* [`src/dotnet/Mizux.CMakeSwig.runtime.win-x64`](src/dotnet/Mizux.CMakeSwig.runtime.win-x64)
|
||||
* [`src/dotnet/Google.OrTools.runtime.win-x64`](src/dotnet/Google.OrTools.runtime.win-x64)
|
||||
Contains the hypothetical C++ win-x64 shared library.
|
||||
* [`src/dotnet/Mizux.CMakeSwig`](src/dotnet/Mizux.CMakeSwig)
|
||||
* [`src/dotnet/Google.OrTools`](src/dotnet/Google.OrTools)
|
||||
Is the .NetStandard2.0 library which should depends on all previous available packages.
|
||||
* [`src/dotnet/Mizux.CMakeSwigApp`](src/dotnet/Mizux.CMakeSwigApp)
|
||||
Is a .NetCoreApp2.1 application with a **`PackageReference`** to `Mizux.CMakeSwig` project to test.
|
||||
* [`src/dotnet/Google.OrToolsApp`](src/dotnet/Google.OrToolsApp)
|
||||
Is a .NetCoreApp2.1 application with a **`PackageReference`** to `Google.OrTools` project to test.
|
||||
|
||||
note: While Microsoft use `runtime-<rid>.Company.Project` for native libraries naming,
|
||||
it is very difficult to get ownership on it, so you should prefer to use`Company.Project.runtime-<rid>` instead since you can have ownership on `Company.*` prefix more easily.
|
||||
|
||||
# Build Process
|
||||
To Create a native dependent package we will split it in two parts:
|
||||
* A bunch of `Mizux.CMakeSwig.runtime.{rid}.nupkg` packages for each
|
||||
* A bunch of `Google.OrTools.runtime.{rid}.nupkg` packages for each
|
||||
[Runtime Identifier (RId)](https://docs.microsoft.com/en-us/dotnet/core/rid-catalog) targeted.
|
||||
* A meta-package `Mizux.CMakeSwig.nupkg` depending on each runtime packages.
|
||||
* A meta-package `Google.OrTools.nupkg` depending on each runtime packages.
|
||||
|
||||
note: [`Microsoft.NetCore.App` packages](https://www.nuget.org/packages?q=Microsoft.NETCore.App)
|
||||
follow this layout.
|
||||
|
||||
We have two use case scenario:
|
||||
1. Locally, be able to build a Mizux.CMakeSwig package which **only** target the local `OS Platform`,
|
||||
1. Locally, be able to build a Google.OrTools package which **only** target the local `OS Platform`,
|
||||
i.e. building for only one
|
||||
[Runtime Identifier (RID)](https://docs.microsoft.com/en-us/dotnet/core/rid-catalog).
|
||||
note: This is useful when the C++ build is a complex process for Windows, Linux and MacOS.
|
||||
i.e. You don't support cross-compilation for the native library.
|
||||
|
||||
2. Be able to create a complete cross-platform (ed. platform as multiple rid) Mizux.CMakeSwig package.
|
||||
i.e. First you generate each native Nuget package (`runtime.{rid}.Mizux.CMakeSwig.nupkg`)
|
||||
2. Be able to create a complete cross-platform (ed. platform as multiple rid) Google.OrTools package.
|
||||
i.e. First you generate each native Nuget package (`runtime.{rid}.Google.OrTools.nupkg`)
|
||||
on each native architecture, then copy paste these artifacts on one native machine
|
||||
to generate the meta-package `Mizux.CMakeSwig`.
|
||||
to generate the meta-package `Google.OrTools`.
|
||||
|
||||
## Local Mizux.CMakeSwig Package
|
||||
Let's start with scenario 1: Create a *Local* `Mizux.CMakeSwig.nupkg` package targeting **one** [Runtime Identifier (RID)](https://docs.microsoft.com/en-us/dotnet/core/rid-catalog).
|
||||
We would like to build a `Mizux.CMakeSwig.nupkg` package which only depends on one `Mizux.CMakeSwig.runtime.{rid}.nupkg` in order to dev/test locally.
|
||||
## Local Google.OrTools Package
|
||||
Let's start with scenario 1: Create a *Local* `Google.OrTools.nupkg` package targeting **one** [Runtime Identifier (RID)](https://docs.microsoft.com/en-us/dotnet/core/rid-catalog).
|
||||
We would like to build a `Google.OrTools.nupkg` package which only depends on one `Google.OrTools.runtime.{rid}.nupkg` in order to dev/test locally.
|
||||
|
||||
The pipeline for `linux-x64` should be as follow:
|
||||
note: The pipeline will be similar for `osx-x64` and `win-x64` architecture, don't hesitate to look at the CI log.
|
||||

|
||||

|
||||
|
||||
### Building local Mizux.CMakeSwig.runtime Package
|
||||
### Building local Google.OrTools.runtime Package
|
||||
disclaimer: for simplicity, in this git repository, we suppose the `g++` and `swig` process has been already performed.
|
||||
Thus we have the C++ shared library `Native.so` and the swig generated C# wrapper `Native.cs` already available.
|
||||
note: For a C++ CMake cross-platform project sample, take a look at [Mizux/cmake-cpp](https://github.com/Mizux/cmake-cpp).
|
||||
note: For a C++/Swig CMake cross-platform project sample, take a look at [Mizux/cmake-swig](https://github.com/Mizux/cmake-swig).
|
||||
|
||||
So first let's create the local `Mizux.CMakeSwig.runtime.{rid}.nupkg` nuget package.
|
||||
So first let's create the local `Google.OrTools.runtime.{rid}.nupkg` nuget package.
|
||||
|
||||
Here some dev-note concerning this `Mizux.CMakeSwig.runtime.{rid}.csproj`.
|
||||
* `AssemblyName` must be `Mizux.CMakeSwig.dll` i.e. all {rid} projects **must** generate an assembly with the **same** name (i.e. no {rid} in the name)
|
||||
Here some dev-note concerning this `Google.OrTools.runtime.{rid}.csproj`.
|
||||
* `AssemblyName` must be `Google.OrTools.dll` i.e. all {rid} projects **must** generate an assembly with the **same** name (i.e. no {rid} in the name)
|
||||
```xml
|
||||
<RuntimeIdentifier>{rid}</RuntimeIdentifier>
|
||||
<AssemblyName>Mizux.CMakeSwig</AssemblyName>
|
||||
<PackageId>Mizux.CMakeSwig.runtime.{rid}</PackageId>
|
||||
<AssemblyName>Google.OrTools</AssemblyName>
|
||||
<PackageId>Google.OrTools.runtime.{rid}</PackageId>
|
||||
```
|
||||
* Once you specify a `RuntimeIdentifier` then `dotnet build` or `dotnet build -r {rid}`
|
||||
will behave identically (save you from typing it).
|
||||
@@ -181,7 +181,7 @@ to add the tag `native` to the
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</Content>
|
||||
```
|
||||
* Generate the runtime package to a defined directory (i.e. so later in meta CMakeSwig package we will be able to locate it)
|
||||
* Generate the runtime package to a defined directory (i.e. so later in meta OrTools package we will be able to locate it)
|
||||
```xml
|
||||
<PackageOutputPath>{...}/packages</PackageOutputPath>
|
||||
```
|
||||
@@ -192,19 +192,19 @@ to add the tag `native` to the
|
||||
|
||||
Then you can generate the package using:
|
||||
```bash
|
||||
dotnet pack src/runtime.{rid}.CMakeSwig
|
||||
dotnet pack src/runtime.{rid}.OrTools
|
||||
```
|
||||
note: this will automatically trigger the `dotnet build`.
|
||||
|
||||
If everything good the package (located where your `PackageOutputPath` was defined) should have this layout:
|
||||
```
|
||||
{...}/packages/Mizux.CMakeSwig.runtime.{rid}.nupkg:
|
||||
\- Mizux.CMakeSwig.runtime.{rid}.nuspec
|
||||
{...}/packages/Google.OrTools.runtime.{rid}.nupkg:
|
||||
\- Google.OrTools.runtime.{rid}.nuspec
|
||||
\- runtimes
|
||||
\- {rid}
|
||||
\- lib
|
||||
\- {framework}
|
||||
\- Mizux.CMakeSwig.dll
|
||||
\- Google.OrTools.dll
|
||||
\- native
|
||||
\- *.so / *.dylib / *.dll
|
||||
...
|
||||
@@ -213,10 +213,10 @@ note: `{rid}` could be `linux-x64` and `{framework}` could be `netstandard2.0`
|
||||
|
||||
tips: since nuget package are zip archive you can use `unzip -l <package>.nupkg` to study their layout.
|
||||
|
||||
### Building local Mizux.CMakeSwig Package
|
||||
So now, let's create the local `Mizux.CMakeSwig.nupkg` nuget package which will depend on our previous runtime package.
|
||||
### Building local Google.OrTools Package
|
||||
So now, let's create the local `Google.OrTools.nupkg` nuget package which will depend on our previous runtime package.
|
||||
|
||||
Here some dev-note concerning this `CMakeSwig.csproj`.
|
||||
Here some dev-note concerning this `OrTools.csproj`.
|
||||
* This package is a meta-package so we don't want to ship an empty assembly file:
|
||||
```xml
|
||||
<IncludeBuildOutput>false</IncludeBuildOutput>
|
||||
@@ -227,16 +227,16 @@ Here some dev-note concerning this `CMakeSwig.csproj`.
|
||||
```
|
||||
* Add dependency (i.e. `PackageReference`) on each runtime package(s) availabe:
|
||||
```xml
|
||||
<ItemGroup Condition="Exists('{...}/packages/Mizux.CMakeSwig.runtime.linux-x64.1.0.0.nupkg')">
|
||||
<PackageReference Include="Mizux.CMakeSwig.runtime.linux-x64" Version="1.0.0" />
|
||||
<ItemGroup Condition="Exists('{...}/packages/Google.OrTools.runtime.linux-x64.1.0.0.nupkg')">
|
||||
<PackageReference Include="Google.OrTools.runtime.linux-x64" Version="1.0.0" />
|
||||
</ItemGroup>
|
||||
```
|
||||
Thanks to the `RestoreSource` we can work locally we our just builded package
|
||||
without the need to upload it on [nuget.org](https://www.nuget.org/).
|
||||
* To expose the .Net Surface API the `CMakeSwig.csproj` must contains a least one
|
||||
* To expose the .Net Surface API the `OrTools.csproj` must contains a least one
|
||||
[Reference Assembly](https://docs.microsoft.com/en-us/nuget/reference/nuspec#explicit-assembly-references) of the previously rumtime package.
|
||||
```xml
|
||||
<Content Include="../Mizux.CMakeSwig.runtime.{rid}/bin/$(Configuration)/$(TargetFramework)/{rid}/ref/*.dll">
|
||||
<Content Include="../Google.OrTools.runtime.{rid}/bin/$(Configuration)/$(TargetFramework)/{rid}/ref/*.dll">
|
||||
<PackagePath>ref/$(TargetFramework)/%(Filename)%(Extension)</PackagePath>
|
||||
<Pack>true</Pack>
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
@@ -245,104 +245,104 @@ Here some dev-note concerning this `CMakeSwig.csproj`.
|
||||
|
||||
Then you can generate the package using:
|
||||
```bash
|
||||
dotnet pack src/.CMakeSwig
|
||||
dotnet pack src/.OrTools
|
||||
```
|
||||
|
||||
If everything good the package (located where your `PackageOutputPath` was defined) should have this layout:
|
||||
```
|
||||
{...}/packages/Mizux.CMakeSwig.nupkg:
|
||||
\- Mizux.CMakeSwig.nuspec
|
||||
{...}/packages/Google.OrTools.nupkg:
|
||||
\- Google.OrTools.nuspec
|
||||
\- ref
|
||||
\- {framework}
|
||||
\- Mizux.CMakeSwig.dll
|
||||
\- Google.OrTools.dll
|
||||
...
|
||||
```
|
||||
note: `{framework}` could be `netstandard2.0`
|
||||
|
||||
### Testing local Mizux.CMakeSwig Package
|
||||
We can test everything is working by using the `CMakeSwigApp` project.
|
||||
### Testing local Google.OrTools Package
|
||||
We can test everything is working by using the `OrToolsApp` project.
|
||||
|
||||
First you can build it using:
|
||||
```
|
||||
dotnet build src/CMakeSwigApp
|
||||
dotnet build src/OrToolsApp
|
||||
```
|
||||
note: Since CMakeSwigApp `PackageReference` CMakeSwig and add `{...}/packages` to the `RestoreSource`.
|
||||
During the build of CMakeSwigApp you can see that `Mizux.CMakeSwig` and
|
||||
`Mizux.CMakeSwig.runtime.{rid}` are automatically installed in the nuget cache.
|
||||
note: Since OrToolsApp `PackageReference` OrTools and add `{...}/packages` to the `RestoreSource`.
|
||||
During the build of OrToolsApp you can see that `Google.OrTools` and
|
||||
`Google.OrTools.runtime.{rid}` are automatically installed in the nuget cache.
|
||||
|
||||
Then you can run it using:
|
||||
```
|
||||
dotnet build src/CMakeSwigApp
|
||||
dotnet build src/OrToolsApp
|
||||
```
|
||||
|
||||
You should see something like this
|
||||
```bash
|
||||
[1] Enter CMakeSwigApp
|
||||
[2] Enter CMakeSwig
|
||||
[3] Enter CMakeSwig.{rid}
|
||||
[3] Exit CMakeSwig.{rid}
|
||||
[2] Exit CMakeSwig
|
||||
[1] Exit CMakeSwigApp
|
||||
[1] Enter OrToolsApp
|
||||
[2] Enter OrTools
|
||||
[3] Enter OrTools.{rid}
|
||||
[3] Exit OrTools.{rid}
|
||||
[2] Exit OrTools
|
||||
[1] Exit OrToolsApp
|
||||
```
|
||||
|
||||
## Complete Mizux.CMakeSwig Package
|
||||
Let's start with scenario 2: Create a *Complete* `Mizux.CMakeSwig.nupkg` package targeting multiple [Runtime Identifier (RID)](https://docs.microsoft.com/en-us/dotnet/core/rid-catalog).
|
||||
We would like to build a `Mizux.CMakeSwig.nupkg` package which depends on several `Mizux.CMakeSwig.runtime.{rid}.nupkg`.
|
||||
## Complete Google.OrTools Package
|
||||
Let's start with scenario 2: Create a *Complete* `Google.OrTools.nupkg` package targeting multiple [Runtime Identifier (RID)](https://docs.microsoft.com/en-us/dotnet/core/rid-catalog).
|
||||
We would like to build a `Google.OrTools.nupkg` package which depends on several `Google.OrTools.runtime.{rid}.nupkg`.
|
||||
|
||||
The pipeline should be as follow:
|
||||
note: This pipeline should be run on any architecture,
|
||||
provided you have generated the three architecture dependent `Mizux.CMakeSwig.runtime.{rid}.nupkg` nuget packages.
|
||||
provided you have generated the three architecture dependent `Google.OrTools.runtime.{rid}.nupkg` nuget packages.
|
||||

|
||||

|
||||
|
||||
### Building All runtime Mizux.CMakeSwig Package
|
||||
### Building All runtime Google.OrTools Package
|
||||
Like in the previous scenario, on each targeted OS Platform you can build the corresponding
|
||||
`runtime.{rid}.Mizux.CMakeSwig.nupkg` package.
|
||||
`runtime.{rid}.Google.OrTools.nupkg` package.
|
||||
|
||||
Simply run on each platform
|
||||
```bash
|
||||
dotnet build src/runtime.{rid}.CMakeSwig
|
||||
dotnet pack src/runtime.{rid}.CMakeSwig
|
||||
dotnet build src/runtime.{rid}.OrTools
|
||||
dotnet pack src/runtime.{rid}.OrTools
|
||||
```
|
||||
note: replace `{rid}` by the Runtime Identifier associated to the current OS platform.
|
||||
|
||||
Then on one machine used, you copy all other packages in the `{...}/packages` so
|
||||
when building `CMakeSwig.csproj` we can have access to all package...
|
||||
when building `OrTools.csproj` we can have access to all package...
|
||||
|
||||
### Building Complete Mizux.CMakeSwig Package
|
||||
### Building Complete Google.OrTools Package
|
||||
This is the same step than in the previous scenario, since we "see" all runtime
|
||||
packages in `{...}/packages`, the project will depends on each of them.
|
||||
|
||||
Once copied all runtime package locally, simply run:
|
||||
```bash
|
||||
dotnet build src/CMakeSwig
|
||||
dotnet pack src/CMakeSwig
|
||||
dotnet build src/OrTools
|
||||
dotnet pack src/OrTools
|
||||
```
|
||||
|
||||
### Testing Complete Mizux.CMakeSwig Package
|
||||
We can test everything is working by using the `CMakeSwigApp` project.
|
||||
### Testing Complete Google.OrTools Package
|
||||
We can test everything is working by using the `OrToolsApp` project.
|
||||
|
||||
First you can build it using:
|
||||
```
|
||||
dotnet build src/CMakeSwigApp
|
||||
dotnet build src/OrToolsApp
|
||||
```
|
||||
note: Since CMakeSwigApp `PackageReference` CMakeSwig and add `{...}/packages` to the `RestoreSource`.
|
||||
During the build of CMakeSwigApp you can see that `Mizux.CMakeSwig` and
|
||||
`runtime.{rid}.Mizux.CMakeSwig` are automatically installed in the nuget cache.
|
||||
note: Since OrToolsApp `PackageReference` OrTools and add `{...}/packages` to the `RestoreSource`.
|
||||
During the build of OrToolsApp you can see that `Google.OrTools` and
|
||||
`runtime.{rid}.Google.OrTools` are automatically installed in the nuget cache.
|
||||
|
||||
Then you can run it using:
|
||||
```
|
||||
dotnet run --project src/CMakeSwigApp
|
||||
dotnet run --project src/OrToolsApp
|
||||
```
|
||||
|
||||
You should see something like this
|
||||
```bash
|
||||
[1] Enter CMakeSwigApp
|
||||
[2] Enter CMakeSwig
|
||||
[3] Enter CMakeSwig.{rid}
|
||||
[3] Exit CMakeSwig.{rid}
|
||||
[2] Exit CMakeSwig
|
||||
[1] Exit CMakeSwigApp
|
||||
[1] Enter OrToolsApp
|
||||
[2] Enter OrTools
|
||||
[3] Enter OrTools.{rid}
|
||||
[3] Exit OrTools.{rid}
|
||||
[2] Exit OrTools
|
||||
[1] Exit OrToolsApp
|
||||
```
|
||||
|
||||
# Ressources
|
||||
|
||||
@@ -3,6 +3,6 @@ set -ex
|
||||
|
||||
rm -f *.svg *.png
|
||||
for i in *.dot; do
|
||||
plantuml -Tpng "$i";
|
||||
#plantuml -Tpng "$i";
|
||||
plantuml -Tsvg "$i";
|
||||
done
|
||||
|
||||
@@ -1,102 +1,11 @@
|
||||
# Create a virtual environment with all tools installed
|
||||
# ref: https://hub.docker.com/_/alpine
|
||||
FROM alpine:edge AS env
|
||||
FROM alpine:edge AS base
|
||||
LABEL maintainer="mizux.dev@gmail.com"
|
||||
# Install system build dependencies
|
||||
ENV PATH=$PATH:/usr/local/bin
|
||||
ENV PATH=/usr/local/bin:$PATH
|
||||
RUN apk add --no-cache git build-base linux-headers cmake
|
||||
CMD [ "/bin/sh" ]
|
||||
|
||||
|
||||
|
||||
|
||||
# Add the library src to our build env
|
||||
FROM env AS cpp
|
||||
# Create lib directory
|
||||
WORKDIR /home/lib
|
||||
# Bundle lib source
|
||||
COPY . .
|
||||
# CMake version
|
||||
RUN cmake -version
|
||||
# CMake configure
|
||||
RUN cmake -S. -Bbuild -DBUILD_DEPS=ON
|
||||
# CMake build
|
||||
RUN cmake --build build --target all -v
|
||||
# CMake build
|
||||
RUN cmake --build build --target install
|
||||
|
||||
|
||||
|
||||
FROM env AS python
|
||||
# Swig install
|
||||
FROM base AS swig
|
||||
RUN apk add --no-cache swig
|
||||
# Python install
|
||||
RUN apk add --no-cache python3-dev py3-pip
|
||||
# Create lib directory
|
||||
WORKDIR /home/lib
|
||||
# Bundle lib source
|
||||
COPY . .
|
||||
# CMake configure
|
||||
RUN cmake -S. -Bbuild -DBUILD_DEPS=ON -DBUILD_PYTHON=ON
|
||||
# CMake build
|
||||
RUN cmake --build build --target all -v
|
||||
# CMake build
|
||||
RUN cmake --build build --target install
|
||||
|
||||
|
||||
|
||||
FROM env AS java
|
||||
# Swig install
|
||||
RUN apk add --no-cache swig
|
||||
# Java install
|
||||
ENV JAVA_HOME=/usr/lib/jvm/java-1.8-openjdk
|
||||
RUN apk add --no-cache openjdk8
|
||||
# Create lib directory
|
||||
WORKDIR /home/lib
|
||||
# Bundle lib source
|
||||
COPY . .
|
||||
# CMake configure
|
||||
RUN cmake -S. -Bbuild -DBUILD_DEPS=ON -DBUILD_JAVA=ON
|
||||
# CMake build
|
||||
RUN cmake --build build --target all -v
|
||||
# CMake build
|
||||
RUN cmake --build build --target install
|
||||
|
||||
|
||||
|
||||
FROM env AS dotnet
|
||||
# Swig install
|
||||
RUN apk add --no-cache swig
|
||||
# Add dependencies for disabling invariant mode (set in base image)
|
||||
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
|
||||
# Create lib directory
|
||||
WORKDIR /home/lib
|
||||
# Bundle lib source
|
||||
COPY . .
|
||||
# CMake configure
|
||||
RUN cmake -S. -Bbuild -DBUILD_DEPS=ON -DBUILD_DOTNET=ON
|
||||
# CMake build
|
||||
RUN cmake --build build --target all -v
|
||||
# CMake build
|
||||
RUN cmake --build build --target install
|
||||
|
||||
|
||||
|
||||
# Create an install image
|
||||
FROM env AS install_cpp
|
||||
# Copy lib from devel to prod
|
||||
COPY --from=cpp /usr/local /usr/local/
|
||||
# Copy sample
|
||||
WORKDIR /home/sample
|
||||
COPY ci/sample .
|
||||
|
||||
29
cmake/docker/alpine/cpp.Dockerfile
Normal file
29
cmake/docker/alpine/cpp.Dockerfile
Normal file
@@ -0,0 +1,29 @@
|
||||
FROM ortools:alpine_base AS env
|
||||
RUN cmake -version
|
||||
|
||||
FROM env AS devel
|
||||
WORKDIR /home/lib
|
||||
COPY . .
|
||||
|
||||
FROM devel AS build
|
||||
RUN cmake -S. -Bbuild -DBUILD_DEPS=ON
|
||||
RUN cmake --build build --target all -v
|
||||
RUN cmake --build build --target install
|
||||
|
||||
FROM build AS test
|
||||
RUN cmake --build build --target test
|
||||
|
||||
FROM env AS install_env
|
||||
COPY --from=build /usr/local /usr/local/
|
||||
|
||||
FROM install_env AS install_devel
|
||||
WORKDIR /home/sample
|
||||
COPY ci/sample .
|
||||
|
||||
FROM install_devel AS install_build
|
||||
RUN cmake -S. -Bbuild
|
||||
RUN cmake --build build --target all -v
|
||||
RUN cmake --build build --target install
|
||||
|
||||
FROM install_build AS install_test
|
||||
RUN cmake --build build --target test
|
||||
40
cmake/docker/alpine/dotnet.Dockerfile
Normal file
40
cmake/docker/alpine/dotnet.Dockerfile
Normal file
@@ -0,0 +1,40 @@
|
||||
FROM ortools: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 cmake -S. -Bbuild -DBUILD_DEPS=ON -DBUILD_DOTNET=ON
|
||||
RUN cmake --build build --target all -v
|
||||
RUN cmake --build build --target install
|
||||
|
||||
FROM build AS test
|
||||
RUN cmake --build build --target test
|
||||
|
||||
FROM env AS install_env
|
||||
COPY --from=build /usr/local /usr/local/
|
||||
|
||||
FROM install_env AS install_devel
|
||||
WORKDIR /home/sample
|
||||
COPY ci/sample .
|
||||
|
||||
FROM install_devel AS install_build
|
||||
RUN cmake -S. -Bbuild -DBUILD_DOTNET=ON
|
||||
RUN cmake --build build --target all -v
|
||||
RUN cmake --build build --target install
|
||||
|
||||
FROM install_build AS install_test
|
||||
RUN cmake --build build --target test
|
||||
30
cmake/docker/alpine/java.Dockerfile
Normal file
30
cmake/docker/alpine/java.Dockerfile
Normal file
@@ -0,0 +1,30 @@
|
||||
FROM ortools: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 cmake -S. -Bbuild -DBUILD_DEPS=ON -DBUILD_JAVA=ON
|
||||
RUN cmake --build build --target all -v
|
||||
RUN cmake --build build --target install
|
||||
|
||||
FROM build AS test
|
||||
RUN cmake --build build --target test
|
||||
|
||||
FROM env AS install_env
|
||||
COPY --from=build /usr/local /usr/local/
|
||||
|
||||
FROM install_env AS install_devel
|
||||
WORKDIR /home/sample
|
||||
COPY ci/sample .
|
||||
|
||||
FROM install_devel AS install_build
|
||||
RUN cmake -S. -Bbuild -DBUILD_DOTNET=ON
|
||||
RUN cmake --build build --target all -v
|
||||
RUN cmake --build build --target install
|
||||
|
||||
FROM install_build AS install_test
|
||||
RUN cmake --build build --target test
|
||||
29
cmake/docker/alpine/python.Dockerfile
Normal file
29
cmake/docker/alpine/python.Dockerfile
Normal file
@@ -0,0 +1,29 @@
|
||||
FROM ortools:alpine_swig AS env
|
||||
RUN apk add --no-cache python3-dev py3-pip
|
||||
|
||||
FROM env AS devel
|
||||
WORKDIR /home/lib
|
||||
COPY . .
|
||||
|
||||
FROM devel AS build
|
||||
RUN cmake -S. -Bbuild -DBUILD_DEPS=ON -DBUILD_PYTHON=ON
|
||||
RUN cmake --build build --target all -v
|
||||
RUN cmake --build build --target install
|
||||
|
||||
FROM build AS test
|
||||
RUN cmake --build build --target test
|
||||
|
||||
FROM env AS install_env
|
||||
COPY --from=build /usr/local /usr/local/
|
||||
|
||||
FROM install_env AS install_devel
|
||||
WORKDIR /home/sample
|
||||
COPY ci/sample .
|
||||
|
||||
FROM install_devel AS install_build
|
||||
RUN cmake -S. -Bbuild -DBUILD_DOTNET=ON
|
||||
RUN cmake --build build --target all -v
|
||||
RUN cmake --build build --target install
|
||||
|
||||
FROM install_build AS install_test
|
||||
RUN cmake --build build --target test
|
||||
@@ -1,92 +1,11 @@
|
||||
# Create a virtual environment with all tools installed
|
||||
# ref: https://hub.docker.com/_/archlinux/
|
||||
FROM archlinux/base AS env
|
||||
FROM archlinux/base AS base
|
||||
LABEL maintainer="mizux.dev@gmail.com"
|
||||
# Install system build dependencies
|
||||
ENV PATH=$PATH:/usr/local/bin
|
||||
ENV PATH=/usr/local/bin:$PATH
|
||||
RUN pacman -Syu --noconfirm git base-devel cmake
|
||||
CMD [ "/bin/sh" ]
|
||||
|
||||
|
||||
|
||||
# Add the library src to our build env
|
||||
FROM env AS cpp
|
||||
# Create lib directory
|
||||
WORKDIR /home/lib
|
||||
# Bundle lib source
|
||||
COPY . .
|
||||
# CMake version
|
||||
RUN cmake -version
|
||||
# CMake configure
|
||||
RUN cmake -S. -Bbuild -DBUILD_DEPS=ON
|
||||
# CMake build
|
||||
RUN cmake --build build --target all -v
|
||||
# CMake build
|
||||
RUN cmake --build build --target install
|
||||
|
||||
|
||||
|
||||
# Add the library src to our build env
|
||||
FROM env AS python
|
||||
# Swig install
|
||||
FROM base AS swig
|
||||
RUN pacman -Syu --noconfirm swig
|
||||
# Python install
|
||||
RUN pacman -Syu --noconfirm python python-pip
|
||||
# Create lib directory
|
||||
WORKDIR /home/lib
|
||||
# Bundle lib source
|
||||
COPY . .
|
||||
# CMake configure
|
||||
RUN cmake -S. -Bbuild -DBUILD_DEPS=ON -DBUILD_PYTHON=ON
|
||||
# CMake build
|
||||
RUN cmake --build build --target all -v
|
||||
# CMake build
|
||||
RUN cmake --build build --target install
|
||||
|
||||
|
||||
|
||||
# Add the library src to our build env
|
||||
FROM env AS java
|
||||
# Swig install
|
||||
RUN pacman -Syu --noconfirm swig
|
||||
# Java install
|
||||
RUN pacman -Syu --noconfirm jdk-openjdk
|
||||
# Create lib directory
|
||||
WORKDIR /home/lib
|
||||
# Bundle lib source
|
||||
COPY . .
|
||||
# CMake configure
|
||||
RUN cmake -S. -Bbuild -DBUILD_DEPS=ON -DBUILD_JAVA=ON
|
||||
# CMake build
|
||||
RUN cmake --build build --target all -v
|
||||
# CMake build
|
||||
RUN cmake --build build --target install
|
||||
|
||||
|
||||
|
||||
# Add the library src to our build env
|
||||
FROM env AS dotnet
|
||||
# Swig install
|
||||
RUN pacman -Syu --noconfirm swig
|
||||
# .Net install
|
||||
RUN pacman -Syu --noconfirm dotnet-sdk
|
||||
# Create lib directory
|
||||
WORKDIR /home/lib
|
||||
# Bundle lib source
|
||||
COPY . .
|
||||
# CMake configure
|
||||
RUN cmake -S. -Bbuild -DBUILD_DEPS=ON -DBUILD_DOTNET=ON
|
||||
# CMake build
|
||||
RUN cmake --build build --target all -v
|
||||
# CMake build
|
||||
RUN cmake --build build --target install
|
||||
|
||||
|
||||
|
||||
# Create an install image
|
||||
FROM env AS install_cpp
|
||||
# Copy lib from devel to prod
|
||||
COPY --from=cpp /usr/local /usr/local/
|
||||
# Copy sample
|
||||
WORKDIR /home/sample
|
||||
COPY ci/sample .
|
||||
|
||||
29
cmake/docker/archlinux/cpp.Dockerfile
Normal file
29
cmake/docker/archlinux/cpp.Dockerfile
Normal file
@@ -0,0 +1,29 @@
|
||||
FROM ortools:archlinux_base AS env
|
||||
RUN cmake -version
|
||||
|
||||
FROM env AS devel
|
||||
WORKDIR /home/lib
|
||||
COPY . .
|
||||
|
||||
FROM devel AS build
|
||||
RUN cmake -S. -Bbuild -DBUILD_DEPS=ON
|
||||
RUN cmake --build build --target all -v
|
||||
RUN cmake --build build --target install
|
||||
|
||||
FROM build AS test
|
||||
RUN cmake --build build --target test
|
||||
|
||||
FROM env AS install_env
|
||||
COPY --from=build /usr/local /usr/local/
|
||||
|
||||
FROM install_env AS install_devel
|
||||
WORKDIR /home/sample
|
||||
COPY ci/sample .
|
||||
|
||||
FROM install_devel AS install_build
|
||||
RUN cmake -S. -Bbuild
|
||||
RUN cmake --build build --target all -v
|
||||
RUN cmake --build build --target install
|
||||
|
||||
FROM install_build AS install_test
|
||||
RUN cmake --build build --target test
|
||||
29
cmake/docker/archlinux/dotnet.Dockerfile
Normal file
29
cmake/docker/archlinux/dotnet.Dockerfile
Normal file
@@ -0,0 +1,29 @@
|
||||
FROM ortools:archlinux_swig AS env
|
||||
RUN pacman -Syu --noconfirm dotnet-sdk
|
||||
|
||||
FROM env AS devel
|
||||
WORKDIR /home/lib
|
||||
COPY . .
|
||||
|
||||
FROM devel AS build
|
||||
RUN cmake -S. -Bbuild -DBUILD_DEPS=ON -DBUILD_DOTNET=ON
|
||||
RUN cmake --build build --target all -v
|
||||
RUN cmake --build build --target install
|
||||
|
||||
FROM build AS test
|
||||
RUN cmake --build build --target test
|
||||
|
||||
FROM env AS install_env
|
||||
COPY --from=build /usr/local /usr/local/
|
||||
|
||||
FROM install_env AS install_devel
|
||||
WORKDIR /home/sample
|
||||
COPY ci/sample .
|
||||
|
||||
FROM install_devel AS install_build
|
||||
RUN cmake -S. -Bbuild -DBUILD_DOTNET=ON
|
||||
RUN cmake --build build --target all -v
|
||||
RUN cmake --build build --target install
|
||||
|
||||
FROM install_build AS install_test
|
||||
RUN cmake --build build --target test
|
||||
29
cmake/docker/archlinux/java.Dockerfile
Normal file
29
cmake/docker/archlinux/java.Dockerfile
Normal file
@@ -0,0 +1,29 @@
|
||||
FROM ortools:archlinux_swig AS env
|
||||
RUN pacman -Syu --noconfirm jdk-openjdk maven
|
||||
|
||||
FROM env AS devel
|
||||
WORKDIR /home/lib
|
||||
COPY . .
|
||||
|
||||
FROM devel AS build
|
||||
RUN cmake -S. -Bbuild -DBUILD_DEPS=ON -DBUILD_JAVA=ON
|
||||
RUN cmake --build build --target all -v
|
||||
RUN cmake --build build --target install
|
||||
|
||||
FROM build AS test
|
||||
RUN cmake --build build --target test
|
||||
|
||||
FROM env AS install_env
|
||||
COPY --from=build /usr/local /usr/local/
|
||||
|
||||
FROM install_env AS install_devel
|
||||
WORKDIR /home/sample
|
||||
COPY ci/sample .
|
||||
|
||||
FROM install_devel AS install_build
|
||||
RUN cmake -S. -Bbuild -DBUILD_DOTNET=ON
|
||||
RUN cmake --build build --target all -v
|
||||
RUN cmake --build build --target install
|
||||
|
||||
FROM install_build AS install_test
|
||||
RUN cmake --build build --target test
|
||||
29
cmake/docker/archlinux/python.Dockerfile
Normal file
29
cmake/docker/archlinux/python.Dockerfile
Normal file
@@ -0,0 +1,29 @@
|
||||
FROM ortools:archlinux_swig AS env
|
||||
RUN pacman -Syu --noconfirm python python-pip
|
||||
|
||||
FROM env AS devel
|
||||
WORKDIR /home/lib
|
||||
COPY . .
|
||||
|
||||
FROM devel AS build
|
||||
RUN cmake -S. -Bbuild -DBUILD_DEPS=ON -DBUILD_PYTHON=ON
|
||||
RUN cmake --build build --target all -v
|
||||
RUN cmake --build build --target install
|
||||
|
||||
FROM build AS test
|
||||
RUN cmake --build build --target test
|
||||
|
||||
FROM env AS install_env
|
||||
COPY --from=build /usr/local /usr/local/
|
||||
|
||||
FROM install_env AS install_devel
|
||||
WORKDIR /home/sample
|
||||
COPY ci/sample .
|
||||
|
||||
FROM install_devel AS install_build
|
||||
RUN cmake -S. -Bbuild
|
||||
RUN cmake --build build --target all -v
|
||||
RUN cmake --build build --target install
|
||||
|
||||
FROM install_build AS install_test
|
||||
RUN cmake --build build --target test
|
||||
@@ -1,9 +1,9 @@
|
||||
# Create a virtual environment with all tools installed
|
||||
# ref: https://hub.docker.com/_/centos
|
||||
FROM centos:latest AS env
|
||||
FROM centos:latest AS base
|
||||
LABEL maintainer="mizux.dev@gmail.com"
|
||||
# Install system build dependencies
|
||||
ENV PATH=$PATH:/usr/local/bin
|
||||
ENV PATH=/usr/local/bin:$PATH
|
||||
RUN yum -y update \
|
||||
&& yum -y install git wget openssl-devel \
|
||||
&& yum -y groupinstall "Development Tools" \
|
||||
@@ -16,28 +16,7 @@ RUN wget "https://cmake.org/files/v3.16/cmake-3.16.4-Linux-x86_64.sh" \
|
||||
&& rm cmake-3.16.4-Linux-x86_64.sh
|
||||
CMD [ "/bin/sh" ]
|
||||
|
||||
|
||||
|
||||
# Add the library src to our build env
|
||||
FROM env AS cpp
|
||||
# Create lib directory
|
||||
WORKDIR /home/lib
|
||||
# Bundle lib source
|
||||
COPY . .
|
||||
# CMake version
|
||||
RUN cmake -version
|
||||
# CMake configure
|
||||
RUN cmake -H. -Bbuild -DBUILD_DEPS=ON
|
||||
# CMake build
|
||||
RUN cmake --build build --target all
|
||||
# CMake build
|
||||
RUN cmake --build build --target install
|
||||
|
||||
|
||||
|
||||
# Add the library src to our build env
|
||||
FROM env AS python
|
||||
# Swig install
|
||||
FROM base AS swig
|
||||
RUN yum -y update \
|
||||
&& yum -y install pcre-devel \
|
||||
&& yum clean all \
|
||||
@@ -51,98 +30,3 @@ RUN yum -y update \
|
||||
&& make install \
|
||||
&& cd .. \
|
||||
&& rm -rf swig-4.0.1
|
||||
# Python install
|
||||
RUN yum -y update \
|
||||
&& yum -y install python36-devel \
|
||||
&& yum clean all \
|
||||
&& rm -rf /var/cache/yum
|
||||
# Create lib directory
|
||||
WORKDIR /home/lib
|
||||
# Bundle lib source
|
||||
COPY . .
|
||||
# CMake configure
|
||||
RUN cmake -H. -Bbuild -DBUILD_DEPS=ON -DBUILD_PYTHON=ON
|
||||
# CMake build
|
||||
RUN cmake --build build --target all
|
||||
# CMake build
|
||||
RUN cmake --build build --target install
|
||||
|
||||
|
||||
|
||||
# Add the library src to our build env
|
||||
FROM env AS java
|
||||
# Swig install
|
||||
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
|
||||
# Java install
|
||||
RUN yum -y update \
|
||||
&& yum -y install java-1.8.0-openjdk java-1.8.0-openjdk-devel \
|
||||
&& yum clean all \
|
||||
&& rm -rf /var/cache/yum
|
||||
# Create lib directory
|
||||
WORKDIR /home/lib
|
||||
# Bundle lib source
|
||||
COPY . .
|
||||
# CMake configure
|
||||
RUN cmake -H. -Bbuild -DBUILD_DEPS=ON -DBUILD_JAVA=ON
|
||||
# CMake build
|
||||
RUN cmake --build build --target all
|
||||
# CMake build
|
||||
RUN cmake --build build --target install
|
||||
|
||||
|
||||
|
||||
# Add the library src to our build env
|
||||
FROM env AS dotnet
|
||||
# Swig install
|
||||
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
|
||||
# .Net install
|
||||
# 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
|
||||
# Create lib directory
|
||||
WORKDIR /home/lib
|
||||
# Bundle lib source
|
||||
COPY . .
|
||||
# CMake configure
|
||||
RUN cmake -S. -Bbuild -DBUILD_DEPS=ON -DBUILD_DOTNET=ON
|
||||
# CMake build
|
||||
RUN cmake --build build --target all
|
||||
# CMake build
|
||||
RUN cmake --build build --target install
|
||||
|
||||
|
||||
|
||||
# Create an install image
|
||||
FROM env AS install_cpp
|
||||
# Copy lib from devel to prod
|
||||
COPY --from=cpp /usr/local /usr/local/
|
||||
# Copy sample
|
||||
WORKDIR /home/sample
|
||||
COPY ci/sample .
|
||||
|
||||
29
cmake/docker/centos/cpp.Dockerfile
Normal file
29
cmake/docker/centos/cpp.Dockerfile
Normal file
@@ -0,0 +1,29 @@
|
||||
FROM ortools:centos_base AS env
|
||||
RUN cmake -version
|
||||
|
||||
FROM env AS devel
|
||||
WORKDIR /home/lib
|
||||
COPY . .
|
||||
|
||||
FROM devel AS build
|
||||
RUN cmake -S. -Bbuild -DBUILD_DEPS=ON
|
||||
RUN cmake --build build --target all
|
||||
RUN cmake --build build --target install
|
||||
|
||||
FROM build AS test
|
||||
RUN cmake --build build --target test
|
||||
|
||||
FROM env AS install_env
|
||||
COPY --from=build /usr/local /usr/local/
|
||||
|
||||
FROM install_env AS install_devel
|
||||
WORKDIR /home/sample
|
||||
COPY ci/sample .
|
||||
|
||||
FROM install_devel AS install_build
|
||||
RUN cmake -S. -Bbuild
|
||||
RUN cmake --build build --target all -v
|
||||
RUN cmake --build build --target install
|
||||
|
||||
FROM install_build AS install_test
|
||||
RUN cmake --build build --target test
|
||||
34
cmake/docker/centos/dotnet.Dockerfile
Normal file
34
cmake/docker/centos/dotnet.Dockerfile
Normal file
@@ -0,0 +1,34 @@
|
||||
FROM ortools: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
|
||||
|
||||
FROM env AS devel
|
||||
WORKDIR /home/lib
|
||||
COPY . .
|
||||
|
||||
FROM devel AS build
|
||||
RUN cmake -S. -Bbuild -DBUILD_DEPS=ON -DBUILD_DOTNET=ON
|
||||
RUN cmake --build build --target all
|
||||
RUN cmake --build build --target install
|
||||
|
||||
FROM build AS test
|
||||
RUN cmake --build build --target test
|
||||
|
||||
FROM env AS install_env
|
||||
COPY --from=build /usr/local /usr/local/
|
||||
|
||||
FROM install_env AS install_devel
|
||||
WORKDIR /home/sample
|
||||
COPY ci/sample .
|
||||
|
||||
FROM install_devel AS install_build
|
||||
RUN cmake -S. -Bbuild -DBUILD_DOTNET=ON
|
||||
RUN cmake --build build --target all -v
|
||||
RUN cmake --build build --target install
|
||||
|
||||
FROM install_build AS install_test
|
||||
RUN cmake --build build --target test
|
||||
32
cmake/docker/centos/java.Dockerfile
Normal file
32
cmake/docker/centos/java.Dockerfile
Normal file
@@ -0,0 +1,32 @@
|
||||
FROM ortools: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 cmake -S. -Bbuild -DBUILD_DEPS=ON -DBUILD_JAVA=ON
|
||||
RUN cmake --build build --target all
|
||||
RUN cmake --build build --target install
|
||||
|
||||
FROM build AS test
|
||||
RUN cmake --build build --target test
|
||||
|
||||
FROM env AS install_env
|
||||
COPY --from=build /usr/local /usr/local/
|
||||
|
||||
FROM install_env AS install_devel
|
||||
WORKDIR /home/sample
|
||||
COPY ci/sample .
|
||||
|
||||
FROM install_devel AS install_build
|
||||
RUN cmake -S. -Bbuild -DBUILD_DOTNET=ON
|
||||
RUN cmake --build build --target all -v
|
||||
RUN cmake --build build --target install
|
||||
|
||||
FROM install_build AS install_test
|
||||
RUN cmake --build build --target test
|
||||
32
cmake/docker/centos/python.Dockerfile
Normal file
32
cmake/docker/centos/python.Dockerfile
Normal file
@@ -0,0 +1,32 @@
|
||||
FROM ortools:centos_swig AS env
|
||||
RUN yum -y update \
|
||||
&& yum -y install python36-devel \
|
||||
&& yum clean all \
|
||||
&& rm -rf /var/cache/yum
|
||||
|
||||
FROM env AS devel
|
||||
WORKDIR /home/lib
|
||||
COPY . .
|
||||
|
||||
FROM devel AS build
|
||||
RUN cmake -S. -Bbuild -DBUILD_DEPS=ON -DBUILD_PYTHON=ON
|
||||
RUN cmake --build build --target all
|
||||
RUN cmake --build build --target install
|
||||
|
||||
FROM build AS test
|
||||
RUN cmake --build build --target test
|
||||
|
||||
FROM env AS install_env
|
||||
COPY --from=build /usr/local /usr/local/
|
||||
|
||||
FROM install_env AS install_devel
|
||||
WORKDIR /home/sample
|
||||
COPY ci/sample .
|
||||
|
||||
FROM install_devel AS install_build
|
||||
RUN cmake -S. -Bbuild
|
||||
RUN cmake --build build --target all -v
|
||||
RUN cmake --build build --target install
|
||||
|
||||
FROM install_build AS install_test
|
||||
RUN cmake --build build --target test
|
||||
@@ -1,9 +1,9 @@
|
||||
# Create a virtual environment with all tools installed
|
||||
# ref: https://hub.docker.com/_/debian
|
||||
FROM debian:latest AS env
|
||||
FROM debian:latest AS base
|
||||
LABEL maintainer="mizux.dev@gmail.com"
|
||||
# Install system build dependencies
|
||||
ENV PATH=$PATH:/usr/local/bin
|
||||
ENV PATH=/usr/local/bin:$PATH
|
||||
RUN apt-get update -qq \
|
||||
&& apt-get install -yq git wget libssl-dev build-essential \
|
||||
&& apt-get clean \
|
||||
@@ -15,112 +15,8 @@ RUN wget "https://cmake.org/files/v3.16/cmake-3.16.4-Linux-x86_64.sh" \
|
||||
&& rm cmake-3.16.4-Linux-x86_64.sh
|
||||
CMD [ "/bin/sh" ]
|
||||
|
||||
|
||||
|
||||
|
||||
# Add the library src to our build env
|
||||
FROM env AS cpp
|
||||
# Create lib directory
|
||||
WORKDIR /home/lib
|
||||
# Bundle lib source
|
||||
COPY . .
|
||||
# CMake version
|
||||
RUN cmake -version
|
||||
# CMake configure
|
||||
RUN cmake -S. -Bbuild -DBUILD_DEPS=ON
|
||||
# CMake build
|
||||
RUN cmake --build build --target all
|
||||
# CMake build
|
||||
RUN cmake --build build --target install
|
||||
|
||||
|
||||
|
||||
FROM env AS python
|
||||
# Swig install
|
||||
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/*
|
||||
# Python install
|
||||
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/*
|
||||
# Create lib directory
|
||||
WORKDIR /home/lib
|
||||
# Bundle lib source
|
||||
COPY . .
|
||||
# CMake configure
|
||||
RUN cmake -S. -Bbuild -DBUILD_DEPS=ON -DBUILD_PYTHON=ON
|
||||
# CMake build
|
||||
RUN cmake --build build --target all
|
||||
# CMake build
|
||||
RUN cmake --build build --target install
|
||||
|
||||
|
||||
|
||||
FROM env AS java
|
||||
# Swig install
|
||||
RUN apt-get update -qq \
|
||||
&& apt-get install -yq swig \
|
||||
&& apt-get clean \
|
||||
&& rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
|
||||
# Java install
|
||||
RUN apt-get update -qq \
|
||||
&& apt-get install -yq default-jdk \
|
||||
&& apt-get clean \
|
||||
&& rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
|
||||
# Create lib directory
|
||||
WORKDIR /home/lib
|
||||
# Bundle lib source
|
||||
COPY . .
|
||||
# CMake configure
|
||||
RUN cmake -S. -Bbuild -DBUILD_DEPS=ON -DBUILD_JAVA=ON
|
||||
# CMake build
|
||||
RUN cmake --build build --target all
|
||||
# CMake build
|
||||
RUN cmake --build build --target install
|
||||
|
||||
|
||||
|
||||
|
||||
FROM env AS dotnet
|
||||
# Swig install
|
||||
RUN apt-get update -qq \
|
||||
&& apt-get install -yq swig \
|
||||
&& apt-get clean \
|
||||
&& rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
|
||||
# .Net install
|
||||
# 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
|
||||
# Create lib directory
|
||||
WORKDIR /home/lib
|
||||
# Bundle lib source
|
||||
COPY . .
|
||||
# CMake configure
|
||||
RUN cmake -S. -Bbuild -DBUILD_DEPS=ON -DBUILD_DOTNET=ON
|
||||
# CMake build
|
||||
RUN cmake --build build --target all
|
||||
# CMake build
|
||||
RUN cmake --build build --target install
|
||||
|
||||
|
||||
|
||||
# Create an install image
|
||||
FROM env AS install
|
||||
# Copy lib from devel to prod
|
||||
COPY --from=cpp /usr/local /usr/local/
|
||||
# Copy sample
|
||||
WORKDIR /home/sample
|
||||
COPY ci/sample .
|
||||
|
||||
29
cmake/docker/debian/cpp.Dockerfile
Normal file
29
cmake/docker/debian/cpp.Dockerfile
Normal file
@@ -0,0 +1,29 @@
|
||||
FROM ortools:debian_base AS env
|
||||
RUN cmake -version
|
||||
|
||||
FROM env AS devel
|
||||
WORKDIR /home/lib
|
||||
COPY . .
|
||||
|
||||
FROM devel AS build
|
||||
RUN cmake -S. -Bbuild -DBUILD_DEPS=ON
|
||||
RUN cmake --build build --target all
|
||||
RUN cmake --build build --target install
|
||||
|
||||
FROM build AS test
|
||||
RUN cmake --build build --target test
|
||||
|
||||
FROM env AS install_env
|
||||
COPY --from=build /usr/local /usr/local/
|
||||
|
||||
FROM install_env AS install_devel
|
||||
WORKDIR /home/sample
|
||||
COPY ci/sample .
|
||||
|
||||
FROM install_devel AS install_build
|
||||
RUN cmake -S. -Bbuild
|
||||
RUN cmake --build build --target all -v
|
||||
RUN cmake --build build --target install
|
||||
|
||||
FROM install_build AS install_test
|
||||
RUN cmake --build build --target test
|
||||
41
cmake/docker/debian/dotnet.Dockerfile
Normal file
41
cmake/docker/debian/dotnet.Dockerfile
Normal file
@@ -0,0 +1,41 @@
|
||||
FROM ortools: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 cmake -S. -Bbuild -DBUILD_DEPS=ON -DBUILD_DOTNET=ON
|
||||
RUN cmake --build build --target all
|
||||
RUN cmake --build build --target install
|
||||
|
||||
FROM build AS test
|
||||
RUN cmake --build build --target test
|
||||
|
||||
FROM env AS install_env
|
||||
COPY --from=build /usr/local /usr/local/
|
||||
|
||||
FROM install_env AS install_devel
|
||||
WORKDIR /home/sample
|
||||
COPY ci/sample .
|
||||
|
||||
FROM install_devel AS install_build
|
||||
RUN cmake -S. -Bbuild -DBUILD_DOTNET=ON
|
||||
RUN cmake --build build --target all -v
|
||||
RUN cmake --build build --target install
|
||||
|
||||
FROM install_build AS install_test
|
||||
RUN cmake --build build --target test
|
||||
32
cmake/docker/debian/java.Dockerfile
Normal file
32
cmake/docker/debian/java.Dockerfile
Normal file
@@ -0,0 +1,32 @@
|
||||
FROM ortools: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 cmake -S. -Bbuild -DBUILD_DEPS=ON -DBUILD_JAVA=ON
|
||||
RUN cmake --build build --target all
|
||||
RUN cmake --build build --target install
|
||||
|
||||
FROM build AS test
|
||||
RUN cmake --build build --target test
|
||||
|
||||
FROM env AS install_env
|
||||
COPY --from=build /usr/local /usr/local/
|
||||
|
||||
FROM install_env AS install_devel
|
||||
WORKDIR /home/sample
|
||||
COPY ci/sample .
|
||||
|
||||
FROM install_devel AS install_build
|
||||
RUN cmake -S. -Bbuild -DBUILD_DOTNET=ON
|
||||
RUN cmake --build build --target all -v
|
||||
RUN cmake --build build --target install
|
||||
|
||||
FROM install_build AS install_test
|
||||
RUN cmake --build build --target test
|
||||
32
cmake/docker/debian/python.Dockerfile
Normal file
32
cmake/docker/debian/python.Dockerfile
Normal file
@@ -0,0 +1,32 @@
|
||||
FROM ortools: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 cmake -S. -Bbuild -DBUILD_DEPS=ON -DBUILD_PYTHON=ON
|
||||
RUN cmake --build build --target all
|
||||
RUN cmake --build build --target install
|
||||
|
||||
FROM build AS test
|
||||
RUN cmake --build build --target test
|
||||
|
||||
FROM env AS install_env
|
||||
COPY --from=build /usr/local /usr/local/
|
||||
|
||||
FROM install_env AS install_devel
|
||||
WORKDIR /home/sample
|
||||
COPY ci/sample .
|
||||
|
||||
FROM install_devel AS install_build
|
||||
RUN cmake -S. -Bbuild
|
||||
RUN cmake --build build --target all -v
|
||||
RUN cmake --build build --target install
|
||||
|
||||
FROM install_build AS install_test
|
||||
RUN cmake --build build --target test
|
||||
@@ -1,9 +1,9 @@
|
||||
# Create a virtual environment with all tools installed
|
||||
# ref: https://hub.docker.com/_/fedora
|
||||
FROM fedora:latest AS env
|
||||
FROM fedora:latest AS base
|
||||
LABEL maintainer="mizux.dev@gmail.com"
|
||||
# Install system build dependencies
|
||||
ENV PATH=$PATH:/usr/local/bin
|
||||
ENV PATH=/usr/local/bin:$PATH
|
||||
RUN dnf -y update \
|
||||
&& dnf -y install git wget \
|
||||
&& dnf -y groupinstall "Development Tools" \
|
||||
@@ -11,101 +11,7 @@ RUN dnf -y update \
|
||||
&& dnf clean all
|
||||
CMD [ "/bin/sh" ]
|
||||
|
||||
|
||||
|
||||
# Add the library src to our build env
|
||||
FROM env AS cpp
|
||||
# Create lib directory
|
||||
WORKDIR /home/liBundle lib source
|
||||
COPY . .
|
||||
# CMake version
|
||||
RUN cmake -version
|
||||
# CMake configure
|
||||
RUN cmake -S. -Bbuild -DBUILD_DEPS=ON
|
||||
# CMake build
|
||||
RUN cmake --build build --target all -v
|
||||
# CMake build
|
||||
RUN cmake --build build --target install
|
||||
|
||||
|
||||
|
||||
FROM env AS python
|
||||
# Swig install
|
||||
FROM base AS swig
|
||||
RUN dnf -y update \
|
||||
&& dnf -y install swig \
|
||||
&& dnf clean all
|
||||
# Python install
|
||||
RUN dnf -y update \
|
||||
&& dnf -y install python3 python3-devel python3-pip \
|
||||
&& dnf clean all
|
||||
# Create lib directory
|
||||
WORKDIR /home/lib
|
||||
# Bundle lib source
|
||||
COPY . .
|
||||
# CMake configure
|
||||
RUN cmake -S. -Bbuild -DBUILD_DEPS=ON -DBUILD_PYTHON=ON
|
||||
# CMake build
|
||||
RUN cmake --build build --target all -v
|
||||
# CMake build
|
||||
RUN cmake --build build --target install
|
||||
|
||||
|
||||
|
||||
FROM env AS java
|
||||
# Swig install
|
||||
RUN dnf -y update \
|
||||
&& dnf -y install swig \
|
||||
&& dnf clean all
|
||||
# Java install
|
||||
ENV JAVA_HOME=/usr/lib/jvm/jre-1.8.0-openjdk
|
||||
RUN dnf -y update \
|
||||
&& dnf -y install java-1.8.0-openjdk-devel \
|
||||
&& dnf clean all
|
||||
# Create lib directory
|
||||
WORKDIR /home/lib
|
||||
# Bundle lib source
|
||||
COPY . .
|
||||
# CMake configure
|
||||
RUN cmake -S. -Bbuild -DBUILD_DEPS=ON -DBUILD_JAVA=ON
|
||||
# CMake build
|
||||
RUN cmake --build build --target all -v
|
||||
# CMake build
|
||||
RUN cmake --build build --target install
|
||||
|
||||
|
||||
|
||||
|
||||
FROM env AS dotnet
|
||||
# Swig install
|
||||
RUN dnf -y update \
|
||||
&& dnf -y install swig \
|
||||
&& dnf clean all
|
||||
# .Net install
|
||||
# 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
|
||||
# Create lib directory
|
||||
WORKDIR /home/lib
|
||||
# Bundle lib source
|
||||
COPY . .
|
||||
# CMake configure
|
||||
RUN cmake -S. -Bbuild -DBUILD_DEPS=ON -DBUILD_DOTNET=ON
|
||||
# CMake build
|
||||
RUN cmake --build build --target all -v
|
||||
# CMake build
|
||||
RUN cmake --build build --target install
|
||||
|
||||
|
||||
|
||||
# Create an install image
|
||||
FROM env AS install
|
||||
# Copy lib from devel to prod
|
||||
COPY --from=cpp /usr/local /usr/local/
|
||||
# Copy sample
|
||||
WORKDIR /home/sample
|
||||
COPY ci/sample .
|
||||
|
||||
29
cmake/docker/fedora/cpp.Dockerfile
Normal file
29
cmake/docker/fedora/cpp.Dockerfile
Normal file
@@ -0,0 +1,29 @@
|
||||
FROM ortools:fedora_base AS env
|
||||
RUN cmake -version
|
||||
|
||||
FROM env AS devel
|
||||
WORKDIR /home/lib
|
||||
COPY . .
|
||||
|
||||
FROM devel AS build
|
||||
RUN cmake -S. -Bbuild -DBUILD_DEPS=ON
|
||||
RUN cmake --build build --target all -v
|
||||
RUN cmake --build build --target install
|
||||
|
||||
FROM build AS test
|
||||
RUN cmake --build build --target test
|
||||
|
||||
FROM env AS install_env
|
||||
COPY --from=build /usr/local /usr/local/
|
||||
|
||||
FROM install_env AS install_devel
|
||||
WORKDIR /home/sample
|
||||
COPY ci/sample .
|
||||
|
||||
FROM install_devel AS install_build
|
||||
RUN cmake -S. -Bbuild
|
||||
RUN cmake --build build --target all -v
|
||||
RUN cmake --build build --target install
|
||||
|
||||
FROM install_build AS install_test
|
||||
RUN cmake --build build --target test
|
||||
36
cmake/docker/fedora/dotnet.Dockerfile
Normal file
36
cmake/docker/fedora/dotnet.Dockerfile
Normal file
@@ -0,0 +1,36 @@
|
||||
FROM ortools: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 cmake -S. -Bbuild -DBUILD_DEPS=ON -DBUILD_DOTNET=ON
|
||||
RUN cmake --build build --target all -v
|
||||
RUN cmake --build build --target install
|
||||
|
||||
FROM build AS test
|
||||
RUN cmake --build build --target test
|
||||
|
||||
FROM env AS install_env
|
||||
COPY --from=build /usr/local /usr/local/
|
||||
|
||||
FROM install_env AS install_devel
|
||||
WORKDIR /home/sample
|
||||
COPY ci/sample .
|
||||
|
||||
FROM install_devel AS install_build
|
||||
RUN cmake -S. -Bbuild -DBUILD_DOTNET=ON
|
||||
RUN cmake --build build --target all -v
|
||||
RUN cmake --build build --target install
|
||||
|
||||
FROM install_build AS install_test
|
||||
RUN cmake --build build --target test
|
||||
32
cmake/docker/fedora/java.Dockerfile
Normal file
32
cmake/docker/fedora/java.Dockerfile
Normal file
@@ -0,0 +1,32 @@
|
||||
FROM ortools:fedora_swig AS env
|
||||
ENV JAVA_HOME=/usr/lib/jvm/jre-1.8.0-openjdk
|
||||
RUN dnf -y update \
|
||||
&& dnf -y install java-1.8.0-openjdk-devel maven \
|
||||
&& dnf clean all
|
||||
|
||||
FROM env AS devel
|
||||
WORKDIR /home/lib
|
||||
COPY . .
|
||||
|
||||
FROM devel AS build
|
||||
RUN cmake -S. -Bbuild -DBUILD_DEPS=ON -DBUILD_JAVA=ON
|
||||
RUN cmake --build build --target all -v
|
||||
RUN cmake --build build --target install
|
||||
|
||||
FROM build AS test
|
||||
RUN cmake --build build --target test
|
||||
|
||||
FROM env AS install_env
|
||||
COPY --from=build /usr/local /usr/local/
|
||||
|
||||
FROM install_env AS install_devel
|
||||
WORKDIR /home/sample
|
||||
COPY ci/sample .
|
||||
|
||||
FROM install_devel AS install_build
|
||||
RUN cmake -S. -Bbuild -DBUILD_DOTNET=ON
|
||||
RUN cmake --build build --target all -v
|
||||
RUN cmake --build build --target install
|
||||
|
||||
FROM install_build AS install_test
|
||||
RUN cmake --build build --target test
|
||||
31
cmake/docker/fedora/python.Dockerfile
Normal file
31
cmake/docker/fedora/python.Dockerfile
Normal file
@@ -0,0 +1,31 @@
|
||||
FROM ortools:fedora_swig AS env
|
||||
RUN dnf -y update \
|
||||
&& dnf -y install python3 python3-devel python3-pip \
|
||||
&& dnf clean all
|
||||
|
||||
FROM env AS devel
|
||||
WORKDIR /home/lib
|
||||
COPY . .
|
||||
|
||||
FROM devel AS build
|
||||
RUN cmake -S. -Bbuild -DBUILD_DEPS=ON -DBUILD_PYTHON=ON
|
||||
RUN cmake --build build --target all -v
|
||||
RUN cmake --build build --target install
|
||||
|
||||
FROM build AS test
|
||||
RUN cmake --build build --target test
|
||||
|
||||
FROM env AS install_env
|
||||
COPY --from=build /usr/local /usr/local/
|
||||
|
||||
FROM install_env AS install_devel
|
||||
WORKDIR /home/sample
|
||||
COPY ci/sample .
|
||||
|
||||
FROM install_devel AS install_build
|
||||
RUN cmake -S. -Bbuild
|
||||
RUN cmake --build build --target all -v
|
||||
RUN cmake --build build --target install
|
||||
|
||||
FROM install_build AS install_test
|
||||
RUN cmake --build build --target test
|
||||
@@ -1,7 +1,6 @@
|
||||
FROM quay.io/pypa/manylinux2010_x86_64:latest
|
||||
# Create a virtual environment with all tools installed
|
||||
FROM quay.io/pypa/manylinux2010_x86_64:latest AS env
|
||||
LABEL maintainer="mizux.dev@gmail.com"
|
||||
|
||||
# Base install
|
||||
ENV PATH=$PATH:/usr/local/bin
|
||||
RUN yum -y update \
|
||||
&& yum -y groupinstall 'Development Tools' \
|
||||
|
||||
@@ -1,114 +1,16 @@
|
||||
# Create a virtual environment with all tools installed
|
||||
# ref: https://hub.docker.com/r/opensuse/tumbleweed
|
||||
FROM opensuse/tumbleweed AS env
|
||||
FROM opensuse/tumbleweed AS base
|
||||
LABEL maintainer="mizux.dev@gmail.com"
|
||||
# Install system build dependencies
|
||||
ENV PATH=$PATH:/usr/local/bin
|
||||
ENV PATH=/usr/local/bin:$PATH
|
||||
RUN zypper update -y \
|
||||
&& zypper install -y git gcc gcc-c++ cmake \
|
||||
&& zypper clean -a
|
||||
ENV CC=gcc CXX=g++
|
||||
CMD [ "/bin/sh" ]
|
||||
|
||||
|
||||
|
||||
# Add the library src to our build env
|
||||
FROM env AS cpp
|
||||
# Create lib directory
|
||||
WORKDIR /home/lib
|
||||
# Bundle lib source
|
||||
COPY . .
|
||||
# CMake version
|
||||
RUN cmake -version
|
||||
# CMake configure
|
||||
RUN cmake -S. -Bbuild -DBUILD_DEPS=ON
|
||||
# CMake build
|
||||
RUN cmake --build build --target all -v
|
||||
# CMake build
|
||||
RUN cmake --build build --target install
|
||||
|
||||
|
||||
|
||||
FROM env AS python
|
||||
# Swig install
|
||||
FROM base AS swig
|
||||
RUN zypper update -y \
|
||||
&& zypper install -y swig \
|
||||
&& zypper clean -a
|
||||
# Python install
|
||||
RUN zypper update -y \
|
||||
&& zypper install -y python3 python3-pip python3-devel \
|
||||
&& zypper clean -a
|
||||
# Create lib directory
|
||||
WORKDIR /home/lib
|
||||
# Bundle lib source
|
||||
COPY . .
|
||||
# CMake configure
|
||||
RUN cmake -S. -Bbuild -DBUILD_DEPS=ON -DBUILD_PYTHON=ON
|
||||
# CMake build
|
||||
RUN cmake --build build --target all -v
|
||||
# CMake build
|
||||
RUN cmake --build build --target install
|
||||
|
||||
|
||||
|
||||
FROM env AS java
|
||||
# Swig install
|
||||
RUN zypper update -y \
|
||||
&& zypper install -y swig \
|
||||
&& zypper clean -a
|
||||
# Java install
|
||||
RUN zypper update -y \
|
||||
&& zypper install -y java-1_8_0-openjdk-devel \
|
||||
&& zypper clean -a
|
||||
# Create lib directory
|
||||
WORKDIR /home/lib
|
||||
# Bundle lib source
|
||||
COPY . .
|
||||
# CMake configure
|
||||
RUN cmake -S. -Bbuild -DBUILD_DEPS=ON -DBUILD_JAVA=ON
|
||||
# CMake build
|
||||
RUN cmake --build build --target all -v
|
||||
# CMake build
|
||||
RUN cmake --build build --target install
|
||||
|
||||
|
||||
|
||||
|
||||
FROM env AS dotnet
|
||||
# Swig install
|
||||
RUN zypper update -y \
|
||||
&& zypper install -y swig \
|
||||
&& zypper clean -a
|
||||
# .Net install
|
||||
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
|
||||
# Create lib directory
|
||||
WORKDIR /home/lib
|
||||
# Bundle lib source
|
||||
COPY . .
|
||||
# CMake configure
|
||||
RUN cmake -S. -Bbuild -DBUILD_DEPS=ON -DBUILD_DOTNET=ON
|
||||
# CMake build
|
||||
RUN cmake --build build --target all -v
|
||||
# CMake build
|
||||
RUN cmake --build build --target install
|
||||
|
||||
|
||||
|
||||
# Create an install image
|
||||
FROM env AS install
|
||||
# Copy lib from devel to prod
|
||||
COPY --from=cpp /usr/local /usr/local/
|
||||
# Copy sample
|
||||
WORKDIR /home/sample
|
||||
COPY ci/sample .
|
||||
|
||||
29
cmake/docker/opensuse/cpp.Dockerfile
Normal file
29
cmake/docker/opensuse/cpp.Dockerfile
Normal file
@@ -0,0 +1,29 @@
|
||||
FROM ortools:opensuse_base AS env
|
||||
RUN cmake -version
|
||||
|
||||
FROM env AS devel
|
||||
WORKDIR /home/lib
|
||||
COPY . .
|
||||
|
||||
FROM devel AS build
|
||||
RUN cmake -S. -Bbuild -DBUILD_DEPS=ON
|
||||
RUN cmake --build build --target all -v
|
||||
RUN cmake --build build --target install
|
||||
|
||||
FROM build AS test
|
||||
RUN cmake --build build --target test
|
||||
|
||||
FROM env AS install_env
|
||||
COPY --from=build /usr/local /usr/local/
|
||||
|
||||
FROM install_env AS install_devel
|
||||
WORKDIR /home/sample
|
||||
COPY ci/sample .
|
||||
|
||||
FROM install_devel AS install_build
|
||||
RUN cmake -S. -Bbuild
|
||||
RUN cmake --build build --target all -v
|
||||
RUN cmake --build build --target install
|
||||
|
||||
FROM install_build AS install_test
|
||||
RUN cmake --build build --target test
|
||||
40
cmake/docker/opensuse/dotnet.Dockerfile
Normal file
40
cmake/docker/opensuse/dotnet.Dockerfile
Normal file
@@ -0,0 +1,40 @@
|
||||
FROM ortools: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 cmake -S. -Bbuild -DBUILD_DEPS=ON -DBUILD_DOTNET=ON
|
||||
RUN cmake --build build --target all -v
|
||||
RUN cmake --build build --target install
|
||||
|
||||
FROM build AS test
|
||||
RUN cmake --build build --target test
|
||||
|
||||
FROM env AS install_env
|
||||
COPY --from=build /usr/local /usr/local/
|
||||
|
||||
FROM install_env AS install_devel
|
||||
WORKDIR /home/sample
|
||||
COPY ci/sample .
|
||||
|
||||
FROM install_devel AS install_build
|
||||
RUN cmake -S. -Bbuild -DBUILD_DOTNET=ON
|
||||
RUN cmake --build build --target all -v
|
||||
RUN cmake --build build --target install
|
||||
|
||||
FROM install_build AS install_test
|
||||
RUN cmake --build build --target test
|
||||
31
cmake/docker/opensuse/java.Dockerfile
Normal file
31
cmake/docker/opensuse/java.Dockerfile
Normal file
@@ -0,0 +1,31 @@
|
||||
FROM ortools:opensuse_swig AS env
|
||||
RUN zypper update -y \
|
||||
&& zypper install -y java-1_8_0-openjdk-devel maven \
|
||||
&& zypper clean -a
|
||||
|
||||
FROM env AS devel
|
||||
WORKDIR /home/lib
|
||||
COPY . .
|
||||
|
||||
FROM devel AS build
|
||||
RUN cmake -S. -Bbuild -DBUILD_DEPS=ON -DBUILD_JAVA=ON
|
||||
RUN cmake --build build --target all -v
|
||||
RUN cmake --build build --target install
|
||||
|
||||
FROM build AS test
|
||||
RUN cmake --build build --target test
|
||||
|
||||
FROM env AS install_env
|
||||
COPY --from=build /usr/local /usr/local/
|
||||
|
||||
FROM install_env AS install_devel
|
||||
WORKDIR /home/sample
|
||||
COPY ci/sample .
|
||||
|
||||
FROM install_devel AS install_build
|
||||
RUN cmake -S. -Bbuild -DBUILD_DOTNET=ON
|
||||
RUN cmake --build build --target all -v
|
||||
RUN cmake --build build --target install
|
||||
|
||||
FROM install_build AS install_test
|
||||
RUN cmake --build build --target test
|
||||
31
cmake/docker/opensuse/python.Dockerfile
Normal file
31
cmake/docker/opensuse/python.Dockerfile
Normal file
@@ -0,0 +1,31 @@
|
||||
FROM ortools:opensuse_swig AS env
|
||||
RUN zypper update -y \
|
||||
&& zypper install -y python3 python3-pip python3-devel \
|
||||
&& zypper clean -a
|
||||
|
||||
FROM env AS devel
|
||||
WORKDIR /home/lib
|
||||
COPY . .
|
||||
|
||||
FROM devel AS build
|
||||
RUN cmake -S. -Bbuild -DBUILD_DEPS=ON -DBUILD_PYTHON=ON
|
||||
RUN cmake --build build --target all -v
|
||||
RUN cmake --build build --target install
|
||||
|
||||
FROM build AS test
|
||||
RUN cmake --build build --target test
|
||||
|
||||
FROM env AS install_env
|
||||
COPY --from=build /usr/local /usr/local/
|
||||
|
||||
FROM install_env AS install_devel
|
||||
WORKDIR /home/sample
|
||||
COPY ci/sample .
|
||||
|
||||
FROM install_devel AS install_build
|
||||
RUN cmake -S. -Bbuild
|
||||
RUN cmake --build build --target all -v
|
||||
RUN cmake --build build --target install
|
||||
|
||||
FROM install_build AS install_test
|
||||
RUN cmake --build build --target test
|
||||
@@ -1,129 +1,22 @@
|
||||
# Create a virtual environment with all tools installed
|
||||
# ref: https://hub.docker.com/_/ubuntu
|
||||
FROM ubuntu:rolling AS env
|
||||
FROM ubuntu:rolling AS base
|
||||
LABEL maintainer="mizux.dev@gmail.com"
|
||||
# Install system build dependencies
|
||||
ENV PATH=$PATH:/usr/local/bin
|
||||
ENV PATH=/usr/local/bin:$PATH
|
||||
RUN apt-get update -qq \
|
||||
&& apt-get install -yq git wget libssl-dev build-essential \
|
||||
&& 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.tar.gz" \
|
||||
&& tar xzf cmake-3.16.4.tar.gz \
|
||||
&& rm cmake-3.16.4.tar.gz \
|
||||
&& cd cmake-3.16.4 \
|
||||
&& ./bootstrap --prefix=/usr \
|
||||
&& make \
|
||||
&& make install \
|
||||
&& cd .. \
|
||||
&& rm -rf 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/sh" ]
|
||||
|
||||
|
||||
|
||||
|
||||
# Add the library src to our build env
|
||||
FROM env AS cpp
|
||||
# Create lib directory
|
||||
WORKDIR /home/lib
|
||||
# Bundle lib source
|
||||
COPY . .
|
||||
# CMake version
|
||||
RUN cmake -version
|
||||
# CMake configure
|
||||
RUN cmake -H. -Bbuild -DBUILD_DEPS=ON
|
||||
# CMake build
|
||||
RUN cmake --build build --target all
|
||||
# CMake build
|
||||
RUN cmake --build build --target install
|
||||
|
||||
|
||||
|
||||
FROM env AS python
|
||||
# Swig
|
||||
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/*
|
||||
# Python install
|
||||
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/*
|
||||
# Create lib directory
|
||||
WORKDIR /home/lib
|
||||
# Bundle lib source
|
||||
COPY . .
|
||||
# CMake configure
|
||||
RUN cmake -H. -Bbuild -DBUILD_DEPS=ON -DBUILD_PYTHON=ON
|
||||
# CMake build
|
||||
RUN cmake --build build --target all
|
||||
# CMake build
|
||||
RUN cmake --build build --target install
|
||||
|
||||
|
||||
|
||||
FROM env AS java
|
||||
# Swig install
|
||||
RUN apt-get update -qq \
|
||||
&& apt-get install -yq swig \
|
||||
&& apt-get clean \
|
||||
&& rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
|
||||
# Java install
|
||||
RUN apt-get update -qq \
|
||||
&& apt-get install -yq default-jdk \
|
||||
&& apt-get clean \
|
||||
&& rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
|
||||
# Create lib directory
|
||||
WORKDIR /home/lib
|
||||
# Bundle lib source
|
||||
COPY . .
|
||||
# CMake configure
|
||||
RUN cmake -H. -Bbuild -DBUILD_DEPS=ON -DBUILD_JAVA=ON
|
||||
# CMake build
|
||||
RUN cmake --build build --target all
|
||||
# CMake build
|
||||
RUN cmake --build build --target install
|
||||
|
||||
|
||||
|
||||
|
||||
FROM env AS dotnet
|
||||
# Swig install
|
||||
RUN apt-get update -qq \
|
||||
&& apt-get install -yq swig \
|
||||
&& apt-get clean \
|
||||
&& rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
|
||||
# .Net install
|
||||
# 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
|
||||
# Create lib directory
|
||||
WORKDIR /home/lib
|
||||
# Bundle lib source
|
||||
COPY . .
|
||||
# CMake configure
|
||||
RUN cmake -H. -Bbuild -DBUILD_DEPS=ON -DBUILD_DOTNET=ON
|
||||
# CMake build
|
||||
RUN cmake --build build --target all
|
||||
# CMake build
|
||||
RUN cmake --build build --target install
|
||||
|
||||
|
||||
|
||||
# Create an install image
|
||||
FROM env AS install
|
||||
# Copy lib from devel to prod
|
||||
COPY --from=cpp /usr/local /usr/local/
|
||||
# Copy sample
|
||||
WORKDIR /home/sample
|
||||
COPY ci/sample .
|
||||
|
||||
29
cmake/docker/ubuntu/cpp.Dockerfile
Normal file
29
cmake/docker/ubuntu/cpp.Dockerfile
Normal file
@@ -0,0 +1,29 @@
|
||||
FROM ortools:ubuntu_base AS env
|
||||
RUN cmake -version
|
||||
|
||||
FROM env AS devel
|
||||
WORKDIR /home/lib
|
||||
COPY . .
|
||||
|
||||
FROM devel AS build
|
||||
RUN cmake -S. -Bbuild -DBUILD_DEPS=ON
|
||||
RUN cmake --build build --target all
|
||||
RUN cmake --build build --target install
|
||||
|
||||
FROM build AS test
|
||||
RUN cmake --build build --target test
|
||||
|
||||
FROM env AS install_env
|
||||
COPY --from=build /usr/local /usr/local/
|
||||
|
||||
FROM install_env AS install_devel
|
||||
WORKDIR /home/sample
|
||||
COPY ci/sample .
|
||||
|
||||
FROM install_devel AS install_build
|
||||
RUN cmake -S. -Bbuild
|
||||
RUN cmake --build build --target all -v
|
||||
RUN cmake --build build --target install
|
||||
|
||||
FROM install_build AS install_test
|
||||
RUN cmake --build build --target test
|
||||
39
cmake/docker/ubuntu/dotnet.Dockerfile
Normal file
39
cmake/docker/ubuntu/dotnet.Dockerfile
Normal file
@@ -0,0 +1,39 @@
|
||||
FROM ortools: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 cmake -S. -Bbuild -DBUILD_DEPS=ON -DBUILD_DOTNET=ON
|
||||
RUN cmake --build build --target all
|
||||
RUN cmake --build build --target install
|
||||
|
||||
FROM build AS test
|
||||
RUN cmake --build build --target test
|
||||
|
||||
FROM env AS install_env
|
||||
COPY --from=build /usr/local /usr/local/
|
||||
|
||||
FROM install_env AS install_devel
|
||||
WORKDIR /home/sample
|
||||
COPY ci/sample .
|
||||
|
||||
FROM install_devel AS install_build
|
||||
RUN cmake -S. -Bbuild -DBUILD_DOTNET=ON
|
||||
RUN cmake --build build --target all -v
|
||||
RUN cmake --build build --target install
|
||||
|
||||
FROM install_build AS install_test
|
||||
RUN cmake --build build --target test
|
||||
32
cmake/docker/ubuntu/java.Dockerfile
Normal file
32
cmake/docker/ubuntu/java.Dockerfile
Normal file
@@ -0,0 +1,32 @@
|
||||
FROM ortools: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 cmake -S. -Bbuild -DBUILD_DEPS=ON -DBUILD_JAVA=ON
|
||||
RUN cmake --build build --target all
|
||||
RUN cmake --build build --target install
|
||||
|
||||
FROM build AS test
|
||||
RUN cmake --build build --target test
|
||||
|
||||
FROM env AS install_env
|
||||
COPY --from=build /usr/local /usr/local/
|
||||
|
||||
FROM install_env AS install_devel
|
||||
WORKDIR /home/sample
|
||||
COPY ci/sample .
|
||||
|
||||
FROM install_devel AS install_build
|
||||
RUN cmake -S. -Bbuild -DBUILD_DOTNET=ON
|
||||
RUN cmake --build build --target all -v
|
||||
RUN cmake --build build --target install
|
||||
|
||||
FROM install_build AS install_test
|
||||
RUN cmake --build build --target test
|
||||
32
cmake/docker/ubuntu/python.Dockerfile
Normal file
32
cmake/docker/ubuntu/python.Dockerfile
Normal file
@@ -0,0 +1,32 @@
|
||||
FROM ortools: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 cmake -S. -Bbuild -DBUILD_DEPS=ON -DBUILD_PYTHON=ON
|
||||
RUN cmake --build build --target all
|
||||
RUN cmake --build build --target install
|
||||
|
||||
FROM build AS test
|
||||
RUN cmake --build build --target test
|
||||
|
||||
FROM env AS install_env
|
||||
COPY --from=build /usr/local /usr/local/
|
||||
|
||||
FROM install_env AS install_devel
|
||||
WORKDIR /home/sample
|
||||
COPY ci/sample .
|
||||
|
||||
FROM install_devel AS install_build
|
||||
RUN cmake -S. -Bbuild
|
||||
RUN cmake --build build --target all -v
|
||||
RUN cmake --build build --target install
|
||||
|
||||
FROM install_build AS install_test
|
||||
RUN cmake --build build --target test
|
||||
Reference in New Issue
Block a user