diff --git a/libs/or-tools-stable/.appveyor.yml b/libs/or-tools-stable/.appveyor.yml new file mode 100644 index 0000000000000000000000000000000000000000..e0abb46abb66cf0e7a049647aced235be4b94b6a --- /dev/null +++ b/libs/or-tools-stable/.appveyor.yml @@ -0,0 +1,73 @@ +version: '{build}' +shallow_clone: true + +platform: x64 + +environment: + MSBUILD_FLAGS: /verbosity:minimal /maxcpucount + APPVEYOR_SAVE_CACHE_ON_ERROR: true + matrix: +# Makefile + - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2019 + VS_VERSION: 2019 + BUILDER: make + LANGUAGE: cc + + - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2019 + VS_VERSION: 2019 + BUILDER: make + LANGUAGE: python + + - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2019 + VS_VERSION: 2019 + BUILDER: make + LANGUAGE: java + + - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2019 + VS_VERSION: 2019 + BUILDER: make + LANGUAGE: dotnet +# CMake + - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2019 + VS_VERSION: 2019 + BUILDER: cmake + CMAKE_GENERATOR: "Visual Studio 16 2019" + +matrix: + fast_finish: false + +cache: + - dependencies\install -> makefiles\Makefile.third_party.win.mk + - build\dependencies\install -> cmake\dependencies + +before_build: + - git config --global user.email "ci@appveyor.com" + - git config --global user.name "CI" + - if "%VS_VERSION%"=="2017" call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvars64.bat" + - if "%VS_VERSION%"=="2019" call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvars64.bat" + - set PATH=C:\Python38-x64;%PATH% + - tools\win\which.exe python.exe + - python -V + - python -m pip install virtualenv wheel absl-py mypy-protobuf + - set PATH=C:\Python38-x64\Scripts;%PATH% + - tools\win\which.exe protoc-gen-mypy + - tools\win\which.exe dotnet.exe + - dotnet --info + - set "JAVA_HOME=C:\Program Files\Java\jdk11" + - set "PATH=C:\Program Files\Java\jdk11\bin;%PATH%" + - java -version + - set CMAKE_BUILD_PARALLEL_LEVEL=4 + - if "%BUILDER%"=="cmake" cmake --version + - if "%BUILDER%"=="cmake" cmake -S. -Bbuild -DCMAKE_BUILD_TYPE:STRING=Release -DBUILD_DEPS:BOOL=ON -G "%CMAKE_GENERATOR%" || VER>NUL + - if "%BUILDER%"=="make" del "C:\Program Files\Git\usr\bin\sh.exe" + - if "%BUILDER%"=="make" tools\make.exe detect + +build_script: + - if "%BUILDER%"=="cmake" cmake --build build --config Release --target ALL_BUILD -- %MSBUILD_FLAGS% + - if "%BUILDER%"=="make" tools\make.exe help_%LANGUAGE% + - if "%BUILDER%"=="make" ( tools\make.exe %LANGUAGE% || ( tools\make.exe third_party && tools\make.exe %LANGUAGE% ) ) + - if "%BUILDER%"=="make" tools\make.exe test_%LANGUAGE% + - if "%LANGUAGE%"=="cc" tools\make.exe test_fz + +test_script: + - if "%BUILDER%"=="cmake" cmake --build build --config Release --target RUN_TESTS diff --git a/libs/or-tools-stable/.clang-format b/libs/or-tools-stable/.clang-format new file mode 100644 index 0000000000000000000000000000000000000000..11d13507ac9ddb0fe63b6aaaa630f688f7c43431 --- /dev/null +++ b/libs/or-tools-stable/.clang-format @@ -0,0 +1,13 @@ +--- +Language: Cpp +BasedOnStyle: Google +# Forse pointer to the type for C++ +DerivePointerAlignment: false +PointerAlignment: Left +--- +Language: Java +BasedOnStyle: Google +--- +Language: CSharp +BasedOnStyle: Microsoft +... diff --git a/libs/or-tools-stable/.cmake-format.py b/libs/or-tools-stable/.cmake-format.py new file mode 100644 index 0000000000000000000000000000000000000000..2a1ae01957f9b9e8c410f75a59164c23e05f73d8 --- /dev/null +++ b/libs/or-tools-stable/.cmake-format.py @@ -0,0 +1,232 @@ +# ---------------------------------- +# Options affecting listfile parsing +# ---------------------------------- +with section("parse"): + + # Specify structure for custom cmake functions + additional_commands = { + 'foo': { 'flags': ['BAR', 'BAZ'], + 'kwargs': {'DEPENDS': '*', + 'HEADERS': '*', + 'SOURCES': '*'}}, + 'build_git_dependency': { 'flags': [], + 'kwargs': { 'NAME': '*', + 'REPOSITORY': '*', + 'TAG': '*', + 'APPLY_PATCH': '*', + 'CMAKE_ARGS': '*'}} + } + + # Specify variable tags. + vartags = [] + + # Specify property tags. + proptags = [] + +# ----------------------------- +# Options affecting formatting. +# ----------------------------- +with section("format"): + + # How wide to allow formatted cmake files + line_width = 80 + + # How many spaces to tab for indent + tab_size = 2 + + # If an argument group contains more than this many sub-groups (parg or kwarg + # groups) then force it to a vertical layout. + max_subgroups_hwrap = 2 + + # If a positional argument group contains more than this many arguments, then + # force it to a vertical layout. + max_pargs_hwrap = 6 + + # If a cmdline positional group consumes more than this many lines without + # nesting, then invalidate the layout (and nest) + max_rows_cmdline = 2 + + # If true, separate flow control names from their parentheses with a space + separate_ctrl_name_with_space = False + + # If true, separate function names from parentheses with a space + separate_fn_name_with_space = False + + # If a statement is wrapped to more than one line, than dangle the closing + # parenthesis on its own line. + dangle_parens = False + + # If the trailing parenthesis must be 'dangled' on its on line, then align it + # to this reference: `prefix`: the start of the statement, `prefix-indent`: + # the start of the statement, plus one indentation level, `child`: align to + # the column of the arguments + dangle_align = 'prefix' + + # If the statement spelling length (including space and parenthesis) is + # smaller than this amount, then force reject nested layouts. + min_prefix_chars = 4 + + # If the statement spelling length (including space and parenthesis) is larger + # than the tab width by more than this amount, then force reject un-nested + # layouts. + max_prefix_chars = 10 + + # If a candidate layout is wrapped horizontally but it exceeds this many + # lines, then reject the layout. + max_lines_hwrap = 2 + + # What style line endings to use in the output. + line_ending = 'unix' + + # Format command names consistently as 'lower' or 'upper' case + command_case = 'canonical' + + # Format keywords consistently as 'lower' or 'upper' case + keyword_case = 'unchanged' + + # A list of command names which should always be wrapped + always_wrap = [] + + # If true, the argument lists which are known to be sortable will be sorted + # lexicographicall + enable_sort = True + + # If true, the parsers may infer whether or not an argument list is sortable + # (without annotation). + autosort = False + + # By default, if cmake-format cannot successfully fit everything into the + # desired linewidth it will apply the last, most agressive attempt that it + # made. If this flag is True, however, cmake-format will print error, exit + # with non-zero status code, and write-out nothing + require_valid_layout = False + + # A dictionary mapping layout nodes to a list of wrap decisions. See the + # documentation for more information. + layout_passes = {} + +# ------------------------------------------------ +# Options affecting comment reflow and formatting. +# ------------------------------------------------ +with section("markup"): + + # What character to use for bulleted lists + bullet_char = '*' + + # What character to use as punctuation after numerals in an enumerated list + enum_char = '.' + + # If comment markup is enabled, don't reflow the first comment block in each + # listfile. Use this to preserve formatting of your copyright/license + # statements. + first_comment_is_literal = False + + # If comment markup is enabled, don't reflow any comment block which matches + # this (regex) pattern. Default is `None` (disabled). + literal_comment_pattern = None + + # Regular expression to match preformat fences in comments default= + # ``r'^\s*([`~]{3}[`~]*)(.*)$'`` + fence_pattern = '^\\s*([`~]{3}[`~]*)(.*)$' + + # Regular expression to match rulers in comments default= + # ``r'^\s*[^\w\s]{3}.*[^\w\s]{3}$'`` + ruler_pattern = '^\\s*[^\\w\\s]{3}.*[^\\w\\s]{3}$' + + # If a comment line matches starts with this pattern then it is explicitly a + # trailing comment for the preceeding argument. Default is '#<' + explicit_trailing_pattern = '#<' + + # If a comment line starts with at least this many consecutive hash + # characters, then don't lstrip() them off. This allows for lazy hash rulers + # where the first hash char is not separated by space + hashruler_min_length = 10 + + # If true, then insert a space between the first hash char and remaining hash + # chars in a hash ruler, and normalize its length to fill the column + canonicalize_hashrulers = True + + # enable comment markup parsing and reflow + enable_markup = True + +# ---------------------------- +# Options affecting the linter +# ---------------------------- +with section("lint"): + + # a list of lint codes to disable + disabled_codes = [] + + # regular expression pattern describing valid function names + function_pattern = '[0-9a-z_]+' + + # regular expression pattern describing valid macro names + macro_pattern = '[0-9A-Z_]+' + + # regular expression pattern describing valid names for variables with global + # (cache) scope + global_var_pattern = '[A-Z][0-9A-Z_]+' + + # regular expression pattern describing valid names for variables with global + # scope (but internal semantic) + internal_var_pattern = '_[A-Z][0-9A-Z_]+' + + # regular expression pattern describing valid names for variables with local + # scope + local_var_pattern = '[a-z][a-z0-9_]+' + + # regular expression pattern describing valid names for privatedirectory + # variables + private_var_pattern = '_[0-9a-z_]+' + + # regular expression pattern describing valid names for public directory + # variables + public_var_pattern = '[A-Z][0-9A-Z_]+' + + # regular expression pattern describing valid names for function/macro + # arguments and loop variables. + argument_var_pattern = '[a-z][a-z0-9_]+' + + # regular expression pattern describing valid names for keywords used in + # functions or macros + keyword_pattern = '[A-Z][0-9A-Z_]+' + + # In the heuristic for C0201, how many conditionals to match within a loop in + # before considering the loop a parser. + max_conditionals_custom_parser = 2 + + # Require at least this many newlines between statements + min_statement_spacing = 1 + + # Require no more than this many newlines between statements + max_statement_spacing = 2 + max_returns = 6 + max_branches = 12 + max_arguments = 5 + max_localvars = 15 + max_statements = 50 + +# ------------------------------- +# Options affecting file encoding +# ------------------------------- +with section("encode"): + + # If true, emit the unicode byte-order mark (BOM) at the start of the file + emit_byteorder_mark = False + + # Specify the encoding of the input file. Defaults to utf-8 + input_encoding = 'utf-8' + + # Specify the encoding of the output file. Defaults to utf-8. Note that cmake + # only claims to support utf-8 so be careful when using anything else + output_encoding = 'utf-8' + +# ------------------------------------- +# Miscellaneous configurations options. +# ------------------------------------- +with section("misc"): + + # A dictionary containing any per-command configuration overrides. Currently + # only `command_case` is supported. + per_command = {} + diff --git a/libs/or-tools-stable/.dockerignore b/libs/or-tools-stable/.dockerignore new file mode 100644 index 0000000000000000000000000000000000000000..270b29472d44a47502c597fe54a6209513449d03 --- /dev/null +++ b/libs/or-tools-stable/.dockerignore @@ -0,0 +1,66 @@ +# Project Files unneeded by docker +.dockerignore + +.git +.gitignore + +.travis.yml +.travis +.appveyor.yml +.github + +.clang-format + +# Bazel +bazel/doc +bazel/README.md +bazel/cache +bazel/docker +bazel/Makefile + +# CMake +cmake/doc +cmake/README.md +cmake/cache +cmake/docker +cmake/Makefile + +# Makefile +makefiles/doc +makefiles/README.md +makefiles/cache +makefiles/docker +makefiles/Makefile +Makefile.local + +binder +docs +tools/docker +tools/release +tools/win +Dependencies.txt +README.md +CONTRIBUTING.md +#LICENSE-2.0.txt + +# Native CMake/Make build +classes +dependencies/sources +dependencies/install +ortools/gen +objs +lib +bin +packages +build/ +examples/data/vector_packing +examples/data/rcpsp +examples/data/binpacking +examples/data/spp +examples/data/scp +examples/data/roadef_challenge_2011 +examples/data/cvrptw + +# Editor directories and files +*.user +*.swp diff --git a/libs/or-tools-stable/.github/ISSUE_TEMPLATE/bug_report.md b/libs/or-tools-stable/.github/ISSUE_TEMPLATE/bug_report.md new file mode 100644 index 0000000000000000000000000000000000000000..62caab35d22dc02067252486b9b12b002be5abf5 --- /dev/null +++ b/libs/or-tools-stable/.github/ISSUE_TEMPLATE/bug_report.md @@ -0,0 +1,28 @@ +--- +name: Bug report +about: Create a report to help us improve +--- + + +**What version of OR-tools and what language are you using?** +Version: master/v7.3/v7.2 etc. +Language: C++/Java/Python/C# + +**Which solver are you using (e.g. CP-SAT, Routing Solver, GLOP, BOP, Gurobi)** + +**What operating system (Linux, Windows, ...) and version?** + +**What did you do?** +Steps to reproduce the behavior: +1. Go to '...' +2. Click on '....' +3. Scroll down to '....' +4. See error + +**What did you expect to see** + +**What did you see instead?** + +Make sure you include information that can help us debug (full error message, model Proto). + +**Anything else we should know about your project / environment** \ No newline at end of file diff --git a/libs/or-tools-stable/.github/ISSUE_TEMPLATE/config.yml b/libs/or-tools-stable/.github/ISSUE_TEMPLATE/config.yml new file mode 100644 index 0000000000000000000000000000000000000000..502669a90327800eb7eb0d4c98d2d970cfa0f441 --- /dev/null +++ b/libs/or-tools-stable/.github/ISSUE_TEMPLATE/config.yml @@ -0,0 +1,8 @@ +blank_issues_enabled: false + +contact_links: +- name: Modeling/Usage problem + url: https://groups.google.com/forum/#!forum/or-tools-discuss + about: Need help creating your model ? + Please use the mailing list for modeling issues. + Github issues have limited audience and answers on the github page will not benefit the rest of the users. diff --git a/libs/or-tools-stable/.github/ISSUE_TEMPLATE/feature_request.md b/libs/or-tools-stable/.github/ISSUE_TEMPLATE/feature_request.md new file mode 100644 index 0000000000000000000000000000000000000000..10072213cda84ea84e3e3c7496ff379bdf2a3490 --- /dev/null +++ b/libs/or-tools-stable/.github/ISSUE_TEMPLATE/feature_request.md @@ -0,0 +1,17 @@ +--- +name: Feature request +about: Suggest an idea for this project +--- + + +**What language and solver does this apply to?** +All, Python, Java, C#, C++ / CP-SAT, Routing, Linear Solver + +**Describe the problem you are trying to solve.** + +**Describe the solution you'd like** + +**Describe alternatives you've considered** + +**Additional context** +Add any other context or screenshots about the feature request here. \ No newline at end of file diff --git a/libs/or-tools-stable/.github/pull_request_template.md b/libs/or-tools-stable/.github/pull_request_template.md new file mode 100644 index 0000000000000000000000000000000000000000..5fce142e3c41fffd58876b271d7e2a4451b95e88 --- /dev/null +++ b/libs/or-tools-stable/.github/pull_request_template.md @@ -0,0 +1,12 @@ + \ No newline at end of file diff --git a/libs/or-tools-stable/.github/workflows/Dockerfile b/libs/or-tools-stable/.github/workflows/Dockerfile new file mode 100644 index 0000000000000000000000000000000000000000..b11c0bb0a2413eec5afce67dc7922bcd9dd02d1c --- /dev/null +++ b/libs/or-tools-stable/.github/workflows/Dockerfile @@ -0,0 +1,7 @@ +# Create a virtual environment with all tools installed +# ref: https://hub.docker.com/_/alpine +FROM alpine:edge +# Install system build dependencies +RUN apk add --no-cache git clang +RUN apk add --no-cache python3 py3-pip \ +&& python3 -m pip install yapf diff --git a/libs/or-tools-stable/.github/workflows/clang_format.yml b/libs/or-tools-stable/.github/workflows/clang_format.yml new file mode 100644 index 0000000000000000000000000000000000000000..089fa51672d464ee00e782514b49e56f36049b76 --- /dev/null +++ b/libs/or-tools-stable/.github/workflows/clang_format.yml @@ -0,0 +1,24 @@ +name: clang-format Check + +on: [push, pull_request] + +jobs: + # Building using the github runner environement directly. + clang-format: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - name: Fetch origin/master + run: git fetch origin master + - name: List of changed file(s) + run: git diff --name-only FETCH_HEAD + + - name: Build clang-format docker + run: cd .github/workflows && docker build --tag=linter . + - name: Check clang-format + run: docker run --rm --init -v $(pwd):/repo linter:latest clang-format --version + - name: clang-format help + run: docker run --rm --init -v $(pwd):/repo linter:latest clang-format --help + + - name: Check current commit + run: docker run --rm --init -v $(pwd):/repo -w /repo linter:latest sh -c "git diff --diff-filter=d --name-only FETCH_HEAD | grep '\.c$\|\.h$\|\.cc$\|\.java$\|\.cs$' | xargs clang-format --verbose --style=file --dry-run --Werror " diff --git a/libs/or-tools-stable/.github/workflows/docker_bazel.yml b/libs/or-tools-stable/.github/workflows/docker_bazel.yml new file mode 100644 index 0000000000000000000000000000000000000000..2f8be924c7cde9740d3d76e33eced816836a0815 --- /dev/null +++ b/libs/or-tools-stable/.github/workflows/docker_bazel.yml @@ -0,0 +1,25 @@ +name: Docker Bazel + +on: [push, pull_request] + +jobs: + Distros: + runs-on: ubuntu-latest + continue-on-error: ${{ matrix.allow_failure }} + strategy: + fail-fast: false + matrix: + distro: [alpine, archlinux, centos, debian, fedora, opensuse, ubuntu] + allow_failure: [false] + env: + DISTRO: ${{ matrix.distro }} + steps: + - uses: actions/checkout@v2 + - name: Build env image + run: make --directory=bazel ${DISTRO}_env + - name: Build devel image + run: make --directory=bazel ${DISTRO}_devel + - name: Build project + run: make --directory=bazel ${DISTRO}_build + - name: Test project + run: make --directory=bazel ${DISTRO}_test diff --git a/libs/or-tools-stable/.github/workflows/docker_cmake.yml b/libs/or-tools-stable/.github/workflows/docker_cmake.yml new file mode 100644 index 0000000000000000000000000000000000000000..74fac84ea52a1a6371a96f2add08a72520831059 --- /dev/null +++ b/libs/or-tools-stable/.github/workflows/docker_cmake.yml @@ -0,0 +1,36 @@ +name: Docker CMake + +on: [push, pull_request] + +jobs: + Distros: + runs-on: ubuntu-latest + strategy: + matrix: + distro: [alpine, archlinux, centos, debian, fedora, opensuse, ubuntu] + lang: [cpp, python, dotnet, java] + fail-fast: false + env: + DISTRO: ${{ matrix.distro }} + LANG: ${{ matrix.lang }} + steps: + - uses: actions/checkout@v2 + - name: Build base image + run: make --directory=cmake ${DISTRO}_base + - name: Build env image + run: make --directory=cmake ${DISTRO}_${LANG}_env + - name: Build devel image + run: make --directory=cmake ${DISTRO}_${LANG}_devel + - name: Build project + run: make --directory=cmake ${DISTRO}_${LANG}_build + - name: Test project + run: make --directory=cmake ${DISTRO}_${LANG}_test + + - name: Build Install env image + run: make --directory=cmake ${DISTRO}_${LANG}_install_env + - name: Build Install devel image + run: make --directory=cmake ${DISTRO}_${LANG}_install_devel + - name: Build Install + run: make --directory=cmake ${DISTRO}_${LANG}_install_build + - name: Test Install + run: make --directory=cmake ${DISTRO}_${LANG}_install_test diff --git a/libs/or-tools-stable/.github/workflows/docker_make.yml b/libs/or-tools-stable/.github/workflows/docker_make.yml new file mode 100644 index 0000000000000000000000000000000000000000..f1c0071c3b5ecb85d26bee6fe3412e5c99a8d2fb --- /dev/null +++ b/libs/or-tools-stable/.github/workflows/docker_make.yml @@ -0,0 +1,29 @@ +name: Docker Make + +on: [push, pull_request] + +jobs: + Distros: + runs-on: ubuntu-latest + strategy: + matrix: + distro: [alpine, archlinux, centos, debian, fedora, opensuse, ubuntu] + lang: [cpp, python, dotnet, java] + fail-fast: false + env: + DISTRO: ${{ matrix.distro }} + LANG: ${{ matrix.lang }} + steps: + - uses: actions/checkout@v2 + - name: Build base image + run: make --directory=makefiles ${DISTRO}_base + - name: Build env image + run: make --directory=makefiles ${DISTRO}_${LANG}_env + - name: Build devel image + run: make --directory=makefiles ${DISTRO}_${LANG}_devel + - name: Build project + run: make --directory=makefiles ${DISTRO}_${LANG}_build + - name: Test project + run: make --directory=makefiles ${DISTRO}_${LANG}_test + - name: Package project + run: make --directory=makefiles ${DISTRO}_${LANG}_package diff --git a/libs/or-tools-stable/.github/workflows/glop.yml b/libs/or-tools-stable/.github/workflows/glop.yml new file mode 100644 index 0000000000000000000000000000000000000000..f1665956c298d420f084e57e59da55a0add21408 --- /dev/null +++ b/libs/or-tools-stable/.github/workflows/glop.yml @@ -0,0 +1,65 @@ +name: Glop CI + +on: [push, pull_request] + +# Building using the github runner environement directly. +jobs: + docker: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - name: Build env image + run: make --directory=cmake glop_env + - name: Build devel image + run: make --directory=cmake glop_devel + - name: Build project + run: make --directory=cmake glop_build + - name: Test project + run: make --directory=cmake glop_test + - name: Build Install env image + run: make --directory=cmake glop_install_env + - name: Build Install devel image + run: make --directory=cmake glop_install_devel + - name: Build Install + run: make --directory=cmake glop_install_build + - name: Test Install + run: make --directory=cmake glop_install_test + + linux: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - name: Check cmake + run: cmake --version + - name: Configure + run: cmake -S. -Bbuild -DCMAKE_BUILD_TYPE=Release -DBUILD_DEPS=ON -DBUILD_CXX=OFF -DBUILD_GLOP=ON + - name: Build + run: cmake --build build --config Release --target all -v + - name: Install + run: cmake --build build --config Release --target install -v -- DESTDIR=install + + macos: + runs-on: macos-latest + steps: + - uses: actions/checkout@v2 + - name: Check cmake + run: cmake --version + - name: Configure + run: cmake -S. -Bbuild -DCMAKE_BUILD_TYPE=Release -DBUILD_DEPS=ON -DBUILD_CXX=OFF -DBUILD_GLOP=ON + - name: Build + run: cmake --build build --target all -v + - name: Install + run: cmake --build build --target install -v -- DESTDIR=install + + windows: + runs-on: windows-latest + steps: + - uses: actions/checkout@v2 + - name: Check cmake + run: cmake --version + - name: Configure + run: cmake -S. -Bbuild -G "Visual Studio 16 2019" -DCMAKE_BUILD_TYPE=Release -DBUILD_DEPS=ON -DBUILD_CXX=OFF -DBUILD_GLOP=ON + - name: Build + run: cmake --build build --config Release --target ALL_BUILD -- /maxcpucount + - name: Install + run: cmake --build build --config Release --target INSTALL -- /maxcpucount diff --git a/libs/or-tools-stable/.github/workflows/linux_cpp.yml b/libs/or-tools-stable/.github/workflows/linux_cpp.yml new file mode 100644 index 0000000000000000000000000000000000000000..f85071c9e5a858c5b646097f3722e3a895442bf0 --- /dev/null +++ b/libs/or-tools-stable/.github/workflows/linux_cpp.yml @@ -0,0 +1,20 @@ +name: C++ Linux CI + +on: [push, pull_request] + +jobs: + # Building using the github runner environement directly. + cmake: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - name: Check cmake + run: cmake --version + - name: Configure + run: cmake -S. -Bbuild -DCMAKE_BUILD_TYPE=Release -DBUILD_DEPS=ON + - name: Build + run: cmake --build build --config Release --target all -v + - name: Test + run: CTEST_OUTPUT_ON_FAILURE=1 cmake --build build --config Release --target test -v + - name: Install + run: cmake --build build --config Release --target install -v -- DESTDIR=install diff --git a/libs/or-tools-stable/.github/workflows/linux_dotnet.yml b/libs/or-tools-stable/.github/workflows/linux_dotnet.yml new file mode 100644 index 0000000000000000000000000000000000000000..ef9a1af6c8f4ccc945047b6a29e298804403cbc4 --- /dev/null +++ b/libs/or-tools-stable/.github/workflows/linux_dotnet.yml @@ -0,0 +1,26 @@ +name: .Net Linux CI + +on: [push, pull_request] + +jobs: + # Building using the github runner environement directly. + cmake: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - name: Check cmake + run: cmake --version + - name: Swig install + run: sudo apt install -y swig + - name: Check swig + run: swig -version + - name: Check dotnet + run: dotnet --info + - name: Configure + run: cmake -S. -Bbuild -DCMAKE_BUILD_TYPE=Release -DBUILD_DOTNET=ON -DBUILD_CXX_SAMPLES=OFF -DBUILD_CXX_EXAMPLES=OFF + - name: Build + run: cmake --build build --config Release --target all -v + - name: Test + run: CTEST_OUTPUT_ON_FAILURE=1 cmake --build build --config Release --target test -v + - name: Install + run: cmake --build build --config Release --target install -v -- DESTDIR=install diff --git a/libs/or-tools-stable/.github/workflows/linux_java.yml b/libs/or-tools-stable/.github/workflows/linux_java.yml new file mode 100644 index 0000000000000000000000000000000000000000..8351af77a74dfbe393347e4417cd6b652f149e10 --- /dev/null +++ b/libs/or-tools-stable/.github/workflows/linux_java.yml @@ -0,0 +1,26 @@ +name: Java Linux CI + +on: [push, pull_request] + +jobs: + # Building using the github runner environement directly. + cmake: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - name: Check cmake + run: cmake --version + - name: Swig install + run: sudo apt install -y swig + - name: Check swig + run: swig -version + - name: Check java + run: java -version + - name: Configure + run: cmake -S. -Bbuild -DCMAKE_BUILD_TYPE=Release -DBUILD_JAVA=ON -DBUILD_CXX_SAMPLES=OFF -DBUILD_CXX_EXAMPLES=OFF + - name: Build + run: cmake --build build --config Release --target all -v + - name: Test + run: CTEST_OUTPUT_ON_FAILURE=1 cmake --build build --config Release --target test -v + - name: Install + run: cmake --build build --config Release --target install -v -- DESTDIR=install diff --git a/libs/or-tools-stable/.github/workflows/linux_python.yml b/libs/or-tools-stable/.github/workflows/linux_python.yml new file mode 100644 index 0000000000000000000000000000000000000000..2020672803caf6a28f403f8d674d40661c1a7d6b --- /dev/null +++ b/libs/or-tools-stable/.github/workflows/linux_python.yml @@ -0,0 +1,28 @@ +name: Python Linux CI + +on: [push, pull_request] + +jobs: + # Building using the github runner environement directly. + cmake: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - name: Install python3 venv + run: sudo apt-get install python3-venv + - name: Check cmake + run: cmake --version + - name: Swig install + run: sudo apt install -y swig + - name: Check swig + run: swig -version + - name: Update Path + run: echo "$HOME/.local/bin" >> $GITHUB_PATH + - name: Configure + run: cmake -S. -Bbuild -DCMAKE_BUILD_TYPE=Release -DBUILD_PYTHON=ON -DBUILD_CXX_SAMPLES=OFF -DBUILD_CXX_EXAMPLES=OFF + - name: Build + run: cmake --build build --config Release --target all -v + - name: Test + run: CTEST_OUTPUT_ON_FAILURE=1 cmake --build build --config Release --target test -v + - name: Install + run: cmake --build build --config Release --target install -v -- DESTDIR=install diff --git a/libs/or-tools-stable/.github/workflows/macos_cpp.yml b/libs/or-tools-stable/.github/workflows/macos_cpp.yml new file mode 100644 index 0000000000000000000000000000000000000000..e55425b45117a8c4184f08284b0a357409c15c14 --- /dev/null +++ b/libs/or-tools-stable/.github/workflows/macos_cpp.yml @@ -0,0 +1,33 @@ +name: C++ MacOS CI + +on: [push, pull_request] + +jobs: + cmake_make: + runs-on: macos-latest + steps: + - uses: actions/checkout@v2 + - name: Check cmake + run: cmake --version + - name: Configure + run: cmake -S. -Bbuild -DCMAKE_BUILD_TYPE=Release -DBUILD_DEPS=ON + - name: Build + run: cmake --build build --target all -v + - name: Test + run: CTEST_OUTPUT_ON_FAILURE=1 cmake --build build --target test -v + - name: Install + run: cmake --build build --target install -v -- DESTDIR=install + cmake_xcode: + runs-on: macos-latest + steps: + - uses: actions/checkout@v2 + - name: Check cmake + run: cmake --version + - name: Configure + run: cmake -S. -Bbuild -G "Xcode" -DCMAKE_CONFIGURATION_TYPES=Release -DBUILD_DEPS=ON + - name: Build + run: cmake --build build --config Release --target ALL_BUILD -v + - name: Test + run: cmake --build build --config Release --target RUN_TESTS -v + - name: Install + run: cmake --build build --config Release --target install -v -- DESTDIR=install diff --git a/libs/or-tools-stable/.github/workflows/macos_dotnet.yml b/libs/or-tools-stable/.github/workflows/macos_dotnet.yml new file mode 100644 index 0000000000000000000000000000000000000000..b0bd073111600ba96215dc382f8aff4a1fac1945 --- /dev/null +++ b/libs/or-tools-stable/.github/workflows/macos_dotnet.yml @@ -0,0 +1,26 @@ +name: .Net MacOS CI + +on: [push, pull_request] + +jobs: + # Building using the github runner environement directly. + cmake_make: + runs-on: macos-latest + steps: + - uses: actions/checkout@v2 + - name: Check cmake + run: cmake --version + - name: Swig install + run: brew install swig + - name: Check swig + run: swig -version + - name: Check dotnet + run: dotnet --info + - name: Configure + run: cmake -S. -Bbuild -DCMAKE_BUILD_TYPE=Release -DBUILD_DOTNET=ON -DBUILD_CXX_SAMPLES=OFF -DBUILD_CXX_EXAMPLES=OFF + - name: Build + run: cmake --build build --target all -v + - name: Test + run: CTEST_OUTPUT_ON_FAILURE=1 cmake --build build --target test -v + - name: Install + run: cmake --build build --target install -v -- DESTDIR=install diff --git a/libs/or-tools-stable/.github/workflows/macos_java.yml b/libs/or-tools-stable/.github/workflows/macos_java.yml new file mode 100644 index 0000000000000000000000000000000000000000..e6b2bbfec90a47e9dadf726c25aae7ba9d91834c --- /dev/null +++ b/libs/or-tools-stable/.github/workflows/macos_java.yml @@ -0,0 +1,48 @@ +name: Java MacOS CI + +on: [push, pull_request] + +jobs: + # Building using the github runner environement directly. + cmake_make: + runs-on: macos-latest + steps: + - uses: actions/checkout@v2 + - name: Check cmake + run: cmake --version + - name: Swig install + run: brew install swig + - name: Check swig + run: swig -version + - name: Check java + run: java -version + - name: Configure + run: cmake -S. -Bbuild -DCMAKE_BUILD_TYPE=Release -DBUILD_JAVA=ON -DBUILD_CXX_SAMPLES=OFF -DBUILD_CXX_EXAMPLES=OFF + - name: Build + run: cmake --build build --target all -v + - name: Test + run: CTEST_OUTPUT_ON_FAILURE=1 cmake --build build --target test -v + - name: Install + run: cmake --build build --target install -v -- DESTDIR=install + cmake_xcode: + runs-on: macos-latest + steps: + - uses: actions/checkout@v2 + - name: Check cmake + run: cmake --version + - name: Swig install + run: brew install swig + - name: Check swig + run: swig -version + - name: Check java + run: java -version + - name: Configure + run: cmake -S. -Bbuild -G "Xcode" -DCMAKE_CONFIGURATION_TYPES=Release -DBUILD_JAVA=ON -DBUILD_CXX_SAMPLES=OFF -DBUILD_CXX_EXAMPLES=OFF + - name: Build + run: cmake --build build --config Release --target ALL_BUILD -v + - name: Test + # note: can't use the target RUN_TESTS which seems to conflict with maven run command + #run: cmake --build build --config Release --target RUN_TESTS -v + run: cd build && ctest -C Release --verbose --extra-verbose --output-on-failure + - name: Install + run: cmake --build build --config Release --target install -v -- DESTDIR=install diff --git a/libs/or-tools-stable/.github/workflows/macos_python.yml b/libs/or-tools-stable/.github/workflows/macos_python.yml new file mode 100644 index 0000000000000000000000000000000000000000..c3273bb3516d39bc89618adb0bf80f118e9a3043 --- /dev/null +++ b/libs/or-tools-stable/.github/workflows/macos_python.yml @@ -0,0 +1,48 @@ +name: Python MacOS CI + +on: [push, pull_request] + +jobs: + # Building using the github runner environement directly. + cmake_make: + runs-on: macos-latest + steps: + - uses: actions/checkout@v2 + - name: Check cmake + run: cmake --version + - name: Swig install + run: brew install swig + - name: Check swig + run: swig -version + - name: Update Path + run: echo "$HOME/Library/Python/3.9/bin" >> $GITHUB_PATH + - name: Configure + run: cmake -S. -Bbuild -DCMAKE_BUILD_TYPE=Release -DBUILD_PYTHON=ON -DBUILD_CXX_SAMPLES=OFF -DBUILD_CXX_EXAMPLES=OFF + - name: Build + run: cmake --build build --target all -v + - name: Test + run: CTEST_OUTPUT_ON_FAILURE=1 cmake --build build --target test -v + - name: Install + run: cmake --build build --target install -v -- DESTDIR=install + cmake_xcode: + runs-on: macos-latest + steps: + - uses: actions/checkout@v2 + - name: Check cmake + run: cmake --version + - name: Swig install + run: brew install swig + - name: Check swig + run: swig -version + - name: Update Path + run: echo "$HOME/Library/Python/3.9/bin" >> $GITHUB_PATH + - name: Configure + run: cmake -S. -Bbuild -G "Xcode" -DCMAKE_CONFIGURATION_TYPES=Release -DBUILD_PYTHON=ON -DBUILD_CXX_SAMPLES=OFF -DBUILD_CXX_EXAMPLES=OFF + - name: Build + run: cmake --build build --config Release --target ALL_BUILD -v + - name: Test + # note: can't use the target RUN_TESTS which seems to conflict with maven run command + #run: cmake --build build --config Release --target RUN_TESTS -v + run: cd build && ctest -C Release --verbose --extra-verbose --output-on-failure + - name: Install + run: cmake --build build --config Release --target install -v -- DESTDIR=install diff --git a/libs/or-tools-stable/.github/workflows/vagrant.yml b/libs/or-tools-stable/.github/workflows/vagrant.yml new file mode 100644 index 0000000000000000000000000000000000000000..3edcc228d5b3dd443189f124faa2c92a77ce9200 --- /dev/null +++ b/libs/or-tools-stable/.github/workflows/vagrant.yml @@ -0,0 +1,33 @@ +name: Vagrant CMake + +on: [push, pull_request] + +jobs: + # Only macos runner provide virtualisation with vagrant/virtualbox installed. + FreeBSD: + runs-on: macos-latest + continue-on-error: ${{ matrix.allow_failure }} + strategy: + fail-fast: false + matrix: + distro: [freebsd] + lang: [cpp, python] + allow_failure: [false] + include: + - distro: freebsd + lang: java + allow_failure: true + - distro: freebsd + lang: dotnet + allow_failure: true + env: + DISTRO: ${{ matrix.distro }} + LANG: ${{ matrix.lang }} + steps: + - uses: actions/checkout@v2 + - name: vagrant version + run: Vagrant --version + - name: VirtualBox version + run: virtualbox -h + - name: Build + run: make --directory=cmake ${DISTRO}_${LANG} diff --git a/libs/or-tools-stable/.github/workflows/win_cpp.yml b/libs/or-tools-stable/.github/workflows/win_cpp.yml new file mode 100644 index 0000000000000000000000000000000000000000..f3ac055aef29118f12dae09690ba447aa429deba --- /dev/null +++ b/libs/or-tools-stable/.github/workflows/win_cpp.yml @@ -0,0 +1,20 @@ +name: C++ Windows CI + +on: [push, pull_request] + +jobs: + # Building using the github runner environement directly. + cmake: + runs-on: windows-latest + steps: + - uses: actions/checkout@v2 + - name: Check cmake + run: cmake --version + - name: Configure + run: cmake -S. -Bbuild -G "Visual Studio 16 2019" -DCMAKE_BUILD_TYPE=Release -DBUILD_DEPS=ON + - name: Build + run: cmake --build build --config Release --target ALL_BUILD -v -- /maxcpucount + - name: Test + run: cmake --build build --config Release --target RUN_TESTS -v -- /maxcpucount + - name: Install + run: cmake --build build --config Release --target INSTALL -v -- /maxcpucount diff --git a/libs/or-tools-stable/.github/workflows/win_dotnet.yml b/libs/or-tools-stable/.github/workflows/win_dotnet.yml new file mode 100644 index 0000000000000000000000000000000000000000..429491adc8c1dd057d26916b9081ba463af3400b --- /dev/null +++ b/libs/or-tools-stable/.github/workflows/win_dotnet.yml @@ -0,0 +1,29 @@ +name: .Net Windows CI + +on: [push, pull_request] + +jobs: + # Building using the github runner environement directly. + cmake: + runs-on: windows-latest + steps: + - uses: actions/checkout@v2 + - name: Check cmake + run: cmake --version + - name: Install SWIG 4.0.2 + run: | + (New-Object System.Net.WebClient).DownloadFile("http://prdownloads.sourceforge.net/swig/swigwin-4.0.2.zip","swigwin-4.0.2.zip"); + Expand-Archive .\swigwin-4.0.2.zip .; + echo "$((Get-Item .).FullName)/swigwin-4.0.2" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append + - name: Check swig + run: swig -version + - name: Check dotnet + run: dotnet --info + - name: Configure + run: cmake -S. -Bbuild -G "Visual Studio 16 2019" -DCMAKE_BUILD_TYPE=Release -DBUILD_DOTNET=ON -DBUILD_CXX_SAMPLES=OFF -DBUILD_CXX_EXAMPLES=OFF + - name: Build + run: cmake --build build --config Release --target ALL_BUILD -v -- /maxcpucount + - name: Test + run: cmake --build build --config Release --target RUN_TESTS -v -- /maxcpucount + - name: Install + run: cmake --build build --config Release --target INSTALL -v -- /maxcpucount diff --git a/libs/or-tools-stable/.github/workflows/win_java.yml b/libs/or-tools-stable/.github/workflows/win_java.yml new file mode 100644 index 0000000000000000000000000000000000000000..a967e8939104d2690c675699a9568ee793e17487 --- /dev/null +++ b/libs/or-tools-stable/.github/workflows/win_java.yml @@ -0,0 +1,29 @@ +name: Java Windows CI + +on: [push, pull_request] + +jobs: + # Building using the github runner environement directly. + cmake: + runs-on: windows-latest + steps: + - uses: actions/checkout@v2 + - name: Check cmake + run: cmake --version + - name: Install SWIG 4.0.2 + run: | + (New-Object System.Net.WebClient).DownloadFile("http://prdownloads.sourceforge.net/swig/swigwin-4.0.2.zip","swigwin-4.0.2.zip"); + Expand-Archive .\swigwin-4.0.2.zip .; + echo "$((Get-Item .).FullName)/swigwin-4.0.2" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append + - name: Check swig + run: swig -version + - name: Check java + run: java -version + - name: Configure + run: cmake -S. -Bbuild -G "Visual Studio 16 2019" -DCMAKE_BUILD_TYPE=Release -DBUILD_JAVA=ON -DBUILD_CXX_SAMPLES=OFF -DBUILD_CXX_EXAMPLES=OFF + - name: Build + run: cmake --build build --config Release --target ALL_BUILD -v -- /maxcpucount + - name: Test + run: cmake --build build --config Release --target RUN_TESTS -v -- /maxcpucount + - name: Install + run: cmake --build build --config Release --target INSTALL -v -- /maxcpucount diff --git a/libs/or-tools-stable/.github/workflows/win_python.yml b/libs/or-tools-stable/.github/workflows/win_python.yml new file mode 100644 index 0000000000000000000000000000000000000000..1a50318480d1ba81ee6e8a94420b77e6add18927 --- /dev/null +++ b/libs/or-tools-stable/.github/workflows/win_python.yml @@ -0,0 +1,29 @@ +name: Python Windows CI + +on: [push, pull_request] + +jobs: + # Building using the github runner environement directly. + cmake: + runs-on: windows-latest + steps: + - uses: actions/checkout@v2 + - name: Check cmake + run: cmake --version + - name: Install SWIG 4.0.2 + run: | + (New-Object System.Net.WebClient).DownloadFile("http://prdownloads.sourceforge.net/swig/swigwin-4.0.2.zip","swigwin-4.0.2.zip"); + Expand-Archive .\swigwin-4.0.2.zip .; + echo "$((Get-Item .).FullName)/swigwin-4.0.2" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append + - name: Check swig + run: swig -version + - name: Add Python binaries to path + run: echo "$((Get-Item ~).FullName)/AppData/Roaming/Python/Python39/Scripts" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append + - name: Configure + run: cmake -S. -Bbuild -G "Visual Studio 16 2019" -DCMAKE_BUILD_TYPE=Release -DBUILD_PYTHON=ON -DBUILD_CXX_SAMPLES=OFF -DBUILD_CXX_EXAMPLES=OFF + - name: Build + run: cmake --build build --config Release --target ALL_BUILD -v -- /maxcpucount + - name: Test + run: cmake --build build --config Release --target RUN_TESTS -v -- /maxcpucount + - name: Install + run: cmake --build build --config Release --target INSTALL -v -- /maxcpucount diff --git a/libs/or-tools-stable/.gitignore b/libs/or-tools-stable/.gitignore new file mode 100644 index 0000000000000000000000000000000000000000..db7e0f7372bdccb9cbf4dd86367362da69303eab --- /dev/null +++ b/libs/or-tools-stable/.gitignore @@ -0,0 +1,81 @@ +Makefile.local + +dependencies/archives/ + +dependencies/install/ +dependencies/sources/ +dependencies/check.log + +or-tools*.tar.gz +or-tools*.zip +*.snk +*.a +*.o +*.so +*.py[co] +*.lib +*.exp +*.pdb +*.ass +*.swp + +build.log +test.log +publish.log +ortools/gen/ +objs/ +classes/ +packages/ +temp_test/ +temp_fz/ +temp_fz_test/ +temp_python* +temp_java/ +temp_dotnet/ +temp_dotnet_test/ +temp_archive/ +temp_fz_archive/ +lib/ +bin/ +install/ +examples/notebook/.ipynb_checkpoints + +ortools/bazel-* +examples/bazel-* +bazel-* + +.vagrant/ + +tools/docker/export + +CMakeLists.txt.user +*.userprefs +*build*/* +.idea/* +.idea/ +build/ +cache/ +**/.vscode/* +.DS_Store +**/.vs/* + +ortools/linear_solver/lpi_glop.cc + +ortools/dotnet/*.props +ortools/dotnet/*.png +ortools/dotnet/*/*.csproj +ortools/dotnet/*/*.fsproj +ortools/dotnet/*/runtime.json +ortools/dotnet/*/bin +ortools/dotnet/*/obj +ortools/**/samples/bin +ortools/**/samples/obj +examples/tests/bin +examples/tests/obj +examples/contrib/bin +examples/contrib/obj +examples/dotnet/bin +examples/dotnet/obj + +# Release key +tools/docker/or-tools.snk diff --git a/libs/or-tools-stable/.pylintrc b/libs/or-tools-stable/.pylintrc new file mode 100644 index 0000000000000000000000000000000000000000..e8f9f02da1419882d854a9db825545349d8b6698 --- /dev/null +++ b/libs/or-tools-stable/.pylintrc @@ -0,0 +1,407 @@ +[MASTER] + +# Specify a configuration file. +#rcfile= + +# Python code to execute, usually for sys.path manipulation such as +# pygtk.require(). +#init-hook= + +# Add files or directories to the blacklist. They should be base names, not +# paths. +ignore=CVS + +# Add files or directories matching the regex patterns to the blacklist. The +# regex matches against base names, not paths. +ignore-patterns= + +# Pickle collected data for later comparisons. +persistent=yes + +# List of plugins (as comma separated values of python modules names) to load, +# usually to register additional checkers. +load-plugins= + +# Use multiple processes to speed up Pylint. +jobs=1 + +# Allow loading of arbitrary C extensions. Extensions are imported into the +# active Python interpreter and may run arbitrary code. +unsafe-load-any-extension=no + +# A comma-separated list of package or module names from where C extensions may +# be loaded. Extensions are loading into the active Python interpreter and may +# run arbitrary code +extension-pkg-whitelist= + +# Allow optimization of some AST trees. This will activate a peephole AST +# optimizer, which will apply various small optimizations. For instance, it can +# be used to obtain the result of joining multiple strings with the addition +# operator. Joining a lot of strings can lead to a maximum recursion error in +# Pylint and this flag can prevent that. It has one side effect, the resulting +# AST will be different than the one from reality. This option is deprecated +# and it will be removed in Pylint 2.0. +optimize-ast=no + + +[MESSAGES CONTROL] + +# Only show warnings with the listed confidence levels. Leave empty to show +# all. Valid levels: HIGH, INFERENCE, INFERENCE_FAILURE, UNDEFINED +confidence= + +# Enable the message, report, category or checker with the given id(s). You can +# either give multiple identifier separated by comma (,) or put this option +# multiple time (only on the command line, not in the configuration file where +# it should appear only once). See also the "--disable" option for examples. +#enable= + +# Disable the message, report, category or checker with the given id(s). You +# can either give multiple identifiers separated by comma (,) or put this +# option multiple times (only on the command line, not in the configuration +# file where it should appear only once).You can also use "--disable=all" to +# disable everything first and then reenable specific checks. For example, if +# you want to run only the similarities checker, you can use "--disable=all +# --enable=similarities". If you want to run only the classes checker, but have +# no Warning level messages displayed, use"--disable=all --enable=classes +# --disable=W" +disable=raising-string,xrange-builtin,execfile-builtin,parameter-unpacking,import-star-module-level,no-absolute-import,long-suffix,useless-suppression,oct-method,nonzero-method,raw_input-builtin,round-builtin,delslice-method,getslice-method,dict-iter-method,range-builtin-not-iterating,buffer-builtin,intern-builtin,map-builtin-not-iterating,reload-builtin,hex-method,old-division,backtick,setslice-method,dict-view-method,apply-builtin,unichr-builtin,coerce-method,using-cmp-argument,long-builtin,old-octal-literal,filter-builtin-not-iterating,old-ne-operator,cmp-method,suppressed-message,coerce-builtin,input-builtin,next-method-called,file-builtin,print-statement,unpacking-in-except,unicode-builtin,reduce-builtin,standarderror-builtin,basestring-builtin,cmp-builtin,indexing-exception,zip-builtin-not-iterating,old-raise-syntax,metaclass-assignment + + +[REPORTS] + +# Set the output format. Available formats are text, parseable, colorized, msvs +# (visual studio) and html. You can also give a reporter class, eg +# mypackage.mymodule.MyReporterClass. +output-format=text + +# Put messages in a separate file for each module / package specified on the +# command line instead of printing them on stdout. Reports (if any) will be +# written in a file name "pylint_global.[txt|html]". This option is deprecated +# and it will be removed in Pylint 2.0. +files-output=no + +# Tells whether to display a full report or only the messages +reports=yes + +# Python expression which should return a note less than 10 (10 is the highest +# note). You have access to the variables errors warning, statement which +# respectively contain the number of errors / warnings messages and the total +# number of statements analyzed. This is used by the global evaluation report +# (RP0004). +evaluation=10.0 - ((float(5 * error + warning + refactor + convention) / statement) * 10) + +# Template used to display messages. This is a python new-style format string +# used to format the message information. See doc for all details +#msg-template= + + +[BASIC] + +# Good variable names which should always be accepted, separated by a comma +good-names=i,j,k,x,y,z,t,ex,Run,_ + +# Bad variable names which should always be refused, separated by a comma +bad-names=foo,bar,baz,toto,tutu,tata + +# Colon-delimited sets of names that determine each other's naming style when +# the name regexes allow several styles. +name-group= + +# Include a hint for the correct naming format with invalid-name +include-naming-hint=no + +# List of decorators that produce properties, such as abc.abstractproperty. Add +# to this list to register other decorators that produce valid properties. +property-classes=abc.abstractproperty + +# Regular expression matching correct argument names +argument-rgx=[a-z_][a-z0-9_]{2,30}$ + +# Naming hint for argument names +argument-name-hint=[a-z_][a-z0-9_]{2,30}$ + +# Regular expression matching correct module names +module-rgx=(([a-z_][a-z0-9_]*)|([A-Z][a-zA-Z0-9]+))$ + +# Naming hint for module names +module-name-hint=(([a-z_][a-z0-9_]*)|([A-Z][a-zA-Z0-9]+))$ + +# Regular expression matching correct variable names +variable-rgx=[a-z_][a-z0-9_]{2,30}$ + +# Naming hint for variable names +variable-name-hint=[a-z_][a-z0-9_]{2,30}$ + +# Regular expression matching correct class names +class-rgx=[A-Z_][a-zA-Z0-9]+$ + +# Naming hint for class names +class-name-hint=[A-Z_][a-zA-Z0-9]+$ + +# Regular expression matching correct function names +function-rgx=[a-z_][a-z0-9_]{2,30}$ + +# Naming hint for function names +function-name-hint=[a-z_][a-z0-9_]{2,30}$ + +# Regular expression matching correct constant names +const-rgx=(([A-Z_][A-Z0-9_]*)|(__.*__))$ + +# Naming hint for constant names +const-name-hint=(([A-Z_][A-Z0-9_]*)|(__.*__))$ + +# Regular expression matching correct method names +method-rgx=[a-z_][a-z0-9_]{2,30}$ + +# Naming hint for method names +method-name-hint=[a-z_][a-z0-9_]{2,30}$ + +# Regular expression matching correct inline iteration names +inlinevar-rgx=[A-Za-z_][A-Za-z0-9_]*$ + +# Naming hint for inline iteration names +inlinevar-name-hint=[A-Za-z_][A-Za-z0-9_]*$ + +# Regular expression matching correct attribute names +attr-rgx=[a-z_][a-z0-9_]{2,30}$ + +# Naming hint for attribute names +attr-name-hint=[a-z_][a-z0-9_]{2,30}$ + +# Regular expression matching correct class attribute names +class-attribute-rgx=([A-Za-z_][A-Za-z0-9_]{2,30}|(__.*__))$ + +# Naming hint for class attribute names +class-attribute-name-hint=([A-Za-z_][A-Za-z0-9_]{2,30}|(__.*__))$ + +# Regular expression which should only match function or class names that do +# not require a docstring. +no-docstring-rgx=^_ + +# Minimum line length for functions/classes that require docstrings, shorter +# ones are exempt. +docstring-min-length=-1 + + +[ELIF] + +# Maximum number of nested blocks for function / method body +max-nested-blocks=5 + + +[FORMAT] + +# Maximum number of characters on a single line. +max-line-length=100 + +# Regexp for a line that is allowed to be longer than the limit. +ignore-long-lines=^\s*(# )??$ + +# Allow the body of an if to be on the same line as the test if there is no +# else. +single-line-if-stmt=no + +# List of optional constructs for which whitespace checking is disabled. `dict- +# separator` is used to allow tabulation in dicts, etc.: {1 : 1,\n222: 2}. +# `trailing-comma` allows a space between comma and closing bracket: (a, ). +# `empty-line` allows space-only lines. +no-space-check=trailing-comma,dict-separator + +# Maximum number of lines in a module +max-module-lines=1000 + +# String used as indentation unit. This is usually " " (4 spaces) or "\t" (1 +# tab). +indent-string=' ' + +# Number of spaces of indent required inside a hanging or continued line. +indent-after-paren=4 + +# Expected format of line ending, e.g. empty (any line ending), LF or CRLF. +expected-line-ending-format= + + +[MISCELLANEOUS] + +# List of note tags to take in consideration, separated by a comma. +notes=FIXME,XXX,TODO + + +[VARIABLES] + +# Tells whether we should check for unused import in __init__ files. +init-import=no + +# A regular expression matching the name of dummy variables (i.e. expectedly +# not used). +dummy-variables-rgx=(_+[a-zA-Z0-9]*?$)|dummy + +# List of additional names supposed to be defined in builtins. Remember that +# you should avoid to define new builtins when possible. +additional-builtins= + +# List of strings which can identify a callback function by name. A callback +# name must start or end with one of those strings. +callbacks=cb_,_cb + +# List of qualified module names which can have objects that can redefine +# builtins. +redefining-builtins-modules=six.moves,future.builtins + + +[LOGGING] + +# Logging modules to check that the string format arguments are in logging +# function parameter format +logging-modules=logging + + +[SPELLING] + +# Spelling dictionary name. Available dictionaries: none. To make it working +# install python-enchant package. +spelling-dict= + +# List of comma separated words that should not be checked. +spelling-ignore-words= + +# A path to a file that contains private dictionary; one word per line. +spelling-private-dict-file= + +# Tells whether to store unknown words to indicated private dictionary in +# --spelling-private-dict-file option instead of raising a message. +spelling-store-unknown-words=no + + +[TYPECHECK] + +# Tells whether missing members accessed in mixin class should be ignored. A +# mixin class is detected if its name ends with "mixin" (case insensitive). +ignore-mixin-members=yes + +# List of module names for which member attributes should not be checked +# (useful for modules/projects where namespaces are manipulated during runtime +# and thus existing member attributes cannot be deduced by static analysis. It +# supports qualified module names, as well as Unix pattern matching. +ignored-modules= + +# List of class names for which member attributes should not be checked (useful +# for classes with dynamically set attributes). This supports the use of +# qualified names. +ignored-classes=optparse.Values,thread._local,_thread._local + +# List of members which are set dynamically and missed by pylint inference +# system, and so shouldn't trigger E1101 when accessed. Python regular +# expressions are accepted. +generated-members= + +# List of decorators that produce context managers, such as +# contextlib.contextmanager. Add to this list to register other decorators that +# produce valid context managers. +contextmanager-decorators=contextlib.contextmanager + + +[SIMILARITIES] + +# Minimum lines number of a similarity. +min-similarity-lines=4 + +# Ignore comments when computing similarities. +ignore-comments=yes + +# Ignore docstrings when computing similarities. +ignore-docstrings=yes + +# Ignore imports when computing similarities. +ignore-imports=no + + +[IMPORTS] + +# Deprecated modules which should not be used, separated by a comma +deprecated-modules=optparse + +# Create a graph of every (i.e. internal and external) dependencies in the +# given file (report RP0402 must not be disabled) +import-graph= + +# Create a graph of external dependencies in the given file (report RP0402 must +# not be disabled) +ext-import-graph= + +# Create a graph of internal dependencies in the given file (report RP0402 must +# not be disabled) +int-import-graph= + +# Force import order to recognize a module as part of the standard +# compatibility libraries. +known-standard-library= + +# Force import order to recognize a module as part of a third party library. +known-third-party=enchant + +# Analyse import fallback blocks. This can be used to support both Python 2 and +# 3 compatible code, which means that the block might have code that exists +# only in one or another interpreter, leading to false positives when analysed. +analyse-fallback-blocks=no + + +[CLASSES] + +# List of method names used to declare (i.e. assign) instance attributes. +defining-attr-methods=__init__,__new__,setUp + +# List of valid names for the first argument in a class method. +valid-classmethod-first-arg=cls + +# List of valid names for the first argument in a metaclass class method. +valid-metaclass-classmethod-first-arg=mcs + +# List of member names, which should be excluded from the protected access +# warning. +exclude-protected=_asdict,_fields,_replace,_source,_make + + +[DESIGN] + +# Maximum number of arguments for function / method +max-args=5 + +# Argument names that match this expression will be ignored. Default to name +# with leading underscore +ignored-argument-names=_.* + +# Maximum number of locals for function / method body +max-locals=15 + +# Maximum number of return / yield for function / method body +max-returns=6 + +# Maximum number of branch for function / method body +max-branches=12 + +# Maximum number of statements in function / method body +max-statements=50 + +# Maximum number of parents for a class (see R0901). +max-parents=7 + +# Maximum number of attributes for a class (see R0902). +max-attributes=7 + +# Minimum number of public methods for a class (see R0903). +min-public-methods=2 + +# Maximum number of public methods for a class (see R0904). +max-public-methods=20 + +# Maximum number of boolean expressions in a if statement +max-bool-expr=5 + + +[EXCEPTIONS] + +# Exceptions that will emit a warning when being caught. Defaults to +# "Exception" +overgeneral-exceptions=Exception diff --git a/libs/or-tools-stable/.travis.yml b/libs/or-tools-stable/.travis.yml new file mode 100644 index 0000000000000000000000000000000000000000..18c4ccaae15cf4043550b2854da90a39dab572a3 --- /dev/null +++ b/libs/or-tools-stable/.travis.yml @@ -0,0 +1,171 @@ +language: cpp +cache: + ccache: true + pip: true + +matrix: + include: + ## Makefile builder + + # Linux, AMD64 + - os: linux + dist: bionic + compiler: gcc + env: BUILDER=make LANGUAGE=cc ARCH=amd64 + - os: linux + dist: bionic + compiler: gcc + env: BUILDER=make LANGUAGE=python3 ARCH=amd64 + - os: linux + dist: bionic + compiler: gcc + env: BUILDER=make LANGUAGE=java ARCH=amd64 + - os: linux + dist: bionic + compiler: gcc + env: BUILDER=make LANGUAGE=dotnet ARCH=amd64 + + # Mac OS X, AMD64 + - os: osx + osx_image: xcode11.4 + compiler: clang + env: BUILDER=make LANGUAGE=cc ARCH=amd64 + - os: osx + osx_image: xcode11.4 + compiler: clang + env: BUILDER=make LANGUAGE=python3 ARCH=amd64 + - os: osx + # to get JDK 8 + # https://docs.travis-ci.com/user/reference/osx/#jdk-and-macos + osx_image: xcode9.3 + compiler: clang + env: BUILDER=make LANGUAGE=java ARCH=amd64 + - os: osx + osx_image: xcode11.4 + compiler: clang + env: BUILDER=make LANGUAGE=dotnet ARCH=amd64 + + # Linux, PPC64LE + - os: linux + arch: ppc64le + dist: bionic + compiler: gcc + env: BUILDER=make LANGUAGE=cc ARCH=ppc64le + - os: linux + arch: ppc64le + dist: bionic + compiler: gcc + env: BUILDER=make LANGUAGE=python3 ARCH=ppc64le + + # Linux, ARM64 + - os: linux + arch: arm64 + dist: bionic + compiler: gcc + env: BUILDER=make LANGUAGE=cc ARCH=arm64 + + ## CMake Build Generator + + # Linux, AMD64 + - os: linux + dist: bionic + compiler: gcc + env: BUILDER=cmake ARCH=amd64 + - os: linux + dist: bionic + compiler: clang + env: BUILDER=cmake ARCH=amd64 + + # Mac OS X, AMD64 + - os: osx + osx_image: xcode11.4 + compiler: gcc + env: BUILDER=cmake ARCH=amd64 + - os: osx + osx_image: xcode11.4 + compiler: clang + env: BUILDER=cmake ARCH=amd64 + + # Linux, PPC64LE + - os: linux + arch: ppc64le + dist: bionic + compiler: gcc + env: BUILDER=cmake LANGUAGE=cc ARCH=ppc64le + + # Linux, ARM64 + - os: linux + arch: arm64 + dist: bionic + compiler: gcc + env: BUILDER=cmake LANGUAGE=cc ARCH=arm64 + + ## Bazel builds and tests + - os: linux + dist: bionic + cache: false + addons: + apt: + sources: + - sourceline: "deb [arch=amd64] http://storage.googleapis.com/bazel-apt stable jdk1.8" + key_url: "https://bazel.build/bazel-release.pub.gpg" + packages: + - bazel + env: BUILDER=bazel ARCH=amd64 + + # Jobs too long, or can fail as not yet supported + allow_failures: + + - os: osx + osx_image: xcode11.4 + compiler: clang + env: BUILDER=make LANGUAGE=cc ARCH=amd64 + - os: osx + osx_image: xcode11.4 + compiler: clang + env: BUILDER=make LANGUAGE=python3 ARCH=amd64 + - os: osx + osx_image: xcode9.3 + compiler: clang + env: BUILDER=make LANGUAGE=java ARCH=amd64 + - os: osx + osx_image: xcode11.4 + compiler: clang + env: BUILDER=make LANGUAGE=dotnet ARCH=amd64 + - os: linux + dist: bionic + env: BUILDER=bazel ARCH=amd64 + - os: linux + arch: ppc64le + dist: bionic + compiler: gcc + env: BUILDER=make LANGUAGE=cc ARCH=ppc64le + - os: linux + arch: ppc64le + dist: bionic + compiler: gcc + env: BUILDER=make LANGUAGE=python3 ARCH=ppc64le + - os: linux + arch: ppc64le + dist: bionic + compiler: gcc + env: BUILDER=cmake LANGUAGE=cc ARCH=ppc64le + - os: linux + arch: arm64 + dist: bionic + compiler: gcc + env: BUILDER=make LANGUAGE=cc ARCH=arm64 + - os: linux + arch: arm64 + dist: bionic + compiler: gcc + env: BUILDER=cmake LANGUAGE=cc ARCH=arm64 + +install: + - ./.travis/install.sh + +before_script: + - if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then export JAVA_HOME=`/usr/libexec/java_home -v 1.8`; fi + +script: + - ./.travis/script.sh diff --git a/libs/or-tools-stable/.travis/install.sh b/libs/or-tools-stable/.travis/install.sh new file mode 100755 index 0000000000000000000000000000000000000000..afff7dc66fa27d433a0516d53de298a189d43fa6 --- /dev/null +++ b/libs/or-tools-stable/.travis/install.sh @@ -0,0 +1,143 @@ +#!/usr/bin/env bash +set -x +set -e + +function installswig() { + # Need SWIG >= 4.0.0 + cd /tmp/ && + wget https://github.com/swig/swig/archive/rel-4.0.2.tar.gz && + tar zxf rel-4.0.2.tar.gz && cd swig-rel-4.0.2 && + ./autogen.sh && ./configure --prefix "${HOME}"/swig/ 1>/dev/null && + make >/dev/null && + make install >/dev/null +} + +function installdotnetsdk(){ + # Installs for Ubuntu Bionic distro + # see https://docs.microsoft.com/fr-fr/dotnet/core/install/linux#ubuntu + sudo apt-get update -qq + sudo apt-get install -yq apt-transport-https dpkg + wget -q https://packages.microsoft.com/config/ubuntu/18.04/packages-microsoft-prod.deb + sudo dpkg -i packages-microsoft-prod.deb + # Install dotnet-sdk 3.1 + sudo apt-get update -qq + sudo apt-get install -yqq dotnet-sdk-3.1 +} + +function installcmake(){ + # Install CMake 3.18.5 + wget "https://cmake.org/files/v3.18/cmake-3.18.5-Linux-x86_64.sh" + chmod a+x cmake-3.18.5-Linux-x86_64.sh + sudo ./cmake-3.18.5-Linux-x86_64.sh --prefix=/usr/local/ --skip-license + rm cmake-3.18.5-Linux-x86_64.sh +} + +################ +## MAKEFILE ## +################ +if [ "${BUILDER}" == make ]; then + echo "TRAVIS_OS_NAME = ${TRAVIS_OS_NAME}" + if [ "${TRAVIS_OS_NAME}" == linux ]; then + echo 'travis_fold:start:c++' + sudo apt-get -qq update + sudo apt-get -yqq install autoconf libtool zlib1g-dev gawk curl lsb-release + installcmake + echo 'travis_fold:end:c++' + if [ "${LANGUAGE}" != cc ]; then + echo 'travis_fold:start:swig' + installswig + echo 'travis_fold:end:swig' + fi + if [ "${LANGUAGE}" == python3 ]; then + echo 'travis_fold:start:python3' + pyenv global system 3.7 + python3.7 -m pip install -q virtualenv wheel absl-py mypy-protobuf + echo 'travis_fold:end:python3' + elif [ "${LANGUAGE}" == dotnet ]; then + echo 'travis_fold:start:dotnet' + installdotnetsdk + echo 'travis_fold:end:dotnet' + fi + elif [ "${TRAVIS_OS_NAME}" == linux-ppc64le ]; then + echo 'travis_fold:start:c++' + sudo apt-get -qq update + sudo apt-get -yqq install autoconf libtool zlib1g-dev gawk curl lsb-release + echo 'travis_fold:end:c++' + if [ "${LANGUAGE}" != cc ]; then + echo 'travis_fold:start:swig' + installswig + echo 'travis_fold:end:swig' + fi + if [ "${LANGUAGE}" == python3 ]; then + echo 'travis_fold:start:python3' + pyenv global system 3.7 + python3.7 -m pip install -q virtualenv wheel absl-py mypy-protobuf + echo 'travis_fold:end:python3' + elif [ "${LANGUAGE}" == dotnet ]; then + echo 'travis_fold:start:dotnet' + installdotnetsdk + echo 'travis_fold:end:dotnet' + fi + elif [ "${TRAVIS_OS_NAME}" == osx ]; then + echo 'travis_fold:start:c++' + brew update + # see https://github.com/travis-ci/travis-ci/issues/10275 + brew install gcc || brew link --overwrite gcc + brew install make ccache + echo 'travis_fold:end:c++' + if [ "${LANGUAGE}" != cc ]; then + echo 'travis_fold:start:swig' + brew install swig + echo 'travis_fold:end:swig' + fi + if [ "${LANGUAGE}" == python3 ]; then + echo 'travis_fold:start:python3' + # brew upgrade python + python3 -m pip install -q virtualenv wheel absl-py mypy-protobuf + echo 'travis_fold:end:python3' + elif [ "${LANGUAGE}" == dotnet ]; then + echo 'travis_fold:start:dotnet' + brew cask install dotnet-sdk + echo 'travis_fold:end:dotnet' + fi + fi +fi + +############# +## CMAKE ## +############# +if [ "${BUILDER}" == cmake ]; then + if [ "${TRAVIS_OS_NAME}" == linux ]; then + installcmake + if [ "${LANGUAGE}" != cc ]; then + echo 'travis_fold:start:swig' + installswig + echo 'travis_fold:end:swig' + echo 'travis_fold:start:python3' + if [ "${ARCH}" == "amd64" ]; then + pyenv global system 3.7 + python3.7 -m pip install -q virtualenv wheel absl-py mypy-protobuf + elif [ "${ARCH}" == "ppc64le" ]; then + sudo apt-get install python3-dev python3-pip + python3.5 -m pip install -q virtualenv wheel absl-py mypy-protobuf + elif [ "${ARCH}" == "amd64" ]; then + sudo apt-get install python3-dev python3-pip pcre-dev + python3 -m pip install -q virtualenv wheel absl-py mypy-protobuf + fi + echo 'travis_fold:end:python3' + fi + elif [ "${TRAVIS_OS_NAME}" == osx ]; then + echo 'travis_fold:start:c++' + brew update + # see https://github.com/travis-ci/travis-ci/issues/10275 + brew install gcc || brew link --overwrite gcc + brew install make ccache + echo 'travis_fold:end:c++' + echo 'travis_fold:start:swig' + brew install swig + echo 'travis_fold:end:swig' + # echo 'travis_fold:start:python3' + # brew upgrade python + # echo 'travis_fold:end:python3' + fi +fi diff --git a/libs/or-tools-stable/.travis/script.sh b/libs/or-tools-stable/.travis/script.sh new file mode 100755 index 0000000000000000000000000000000000000000..aa0c9fc222cf6e31e5651a802974f17166fb7e27 --- /dev/null +++ b/libs/or-tools-stable/.travis/script.sh @@ -0,0 +1,241 @@ +#!/usr/bin/env bash +set -x +set -e + +function checkenv() { + if [ "${BUILDER}" == make ];then + make --version + fi + cmake --version + if [ "${LANGUAGE}" != cc ]; then + swig -version + fi + if [ "${LANGUAGE}" == python3 ];then + if [ "${ARCH}" == "amd64" ]; then + python3.7 --version + python3.7 -m pip --version + elif [ "${ARCH}" == "ppc64le" ]; then + python3.5 --version + python3.5 -m pip --version + elif [ "${ARCH}" == "amd64" ]; then + python3.7 --version + python3.7 -m pip --version + fi + elif [ "${LANGUAGE}" == java ]; then + java -version + elif [ "${LANGUAGE}" == dotnet ]; then + dotnet --info + fi +} + +################ +## MAKEFILE ## +################ +if [ "${BUILDER}" == make ];then + if [ "${TRAVIS_OS_NAME}" == linux ];then + export PATH=/usr/local/bin:"$PATH" + echo 'travis_fold:start:env' + if [ "${LANGUAGE}" != cc ]; then + export PATH="${HOME}"/swig/bin:"${PATH}" + fi + checkenv + if [ "${LANGUAGE}" == cc ]; then + make detect + elif [ "${LANGUAGE}" == python3 ]; then + if [ "${ARCH}" == "amd64" ]; then + make detect UNIX_PYTHON_VER=3.7 + else + make detect UNIX_PYTHON_VER=3.6 + fi + elif [ "${LANGUAGE}" == java ]; then + make detect JAVA_HOME=/usr/local/lib/jvm/openjdk11 + elif [ "${LANGUAGE}" == dotnet ] ; then + make detect + fi + cat Makefile.local + echo 'travis_fold:end:env' + echo 'travis_fold:start:third_party' + make third_party --jobs=4 + echo 'travis_fold:end:third_party' + if [ "${LANGUAGE}" == python3 ]; then + echo 'travis_fold:start:python' + make python --jobs=4 + echo 'travis_fold:end:python' + echo 'travis_fold:start:test_python' + make test_python --jobs=4 + echo 'travis_fold:end:test_python' + elif [ "${LANGUAGE}" == java ]; then + echo 'travis_fold:start:java' + make java --jobs=4 + echo 'travis_fold:end:java' + echo 'travis_fold:start:test_java' + make test_java --jobs=1 + echo 'travis_fold:end:test_java' + else + echo "travis_fold:start:${LANGUAGE}" + make "${LANGUAGE}" --jobs=4 + echo "travis_fold:end:${LANGUAGE}" + echo "travis_fold:start:test_${LANGUAGE}" + make test_"${LANGUAGE}" --jobs=4 + echo "travis_fold:end:test_${LANGUAGE}" + fi + if [ "${LANGUAGE}" == cc ]; then + echo "travis_fold:start:flatzinc" + make test_fz --jobs=2 + echo "travis_fold:end:flatzinc" + fi + elif [ "${TRAVIS_OS_NAME}" == linux-ppc64le ];then + echo 'travis_fold:start:env' + if [ "${LANGUAGE}" != cc ]; then + export PATH="${HOME}"/swig/bin:"${PATH}" + fi + checkenv + if [ "${LANGUAGE}" == cc ]; then + make detect + elif [ "${LANGUAGE}" == python3 ]; then + make detect UNIX_PYTHON_VER=3.7 + elif [ "${LANGUAGE}" == java ]; then + make detect JAVA_HOME=/usr/local/lib/jvm/openjdk11 + elif [ "${LANGUAGE}" == dotnet ] ; then + make detect + fi + cat Makefile.local + echo 'travis_fold:end:env' + echo 'travis_fold:start:third_party' + make third_party --jobs=4 + echo 'travis_fold:end:third_party' + if [ "${LANGUAGE}" == python3 ]; then + echo 'travis_fold:start:python' + make python --jobs=4 + echo 'travis_fold:end:python' + echo 'travis_fold:start:test_python' + make test_python --jobs=4 + echo 'travis_fold:end:test_python' + elif [ "${LANGUAGE}" == java ]; then + echo 'travis_fold:start:java' + make java --jobs=4 + echo 'travis_fold:end:java' + echo 'travis_fold:start:test_java' + make test_java --jobs=1 + echo 'travis_fold:end:test_java' + else + echo "travis_fold:start:${LANGUAGE}" + make "${LANGUAGE}" --jobs=4 + echo "travis_fold:end:${LANGUAGE}" + echo "travis_fold:start:test_${LANGUAGE}" + make test_"${LANGUAGE}" --jobs=4 + echo "travis_fold:end:test_${LANGUAGE}" + fi + if [ "${LANGUAGE}" == cc ]; then + echo "travis_fold:start:flatzinc" + make test_fz --jobs=2 + echo "travis_fold:end:flatzinc" + fi + elif [ "${TRAVIS_OS_NAME}" == osx ];then + echo 'travis_fold:start:env' + export PATH="/usr/local/opt/ccache/libexec:$PATH" + if [ "${LANGUAGE}" == dotnet ]; then + # Installer changes path but won't be picked up in current terminal session + # Need to explicitly add location + export PATH=/usr/local/share/dotnet:"${PATH}" + fi + checkenv + if [ "${LANGUAGE}" == cc ]; then + make detect + elif [ "${LANGUAGE}" == python3 ]; then + make detect UNIX_PYTHON_VER=3.7 + elif [ "${LANGUAGE}" == java ] || [ "${LANGUAGE}" == dotnet ] ; then + make detect + fi + cat Makefile.local + echo 'travis_fold:end:env' + echo 'travis_fold:start:third_party' + make third_party --jobs=1 + echo 'travis_fold:end:third_party' + if [ "${LANGUAGE}" == python3 ]; then + echo 'travis_fold:start:python' + make python --jobs=4 + echo 'travis_fold:end:python' + echo 'travis_fold:start:test_python' + make test_python --jobs=4 + echo 'travis_fold:end:test_python' + elif [ "${LANGUAGE}" == java ]; then + echo 'travis_fold:start:java' + make java --jobs=4 + echo 'travis_fold:end:java' + echo 'travis_fold:start:test_java' + make test_java --jobs=1 + echo 'travis_fold:end:test_java' + else + echo "travis_fold:start:${LANGUAGE}" + make "${LANGUAGE}" --jobs=4 + echo "travis_fold:end:${LANGUAGE}" + echo "travis_fold:start:test_${LANGUAGE}" + make test_"${LANGUAGE}" --jobs=4 + echo "travis_fold:end:test_${LANGUAGE}" + fi + if [ "${LANGUAGE}" == cc ]; then + echo "travis_fold:start:flatzinc" + make test_fz --jobs=2 + echo "travis_fold:end:flatzinc" + fi + fi +fi + +############# +## CMAKE ## +############# +if [ "${BUILDER}" == cmake ];then + export CMAKE_BUILD_PARALLEL_LEVEL=4 + if [ "${TRAVIS_OS_NAME}" == linux ];then + export PATH=/usr/local/bin:"$PATH" + echo 'travis_fold:start:env' + # Add clang support in ccache + if [[ "${CC}" == "clang" ]]; then + sudo ln -s ../../bin/ccache /usr/lib/ccache/clang + export CFLAGS="-Qunused-arguments $CFLAGS" + fi + if [[ "${CXX}" == "clang++" ]]; then + sudo ln -s ../../bin/ccache /usr/lib/ccache/clang++ + export CXXFLAGS="-Qunused-arguments $CXXFLAGS" + fi + export PATH="${HOME}/swig/bin:${PATH}" + if [ "${ARCH}" == "amd64" ]; then + pyenv global system 3.7 + # PPC64LE -> 3.5 installed + # ARM64 -> 3.7 installed + fi + checkenv + echo 'travis_fold:end:env' + elif [ "${TRAVIS_OS_NAME}" == osx ];then + echo 'travis_fold:start:env' + export PATH="/usr/local/opt/ccache/libexec:$PATH" + checkenv + echo 'travis_fold:end:env' + fi + + echo 'travis_fold:start:configure' + cmake -H. -Bbuild -DBUILD_DEPS:BOOL=ON + echo 'travis_fold:end:configure' + + echo 'travis_fold:start:build' + cmake --build build --target all + echo 'travis_fold:end:build' + + echo 'travis_fold:start:test' + cmake --build build --target test -- CTEST_OUTPUT_ON_FAILURE=1 + echo 'travis_fold:end:test' +fi + +############# +## BAZEL ## +############# +if [ "${BUILDER}" == bazel ]; then + echo 'travis_fold:start:build' + bazel build --curses=no --cxxopt=-std=c++17 --copt='-Wno-sign-compare' //...:all + echo 'travis_fold:end:build' + + echo 'travis_fold:start:test' + bazel test -c opt --curses=no --cxxopt=-std=c++17 --copt='-Wno-sign-compare' //...:all + echo 'travis_fold:end:test' +fi diff --git a/libs/or-tools-stable/CMakeLists.txt b/libs/or-tools-stable/CMakeLists.txt new file mode 100644 index 0000000000000000000000000000000000000000..52674aa0edcad4e427fb8666faa9938a673c9fee --- /dev/null +++ b/libs/or-tools-stable/CMakeLists.txt @@ -0,0 +1,255 @@ +# This file is just an orchestration +cmake_minimum_required(VERSION 3.14) +list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake") + +# Apple: Don't modify install_name when touching RPATH. +if(POLICY CMP0068) + cmake_policy(SET CMP0068 NEW) +endif() + +# Define file(GENERATE) behavior for relative paths. +if(POLICY CMP0070) + cmake_policy(SET CMP0070 NEW) +endif() + +# target_sources: use absolute path for INTERFACE_SOURCES. +if(POLICY CMP0076) + cmake_policy(SET CMP0076 NEW) +endif() + +# option() honors normal variables. +if(POLICY CMP0077) + cmake_policy(SET CMP0077 NEW) +endif() + +# SWIG: use standard target name. +if(POLICY CMP0078) + cmake_policy(SET CMP0078 NEW) +endif() + +# SWIG: use SWIG_MODULE_NAME property. +if(POLICY CMP0086) + cmake_policy(SET CMP0086 NEW) +endif() + +# MSVC runtime library flags are selected by an abstraction. +if(POLICY CMP0091) + cmake_policy(SET CMP0091 NEW) +endif() + +include(utils) +set_version(VERSION) + +project(ortools VERSION ${VERSION} LANGUAGES CXX) +set(PROJECT_NAMESPACE ortools) +message(STATUS "${PROJECT_NAME} version: ${PROJECT_VERSION}") +#message(STATUS "major: ${PROJECT_VERSION_MAJOR}") +#message(STATUS "minor: ${PROJECT_VERSION_MINOR}") +#message(STATUS "patch: ${PROJECT_VERSION_PATCH}") + +set(CMAKE_CXX_STANDARD 17) +set(CMAKE_CXX_STANDARD_REQUIRED ON) +set(CMAKE_CXX_EXTENSIONS OFF) + +# Default Build Type to be Release +if(NOT CMAKE_BUILD_TYPE) + set(CMAKE_BUILD_TYPE "Release" CACHE STRING + "Choose the type of build, options are: Debug Release RelWithDebInfo MinSizeRel. (default: Release)" + FORCE) +endif() + +# Layout build dir like install dir +include(GNUInstallDirs) +if(UNIX) + option(BUILD_SHARED_LIBS "Build shared libraries (.so or .dyld)." ON) + set(CMAKE_BUILD_WITH_INSTALL_RPATH TRUE) + set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/${CMAKE_INSTALL_LIBDIR}) + set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/${CMAKE_INSTALL_LIBDIR}) + set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/${CMAKE_INSTALL_BINDIR}) + # for multi-config build system (e.g. xcode) + foreach(OUTPUTCONFIG IN LISTS CMAKE_CONFIGURATION_TYPES) + string(TOUPPER ${OUTPUTCONFIG} OUTPUTCONFIG) + set(CMAKE_LIBRARY_OUTPUT_DIRECTORY_${OUTPUTCONFIG} ${CMAKE_BINARY_DIR}/${OUTPUTCONFIG}/${CMAKE_INSTALL_LIBDIR}) + set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY_${OUTPUTCONFIG} ${CMAKE_BINARY_DIR}/${OUTPUTCONFIG}/${CMAKE_INSTALL_LIBDIR}) + set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_${OUTPUTCONFIG} ${CMAKE_BINARY_DIR}/${OUTPUTCONFIG}/${CMAKE_INSTALL_BINDIR}) + endforeach() +else() + # Currently Only support static build for windows + option(BUILD_SHARED_LIBS "Build shared libraries (.dll)." OFF) + set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/${CMAKE_INSTALL_BINDIR}) + set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/${CMAKE_INSTALL_BINDIR}) + set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/${CMAKE_INSTALL_BINDIR}) + # for multi-config builds (e.g. msvc) + foreach(OUTPUTCONFIG IN LISTS CMAKE_CONFIGURATION_TYPES) + string(TOUPPER ${OUTPUTCONFIG} OUTPUTCONFIG) + set(CMAKE_LIBRARY_OUTPUT_DIRECTORY_${OUTPUTCONFIG} ${CMAKE_BINARY_DIR}/${OUTPUTCONFIG}/${CMAKE_INSTALL_BINDIR}) + set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY_${OUTPUTCONFIG} ${CMAKE_BINARY_DIR}/${OUTPUTCONFIG}/${CMAKE_INSTALL_BINDIR}) + set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_${OUTPUTCONFIG} ${CMAKE_BINARY_DIR}/${OUTPUTCONFIG}/${CMAKE_INSTALL_BINDIR}) + endforeach() +endif() + +# By default only build the C++ library. +option(BUILD_CXX "Build C++ library" ON) +message(STATUS "Build C++ library: ${BUILD_CXX}") + +option(BUILD_PYTHON "Build Python Library" OFF) +message(STATUS "Build Python: ${BUILD_PYTHON}") +option(BUILD_JAVA "Build Java Library" OFF) +message(STATUS "Build Java: ${BUILD_JAVA}") +option(BUILD_DOTNET "Build .NET Library" OFF) +message(STATUS "Build .Net: ${BUILD_DOTNET}") + +# If wrapper are built, we need to have the install rpath in BINARY_DIR to package +if(BUILD_PYTHON OR BUILD_JAVA OR BUILD_DOTNET) + set(CMAKE_BUILD_WITH_INSTALL_RPATH TRUE) +endif() + +include(CMakeDependentOption) + +CMAKE_DEPENDENT_OPTION(BUILD_FLATZINC "Build flatzinc" ON "BUILD_CXX" OFF) +message(STATUS "Build Flatzinc: ${BUILD_FLATZINC}") + +CMAKE_DEPENDENT_OPTION(BUILD_GLOP "Build GLOP standalone" ON "NOT BUILD_CXX" OFF) +message(STATUS "Build standalone Glop: ${BUILD_GLOP}") + +option(BUILD_SAMPLES "Build samples" ON) +message(STATUS "Build samples: ${BUILD_SAMPLES}") +CMAKE_DEPENDENT_OPTION(BUILD_CXX_SAMPLES "Build cxx samples" ON "BUILD_SAMPLES;BUILD_CXX" OFF) +message(STATUS "Build C++ samples: ${BUILD_CXX_SAMPLES}") +CMAKE_DEPENDENT_OPTION(BUILD_PYTHON_SAMPLES "Build python samples" ON "BUILD_SAMPLES;BUILD_PYTHON" OFF) +message(STATUS "Build Python samples: ${BUILD_PYTHON_SAMPLES}") +CMAKE_DEPENDENT_OPTION(BUILD_JAVA_SAMPLES "Build java samples" ON "BUILD_SAMPLES;BUILD_JAVA" OFF) +message(STATUS "Build Java samples: ${BUILD_JAVA_SAMPLES}") +CMAKE_DEPENDENT_OPTION(BUILD_DOTNET_SAMPLES "Build dotnet samples" ON "BUILD_SAMPLES;BUILD_DOTNET" OFF) +message(STATUS "Build .Net samples: ${BUILD_DOTNET_SAMPLES}") + + +option(BUILD_EXAMPLES "Build examples" ON) +message(STATUS "Build examples: ${BUILD_EXAMPLES}") +CMAKE_DEPENDENT_OPTION(BUILD_CXX_EXAMPLES "Build cxx examples" ON "BUILD_EXAMPLES;BUILD_CXX" OFF) +message(STATUS "Build C++ examples: ${BUILD_CXX_EXAMPLES}") +CMAKE_DEPENDENT_OPTION(BUILD_PYTHON_EXAMPLES "Build python examples" ON "BUILD_EXAMPLES;BUILD_PYTHON" OFF) +message(STATUS "Build Python examples: ${BUILD_PYTHON_EXAMPLES}") +CMAKE_DEPENDENT_OPTION(BUILD_JAVA_EXAMPLES "Build java examples" ON "BUILD_EXAMPLES;BUILD_JAVA" OFF) +message(STATUS "Build Java examples: ${BUILD_JAVA_EXAMPLES}") +CMAKE_DEPENDENT_OPTION(BUILD_DOTNET_EXAMPLES "Build dotnet examples" ON "BUILD_EXAMPLES;BUILD_DOTNET" OFF) +message(STATUS "Build .Net examples: ${BUILD_DOTNET_EXAMPLES}") + +#option(BUILD_DOC "Build doxygen" OFF) +#message(STATUS "Build doxygen: ${BUILD_DOC}") + +# By default all dependencies are NOT built (i.e. BUILD_DEPS=OFF), +# BUT if building any wrappers (Python, Java or .Net) then BUILD_DEPS=ON. +if(BUILD_PYTHON OR BUILD_JAVA OR BUILD_DOTNET) + option(BUILD_DEPS "Build all dependencies" ON) +else() + option(BUILD_DEPS "Build all dependencies" OFF) +endif() +message(STATUS "Build all dependencies: ${BUILD_DEPS}") +# Install built dependencies if any, +option(INSTALL_BUILD_DEPS "Install build all dependencies" ON) + +# IF BUILD_DEPS=ON THEN Force all BUILD_*=ON +CMAKE_DEPENDENT_OPTION(BUILD_ZLIB "Build the ZLIB dependency Library" OFF + "NOT BUILD_DEPS" ON) +message(STATUS "Build ZLIB: ${BUILD_ZLIB}") + +CMAKE_DEPENDENT_OPTION(BUILD_absl "Build the abseil-cpp dependency Library" OFF + "NOT BUILD_DEPS" ON) +message(STATUS "Build abseil-cpp: ${BUILD_absl}") + +CMAKE_DEPENDENT_OPTION(BUILD_Protobuf "Build the Protobuf dependency Library" OFF + "NOT BUILD_DEPS" ON) +message(STATUS "Build protobuf: ${BUILD_Protobuf}") + +# Optional third party solvers (enabled by default) +CMAKE_DEPENDENT_OPTION(USE_SCIP "Use the Scip solver" ON "BUILD_CXX" OFF) +message(STATUS "SCIP support: ${USE_SCIP}") +if(USE_SCIP) + CMAKE_DEPENDENT_OPTION(BUILD_SCIP "Build the SCIP dependency Library" OFF + "NOT BUILD_DEPS" ON) + message(STATUS "Build SCIP: ${BUILD_SCIP}") +endif() + +CMAKE_DEPENDENT_OPTION(USE_COINOR "Use the COIN-OR solver" ON "BUILD_CXX" OFF) +message(STATUS "COIN-OR support: ${USE_COINOR}") +if(USE_COINOR) + CMAKE_DEPENDENT_OPTION(BUILD_CoinUtils "Build the CoinUtils dependency Library" OFF + "NOT BUILD_DEPS" ON) + message(STATUS "Build CoinUtils: ${BUILD_CoinUtils}") + + CMAKE_DEPENDENT_OPTION(BUILD_Osi "Build the Osi dependency Library" OFF + "NOT BUILD_DEPS" ON) + message(STATUS "Build Osi: ${BUILD_Osi}") + + CMAKE_DEPENDENT_OPTION(BUILD_Clp "Build the Clp dependency Library" OFF + "NOT BUILD_DEPS" ON) + message(STATUS "Build Clp: ${BUILD_Clp}") + + CMAKE_DEPENDENT_OPTION(BUILD_Cgl "Build the Cgl dependency Library" OFF + "NOT BUILD_DEPS" ON) + message(STATUS "Build Cgl: ${BUILD_Cgl}") + + CMAKE_DEPENDENT_OPTION(BUILD_Cbc "Build the Cbc dependency Library" OFF + "NOT BUILD_DEPS" ON) + message(STATUS "Build Cbc: ${BUILD_Cbc}") +endif() + +# Optional third party solvers (disabled by default) +option(USE_CPLEX "Use the CPLEX solver" OFF) +message(STATUS "CPLEX support: ${USE_CPLEX}") + +option(USE_XPRESS "Use the XPRESS solver" OFF) +message(STATUS "XPRESS support: ${USE_XPRESS}") + +# Build Needed dependencies +add_subdirectory(cmake/dependencies dependencies) +list(APPEND CMAKE_PREFIX_PATH ${CMAKE_CURRENT_BINARY_DIR}/dependencies/install) + +include(CTest) + +# Basic type +include(CMakePushCheckState) +cmake_push_check_state(RESET) +set(CMAKE_EXTRA_INCLUDE_FILES "cstdint") +include(CheckTypeSize) +check_type_size("long" SIZEOF_LONG LANGUAGE CXX) +message(STATUS "Found long size: ${SIZEOF_LONG}") +check_type_size("long long" SIZEOF_LONG_LONG LANGUAGE CXX) +message(STATUS "Found long long size: ${SIZEOF_LONG_LONG}") +check_type_size("int64_t" SIZEOF_INT64_T LANGUAGE CXX) +message(STATUS "Found int64_t size: ${SIZEOF_INT64_T}") + +check_type_size("unsigned long" SIZEOF_ULONG LANGUAGE CXX) +message(STATUS "Found unsigned long size: ${SIZEOF_ULONG}") +check_type_size("unsigned long long" SIZEOF_ULONG_LONG LANGUAGE CXX) +message(STATUS "Found unsigned long long size: ${SIZEOF_ULONG_LONG}") +check_type_size("uint64_t" SIZEOF_UINT64_T LANGUAGE CXX) +message(STATUS "Found uint64_t size: ${SIZEOF_UINT64_T}") + +check_type_size("int *" SIZEOF_INT_P LANGUAGE CXX) +message(STATUS "Found int * size: ${SIZEOF_INT_P}") +cmake_pop_check_state() + +include(deps) +include(cpp) +include(flatzinc) +include(glop) + +include(python) +include(java) +include(dotnet) + +# Since samples mix all languages we must parse them once we have included all +# .cmake files +foreach(SAMPLES IN ITEMS algorithms graph linear_solver constraint_solver sat) + add_subdirectory(ortools/${SAMPLES}/samples) +endforeach() + +# Same for examples +foreach(EXAMPLES IN ITEMS contrib cpp python java dotnet) + add_subdirectory(examples/${EXAMPLES}) +endforeach() + +# Add tests in examples/tests +add_subdirectory(examples/tests) diff --git a/libs/or-tools-stable/CONTRIBUTING.md b/libs/or-tools-stable/CONTRIBUTING.md new file mode 100644 index 0000000000000000000000000000000000000000..db177d4ac70f76c2172ce65ca33c830d6cbd3ac5 --- /dev/null +++ b/libs/or-tools-stable/CONTRIBUTING.md @@ -0,0 +1,28 @@ +# How to Contribute + +We'd love to accept your patches and contributions to this project. There are +just a few small guidelines you need to follow. + +## Contributor License Agreement + +Contributions to this project must be accompanied by a Contributor License +Agreement. You (or your employer) retain the copyright to your contribution; +this simply gives us permission to use and redistribute your contributions as +part of the project. Head over to to see +your current agreements on file or to sign a new one. + +You generally only need to submit a CLA once, so if you've already submitted one +(even if it was for a different project), you probably don't need to do it +again. + +## Code reviews + +All submissions, including submissions by project members, require review. We +use GitHub pull requests for this purpose. Consult +[GitHub Help](https://help.github.com/articles/about-pull-requests/) for more +information on using pull requests. + +## Community Guidelines + +This project follows +[Google's Open Source Community Guidelines](https://opensource.google.com/conduct/). diff --git a/libs/or-tools-stable/Dependencies.txt b/libs/or-tools-stable/Dependencies.txt new file mode 100644 index 0000000000000000000000000000000000000000..7b28beb896049a6ea19da2ccfd1b2b27225c89fa --- /dev/null +++ b/libs/or-tools-stable/Dependencies.txt @@ -0,0 +1,8 @@ +Protobuf=3.14.0 +abseil-cpp=20200923.2 +Cbc=2.10.5 +Cgl=0.60.3 +Clp=1.17.4 +Osi=0.108.6 +CoinUtils=2.11.4 +Scip=7.0.1 diff --git a/libs/or-tools-stable/LICENSE-2.0.txt b/libs/or-tools-stable/LICENSE-2.0.txt new file mode 100644 index 0000000000000000000000000000000000000000..0f3822be4adba1970288328d9a838ad4e87935bf --- /dev/null +++ b/libs/or-tools-stable/LICENSE-2.0.txt @@ -0,0 +1,202 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright 2010 Google LLC + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/libs/or-tools-stable/Makefile b/libs/or-tools-stable/Makefile new file mode 100644 index 0000000000000000000000000000000000000000..8417d71977772902277004714acfc2ac706cdf94 --- /dev/null +++ b/libs/or-tools-stable/Makefile @@ -0,0 +1,152 @@ +# Top level declarations +.PHONY: help +help: help_all + +.PHONY: all +all: build_all + +.PHONY: check +check: check_all + +.PHONY: test +test: test_all + +.PHONY: clean +clean: clean_all + +.PHONY: detect +detect: detect_all + +# OR_ROOT is the minimal prefix to define the root of or-tools, if we +# are compiling in the or-tools root, it is empty. Otherwise, it is +# $(OR_TOOLS_TOP)/ or $(OR_TOOLS_TOP)\\ depending on the platform. It +# contains the trailing separator if not empty. +# +# INC_DIR is like OR_ROOT, but with a default of '.' instead of +# empty. It is used for instance in include directives (-I.). +# +# OR_ROOT_FULL is always the complete path to or-tools. It is useful +# to store path informations inside libraries for instance. +ifeq ($(OR_TOOLS_TOP),) + OR_ROOT = +else + ifeq ($(OS), Windows_NT) + OR_ROOT = $(OR_TOOLS_TOP)\\ + else + OR_ROOT = $(OR_TOOLS_TOP)/ + endif +endif + +# Delete all implicit rules to speed up makefile +.SUFFIXES: +# Remove some rules from gmake that .SUFFIXES does not remove. +SUFFIXES = + +# Keep all intermediate files +# ToDo: try to remove it later +.SECONDARY: + +# Read version. +include $(OR_ROOT)Version.txt + +# We try to detect the platform. +include $(OR_ROOT)makefiles/Makefile.port.mk +OR_ROOT_FULL=$(OR_TOOLS_TOP) + +# Load local variables +include $(OR_ROOT)Makefile.local + +# Change the file extensions to increase diff tool friendliness. +# Then include specific system commands and definitions +include $(OR_ROOT)makefiles/Makefile.$(SYSTEM).mk + +# Rules to fetch and build third party dependencies. +include $(OR_ROOT)makefiles/Makefile.third_party.$(SYSTEM).mk + +# Check SOURCE argument +SOURCE_SUFFIX = $(suffix $(SOURCE)) +# will contain “/any/path/foo.cc” on unix and “\\any\\path\\foo.cc” on windows +SOURCE_PATH = $(subst /,$S,$(SOURCE)) +SOURCE_NAME= $(basename $(notdir $(SOURCE))) +ifeq ($(SOURCE),) # Those rules will be used if SOURCE is empty +.PHONY: build run +build run: + $(error no source file provided, the "$@" target must be used like so: \ + make $@ SOURCE=relative/path/to/filename.extension) +else +ifeq (,$(wildcard $(SOURCE))) +$(error File "$(SOURCE)" does not exist !) +endif +endif + +# Include .mk files. +include $(OR_ROOT)makefiles/Makefile.cpp.mk +include $(OR_ROOT)makefiles/Makefile.python.mk +include $(OR_ROOT)makefiles/Makefile.java.mk +include $(OR_ROOT)makefiles/Makefile.dotnet.mk +include $(OR_ROOT)makefiles/Makefile.archive.mk +ifeq ($(SYSTEM),unix) +include $(OR_ROOT)makefiles/Makefile.doc.mk +else +# Remove some rules on windows +help_doc: + +endif + +# Finally include user makefile if it exists +-include $(OR_ROOT)Makefile.user + +.PHONY: help_usage +help_usage: + @echo Use one of the following targets: + @echo help, help_all: Print this help. + @echo all: Build OR-Tools for all available languages \(need a call to \"make third_party\" first\). + @echo check, check_all: Check OR-Tools for all available languages. + @echo test, test_all: Test OR-Tools for all available languages. + @echo clean, clean_all: Clean output from previous build for all available languages \(won\'t clean third party\). + @echo detect, detect_all: Show variables used to build OR-Tools for all available languages. +ifeq ($(SYSTEM),win) + @echo off & echo( +else + @echo +endif + +.PHONY: help_all +help_all: help_usage help_third_party help_cc help_python help_java help_dotnet help_archive help_doc + +.PHONY: build_all +build_all: cc python java dotnet + @echo Or-tools have been built for $(BUILT_LANGUAGES) + +.PHONY: check_all +check_all: check_cc check_python check_java check_dotnet + @echo Or-tools have been built and checked for $(BUILT_LANGUAGES) + +.PHONY: test_all +test_all: test_cc test_python test_java test_dotnet + @echo Or-tools have been built and tested for $(BUILT_LANGUAGES) + +.PHONY: clean_all +clean_all: clean_cc clean_python clean_java clean_dotnet clean_compat clean_archive + -$(DELREC) $(BIN_DIR) + -$(DELREC) $(LIB_DIR) + -$(DELREC) $(OBJ_DIR) + -$(DELREC) $(GEN_PATH) + @echo Or-tools have been cleaned for $(BUILT_LANGUAGES) + +.PHONY: detect_all +detect_all: detect_port detect_third_party detect_cc detect_python detect_java detect_dotnet detect_archive + @echo SOURCE = $(SOURCE) + @echo SOURCE_PATH = $(SOURCE_PATH) + @echo SOURCE_NAME = $(SOURCE_NAME) + @echo SOURCE_SUFFIX = $(SOURCE_SUFFIX) +ifeq ($(SYSTEM),win) + @echo off & echo( +else + @echo +endif + +print-% : ; @echo $* = \'$($*)\' + +.PHONY: FORCE +FORCE: diff --git a/libs/or-tools-stable/README.md b/libs/or-tools-stable/README.md new file mode 100644 index 0000000000000000000000000000000000000000..9e8586114884c0ff014906bf8a69674d5b833959 --- /dev/null +++ b/libs/or-tools-stable/README.md @@ -0,0 +1,154 @@ +# OR-Tools - Google Optimization Tools + +[![Build Status][github_status]][github_link] +[![Build Status][travis_status]][travis_link] +[![Build Status][appveyor_status]][appveyor_link] + +[github_status]: https://github.com/google/or-tools/workflows/C++%20CI/badge.svg?branch=master +[github_link]: https://github.com/google/or-tools/actions +[travis_status]: https://travis-ci.org/google/or-tools.svg?branch=master +[travis_link]: https://travis-ci.org/google/or-tools +[appveyor_status]: https://ci.appveyor.com/api/projects/status/9hyykkcm8sh3ua6x/branch/master?svg=true +[appveyor_link]: https://ci.appveyor.com/project/lperron/or-tools-98u1n + +[![PyPI version](https://badge.fury.io/py/ortools.svg)](https://pypi.org/project/ortools/) +[![PyPI download](https://img.shields.io/pypi/dm/ortools.svg)](https://pypi.org/project/ortools/#files) +[![Binder](https://mybinder.org/badge.svg)](https://mybinder.org/v2/gh/google/or-tools/master) +\ +[![NuGet version](https://badge.fury.io/nu/Google.OrTools.svg)](https://www.nuget.org/packages/Google.OrTools) +[![NuGet download](https://img.shields.io/nuget/dt/Google.OrTools.svg)](https://www.nuget.org/packages/Google.OrTools) + +[![Discord](https://img.shields.io/discord/693088862481678374?color=7289DA&logo=discord&style=plastic)](https://discord.gg/ENkQrdf) + +Google's software suite for combinatorial optimization. + +## Table of Contents + +* [About OR-Tools](#about) +* [Codemap](#codemap) +* [Installation](#installation) +* [Quick Start](#quick-start) +* [Documentation](#documentation) +* [Contributing](#contributing) +* [License](#license) + + +## About OR-Tools + +Google Optimization Tools (a.k.a., OR-Tools) is an open-source, fast and +portable software suite for solving combinatorial optimization problems. + +The suite contains: + +* A constraint programming solver; +* A linear programming solver; +* Wrappers around commercial and other open source solvers, including mixed + integer solvers; +* Bin packing and knapsack algorithms; +* Algorithms for the Traveling Salesman Problem and Vehicle Routing Problem; +* Graph algorithms (shortest paths, min cost flow, max flow, linear sum + assignment). + +We wrote OR-Tools in C++, but also provide wrappers in Python, C# and +Java. + +## Codemap + +This software suite is composed of the following components: + +* [Makefile](Makefile) Top-level for + [GNU Make](https://www.gnu.org/software/make/manual/make.html) based build. +* [makefiles](makefiles) Subsidiary Make files, CI and build system documentation. +* [CMakeLists.txt](CMakeLists.txt) Top-level for + [CMake](https://cmake.org/cmake/help/latest/) based build. +* [cmake](cmake) Subsidiary CMake files, CI and build system documentation. +* [bazel](bazel) Subsidiary Bazel files, CI and build system documentation. + * [BUILD](bazel/BUILD) Top-level for + [Bazel](https://docs.bazel.build/versions/master/bazel-overview.html) + based build. +* [ortools](ortools) Root directory for source code. + * [base](ortools/base) Basic utilities. + * [algorithms](ortools/algorithms) Basic algorithms. + * [samples](ortools/algorithms/samples) Carefully crafted samples. + * [graph](ortools/graph) Graph algorithms. + * [samples](ortools/graph/samples) Carefully crafted samples. + * [linear_solver](ortools/linear_solver) Linear solver wrapper. + * [samples](ortools/linear_solver/samples) Carefully crafted samples. + * [glop](ortools/glop) Google linear solver. + * [lp_data](ortools/lp_data) Data structures for linear models. + * [constraint_solver](ortools/constraint_solver) Constraint and Routing + solver. + * [doc](ortools/constraint_solver/doc) Documentation of the component. + * [samples](ortools/constraint_solver/samples) Carefully crafted samples. + * [sat](ortools/sat) SAT solver. + * [doc](ortools/sat/doc) Documentation of the component. + * [samples](ortools/sat/samples) Carefully crafted samples. + * [bop](ortools/bop) Boolean solver based on SAT. + * [util](ortools/util) Utilities needed by the constraint solver +* [examples](examples) Root directory for all examples. + * [contrib](examples/contrib) Examples from the community. + * [cpp](examples/cpp) C++ examples. + * [dotnet](examples/dotnet) .Net examples. + * [java](examples/java) Java examples. + * [python](examples/python) Python examples. + * [notebook](examples/notebook) Jupyter/IPython notebooks. + * [flatzinc](examples/flatzinc) FlatZinc examples. + * [data](examples/data) Data files for examples. + * [tests](examples/tests) Unit tests and bug reports. +* [tools](tools) Delivery Tools (e.g. Windows GNU binaries, scripts, release dockers) + +## Installation + +This software suite has been tested under: + +* Ubuntu 18.04 LTS and up (64-bit); +* Apple macOS Mojave with Xcode 9.x (64-bit); +* Microsoft Windows with Visual Studio 2019 (64-bit). + +OR-Tools currently builds with a Makefile, but also provides Bazel and CMake +support. + +For installation instructions (both source and binary), please visit +https://developers.google.com/optimization/introduction/installing. + +### Build from source using Make (legacy) + +We provide a Make based build.
Please check the +[Make build instructions](makefiles/README.md). + +### Build from source using CMake + +We provide a CMake based build.
Please check the +[CMake build instructions](cmake/README.md). + +### Build from source using Bazel + +We provide a Bazel based build.
Please check the +[Bazel build instructions](bazel/README.md). + +## Quick Start + +The best way to learn how to use OR-Tools is to follow the tutorials in our +developer guide: + +https://developers.google.com/optimization/introduction/get_started + +If you want to learn from code examples, take a look at the examples in the +[examples](examples) directory. + +## Documentation + +The complete documentation for OR-Tools is available at: +https://developers.google.com/optimization/ + +## Contributing + +The [CONTRIBUTING.md](CONTRIBUTING.md) file contains instructions on how to +submit the Contributor License Agreement before sending any pull requests (PRs). +Of course, if you're new to the project, it's usually best to discuss any +proposals and reach consensus before sending your first PR. + +## License + +The OR-Tools software suite is licensed under the terms of the Apache License 2.0. +
See [LICENSE-2.0](LICENSE-2.0.txt) for more information. diff --git a/libs/or-tools-stable/Version.txt b/libs/or-tools-stable/Version.txt new file mode 100644 index 0000000000000000000000000000000000000000..5d0123e29ce1d91ebfd38123f975868104feb6d0 --- /dev/null +++ b/libs/or-tools-stable/Version.txt @@ -0,0 +1,3 @@ +OR_TOOLS_MAJOR=8 +OR_TOOLS_MINOR=1 +#PRE_RELEASE=YES diff --git a/libs/or-tools-stable/WORKSPACE b/libs/or-tools-stable/WORKSPACE new file mode 100644 index 0000000000000000000000000000000000000000..67c1d9d80ea0675d7b5257a150bdb90644e3e0d5 --- /dev/null +++ b/libs/or-tools-stable/WORKSPACE @@ -0,0 +1,76 @@ +load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") +load("@bazel_tools//tools/build_defs/repo:git.bzl", "git_repository") + +http_archive( + name = "zlib", + build_file = "@com_google_protobuf//:third_party/zlib.BUILD", + sha256 = "c3e5e9fdd5004dcb542feda5ee4f0ff0744628baf8ed2dd5d66f8ca1197cb1a1", + strip_prefix = "zlib-1.2.11", + urls = [ + "https://mirror.bazel.build/zlib.net/zlib-1.2.11.tar.gz", + "https://zlib.net/zlib-1.2.11.tar.gz", + ], +) + +git_repository( + name = "bazel_skylib", + commit = "e59b620", # release 1.0.2 + remote = "https://github.com/bazelbuild/bazel-skylib.git", +) + +# Python Rules +http_archive( + name = "rules_python", + sha256 = "b5668cde8bb6e3515057ef465a35ad712214962f0b3a314e551204266c7be90c", + strip_prefix = "rules_python-0.0.2", + url = "https://github.com/bazelbuild/rules_python/releases/download/0.0.2/rules_python-0.0.2.tar.gz", +) + +# Protobuf +git_repository( + name = "com_google_protobuf", + commit = "2514f0b", # release v3.14.0 + remote = "https://github.com/protocolbuffers/protobuf.git", +) + +load("@com_google_protobuf//:protobuf_deps.bzl", "protobuf_deps") + +# Load common dependencies. +protobuf_deps() + +git_repository( + name = "com_google_absl", + commit = "0f3bb46", # release 20200923.2 + remote = "https://github.com/abseil/abseil-cpp.git", +) + +http_archive( + name = "gtest", + build_file = "//bazel:gtest.BUILD", + strip_prefix = "googletest-release-1.8.0/googletest", + url = "https://github.com/google/googletest/archive/release-1.8.0.zip", +) + +http_archive( + name = "glpk", + build_file = "//bazel:glpk.BUILD", + sha256 = "4281e29b628864dfe48d393a7bedd781e5b475387c20d8b0158f329994721a10", + url = "http://ftp.gnu.org/gnu/glpk/glpk-4.65.tar.gz", +) + +http_archive( + name = "bliss", + build_file = "//bazel:bliss.BUILD", + patches = ["//bazel:bliss-0.73.patch"], + sha256 = "f57bf32804140cad58b1240b804e0dbd68f7e6bf67eba8e0c0fa3a62fd7f0f84", + url = "http://www.tcs.hut.fi/Software/bliss/bliss-0.73.zip", +) + +http_archive( + name = "scip", + build_file = "//bazel:scip.BUILD", + patches = ["//bazel:scip.patch"], + sha256 = "033bf240298d3a1c92e8ddb7b452190e0af15df2dad7d24d0572f10ae8eec5aa", + url = "https://github.com/google/or-tools/releases/download/v7.7/scip-7.0.1.tgz", +) + diff --git a/libs/or-tools-stable/bazel/BUILD b/libs/or-tools-stable/bazel/BUILD new file mode 100644 index 0000000000000000000000000000000000000000..48fbfa4b693f40b758310856b9c739a89810eeea --- /dev/null +++ b/libs/or-tools-stable/bazel/BUILD @@ -0,0 +1,11 @@ +exports_files([ + "gtest.BUILD", + "glpk.BUILD", + "swig.BUILD", + "scip.BUILD", + "scip.patch", + "bliss.BUILD", + "bliss-0.73.patch", + # "zlib.BUILD", + "archive_helper.bzl", +]) diff --git a/libs/or-tools-stable/bazel/Makefile b/libs/or-tools-stable/bazel/Makefile new file mode 100644 index 0000000000000000000000000000000000000000..cddd78e5f3966b7179f15c7bfa23e34715e9c2c4 --- /dev/null +++ b/libs/or-tools-stable/bazel/Makefile @@ -0,0 +1,135 @@ +PROJECT := ortools +BUILD_SYSTEM := bazel +BRANCH := $(shell git rev-parse --abbrev-ref HEAD) +SHA1 := $(shell git rev-parse --verify HEAD) + +# General commands +.PHONY: help +BOLD=\e[1m +RESET=\e[0m + +help: + @echo -e "${BOLD}SYNOPSIS${RESET}" + @echo -e "\tmake [NOCACHE=1]" + @echo + @echo -e "${BOLD}DESCRIPTION${RESET}" + @echo -e "\ttest build inside docker container to have a reproductible build." + @echo + @echo -e "${BOLD}MAKE TARGETS${RESET}" + @echo -e "\t${BOLD}help${RESET}: display this help and exit." + @echo + @echo -e "\t${BOLD}${RESET}: build all docker images." + @echo -e "\t${BOLD}_${RESET}: build the docker image for a specific distro." + @echo -e "\t${BOLD}save_${RESET}: Save all docker images." + @echo -e "\t${BOLD}save__${RESET}: Save the docker image for a specific distro." + @echo -e "\t${BOLD}sh__${RESET}: run a container using the docker image (debug purpose)." + @echo + @echo -e "\t${BOLD}${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 + @echo -e "\t${BOLD}${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 ubuntu_test'" + @echo + @echo -e "\t${BOLD}clean${RESET}: Remove cache and ALL docker images." + @echo -e "\t${BOLD}clean_${RESET}: Remove cache and docker images for the specified distro." + @echo + @echo -e "\t${BOLD}NOCACHE=1${RESET}: use 'docker build --no-cache' when building container (default use cache)." + @echo + @echo -e "branch: $(BRANCH)" + @echo -e "sha1: $(SHA1)" + +# Need to add cmd_distro to PHONY otherwise target are ignored since they do not +# contain recipe (using FORCE do not work here) +.PHONY: all +all: build + +# Delete all implicit rules to speed up makefile +MAKEFLAGS += --no-builtin-rules +.SUFFIXES: +# Remove some rules from gmake that .SUFFIXES does not remove. +SUFFIXES = +# Keep all intermediate files +# ToDo: try to remove it later +.SECONDARY: + +# Docker image name prefix. +IMAGE := ${PROJECT}/${BUILD_SYSTEM} + +ifdef NOCACHE +DOCKER_BUILD_CMD := docker build --no-cache +else +DOCKER_BUILD_CMD := docker build +endif + +DOCKER_RUN_CMD := docker run --rm --init --net=host + +# Currently supported distro +DISTROS = alpine archlinux centos debian fedora opensuse ubuntu + +# $* stem +# $< first prerequist +# $@ target name + +STAGES = env devel build test +define make-stage-target = +#$$(info STAGE: $1) +.PHONY: $1 +#$$(info Create targets: $1 $(addsuffix _$1, $(DISTROS)).) +targets_$1 = $(addsuffix _$1, $(DISTROS)) +.PHONY: $(targets_$1) +$1: $$(targets_$1) +$$(targets_$1): %_$1: docker/%/Dockerfile + #@docker image rm -f ${IMAGE}:$$*_$1 2>/dev/null + ${DOCKER_BUILD_CMD} --target=$1 --tag ${IMAGE}:$$*_$1 -f $$< .. + +#$$(info Create targets: save_$1 $(addprefix save_, $(addsuffix _$1, $(DISTROS))) (debug).) +save_targets_$1 = $(addprefix save_, $(addsuffix _$1, $(DISTROS))) +.PHONY: save_$1 $(save_targets_$1) +save_$1: $$(save_targets_$1) +$$(save_targets_$1): save_%_$1: cache/%/docker_$1.tar +cache/%/docker_$1.tar: %_$1 + @rm -f $$@ + mkdir -p cache/$$* + docker save ${IMAGE}:$$*_$1 -o $$@ + +#$$(info Create targets: $(addprefix sh_, $(addsuffix _$1, $(DISTROS))) (debug).) +sh_targets_$1 = $(addprefix sh_, $(addsuffix _$1, $(DISTROS))) +.PHONY: $(sh_targets_$1) +$$(sh_targets_$1): sh_%_$1: %_$1 + ${DOCKER_RUN_CMD} -it --name ${PROJECT}_${BUILD_SYSTEM}_$$*_$1 ${IMAGE}:$$*_$1 + +#$$(info Create targets: $(addprefix clean_, $(addsuffix _$1, $(DISTROS))).) +clean_targets_$1 = $(addprefix clean_, $(addsuffix _$1, $(DISTROS))) +.PHONY: clean_$1 $(clean_targets_$1) +clean_$1: $$(clean_targets_$1) +$$(clean_targets_$1): clean_%_$1: + docker image rm -f ${IMAGE}:$$*_$1 2>/dev/null + rm -f cache/$$*/docker_$1.tar +endef + +$(foreach stage,$(STAGES),$(eval $(call make-stage-target,$(stage)))) + +## CLEAN ## +clean_targets = $(addprefix clean_, $(DISTROS)) +.PHONY: clean $(clean_targets) +clean: $(clean_targets) + docker container prune -f + docker image prune -f + -rmdir cache +$(clean_targets): clean_%: $(addprefix clean_%_, $(STAGES)) + -rmdir cache/$* + +.PHONY: distclean +distclean: clean + -docker container rm -f $$(docker container ls -aq) + -docker image rm -f $$(docker image ls -aq) diff --git a/libs/or-tools-stable/bazel/README.md b/libs/or-tools-stable/bazel/README.md new file mode 100644 index 0000000000000000000000000000000000000000..2cbc2be993e8d0eb573941d4342b1ee0e4a0f80a --- /dev/null +++ b/libs/or-tools-stable/bazel/README.md @@ -0,0 +1,37 @@ +# OR-Tools Bazel Build Instructions +[![Status][docker_svg]][docker_link] + +[docker_svg]: https://github.com/google/or-tools/workflows/Docker%20Bazel/badge.svg?branch=master +[docker_link]: https://github.com/google/or-tools/actions?query=workflow%3A"Docker+Bazel" + +## Introduction + + +OR-Tools comes with a Bazel based build ([WORKSPACE](../WORKSPACE)) that can be +used on a wide range of platforms. If you don't have Bazel installed already, +you can download it for free from . + +**warning: Currently OR-Tools Bazel doesn't support Python, Java nor .Net, +please use the Makefile or CMake based build instead.** + +## [Dependencies](#deps) +OR-Tools depends on severals mandatory libraries. + +* Google Abseil-cpp, +* Google Protobuf, +* Google Gtest, +* Bliss, +* SCIP, +* GLPK (GNU Linear Programming Kit) + +## Compilation +You must compile OR-Tools using C++17: +* on UNIX: `--cxxopt=-std=c++17` +* on Windows when using MSVC: `--cxxopt="-std:c++17"` + +## [Integrating OR-Tools in your Bazel Project](#integration) +TODO diff --git a/libs/or-tools-stable/bazel/archive_helper.bzl b/libs/or-tools-stable/bazel/archive_helper.bzl new file mode 100644 index 0000000000000000000000000000000000000000..759398e34df89abd1bf08ee5827d6230fbdd8073 --- /dev/null +++ b/libs/or-tools-stable/bazel/archive_helper.bzl @@ -0,0 +1,13 @@ +""" Bazel rule to use local archive.""" + +def _local_archive_impl(repository_ctx): + repository_ctx.extract(repository_ctx.attr.src) + repository_ctx.file("BUILD.bazel", repository_ctx.read(repository_ctx.attr.build_file)) + +local_archive = repository_rule( + attrs = { + "src": attr.label(mandatory = True, allow_single_file = True), + "build_file": attr.label(mandatory = True, allow_single_file = True), + }, + implementation = _local_archive_impl, +) diff --git a/libs/or-tools-stable/bazel/bliss-0.73.patch b/libs/or-tools-stable/bazel/bliss-0.73.patch new file mode 100644 index 0000000000000000000000000000000000000000..bd5c29659c3513e0ae3bf4d2c0aa5dd435791192 --- /dev/null +++ b/libs/or-tools-stable/bazel/bliss-0.73.patch @@ -0,0 +1,147 @@ +diff -u bliss-0.73.orig/graph.cc bliss-0.73/graph.cc +--- bliss-0.73.orig/graph.cc 2015-09-01 09:23:10.000000000 +0200 ++++ bliss-0.73/graph.cc 2020-07-03 10:11:29.480649776 +0200 +@@ -67,6 +67,9 @@ + + report_hook = 0; + report_user_param = 0; ++ ++ limit_search_nodes = 0; ++ limit_generators = 0; + } + + +@@ -609,13 +612,7 @@ + + + +- +-typedef struct { +- unsigned int splitting_element; +- unsigned int certificate_index; +- unsigned int subcertificate_length; +- UintSeqHash eqref_hash; +-} PathInfo; ++// struct PathInfo moved to graph.hh by Thomas Rehn, 2011-07-12 + + + void +@@ -745,7 +742,7 @@ + initialize_certificate(); + + std::vector search_stack; +- std::vector first_path_info; ++ // first_path_info moved to graph.hh by Thomas Rehn, 2011-07-12 + std::vector best_path_info; + + search_stack.clear(); +@@ -1054,6 +1051,8 @@ + const unsigned int child_level = current_level+1; + /* Update some statistics */ + stats.nof_nodes++; ++ if (limit_search_nodes && stats.nof_nodes >= limit_search_nodes) ++ break; + if(search_stack.size() > stats.max_level) + stats.max_level = search_stack.size(); + +@@ -1642,6 +1641,8 @@ + best_path_automorphism); + /* Update statistics */ + stats.nof_generators++; ++ if (limit_generators && stats.nof_generators >= limit_generators) ++ break; + } + + /* +@@ -1733,6 +1734,8 @@ + + /* Update statistics */ + stats.nof_generators++; ++ if (limit_generators && stats.nof_generators >= limit_generators) ++ break; + continue; + + } /* while(!search_stack.empty()) */ +@@ -5452,7 +5455,7 @@ + component.clear(); + component_elements = 0; + sh_return = 0; +- unsigned int sh_first = 0; ++ unsigned int sh_first = 1 << 31; + unsigned int sh_size = 0; + unsigned int sh_nuconn = 0; + +Seulement dans bliss-0.73: graph.cc.orig +diff -u bliss-0.73.orig/graph.hh bliss-0.73/graph.hh +--- bliss-0.73.orig/graph.hh 2015-09-01 09:23:10.000000000 +0200 ++++ bliss-0.73/graph.hh 2020-07-03 10:11:29.484649847 +0200 +@@ -20,6 +20,9 @@ + along with bliss. If not, see . + */ + ++/** This is a patched version of bliss by Thomas Rehn extended by method AbstractGraph::set_search_limits() */ ++#define BLISS_PATCH_PRESENT ++ + /** + * \namespace bliss + * The namespace bliss contains all the classes and functions of the bliss +@@ -111,6 +114,14 @@ + + + ++/** moved here from graph.cc by Thomas Rehn, 2011-07-12 */ ++typedef struct { ++ unsigned int splitting_element; ++ unsigned int certificate_index; ++ unsigned int subcertificate_length; ++ UintSeqHash eqref_hash; ++} PathInfo; ++ + + + +@@ -284,7 +295,20 @@ + opt_use_long_prune = active; + } + ++ /// information vector about first path ++ /** added by Thomas Rehn, 2011-07-12 */ ++ std::vector get_first_path_info() { return first_path_info; } + ++ /// limits number of search nodes and generators during the backtrack search ++ /** added by Thomas Rehn, 2012-01-12 ++ * ++ * \param searchNodeLimit if non-zero, limits the number of search nodes in search tree ++ * \param generatorLimit if non-zero, limits the maximal number of automorphism group generators to be found ++ */ ++ void set_search_limits(const unsigned int searchNodeLimit, const unsigned int generatorLimit) { ++ limit_search_nodes = searchNodeLimit; ++ limit_generators = generatorLimit; ++ } + + protected: + /** \internal +@@ -519,6 +543,11 @@ + + + ++ /** added by Thomas Rehn, 2011-07-12 */ ++ std::vector first_path_info; ++ ++ unsigned int limit_search_nodes; ++ unsigned int limit_generators; + }; + + +diff -u bliss-0.73.orig/Makefile bliss-0.73/Makefile +--- bliss-0.73.orig/Makefile 2015-09-01 09:23:10.000000000 +0200 ++++ bliss-0.73/Makefile 2020-07-03 10:11:29.484649847 +0200 +@@ -5,7 +5,7 @@ + CFLAGS += --pedantic + CFLAGS += -O9 + #CFLAGS += -DBLISS_DEBUG +-CFLAGS += -fPIC ++CFLAGS += -fPIC -fvisibility=hidden -fvisibility-inlines-hidden + + SRCS = defs.cc graph.cc partition.cc orbit.cc uintseqhash.cc heap.cc + SRCS += timer.cc utils.cc bliss_C.cc diff --git a/libs/or-tools-stable/bazel/bliss.BUILD b/libs/or-tools-stable/bazel/bliss.BUILD new file mode 100644 index 0000000000000000000000000000000000000000..110e207d81aed82cd394ab31659a725cf57b2db1 --- /dev/null +++ b/libs/or-tools-stable/bazel/bliss.BUILD @@ -0,0 +1,30 @@ +cc_library( + name = "libbliss", + srcs = [ + "bliss-0.73/bliss_C.cc", + "bliss-0.73/defs.cc", + "bliss-0.73/graph.cc", + "bliss-0.73/heap.cc", + "bliss-0.73/orbit.cc", + "bliss-0.73/partition.cc", + "bliss-0.73/timer.cc", + "bliss-0.73/uintseqhash.cc", + "bliss-0.73/utils.cc", + ], + hdrs = [ + "bliss-0.73/bignum.hh", + "bliss-0.73/bliss_C.h", + "bliss-0.73/defs.hh", + "bliss-0.73/graph.hh", + "bliss-0.73/heap.hh", + "bliss-0.73/kqueue.hh", + "bliss-0.73/kstack.hh", + "bliss-0.73/orbit.hh", + "bliss-0.73/partition.hh", + "bliss-0.73/timer.hh", + "bliss-0.73/uintseqhash.hh", + "bliss-0.73/utils.hh", + ], + includes = ["."], + visibility = ["//visibility:public"], +) \ No newline at end of file diff --git a/libs/or-tools-stable/bazel/doc/ci.md b/libs/or-tools-stable/bazel/doc/ci.md new file mode 100644 index 0000000000000000000000000000000000000000..92024ac43506a15c1071d0776d2a55221f08b024 --- /dev/null +++ b/libs/or-tools-stable/bazel/doc/ci.md @@ -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=bazel +``` + +## Example +For example to test inside an `Ubuntu` container: +```sh +make ubuntu_test +``` + +# Docker Layers +Dockerfile is splitted in several stages. + +![docker](docker.svg) diff --git a/libs/or-tools-stable/bazel/doc/docker.dot b/libs/or-tools-stable/bazel/doc/docker.dot new file mode 100644 index 0000000000000000000000000000000000000000..681c60ed521c02ab6095717c5110655ca7d31c4a --- /dev/null +++ b/libs/or-tools-stable/bazel/doc/docker.dot @@ -0,0 +1,45 @@ +@startdot +digraph DockerDeps { + //rankdir=BT; + rankdir=TD; + node [shape=cylinder, style="rounded,filled", color=black, fillcolor=royalblue]; + DISTRO_IMG [label=":latest"]; + PKG [label="packages\ne.g. bazel, g++", shape=box3d]; + SRC [label="git repo", shape=folder]; + + subgraph clusterDockerfile { + ENV_IMG [label="ortools/bazel:_env\nenv"]; + DEVEL_IMG [label="ortools/bazel:_devel\ndevel"]; + BUILD_IMG [label="ortools/bazel:_build\nbuild"]; + TEST_IMG [label="ortools/bazel:_test\ntest"]; + + edge [color=black]; + ENV_IMG -> DEVEL_IMG; + DEVEL_IMG -> BUILD_IMG; + BUILD_IMG -> TEST_IMG; + + color=royalblue; + label = "docker//Dockerfile"; + } + DISTRO_IMG -> ENV_IMG; + PKG -> ENV_IMG [label="install", style="dashed"]; + SRC -> DEVEL_IMG [label="copy", style="dashed"]; + + subgraph clusterCache { + node [shape=note, style="rounded,filled", color=black, fillcolor=royalblue]; + ENV_TAR [label="docker_env.tar"]; + DEVEL_TAR [label="docker_devel.tar"]; + BUILD_TAR [label="docker_build.tar"]; + TEST_TAR [label="docker_test.tar"]; + + edge [color=red]; + ENV_IMG -> ENV_TAR [label="make save__env"]; + DEVEL_IMG -> DEVEL_TAR [label="make save__devel"]; + BUILD_IMG -> BUILD_TAR [label="make save__build"]; + TEST_IMG -> TEST_TAR [label="make save__test"]; + + color=royalblue; + label = "cache//"; + } +} +@enddot diff --git a/libs/or-tools-stable/bazel/doc/docker.svg b/libs/or-tools-stable/bazel/doc/docker.svg new file mode 100644 index 0000000000000000000000000000000000000000..ef3a75a91e61ebcaf7da317a129fed0e7516e3a6 --- /dev/null +++ b/libs/or-tools-stable/bazel/doc/docker.svg @@ -0,0 +1,176 @@ + + + + + + +DockerDeps + + +clusterDockerfile + +docker/<distro>/Dockerfile + + +clusterCache + +cache/<distro>/ + + + +DISTRO_IMG + + +<distro>:latest + + + +ENV_IMG + + +ortools/bazel:<distro>_env +env + + + +DISTRO_IMG->ENV_IMG + + + + + +PKG + + + + +packages +e.g. bazel, g++ + + + +PKG->ENV_IMG + + +install + + + +SRC + +git repo + + + +DEVEL_IMG + + +ortools/bazel:<distro>_devel +devel + + + +SRC->DEVEL_IMG + + +copy + + + +ENV_IMG->DEVEL_IMG + + + + + +ENV_TAR + + + +docker_env.tar + + + +ENV_IMG->ENV_TAR + + +make save_<distro>_env + + + +BUILD_IMG + + +ortools/bazel:<distro>_build +build + + + +DEVEL_IMG->BUILD_IMG + + + + + +DEVEL_TAR + + + +docker_devel.tar + + + +DEVEL_IMG->DEVEL_TAR + + +make save_<distro>_devel + + + +TEST_IMG + + +ortools/bazel:<distro>_test +test + + + +BUILD_IMG->TEST_IMG + + + + + +BUILD_TAR + + + +docker_build.tar + + + +BUILD_IMG->BUILD_TAR + + +make save_<distro>_build + + + +TEST_TAR + + + +docker_test.tar + + + +TEST_IMG->TEST_TAR + + +make save_<distro>_test + + + diff --git a/libs/or-tools-stable/bazel/doc/generate_image.sh b/libs/or-tools-stable/bazel/doc/generate_image.sh new file mode 100755 index 0000000000000000000000000000000000000000..cd1743a7f1d44f3a7f706d08d5e8871e6911080e --- /dev/null +++ b/libs/or-tools-stable/bazel/doc/generate_image.sh @@ -0,0 +1,8 @@ +#/usr/bin/env bash +set -ex + +rm -f *.svg *.png +for i in *.dot; do + #plantuml -Tpng "$i"; + plantuml -Tsvg "$i"; +done diff --git a/libs/or-tools-stable/bazel/docker/alpine/Dockerfile b/libs/or-tools-stable/bazel/docker/alpine/Dockerfile new file mode 100644 index 0000000000000000000000000000000000000000..b0b1f20c04e649ddfe6c2b2cd7a46bdd108c7de4 --- /dev/null +++ b/libs/or-tools-stable/bazel/docker/alpine/Dockerfile @@ -0,0 +1,28 @@ +# Create a virtual environment with all tools installed +# ref: https://hub.docker.com/_/alpine +FROM alpine:edge AS env +LABEL maintainer="corentinl@google.com" +# Install system build dependencies +ENV PATH=/usr/local/bin:$PATH +RUN apk add --no-cache git build-base linux-headers zlib-dev +RUN apk add --no-cache -X http://dl-cdn.alpinelinux.org/alpine/edge/testing bazel + +# Install OpenJDK11 +# note: default-jvm will now point to java-11-openjdk +RUN apk add --no-cache openjdk11 +# Remove infinite loop since jre point to the current directory +# otherwise bazel issue an error and stop... +RUN rm /usr/lib/jvm/default-jvm/jre + +ENV JAVA_HOME=/usr/lib/jvm/default-jvm +ENV PATH=$JAVA_HOME/bin:$PATH + +FROM env AS devel +WORKDIR /home/lib +COPY . . + +FROM devel as build +RUN bazel build --curses=no --host_javabase=@local_jdk//:jdk --cxxopt=-std=c++17 --copt='-Wno-sign-compare' //...:all + +FROM build as test +RUN bazel test --curses=no --host_javabase=@local_jdk//:jdk --cxxopt=-std=c++17 --copt='-Wno-sign-compare' //...:all diff --git a/libs/or-tools-stable/bazel/docker/archlinux/Dockerfile b/libs/or-tools-stable/bazel/docker/archlinux/Dockerfile new file mode 100644 index 0000000000000000000000000000000000000000..25e2cebdfbbf36b724fb1ba63c90c5ac28d9ff81 --- /dev/null +++ b/libs/or-tools-stable/bazel/docker/archlinux/Dockerfile @@ -0,0 +1,17 @@ +# Create a virtual environment with all tools installed +# ref: https://hub.docker.com/_/archlinux/ +FROM archlinux:latest AS env +LABEL maintainer="corentinl@google.com" +# Install system build dependencies +ENV PATH=/usr/local/bin:$PATH +RUN pacman -Syu --noconfirm git base-devel bazel + +FROM env AS devel +WORKDIR /home/lib +COPY . . + +FROM devel as build +RUN bazel build --curses=no --cxxopt=-std=c++17 --copt='-Wno-sign-compare' //...:all + +FROM build as test +RUN bazel test -c opt --curses=no --cxxopt=-std=c++17 --copt='-Wno-sign-compare' //...:all diff --git a/libs/or-tools-stable/bazel/docker/centos/Dockerfile b/libs/or-tools-stable/bazel/docker/centos/Dockerfile new file mode 100644 index 0000000000000000000000000000000000000000..a1f7ccb3914d8399a60f864c4b8a257fbe12c141 --- /dev/null +++ b/libs/or-tools-stable/bazel/docker/centos/Dockerfile @@ -0,0 +1,28 @@ +# Create a virtual environment with all tools installed +# ref: https://hub.docker.com/_/centos +FROM centos:latest AS env +LABEL maintainer="corentinl@google.com" +# Install system build dependencies +ENV PATH=/usr/local/bin:$PATH +RUN dnf -y update \ +&& dnf -y install git wget zlib-devel \ +&& dnf -y groupinstall "Development Tools" \ +&& dnf clean all \ +&& rm -rf /var/cache/dnf +# Install bazel +# see: https://docs.bazel.build/versions/master/install-redhat.html#installing-on-centos-7 +RUN dnf config-manager --add-repo \ +https://copr.fedorainfracloud.org/coprs/vbatts/bazel/repo/epel-8/vbatts-bazel-epel-8.repo \ +&& dnf -y install bazel \ +&& dnf clean all \ +&& rm -rf /var/cache/dnf + +FROM env AS devel +WORKDIR /home/lib +COPY . . + +FROM devel as build +RUN bazel build --curses=no --cxxopt=-std=c++17 --copt='-Wno-sign-compare' //...:all + +FROM build as test +RUN bazel test -c opt --curses=no --cxxopt=-std=c++17 --copt='-Wno-sign-compare' //...:all diff --git a/libs/or-tools-stable/bazel/docker/debian/Dockerfile b/libs/or-tools-stable/bazel/docker/debian/Dockerfile new file mode 100644 index 0000000000000000000000000000000000000000..368a4bc720a9d4ba82739322b803ba8530400a11 --- /dev/null +++ b/libs/or-tools-stable/bazel/docker/debian/Dockerfile @@ -0,0 +1,29 @@ +# Create a virtual environment with all tools installed +# ref: https://hub.docker.com/_/debian +FROM debian:latest AS env +LABEL maintainer="corentinl@google.com" +# Install system build dependencies +ENV PATH=/usr/local/bin:$PATH +RUN apt-get update -qq \ +&& apt-get install -yq git wget curl libssl-dev build-essential \ +&& apt-get install -yq python3-dev python3-pip \ +&& apt-get install -yq default-jdk \ +&& apt-get clean \ +&& rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* +# Install Bazel +RUN curl https://bazel.build/bazel-release.pub.gpg | apt-key add - +RUN echo "deb [arch=amd64] https://storage.googleapis.com/bazel-apt stable jdk1.8" | tee /etc/apt/sources.list.d/bazel.list +RUN apt-get update -qq \ +&& apt-get install -yq bazel \ +&& 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 bazel build --curses=no --cxxopt=-std=c++17 --copt='-Wno-sign-compare' //...:all + +FROM build as test +RUN bazel test -c opt --curses=no --cxxopt=-std=c++17 --copt='-Wno-sign-compare' //...:all diff --git a/libs/or-tools-stable/bazel/docker/fedora/Dockerfile b/libs/or-tools-stable/bazel/docker/fedora/Dockerfile new file mode 100644 index 0000000000000000000000000000000000000000..2ba806c5a9626ceb5bea12cb87a0f9fdaa3652a2 --- /dev/null +++ b/libs/or-tools-stable/bazel/docker/fedora/Dockerfile @@ -0,0 +1,24 @@ +# Create a virtual environment with all tools installed +# ref: https://hub.docker.com/_/fedora +FROM fedora:latest AS env +LABEL maintainer="corentinl@google.com" +# Install system build dependencies +ENV PATH=/usr/local/bin:$PATH +RUN dnf -y update \ +&& dnf -y install git \ +&& dnf -y groupinstall "Development Tools" \ +&& dnf -y install gcc-c++ zlib-devel \ +&& dnf -y install dnf-plugins-core \ +&& dnf -y copr enable vbatts/bazel \ +&& dnf -y install bazel \ +&& dnf clean all + +FROM env AS devel +WORKDIR /home/lib +COPY . . + +FROM devel as build +RUN bazel build --curses=no --cxxopt=-std=c++17 --copt='-Wno-sign-compare' //...:all + +FROM build as test +RUN bazel test -c opt --curses=no --cxxopt=-std=c++17 --copt='-Wno-sign-compare' //...:all diff --git a/libs/or-tools-stable/bazel/docker/opensuse/Dockerfile b/libs/or-tools-stable/bazel/docker/opensuse/Dockerfile new file mode 100644 index 0000000000000000000000000000000000000000..649ba95be652689bcf6365da3f7ac9bd7ab3d47a --- /dev/null +++ b/libs/or-tools-stable/bazel/docker/opensuse/Dockerfile @@ -0,0 +1,20 @@ +# Create a virtual environment with all tools installed +# ref: https://hub.docker.com/r/opensuse/tumbleweed +FROM opensuse/tumbleweed AS env +LABEL maintainer="corentinl@google.com" +# Install system build dependencies +ENV PATH=/usr/local/bin:$PATH +RUN zypper update -y \ +&& zypper install -y git gcc gcc-c++ zlib-devel bazel \ +&& zypper clean -a +ENV CC=gcc CXX=g++ + +FROM env AS devel +WORKDIR /home/lib +COPY . . + +FROM devel as build +RUN bazel build --curses=no --cxxopt=-std=c++17 --copt='-Wno-sign-compare' //...:all + +FROM build as test +RUN bazel test -c opt --curses=no --cxxopt=-std=c++17 --copt='-Wno-sign-compare' //...:all diff --git a/libs/or-tools-stable/bazel/docker/ubuntu/Dockerfile b/libs/or-tools-stable/bazel/docker/ubuntu/Dockerfile new file mode 100644 index 0000000000000000000000000000000000000000..a4570a0d0f53698959f50314083997c3adbc1fb3 --- /dev/null +++ b/libs/or-tools-stable/bazel/docker/ubuntu/Dockerfile @@ -0,0 +1,32 @@ +# Create a virtual environment with all tools installed +# ref: https://hub.docker.com/_/ubuntu +FROM ubuntu:rolling AS env +LABEL maintainer="corentinl@google.com" + +ENV TZ=Europe/Paris +RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone + +# Install system build dependencies +RUN apt-get update -qq \ +&& apt-get install -yq git wget curl libssl-dev build-essential \ +&& apt-get install -yq python3-dev python3-pip \ +&& apt-get install -yq default-jdk \ +&& apt-get clean \ +&& rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* +# Install Bazel +RUN curl https://bazel.build/bazel-release.pub.gpg | apt-key add - +RUN echo "deb [arch=amd64] https://storage.googleapis.com/bazel-apt stable jdk1.8" | tee /etc/apt/sources.list.d/bazel.list +RUN apt-get update -qq \ +&& apt-get install -yq bazel \ +&& 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 bazel build --curses=no --cxxopt=-std=c++17 --copt='-Wno-sign-compare' //...:all + +FROM build as test +RUN bazel test -c opt --curses=no --cxxopt=-std=c++17 --copt='-Wno-sign-compare' //...:all diff --git a/libs/or-tools-stable/bazel/glpk.BUILD b/libs/or-tools-stable/bazel/glpk.BUILD new file mode 100644 index 0000000000000000000000000000000000000000..b84c367ffe798628e3f0d7880c1f8a1e0c434d03 --- /dev/null +++ b/libs/or-tools-stable/bazel/glpk.BUILD @@ -0,0 +1,32 @@ +cc_library( + name = "glpk", + srcs = glob( + [ + "glpk-4.65/src/*.c", + "glpk-4.65/src/*/*.c", + "glpk-4.65/src/*.h", + "glpk-4.65/src/*/*.h", + ], + exclude = ["glpk-4.65/src/proxy/main.c"], + ), + hdrs = [ + "glpk-4.65/src/glpk.h", + ], + copts = [ + "-Wno-error", + "-w", + "-Iexternal/glpk/glpk-4.65/src", + "-Iexternal/glpk/glpk-4.65/src/amd", + "-Iexternal/glpk/glpk-4.65/src/bflib", + "-Iexternal/glpk/glpk-4.65/src/cglib", + "-Iexternal/glpk/glpk-4.65/src/colamd", + "-Iexternal/glpk/glpk-4.65/src/env", + "-Iexternal/glpk/glpk-4.65/src/minisat", + "-Iexternal/glpk/glpk-4.65/src/misc", + "-Iexternal/glpk/glpk-4.65/src/proxy", + "-Iexternal/glpk/glpk-4.65/src/zlib", + # "-DHAVE_ZLIB", + ], + includes = ["glpk-4.65/src"], + visibility = ["//visibility:public"], +) diff --git a/libs/or-tools-stable/bazel/gtest.BUILD b/libs/or-tools-stable/bazel/gtest.BUILD new file mode 100644 index 0000000000000000000000000000000000000000..65f5322a396f49d42b3bbd76af090f09a06d67d6 --- /dev/null +++ b/libs/or-tools-stable/bazel/gtest.BUILD @@ -0,0 +1,20 @@ +cc_library( + name = "main", + srcs = glob( + [ + "src/*.cc", + "src/*.h", + ], + exclude = ["src/gtest-all.cc"], + ), + hdrs = glob([ + "include/**/*.h", + "**/*.h", + ]), + copts = [ + "-Iexternal/gtest/include", + "-Iexternal/gtest", + ], + linkopts = ["-pthread"], + visibility = ["//visibility:public"], +) diff --git a/libs/or-tools-stable/bazel/scip.BUILD b/libs/or-tools-stable/bazel/scip.BUILD new file mode 100644 index 0000000000000000000000000000000000000000..524abd57da7feaea1cf2dc627af0555631e28f47 --- /dev/null +++ b/libs/or-tools-stable/bazel/scip.BUILD @@ -0,0 +1,67 @@ +exports_files( + ["scip-7.0.1/src/lpi/lpi_glop.cpp"], +) + +cc_library( + name = "libscip", + srcs = glob( + [ + "scip-7.0.1/src/*/*.c", + ], + exclude = [ + "scip-7.0.1/src/lpi/lpi_*.c", + "scip-7.0.1/src/tpi/tpi_*.c", + "scip-7.0.1/src/nlpi/nlpi_filtersqp.c", + "scip-7.0.1/src/nlpi/nlpi_worhp.c", + "scip-7.0.1/src/scip/compr_xyz.c", + "scip-7.0.1/src/scip/sorttpl.c", + "scip-7.0.1/src/nlpi/exprinterpret_*.c", + "scip-7.0.1/src/symmetry/compute_symmetry_*.cpp", + ], + ) + [ + "scip-7.0.1/src/symmetry/compute_symmetry_bliss.cpp", + "scip-7.0.1/src/nlpi/exprinterpret_none.c", + "scip-7.0.1/src/tpi/tpi_tnycthrd.c", + ], + hdrs = glob([ + "scip-7.0.1/src/*/*.h", + "scip-7.0.1/src/*/*.hpp", + "scip-7.0.1/src/scip/githash.c", + "scip-7.0.1/src/scip/sorttpl.c", + "scip-7.0.1/src/scip/buildflags.c", + ]), + copts = [ + "-Wunknown-pragmas", + "-fexceptions", + "$(STACK_FRAME_UNLIMITED)", # src/scip/reader_cnf.c + "-DSCIP_WITH_ZLIB", + "-DWITH_SCIPDEF", + "-DSCIP_ROUNDING_FE", + "-DTPI_TNYC", # src/tpi/tpi_type_tny.h + "-DSYM=bliss", + # Compile in thead-safe mode (required since we use TPI_TNYC). Note, + # one does not technically need to add this, as SCIP code always + # uses syntax like "#ifndef NPARASCIP". But let's be explicit here. + "-DPARASCIP", + "-Iscip-7.0.1/src", + "-Iscip-7.0.1/src/scip", + ], + defines = [ + # Scip 7.0.1 optionally depends on scip/config.h and + # scip/scip_export.h that are generated by build system. + # + # We need every library and binary that depends on SCIP libraries to + # define this macro. That is why we use `defines' here instead of + # `copts' or `local_defines'. + "NO_CONFIG_HEADER", + ], + features = ["-parse_headers"], + includes = [ + "scip-7.0.1/src", + ], + visibility = ["//visibility:public"], + deps = [ + #"@cppad:cppad_includes", + "@bliss//:libbliss", + ], +) diff --git a/libs/or-tools-stable/bazel/scip.patch b/libs/or-tools-stable/bazel/scip.patch new file mode 100644 index 0000000000000000000000000000000000000000..1d222dccaa0da425627beedb401456f2ae05bc3e --- /dev/null +++ b/libs/or-tools-stable/bazel/scip.patch @@ -0,0 +1,63 @@ +--- scip-7.0.1/src/scip/buildflags.c.new 1970-01-01 01:00:00.000000000 +0100 ++++ scip-7.0.1/src/scip/buildflags.c 2020-06-30 18:23:41.479773668 +0200 +@@ -0,0 +1,2 @@ ++#define SCIP_BUILDFLAGS " ARCH=x86_64\n COMP=gnu\n DEBUGSOL=false\n EXPRINT=none\n GAMS=false\n SYM=bliss\n GMP=false\n IPOPT=false\n IPOPTOPT=opt\n WORHP=false\n WORHPOPT=opt\n LPS=spx2\n LPSCHECK=false\n LPSOPT=opt\n NOBLKBUFMEM=false\n NOBLKMEM=false\n NOBUFMEM=false\n OPT=opt\n OSTYPE=linux\n PARASCIP=true\n READLINE=false\n SANITIZE=\n SHARED=false\n USRARFLAGS=\n USRCFLAGS=-fPIC\n USRCXXFLAGS=-fPIC\n USRDFLAGS=\n USRFLAGS=\n USRLDFLAGS=\n USROFLAGS=\n VERSION=7.0.1\n ZIMPL=false\n ZIMPLOPT=opt\n ZLIB=true" ++ + +--- scip-7.0.1-orig/src/symmetry/compute_symmetry_bliss.cpp 2020-06-23 10:40:57.000000000 +0200 ++++ scip-7.0.1/src/symmetry/compute_symmetry_bliss.cpp 2020-07-03 10:15:20.016687707 +0200 +@@ -24,8 +24,8 @@ + #include "compute_symmetry.h" + + /* include bliss graph */ +-#include +-#include ++#include ++#include + + #include + #include + +--- scip-7.0.1-orig/src/lpi/lpi_glop.cpp 2020-06-23 10:40:54.000000000 +0200 ++++ scip-7.0.1/src/lpi/lpi_glop.cpp 2020-10-21 19:10:35.514260597 +0200 +@@ -41,8 +41,8 @@ + #include "ortools/util/stats.h" + #include "ortools/util/time_limit.h" + +-#include "glog/logging.h" +-#include "glog/vlog_is_on.h" ++#include "ortools/base/logging.h" ++#include "ortools/base/vlog_is_on.h" + + #include "lpi/lpi.h" + #include "scip/pub_message.h" +@@ -2985,9 +2985,9 @@ + assert( 0 <= ival && ival <= 2 ); + lpi->timing = ival; + if ( ival == 1 ) +- FLAGS_time_limit_use_usertime = true; ++ absl::SetFlag(&FLAGS_time_limit_use_usertime, true); + else +- FLAGS_time_limit_use_usertime = false; ++ absl::SetFlag(&FLAGS_time_limit_use_usertime, false); + break; + case SCIP_LPPAR_RANDOMSEED: + SCIPdebugMessage("SCIPlpiSetIntpar: SCIP_LPPAR_RANDOMSEED -> %d.\n", ival); +@@ -3030,7 +3030,7 @@ + SCIPdebugMessage("SCIPlpiGetRealpar: SCIP_LPPAR_OBJLIM = %f.\n", *dval); + break; + case SCIP_LPPAR_LPTILIM: +- if ( FLAGS_time_limit_use_usertime ) ++ if ( absl::GetFlag(FLAGS_time_limit_use_usertime) ) + *dval = lpi->parameters->max_time_in_seconds(); + else + *dval = lpi->parameters->max_deterministic_time(); +@@ -3082,7 +3082,7 @@ + break; + case SCIP_LPPAR_LPTILIM: + SCIPdebugMessage("SCIPlpiSetRealpar: SCIP_LPPAR_LPTILIM -> %f.\n", dval); +- if ( FLAGS_time_limit_use_usertime ) ++ if ( absl::GetFlag(FLAGS_time_limit_use_usertime) ) + lpi->parameters->set_max_time_in_seconds(dval); + else + lpi->parameters->set_max_deterministic_time(dval); diff --git a/libs/or-tools-stable/bazel/swig.BUILD b/libs/or-tools-stable/bazel/swig.BUILD new file mode 100644 index 0000000000000000000000000000000000000000..41ad9f2789b23b8b6890edd4f241e32450cf5d73 --- /dev/null +++ b/libs/or-tools-stable/bazel/swig.BUILD @@ -0,0 +1,337 @@ +licenses(["restricted"]) # GPLv3 + +exports_files(["LICENSE"]) + +cc_binary( + name = "swig", + srcs = [ + "Source/CParse/cparse.h", + "Source/CParse/cscanner.c", + "Source/CParse/parser.c", + "Source/CParse/parser.h", + "Source/CParse/templ.c", + "Source/CParse/util.c", + "Source/DOH/base.c", + "Source/DOH/doh.h", + "Source/DOH/dohint.h", + "Source/DOH/file.c", + "Source/DOH/fio.c", + "Source/DOH/hash.c", + "Source/DOH/list.c", + "Source/DOH/memory.c", + "Source/DOH/string.c", + "Source/DOH/void.c", + "Source/Include/swigconfig.h", + "Source/Include/swigwarn.h", + "Source/Modules/allocate.cxx", + "Source/Modules/browser.cxx", + "Source/Modules/contract.cxx", + "Source/Modules/directors.cxx", + "Source/Modules/emit.cxx", + "Source/Modules/lang.cxx", + "Source/Modules/main.cxx", + "Source/Modules/module.cxx", + "Source/Modules/nested.cxx", + "Source/Modules/overload.cxx", + "Source/Modules/python.cxx", + "Source/Modules/swigmain-lite.cxx", + "Source/Modules/swigmod.h", + "Source/Modules/typepass.cxx", + "Source/Modules/uffi.cxx", + "Source/Modules/utils.cxx", + "Source/Modules/xml.cxx", + "Source/Preprocessor/cpp.c", + "Source/Preprocessor/expr.c", + "Source/Preprocessor/preprocessor.h", + "Source/Swig/cwrap.c", + "Source/Swig/deprecate.c", + "Source/Swig/error.c", + "Source/Swig/extend.c", + "Source/Swig/fragment.c", + "Source/Swig/getopt.c", + "Source/Swig/include.c", + "Source/Swig/misc.c", + "Source/Swig/naming.c", + "Source/Swig/parms.c", + "Source/Swig/scanner.c", + "Source/Swig/stype.c", + "Source/Swig/swig.h", + "Source/Swig/swigfile.h", + "Source/Swig/swigopt.h", + "Source/Swig/swigparm.h", + "Source/Swig/swigscan.h", + "Source/Swig/swigtree.h", + "Source/Swig/swigwrap.h", + "Source/Swig/symbol.c", + "Source/Swig/tree.c", + "Source/Swig/typemap.c", + "Source/Swig/typeobj.c", + "Source/Swig/typesys.c", + "Source/Swig/wrapfunc.c", + ], + copts = ["$(STACK_FRAME_UNLIMITED)"] + select({ + ":x64_windows_msvc": [], + "//conditions:default": [ + "-Wno-parentheses", + "-Wno-unused-variable", + "-fexceptions", + ], + }), + data = [":templates"], + includes = [ + "Source/CParse", + "Source/DOH", + "Source/Include", + "Source/Modules", + "Source/Preprocessor", + "Source/Swig", + ], + output_licenses = ["unencumbered"], + visibility = ["//visibility:public"], + deps = ["@pcre"], +) + +filegroup( + name = "templates", + srcs = [ + "Lib/allkw.swg", + "Lib/attribute.i", + "Lib/carrays.i", + "Lib/cdata.i", + "Lib/cffi/cffi.swg", + "Lib/cmalloc.i", + "Lib/constraints.i", + "Lib/cpointer.i", + "Lib/cstring.i", + "Lib/cwstring.i", + "Lib/exception.i", + "Lib/intrusive_ptr.i", + "Lib/inttypes.i", + "Lib/linkruntime.c", + "Lib/math.i", + "Lib/pointer.i", + "Lib/python/argcargv.i", + "Lib/python/attribute.i", + "Lib/python/boost_shared_ptr.i", + "Lib/python/builtin.swg", + "Lib/python/carrays.i", + "Lib/python/ccomplex.i", + "Lib/python/cdata.i", + "Lib/python/cmalloc.i", + "Lib/python/cni.i", + "Lib/python/complex.i", + "Lib/python/cpointer.i", + "Lib/python/cstring.i", + "Lib/python/cwstring.i", + "Lib/python/defarg.swg", + "Lib/python/director.swg", + "Lib/python/embed.i", + "Lib/python/embed15.i", + "Lib/python/exception.i", + "Lib/python/factory.i", + "Lib/python/file.i", + "Lib/python/implicit.i", + "Lib/python/jstring.i", + "Lib/python/pyabc.i", + "Lib/python/pyapi.swg", + "Lib/python/pybackward.swg", + "Lib/python/pybuffer.i", + "Lib/python/pyclasses.swg", + "Lib/python/pycomplex.swg", + "Lib/python/pycontainer.swg", + "Lib/python/pydocs.swg", + "Lib/python/pyerrors.swg", + "Lib/python/pyfragments.swg", + "Lib/python/pyhead.swg", + "Lib/python/pyinit.swg", + "Lib/python/pyiterators.swg", + "Lib/python/pymacros.swg", + "Lib/python/pyname_compat.i", + "Lib/python/pyopers.swg", + "Lib/python/pyprimtypes.swg", + "Lib/python/pyrun.swg", + "Lib/python/pyruntime.swg", + "Lib/python/pystdcommon.swg", + "Lib/python/pystrings.swg", + "Lib/python/python.swg", + "Lib/python/pythonkw.swg", + "Lib/python/pythreads.swg", + "Lib/python/pytuplehlp.swg", + "Lib/python/pytypemaps.swg", + "Lib/python/pyuserdir.swg", + "Lib/python/pywstrings.swg", + "Lib/python/std_alloc.i", + "Lib/python/std_auto_ptr.i", + "Lib/python/std_basic_string.i", + "Lib/python/std_carray.i", + "Lib/python/std_char_traits.i", + "Lib/python/std_common.i", + "Lib/python/std_complex.i", + "Lib/python/std_container.i", + "Lib/python/std_deque.i", + "Lib/python/std_except.i", + "Lib/python/std_ios.i", + "Lib/python/std_iostream.i", + "Lib/python/std_list.i", + "Lib/python/std_map.i", + "Lib/python/std_multimap.i", + "Lib/python/std_multiset.i", + "Lib/python/std_pair.i", + "Lib/python/std_set.i", + "Lib/python/std_shared_ptr.i", + "Lib/python/std_sstream.i", + "Lib/python/std_streambuf.i", + "Lib/python/std_string.i", + "Lib/python/std_unordered_map.i", + "Lib/python/std_unordered_multimap.i", + "Lib/python/std_unordered_multiset.i", + "Lib/python/std_unordered_set.i", + "Lib/python/std_vector.i", + "Lib/python/std_vectora.i", + "Lib/python/std_wios.i", + "Lib/python/std_wiostream.i", + "Lib/python/std_wsstream.i", + "Lib/python/std_wstreambuf.i", + "Lib/python/std_wstring.i", + "Lib/python/stl.i", + "Lib/python/typemaps.i", + "Lib/python/wchar.i", + "Lib/runtime.swg", + "Lib/shared_ptr.i", + "Lib/std/_std_deque.i", + "Lib/std/std_alloc.i", + "Lib/std/std_basic_string.i", + "Lib/std/std_carray.swg", + "Lib/std/std_char_traits.i", + "Lib/std/std_common.i", + "Lib/std/std_container.i", + "Lib/std/std_deque.i", + "Lib/std/std_except.i", + "Lib/std/std_ios.i", + "Lib/std/std_iostream.i", + "Lib/std/std_list.i", + "Lib/std/std_map.i", + "Lib/std/std_multimap.i", + "Lib/std/std_multiset.i", + "Lib/std/std_pair.i", + "Lib/std/std_queue.i", + "Lib/std/std_set.i", + "Lib/std/std_sstream.i", + "Lib/std/std_stack.i", + "Lib/std/std_streambuf.i", + "Lib/std/std_string.i", + "Lib/std/std_unordered_map.i", + "Lib/std/std_unordered_multimap.i", + "Lib/std/std_unordered_multiset.i", + "Lib/std/std_unordered_set.i", + "Lib/std/std_vector.i", + "Lib/std/std_vectora.i", + "Lib/std/std_wios.i", + "Lib/std/std_wiostream.i", + "Lib/std/std_wsstream.i", + "Lib/std/std_wstreambuf.i", + "Lib/std/std_wstring.i", + "Lib/std_except.i", + "Lib/stdint.i", + "Lib/stl.i", + "Lib/swig.swg", + "Lib/swigarch.i", + "Lib/swigerrors.swg", + "Lib/swiginit.swg", + "Lib/swiglabels.swg", + "Lib/swigrun.i", + "Lib/swigrun.swg", + "Lib/swigwarn.swg", + "Lib/swigwarnings.swg", + "Lib/typemaps/attribute.swg", + "Lib/typemaps/carrays.swg", + "Lib/typemaps/cdata.swg", + "Lib/typemaps/cmalloc.swg", + "Lib/typemaps/cpointer.swg", + "Lib/typemaps/cstring.swg", + "Lib/typemaps/cstrings.swg", + "Lib/typemaps/cwstring.swg", + "Lib/typemaps/enumint.swg", + "Lib/typemaps/exception.swg", + "Lib/typemaps/factory.swg", + "Lib/typemaps/fragments.swg", + "Lib/typemaps/implicit.swg", + "Lib/typemaps/inoutlist.swg", + "Lib/typemaps/misctypes.swg", + "Lib/typemaps/primtypes.swg", + "Lib/typemaps/ptrtypes.swg", + "Lib/typemaps/std_except.swg", + "Lib/typemaps/std_string.swg", + "Lib/typemaps/std_strings.swg", + "Lib/typemaps/std_wstring.swg", + "Lib/typemaps/string.swg", + "Lib/typemaps/strings.swg", + "Lib/typemaps/swigmacros.swg", + "Lib/typemaps/swigobject.swg", + "Lib/typemaps/swigtype.swg", + "Lib/typemaps/swigtypemaps.swg", + "Lib/typemaps/traits.swg", + "Lib/typemaps/typemaps.swg", + "Lib/typemaps/valtypes.swg", + "Lib/typemaps/void.swg", + "Lib/typemaps/wstring.swg", + "Lib/wchar.i", + "Lib/windows.i", + ], + licenses = ["notice"], # simple notice license for Lib/ + path = "Lib", + visibility = ["//visibility:public"], +) + +genrule( + name = "swigconfig", + outs = ["Source/Include/swigconfig.h"], + cmd = "cat <$@\n" + + "#define HAVE_BOOL\n" + + "#define HAVE_PCRE\n" + + "#define HAVE_POPEN\n" + + "#define PACKAGE_BUGREPORT \"http://www.swig.org\"\n" + + "#define PACKAGE_VERSION \"3.0.12\"\n" + + "#define STDC_HEADERS\n" + + "#define SWIG_CXX \"bazel4lyfe\"\n" + + "#define SWIG_LIB \"external/swig/Lib\"\n" + + "#define SWIG_LIB_WIN_UNIX \"\"\n" + + "#define SWIG_PLATFORM \"bazel4lyfe\"\n" + + "EOF", +) + +genrule( + name = "get_rid_of_stuff_we_dont_need_yet", + srcs = ["Source/Modules/swigmain.cxx"], + outs = ["Source/Modules/swigmain-lite.cxx"], + cmd = "sed -e '/swig_allegrocl/d'" + + " -e '/swig_cffi/d'" + + " -e '/swig_chicken/d'" + + " -e '/swig_clisp/d'" + + " -e '/swig_csharp/d'" + + " -e '/swig_d/d'" + + " -e '/swig_go/d'" + + " -e '/swig_guile/d'" + + " -e '/swig_java/d'" + + " -e '/swig_lua/d'" + + " -e '/swig_modula3/d'" + + " -e '/swig_mzscheme/d'" + + " -e '/swig_ocaml/d'" + + " -e '/swig_octave/d'" + + " -e '/swig_perl/d'" + + " -e '/swig_php/d'" + + " -e '/swig_pike/d'" + + " -e '/swig_r/d'" + + " -e '/swig_ruby/d'" + + " -e '/swig_scilab/d'" + + " -e '/swig_sexp/d'" + + " -e '/swig_tcl/d'" + + " -e '/swig_uffi/d'" + + " $< >$@", +) + +config_setting( + name = "x64_windows_msvc", + values = {"cpu": "x64_windows_msvc"}, +) + diff --git a/libs/or-tools-stable/bazel/swig.bzl b/libs/or-tools-stable/bazel/swig.bzl new file mode 100644 index 0000000000000000000000000000000000000000..d2645f61722c2aa47704d9c0cf8bfca98f077686 --- /dev/null +++ b/libs/or-tools-stable/bazel/swig.bzl @@ -0,0 +1,76 @@ +""" Bazel rules for building swig files.""" + +def _py_wrap_cc_impl(ctx): + srcs = ctx.files.srcs + if len(srcs) != 1: + fail("Exactly one SWIG source file label must be specified.", "srcs") + module_name = ctx.attr.module_name + src = ctx.files.srcs[0] + inputs = set([src]) + inputs += ctx.files.swig_includes + for dep in ctx.attr.deps: + inputs += dep.cc.transitive_headers + inputs += ctx.files._swiglib + inputs += ctx.files.toolchain_deps + swig_include_dirs = set(_get_repository_roots(ctx, inputs)) + swig_include_dirs += sorted([f.dirname for f in ctx.files._swiglib]) + args = [ + "-c++", + "-python", + "-module", + module_name, + "-o", + ctx.outputs.cc_out.path, + "-outdir", + ctx.outputs.py_out.dirname, + ] + args += ["-l" + f.path for f in ctx.files.swig_includes] + args += ["-I" + i for i in swig_include_dirs] + args.append(src.path) + outputs = [ctx.outputs.cc_out, ctx.outputs.py_out] + ctx.actions.run( + executable = ctx.executable._swig, + arguments = args, + inputs = list(inputs), + outputs = outputs, + mnemonic = "PythonSwig", + progress_message = "SWIGing " + src.path, + ) + return [ + DefaultInfo(files = depset(outputs)), + ] + +_py_wrap_cc = rule( + attrs = { + "srcs": attr.label_list( + mandatory = True, + allow_files = True, + ), + "swig_includes": attr.label_list( + allow_files = True, + ), + "deps": attr.label_list( + allow_files = True, + providers = ["cc"], + ), + "toolchain_deps": attr.label_list( + allow_files = True, + ), + "module_name": attr.string(mandatory = True), + "py_module_name": attr.string(mandatory = True), + "_swig": attr.label( + default = Label("@swig//:swig"), + executable = True, + cfg = "host", + ), + "_swiglib": attr.label( + default = Label("@swig//:templates"), + allow_files = True, + ), + }, + outputs = { + "cc_out": "%{module_name}.cc", + "py_out": "%{py_module_name}.py", + }, + implementation = _py_wrap_cc_impl, +) diff --git a/libs/or-tools-stable/binder/requirements.txt b/libs/or-tools-stable/binder/requirements.txt new file mode 100644 index 0000000000000000000000000000000000000000..ca32801102c7123170332d2dd694dac5eca45593 --- /dev/null +++ b/libs/or-tools-stable/binder/requirements.txt @@ -0,0 +1,4 @@ +ortools +matplotlib +plotly +svgwrite diff --git a/libs/or-tools-stable/cmake/FindCPLEX.cmake b/libs/or-tools-stable/cmake/FindCPLEX.cmake new file mode 100644 index 0000000000000000000000000000000000000000..6f940f639d7275553cf5b46ea6bb7bbb5ffc12b0 --- /dev/null +++ b/libs/or-tools-stable/cmake/FindCPLEX.cmake @@ -0,0 +1,64 @@ +#[=======================================================================[.rst: +FindCPLEX +-------- + +This module determines the CPLEX library of the system. + +IMPORTED Targets +^^^^^^^^^^^^^^^^ + +This module defines :prop_tgt:`IMPORTED` target ``CPLEX::CPLEX``, if +CPLEX has been found. + +Result Variables +^^^^^^^^^^^^^^^^ + +This module defines the following variables: + +:: + +CPLEX_FOUND - True if CPLEX found. + +Hints +^^^^^ + +A user may set ``CPLEX_ROOT`` to a CPLEX installation root to tell this +module where to look. +#]=======================================================================] +set(CPLEX_FOUND FALSE) + +if(CMAKE_C_COMPILER_LOADED) + include (CheckIncludeFile) + include (CheckCSourceCompiles) +elseif(CMAKE_CXX_COMPILER_LOADED) + include (CheckIncludeFileCXX) + include (CheckCXXSourceCompiles) +else() + message(FATAL_ERROR "FindCPLEX only works if either C or CXX language is enabled") +endif() + +if(APPLE) + message(FATAL_ERROR "CPLEX not yet supported on macOS") +elseif(UNIX) + message(FATAL_ERROR "CPLEX not yet supported on Linux") +endif() + +if(NOT CPLEX_ROOT) + set(CPLEX_ROOT $ENV{CPLEX_ROOT}) +endif() +message(STATUS "CPLEX_ROOT: ${CPLEX_ROOT}") +if(NOT CPLEX_ROOT) + message(FATAL_ERROR "CPLEX_ROOT: not found") +else() + set(CPLEX_FOUND TRUE) +endif() + +if(CPLEX_FOUND AND NOT TARGET CPLEX::CPLEX) + add_library(CPLEX::CPLEX UNKNOWN IMPORTED) + + set_target_properties(CPLEX::CPLEX PROPERTIES + INTERFACE_INCLUDE_DIRECTORIES "${CPLEX_INCLUDE_DIRS}") + + set_target_properties(CPLEX::CPLEX PROPERTIES + IMPORTED_LOCATION "${CPLEX_ROOT}/cplex/lib/x64_windows_msvc14/stat_mda/cplex12100.lib") +endif() diff --git a/libs/or-tools-stable/cmake/FindCbc.cmake b/libs/or-tools-stable/cmake/FindCbc.cmake new file mode 100644 index 0000000000000000000000000000000000000000..3870a8898946f903d4d24fd8d3e23c6bd127b2ec --- /dev/null +++ b/libs/or-tools-stable/cmake/FindCbc.cmake @@ -0,0 +1,30 @@ +#[=======================================================================[.rst: +FindCbc +-------- + +This module determines the Cbc library of the system. + +IMPORTED Targets +^^^^^^^^^^^^^^^^ + +This module defines :prop_tgt:`IMPORTED` target ``Coin::Cbc`` and ``Coin::OsiCbc``, if +Cbc has been found. + +Result Variables +^^^^^^^^^^^^^^^^ + +This module defines the following variables: + +:: + +Cbc_FOUND - True if Cbc found. + +#]=======================================================================] +find_package(PkgConfig REQUIRED) + +pkg_check_modules(CBC REQUIRED cbc IMPORTED_TARGET GLOBAL) +add_library(Coin::Cbc ALIAS PkgConfig::CBC) +add_library(Coin::CbcSolver ALIAS PkgConfig::CBC) + +pkg_check_modules(OSI_CBC REQUIRED osi-cbc IMPORTED_TARGET GLOBAL) +add_library(Coin::OsiCbc ALIAS PkgConfig::OSI_CBC) diff --git a/libs/or-tools-stable/cmake/FindCgl.cmake b/libs/or-tools-stable/cmake/FindCgl.cmake new file mode 100644 index 0000000000000000000000000000000000000000..f88f0845c3c8b991f65eb2253380e680c57c4297 --- /dev/null +++ b/libs/or-tools-stable/cmake/FindCgl.cmake @@ -0,0 +1,26 @@ +#[=======================================================================[.rst: +FindCgl +-------- + +This module determines the Cgl library of the system. + +IMPORTED Targets +^^^^^^^^^^^^^^^^ + +This module defines :prop_tgt:`IMPORTED` target ``Coin::Cgl``, if +Cgl has been found. + +Result Variables +^^^^^^^^^^^^^^^^ + +This module defines the following variables: + +:: + +Cgl_FOUND - True if Cgl found. + +#]=======================================================================] +find_package(PkgConfig REQUIRED) + +pkg_check_modules(CGL REQUIRED cgl IMPORTED_TARGET GLOBAL) +add_library(Coin::Cgl ALIAS PkgConfig::CGL) diff --git a/libs/or-tools-stable/cmake/FindClp.cmake b/libs/or-tools-stable/cmake/FindClp.cmake new file mode 100644 index 0000000000000000000000000000000000000000..99b98e52e8585ae04d6e04a8146b853411c43e45 --- /dev/null +++ b/libs/or-tools-stable/cmake/FindClp.cmake @@ -0,0 +1,30 @@ +#[=======================================================================[.rst: +FindClp +-------- + +This module determines the Clp library of the system. + +IMPORTED Targets +^^^^^^^^^^^^^^^^ + +This module defines :prop_tgt:`IMPORTED` target ``Coin::Clp`` and ``Coin::OsiClp``, if +Clp has been found. + +Result Variables +^^^^^^^^^^^^^^^^ + +This module defines the following variables: + +:: + +Clp_FOUND - True if Clp found. + +#]=======================================================================] +find_package(PkgConfig REQUIRED) + +pkg_check_modules(CLP REQUIRED clp IMPORTED_TARGET GLOBAL) +add_library(Coin::Clp ALIAS PkgConfig::CLP) +add_library(Coin::ClpSolver ALIAS PkgConfig::CLP) + +pkg_check_modules(OSI_CLP REQUIRED osi-clp IMPORTED_TARGET GLOBAL) +add_library(Coin::OsiClp ALIAS PkgConfig::OSI_CLP) diff --git a/libs/or-tools-stable/cmake/FindCoinUtils.cmake b/libs/or-tools-stable/cmake/FindCoinUtils.cmake new file mode 100644 index 0000000000000000000000000000000000000000..336000dc47528b4fd4f987f345242cb2433027ae --- /dev/null +++ b/libs/or-tools-stable/cmake/FindCoinUtils.cmake @@ -0,0 +1,26 @@ +#[=======================================================================[.rst: +FindCoinUtils +-------- + +This module determines the CoinUtils library of the system. + +IMPORTED Targets +^^^^^^^^^^^^^^^^ + +This module defines :prop_tgt:`IMPORTED` target ``Coin::CoinUtils``, if +CoinUtils has been found. + +Result Variables +^^^^^^^^^^^^^^^^ + +This module defines the following variables: + +:: + +CoinUtils_FOUND - True if CoinUtils found. + +#]=======================================================================] +find_package(PkgConfig REQUIRED) + +pkg_check_modules(COINUTILS REQUIRED coinutils IMPORTED_TARGET GLOBAL) +add_library(Coin::CoinUtils ALIAS PkgConfig::COINUTILS) diff --git a/libs/or-tools-stable/cmake/FindOsi.cmake b/libs/or-tools-stable/cmake/FindOsi.cmake new file mode 100644 index 0000000000000000000000000000000000000000..1bf1d4f1bc8691cdf8122d6f58408a84cfdb48a1 --- /dev/null +++ b/libs/or-tools-stable/cmake/FindOsi.cmake @@ -0,0 +1,26 @@ +#[=======================================================================[.rst: +FindOsi +-------- + +This module determines the Osi library of the system. + +IMPORTED Targets +^^^^^^^^^^^^^^^^ + +This module defines :prop_tgt:`IMPORTED` target ``Coin::Osi``, if +Osi has been found. + +Result Variables +^^^^^^^^^^^^^^^^ + +This module defines the following variables: + +:: + +Osi_FOUND - True if Osi found. + +#]=======================================================================] +find_package(PkgConfig REQUIRED) + +pkg_check_modules(OSI REQUIRED osi IMPORTED_TARGET GLOBAL) +add_library(Coin::Osi ALIAS PkgConfig::OSI) diff --git a/libs/or-tools-stable/cmake/FindProtobuf.cmake b/libs/or-tools-stable/cmake/FindProtobuf.cmake new file mode 100644 index 0000000000000000000000000000000000000000..35625b1e2ed1a22e0922e5b09797ad4bd3a772a4 --- /dev/null +++ b/libs/or-tools-stable/cmake/FindProtobuf.cmake @@ -0,0 +1,34 @@ +#[=======================================================================[.rst: +FindProtobuf +-------- + +This module determines the Protobuf library of the system. + +IMPORTED Targets +^^^^^^^^^^^^^^^^ + +This module defines :prop_tgt:`IMPORTED` target ``protobuf::libprotobuf`` and +``protobuf::protoc``, if Protobuf has been found. + +Result Variables +^^^^^^^^^^^^^^^^ + +This module defines the following variables: + +:: + +Protobuf_FOUND - True if Protobuf found. + +#]=======================================================================] +find_package(PkgConfig REQUIRED) + +pkg_check_modules(PROTOBUF REQUIRED protobuf>=3.12 IMPORTED_TARGET GLOBAL) +add_library(protobuf::libprotobuf ALIAS PkgConfig::PROTOBUF) +set_target_properties(PkgConfig::PROTOBUF PROPERTIES + INTERFACE_INCLUDE_DIRECTORIES "${PROTOBUF_INCLUDEDIR}") + +find_program(PROTOC_EXEC protoc REQUIRED) +add_executable(protobuf::protoc IMPORTED GLOBAL) +set_target_properties(protobuf::protoc PROPERTIES + IMPORTED_LOCATION ${PROTOC_EXEC} +) diff --git a/libs/or-tools-stable/cmake/FindSCIP.cmake b/libs/or-tools-stable/cmake/FindSCIP.cmake new file mode 100644 index 0000000000000000000000000000000000000000..6f98139b00825a25a1b6be7289a05cc89712ccaa --- /dev/null +++ b/libs/or-tools-stable/cmake/FindSCIP.cmake @@ -0,0 +1,80 @@ +#[=======================================================================[.rst: +FindSCIP +-------- + +This module determines the SCIP library of the system. + +IMPORTED Targets +^^^^^^^^^^^^^^^^ + +This module defines :prop_tgt:`IMPORTED` target ``SCIP::SCIP``, if +SCIP has been found. + +Result Variables +^^^^^^^^^^^^^^^^ + +This module defines the following variables: + +:: + +SCIP_FOUND - True if SCIP found. + +Hints +^^^^^ + +A user may set ``SCIP_ROOT`` to a SCIP installation root to tell this +module where to look. +#]=======================================================================] +set(SCIP_FOUND FALSE) + +if(CMAKE_C_COMPILER_LOADED) + include (CheckIncludeFile) + include (CheckCSourceCompiles) +elseif(CMAKE_CXX_COMPILER_LOADED) + include (CheckIncludeFileCXX) + include (CheckCXXSourceCompiles) +else() + message(FATAL_ERROR "FindSCIP only works if either C or CXX language is enabled") +endif() + +if(NOT SCIP_ROOT) + set(SCIP_ROOT $ENV{SCIP_ROOT}) +endif() +message(STATUS "SCIP_ROOT: ${SCIP_ROOT}") +if(NOT SCIP_ROOT) + message(FATAL_ERROR "SCIP_ROOT: not found") +else() + set(SCIP_FOUND TRUE) +endif() + +if(SCIP_FOUND AND NOT TARGET SCIP::SCIP) + add_library(SCIP::SCIP UNKNOWN IMPORTED) + + set_target_properties(SCIP::SCIP PROPERTIES + INTERFACE_INCLUDE_DIRECTORIES "${SCIP_ROOT}/include") + + if(APPLE) + set(SCIP_ARCH darwin.x86_64.gnu.opt) + set_property(TARGET SCIP::SCIP TARGET_PROPERTY IMPORTED_LOCATION + -force_load + ${SCIP_ROOT}/lib/libscip.a + ${SCIP_ROOT}/lib/libscipopt.a + ${SCIP_ROOT}/lib/libsoplex.a + ${SCIP_ROOT}/lib/libsoplex.${SCIP_ARCH}.a + ) + elseif(UNIX) + set(SCIP_ARCH linux.x86_64.gnu.opt) + set_property(TARGET SCIP::SCIP TARGET_PROPERTY IMPORTED_LOCATION + ${SCIP_ROOT}/lib/libscip.a + ${SCIP_ROOT}/lib/libscipopt.a + ${SCIP_ROOT}/lib/libsoplex.a + ${SCIP_ROOT}/lib/libsoplex.${SCIP_ARCH}.a + ) + elseif(MSVC) + set_property(TARGET SCIP::SCIP TARGET_PROPERTY IMPORTED_LOCATION + ${SCIP_ROOT}/lib/scip.lib + ${SCIP_ROOT}/lib/soplex.lib + ignore:4006 + ) + endif() +endif() diff --git a/libs/or-tools-stable/cmake/FindXPRESS.cmake b/libs/or-tools-stable/cmake/FindXPRESS.cmake new file mode 100644 index 0000000000000000000000000000000000000000..b73fdae58facdffa0e5d387dee14ffb902908e62 --- /dev/null +++ b/libs/or-tools-stable/cmake/FindXPRESS.cmake @@ -0,0 +1,74 @@ +#[=======================================================================[.rst: +FindXPRESS +-------- + +This module determines the XPRESS library of the system. + +IMPORTED Targets +^^^^^^^^^^^^^^^^ + +This module defines :prop_tgt:`IMPORTED` target ``XPRESS::XPRESS``, if +XPRESS has been found. + +Result Variables +^^^^^^^^^^^^^^^^ + +This module defines the following variables: + +:: + +XPRESS_FOUND - True if XPRESS found. + +Hints +^^^^^ + +A user may set ``XPRESS_ROOT`` to a XPRESS installation root to tell this +module where to look. +#]=======================================================================] +set(XPRESS_FOUND FALSE) + +if(CMAKE_C_COMPILER_LOADED) + include (CheckIncludeFile) + include (CheckCSourceCompiles) +elseif(CMAKE_CXX_COMPILER_LOADED) + include (CheckIncludeFileCXX) + include (CheckCXXSourceCompiles) +else() + message(FATAL_ERROR "FindXPRESS only works if either C or CXX language is enabled") +endif() + +if(NOT XPRESS_ROOT) + set(XPRESS_ROOT $ENV{XPRESS_ROOT}) +endif() +message(STATUS "XPRESS_ROOT: ${XPRESS_ROOT}") +if(NOT XPRESS_ROOT) + message(FATAL_ERROR "XPRESS_ROOT: not found") +else() + set(XPRESS_FOUND TRUE) +endif() + +if(XPRESS_FOUND AND NOT TARGET XPRESS::XPRESS) + add_library(XPRESS::XPRESS UNKNOWN IMPORTED) + + if(UNIX) + set_target_properties(XPRESS::XPRESS PROPERTIES + INTERFACE_INCLUDE_DIRECTORIES "${XPRESS_ROOT}/include") + endif() + + if(APPLE) + set_target_properties(XPRESS::XPRESS PROPERTIES + #INSTALL_RPATH_USE_LINK_PATH TRUE + #BUILD_WITH_INSTALL_RPATH TRUE + #INTERFACE_LINK_DIRECTORIES "${XPRESS_ROOT}/lib" + #INSTALL_RPATH "${XPRESS_ROOT}/lib;${INSTALL_RPATH}" + IMPORTED_LOCATION "${XPRESS_ROOT}/lib/libxprs.dylib") + elseif(UNIX) + set_target_properties(XPRESS::XPRESS PROPERTIES + INTERFACE_LINK_DIRECTORIES "${XPRESS_ROOT}/lib" + IMPORTED_LOCATION ${XPRESS_ROOT}/lib/libxprs.so) + elseif(MSVC) + set_target_properties(XPRESS::XPRESS PROPERTIES + INTERFACE_INCLUDE_DIRECTORIES "${XPRESS_ROOT}\\include" + IMPORTED_LOCATION "${XPRESS_ROOT}\\lib\\xprs.lib") + endif() +endif() diff --git a/libs/or-tools-stable/cmake/Findglog.cmake b/libs/or-tools-stable/cmake/Findglog.cmake new file mode 100644 index 0000000000000000000000000000000000000000..ef84dfc63819e27b848be3e0bf6d55884a1957f8 --- /dev/null +++ b/libs/or-tools-stable/cmake/Findglog.cmake @@ -0,0 +1,26 @@ +#[=======================================================================[.rst: +Findglog +-------- + +This module determines the glog library of the system. + +IMPORTED Targets +^^^^^^^^^^^^^^^^ + +This module defines :prop_tgt:`IMPORTED` target ``glog::glog``, if +glog has been found. + +Result Variables +^^^^^^^^^^^^^^^^ + +This module defines the following variables: + +:: + +glog_FOUND - True if glog found. + +#]=======================================================================] +find_package(PkgConfig REQUIRED) + +pkg_check_modules(GLOG REQUIRED libglog IMPORTED_TARGET GLOBAL) +add_library(glog::glog ALIAS PkgConfig::GLOG) diff --git a/libs/or-tools-stable/cmake/Makefile b/libs/or-tools-stable/cmake/Makefile new file mode 100644 index 0000000000000000000000000000000000000000..e614a884bd632ce21a7e798fe35b4cd16ac8e90b --- /dev/null +++ b/libs/or-tools-stable/cmake/Makefile @@ -0,0 +1,375 @@ +PROJECT := ortools +BUILD_SYSTEM := cmake +BRANCH := $(shell git rev-parse --abbrev-ref HEAD) +SHA1 := $(shell git rev-parse --verify HEAD) + +# General commands +.PHONY: help +BOLD=\e[1m +RESET=\e[0m + +help: + @echo -e "${BOLD}SYNOPSIS${RESET}" + @echo -e "\tmake [NOCACHE=1]" + @echo + @echo -e "${BOLD}DESCRIPTION${RESET}" + @echo -e "\ttest build inside docker container to have a reproductible build." + @echo + @echo -e "${BOLD}MAKE TARGETS${RESET}" + @echo -e "\t${BOLD}help${RESET}: display this help and exit." + @echo + @echo -e "\t${BOLD}${RESET}: build docker images for ALL DISTROS." + @echo -e "\t${BOLD}_${RESET}: build the docker image for a specific distro." + @echo -e "\t${BOLD}save_${RESET}: Save docker images for ALL DISTROS." + @echo -e "\t${BOLD}save__${RESET}: Save the docker image for a specific distro." + @echo -e "\t${BOLD}sh__${RESET}: run a container using the docker image specified (debug purpose)." + @echo + @echo -e "\t${BOLD}${RESET}: build docker images for ALL DISTROS and ALL LANGUAGES." + @echo -e "\t${BOLD}_${RESET}: build docker images for a specific distro for ALL LANGUAGES." + @echo -e "\t${BOLD}_${RESET}: build docker images for ALL DISTROS for a specific language." + @echo -e "\t${BOLD}__${RESET}: build the docker image for a specific distro for a specific language." + @echo -e "\t${BOLD}save_${RESET}: Save docker images for ALL DISTROS for ALL LANGUAGES." + @echo -e "\t${BOLD}save__${RESET}: Save docker images for a specific distro for ALL LANGUAGES." + @echo -e "\t${BOLD}save__${RESET}: Save docker images for ALL DISTRO for a specific language." + @echo -e "\t${BOLD}save___${RESET}: Save the docker image for a specific distro for a specific language." + @echo -e "\t${BOLD}sh___${RESET}: run a container using the docker image specified (debug purpose)." + @echo + @echo -e "\tWith ${BOLD}${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 "\tWith ${BOLD}${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 "\tWith ${BOLD}${RESET}:" + @echo -e "\t\t${BOLD}cpp${RESET} (C++)" + @echo -e "\t\t${BOLD}python${RESET} (Python >= 3)" + @echo -e "\t\t${BOLD}java${RESET} (Java >= 8)" + @echo -e "\t\t${BOLD}dotnet${RESET} (.Net Core >= 2.1)" + @echo -e "\te.g. 'make devel_cpp'" + @echo + @echo -e "\tWith ${BOLD}${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 + @echo -e "\t${BOLD}${RESET}: build vagrant machine for ALL LANGUAGES." + @echo -e "\t${BOLD}_${RESET}: build a vagrant machine for the specified language." + @echo -e "\t${BOLD}sh__${RESET}: ssh to the vagrant machine specified (debug purpose)." + @echo + @echo -e "\tWith ${BOLD}${RESET}:" + @echo -e "\t\t${BOLD}freebsd${RESET} (FreeBSD)" + @echo + @echo -e "\tWith ${BOLD}${RESET}:" + @echo + @echo -e "\t${BOLD}clean${RESET}: Remove cache and docker image." + @echo -e "\t${BOLD}clean_${RESET}: Remove cache and docker image for the specified distro." + @echo -e "\t${BOLD}clean_${RESET}: Remove virtual machine for the specified vm." + @echo + @echo -e "\t${BOLD}NOCACHE=1${RESET}: use 'docker build --no-cache' when building container (default use cache)." + @echo + @echo -e "branch: $(BRANCH)" + @echo -e "sha1: $(SHA1)" + +# Need to add cmd_distro to PHONY otherwise target are ignored since they do not +# contain recipe (using FORCE do not work here) +.PHONY: all +all: build + +# Delete all implicit rules to speed up makefile +MAKEFLAGS += --no-builtin-rules +.SUFFIXES: +# Remove some rules from gmake that .SUFFIXES does not remove. +SUFFIXES = +# Keep all intermediate files +# ToDo: try to remove it later +.SECONDARY: + +# Docker image name prefix. +IMAGE := ${PROJECT}/${BUILD_SYSTEM} + +ifdef NOCACHE +DOCKER_BUILD_CMD := docker build --no-cache +else +DOCKER_BUILD_CMD := docker build +endif + +DOCKER_RUN_CMD := docker run --rm --init --net=host + +# Currently supported distro +DISTROS = alpine archlinux centos debian fedora opensuse ubuntu +LANGUAGES = cpp python java dotnet + +# $* stem +# $< first prerequist +# $@ target name + +############### +## PRESTAGES ## +############### +PRESTAGES = base swig +define make-prestage-target = +#$$(info STAGE: $1) +#$$(info Create targets: $1 $(addsuffix _$1, $(DISTROS)).) +targets_$1 = $(addsuffix _$1, $(DISTROS)) +.PHONY: $1 $$(targets_$1) +$1: $$(targets_$1) +$$(targets_$1): %_$1: docker/%/Dockerfile + #@docker image rm -f ${IMAGE}:$$*_$1 2>/dev/null + ${DOCKER_BUILD_CMD} --target=$1 --tag ${IMAGE}:$$*_$1 -f $$< .. + +#$$(info Create targets: save_$1 $(addprefix save_, $(addsuffix _$1, $(DISTROS))) (debug).) +save_targets_$1 = $(addprefix save_, $(addsuffix _$1, $(DISTROS))) +.PHONY: save_$1 $$(save_targets_$1) +save_$1: $$(save_targets_$1) +$$(save_targets_$1): save_%_$1: cache/%/docker_$1.tar +cache/%/docker_$1.tar: %_$1 + @rm -f $$@ + mkdir -p cache/$$* + docker save ${IMAGE}:$$*_$1 -o $$@ + +#$$(info Create targets: $(addprefix sh_, $(addsuffix _$1, $(DISTROS))) (debug).) +sh_targets_$1 = $(addprefix sh_, $(addsuffix _$1, $(DISTROS))) +.PHONY: $$(sh_targets_$1) +$$(sh_targets_$1): sh_%_$1: %_$1 + ${DOCKER_RUN_CMD} -it --name ${PROJECT}_${BUILD_SYSTEM}_$$*_$1 ${IMAGE}:$$*_$1 + +#$$(info Create targets: $(addprefix clean_, $(addsuffix _$1, $(DISTROS))).) +clean_targets_$1 = $(addprefix clean_, $(addsuffix _$1, $(DISTROS))) +.PHONY: clean_$1 $$(clean_targets_$1) +clean_$1: $$(clean_targets_$1) +$$(clean_targets_$1): clean_%_$1: + docker image rm -f ${IMAGE}:$$*_$1 2>/dev/null + rm -f cache/$$*/docker_$1.tar +endef + +$(foreach stage,$(PRESTAGES),$(eval $(call make-prestage-target,$(stage)))) + +############ +## STAGES ## +############ +STAGES = env devel build test 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))) + +#$$(info Create targets: $(addsuffix _$1, $(LANGUAGES)).) +targets_$1 = $(addsuffix _$1, $(LANGUAGES)) +.PHONY: $$(targets_$1) +$$(targets_$1): %_$1: $(addsuffix _$1, $(addsuffix _%, $(DISTROS))) + +#$$(info Create targets: $(addsuffix _cpp_$1, $(DISTROS))) +cpp_targets_$1 = $(addsuffix _cpp_$1, $(DISTROS)) +#$$(info Create targets: $(addsuffix _dotnet_$1, $(DISTROS))) +dotnet_targets_$1 = $(addsuffix _dotnet_$1, $(DISTROS)) +#$$(info Create targets: $(addsuffix _java_$1, $(DISTROS))) +java_targets_$1 = $(addsuffix _java_$1, $(DISTROS)) +#$$(info Create targets: $(addsuffix _python_$1, $(DISTROS))) +python_targets_$1 = $(addsuffix _python_$1, $(DISTROS)) +.PHONY: $$(cpp_targets_$1) $$(dotnet_targets_$1) $$(java_targets_$1) $$(python_targets_$1) + +$$(cpp_targets_$1): %_cpp_$1: docker/%/cpp.Dockerfile %_base + #@docker image rm -f ${IMAGE}:$$*_cpp_$1 2>/dev/null + ${DOCKER_BUILD_CMD} --target=$1 --tag ${IMAGE}:$$*_cpp_$1 -f $$< .. +$$(dotnet_targets_$1): %_dotnet_$1: docker/%/dotnet.Dockerfile %_swig + #@docker image rm -f ${IMAGE}:$$*_dotnet_$1 2>/dev/null + ${DOCKER_BUILD_CMD} --target=$1 --tag ${IMAGE}:$$*_dotnet_$1 -f $$< .. +$$(java_targets_$1): %_java_$1: docker/%/java.Dockerfile %_swig + #@docker image rm -f ${IMAGE}:$$*_java_$1 2>/dev/null + ${DOCKER_BUILD_CMD} --target=$1 --tag ${IMAGE}:$$*_java_$1 -f $$< .. +$$(python_targets_$1): %_python_$1: docker/%/python.Dockerfile %_swig + #@docker image rm -f ${IMAGE}:$$*_python_$1 2>/dev/null + ${DOCKER_BUILD_CMD} --target=$1 --tag ${IMAGE}:$$*_python_$1 -f $$< .. + +# Save $1 docker images (debug). +#$$(info Create targets: save_$1 $(addprefix save_, $(addsuffix _$1, $(DISTROS))).) +targets_$1 = $(addprefix save_, $(addsuffix _$1, $(DISTROS))) +.PHONY: save_$1 $$(targets_$1) +save_$1: $$(targets_$1) +$$(targets_$1): save_%_$1: $(addprefix save_%_, $(addsuffix _$1, $(LANGUAGES))) + +#$$(info Create targets: $(addprefix save_, $(addsuffix _$1, $(LANGUAGES))).) +targets_$1 = $(addprefix save_, $(addsuffix _$1, $(LANGUAGES))) +.PHONY: $$(targets_$1) +$$(targets_$1): save_%_$1: $(addprefix save_, $(addsuffix _%_$1, $(DISTROS))) + +#$$(info Create targets: $(addprefix save_, $(addsuffix _cpp_$1, $(DISTROS)))) +cpp_targets_$1 = $(addprefix save_, $(addsuffix _cpp_$1, $(DISTROS))) +#$$(info Create targets: $(addprefix save_, $(addsuffix _dotnet_$1, $(DISTROS)))) +dotnet_targets_$1 = $(addprefix save_, $(addsuffix _dotnet_$1, $(DISTROS))) +#$$(info Create targets: $(addprefix save_, $(addsuffix _java_$1, $(DISTROS)))) +java_targets_$1 = $(addprefix save_, $(addsuffix _java_$1, $(DISTROS))) +#$$(info Create targets: $(addprefix save_, $(addsuffix _python_$1, $(DISTROS)))) +python_targets_$1 = $(addprefix save_, $(addsuffix _python_$1, $(DISTROS))) +.PHONY: $$(cpp_targets_$1) $$(dotnet_targets_$1) $$(java_targets_$1) $$(python_targets_$1) + +$$(cpp_targets_$1): save_%_cpp_$1: cache/%/docker_cpp_$1.tar +cache/%/docker_cpp_$1.tar: %_cpp_$1 + @rm -f $$@ + mkdir -p cache/$$* + docker save ${IMAGE}:$$*_cpp_$1 -o $$@ +$$(dotnet_targets_$1): save_%_dotnet_$1: cache/%/docker_dotnet_$1.tar +cache/%/docker_dotnet_$1.tar: %_dotnet_$1 + @rm -f $$@ + mkdir -p cache/$$* + docker save ${IMAGE}:$$*_dotnet_$1 -o $$@ +$$(java_targets_$1): save_%_java_$1: cache/%/docker_java_$1.tar +cache/%/docker_java_$1.tar: %_java_$1 + @rm -f $$@ + mkdir -p cache/$$* + docker save ${IMAGE}:$$*_java_$1 -o $$@ +$$(python_targets_$1): save_%_python_$1: cache/%/docker_python_$1.tar +cache/%/docker_python_$1.tar: %_python_$1 + @rm -f $$@ + mkdir -p cache/$$* + docker save ${IMAGE}:$$*_python_$1 -o $$@ + +# Run a container using the __$1 image (debug). +#$$(info Create targets: $(addprefix sh_, $(addsuffix _cpp_$1, $(DISTROS)))) +cpp_targets_$1 = $(addprefix sh_, $(addsuffix _cpp_$1, $(DISTROS))) +#$$(info Create targets: $(addprefix sh_, $(addsuffix _dotnet_$1, $(DISTROS)))) +dotnet_targets_$1 = $(addprefix sh_, $(addsuffix _dotnet_$1, $(DISTROS))) +#$$(info Create targets: $(addprefix sh_, $(addsuffix _java_$1, $(DISTROS)))) +java_targets_$1 = $(addprefix sh_, $(addsuffix _java_$1, $(DISTROS))) +#$$(info Create targets: $(addprefix sh_, $(addsuffix _python_$1, $(DISTROS)))) +python_targets_$1 = $(addprefix sh_, $(addsuffix _python_$1, $(DISTROS))) +.PHONY: $$(cpp_targets_$1) $$(dotnet_targets_$1) $$(java_targets_$1) $$(python_targets_$1) + +$$(cpp_targets_$1): sh_%_cpp_$1: %_cpp_$1 + ${DOCKER_RUN_CMD} -it --name ${PROJECT}_${BUILD_SYSTEM}_$$*_cpp_$1 ${IMAGE}:$$*_cpp_$1 +$$(dotnet_targets_$1): sh_%_dotnet_$1: %_dotnet_$1 + ${DOCKER_RUN_CMD} -it --name ${PROJECT}_${BUILD_SYSTEM}_$$*_dotnet_$1 ${IMAGE}:$$*_dotnet_$1 +$$(java_targets_$1): sh_%_java_$1: %_java_$1 + ${DOCKER_RUN_CMD} -it --name ${PROJECT}_${BUILD_SYSTEM}_$$*_java_$1 ${IMAGE}:$$*_java_$1 +$$(python_targets_$1): sh_%_python_$1: %_python_$1 + ${DOCKER_RUN_CMD} -it --name ${PROJECT}_${BUILD_SYSTEM}_$$*_python_$1 ${IMAGE}:$$*_python_$1 + +# Clean $1 docker images. +#$$(info Create targets: clean_$1 $(addprefix clean_, $(addsuffix _$1, $(DISTROS))).) +targets_$1 = $(addprefix clean_, $(addsuffix _$1, $(DISTROS))) +.PHONY: clean_$1 $(targets_$1) +clean_$1: $$(targets_$1) +$$(targets_$1): clean_%_$1: $(addprefix clean_%_, $(addsuffix _$1, $(LANGUAGES))) + +#$$(info Create targets: $(addprefix clean_, $(addsuffix _$1, $(LANGUAGES))).) +targets_$1 = $(addprefix clean_, $(addsuffix _$1, $(LANGUAGES))) +.PHONY: $$(targets_$1) +$$(targets_$1): clean_%_$1: $(addprefix clean_, $(addsuffix _%_$1, $(DISTROS))) + +#$$(info Create targets: $(addprefix clean_, $(addsuffix _cpp_$1, $(DISTROS)))) +cpp_targets_$1 = $(addprefix clean_, $(addsuffix _cpp_$1, $(DISTROS))) +#$$(info Create targets: $(addprefix clean_, $(addsuffix _dotnet_$1, $(DISTROS)))) +dotnet_targets_$1 = $(addprefix clean_, $(addsuffix _dotnet_$1, $(DISTROS))) +#$$(info Create targets: $(addprefix clean_, $(addsuffix _java_$1, $(DISTROS)))) +java_targets_$1 = $(addprefix clean_, $(addsuffix _java_$1, $(DISTROS))) +#$$(info Create targets: $(addprefix clean_, $(addsuffix _python_$1, $(DISTROS)))) +python_targets_$1 = $(addprefix clean_, $(addsuffix _python_$1, $(DISTROS))) +.PHONY: $$(cpp_targets_$1) $$(dotnet_targets_$1) $$(java_targets_$1) $$(python_targets_$1) + +$$(cpp_targets_$1): clean_%_cpp_$1: + docker image rm -f ${IMAGE}:$$*_cpp_$1 2>/dev/null + rm -f cache/$$*/docker_cpp_$1.tar +$$(dotnet_targets_$1): clean_%_dotnet_$1: + docker image rm -f ${IMAGE}:$$*_dotnet_$1 2>/dev/null + rm -f cache/$$*/docker_dotnet_$1.tar +$$(java_targets_$1): clean_%_java_$1: + docker image rm -f ${IMAGE}:$$*_java_$1 2>/dev/null + rm -f cache/$$*/docker_java_$1.tar +$$(python_targets_$1): clean_%_python_$1: + docker image rm -f ${IMAGE}:$$*_python_$1 2>/dev/null + rm -f cache/$$*/docker_python_$1.tar +endef + +$(foreach stage,$(STAGES),$(eval $(call make-stage-target,$(stage)))) + +############# +## VAGRANT ## +############# +VMS = freebsd + +targets_freebsd = $(addprefix freebsd_, $(LANGUAGES)) +.PHONY: freebsd $(targets_freebsd) +freebsd: $(targets_freebsd) +$(targets_freebsd): freebsd_%: vagrant/freebsd/%/Vagrantfile + @cd vagrant/freebsd/$* && vagrant destroy -f + cd vagrant/freebsd/$* && vagrant up + +# SSH to a freebsd_ vagrant machine (debug). +targets_freebsd = $(addprefix sh_freebsd_, $(LANGUAGES)) +.PHONY: $(targets_freebsd) +$(targets_freebsd): sh_freebsd_%: + cd vagrant/freebsd/$* && vagrant ssh + +# Clean FreeBSD vagrant machine +targets_freebsd = $(addprefix clean_freebsd_, $(LANGUAGES)) +.PHONY: clean_freebsd $(targets_freebsd) +clean_freebsd: $(targets_freebsd) +$(targets_freebsd): clean_freebsd_%: + cd vagrant/freebsd/$* && vagrant destroy -f + -rm -rf vagrant/freebsd/$*/.vagrant + +########## +## GLOP ## +########## +glop_targets = $(addprefix glop_, $(STAGES)) +.PHONY: $(glop_targets) +$(glop_targets): glop_%: docker/glop/Dockerfile + #@docker image rm -f ${IMAGE}:$@ 2>/dev/null + ${DOCKER_BUILD_CMD} --target=$* --tag ${IMAGE}:$@ -f $< .. + +save_glop_targets = $(addprefix save_glop_, $(STAGES)) +.PHONY: $(save_glop_targets) +$(save_glop_targets): save_glop_%: cache/glop/docker_%.tar +cache/glop/docker_%.tar: glop_% + @rm -f $@ + mkdir -p cache/$* + docker save ${IMAGE}:$< -o $@ + +sh_glop_targets = $(addprefix sh_glop_, $(STAGES)) +.PHONY: $(sh_glop_targets) +$(sh_glop_targets): sh_glop_%: glop_% + ${DOCKER_RUN_CMD} -it --name ${PROJECT}_${BUILD_SYSTEM}_$< ${IMAGE}:$< + +clean_glop_targets = $(addprefix clean_glop_, $(STAGES)) +.PHONY: $(clean_glop_targets) +$(clean_glop_targets): clean_glop_% + docker image rm -f ${IMAGE}:glop_$* 2>/dev/null + rm -f cache/glop/docker_$*.tar + +# CLEAN +targets = $(addprefix clean_, $(DISTROS)) +vms = $(addprefix clean_, $(VMS)) +glops = $(addprefix clean_glop_, $(STAGES)) +.PHONY: clean $(targets) +clean: $(targets) $(vms) $(glops) + docker container prune -f + docker image prune -f + -rmdir cache/glop + -rmdir cache +$(targets): clean_%: $(addprefix clean_%_, $(PRESTAGES)) $(addprefix clean_%_, $(STAGES)) + -rmdir cache/$* + +.PHONY: distclean +distclean: clean + -docker container rm -f $$(docker container ls -aq) + -docker image rm -f $$(docker image ls -aq) + -vagrant box remove -f generic/freebsd12 diff --git a/libs/or-tools-stable/cmake/README.md b/libs/or-tools-stable/cmake/README.md new file mode 100644 index 0000000000000000000000000000000000000000..c16e737fba69020e2527c217c4f45c94a07c15dd --- /dev/null +++ b/libs/or-tools-stable/cmake/README.md @@ -0,0 +1,183 @@ +# OR-Tools CMake Build Instructions + +| OS | C++ | Python | Java | .NET | +|:-------|-----|--------|------|------| +| Linux | [![Status][cpp_linux_svg]][cpp_linux_link] | [![Status][python_linux_svg]][python_linux_link] | [![Status][java_linux_svg]][java_linux_link] | [![Status][dotnet_linux_svg]][dotnet_linux_link] | +| macOS | [![Status][cpp_osx_svg]][cpp_osx_link] | [![Status][python_osx_svg]][python_osx_link] | [![Status][java_osx_svg]][java_osx_link] | [![Status][dotnet_osx_svg]][dotnet_osx_link] | +| Windows | [![Status][cpp_win_svg]][cpp_win_link] | [![Status][python_win_svg]][python_win_link] | [![Status][java_win_svg]][java_win_link] | [![Status][dotnet_win_svg]][dotnet_win_link] | + + +[cpp_linux_svg]: https://github.com/google/or-tools/workflows/C++%20Linux%20CI/badge.svg?branch=master +[cpp_linux_link]: https://github.com/google/or-tools/actions?query=workflow%3A"C%2B%2B+Linux+CI" +[python_linux_svg]: https://github.com/google/or-tools/workflows/Python%20Linux%20CI/badge.svg?branch=master +[python_linux_link]: https://github.com/google/or-tools/actions?query=workflow%3A"Python+Linux+CI" +[java_linux_svg]: https://github.com/google/or-tools/workflows/Java%20Linux%20CI/badge.svg?branch=master +[java_linux_link]: https://github.com/google/or-tools/actions?query=workflow%3A"Java+Linux+CI" +[dotnet_linux_svg]: https://github.com/google/or-tools/workflows/.Net%20Linux%20CI/badge.svg?branch=master +[dotnet_linux_link]: https://github.com/google/or-tools/actions?query=workflow%3A".Net+Linux+CI" + +[cpp_osx_svg]: https://github.com/google/or-tools/workflows/C++%20MacOS%20CI/badge.svg?branch=master +[cpp_osx_link]: https://github.com/google/or-tools/actions?query=workflow%3A"C%2B%2B+MacOS+CI" +[python_osx_svg]: https://github.com/google/or-tools/workflows/Python%20MacOS%20CI/badge.svg?branch=master +[python_osx_link]: https://github.com/google/or-tools/actions?query=workflow%3A"Python+MacOS+CI" +[java_osx_svg]: https://github.com/google/or-tools/workflows/Java%20MacOS%20CI/badge.svg?branch=master +[java_osx_link]: https://github.com/google/or-tools/actions?query=workflow%3A"Java+MacOS+CI" +[dotnet_osx_svg]: https://github.com/google/or-tools/workflows/.Net%20MacOS%20CI/badge.svg?branch=master +[dotnet_osx_link]: https://github.com/google/or-tools/actions?query=workflow%3A".Net+MacOS+CI" + +[cpp_win_svg]: https://github.com/google/or-tools/workflows/C++%20Windows%20CI/badge.svg?branch=master +[cpp_win_link]: https://github.com/google/or-tools/actions?query=workflow%3A"C%2B%2B+Windows+CI" +[python_win_svg]: https://github.com/google/or-tools/workflows/Python%20Windows%20CI/badge.svg?branch=master +[python_win_link]: https://github.com/google/or-tools/actions?query=workflow%3A"Python+Windows+CI" +[java_win_svg]: https://github.com/google/or-tools/workflows/Java%20Windows%20CI/badge.svg?branch=master +[java_win_link]: https://github.com/google/or-tools/actions?query=workflow%3A"Java+Windows+CI" +[dotnet_win_svg]: https://github.com/google/or-tools/workflows/.Net%20Windows%20CI/badge.svg?branch=master +[dotnet_win_link]: https://github.com/google/or-tools/actions?query=workflow%3A".Net+Windows+CI" + +Dockers: [![Status][docker_svg]][docker_link] + +[docker_svg]: https://github.com/google/or-tools/workflows/Docker%20CMake/badge.svg?branch=master +[docker_link]: https://github.com/google/or-tools/actions?query=workflow%3A"Docker+CMake" + + +## Introduction + + +OR-Tools comes with a CMake based build ([CMakeLists.txt](../CMakeLists.txt)) +that can be used on a wide range of platforms (the "C" stands for +cross-platform). If you don't have CMake installed already, you can download it +for free from . + +CMake works by generating native Makefiles or build projects that can be used in +the compiler environment of your choice.
You can either build OR-Tools with +CMake as a standalone project or it can be incorporated into an existing CMake + project. + +## [Dependencies](#deps) + +OR-Tools depends on severals mandatory libraries. You can compile them all at +configure time using the option `-DBUILD_DEPS=ON` (`OFF` by default) or you can +compile few of them using the options below. + +* ZLIB (`BUILD_ZLIB`), +* Google Abseil-cpp (`BUILD_absl`), +* Google Protobuf (`BUILD_Protobuf`), +* SCIP (`BUILD_SCIP`),
+ note: You can disable the support of SCIP solvers + by using `-DUSE_SCIP=OFF` (`ON` by default). + +* COIN-OR solvers, + * COIN-OR CoinUtils (`BUILD_CoinUtils`), + * COIN-OR Osi (`BUILD_Osi`), + * COIN-OR Clp (`BUILD_Clp`), + * COIN-OR Cgl (`BUILD_Cgl`), + * COIN-OR Cbc (`BUILD_Cbc`),
+ note: You can disable the support of COIN-OR solvers (i.e. Cbc and Clp solver) + by using `-DUSE_COINOR=OFF` (`ON` by default). + +OR-Tools also have few (ed compile time) optional solvers support (disabled by +default): + +* CPLEX (`USE_CPLEX`), +* XPRESS (`USE_XPRESS`) + +**warning: Since these solvers require license and are proprietary, we can't +test it on public CI and support can be broken.** + +## [Integrating OR-Tools in your CMake Project](#integration) + +You should be able to integrate OR-Tools in your C++ CMake project following one +of these methods. + +For API/ABI compatibility reasons, if you will be using OR-Tools inside a larger +C++ project, we recommend using CMake and incorporate OR-Tools as a CMake +subproject (i.e. using `add_sudirectory()` or `FetchContent`). + +### Consuming OR-Tools in a CMake Project + +If you already have OR-Tools installed in your system, you can use the CMake +command +[`find_package()`](https://cmake.org/cmake/help/latest/command/find_package.html) +to include OR-Tools in your C++ CMake Project. + +note: You may need to set +[`CMAKE_PREFIX_PATH`](https://cmake.org/cmake/help/latest/command/find_package.html#search-procedure) +in order for CMake to find your OR-Tools installation. + +```cmake +cmake_minimum_required(VERSION 3.14) +project(myproj VERSION 1.0) + +find_package(ortools CONFIG REQUIRED) + +add_executable(myapp main.cpp) +target_link_libraries(myapp ortools::ortools) +``` + +Include directories, compile definitions and compile options will be added +automatically to your target as needed. + +### Incorporating OR-Tools into a CMake Super Project + +#### Using add_subdirectory + +The recommendations below are similar to those for using CMake within the +googletest framework +() + +Thus, you can use the CMake command +[`add_subdirectory()`](https://cmake.org/cmake/help/latest/command/add_subdirectory.html) +to include OR-Tools directly from a subdirectory of your C++ CMake project.
+Note: The **ortools::ortools** target is in this case an ALIAS library target +for the **ortools** library target. + +```cmake +cmake_minimum_required(VERSION 3.14) +project(myproj VERSION 1.0) + +add_subdirectory(or-tools) + +add_executable(myapp main.cpp) +target_link_libraries(myapp ortools::ortools) +``` + +Again, include directories, compile definitions and compile options will be +added automatically to your target as needed. + +#### Using FetchContent + +If you have `CMake >= 3.14.7` you can use the built-in module +[FetchContent](https://cmake.org/cmake/help/latest/module/FetchContent.html) +instead. Note: The **ortools::ortools** target is in this case an ALIAS library +target for the **ortools** library target. + +```cmake +cmake_minimum_required(VERSION 3.14) +project(myproj VERSION 1.0 LANGUAGES CXX) + +include(FetchContent) +FetchContent_Declare( + or-tools + GIT_REPOSITORY https://github.com/google/or-tools.git + GIT_TAG master +) + +# After the following call, the CMake targets defined by or-tools +# will be defined and available to the rest of the build +FetchContent_MakeAvailable(or-tools) + +add_executable(myapp main.cpp) +target_link_libraries(myapp ortools::ortools) +``` + +note: You may need to use the option `-DBUILD_DEPS=ON` to get all or-tools +dependencies as well. diff --git a/libs/or-tools-stable/cmake/cpp.cmake b/libs/or-tools-stable/cmake/cpp.cmake new file mode 100644 index 0000000000000000000000000000000000000000..4762c130f81d4eca40631615660118e4c08e7f67 --- /dev/null +++ b/libs/or-tools-stable/cmake/cpp.cmake @@ -0,0 +1,308 @@ +if(NOT BUILD_CXX) + return() +endif() + +# Main Target +add_library(${PROJECT_NAME} "") +# Xcode fails to build if library doesn't contains at least one source file. +if(XCODE) + file(GENERATE + OUTPUT ${PROJECT_BINARY_DIR}/${PROJECT_NAME}/version.cpp + CONTENT "namespace {char* version = \"${PROJECT_VERSION}\";}") + target_sources(${PROJECT_NAME} PRIVATE ${PROJECT_BINARY_DIR}/${PROJECT_NAME}/version.cpp) +endif() + +if(BUILD_SHARED_LIBS) + list(APPEND OR_TOOLS_COMPILE_DEFINITIONS "OR_TOOLS_AS_DYNAMIC_LIB") +endif() +list(APPEND OR_TOOLS_COMPILE_DEFINITIONS + "USE_BOP" # enable BOP support + "USE_GLOP" # enable GLOP support + ) +if(USE_SCIP) + list(APPEND OR_TOOLS_COMPILE_DEFINITIONS "USE_SCIP") + set(GSCIP_DIR gscip) +endif() +if(USE_COINOR) + list(APPEND OR_TOOLS_COMPILE_DEFINITIONS + "USE_CBC" # enable COIN-OR CBC support + "USE_CLP" # enable COIN-OR CLP support + ) +endif() +if(USE_CPLEX) + list(APPEND OR_TOOLS_COMPILE_DEFINITIONS "USE_CPLEX") +endif() +if(USE_XPRESS) + list(APPEND OR_TOOLS_COMPILE_DEFINITIONS "USE_XPRESS") + if(MSVC) + list(APPEND OR_TOOLS_COMPILE_DEFINITIONS "XPRESS_PATH=\"${XPRESS_ROOT}\"") + else() + list(APPEND OR_TOOLS_COMPILE_DEFINITIONS "XPRESS_PATH=${XPRESS_ROOT}") + endif() +endif() + +if(WIN32) + list(APPEND OR_TOOLS_COMPILE_DEFINITIONS "__WIN32__") +endif() +if(MSVC) + list(APPEND OR_TOOLS_COMPILE_OPTIONS + "/bigobj" # Allow big object + "/DNOMINMAX" + "/DWIN32_LEAN_AND_MEAN=1" + "/D_CRT_SECURE_NO_WARNINGS" + "/D_CRT_SECURE_NO_DEPRECATE" + "/MP" # Build with multiple processes + "/DNDEBUG" + ) + # MSVC warning suppressions + list(APPEND OR_TOOLS_COMPILE_OPTIONS + "/wd4005" # 'macro-redefinition' + "/wd4018" # 'expression' : signed/unsigned mismatch + "/wd4065" # switch statement contains 'default' but no 'case' labels + "/wd4068" # 'unknown pragma' + "/wd4101" # 'identifier' : unreferenced local variable + "/wd4146" # unary minus operator applied to unsigned type, result still unsigned + "/wd4200" # nonstandard extension used : zero-sized array in struct/union + "/wd4244" # 'conversion' conversion from 'type1' to 'type2', possible loss of data + "/wd4251" # 'identifier' : class 'type' needs to have dll-interface to be used by clients of class 'type2' + "/wd4267" # 'var' : conversion from 'size_t' to 'type', possible loss of data + "/wd4305" # 'identifier' : truncation from 'type1' to 'type2' + "/wd4307" # 'operator' : integral constant overflow + "/wd4309" # 'conversion' : truncation of constant value + "/wd4334" # 'operator' : result of 32-bit shift implicitly converted to 64 bits (was 64-bit shift intended?) + "/wd4355" # 'this' : used in base member initializer list + "/wd4477" # 'fwprintf' : format string '%s' requires an argument of type 'wchar_t *' + "/wd4506" # no definition for inline function 'function' + "/wd4715" # function' : not all control paths return a value + "/wd4800" # 'type' : forcing value to bool 'true' or 'false' (performance warning) + "/wd4996" # The compiler encountered a deprecated declaration. + ) +else() + list(APPEND OR_TOOLS_COMPILE_OPTIONS "-fwrapv") +endif() + +# Includes +target_include_directories(${PROJECT_NAME} INTERFACE + $ + $ + $ + ) + +# Compile options +set_target_properties(${PROJECT_NAME} PROPERTIES + CXX_STANDARD 17 + CXX_STANDARD_REQUIRED ON + CXX_EXTENSIONS OFF + ) +target_compile_features(${PROJECT_NAME} PUBLIC cxx_std_17) +target_compile_definitions(${PROJECT_NAME} PUBLIC ${OR_TOOLS_COMPILE_DEFINITIONS}) +target_compile_options(${PROJECT_NAME} PUBLIC ${OR_TOOLS_COMPILE_OPTIONS}) + +# Properties +if(NOT APPLE) + set_target_properties(${PROJECT_NAME} PROPERTIES VERSION ${PROJECT_VERSION}) +else() + # Clang don't support version x.y.z with z > 255 + set_target_properties(${PROJECT_NAME} PROPERTIES + INSTALL_RPATH "@loader_path" + VERSION ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}) +endif() +set_target_properties(${PROJECT_NAME} PROPERTIES + SOVERSION ${PROJECT_VERSION_MAJOR} + POSITION_INDEPENDENT_CODE ON + INTERFACE_POSITION_INDEPENDENT_CODE ON +) +set_target_properties(${PROJECT_NAME} PROPERTIES INTERFACE_${PROJECT_NAME}_MAJOR_VERSION ${PROJECT_VERSION_MAJOR}) +set_target_properties(${PROJECT_NAME} PROPERTIES COMPATIBLE_INTERFACE_STRING ${PROJECT_NAME}_MAJOR_VERSION) + +# Dependencies +target_link_libraries(${PROJECT_NAME} PUBLIC + ${CMAKE_DL_LIBS} + ZLIB::ZLIB + ${ABSL_DEPS} + protobuf::libprotobuf + ${COINOR_DEPS} + $<$:libscip> + $<$:CPLEX::CPLEX> + $<$:XPRESS::XPRESS> + Threads::Threads) +if(WIN32) + target_link_libraries(${PROJECT_NAME} PUBLIC psapi.lib ws2_32.lib) +endif() + +# ALIAS +add_library(${PROJECT_NAME}::${PROJECT_NAME} ALIAS ${PROJECT_NAME}) + +# Generate Protobuf cpp sources +set(PROTO_HDRS) +set(PROTO_SRCS) +file(GLOB_RECURSE proto_files RELATIVE ${PROJECT_SOURCE_DIR} + "ortools/bop/*.proto" + "ortools/constraint_solver/*.proto" + "ortools/data/*.proto" + "ortools/glop/*.proto" + "ortools/graph/*.proto" + "ortools/linear_solver/*.proto" + "ortools/sat/*.proto" + "ortools/util/*.proto" + "ortools/linear_solver/*.proto" + ) +if(USE_SCIP) + file(GLOB_RECURSE gscip_proto_files RELATIVE ${PROJECT_SOURCE_DIR} "ortools/gscip/*.proto") + list(APPEND proto_files ${gscip_proto_files}) +endif() + +## Get Protobuf include dir +get_target_property(protobuf_dirs protobuf::libprotobuf INTERFACE_INCLUDE_DIRECTORIES) +foreach(dir IN LISTS protobuf_dirs) + if (NOT "${dir}" MATCHES "INSTALL_INTERFACE|-NOTFOUND") + message(STATUS "Adding proto path: ${dir}") + list(APPEND PROTO_DIRS "--proto_path=${dir}") + endif() +endforeach() + +foreach(PROTO_FILE IN LISTS proto_files) + #message(STATUS "protoc proto(cc): ${PROTO_FILE}") + get_filename_component(PROTO_DIR ${PROTO_FILE} DIRECTORY) + get_filename_component(PROTO_NAME ${PROTO_FILE} NAME_WE) + set(PROTO_HDR ${PROJECT_BINARY_DIR}/${PROTO_DIR}/${PROTO_NAME}.pb.h) + set(PROTO_SRC ${PROJECT_BINARY_DIR}/${PROTO_DIR}/${PROTO_NAME}.pb.cc) + #message(STATUS "protoc hdr: ${PROTO_HDR}") + #message(STATUS "protoc src: ${PROTO_SRC}") + add_custom_command( + OUTPUT ${PROTO_SRC} ${PROTO_HDR} + COMMAND protobuf::protoc + "--proto_path=${PROJECT_SOURCE_DIR}" + ${PROTO_DIRS} + "--cpp_out=${PROJECT_BINARY_DIR}" + ${PROTO_FILE} + DEPENDS ${PROTO_FILE} protobuf::protoc + COMMENT "Generate C++ protocol buffer for ${PROTO_FILE}" + VERBATIM) + list(APPEND PROTO_HDRS ${PROTO_HDR}) + list(APPEND PROTO_SRCS ${PROTO_SRC}) +endforeach() +#add_library(${PROJECT_NAME}_proto STATIC ${PROTO_SRCS} ${PROTO_HDRS}) +add_library(${PROJECT_NAME}_proto OBJECT ${PROTO_SRCS} ${PROTO_HDRS}) +set_target_properties(${PROJECT_NAME}_proto PROPERTIES + POSITION_INDEPENDENT_CODE ON + CXX_STANDARD 17 + CXX_STANDARD_REQUIRED ON + CXX_EXTENSIONS OFF) +target_include_directories(${PROJECT_NAME}_proto PRIVATE + ${PROJECT_SOURCE_DIR} + ${PROJECT_BINARY_DIR} + $ + ) +target_compile_definitions(${PROJECT_NAME}_proto PUBLIC ${OR_TOOLS_COMPILE_DEFINITIONS}) +target_compile_options(${PROJECT_NAME}_proto PUBLIC ${OR_TOOLS_COMPILE_OPTIONS}) +#target_link_libraries(${PROJECT_NAME}_proto PRIVATE protobuf::libprotobuf) +add_dependencies(${PROJECT_NAME}_proto protobuf::libprotobuf) +add_library(${PROJECT_NAME}::proto ALIAS ${PROJECT_NAME}_proto) +# Add ortools::proto to libortools +#target_link_libraries(${PROJECT_NAME} PRIVATE ${PROJECT_NAME}::proto) +target_sources(${PROJECT_NAME} PRIVATE $) +add_dependencies(${PROJECT_NAME} ${PROJECT_NAME}::proto) + +foreach(SUBPROJECT IN ITEMS + algorithms + base + bop + constraint_solver + data + ${GSCIP_DIR} + glop + graph + linear_solver + lp_data + port + sat + util) + add_subdirectory(ortools/${SUBPROJECT}) + #target_link_libraries(${PROJECT_NAME} PRIVATE ${PROJECT_NAME}_${SUBPROJECT}) + target_sources(${PROJECT_NAME} PRIVATE $) + add_dependencies(${PROJECT_NAME} ${PROJECT_NAME}_${SUBPROJECT}) +endforeach() + +# Install rules +include(GNUInstallDirs) +include(GenerateExportHeader) +GENERATE_EXPORT_HEADER(${PROJECT_NAME}) +install(FILES ${PROJECT_BINARY_DIR}/${PROJECT_NAME}_export.h + DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) + +install(TARGETS ${PROJECT_NAME} + EXPORT ${PROJECT_NAME}Targets + INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} + ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} + RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} + ) + +install(EXPORT ${PROJECT_NAME}Targets + NAMESPACE ${PROJECT_NAME}:: + DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}) +install(DIRECTORY ortools + DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} + COMPONENT Devel + FILES_MATCHING + PATTERN "*.h") +install(DIRECTORY ${PROJECT_BINARY_DIR}/ortools + DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} + COMPONENT Devel + FILES_MATCHING + PATTERN "*.pb.h" + PATTERN CMakeFiles EXCLUDE) + +include(CMakePackageConfigHelpers) +string (TOUPPER "${PROJECT_NAME}" PACKAGE_PREFIX) +configure_package_config_file(cmake/${PROJECT_NAME}Config.cmake.in + "${PROJECT_BINARY_DIR}/${PROJECT_NAME}Config.cmake" + INSTALL_DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}" + NO_CHECK_REQUIRED_COMPONENTS_MACRO) +write_basic_package_version_file( + "${PROJECT_BINARY_DIR}/${PROJECT_NAME}ConfigVersion.cmake" + COMPATIBILITY SameMajorVersion + ) +install( + FILES + "${PROJECT_BINARY_DIR}/${PROJECT_NAME}Config.cmake" + "${PROJECT_BINARY_DIR}/${PROJECT_NAME}ConfigVersion.cmake" + DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}" + COMPONENT Devel) + + +# add_cxx_sample() +# CMake function to generate and build C++ sample. +# Parameters: +# the C++ filename +# e.g.: +# add_cxx_sample(foo.cc) +function(add_cxx_sample FILE_NAME) + message(STATUS "Building ${FILE_NAME}: ...") + get_filename_component(SAMPLE_NAME ${FILE_NAME} NAME_WE) + get_filename_component(SAMPLE_DIR ${FILE_NAME} DIRECTORY) + get_filename_component(COMPONENT_DIR ${SAMPLE_DIR} DIRECTORY) + get_filename_component(COMPONENT_NAME ${COMPONENT_DIR} NAME) + + if(APPLE) + set(CMAKE_INSTALL_RPATH + "@loader_path/../${CMAKE_INSTALL_LIBDIR};@loader_path") + elseif(UNIX) + set(CMAKE_INSTALL_RPATH "$ORIGIN/../${CMAKE_INSTALL_LIBDIR}:$ORIGIN") + endif() + + add_executable(${SAMPLE_NAME} ${FILE_NAME}) + target_include_directories(${SAMPLE_NAME} PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}) + target_compile_features(${SAMPLE_NAME} PRIVATE cxx_std_17) + target_link_libraries(${SAMPLE_NAME} PRIVATE ortools::ortools) + + include(GNUInstallDirs) + install(TARGETS ${SAMPLE_NAME}) + + if(BUILD_TESTING) + add_test(NAME cxx_${COMPONENT_NAME}_${SAMPLE_NAME} COMMAND ${SAMPLE_NAME}) + endif() + + message(STATUS "Building ${FILE_NAME}: ...DONE") +endfunction() diff --git a/libs/or-tools-stable/cmake/dependencies/CMakeLists.txt b/libs/or-tools-stable/cmake/dependencies/CMakeLists.txt new file mode 100644 index 0000000000000000000000000000000000000000..387b0b62687dc2d00c36dd8e6aeb309ba8c3431c --- /dev/null +++ b/libs/or-tools-stable/cmake/dependencies/CMakeLists.txt @@ -0,0 +1,213 @@ +# ############################################################################## +# SWIG (WIN32) +# ############################################################################## +if(WIN32 + AND (BUILD_PYTHON + OR BUILD_JAVA + OR BUILD_DOTNET)) + message(CHECK_START "Fetching SWIG") + list(APPEND CMAKE_MESSAGE_INDENT " ") + configure_file(${CMAKE_CURRENT_SOURCE_DIR}/SWIG.CMakeLists.txt.in + ${CMAKE_CURRENT_BINARY_DIR}/SWIG/CMakeLists.txt @ONLY) + + execute_process( + COMMAND ${CMAKE_COMMAND} -H. -Bproject_build -G "${CMAKE_GENERATOR}" + RESULT_VARIABLE result + WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/SWIG) + if(result) + message(FATAL_ERROR "CMake step for SWIG failed: ${result}") + endif() + + execute_process( + COMMAND ${CMAKE_COMMAND} --build project_build --config ${CMAKE_BUILD_TYPE} + RESULT_VARIABLE result + WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/SWIG) + if(result) + message(FATAL_ERROR "Build step for SWIG failed: ${result}") + endif() + + set(SWIG_EXECUTABLE + ${CMAKE_CURRENT_BINARY_DIR}/SWIG/source/swig.exe + CACHE INTERNAL "swig.exe location" FORCE) + list(POP_BACK CMAKE_MESSAGE_INDENT) + message(CHECK_PASS "fetched") +endif() + +include(FetchContent) +set(FETCHCONTENT_QUIET OFF) +set(FETCHCONTENT_UPDATES_DISCONNECTED ON) +set(BUILD_SHARED_LIBS OFF) +set(CMAKE_POSITION_INDEPENDENT_CODE ON) +set(BUILD_TESTING OFF) + +# ############################################################################## +# ZLIB +# ############################################################################## +if(BUILD_ZLIB) + message(CHECK_START "Fetching ZLIB") + list(APPEND CMAKE_MESSAGE_INDENT " ") + FetchContent_Declare( + zlib + GIT_REPOSITORY "https://github.com/madler/ZLIB.git" + GIT_TAG "v1.2.11" + PATCH_COMMAND git apply "${CMAKE_CURRENT_LIST_DIR}/../../patches/ZLIB.patch") + FetchContent_MakeAvailable(zlib) + list(POP_BACK CMAKE_MESSAGE_INDENT) + message(CHECK_PASS "fetched") +endif() + +# ############################################################################## +# ABSEIL-CPP +# ############################################################################## +if(BUILD_absl) + message(CHECK_START "Fetching Abseil-cpp") + list(APPEND CMAKE_MESSAGE_INDENT " ") + set(ABSL_ENABLE_INSTALL ON) + FetchContent_Declare( + absl + GIT_REPOSITORY "https://github.com/abseil/abseil-cpp.git" + GIT_TAG "20200923.2" + PATCH_COMMAND git apply "${CMAKE_CURRENT_LIST_DIR}/../../patches/abseil-cpp-20200923.2.patch") + FetchContent_MakeAvailable(absl) + list(POP_BACK CMAKE_MESSAGE_INDENT) + message(CHECK_PASS "fetched") +endif() + +# ############################################################################## +# SCIP +# ############################################################################## +if(BUILD_SCIP) + message(CHECK_START "Fetching SCIP") + list(APPEND CMAKE_MESSAGE_INDENT " ") + set(SHARED OFF) + set(READLINE OFF) + set(GMP OFF) + set(PAPILO OFF) + set(ZIMPL OFF) + set(IPOPT OFF) + + set(TPI "none" CACHE STRING "Scip param") + set(EXPRINT "none" CACHE STRING "Scip param") + set(LPS "none" CACHE STRING "Scip param") + set(SYM "none" CACHE STRING "Scip param") + FetchContent_Declare( + scip + URL "${CMAKE_CURRENT_LIST_DIR}/../../dependencies/archives/scip-7.0.1.tgz" + PATCH_COMMAND git apply --ignore-whitespace "${CMAKE_CURRENT_LIST_DIR}/../../patches/scip-7.0.1.patch") + FetchContent_MakeAvailable(scip) + set(LPI_GLOP_SRC ${scip_SOURCE_DIR}/src/lpi/lpi_glop.cpp PARENT_SCOPE) + list(POP_BACK CMAKE_MESSAGE_INDENT) + message(CHECK_PASS "fetched") +endif() + +# ############################################################################## +# Protobuf +# ############################################################################## +if(BUILD_Protobuf) + message(CHECK_START "Fetching Protobuf") + list(APPEND CMAKE_MESSAGE_INDENT " ") + set(protobuf_BUILD_TESTS OFF) + set(protobuf_BUILD_EXPORT OFF) + set(protobuf_MSVC_STATIC_RUNTIME OFF) + # FetchContent_Declare(SOURCE_SUBDIR) was introduced in 3.18 + if(${CMAKE_VERSION} VERSION_GREATER_EQUAL "3.18") + FetchContent_Declare( + protobuf + GIT_REPOSITORY "https://github.com/protocolbuffers/protobuf.git" + GIT_TAG "v3.14.0" + GIT_SUBMODULES "" + PATCH_COMMAND git apply "${CMAKE_CURRENT_LIST_DIR}/../../patches/protobuf-v3.14.0.patch" + SOURCE_SUBDIR cmake) + FetchContent_MakeAvailable(protobuf) + else() + fetch_git_dependency( + NAME Protobuf + REPOSITORY "https://github.com/protocolbuffers/protobuf.git" + TAG "v3.14.0" + PATCH_COMMAND "git apply \"${CMAKE_CURRENT_LIST_DIR}/../../patches/protobuf-v3.14.0.patch\"" + SOURCE_SUBDIR cmake + ) + endif() + list(POP_BACK CMAKE_MESSAGE_INDENT) + message(CHECK_PASS "fetched") +endif() + +# Coin-OR does not support C++17 (use of 'register' storage class specifier) +set(CMAKE_CXX_STANDARD 11) + +# ############################################################################## +# Coinutils +# ############################################################################## +if(BUILD_CoinUtils) + message(CHECK_START "Fetching CoinUtils") + list(APPEND CMAKE_MESSAGE_INDENT " ") + FetchContent_Declare( + CoinUtils + GIT_REPOSITORY "https://github.com/Mizux/CoinUtils.git" + GIT_TAG "stable/2.11") + FetchContent_MakeAvailable(CoinUtils) + list(POP_BACK CMAKE_MESSAGE_INDENT) + message(CHECK_PASS "fetched") +endif() + +# ############################################################################## +# Osi +# ############################################################################## +if(BUILD_Osi) + message(CHECK_START "Fetching Osi") + list(APPEND CMAKE_MESSAGE_INDENT " ") + FetchContent_Declare( + Osi + GIT_REPOSITORY "https://github.com/Mizux/Osi.git" + GIT_TAG "stable/0.108") + FetchContent_MakeAvailable(Osi) + list(POP_BACK CMAKE_MESSAGE_INDENT) + message(CHECK_PASS "fetched") +endif() + +# ############################################################################## +# Clp +# ############################################################################## +if(BUILD_Clp) + message(CHECK_START "Fetching Clp") + list(APPEND CMAKE_MESSAGE_INDENT " ") + FetchContent_Declare( + Clp + GIT_REPOSITORY "https://github.com/Mizux/Clp.git" + GIT_TAG "stable/1.17.4") + FetchContent_MakeAvailable(Clp) + list(POP_BACK CMAKE_MESSAGE_INDENT) + message(CHECK_PASS "fetched") +endif() + +# ############################################################################## +# Cgl +# ############################################################################## +if(BUILD_Cgl) + message(CHECK_START "Fetching Cgl") + list(APPEND CMAKE_MESSAGE_INDENT " ") + FetchContent_Declare( + Cgl + GIT_REPOSITORY "https://github.com/Mizux/Cgl.git" + GIT_TAG "stable/0.60") + FetchContent_MakeAvailable(Cgl) + list(POP_BACK CMAKE_MESSAGE_INDENT) + message(CHECK_PASS "fetched") +endif() + +# ############################################################################## +# Cbc +# ############################################################################## +if(BUILD_Cbc) + message(CHECK_START "Fetching Cbc") + list(APPEND CMAKE_MESSAGE_INDENT " ") + FetchContent_Declare( + Cbc + GIT_REPOSITORY "https://github.com/Mizux/Cbc.git" + GIT_TAG "stable/2.10") + FetchContent_MakeAvailable(Cbc) + list(POP_BACK CMAKE_MESSAGE_INDENT) + message(CHECK_PASS "fetched") +endif() + +set(CMAKE_CXX_STANDARD 17) diff --git a/libs/or-tools-stable/cmake/dependencies/CMakeLists.txt.in b/libs/or-tools-stable/cmake/dependencies/CMakeLists.txt.in new file mode 100644 index 0000000000000000000000000000000000000000..040303ce66b4d83f6195bfd950749d29cd1ac93f --- /dev/null +++ b/libs/or-tools-stable/cmake/dependencies/CMakeLists.txt.in @@ -0,0 +1,26 @@ +cmake_minimum_required(VERSION @CMAKE_VERSION@) + +project(@GIT_DEP_NAME@ NONE) + +include(ExternalProject) + +set(FETCH_BASE_DIR "@CMAKE_BINARY_DIR@/_deps" CACHE PATH "Directory under which to collect all populated content") + +ExternalProject_Add(${PROJECT_NAME}_project + #TMP_DIR "${FETCH_BASE_DIR}/@NAME_LOWER@-tmp" + #STAMP_DIR "${FETCH_BASE_DIR}/@NAME_LOWER@-stamp" + #DOWNLOAD_DIR "${FETCH_BASE_DIR}/@NAME_LOWER@-download" + SOURCE_DIR "${FETCH_BASE_DIR}/@NAME_LOWER@-src" + BINARY_DIR "${FETCH_BASE_DIR}/@NAME_LOWER@-build" + + GIT_REPOSITORY "@GIT_DEP_REPOSITORY@" + GIT_TAG "@GIT_DEP_TAG@" + PATCH_COMMAND @GIT_DEP_PATCH_COMMAND@ + + CONFIGURE_COMMAND "" + BUILD_COMMAND "" + INSTALL_COMMAND "" + TEST_COMMAND "" + USES_TERMINAL_DOWNLOAD YES + USES_TERMINAL_UPDATE YES +) diff --git a/libs/or-tools-stable/cmake/dependencies/SWIG.CMakeLists.txt.in b/libs/or-tools-stable/cmake/dependencies/SWIG.CMakeLists.txt.in new file mode 100644 index 0000000000000000000000000000000000000000..2b71337795c7ef9d7c9634a4be2526fb91fd6c87 --- /dev/null +++ b/libs/or-tools-stable/cmake/dependencies/SWIG.CMakeLists.txt.in @@ -0,0 +1,34 @@ +cmake_minimum_required(VERSION 3.5) + +project(SWIG NONE) + +include(ExternalProject) + +ExternalProject_Add(SWIG_project + TMP_DIR "@CMAKE_CURRENT_BINARY_DIR@/${PROJECT_NAME}/tmp" + STAMP_DIR "@CMAKE_CURRENT_BINARY_DIR@/${PROJECT_NAME}/stamp" + DOWNLOAD_DIR "@CMAKE_CURRENT_BINARY_DIR@/${PROJECT_NAME}/download" + SOURCE_DIR "@CMAKE_CURRENT_BINARY_DIR@/${PROJECT_NAME}/source" + BUILD_IN_SOURCE 1 + + URL "http://prdownloads.sourceforge.net/swig/swigwin-4.0.2.zip" + LOG_DOWNLOAD TRUE + + UPDATE_COMMAND "" + LOG_UPDATE TRUE + + PATCH_COMMAND "" + LOG_PATCH TRUE + + CONFIGURE_COMMAND "" + LOG_CONFIGURE TRUE + + BUILD_COMMAND "" + LOG_BUILD TRUE + + INSTALL_COMMAND "" + LOG_INSTALL TRUE + + TEST_COMMAND "" + LOG_TEST TRUE +) diff --git a/libs/or-tools-stable/cmake/deps.cmake b/libs/or-tools-stable/cmake/deps.cmake new file mode 100644 index 0000000000000000000000000000000000000000..c27fd2c57048a6acb3b18157e54f3987560a1255 --- /dev/null +++ b/libs/or-tools-stable/cmake/deps.cmake @@ -0,0 +1,87 @@ +# Check dependencies +set(CMAKE_THREAD_PREFER_PTHREAD TRUE) +set(THREAD_PREFER_PTHREAD_FLAG TRUE) +find_package(Threads REQUIRED) + +# Tell find_package() to try “Config” mode before “Module” mode if no mode was specified. +# This should avoid find_package() to first find our FindXXX.cmake modules if +# distro package already provide a CMake config file... +set(CMAKE_FIND_PACKAGE_PREFER_CONFIG TRUE) + +# libprotobuf force us to depends on ZLIB::ZLIB target +if(NOT BUILD_ZLIB) + find_package(ZLIB REQUIRED) +endif() +if(NOT TARGET ZLIB::ZLIB) + message(FATAL_ERROR "Target ZLIB::ZLIB not available.") +endif() + +if(NOT BUILD_absl) + find_package(absl REQUIRED) +endif() +set(ABSL_DEPS + absl::base + absl::flags + absl::flags_commandlineflag + absl::flags_parse + absl::flags_usage + absl::cord + absl::random_random + absl::raw_hash_set + absl::hash + absl::memory + absl::meta + absl::stacktrace + absl::status + absl::statusor + absl::str_format + absl::strings + absl::synchronization + absl::any + ) + +if(NOT BUILD_Protobuf) + find_package(Protobuf REQUIRED) +endif() +if(NOT TARGET protobuf::libprotobuf) + message(FATAL_ERROR "Target protobuf::libprotobuf not available.") +endif() + +if(USE_SCIP) + if(NOT BUILD_SCIP) + find_package(SCIP REQUIRED) + endif() +endif() + +if(USE_COINOR) + if(NOT BUILD_CoinUtils) + find_package(CoinUtils REQUIRED) + endif() + + if(NOT BUILD_Osi) + find_package(Osi REQUIRED) + endif() + + if(NOT BUILD_Clp) + find_package(Clp REQUIRED) + endif() + + if(NOT BUILD_Cgl) + find_package(Cgl REQUIRED) + endif() + + if(NOT BUILD_Cbc) + find_package(Cbc REQUIRED) + endif() + + set(COINOR_DEPS Coin::CbcSolver Coin::OsiCbc Coin::ClpSolver Coin::OsiClp) +endif() + +# Check optional Dependencies +if(USE_CPLEX) + find_package(CPLEX REQUIRED) +endif() + +if(USE_XPRESS) + find_package(XPRESS REQUIRED) +endif() diff --git a/libs/or-tools-stable/cmake/doc/ci.md b/libs/or-tools-stable/cmake/doc/ci.md new file mode 100644 index 0000000000000000000000000000000000000000..618861db8ef57ddd8451787b28be1493b27b5d0d --- /dev/null +++ b/libs/or-tools-stable/cmake/doc/ci.md @@ -0,0 +1,85 @@ +# CI: Makefile/Docker/Vagrant 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 already 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=cmake +``` + +## Example +For example to test `Python` inside an `Alpine` container: +```sh +make alpine_python_test +``` + +# Docker +[Docker](https://www.docker.com/resources/what-container) is a set of platform +as a service products that use OS-level virtualization to deliver software in +packages called containers. + +You can find official base image on the Docker registry [Docker Hub](https://hub.docker.com/search?type=image) + +## Layers +Dockerfile is splitted in several stages. +![docker](docker.svg) + +# Vagrant +[Vagrant](https://www.vagrantup.com/intro) is a tool for building and managing virtual machine environments in a single workflow. +It is currently used to test FreeBSD inside a VirtualBox since we don't have any +FreeBSD machine. +Vagrant call a base image a *box*. +Vagrant call a container a *vagrant machine*. + +You can find official box on the Vagrant registry [Vagrant Cloud](https://app.vagrantup.com/boxes/search) + +note: Currently only github MacOS runner provide virtualization support (i.e. [VirtualBox](https://www.virtualbox.org/)). + +## Basic usage +Once `vagrant` and `VirtualBox` are installed, all commands must be run where the `Vagrantfile` is +located. + +Generate a `Vagrantfile` skeleton, e.g. using the box `generic/freebsd12`: +```sh +vagrant init generic/freebsd12 +``` + +Build and run a new *vagrant machine*: +```sh +vagrant up +``` +note: If you run `virtualbox` you should see it. + +Connect to a *vagrant machine*: +```sh +vagrant ssh +[vagrant@freebsd12 ~]$ ... +``` + +Execute few commands: +```sh +vagrant ssh -c "pwd; ls project ..." +``` + +Stop and delete a *vagrant machine*: +```sh +vagrant destroy -f +``` diff --git a/libs/or-tools-stable/cmake/doc/cmake.dot b/libs/or-tools-stable/cmake/doc/cmake.dot new file mode 100644 index 0000000000000000000000000000000000000000..49ed4376f22b9955f5ace1938ca6e2ee32817fc3 --- /dev/null +++ b/libs/or-tools-stable/cmake/doc/cmake.dot @@ -0,0 +1,250 @@ +// C++: royalblue +// Python: gold +// Java: crimson +// .Net: darkviolet +@startdot +digraph CMake { + //rankdir=BT; + rankdir=TD; + + subgraph clusterPrerequisite { + node [shape=box3d, style=filled, color=black]; + CM [label="CMake", fillcolor=royalblue]; + SWIG [label="Swig\n(Unix)", fillcolor=chocolate]; + PY [label="Python\n(3.6+)", fillcolor=gold]; + JV [label="Java\n(openJDK 8+)", fillcolor=crimson]; + DN [label=".Net Core SDK\n(3.1)", fillcolor=darkviolet]; + FS [label=".Net F#", fillcolor=darkviolet]; + CM -> SWIG [arrowhead=none, style=invisible]; + SWIG -> PY [arrowhead=none, style=invisible]; + SWIG -> JV [arrowhead=none, style=invisible]; + SWIG -> DN [arrowhead=none, style=invisible]; + DN -> FS [arrowhead=none, style=invisible]; + + label = "Prerequisite"; + } + + subgraph clusterOR { + node [shape=box, style="rounded,filled", color=black, fillcolor=royalblue]; + subgraph clusterDeps { + subgraph clusterZLIB { + ZLIB [label="ZLIB::ZLIB", color=royalblue]; + + color=royalblue; + label = "madler/zlib.git + cmake patch"; + } + + subgraph clusterAbsl { + Absl [label="absl::absl_*", color=royalblue]; + + color=royalblue; + label = "abseil/abseil-cpp.git"; + } + + subgraph clusterGFlags { + GFlags [label="gflags::gflags", color=royalblue]; + + color=royalblue; + label = "gflags/gflags.git"; + } + + subgraph clusterGLog { + GLog [label="glog::glog", color=royalblue]; + + color=royalblue; + label = "google/glog.git"; + } + GFlags -> GLog; + + subgraph clusterProtobuf { + Protobuf [label="protobuf::libprotobuf", color=royalblue]; + + color=royalblue; + label = "protocolbuffers/protobuf.git"; + } + ZLIB -> Protobuf; + Absl -> Protobuf; + + subgraph clusterCoinOR { + subgraph clusterCoinUtils { + CoinUtils [label="Coin::CoinUtils", color=royalblue]; + + color=royalblue; + label = "mizux/CoinUtils.git"; + } + subgraph clusterOsi { + Osi [label="Coin::Osi", color=royalblue]; + + color=royalblue; + label = "mizux/Osi.git"; + } + subgraph clusterClp { + Clp [label="Coin::Clp", color=royalblue]; + OsiClp [label="Coin::OsiClp", color=royalblue]; + ClpSolver [label="Coin::ClpSolver", color=royalblue]; + + color=royalblue; + label = "mizux/Clp.git"; + } + subgraph clusterCgl { + Cgl [label="Coin::Cgl", color=royalblue]; + + color=royalblue; + label = "mizux/Cgl.git"; + } + subgraph clusterCbc { + Cbc [label="Coin::Cbc", color=royalblue]; + OsiCbc [label="Coin::OsiCbc", color=royalblue]; + CbcSolver [label="Coin::CbcSolver", color=royalblue]; + + color=royalblue; + label = "mizux/Cbc.git"; + } + + CoinUtils -> Osi; + + CoinUtils -> Clp; + Osi -> Clp; + + CoinUtils -> OsiClp; + Osi -> OsiClp; + Clp -> OsiClp; + + Clp -> ClpSolver; + + CoinUtils -> Cgl; + Osi -> Cgl; + OsiClp -> Cgl; + + CoinUtils -> Cbc; + Osi -> Cbc; + Clp -> Cbc; + Cgl -> Cbc; + + CoinUtils -> OsiCbc; + Osi -> OsiCbc; + Cbc -> OsiCbc; + + Cbc -> CbcSolver; + + color=royalblue; + label = "Coin-OR Solver\n(-DUSE_COINOR=ON)"; + } + + SWIG_WIN [label="swigwin\n(Windows)", color=chocolate]; + + // Intra deps + //ZLIB -> Protobuf; + //ZLIB -> Cbc; + //Absl -> Protobuf; + //GFlags -> GLog; + + color=grey; + label = "Dependencies\n(-DBUILD_DEPS=ON)"; + } // clusterDeps + + subgraph clusterCXX { + node [shape=box, style="rounded,filled", color=black, fillcolor=royalblue]; + OR_SRC [label="OR-Tools src\nortools/...", shape=folder]; + OR_CPP [label="ortools::ortools"]; + PKG_CPP [label="CMake Package", shape=box3d]; + + subgraph clusterCXXTest { + EX_CPP [label="C++ samples"]; + + label = "Examples\n(-DBUILD_TESTING=ON)"; + } + PKG_CPP -> EX_CPP; + + ZLIB -> OR_SRC; + Absl -> OR_SRC; + Protobuf -> OR_SRC; + GFlags -> OR_SRC; + GLog -> OR_SRC; + ClpSolver -> OR_SRC; + CbcSolver -> OR_SRC; + // rendering hack + //OsiCbc -> OR_SRC [arrowhead=none, style=invisible]; + + OR_SRC -> OR_CPP; + OR_CPP -> PKG_CPP [label="install", color=royalblue]; + + color=royalblue; + label = "C++\n(-DBUILD_CXX=ON)"; + } // clusterCXX + + subgraph clusterPython { + node [shape=box, style="rounded,filled", color=black, fillcolor=gold]; + OR_WPY [label="C++ Python wrappers", shape=note]; + OR_PY [label="Python files", shape=note]; + PKG_PY [label="Wheel package", shape=box3d]; + + subgraph clusterPythonTest { + EX_PY [label="Python samples"]; + + label = "Examples\n(-DBUILD_TESTING=ON)"; + } + PKG_PY -> EX_PY; + + OR_SRC -> OR_WPY [label="swig", color=chocolate]; + OR_SRC -> OR_PY [label="swig", color=chocolate]; + OR_WPY -> OR_PY; + OR_PY -> PKG_PY [label="python setup.py", color=gold]; + + color=gold; + label = "Python\n(-DBUILD_PYTHON=ON)"; + } // clusterPython + + subgraph clusterJava { + node [shape=box, style="rounded,filled", color=black, fillcolor=crimson]; + OR_WJAVA [label="C++ Java wrappers", shape=note]; + OR_JAVA [label="Java files", shape=note]; + PKG_JAVA [label="Maven package", shape=box3d]; + + subgraph clusterJavaTest { + EX_JAVA [label="Java samples"]; + + label = "Examples\n(-DBUILD_TESTING=ON)"; + } + PKG_JAVA -> EX_JAVA; + + OR_SRC -> OR_WJAVA [label="swig", color=chocolate]; + OR_SRC -> OR_JAVA [label="swig", color=chocolate]; + OR_WJAVA -> OR_JAVA; + OR_JAVA -> PKG_JAVA [label="maven (WIP)", style="dotted", color=crimson]; + + color=crimson; + label = "Java\n(-DBUILD_JAVA=ON)"; + } // clusterJava + + subgraph clusterNet { + node [shape=box, style="rounded,filled", color=black, fillcolor=darkviolet]; + OR_WNET [label="C++ .Net wrappers", shape=note]; + OR_NET [label=".Net files", shape=note]; + PKG_NET_RT [label="Nuget runtime package\nGoogle.OrTools.runtime.rid.nupkg", shape=box3d]; + PKG_NET [label="Nuget package\nGoogle.OrTools.nupkg", shape=box3d]; + + subgraph clusterNetTest { + EX_NET [label=".Net samples"]; + + label = "Examples\n(-DBUILD_TESTING=ON)"; + } + PKG_NET -> EX_NET; + + OR_SRC -> OR_WNET [label="swig", color=chocolate]; + OR_SRC -> OR_NET [label="swig", color=chocolate]; + OR_WNET -> OR_NET; + OR_WNET -> PKG_NET_RT [label="dotnet package", color=darkviolet]; + PKG_NET_RT -> PKG_NET [color=darkviolet]; + OR_NET -> PKG_NET [label="dotnet package", color=darkviolet]; + + color=darkviolet; + label = ".Net\n(-DBUILD_DOTNET=ON)"; + } // clusterNet + + color=royalblue; + label = "OR-Tools (CMake)"; + } // clusterOR +} // digraph +@enddot +// vim tw:0 diff --git a/libs/or-tools-stable/cmake/doc/cmake.svg b/libs/or-tools-stable/cmake/doc/cmake.svg new file mode 100644 index 0000000000000000000000000000000000000000..10de70991b12edddc6bcc4a171f3df079e2bbe73 --- /dev/null +++ b/libs/or-tools-stable/cmake/doc/cmake.svg @@ -0,0 +1,733 @@ + + + + + + +CMake + + +clusterPrerequisite + +Prerequisite + + +clusterOR + +OR-Tools (CMake) + + +clusterDeps + +Dependencies +(-DBUILD_DEPS=ON) + + +clusterZLIB + +madler/zlib.git + cmake patch + + +clusterAbsl + +abseil/abseil-cpp.git + + +clusterGFlags + +gflags/gflags.git + + +clusterGLog + +google/glog.git + + +clusterProtobuf + +protocolbuffers/protobuf.git + + +clusterCoinOR + +Coin-OR Solver +(-DUSE_COINOR=ON) + + +clusterCoinUtils + +mizux/CoinUtils.git + + +clusterOsi + +mizux/Osi.git + + +clusterClp + +mizux/Clp.git + + +clusterCgl + +mizux/Cgl.git + + +clusterCbc + +mizux/Cbc.git + + +clusterCXX + +C++ +(-DBUILD_CXX=ON) + + +clusterCXXTest + +Examples +(-DBUILD_TESTING=ON) + + +clusterPython + +Python +(-DBUILD_PYTHON=ON) + + +clusterPythonTest + +Examples +(-DBUILD_TESTING=ON) + + +clusterJava + +Java +(-DBUILD_JAVA=ON) + + +clusterJavaTest + +Examples +(-DBUILD_TESTING=ON) + + +clusterNet + +.Net +(-DBUILD_DOTNET=ON) + + +clusterNetTest + +Examples +(-DBUILD_TESTING=ON) + + + +CM + + + + +CMake + + + +SWIG + + + + +Swig +(Unix) + + + +CM->SWIG + + + +PY + + + + +Python +(3.6+) + + + +SWIG->PY + + + +JV + + + + +Java +(openJDK 8+) + + + +SWIG->JV + + + +DN + + + + +.Net Core SDK +(3.1) + + + +SWIG->DN + + + +FS + + + + +.Net F# + + + +DN->FS + + + +ZLIB + +ZLIB::ZLIB + + + +Protobuf + +protobuf::libprotobuf + + + +ZLIB->Protobuf + + + + + +OR_SRC + +OR-Tools src +ortools/... + + + +ZLIB->OR_SRC + + + + + +Absl + +absl::absl_* + + + +Absl->Protobuf + + + + + +Absl->OR_SRC + + + + + +GFlags + +gflags::gflags + + + +GLog + +glog::glog + + + +GFlags->GLog + + + + + +GFlags->OR_SRC + + + + + +GLog->OR_SRC + + + + + +Protobuf->OR_SRC + + + + + +CoinUtils + +Coin::CoinUtils + + + +Osi + +Coin::Osi + + + +CoinUtils->Osi + + + + + +Clp + +Coin::Clp + + + +CoinUtils->Clp + + + + + +OsiClp + +Coin::OsiClp + + + +CoinUtils->OsiClp + + + + + +Cgl + +Coin::Cgl + + + +CoinUtils->Cgl + + + + + +Cbc + +Coin::Cbc + + + +CoinUtils->Cbc + + + + + +OsiCbc + +Coin::OsiCbc + + + +CoinUtils->OsiCbc + + + + + +Osi->Clp + + + + + +Osi->OsiClp + + + + + +Osi->Cgl + + + + + +Osi->Cbc + + + + + +Osi->OsiCbc + + + + + +Clp->OsiClp + + + + + +ClpSolver + +Coin::ClpSolver + + + +Clp->ClpSolver + + + + + +Clp->Cbc + + + + + +OsiClp->Cgl + + + + + +ClpSolver->OR_SRC + + + + + +Cgl->Cbc + + + + + +Cbc->OsiCbc + + + + + +CbcSolver + +Coin::CbcSolver + + + +Cbc->CbcSolver + + + + + +CbcSolver->OR_SRC + + + + + +SWIG_WIN + +swigwin +(Windows) + + + +OR_CPP + +ortools::ortools + + + +OR_SRC->OR_CPP + + + + + +OR_WPY + + + +C++ Python wrappers + + + +OR_SRC->OR_WPY + + +swig + + + +OR_PY + + + +Python files + + + +OR_SRC->OR_PY + + +swig + + + +OR_WJAVA + + + +C++ Java wrappers + + + +OR_SRC->OR_WJAVA + + +swig + + + +OR_JAVA + + + +Java files + + + +OR_SRC->OR_JAVA + + +swig + + + +OR_WNET + + + +C++ .Net wrappers + + + +OR_SRC->OR_WNET + + +swig + + + +OR_NET + + + +.Net files + + + +OR_SRC->OR_NET + + +swig + + + +PKG_CPP + + + + +CMake Package + + + +OR_CPP->PKG_CPP + + +install + + + +EX_CPP + +C++ samples + + + +PKG_CPP->EX_CPP + + + + + +OR_WPY->OR_PY + + + + + +PKG_PY + + + + +Wheel package + + + +OR_PY->PKG_PY + + +python setup.py + + + +EX_PY + +Python samples + + + +PKG_PY->EX_PY + + + + + +OR_WJAVA->OR_JAVA + + + + + +PKG_JAVA + + + + +Maven package + + + +OR_JAVA->PKG_JAVA + + +maven (WIP) + + + +EX_JAVA + +Java samples + + + +PKG_JAVA->EX_JAVA + + + + + +OR_WNET->OR_NET + + + + + +PKG_NET_RT + + + + +Nuget runtime package +Google.OrTools.runtime.rid.nupkg + + + +OR_WNET->PKG_NET_RT + + +dotnet package + + + +PKG_NET + + + + +Nuget package +Google.OrTools.nupkg + + + +OR_NET->PKG_NET + + +dotnet package + + + +PKG_NET_RT->PKG_NET + + + + + +EX_NET + +.Net samples + + + +PKG_NET->EX_NET + + + + + diff --git a/libs/or-tools-stable/cmake/doc/cpp.md b/libs/or-tools-stable/cmake/doc/cpp.md new file mode 100644 index 0000000000000000000000000000000000000000..bcac291a6fe0539ba17c11d5b1baafb3fcd11d46 --- /dev/null +++ b/libs/or-tools-stable/cmake/doc/cpp.md @@ -0,0 +1,66 @@ +| Linux | macOS | Windows | +|-------|-------|---------| +| [![Status][cpp_linux_svg]][cpp_linux_link] | [![Status][cpp_osx_svg]][cpp_osx_link] | [![Status][cpp_win_svg]][cpp_win_link] | + + +[cpp_linux_svg]: https://github.com/google/or-tools/workflows/C++%20Linux%20CI/badge.svg +[cpp_linux_link]: https://github.com/google/or-tools/actions?query=workflow%3A"C%2B%2B+Linux+CI" +[cpp_osx_svg]: https://github.com/google/or-tools/workflows/C++%20MacOS%20CI/badge.svg +[cpp_osx_link]: https://github.com/google/or-tools/actions?query=workflow%3A"C%2B%2B+MacOS+CI" +[cpp_win_svg]: https://github.com/google/or-tools/workflows/C++%20Windows%20CI/badge.svg +[cpp_win_link]: https://github.com/google/or-tools/actions?query=workflow%3A"C%2B%2B+Windows+CI" + +# Introduction +For building OR-Tools as a CMake standalone project, you can read the following instructions. + +This project should run on GNU/Linux, MacOS and Windows. + +# C++ Project Build +1. Get the source code and change to it. +```sh +git clone https://github.com/google/or-tools.git +cd or-tools +``` + +2. Run CMake to configure the build tree. +```sh +cmake -S. -Bbuild -DCMAKE_BUILD_TYPE=Release -DBUILD_DEPS=ON +``` +note: To get the list of available generators (e.g. Visual Studio), use `-G ""` + +3. Afterwards, generated files can be used to compile the project. +```sh +cmake --build build --config Release -v +``` + +4. Test the build software (optional). +```sh +cmake --build build --target test +``` + +5. Install the built files (optional). +```sh +cmake --build build --target install +``` + +# Testing +To list tests: +```sh +cd build +ctest -N +``` + +To only run C++ tests +```sh +cd build +ctest -R "cxx_.*" +``` + +# Technical Notes +## Managing RPATH +Since we want to use the [CMAKE_BINARY_DIR](https://cmake.org/cmake/help/latest/variable/CMAKE_BINARY_DIR.html) to generate the wrapper package (e.g. python wheel package) as well as be able to test from the build directory. +We need to enable: +```cmake +set(CMAKE_BUILD_WITH_INSTALL_RPATH TRUE) +``` +And have a finely tailored rpath for each library. diff --git a/libs/or-tools-stable/cmake/doc/deps.dot b/libs/or-tools-stable/cmake/doc/deps.dot new file mode 100644 index 0000000000000000000000000000000000000000..1992af27ce0abc2e18396d2283f7e67ba211d4cc --- /dev/null +++ b/libs/or-tools-stable/cmake/doc/deps.dot @@ -0,0 +1,114 @@ +@startdot +digraph CMakeDeps { + //rankdir=BT; + rankdir=TD; + node [shape=box, style="rounded,filled", color=royalblue, fillcolor=royalblue]; + + subgraph clusterZLIB { + ZLIB [label="ZLIB::ZLIB"]; + + color=royalblue; + label = "madler/zlib.git + cmake patch"; + } + + subgraph clusterAbsl { + Absl [label="absl::absl_*"]; + + color=royalblue; + label = "abseil/abseil-cpp.git"; + } + + subgraph clusterGFlags { + GFlags [label="gflags::gflags"]; + + color=royalblue; + label = "gflags/gflags.git"; + } + + subgraph clusterGLog { + GLog [label="glog::glog"]; + + color=royalblue; + label = "google/glog.git"; + } + + subgraph clusterProtobuf { + Protobuf [label="protobuf::libprotobuf"]; + Protoc [label="protobuf::protoc", shape=component]; + + color=royalblue; + label = "protocolbuffers/protobuf.git"; + } + + subgraph clusterCoinOR { + subgraph clusterCoinUtils { + CoinUtils [label="Coin::CoinUtils"]; + + color=royalblue; + label = "CoinUtils.git"; + } + subgraph clusterOsi { + Osi [label="Coin::Osi"]; + + color=royalblue; + label = "Osi.git"; + } + subgraph clusterClp { + Clp [label="Coin::Clp"]; + OsiClp [label="Coin::OsiClp"]; + ClpSolver [label="Coin::ClpSolver"]; + + color=royalblue; + label = "Clp.git"; + } + subgraph clusterCgl { + Cgl [label="Coin::Cgl"]; + + color=royalblue; + label = "Cgl.git"; + } + subgraph clusterCbc { + Cbc [label="Coin::Cbc"]; + OsiCbc [label="Coin::OsiCbc"]; + CbcSolver [label="Coin::CbcSolver"]; + + color=royalblue; + label = "Cbc.git"; + } + + CoinUtils -> Osi; + + CoinUtils -> Clp; + Osi -> Clp; + + CoinUtils -> OsiClp; + Osi -> OsiClp; + Clp -> OsiClp; + + Clp -> ClpSolver; + + CoinUtils -> Cgl; + Osi -> Cgl; + OsiClp -> Cgl; + + CoinUtils -> Cbc; + Osi -> Cbc; + Clp -> Cbc; + Cgl -> Cbc; + + CoinUtils -> OsiCbc; + Osi -> OsiCbc; + Cbc -> OsiCbc; + + Cbc -> CbcSolver; + color=royalblue; + label = "-DUSE_COINOR=ON AND -DBUILD_DEPS=ON"; + } + // inter deps + ZLIB -> Protobuf; + ZLIB -> Cbc; + Absl -> Protobuf; + GFlags -> GLog; +} +@enddot +# vim tw:0 diff --git a/libs/or-tools-stable/cmake/doc/deps.svg b/libs/or-tools-stable/cmake/doc/deps.svg new file mode 100644 index 0000000000000000000000000000000000000000..652ebcbc52f28c25c1a8fb56781509b03a72edc2 --- /dev/null +++ b/libs/or-tools-stable/cmake/doc/deps.svg @@ -0,0 +1,292 @@ + + + + + + +CMakeDeps + + +clusterZLIB + +madler/zlib.git + cmake patch + + +clusterAbsl + +abseil/abseil-cpp.git + + +clusterGFlags + +gflags/gflags.git + + +clusterGLog + +google/glog.git + + +clusterProtobuf + +protocolbuffers/protobuf.git + + +clusterCoinOR + +-DUSE_COINOR=ON AND -DBUILD_DEPS=ON + + +clusterCoinUtils + +CoinUtils.git + + +clusterOsi + +Osi.git + + +clusterClp + +Clp.git + + +clusterCgl + +Cgl.git + + +clusterCbc + +Cbc.git + + + +ZLIB + +ZLIB::ZLIB + + + +Protobuf + +protobuf::libprotobuf + + + +ZLIB->Protobuf + + + + + +Cbc + +Coin::Cbc + + + +ZLIB->Cbc + + + + + +Absl + +absl::absl_* + + + +Absl->Protobuf + + + + + +GFlags + +gflags::gflags + + + +GLog + +glog::glog + + + +GFlags->GLog + + + + + +Protoc + + + +protobuf::protoc + + + +CoinUtils + +Coin::CoinUtils + + + +Osi + +Coin::Osi + + + +CoinUtils->Osi + + + + + +Clp + +Coin::Clp + + + +CoinUtils->Clp + + + + + +OsiClp + +Coin::OsiClp + + + +CoinUtils->OsiClp + + + + + +Cgl + +Coin::Cgl + + + +CoinUtils->Cgl + + + + + +CoinUtils->Cbc + + + + + +OsiCbc + +Coin::OsiCbc + + + +CoinUtils->OsiCbc + + + + + +Osi->Clp + + + + + +Osi->OsiClp + + + + + +Osi->Cgl + + + + + +Osi->Cbc + + + + + +Osi->OsiCbc + + + + + +Clp->OsiClp + + + + + +ClpSolver + +Coin::ClpSolver + + + +Clp->ClpSolver + + + + + +Clp->Cbc + + + + + +OsiClp->Cgl + + + + + +Cgl->Cbc + + + + + +Cbc->OsiCbc + + + + + +CbcSolver + +Coin::CbcSolver + + + +Cbc->CbcSolver + + + + + diff --git a/libs/or-tools-stable/cmake/doc/docker.dot b/libs/or-tools-stable/cmake/doc/docker.dot new file mode 100644 index 0000000000000000000000000000000000000000..f03b3058cd41dc97de8e5ceca54c2a72817982a1 --- /dev/null +++ b/libs/or-tools-stable/cmake/doc/docker.dot @@ -0,0 +1,85 @@ +@startdot +digraph DockerDeps { + //rankdir=BT; + rankdir=TD; + node [shape=cylinder, style="rounded,filled", color=black, fillcolor=royalblue]; + DISTRO_IMG [label=":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/cmake:_base\nbase"]; + SWIG_IMG [label="ortools/cmake:_swig\nswig"]; + + BASE_IMG -> SWIG_IMG; + + color=royalblue; + label = "docker//Dockerfile"; + } + DISTRO_IMG -> BASE_IMG; + PKG -> BASE_IMG [label="install", style="dashed"]; + +// LANG + subgraph clusterLang { + LANGENV_IMG [label="ortools/cmake:__env\nenv"]; + LANGDEVEL_IMG [label="ortools/cmake:__devel\ndevel"]; + LANGBUILD_IMG [label="ortools/cmake:__build\nbuild"]; + LANGTEST_IMG [label="ortools/cmake:__test\ntest"]; + LANGINSTALLENV_IMG [label="ortools/cmake:__install_env\ninstall_env"]; + LANGINSTALLDEVEL_IMG [label="ortools/cmake:__install_devel\ninstall_devel"]; + LANGINSTALLBUILD_IMG [label="ortools/cmake:__install_build\ninstall_build"]; + LANGINSTALLTEST_IMG [label="ortools/cmake:__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//.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__env.tar"]; + LANGDEVEL_TAR [label="docker__devel.tar"]; + LANGBUILD_TAR [label="docker__build.tar"]; + LANGTEST_TAR [label="docker__test.tar"]; + LANGINSTALLENV_TAR [label="docker__install_env.tar"]; + LANGINSTALLDEVEL_TAR [label="docker__install_devel.tar"]; + LANGINSTALLBUILD_TAR [label="docker__install_build.tar"]; + LANGINSTALLTEST_TAR [label="docker__install_test.tar"]; + + edge [color=red]; + BASE_IMG -> BASE_TAR [label="make save__base"]; + SWIG_IMG -> SWIG_TAR [label="make save__swig"]; + LANGENV_IMG -> LANGENV_TAR [label="make save___env"]; + LANGDEVEL_IMG -> LANGDEVEL_TAR [label="make save___devel"]; + LANGBUILD_IMG -> LANGBUILD_TAR [label="make save___build"]; + LANGTEST_IMG -> LANGTEST_TAR [label="make save___test"]; + LANGINSTALLENV_IMG -> LANGINSTALLENV_TAR [label="make save___install_env"]; + LANGINSTALLDEVEL_IMG -> LANGINSTALLDEVEL_TAR [label="make save___install_devel"]; + LANGINSTALLBUILD_IMG -> LANGINSTALLBUILD_TAR [label="make save___install_build"]; + LANGINSTALLTEST_IMG -> LANGINSTALLTEST_TAR [label="make save___install_test"]; + + color=royalblue; + label = "cache//"; + } +} +@enddot diff --git a/libs/or-tools-stable/cmake/doc/docker.svg b/libs/or-tools-stable/cmake/doc/docker.svg new file mode 100644 index 0000000000000000000000000000000000000000..221de3d4a1b0cc389fdbb362dd1de126bf982fbd --- /dev/null +++ b/libs/or-tools-stable/cmake/doc/docker.svg @@ -0,0 +1,426 @@ + + + + + + +DockerDeps + + +clusterDockerfile + +docker/<distro>/Dockerfile + + +clusterLang + +docker/<distro>/<lang>.Dockerfile + + +clusterCache + +cache/<distro>/ + + + +DISTRO_IMG + + +<distro>:latest + + + +BASE_IMG + + +ortools/cmake:<distro>_base +base + + + +DISTRO_IMG->BASE_IMG + + + + + +PKG + + + + +Build packages +e.g. cmake, g++ + + + +PKG->BASE_IMG + + +install + + + +PYPKG + + + + +Python packages +e.g. python-dev + + + +LANGENV_IMG + + +ortools/cmake:<distro>_<lang>_env +env + + + +PYPKG->LANGENV_IMG + + +install + + + +JAVAPKG + + + + +Java packages +e.g. openjdk + + + +JAVAPKG->LANGENV_IMG + + +install + + + +DOTNETPKG + + + + +.Net packages +e.g. dotnet-cli + + + +DOTNETPKG->LANGENV_IMG + + +install + + + +SRC + +git repo + + + +LANGDEVEL_IMG + + +ortools/cmake:<distro>_<lang>_devel +devel + + + +SRC->LANGDEVEL_IMG + + +copy + + + +SAMPLE + +sample + + + +LANGINSTALLDEVEL_IMG + + +ortools/cmake:<distro>_<lang>_install_devel +install_devel + + + +SAMPLE->LANGINSTALLDEVEL_IMG + + +copy + + + +SWIG_IMG + + +ortools/cmake:<distro>_swig +swig + + + +BASE_IMG->SWIG_IMG + + + + + +BASE_TAR + + + +docker_base.tar + + + +BASE_IMG->BASE_TAR + + +make save_<distro>_base + + + +SWIG_IMG->LANGENV_IMG + + + + + +SWIG_TAR + + + +docker_swig.tar + + + +SWIG_IMG->SWIG_TAR + + +make save_<distro>_swig + + + +LANGENV_IMG->LANGDEVEL_IMG + + + + + +LANGINSTALLENV_IMG + + +ortools/cmake:<distro>_<lang>_install_env +install_env + + + +LANGENV_IMG->LANGINSTALLENV_IMG + + + + + +LANGENV_TAR + + + +docker_<lang>_env.tar + + + +LANGENV_IMG->LANGENV_TAR + + +make save_<distro>_<lang>_env + + + +LANGBUILD_IMG + + +ortools/cmake:<distro>_<lang>_build +build + + + +LANGDEVEL_IMG->LANGBUILD_IMG + + + + + +LANGDEVEL_TAR + + + +docker_<lang>_devel.tar + + + +LANGDEVEL_IMG->LANGDEVEL_TAR + + +make save_<distro>_<lang>_devel + + + +LANGTEST_IMG + + +ortools/cmake:<distro>_<lang>_test +test + + + +LANGBUILD_IMG->LANGTEST_IMG + + + + + +LANGBUILD_IMG->LANGINSTALLENV_IMG + + +copy install + + + +LANGBUILD_TAR + + + +docker_<lang>_build.tar + + + +LANGBUILD_IMG->LANGBUILD_TAR + + +make save_<distro>_<lang>_build + + + +LANGTEST_TAR + + + +docker_<lang>_test.tar + + + +LANGTEST_IMG->LANGTEST_TAR + + +make save_<distro>_<lang>_test + + + +LANGINSTALLENV_IMG->LANGINSTALLDEVEL_IMG + + + + + +LANGINSTALLENV_TAR + + + +docker_<lang>_install_env.tar + + + +LANGINSTALLENV_IMG->LANGINSTALLENV_TAR + + +make save_<distro>_<lang>_install_env + + + +LANGINSTALLBUILD_IMG + + +ortools/cmake:<distro>_<lang>_install_build +install_build + + + +LANGINSTALLDEVEL_IMG->LANGINSTALLBUILD_IMG + + + + + +LANGINSTALLDEVEL_TAR + + + +docker_<lang>_install_devel.tar + + + +LANGINSTALLDEVEL_IMG->LANGINSTALLDEVEL_TAR + + +make save_<distro>_<lang>_install_devel + + + +LANGINSTALLTEST_IMG + + +ortools/cmake:<distro>_<lang>_install_test +install_test + + + +LANGINSTALLBUILD_IMG->LANGINSTALLTEST_IMG + + + + + +LANGINSTALLBUILD_TAR + + + +docker_<lang>_install_build.tar + + + +LANGINSTALLBUILD_IMG->LANGINSTALLBUILD_TAR + + +make save_<distro>_<lang>_install_build + + + +LANGINSTALLTEST_TAR + + + +docker_<lang>_install_test.tar + + + +LANGINSTALLTEST_IMG->LANGINSTALLTEST_TAR + + +make save_<distro>_<lang>_install_test + + + diff --git a/libs/or-tools-stable/cmake/doc/dotnet.md b/libs/or-tools-stable/cmake/doc/dotnet.md new file mode 100644 index 0000000000000000000000000000000000000000..6aa08724db06ab3f4966cd1f7fe73b35a279c05f --- /dev/null +++ b/libs/or-tools-stable/cmake/doc/dotnet.md @@ -0,0 +1,92 @@ +| Linux | macOS | Windows | +|-------|-------|---------| +| [![Status][dotnet_linux_svg]][dotnet_linux_link] | [![Status][dotnet_osx_svg]][dotnet_osx_link] | [![Status][dotnet_win_svg]][dotnet_win_link] | + +[dotnet_linux_svg]: https://github.com/google/or-tools/workflows/.Net%20Linux%20CI/badge.svg?branch=master +[dotnet_linux_link]: https://github.com/google/or-tools/actions?query=workflow%3A".Net+Linux+CI" +[dotnet_osx_svg]: https://github.com/google/or-tools/workflows/.Net%20MacOS%20CI/badge.svg?branch=master +[dotnet_osx_link]: https://github.com/google/or-tools/actions?query=workflow%3A".Net+MacOS+CI" +[dotnet_win_svg]: https://github.com/google/or-tools/workflows/.Net%20Windows%20CI/badge.svg?branch=master +[dotnet_win_link]: https://github.com/google/or-tools/actions?query=workflow%3A".Net+Windows+CI" + +# Introduction +Try to build a .NetStandard2.0 native (for win-x64, linux-x64 and osx-x64) nuget multi package using [`dotnet/cli`](https://github.com/dotnet/cli) and the *new* .csproj format. + +# Build the Binary Packages +To build the .Net nuget packages, simply run: +```sh +cmake -S. -Bbuild -DBUILD_DOTNET=ON +cmake --build build --target dotnet_package -v +``` +note: Since `dotnet_package` is in target `all`, you can also ommit the +`--target` option. + +# Testing +To list tests: +```sh +cd build +ctest -N +``` + +To only run .NET tests: +```sh +cd build +ctest -R "dotnet_.*" +``` + +# Technical Notes +First you should take a look at the [ortools/dotnet/README.md](../../ortools/dotnet/README.md) to understand the layout. +Here I will only focus on the CMake/SWIG tips and tricks. + +## Build directory layout +Since .Net use a `.csproj` project file to orchestrate everything we need to +generate them and have the following layout: + +```shell +/dotnet +── Directory.Build.props +├── orLogo.png +├── ortools +│   ├── algorithms +│   │   ├── *.cs +│   │   ├── knapsack_solverCSHARP_wrap.cxx +│   │   ├── operations_research_algorithms.cs +│   │   └── operations_research_algorithmsPINVOKE.cs +│   ├── constraint_solver +│   │   ├── *.cs +│   │   ├── operations_research_constraint_solver.cs +│   │   ├── operations_research_constraint_solverPINVOKE.cs +│   │   ├── routingCSHARP_wrap.cxx +│   │   └── routingCSHARP_wrap.h +│   ├── graph +│   │   ├── *.cs +│   │   ├── graphCSHARP_wrap.cxx +│   │   ├── operations_research_graph.cs +│   │   └── operations_research_graphPINVOKE.cs +│   ├── linear_solver +│   │   ├── *.cs +│   │   ├── LinearSolver.pb.cs +│   │   ├── operations_research_linear_solver.cs +│   │   └── operations_research_linear_solverPINVOKE.cs +│   ├── sat +│   │   ├── *.cs +│   │   ├── BooleanProblem.pb.cs +│   │   ├── CpModel.pb.cs +│   │   ├── SatParameters.pb.cs +│   │   ├── operations_research_sat.cs +│   │   ├── operations_research_satPINVOKE.cs +│   │   ├── satCSHARP_wrap.cxx +│   │   └── satCSHARP_wrap.h +│   └── util +│   ├── *.cs +│   ├── operations_research_utilPINVOKE.cs +│   ├── sorted_interval_listCSHARP_wrap.cxx +│   └── sorted_interval_listCSHARP_wrap.h +├── Google.OrTools.runtime.linux-x64 +│   └── Google.OrTools.runtime.linux-x64.csproj +├── Google.OrTools +│   └── Google.OrTools.csproj +├── replace.cmake +└── replace_runtime.cmake +``` +src: `tree build/dotnet --prune -I "obj|bin"` diff --git a/libs/or-tools-stable/cmake/doc/generate_image.sh b/libs/or-tools-stable/cmake/doc/generate_image.sh new file mode 100755 index 0000000000000000000000000000000000000000..7d125b4b01863fc41bf469a7c30adc1dd6e5a239 --- /dev/null +++ b/libs/or-tools-stable/cmake/doc/generate_image.sh @@ -0,0 +1,10 @@ +#!/usr/bin/env bash +set -euxo pipefail + +# Check plantuml is in PATH +command -v plantuml + +rm -f "*.svg" +for i in *.dot; do + plantuml -Tsvg "$i"; +done diff --git a/libs/or-tools-stable/cmake/doc/java.md b/libs/or-tools-stable/cmake/doc/java.md new file mode 100644 index 0000000000000000000000000000000000000000..70d3d1196fb2e2a846186e22e2d89f69ea2a1ec5 --- /dev/null +++ b/libs/or-tools-stable/cmake/doc/java.md @@ -0,0 +1,92 @@ +| Linux | macOS | Windows | +|-------|-------|---------| +| [![Status][java_linux_svg]][java_linux_link] | [![Status][java_osx_svg]][java_osx_link] | [![Status][java_win_svg]][java_win_link] | + +[java_linux_svg]: https://github.com/google/or-tools/workflows/Java%20Linux%20CI/badge.svg?branch=master +[java_linux_link]: https://github.com/google/or-tools/actions?query=workflow%3A"Java+Linux+CI" +[java_osx_svg]: https://github.com/google/or-tools/workflows/Java%20MacOS%20CI/badge.svg?branch=master +[java_osx_link]: https://github.com/google/or-tools/actions?query=workflow%3A"Java+MacOS+CI" +[java_win_svg]: https://github.com/google/or-tools/workflows/Java%20Windows%20CI/badge.svg?branch=master +[java_win_link]: https://github.com/google/or-tools/actions?query=workflow%3A"Java+Windows+CI" + +# Introduction + + +# Build the Binary Package +To build the java maven packages, simply run: +```sh +cmake -S. -Bbuild -DBUILD_JAVA=ON +cmake --build build --target java_package -v +``` +note: Since `java_package` is in target `all`, you can also ommit the +`--target` option. + +# Testing +To list tests: +```sh +cd build +ctest -N +``` + +To only run Java tests: +```sh +cd build +ctest -R "java_.*" +``` + +# Technical Notes +First you should take a look at the [ortools/java/README.md](../../ortools/java/README.md) to understand the layout. +Here I will only focus on the CMake/SWIG tips and tricks. + +## Build directory layout +Since Java use the directory layout and we want to use the [CMAKE_BINARY_DIR](https://cmake.org/cmake/help/latest/variable/CMAKE_BINARY_DIR.html) +to generate the Java binary package. + +We want this layout: +```shell +/java +├── ortools-linux-x86-64 +│   ├── pom.xml +│   └── src/main/resources +│   └── linux-x86-64 +│   ├── libjniortools.so +│   └── libortools.so +├── ortools-java +│   ├── pom.xml +│   └── src/main/java +│   └── com/google/ortools +│   ├── Loader.java +│   ├── linearsolver +│   │   ├── LinearSolver.java +│   │   └── ... +│   ├── constraintsolver +│   │   ├── ConstraintSolver.java +│   │   └── ... +│   ├── ... +│   └── sat +│   ├── CpModel.java +│   └── ... +├── constraint_solver +│   └── Tsp +│ ├── pom.xml +│    └── src/main/java +│    └── com/google/ortools +│    └── Tsp.java +``` +src: `tree build/java --prune -U -P "*.java|*.xml|*.so*" -I "target"` + +## Managing SWIG generated files +You can use `CMAKE_SWIG_DIR` to change the output directory for the `.java` file e.g.: +```cmake +set(CMAKE_SWIG_OUTDIR ${CMAKE_CURRENT_BINARY_DIR}/..) +``` +And you can use `CMAKE_LIBRARY_OUTPUT_DIRECTORY` to change the output directory for the `.so` file e.g.: +```cmake +set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/..) +``` +[optional]You can use `SWIG_OUTFILE_DIR` to change the output directory for the `.cxx` file e.g.: +```cmake +set(SWIG_OUTFILE_DIR ${CMAKE_CURRENT_BINARY_DIR}/..) +``` +Then you only need to create a `pom.xml` file in `build/java` to be able to use +the build directory to generate the Java package. diff --git a/libs/or-tools-stable/cmake/doc/python.md b/libs/or-tools-stable/cmake/doc/python.md new file mode 100644 index 0000000000000000000000000000000000000000..361555c77c1bca8e2bfea78e46a8779985d33dc8 --- /dev/null +++ b/libs/or-tools-stable/cmake/doc/python.md @@ -0,0 +1,106 @@ +| Linux | macOS | Windows | +|-------|-------|---------| +| [![Status][python_linux_svg]][python_linux_link] | [![Status][python_osx_svg]][python_osx_link] | [![Status][python_win_svg]][python_win_link] | + +[python_linux_svg]: https://github.com/google/or-tools/workflows/Python%20Linux%20CI/badge.svg?branch=master +[python_linux_link]: https://github.com/google/or-tools/actions?query=workflow%3A"Python+Linux+CI" +[python_osx_svg]: https://github.com/google/or-tools/workflows/Python%20MacOS%20CI/badge.svg?branch=master +[python_osx_link]: https://github.com/google/or-tools/actions?query=workflow%3A"Python+MacOS+CI" +[python_win_svg]: https://github.com/google/or-tools/workflows/Python%20Windows%20CI/badge.svg?branch=master +[python_win_link]: https://github.com/google/or-tools/actions?query=workflow%3A"Python+Windows+CI" + +# Introduction +To be compliant with [PEP513](https://www.python.org/dev/peps/pep-0513/#the-manylinux1-policy) a python package should embbed all its C++ shared libraries. + +Creating a Python native package containing all `.py` and `.so` (with good rpath/loaderpath) is not so easy... + +# Build the Binary Package +To build the Python wheel package, simply run: +```sh +cmake -S. -Bbuild -DBUILD_PYTHON=ON +cmake --build build --target python_package -v +``` +note: Since `python_package` is in target `all`, you can also ommit the +`--target` option. + +# Testing +To list tests: +```sh +cd build +ctest -N +``` + +To only run Python tests: +```sh +cd build +ctest -R "python_.*" +``` + +# Technical Notes +First you should take a look at the [ortools/python/README.md](../../ortools/python/README.md) to understand the layout. +Here I will only focus on the CMake/SWIG tips and tricks. + +## Build directory layout +Since Python use the directory name where `__init__.py` file is located and we +want to use the [CMAKE_BINARY_DIR](https://cmake.org/cmake/help/latest/variable/CMAKE_BINARY_DIR.html) +to generate the Python binary package. + +We want this layout: +```shell +/python +├── setup.py +└── ortools + ├── __init__.py + ├── algorithms + │   ├── __init__.py + │   ├── _pywrap.so + │   └── pywrap.py + ├── graph + │   ├── __init__.py + │   ├── pywrapgraph.py + │   └── _pywrapgraph.so + └── .libs + ├── libXXX.so.1.0 + └── libXXX.so.1.0 +``` +src: `tree build --prune -U -P "*.py|*.so*" -I "build"` + +note: On UNIX you always need `$ORIGIN/../../${PROJECT_NAME}/.libs` since `_pywrapXXX.so` will depend on `libortools.so`. +note: On APPLE you always need `"@loader_path;@loader_path/../../${PROJECT_NAME}/.libs` since `_pywrapXXX.so` will depend on `libortools.dylib`. +note: on Windows since we are using static libraries we won't have the `.libs` directory... + +So we also need to create few `__init__.py` files to be able to use the build directory to generate the Python package. + +## Why on APPLE lib must be .so +Actually, the cpython code responsible for loading native libraries expect `.so` +on all UNIX platforms. + +```c +const char *_PyImport_DynLoadFiletab[] = { +#ifdef __CYGWIN__ + ".dll", +#else /* !__CYGWIN__ */ + "." SOABI ".so", +#ifdef ALT_SOABI + "." ALT_SOABI ".so", +#endif + ".abi" PYTHON_ABI_STRING ".so", + ".so", +#endif /* __CYGWIN__ */ + NULL, +}; +``` +ref: https://github.com/python/cpython/blob/master/Python/dynload_shlib.c#L36-L48 + +i.e. `pywrapXXX` -> `_pywrapXXX.so` -> `libortools.dylib` + +## Why setup.py has to be generated +To avoid to put hardcoded path to SWIG `.so/.dylib` generated files, +we could use `$` to retrieve the file (and also deal with Mac/Windows suffix, and target dependencies). +In order for `setup.py` to use +[cmake generator expression](https://cmake.org/cmake/help/latest/manual/cmake-generator-expressions.7.html#informational-expressions) +(e.g. $). We need to generate it at build time (e.g. using +[add_custom_command()](https://cmake.org/cmake/help/latest/command/add_custom_command.html)). +note: This will also add automatically a dependency between the command and the TARGET ! + +todo(mizux): try to use [`file(GENERATE ...)`](https://cmake.org/cmake/help/latest/command/file.html#generate) instead. diff --git a/libs/or-tools-stable/cmake/doc/swig.md b/libs/or-tools-stable/cmake/doc/swig.md new file mode 100644 index 0000000000000000000000000000000000000000..f7763733a6f096fea24037274a031d149c881694 --- /dev/null +++ b/libs/or-tools-stable/cmake/doc/swig.md @@ -0,0 +1,177 @@ +# SWIG Wrapper Generation +Using [swig](https://github.com/swig/swig) to generate wrapper it's easy thanks to the modern +[UseSWIG](https://cmake.org/cmake/help/latest/module/UseSWIG.html) module (**CMake >= 3.14**). + +note: SWIG automatically put its target(s) in `all`, thus `cmake --build build` will also call +swig and generate `_module.so`. + +# Policy +UseSWIG is impacted by two policies: +* [CMP0078](https://cmake.org/cmake/help/latest/policy/CMP0078.html):UseSWIG generates standard target names (CMake 3.13+). +* [CMP0086](https://cmake.org/cmake/help/latest/policy/CMP0086.html): UseSWIG honors `SWIG_MODULE_NAME` via `-module` flag (CMake 3.14+). + +That's why I recommnend to use CMake >= 3.14 with both policies set to new for +SWIG development. + +# int64_t Management +When working on a `k8` (aka `x86_64`) architecture, you may face issue with `int64_t` +and `uint64_t` management. + +First `long long` and `long int` are **different** types and `int64_t` is just a +typedef on one of them... + +## Linux +On Linux we have: +``` +sizeof(long long): 8 +sizeof(long int): 8 +sizeof(int64_t): 8 +``` + +### Gcc +First try to find where and how the compiler define `int64_t` and `uint64_t`. +```sh +grepc -rn "typedef.*int64_t;" /lib/gcc +/lib/gcc/x86_64-linux-gnu/9/include/stdint-gcc.h:43:typedef __INT64_TYPE__ int64_t; +/lib/gcc/x86_64-linux-gnu/9/include/stdint-gcc.h:55:typedef __UINT64_TYPE__ uint64_t; +``` +So we need to find this compiler macro definition +```sh +gcc -dM -E -x c /dev/null | grep __INT64 +#define __INT64_C(c) c ## L +#define __INT64_MAX__ 0x7fffffffffffffffL +#define __INT64_TYPE__ long int + +gcc -dM -E -x c /dev/null | grep __UINT64 +#define __UINT64_C(c) c ## UL +#define __UINT64_MAX__ 0xffffffffffffffffUL +#define __UINT64_TYPE__ long unsigned int +``` + +### Clang +```sh +clang -dM -E -x c++ /dev/null | grep INT64_TYPE +#define __INT64_TYPE__ long int +#define __UINT64_TYPE__ long unsigned int +``` + +Clang, GNU compilers: +`-dM` dumps a list of macros. +`-E` prints results to stdout instead of a file. +`-x c` and `-x c++` select the programming language when using a file without a filename extension, such as `/dev/null` + +Ref: https://web.archive.org/web/20190803041507/http://nadeausoftware.com/articles/2011/12/c_c_tip_how_list_compiler_predefined_macros + +## MacOS +On Catalina 10.15 we have: +``` +sizeof(long long): 8 +sizeof(long int): 8 +sizeof(int64_t): 8 +``` + +### Clang +```sh +clang -dM -E -x c++ /dev/null | grep INT64_TYPE +#define __INT64_TYPE__ long long int +#define __UINT64_TYPE__ long long unsigned int +``` +with: +`-dM` dumps a list of macros. +`-E` prints results to stdout instead of a file. +`-x c` and `-x c++` select the programming language when using a file without a filename extension, such as `/dev/null` + +Ref: https://web.archive.org/web/20190803041507/http://nadeausoftware.com/articles/2011/12/c_c_tip_how_list_compiler_predefined_macros + +## Windows +Contrary to macOS and Linux, Windows 64bits (x86_64) try hard to keep compatibility, so we have: +``` +sizeof(long int): 4 +sizeof(long long): 8 +sizeof(int64_t): 8 +``` + +### Visual Studio 2019 +Thus, in `stdint.h` we have: +```cpp +#if _VCRT_COMPILER_PREPROCESSOR + +typedef signed char int8_t; +typedef short int16_t; +typedef int int32_t; +typedef long long int64_t; +typedef unsigned char uint8_t; +typedef unsigned short uint16_t; +typedef unsigned int uint32_t; +typedef unsigned long long uint64_t; +``` + +## SWIG int64_t management stuff +First, take a look at [Swig stdint.i](https://github.com/swig/swig/blob/3a329566f8ae6210a610012ecd60f6455229fe77/Lib/stdint.i#L20-L24). +So, when targeting Linux you **must use define SWIGWORDSIZE64** (i.e. `-DSWIGWORDSIZE64`) while +on macOS and Windows you **must not define it**. + +Now the bad news, even if you can control the SWIG typedef using `SWIGWORDSIZE64`, +[SWIG Java](https://github.com/swig/swig/blob/3a329566f8ae6210a610012ecd60f6455229fe77/Lib/java/java.swg#L74-L77) and +[SWIG CSHARP](https://github.com/swig/swig/blob/1e36f51346d95f8b9848e682c2eb986e9cb9b4f4/Lib/csharp/csharp.swg#L117-L120) do not take it into account for typemaps... + +So you may want to use this for Java: +```swig +#if defined(SWIGJAVA) +#if defined(SWIGWORDSIZE64) +%define PRIMITIVE_TYPEMAP(NEW_TYPE, TYPE) +%clear NEW_TYPE; +%clear NEW_TYPE *; +%clear NEW_TYPE &; +%clear const NEW_TYPE &; +%apply TYPE { NEW_TYPE }; +%apply TYPE * { NEW_TYPE * }; +%apply TYPE & { NEW_TYPE & }; +%apply const TYPE & { const NEW_TYPE & }; +%enddef // PRIMITIVE_TYPEMAP +PRIMITIVE_TYPEMAP(long int, long long); +PRIMITIVE_TYPEMAP(unsigned long int, long long); +#undef PRIMITIVE_TYPEMAP +#endif // defined(SWIGWORDSIZE64) +#endif // defined(SWIGJAVA) +``` + +and this for .Net: +```swig +#if defined(SWIGCSHARP) +#if defined(SWIGWORDSIZE64) +%define PRIMITIVE_TYPEMAP(NEW_TYPE, TYPE) +%clear NEW_TYPE; +%clear NEW_TYPE *; +%clear NEW_TYPE &; +%clear const NEW_TYPE &; +%apply TYPE { NEW_TYPE }; +%apply TYPE * { NEW_TYPE * }; +%apply TYPE & { NEW_TYPE & }; +%apply const TYPE & { const NEW_TYPE & }; +%enddef // PRIMITIVE_TYPEMAP +PRIMITIVE_TYPEMAP(long int, long long); +PRIMITIVE_TYPEMAP(unsigned long int, unsigned long long); +#undef PRIMITIVE_TYPEMAP +#endif // defined(SWIGWORDSIZE64) +#endif // defined(SWIGCSHARP) +``` + +So `int64_t` (i.e. `long int` in this case) will be correctly bind to Java/.Net primitive type `long`. + +# swig_add_library() +You can use `OUTPUT_DIR` to change the output directory for the `.py` file e.g.: +```cmake +swig_add_library(pyFoo + TYPE SHARED + LANGUAGE python + OUTPUT_DIR ${CMAKE_BINARY_DIR}/python/${PROJECT_NAME}/Foo + SOURCES foo.i) +``` + +# Doxygen +Since swig 4.0, swig can now [extract doxygen comments](http://www.swig.org/Doc4.0/Doxygen.html) from C++ to inject it in +Python and Java. + +## Csharp documentation +note: Doxygen to csharp was [planned](https://github.com/swig/swig/wiki/SWIG-4.0-Development#doxygen-documentation) but currently is not supported. diff --git a/libs/or-tools-stable/cmake/docker/alpine/Dockerfile b/libs/or-tools-stable/cmake/docker/alpine/Dockerfile new file mode 100644 index 0000000000000000000000000000000000000000..63a76c7c089932df8e4ea591ef863ba1d6977eb5 --- /dev/null +++ b/libs/or-tools-stable/cmake/docker/alpine/Dockerfile @@ -0,0 +1,11 @@ +# Create a virtual environment with all tools installed +# ref: https://hub.docker.com/_/alpine +FROM alpine:edge AS base +LABEL maintainer="corentinl@google.com" +# Install system build dependencies +ENV PATH=/usr/local/bin:$PATH +RUN apk add --no-cache git build-base linux-headers cmake +CMD [ "/bin/sh" ] + +FROM base AS swig +RUN apk add --no-cache swig diff --git a/libs/or-tools-stable/cmake/docker/alpine/cpp.Dockerfile b/libs/or-tools-stable/cmake/docker/alpine/cpp.Dockerfile new file mode 100644 index 0000000000000000000000000000000000000000..44ace7b16f93906087722405c267a966be9c59ca --- /dev/null +++ b/libs/or-tools-stable/cmake/docker/alpine/cpp.Dockerfile @@ -0,0 +1,29 @@ +FROM ortools/cmake:alpine_base AS env +RUN cmake -version + +FROM env AS devel +WORKDIR /home/project +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 CTEST_OUTPUT_ON_FAILURE=1 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 cmake/samples/cpp . + +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 diff --git a/libs/or-tools-stable/cmake/docker/alpine/dotnet.Dockerfile b/libs/or-tools-stable/cmake/docker/alpine/dotnet.Dockerfile new file mode 100644 index 0000000000000000000000000000000000000000..8d20f3fca57aea5b23fc565361bb73559bc3ef86 --- /dev/null +++ b/libs/or-tools-stable/cmake/docker/alpine/dotnet.Dockerfile @@ -0,0 +1,39 @@ +FROM ortools/cmake:alpine_swig AS env +RUN apk add --no-cache wget icu-libs libintl +# .NET install +# see: https://dotnet.microsoft.com/download/dotnet-core/3.1 +RUN dotnet_sdk_version=3.1.404 \ +&& 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='c6e73e88c69fa2c81eb572a64206fa6e94cb376230a05f14028c35aab202975c857973f9b5fac849c60d22f37563d8d53689c2605571e3b922bda2489e12346d' \ +&& 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/project +COPY . . + +FROM devel AS build +RUN cmake -S. -Bbuild -DBUILD_DOTNET=ON -DBUILD_CXX_SAMPLES=OFF -DBUILD_CXX_EXAMPLES=OFF +RUN cmake --build build --target all -v +RUN cmake --build build --target install + +FROM build AS test +RUN CTEST_OUTPUT_ON_FAILURE=1 cmake --build build --target test + +FROM env AS install_env +WORKDIR /home/sample +COPY --from=build /home/project/build/dotnet/packages/*.nupkg ./ + +FROM install_env AS install_devel +COPY cmake/samples/dotnet . + +FROM install_devel AS install_build +RUN dotnet build + +FROM install_build AS install_test +RUN dotnet test diff --git a/libs/or-tools-stable/cmake/docker/alpine/java.Dockerfile b/libs/or-tools-stable/cmake/docker/alpine/java.Dockerfile new file mode 100644 index 0000000000000000000000000000000000000000..494c23c360a218798de45c73d9b38bac5416520b --- /dev/null +++ b/libs/or-tools-stable/cmake/docker/alpine/java.Dockerfile @@ -0,0 +1,28 @@ +FROM ortools/cmake: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/project +COPY . . + +FROM devel AS build +RUN cmake -S. -Bbuild -DBUILD_JAVA=ON -DBUILD_CXX_SAMPLES=OFF -DBUILD_CXX_EXAMPLES=OFF +RUN cmake --build build --target all -v +RUN cmake --build build --target install + +FROM build AS test +RUN CTEST_OUTPUT_ON_FAILURE=1 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 cmake/samples/java . + +FROM install_devel AS install_build +RUN mvn compile + +FROM install_build AS install_test +RUN mvn test diff --git a/libs/or-tools-stable/cmake/docker/alpine/python.Dockerfile b/libs/or-tools-stable/cmake/docker/alpine/python.Dockerfile new file mode 100644 index 0000000000000000000000000000000000000000..99be7e9b6f2e5b0cd630b5f0b289db667ff8891a --- /dev/null +++ b/libs/or-tools-stable/cmake/docker/alpine/python.Dockerfile @@ -0,0 +1,29 @@ +FROM ortools/cmake:alpine_swig AS env +ENV PATH=/root/.local/bin:$PATH +RUN apk add --no-cache python3-dev py3-pip + +FROM env AS devel +WORKDIR /home/project +COPY . . + +FROM devel AS build +RUN cmake -S. -Bbuild -DBUILD_PYTHON=ON -DBUILD_CXX_SAMPLES=OFF -DBUILD_CXX_EXAMPLES=OFF +RUN cmake --build build --target all -v +RUN cmake --build build --target install + +FROM build AS test +RUN CTEST_OUTPUT_ON_FAILURE=1 cmake --build build --target test + +FROM env AS install_env +WORKDIR /home/sample +COPY --from=build /home/project/build/python/dist/*.whl . +RUN python3 -m pip install *.whl + +FROM install_env AS install_devel +COPY cmake/samples/python . + +FROM install_devel AS install_build +RUN python3 -m compileall . + +FROM install_build AS install_test +RUN python3 sample.py diff --git a/libs/or-tools-stable/cmake/docker/archlinux/Dockerfile b/libs/or-tools-stable/cmake/docker/archlinux/Dockerfile new file mode 100644 index 0000000000000000000000000000000000000000..dba10d709d7c62e067f02699f9ecc36e23af15d3 --- /dev/null +++ b/libs/or-tools-stable/cmake/docker/archlinux/Dockerfile @@ -0,0 +1,11 @@ +# Create a virtual environment with all tools installed +# ref: https://hub.docker.com/_/archlinux/ +FROM archlinux:latest AS base +LABEL maintainer="corentinl@google.com" +# Install system build dependencies +ENV PATH=/usr/local/bin:$PATH +RUN pacman -Syu --noconfirm git base-devel cmake +CMD [ "/bin/bash" ] + +FROM base AS swig +RUN pacman -Syu --noconfirm swig diff --git a/libs/or-tools-stable/cmake/docker/archlinux/cpp.Dockerfile b/libs/or-tools-stable/cmake/docker/archlinux/cpp.Dockerfile new file mode 100644 index 0000000000000000000000000000000000000000..7d33ce536bdbd34f1bd9dfc4b15864576b2b2ad0 --- /dev/null +++ b/libs/or-tools-stable/cmake/docker/archlinux/cpp.Dockerfile @@ -0,0 +1,29 @@ +FROM ortools/cmake:archlinux_base AS env +RUN cmake -version + +FROM env AS devel +WORKDIR /home/project +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 CTEST_OUTPUT_ON_FAILURE=1 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 cmake/samples/cpp . + +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 diff --git a/libs/or-tools-stable/cmake/docker/archlinux/dotnet.Dockerfile b/libs/or-tools-stable/cmake/docker/archlinux/dotnet.Dockerfile new file mode 100644 index 0000000000000000000000000000000000000000..e88f5a5260c6947c01682f21c82529938a5af849 --- /dev/null +++ b/libs/or-tools-stable/cmake/docker/archlinux/dotnet.Dockerfile @@ -0,0 +1,27 @@ +FROM ortools/cmake:archlinux_swig AS env +RUN pacman -Syu --noconfirm dotnet-sdk + +FROM env AS devel +WORKDIR /home/project +COPY . . + +FROM devel AS build +RUN cmake -S. -Bbuild -DBUILD_DOTNET=ON -DBUILD_CXX_SAMPLES=OFF -DBUILD_CXX_EXAMPLES=OFF +RUN cmake --build build --target all -v +RUN cmake --build build --target install + +FROM build AS test +RUN CTEST_OUTPUT_ON_FAILURE=1 cmake --build build --target test + +FROM env AS install_env +WORKDIR /home/sample +COPY --from=build /home/project/build/dotnet/packages/*.nupkg ./ + +FROM install_env AS install_devel +COPY cmake/samples/dotnet . + +FROM install_devel AS install_build +RUN dotnet build + +FROM install_build AS install_test +RUN dotnet test diff --git a/libs/or-tools-stable/cmake/docker/archlinux/java.Dockerfile b/libs/or-tools-stable/cmake/docker/archlinux/java.Dockerfile new file mode 100644 index 0000000000000000000000000000000000000000..6cbc894df4abbc2e06fbcfbe0330ec212293765a --- /dev/null +++ b/libs/or-tools-stable/cmake/docker/archlinux/java.Dockerfile @@ -0,0 +1,28 @@ +FROM ortools/cmake:archlinux_swig AS env +RUN pacman -Syu --noconfirm jdk-openjdk maven +ENV JAVA_HOME=/usr/lib/jvm/default + +FROM env AS devel +WORKDIR /home/project +COPY . . + +FROM devel AS build +RUN cmake -S. -Bbuild -DBUILD_JAVA=ON -DBUILD_CXX_SAMPLES=OFF -DBUILD_CXX_EXAMPLES=OFF +RUN cmake --build build --target all -v +RUN cmake --build build --target install + +FROM build AS test +RUN CTEST_OUTPUT_ON_FAILURE=1 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 cmake/samples/java . + +FROM install_devel AS install_build +RUN mvn compile + +FROM install_build AS install_test +RUN mvn test diff --git a/libs/or-tools-stable/cmake/docker/archlinux/python.Dockerfile b/libs/or-tools-stable/cmake/docker/archlinux/python.Dockerfile new file mode 100644 index 0000000000000000000000000000000000000000..c8bf6f45559e87336e8f75dc750169b2527da06f --- /dev/null +++ b/libs/or-tools-stable/cmake/docker/archlinux/python.Dockerfile @@ -0,0 +1,29 @@ +FROM ortools/cmake:archlinux_swig AS env +ENV PATH=/root/.local/bin:$PATH +RUN pacman -Syu --noconfirm python python-pip + +FROM env AS devel +WORKDIR /home/project +COPY . . + +FROM devel AS build +RUN cmake -S. -Bbuild -DBUILD_PYTHON=ON -DBUILD_CXX_SAMPLES=OFF -DBUILD_CXX_EXAMPLES=OFF +RUN cmake --build build --target all -v +RUN cmake --build build --target install + +FROM build AS test +RUN CTEST_OUTPUT_ON_FAILURE=1 cmake --build build --target test + +FROM env AS install_env +WORKDIR /home/sample +COPY --from=build /home/project/build/python/dist/*.whl . +RUN python -m pip install *.whl + +FROM install_env AS install_devel +COPY cmake/samples/python . + +FROM install_devel AS install_build +RUN python -m compileall . + +FROM install_build AS install_test +RUN python sample.py diff --git a/libs/or-tools-stable/cmake/docker/centos/Dockerfile b/libs/or-tools-stable/cmake/docker/centos/Dockerfile new file mode 100644 index 0000000000000000000000000000000000000000..9c138b06b80d316760e7a672e35238715bf6108d --- /dev/null +++ b/libs/or-tools-stable/cmake/docker/centos/Dockerfile @@ -0,0 +1,34 @@ +# Create a virtual environment with all tools installed +# ref: https://hub.docker.com/_/centos +FROM centos:latest AS base +LABEL maintainer="corentinl@google.com" +# Install system build dependencies +ENV PATH=/usr/local/bin:$PATH +RUN dnf -y update \ +&& dnf -y install git wget openssl-devel \ +&& dnf -y groupinstall "Development Tools" \ +&& dnf clean all \ +&& rm -rf /var/cache/dnf + +# Install CMake 3.18.5 +RUN wget "https://cmake.org/files/v3.18/cmake-3.18.5-Linux-x86_64.sh" \ +&& chmod a+x cmake-3.18.5-Linux-x86_64.sh \ +&& ./cmake-3.18.5-Linux-x86_64.sh --prefix=/usr/local/ --skip-license \ +&& rm cmake-3.18.5-Linux-x86_64.sh +CMD [ "/usr/bin/bash" ] + +# Install SWIG 4.0.2 +FROM base AS swig +RUN dnf -y update \ +&& dnf -y install pcre-devel \ +&& dnf clean all \ +&& rm -rf /var/cache/dnf \ +&& wget "https://downloads.sourceforge.net/project/swig/swig/swig-4.0.2/swig-4.0.2.tar.gz" \ +&& tar xvf swig-4.0.2.tar.gz \ +&& rm swig-4.0.2.tar.gz \ +&& cd swig-4.0.2 \ +&& ./configure --prefix=/usr \ +&& make -j 4 \ +&& make install \ +&& cd .. \ +&& rm -rf swig-4.0.2 diff --git a/libs/or-tools-stable/cmake/docker/centos/cpp.Dockerfile b/libs/or-tools-stable/cmake/docker/centos/cpp.Dockerfile new file mode 100644 index 0000000000000000000000000000000000000000..36a302dea354a7a328b6066107fab18e40fc87ff --- /dev/null +++ b/libs/or-tools-stable/cmake/docker/centos/cpp.Dockerfile @@ -0,0 +1,29 @@ +FROM ortools/cmake:centos_base AS env +RUN cmake -version + +FROM env AS devel +WORKDIR /home/project +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 CTEST_OUTPUT_ON_FAILURE=1 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 cmake/samples/cpp . + +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 diff --git a/libs/or-tools-stable/cmake/docker/centos/dotnet.Dockerfile b/libs/or-tools-stable/cmake/docker/centos/dotnet.Dockerfile new file mode 100644 index 0000000000000000000000000000000000000000..e07e409dfbd07cf01ce04faff93a3b463cf6c0d4 --- /dev/null +++ b/libs/or-tools-stable/cmake/docker/centos/dotnet.Dockerfile @@ -0,0 +1,33 @@ +FROM ortools/cmake:centos_swig AS env +# see: https://docs.microsoft.com/en-us/dotnet/core/install/linux-package-manager-centos8 +RUN dnf -y update \ +&& dnf -y install dotnet-sdk-3.1 \ +&& dnf clean all \ +&& rm -rf /var/cache/dnf +# Trigger first run experience by running arbitrary cmd +RUN dotnet --info + +FROM env AS devel +WORKDIR /home/project +COPY . . + +FROM devel AS build +RUN cmake -S. -Bbuild -DBUILD_DOTNET=ON -DBUILD_CXX_SAMPLES=OFF -DBUILD_CXX_EXAMPLES=OFF +RUN cmake --build build --target all -v +RUN cmake --build build --target install + +FROM build AS test +RUN CTEST_OUTPUT_ON_FAILURE=1 cmake --build build --target test + +FROM env AS install_env +WORKDIR /home/sample +COPY --from=build /home/project/build/dotnet/packages/*.nupkg ./ + +FROM install_env AS install_devel +COPY cmake/samples/dotnet . + +FROM install_devel AS install_build +RUN dotnet build + +FROM install_build AS install_test +RUN dotnet test diff --git a/libs/or-tools-stable/cmake/docker/centos/java.Dockerfile b/libs/or-tools-stable/cmake/docker/centos/java.Dockerfile new file mode 100644 index 0000000000000000000000000000000000000000..a4d6df85f74cf532fb3442540b02b38fc17a3929 --- /dev/null +++ b/libs/or-tools-stable/cmake/docker/centos/java.Dockerfile @@ -0,0 +1,30 @@ +FROM ortools/cmake:centos_swig AS env +RUN dnf -y update \ +&& dnf -y install java-1.8.0-openjdk java-1.8.0-openjdk-devel maven \ +&& dnf clean all \ +&& rm -rf /var/cache/dnf + +FROM env AS devel +WORKDIR /home/project +COPY . . + +FROM devel AS build +RUN cmake -S. -Bbuild -DBUILD_JAVA=ON -DBUILD_CXX_SAMPLES=OFF -DBUILD_CXX_EXAMPLES=OFF +RUN cmake --build build --target all -v +RUN cmake --build build --target install + +FROM build AS test +RUN CTEST_OUTPUT_ON_FAILURE=1 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 cmake/samples/java . + +FROM install_devel AS install_build +RUN mvn compile + +FROM install_build AS install_test +RUN mvn test diff --git a/libs/or-tools-stable/cmake/docker/centos/python.Dockerfile b/libs/or-tools-stable/cmake/docker/centos/python.Dockerfile new file mode 100644 index 0000000000000000000000000000000000000000..aa24a09cf489375a24cf23470bb7bc7142ce674b --- /dev/null +++ b/libs/or-tools-stable/cmake/docker/centos/python.Dockerfile @@ -0,0 +1,32 @@ +FROM ortools/cmake:centos_swig AS env +ENV PATH=/root/.local/bin:$PATH +RUN dnf -y update \ +&& dnf -y install python36-devel \ +&& dnf clean all \ +&& rm -rf /var/cache/dnf + +FROM env AS devel +WORKDIR /home/project +COPY . . + +FROM devel AS build +RUN cmake -S. -Bbuild -DBUILD_PYTHON=ON -DBUILD_CXX_SAMPLES=OFF -DBUILD_CXX_EXAMPLES=OFF +RUN cmake --build build --target all -v +RUN cmake --build build --target install + +FROM build AS test +RUN CTEST_OUTPUT_ON_FAILURE=1 cmake --build build --target test + +FROM env AS install_env +WORKDIR /home/sample +COPY --from=build /home/project/build/python/dist/*.whl . +RUN python3 -m pip install *.whl + +FROM install_env AS install_devel +COPY cmake/samples/python . + +FROM install_devel AS install_build +RUN python3 -m compileall . + +FROM install_build AS install_test +RUN python3 sample.py diff --git a/libs/or-tools-stable/cmake/docker/debian/Dockerfile b/libs/or-tools-stable/cmake/docker/debian/Dockerfile new file mode 100644 index 0000000000000000000000000000000000000000..0947986d332002f8e33006e8a0762fd18fc398b3 --- /dev/null +++ b/libs/or-tools-stable/cmake/docker/debian/Dockerfile @@ -0,0 +1,24 @@ +# Create a virtual environment with all tools installed +# ref: https://hub.docker.com/_/debian +FROM debian:latest AS base +LABEL maintainer="corentinl@google.com" +# Install system build dependencies +ENV PATH=/usr/local/bin:$PATH +RUN apt-get update -qq \ +&& apt-get install -yq \ + git wget libssl-dev build-essential \ +&& apt-get clean \ +&& rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* + +# Install CMake 3.18.5 +RUN wget "https://cmake.org/files/v3.18/cmake-3.18.5-Linux-x86_64.sh" \ +&& chmod a+x cmake-3.18.5-Linux-x86_64.sh \ +&& ./cmake-3.18.5-Linux-x86_64.sh --prefix=/usr/local/ --skip-license \ +&& rm cmake-3.18.5-Linux-x86_64.sh +CMD [ "/bin/bash" ] + +FROM base AS swig +RUN apt-get update -qq \ +&& apt-get install -yq swig \ +&& apt-get clean \ +&& rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* diff --git a/libs/or-tools-stable/cmake/docker/debian/cpp.Dockerfile b/libs/or-tools-stable/cmake/docker/debian/cpp.Dockerfile new file mode 100644 index 0000000000000000000000000000000000000000..73f35672c3d39ae5fa6f0cfe1cd4716e6682c463 --- /dev/null +++ b/libs/or-tools-stable/cmake/docker/debian/cpp.Dockerfile @@ -0,0 +1,29 @@ +FROM ortools/cmake:debian_base AS env +RUN cmake -version + +FROM env AS devel +WORKDIR /home/project +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 CTEST_OUTPUT_ON_FAILURE=1 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 cmake/samples/cpp . + +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 diff --git a/libs/or-tools-stable/cmake/docker/debian/dotnet.Dockerfile b/libs/or-tools-stable/cmake/docker/debian/dotnet.Dockerfile new file mode 100644 index 0000000000000000000000000000000000000000..c433c5756f98dad37612439892c83815e5de1f52 --- /dev/null +++ b/libs/or-tools-stable/cmake/docker/debian/dotnet.Dockerfile @@ -0,0 +1,39 @@ +FROM ortools/cmake: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/project +COPY . . + +FROM devel AS build +RUN cmake -S. -Bbuild -DBUILD_DOTNET=ON -DBUILD_CXX_SAMPLES=OFF -DBUILD_CXX_EXAMPLES=OFF +RUN cmake --build build --target all -v +RUN cmake --build build --target install + +FROM build AS test +RUN CTEST_OUTPUT_ON_FAILURE=1 cmake --build build --target test + +FROM env AS install_env +WORKDIR /home/sample +COPY --from=build /home/project/build/dotnet/packages/*.nupkg ./ + +FROM install_env AS install_devel +COPY cmake/samples/dotnet . + +FROM install_devel AS install_build +RUN dotnet build + +FROM install_build AS install_test +RUN dotnet test diff --git a/libs/or-tools-stable/cmake/docker/debian/java.Dockerfile b/libs/or-tools-stable/cmake/docker/debian/java.Dockerfile new file mode 100644 index 0000000000000000000000000000000000000000..488ce6ef52b8809b6791fb5101ab348f5897fde3 --- /dev/null +++ b/libs/or-tools-stable/cmake/docker/debian/java.Dockerfile @@ -0,0 +1,31 @@ +FROM ortools/cmake: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/* +ENV JAVA_HOME=/usr/lib/jvm/default-java + +FROM env AS devel +WORKDIR /home/project +COPY . . + +FROM devel AS build +RUN cmake -S. -Bbuild -DBUILD_JAVA=ON -DBUILD_CXX_SAMPLES=OFF -DBUILD_CXX_EXAMPLES=OFF +RUN cmake --build build --target all -v +RUN cmake --build build --target install + +FROM build AS test +RUN CTEST_OUTPUT_ON_FAILURE=1 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 cmake/samples/java . + +FROM install_devel AS install_build +RUN mvn compile + +FROM install_build AS install_test +RUN mvn test diff --git a/libs/or-tools-stable/cmake/docker/debian/python.Dockerfile b/libs/or-tools-stable/cmake/docker/debian/python.Dockerfile new file mode 100644 index 0000000000000000000000000000000000000000..d928f4ca769a8b70f0246314f4c5a7e7cc8b3dc0 --- /dev/null +++ b/libs/or-tools-stable/cmake/docker/debian/python.Dockerfile @@ -0,0 +1,32 @@ +FROM ortools/cmake:debian_swig AS env +ENV PATH=/root/.local/bin:$PATH +RUN apt-get update -qq \ +&& apt-get install -yq python3-dev python3-pip python3-venv \ +&& apt-get clean \ +&& rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* + +FROM env AS devel +WORKDIR /home/project +COPY . . + +FROM devel AS build +RUN cmake -S. -Bbuild -DBUILD_PYTHON=ON -DBUILD_CXX_SAMPLES=OFF -DBUILD_CXX_EXAMPLES=OFF +RUN cmake --build build --target all -v +RUN cmake --build build --target install + +FROM build AS test +RUN CTEST_OUTPUT_ON_FAILURE=1 cmake --build build --target test + +FROM env AS install_env +WORKDIR /home/sample +COPY --from=build /home/project/build/python/dist/*.whl . +RUN python3 -m pip install *.whl + +FROM install_env AS install_devel +COPY cmake/samples/python . + +FROM install_devel AS install_build +RUN python3 -m compileall . + +FROM install_build AS install_test +RUN python3 sample.py diff --git a/libs/or-tools-stable/cmake/docker/fedora/Dockerfile b/libs/or-tools-stable/cmake/docker/fedora/Dockerfile new file mode 100644 index 0000000000000000000000000000000000000000..1dc6806b028a4a94327efd78c429078463d79bf0 --- /dev/null +++ b/libs/or-tools-stable/cmake/docker/fedora/Dockerfile @@ -0,0 +1,17 @@ +# Create a virtual environment with all tools installed +# ref: https://hub.docker.com/_/fedora +FROM fedora:latest AS base +LABEL maintainer="corentinl@google.com" +# Install system build dependencies +ENV PATH=/usr/local/bin:$PATH +RUN dnf -y update \ +&& dnf -y install git wget \ +&& dnf -y groupinstall "Development Tools" \ +&& dnf -y install gcc-c++ cmake \ +&& dnf clean all +CMD [ "/usr/bin/bash" ] + +FROM base AS swig +RUN dnf -y update \ +&& dnf -y install swig \ +&& dnf clean all diff --git a/libs/or-tools-stable/cmake/docker/fedora/cpp.Dockerfile b/libs/or-tools-stable/cmake/docker/fedora/cpp.Dockerfile new file mode 100644 index 0000000000000000000000000000000000000000..873c5da1d05d9d87b3d459477e534845e1f360e9 --- /dev/null +++ b/libs/or-tools-stable/cmake/docker/fedora/cpp.Dockerfile @@ -0,0 +1,29 @@ +FROM ortools/cmake:fedora_base AS env +RUN cmake -version + +FROM env AS devel +WORKDIR /home/project +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 CTEST_OUTPUT_ON_FAILURE=1 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 cmake/samples/cpp . + +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 diff --git a/libs/or-tools-stable/cmake/docker/fedora/dotnet.Dockerfile b/libs/or-tools-stable/cmake/docker/fedora/dotnet.Dockerfile new file mode 100644 index 0000000000000000000000000000000000000000..52be618aca38f29b3978e7ee90c310452e730add --- /dev/null +++ b/libs/or-tools-stable/cmake/docker/fedora/dotnet.Dockerfile @@ -0,0 +1,32 @@ +FROM ortools/cmake:fedora_swig AS env +# see: https://docs.microsoft.com/en-us/dotnet/core/install/linux-fedora +RUN 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/project +COPY . . + +FROM devel AS build +RUN cmake -S. -Bbuild -DBUILD_DOTNET=ON -DBUILD_CXX_SAMPLES=OFF -DBUILD_CXX_EXAMPLES=OFF +RUN cmake --build build --target all -v +RUN cmake --build build --target install + +FROM build AS test +RUN CTEST_OUTPUT_ON_FAILURE=1 cmake --build build --target test + +FROM env AS install_env +WORKDIR /home/sample +COPY --from=build /home/project/build/dotnet/packages/*.nupkg ./ + +FROM install_env AS install_devel +COPY cmake/samples/dotnet . + +FROM install_devel AS install_build +RUN dotnet build + +FROM install_build AS install_test +RUN dotnet test diff --git a/libs/or-tools-stable/cmake/docker/fedora/java.Dockerfile b/libs/or-tools-stable/cmake/docker/fedora/java.Dockerfile new file mode 100644 index 0000000000000000000000000000000000000000..53e98c5026f8ab90374bae7919f4872396f28abf --- /dev/null +++ b/libs/or-tools-stable/cmake/docker/fedora/java.Dockerfile @@ -0,0 +1,30 @@ +FROM ortools/cmake:fedora_swig AS env +RUN dnf -y update \ +&& dnf -y install java-11-openjdk java-11-openjdk-devel maven \ +&& dnf clean all +ENV JAVA_HOME=/usr/lib/jvm/java-openjdk + +FROM env AS devel +WORKDIR /home/project +COPY . . + +FROM devel AS build +RUN cmake -S. -Bbuild -DBUILD_JAVA=ON -DBUILD_CXX_SAMPLES=OFF -DBUILD_CXX_EXAMPLES=OFF +RUN cmake --build build --target all -v +RUN cmake --build build --target install + +FROM build AS test +RUN CTEST_OUTPUT_ON_FAILURE=1 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 cmake/samples/java . + +FROM install_devel AS install_build +RUN mvn compile + +FROM install_build AS install_test +RUN mvn test diff --git a/libs/or-tools-stable/cmake/docker/fedora/python.Dockerfile b/libs/or-tools-stable/cmake/docker/fedora/python.Dockerfile new file mode 100644 index 0000000000000000000000000000000000000000..59d33f1c7f03e6022c93552c2afd68e591472036 --- /dev/null +++ b/libs/or-tools-stable/cmake/docker/fedora/python.Dockerfile @@ -0,0 +1,31 @@ +FROM ortools/cmake:fedora_swig AS env +ENV PATH=/root/.local/bin:$PATH +RUN dnf -y update \ +&& dnf -y install python3 python3-devel python3-pip \ +&& dnf clean all + +FROM env AS devel +WORKDIR /home/project +COPY . . + +FROM devel AS build +RUN cmake -S. -Bbuild -DBUILD_PYTHON=ON -DBUILD_CXX_SAMPLES=OFF -DBUILD_CXX_EXAMPLES=OFF +RUN cmake --build build --target all -v +RUN cmake --build build --target install + +FROM build AS test +RUN CTEST_OUTPUT_ON_FAILURE=1 cmake --build build --target test + +FROM env AS install_env +WORKDIR /home/sample +COPY --from=build /home/project/build/python/dist/*.whl . +RUN python3 -m pip install *.whl + +FROM install_env AS install_devel +COPY cmake/samples/python . + +FROM install_devel AS install_build +RUN python3 -m compileall . + +FROM install_build AS install_test +RUN python3 sample.py diff --git a/libs/or-tools-stable/cmake/docker/glop/Dockerfile b/libs/or-tools-stable/cmake/docker/glop/Dockerfile new file mode 100644 index 0000000000000000000000000000000000000000..f7eb62ceab2b84029b4bd04c484c3a4ed47f8ae6 --- /dev/null +++ b/libs/or-tools-stable/cmake/docker/glop/Dockerfile @@ -0,0 +1,43 @@ +# Create a virtual environment with all tools installed +# ref: https://hub.docker.com/_/ubuntu +FROM ubuntu:rolling AS env +LABEL maintainer="corentinl@google.com" +# Install system build dependencies +ENV PATH=/usr/local/bin:$PATH +RUN apt-get update -qq \ +&& apt-get install -yq git wget libssl-dev build-essential \ +&& apt-get clean \ +&& rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* +# Install CMake 3.18.4 +RUN wget "https://cmake.org/files/v3.18/cmake-3.18.4-Linux-x86_64.sh" \ +&& chmod a+x cmake-3.18.4-Linux-x86_64.sh \ +&& ./cmake-3.18.4-Linux-x86_64.sh --prefix=/usr/local/ --skip-license \ +&& rm cmake-3.18.4-Linux-x86_64.sh +CMD [ "/usr/bin/bash" ] + +FROM env AS devel +WORKDIR /home/project +COPY . . + +FROM devel AS build +RUN cmake -S. -Bbuild -DBUILD_DEPS=ON -DBUILD_CXX=OFF -DBUILD_GLOP=ON +RUN cmake --build build --target all -v +RUN cmake --build build --target install + +FROM build AS test +RUN CTEST_OUTPUT_ON_FAILURE=1 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 cmake/samples/glop . + +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 diff --git a/libs/or-tools-stable/cmake/docker/opensuse/Dockerfile b/libs/or-tools-stable/cmake/docker/opensuse/Dockerfile new file mode 100644 index 0000000000000000000000000000000000000000..2e5edac477b9cd86f54b4d2a6acbc85140712611 --- /dev/null +++ b/libs/or-tools-stable/cmake/docker/opensuse/Dockerfile @@ -0,0 +1,16 @@ +# Create a virtual environment with all tools installed +# ref: https://hub.docker.com/r/opensuse/tumbleweed +FROM opensuse/tumbleweed AS base +LABEL maintainer="corentinl@google.com" +# Install system build dependencies +ENV PATH=/usr/local/bin:$PATH +RUN zypper update -y \ +&& zypper install -y git gcc gcc-c++ cmake \ +&& zypper clean -a +ENV CC=gcc CXX=g++ +CMD [ "/usr/bin/bash" ] + +FROM base AS swig +RUN zypper update -y \ +&& zypper install -y swig \ +&& zypper clean -a diff --git a/libs/or-tools-stable/cmake/docker/opensuse/cpp.Dockerfile b/libs/or-tools-stable/cmake/docker/opensuse/cpp.Dockerfile new file mode 100644 index 0000000000000000000000000000000000000000..7a31d94c776cfb5fdb28530c6ee6e076e3a9a8f1 --- /dev/null +++ b/libs/or-tools-stable/cmake/docker/opensuse/cpp.Dockerfile @@ -0,0 +1,29 @@ +FROM ortools/cmake:opensuse_base AS env +RUN cmake -version + +FROM env AS devel +WORKDIR /home/project +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 CTEST_OUTPUT_ON_FAILURE=1 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 cmake/samples/cpp . + +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 diff --git a/libs/or-tools-stable/cmake/docker/opensuse/dotnet.Dockerfile b/libs/or-tools-stable/cmake/docker/opensuse/dotnet.Dockerfile new file mode 100644 index 0000000000000000000000000000000000000000..42c53ad38176c41b27c984aa947219649fa21f13 --- /dev/null +++ b/libs/or-tools-stable/cmake/docker/opensuse/dotnet.Dockerfile @@ -0,0 +1,40 @@ +FROM ortools/cmake:opensuse_swig AS env +RUN zypper update -y \ +&& zypper install -y wget tar gzip libicu-devel +# .NET install +# see: https://dotnet.microsoft.com/download/dotnet-core/3.1 +RUN dotnet_sdk_version=3.1.404 \ +&& 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='94d8eca3b4e2e6c36135794330ab196c621aee8392c2545a19a991222e804027f300d8efd152e9e4893c4c610d6be8eef195e30e6f6675285755df1ea49d3605' \ +&& 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/project +COPY . . + +FROM devel AS build +RUN cmake -S. -Bbuild -DBUILD_DOTNET=ON -DBUILD_CXX_SAMPLES=OFF -DBUILD_CXX_EXAMPLES=OFF +RUN cmake --build build --target all -v +RUN cmake --build build --target install + +FROM build AS test +RUN CTEST_OUTPUT_ON_FAILURE=1 cmake --build build --target test + +FROM env AS install_env +WORKDIR /home/sample +COPY --from=build /home/project/build/dotnet/packages/*.nupkg ./ + +FROM install_env AS install_devel +COPY cmake/samples/dotnet . + +FROM install_devel AS install_build +RUN dotnet build + +FROM install_build AS install_test +RUN dotnet test diff --git a/libs/or-tools-stable/cmake/docker/opensuse/java.Dockerfile b/libs/or-tools-stable/cmake/docker/opensuse/java.Dockerfile new file mode 100644 index 0000000000000000000000000000000000000000..39743eede9e3e2687a8a49a6b40dba167d1fea11 --- /dev/null +++ b/libs/or-tools-stable/cmake/docker/opensuse/java.Dockerfile @@ -0,0 +1,29 @@ +FROM ortools/cmake: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/project +COPY . . + +FROM devel AS build +RUN cmake -S. -Bbuild -DBUILD_JAVA=ON -DBUILD_CXX_SAMPLES=OFF -DBUILD_CXX_EXAMPLES=OFF +RUN cmake --build build --target all -v +RUN cmake --build build --target install + +FROM build AS test +RUN CTEST_OUTPUT_ON_FAILURE=1 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 cmake/samples/java . + +FROM install_devel AS install_build +RUN mvn compile + +FROM install_build AS install_test +RUN mvn test diff --git a/libs/or-tools-stable/cmake/docker/opensuse/python.Dockerfile b/libs/or-tools-stable/cmake/docker/opensuse/python.Dockerfile new file mode 100644 index 0000000000000000000000000000000000000000..3cde63f093d262d0016300f8f7e9e4b360f9bdfb --- /dev/null +++ b/libs/or-tools-stable/cmake/docker/opensuse/python.Dockerfile @@ -0,0 +1,31 @@ +FROM ortools/cmake:opensuse_swig AS env +ENV PATH=/root/.local/bin:$PATH +RUN zypper update -y \ +&& zypper install -y python3 python3-pip python3-devel \ +&& zypper clean -a + +FROM env AS devel +WORKDIR /home/project +COPY . . + +FROM devel AS build +RUN cmake -S. -Bbuild -DBUILD_PYTHON=ON -DBUILD_CXX_SAMPLES=OFF -DBUILD_CXX_EXAMPLES=OFF +RUN cmake --build build --target all -v +RUN cmake --build build --target install + +FROM build AS test +RUN CTEST_OUTPUT_ON_FAILURE=1 cmake --build build --target test + +FROM env AS install_env +WORKDIR /home/sample +COPY --from=build /home/project/build/python/dist/*.whl . +RUN python3 -m pip install *.whl + +FROM install_env AS install_devel +COPY cmake/samples/python . + +FROM install_devel AS install_build +RUN python3 -m compileall . + +FROM install_build AS install_test +RUN python3 sample.py diff --git a/libs/or-tools-stable/cmake/docker/ubuntu/Dockerfile b/libs/or-tools-stable/cmake/docker/ubuntu/Dockerfile new file mode 100644 index 0000000000000000000000000000000000000000..428243302fe8fb0a8d1d73af8ea55632918e0134 --- /dev/null +++ b/libs/or-tools-stable/cmake/docker/ubuntu/Dockerfile @@ -0,0 +1,23 @@ +# Create a virtual environment with all tools installed +# ref: https://hub.docker.com/_/ubuntu +FROM ubuntu:rolling AS base +LABEL maintainer="corentinl@google.com" +# Install system build dependencies +ENV PATH=/usr/local/bin:$PATH +RUN apt-get update -qq \ +&& apt-get install -yq git wget libssl-dev build-essential \ +&& apt-get clean \ +&& rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* + +# Install CMake 3.18.5 +RUN wget "https://cmake.org/files/v3.18/cmake-3.18.5-Linux-x86_64.sh" \ +&& chmod a+x cmake-3.18.5-Linux-x86_64.sh \ +&& ./cmake-3.18.5-Linux-x86_64.sh --prefix=/usr/local/ --skip-license \ +&& rm cmake-3.18.5-Linux-x86_64.sh +CMD [ "/usr/bin/bash" ] + +FROM base AS swig +RUN apt-get update -qq \ +&& apt-get install -yq swig \ +&& apt-get clean \ +&& rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* diff --git a/libs/or-tools-stable/cmake/docker/ubuntu/cpp.Dockerfile b/libs/or-tools-stable/cmake/docker/ubuntu/cpp.Dockerfile new file mode 100644 index 0000000000000000000000000000000000000000..4706ffabff37aad15ead645a357ee689e35cfac2 --- /dev/null +++ b/libs/or-tools-stable/cmake/docker/ubuntu/cpp.Dockerfile @@ -0,0 +1,29 @@ +FROM ortools/cmake:ubuntu_base AS env +RUN cmake -version + +FROM env AS devel +WORKDIR /home/project +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 CTEST_OUTPUT_ON_FAILURE=1 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 cmake/samples/cpp . + +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 diff --git a/libs/or-tools-stable/cmake/docker/ubuntu/dotnet.Dockerfile b/libs/or-tools-stable/cmake/docker/ubuntu/dotnet.Dockerfile new file mode 100644 index 0000000000000000000000000000000000000000..7425952f5612969d85417830f9f0803af5bb4eae --- /dev/null +++ b/libs/or-tools-stable/cmake/docker/ubuntu/dotnet.Dockerfile @@ -0,0 +1,37 @@ +FROM ortools/cmake:ubuntu_swig AS env +# see: https://docs.microsoft.com/en-us/dotnet/core/install/linux-ubuntu +RUN apt-get update -qq \ +&& DEBIAN_FRONTEND=noninteractive apt-get install -yq wget apt-transport-https \ +&& wget -q https://packages.microsoft.com/config/ubuntu/20.10/packages-microsoft-prod.deb -O packages-microsoft-prod.deb \ +&& dpkg -i packages-microsoft-prod.deb \ +&& apt-get update -qq \ +&& DEBIAN_FRONTEND=noninteractive 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/project +COPY . . + +FROM devel AS build +RUN cmake -S. -Bbuild -DBUILD_DOTNET=ON -DBUILD_CXX_SAMPLES=OFF -DBUILD_CXX_EXAMPLES=OFF +RUN cmake --build build --target all -v +RUN cmake --build build --target install + +FROM build AS test +RUN CTEST_OUTPUT_ON_FAILURE=1 cmake --build build --target test + +FROM env AS install_env +WORKDIR /home/sample +COPY --from=build /home/project/build/dotnet/packages/*.nupkg ./ + +FROM install_env AS install_devel +COPY cmake/samples/dotnet . + +FROM install_devel AS install_build +RUN dotnet build + +FROM install_build AS install_test +RUN dotnet test diff --git a/libs/or-tools-stable/cmake/docker/ubuntu/java.Dockerfile b/libs/or-tools-stable/cmake/docker/ubuntu/java.Dockerfile new file mode 100644 index 0000000000000000000000000000000000000000..17bdc60b8f74b53803b4978f99bb8e0dd8517e06 --- /dev/null +++ b/libs/or-tools-stable/cmake/docker/ubuntu/java.Dockerfile @@ -0,0 +1,31 @@ +FROM ortools/cmake:ubuntu_swig AS env +RUN apt-get update -qq \ +&& DEBIAN_FRONTEND=noninteractive apt-get install -yq default-jdk maven \ +&& apt-get clean \ +&& rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* +ENV JAVA_HOME=/usr/lib/jvm/default-java + +FROM env AS devel +WORKDIR /home/project +COPY . . + +FROM devel AS build +RUN cmake -S. -Bbuild -DBUILD_JAVA=ON -DBUILD_CXX_SAMPLES=OFF -DBUILD_CXX_EXAMPLES=OFF +RUN cmake --build build --target all -v +RUN cmake --build build --target install + +FROM build AS test +RUN CTEST_OUTPUT_ON_FAILURE=1 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 cmake/samples/java . + +FROM install_devel AS install_build +RUN mvn compile + +FROM install_build AS install_test +RUN mvn test diff --git a/libs/or-tools-stable/cmake/docker/ubuntu/python.Dockerfile b/libs/or-tools-stable/cmake/docker/ubuntu/python.Dockerfile new file mode 100644 index 0000000000000000000000000000000000000000..14a2be6f5c9d0d05dee6ec8dd7570fdec04d63ab --- /dev/null +++ b/libs/or-tools-stable/cmake/docker/ubuntu/python.Dockerfile @@ -0,0 +1,32 @@ +FROM ortools/cmake:ubuntu_swig AS env +ENV PATH=/root/.local/bin:$PATH +RUN apt-get update -qq \ +&& apt-get install -yq python3-dev python3-pip python3-venv \ +&& apt-get clean \ +&& rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* + +FROM env AS devel +WORKDIR /home/project +COPY . . + +FROM devel AS build +RUN cmake -S. -Bbuild -DBUILD_PYTHON=ON -DBUILD_CXX_SAMPLES=OFF -DBUILD_CXX_EXAMPLES=OFF +RUN cmake --build build --target all -v +RUN cmake --build build --target install + +FROM build AS test +RUN CTEST_OUTPUT_ON_FAILURE=1 cmake --build build --target test + +FROM env AS install_env +WORKDIR /home/sample +COPY --from=build /home/project/build/python/dist/*.whl . +RUN python3 -m pip install *.whl + +FROM install_env AS install_devel +COPY cmake/samples/python . + +FROM install_devel AS install_build +RUN python3 -m compileall . + +FROM install_build AS install_test +RUN python3 sample.py diff --git a/libs/or-tools-stable/cmake/dotnet.cmake b/libs/or-tools-stable/cmake/dotnet.cmake new file mode 100644 index 0000000000000000000000000000000000000000..6b1579bd65695aa0246d19fec5fae925b07864ff --- /dev/null +++ b/libs/or-tools-stable/cmake/dotnet.cmake @@ -0,0 +1,341 @@ +if(NOT BUILD_DOTNET) + return() +endif() + +if(NOT TARGET ortools::ortools) + message(FATAL_ERROR ".Net: missing ortools TARGET") +endif() + +# Will need swig +set(CMAKE_SWIG_FLAGS) +find_package(SWIG) +include(UseSWIG) + +#if(${SWIG_VERSION} VERSION_GREATER_EQUAL 4) +# list(APPEND CMAKE_SWIG_FLAGS "-doxygen") +#endif() + +if(UNIX AND NOT APPLE) + list(APPEND CMAKE_SWIG_FLAGS "-DSWIGWORDSIZE64") +endif() + +# Setup Dotnet +find_program (DOTNET_EXECUTABLE NAMES dotnet) +if(NOT DOTNET_EXECUTABLE) + message(FATAL_ERROR "Check for dotnet Program: not found") +else() + message(STATUS "Found dotnet Program: ${DOTNET_EXECUTABLE}") +endif() + +# Generate Protobuf .Net sources +set(PROTO_DOTNETS) +file(GLOB_RECURSE proto_dotnet_files RELATIVE ${PROJECT_SOURCE_DIR} + "ortools/constraint_solver/*.proto" + "ortools/linear_solver/*.proto" + "ortools/sat/*.proto" + "ortools/util/*.proto" + ) +list(REMOVE_ITEM proto_dotnet_files "ortools/constraint_solver/demon_profiler.proto") +list(REMOVE_ITEM proto_dotnet_files "ortools/constraint_solver/assignment.proto") +foreach(PROTO_FILE IN LISTS proto_dotnet_files) + #message(STATUS "protoc proto(dotnet): ${PROTO_FILE}") + get_filename_component(PROTO_DIR ${PROTO_FILE} DIRECTORY) + get_filename_component(PROTO_NAME ${PROTO_FILE} NAME_WE) + set(PROTO_DOTNET ${PROJECT_BINARY_DIR}/dotnet/${PROTO_DIR}/${PROTO_NAME}.pb.cs) + #message(STATUS "protoc dotnet: ${PROTO_DOTNET}") + add_custom_command( + OUTPUT ${PROTO_DOTNET} + COMMAND ${CMAKE_COMMAND} -E make_directory ${PROJECT_BINARY_DIR}/dotnet/${PROTO_DIR} + COMMAND protobuf::protoc + "--proto_path=${PROJECT_SOURCE_DIR}" + ${PROTO_DIRS} + "--csharp_out=${PROJECT_BINARY_DIR}/dotnet/${PROTO_DIR}" + "--csharp_opt=file_extension=.pb.cs" + ${PROTO_FILE} + DEPENDS ${PROTO_FILE} protobuf::protoc + COMMENT "Generate C# protocol buffer for ${PROTO_FILE}" + VERBATIM) + list(APPEND PROTO_DOTNETS ${PROTO_DOTNET}) +endforeach() +add_custom_target(Dotnet${PROJECT_NAME}_proto DEPENDS ${PROTO_DOTNETS} ortools::ortools) + +# Create the native library +add_library(google-ortools-native SHARED "") +set_target_properties(google-ortools-native PROPERTIES + PREFIX "" + POSITION_INDEPENDENT_CODE ON) +# note: macOS is APPLE and also UNIX ! +if(APPLE) + set_target_properties(google-ortools-native PROPERTIES INSTALL_RPATH "@loader_path") +elseif(UNIX) + set_target_properties(google-ortools-native PROPERTIES INSTALL_RPATH "$ORIGIN") +endif() + +# CMake will remove all '-D' prefix (i.e. -DUSE_FOO become USE_FOO) +#get_target_property(FLAGS ortools::ortools COMPILE_DEFINITIONS) +set(FLAGS -DUSE_BOP -DUSE_GLOP -DABSL_MUST_USE_RESULT) +if(USE_SCIP) + list(APPEND FLAGS "-DUSE_SCIP") +endif() +if(USE_COINOR) + list(APPEND FLAGS "-DUSE_CBC" "-DUSE_CLP") +endif() +list(APPEND CMAKE_SWIG_FLAGS ${FLAGS} "-I${PROJECT_SOURCE_DIR}") + +# Swig wrap all libraries +set(DOTNET_PROJECT Google.OrTools) +if(APPLE) + set(RUNTIME_IDENTIFIER osx-x64) +elseif(UNIX) + set(RUNTIME_IDENTIFIER linux-x64) +elseif(WIN32) + set(RUNTIME_IDENTIFIER win-x64) +else() + message(FATAL_ERROR "Unsupported system !") +endif() +set(DOTNET_NATIVE_PROJECT ${DOTNET_PROJECT}.runtime.${RUNTIME_IDENTIFIER}) + +foreach(SUBPROJECT IN ITEMS algorithms graph linear_solver constraint_solver sat util) + add_subdirectory(ortools/${SUBPROJECT}/csharp) + target_link_libraries(google-ortools-native PRIVATE dotnet_${SUBPROJECT}) +endforeach() + +############################ +## .Net Runtime Package ## +############################ +file(COPY tools/doc/orLogo.png DESTINATION dotnet) +set(DOTNET_PACKAGES_DIR "${PROJECT_BINARY_DIR}/dotnet/packages") +set(DOTNET_LOGO_DIR "${PROJECT_BINARY_DIR}/dotnet") +configure_file(ortools/dotnet/Directory.Build.props.in dotnet/Directory.Build.props) + +# Build or retrieve .snk file +if(DEFINED ENV{DOTNET_SNK}) + add_custom_command(OUTPUT dotnet/or-tools.snk + COMMAND ${CMAKE_COMMAND} -E copy $ENV{DOTNET_SNK} . + COMMENT "Copy or-tools.snk from ENV:DOTNET_SNK" + WORKING_DIRECTORY dotnet + VERBATIM + ) +else() + set(OR_TOOLS_DOTNET_SNK CreateSigningKey) + add_custom_command(OUTPUT dotnet/or-tools.snk + COMMAND ${CMAKE_COMMAND} -E copy_directory ${PROJECT_SOURCE_DIR}/ortools/dotnet/${OR_TOOLS_DOTNET_SNK} ${OR_TOOLS_DOTNET_SNK} + COMMAND ${DOTNET_EXECUTABLE} run + --project ${OR_TOOLS_DOTNET_SNK}/${OR_TOOLS_DOTNET_SNK}.csproj + /or-tools.snk + BYPRODUCTS + dotnet/${OR_TOOLS_DOTNET_SNK}/bin + dotnet/${OR_TOOLS_DOTNET_SNK}/obj + COMMENT "Generate or-tools.snk using CreateSigningKey project" + WORKING_DIRECTORY dotnet + VERBATIM + ) +endif() + +file(GENERATE OUTPUT dotnet/$/replace_runtime.cmake + CONTENT + "FILE(READ ${PROJECT_SOURCE_DIR}/ortools/dotnet/${DOTNET_NATIVE_PROJECT}/${DOTNET_NATIVE_PROJECT}.csproj.in input) +STRING(REPLACE \"@PROJECT_VERSION@\" \"${PROJECT_VERSION}\" input \"\${input}\") +STRING(REPLACE \"@ortools@\" \"$<$>:$>\" input \"\${input}\") +STRING(REPLACE \"@native@\" \"$\" input \"\${input}\") +FILE(WRITE ${DOTNET_NATIVE_PROJECT}/${DOTNET_NATIVE_PROJECT}.csproj \"\${input}\")" +) + +add_custom_command( + OUTPUT dotnet/${DOTNET_NATIVE_PROJECT}/${DOTNET_NATIVE_PROJECT}.csproj + COMMAND ${CMAKE_COMMAND} -E make_directory ${DOTNET_NATIVE_PROJECT} + COMMAND ${CMAKE_COMMAND} -P ./$/replace_runtime.cmake + WORKING_DIRECTORY dotnet + ) + +if(WIN32) +add_custom_command( + OUTPUT dotnet/${DOTNET_NATIVE_PROJECT}/${DOTNET_NATIVE_PROJECT}.targets + COMMAND ${CMAKE_COMMAND} -E make_directory ${DOTNET_NATIVE_PROJECT} + COMMAND ${CMAKE_COMMAND} -E copy + ${PROJECT_SOURCE_DIR}/ortools/dotnet/${DOTNET_NATIVE_PROJECT}/${DOTNET_NATIVE_PROJECT}.targets + ${DOTNET_NATIVE_PROJECT}/${DOTNET_NATIVE_PROJECT}.targets + WORKING_DIRECTORY dotnet + ) + set(DOTNET_TARGETS dotnet/${DOTNET_NATIVE_PROJECT}/${DOTNET_NATIVE_PROJECT}.targets) +endif() + +add_custom_target(dotnet_native ALL + DEPENDS + dotnet/or-tools.snk + Dotnet${PROJECT_NAME}_proto + google-ortools-native + dotnet/${DOTNET_NATIVE_PROJECT}/${DOTNET_NATIVE_PROJECT}.csproj + ${DOTNET_TARGETS} + COMMAND ${CMAKE_COMMAND} -E make_directory packages + COMMAND ${DOTNET_EXECUTABLE} build -c Release /p:Platform=x64 ${DOTNET_NATIVE_PROJECT}/${DOTNET_NATIVE_PROJECT}.csproj + COMMAND ${DOTNET_EXECUTABLE} pack -c Release ${DOTNET_NATIVE_PROJECT}/${DOTNET_NATIVE_PROJECT}.csproj + BYPRODUCTS + dotnet/${DOTNET_NATIVE_PROJECT}/bin + dotnet/${DOTNET_NATIVE_PROJECT}/obj + WORKING_DIRECTORY dotnet + ) + +#################### +## .Net Package ## +#################### +file(GENERATE OUTPUT dotnet/$/replace.cmake + CONTENT + "FILE(READ ${PROJECT_SOURCE_DIR}/ortools/dotnet/${DOTNET_PROJECT}/${DOTNET_PROJECT}.csproj.in input) +STRING(REPLACE \"@PROJECT_VERSION@\" \"${PROJECT_VERSION}\" input \"\${input}\") +STRING(REPLACE \"@PROJECT_SOURCE_DIR@\" \"${PROJECT_SOURCE_DIR}\" input \"\${input}\") +STRING(REPLACE \"@PROJECT_DOTNET_DIR@\" \"${PROJECT_BINARY_DIR}/dotnet\" input \"\${input}\") +STRING(REPLACE \"@DOTNET_PACKAGES_DIR@\" \"${PROJECT_BINARY_DIR}/dotnet/packages\" input \"\${input}\") +FILE(WRITE ${DOTNET_PROJECT}/${DOTNET_PROJECT}.csproj \"\${input}\")" +) + +add_custom_command( + OUTPUT dotnet/${DOTNET_PROJECT}/${DOTNET_PROJECT}.csproj + COMMAND ${CMAKE_COMMAND} -E make_directory ${DOTNET_PROJECT} + COMMAND ${CMAKE_COMMAND} -P ./$/replace.cmake + WORKING_DIRECTORY dotnet + ) + +add_custom_target(dotnet_package ALL + DEPENDS + dotnet/or-tools.snk + dotnet_native + dotnet/${DOTNET_PROJECT}/${DOTNET_PROJECT}.csproj + COMMAND ${DOTNET_EXECUTABLE} build -c Release /p:Platform=x64 ${DOTNET_PROJECT}/${DOTNET_PROJECT}.csproj + COMMAND ${DOTNET_EXECUTABLE} pack -c Release ${DOTNET_PROJECT}/${DOTNET_PROJECT}.csproj + BYPRODUCTS + dotnet/${DOTNET_PROJECT}/bin + dotnet/${DOTNET_PROJECT}/obj + dotnet/packages + WORKING_DIRECTORY dotnet + ) + +# add_dotnet_sample() +# CMake function to generate and build dotnet sample. +# Parameters: +# the dotnet filename +# e.g.: +# add_dotnet_sample(Foo.cs) +function(add_dotnet_sample FILE_NAME) + message(STATUS "Building ${FILE_NAME}: ...") + get_filename_component(SAMPLE_NAME ${FILE_NAME} NAME_WE) + get_filename_component(SAMPLE_DIR ${FILE_NAME} DIRECTORY) + get_filename_component(COMPONENT_DIR ${SAMPLE_DIR} DIRECTORY) + get_filename_component(COMPONENT_NAME ${COMPONENT_DIR} NAME) + + set(SAMPLE_PATH ${PROJECT_BINARY_DIR}/dotnet/${COMPONENT_NAME}/${SAMPLE_NAME}) + file(MAKE_DIRECTORY ${SAMPLE_PATH}) + + file(COPY ${FILE_NAME} DESTINATION ${SAMPLE_PATH}) + + set(DOTNET_PACKAGES_DIR "${PROJECT_BINARY_DIR}/dotnet/packages") + configure_file( + ${PROJECT_SOURCE_DIR}/ortools/dotnet/Sample.csproj.in + ${SAMPLE_PATH}/${SAMPLE_NAME}.csproj + @ONLY) + + add_custom_target(dotnet_sample_${SAMPLE_NAME} ALL + DEPENDS ${SAMPLE_PATH}/${SAMPLE_NAME}.csproj + COMMAND ${DOTNET_EXECUTABLE} build -c Release + COMMAND ${DOTNET_EXECUTABLE} pack -c Release + BYPRODUCTS + ${SAMPLE_PATH}/bin + ${SAMPLE_PATH}/obj + WORKING_DIRECTORY ${SAMPLE_PATH}) + add_dependencies(dotnet_sample_${SAMPLE_NAME} dotnet_package) + + if(BUILD_TESTING) + add_test( + NAME dotnet_${COMPONENT_NAME}_${SAMPLE_NAME} + COMMAND ${DOTNET_EXECUTABLE} run --no-build -c Release + WORKING_DIRECTORY ${SAMPLE_PATH}) + endif() + + message(STATUS "Building ${FILE_NAME}: ...DONE") +endfunction() + +# add_dotnet_example() +# CMake function to generate and build dotnet example. +# Parameters: +# the dotnet filename +# e.g.: +# add_dotnet_example(Foo.cs) +function(add_dotnet_example FILE_NAME) + message(STATUS "Building ${FILE_NAME}: ...") + get_filename_component(EXAMPLE_NAME ${FILE_NAME} NAME_WE) + get_filename_component(COMPONENT_DIR ${FILE_NAME} DIRECTORY) + get_filename_component(COMPONENT_NAME ${COMPONENT_DIR} NAME) + + set(EXAMPLE_PATH ${PROJECT_BINARY_DIR}/dotnet/${COMPONENT_NAME}/${EXAMPLE_NAME}) + file(MAKE_DIRECTORY ${EXAMPLE_PATH}) + + file(COPY ${FILE_NAME} DESTINATION ${EXAMPLE_PATH}) + + set(DOTNET_PACKAGES_DIR "${PROJECT_BINARY_DIR}/dotnet/packages") + set(SAMPLE_NAME ${EXAMPLE_NAME}) + configure_file( + ${PROJECT_SOURCE_DIR}/ortools/dotnet/Sample.csproj.in + ${EXAMPLE_PATH}/${EXAMPLE_NAME}.csproj + @ONLY) + + add_custom_target(dotnet_example_${EXAMPLE_NAME} ALL + DEPENDS ${EXAMPLE_PATH}/${EXAMPLE_NAME}.csproj + COMMAND ${DOTNET_EXECUTABLE} build -c Release + COMMAND ${DOTNET_EXECUTABLE} pack -c Release + BYPRODUCTS + ${EXAMPLE_PATH}/bin + ${EXAMPLE_PATH}/obj + WORKING_DIRECTORY ${EXAMPLE_PATH}) + add_dependencies(dotnet_example_${EXAMPLE_NAME} dotnet_package) + + if(BUILD_TESTING) + add_test( + NAME dotnet_${COMPONENT_NAME}_${EXAMPLE_NAME} + COMMAND ${DOTNET_EXECUTABLE} run --no-build -c Release + WORKING_DIRECTORY ${EXAMPLE_PATH}) + endif() + + message(STATUS "Building ${FILE_NAME}: ...DONE") +endfunction() + +# add_dotnet_test() +# CMake function to generate and build dotnet test. +# Parameters: +# the dotnet filename +# e.g.: +# add_dotnet_test(Foo.cs) +function(add_dotnet_test FILE_NAME) + message(STATUS "Building ${FILE_NAME}: ...") + get_filename_component(TEST_NAME ${FILE_NAME} NAME_WE) + get_filename_component(COMPONENT_DIR ${FILE_NAME} DIRECTORY) + get_filename_component(COMPONENT_NAME ${COMPONENT_DIR} NAME) + + set(TEST_PATH ${PROJECT_BINARY_DIR}/dotnet/${COMPONENT_NAME}/${TEST_NAME}) + file(MAKE_DIRECTORY ${TEST_PATH}) + + file(COPY ${FILE_NAME} DESTINATION ${TEST_PATH}) + + set(DOTNET_PACKAGES_DIR "${PROJECT_BINARY_DIR}/dotnet/packages") + configure_file( + ${PROJECT_SOURCE_DIR}/ortools/dotnet/Test.csproj.in + ${TEST_PATH}/${TEST_NAME}.csproj + @ONLY) + + add_custom_target(dotnet_sample_${TEST_NAME} ALL + DEPENDS ${TEST_PATH}/${TEST_NAME}.csproj + COMMAND ${DOTNET_EXECUTABLE} build -c Release + BYPRODUCTS + ${TEST_PATH}/bin + ${TEST_PATH}/obj + WORKING_DIRECTORY ${TEST_PATH}) + add_dependencies(dotnet_sample_${TEST_NAME} dotnet_package) + + if(BUILD_TESTING) + add_test( + NAME dotnet_${COMPONENT_NAME}_${TEST_NAME} + COMMAND ${DOTNET_EXECUTABLE} test --no-build -c Release + WORKING_DIRECTORY ${TEST_PATH}) + endif() + + message(STATUS "Building ${FILE_NAME}: ...DONE") +endfunction() diff --git a/libs/or-tools-stable/cmake/flatzinc.cmake b/libs/or-tools-stable/cmake/flatzinc.cmake new file mode 100644 index 0000000000000000000000000000000000000000..41c353ccc5770333226f82ed6c36356d84b8e64b --- /dev/null +++ b/libs/or-tools-stable/cmake/flatzinc.cmake @@ -0,0 +1,158 @@ +if(NOT BUILD_FLATZINC) + return() +endif() + +# Flags +if(WIN32) + list(APPEND FLATZINC_COMPILE_DEFINITIONS "__WIN32__") +endif() +if(MSVC) + list(APPEND FLATZINC_COMPILE_OPTIONS + "/bigobj" # Allow big object + "/DNOMINMAX" + "/DWIN32_LEAN_AND_MEAN=1" + "/D_CRT_SECURE_NO_WARNINGS" + "/D_CRT_SECURE_NO_DEPRECATE" + "/MP" # Build with multiple processes + "/DNDEBUG" + ) + # MSVC warning suppressions + list(APPEND FLATZINC_COMPILE_OPTIONS + "/wd4005" # 'macro-redefinition' + "/wd4018" # 'expression' : signed/unsigned mismatch + "/wd4065" # switch statement contains 'default' but no 'case' labels + "/wd4068" # 'unknown pragma' + "/wd4101" # 'identifier' : unreferenced local variable + "/wd4146" # unary minus operator applied to unsigned type, result still unsigned + "/wd4200" # nonstandard extension used : zero-sized array in struct/union + "/wd4244" # 'conversion' conversion from 'type1' to 'type2', possible loss of data + "/wd4251" # 'identifier' : class 'type' needs to have dll-interface to be used by clients of class 'type2' + "/wd4267" # 'var' : conversion from 'size_t' to 'type', possible loss of data + "/wd4305" # 'identifier' : truncation from 'type1' to 'type2' + "/wd4307" # 'operator' : integral constant overflow + "/wd4309" # 'conversion' : truncation of constant value + "/wd4334" # 'operator' : result of 32-bit shift implicitly converted to 64 bits (was 64-bit shift intended?) + "/wd4355" # 'this' : used in base member initializer list + "/wd4477" # 'fwprintf' : format string '%s' requires an argument of type 'wchar_t *' + "/wd4506" # no definition for inline function 'function' + "/wd4715" # function' : not all control paths return a value + "/wd4800" # 'type' : forcing value to bool 'true' or 'false' (performance warning) + "/wd4996" # The compiler encountered a deprecated declaration. + ) +else() + list(APPEND FLATZINC_COMPILE_OPTIONS "-fwrapv") +endif() + +# Main Target +add_library(flatzinc + ortools/flatzinc/checker.cc + ortools/flatzinc/checker.h + ortools/flatzinc/cp_model_fz_solver.cc + ortools/flatzinc/cp_model_fz_solver.h + ortools/flatzinc/logging.cc + ortools/flatzinc/logging.h + ortools/flatzinc/model.cc + ortools/flatzinc/model.h + ortools/flatzinc/parser.cc + ortools/flatzinc/parser.h + ortools/flatzinc/parser.tab.cc + ortools/flatzinc/parser.tab.hh + ortools/flatzinc/parser.yy.cc + #ortools/flatzinc/parser_util.cc # Already #include in parser.tab.cc + ortools/flatzinc/parser_util.h + ortools/flatzinc/presolve.cc + ortools/flatzinc/presolve.h + ) +## Includes +target_include_directories(flatzinc PUBLIC + $ + $ + $ + ) +## Compile options +set_target_properties(flatzinc PROPERTIES + CXX_STANDARD 17 + CXX_STANDARD_REQUIRED ON + CXX_EXTENSIONS OFF + ) +target_compile_features(flatzinc PUBLIC cxx_std_17) +target_compile_definitions(flatzinc PUBLIC ${FLATZINC_COMPILE_DEFINITIONS}) +target_compile_options(flatzinc PUBLIC ${FLATZINC_COMPILE_OPTIONS}) +## Properties +if(NOT APPLE) + set_target_properties(flatzinc PROPERTIES VERSION ${PROJECT_VERSION}) +else() + # Clang don't support version x.y.z with z > 255 + set_target_properties(flatzinc PROPERTIES + INSTALL_RPATH "@loader_path" + VERSION ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}) +endif() +set_target_properties(flatzinc PROPERTIES + SOVERSION ${PROJECT_VERSION_MAJOR} + POSITION_INDEPENDENT_CODE ON + INTERFACE_POSITION_INDEPENDENT_CODE ON +) +set_target_properties(flatzinc PROPERTIES INTERFACE_flatzinc_MAJOR_VERSION ${PROJECT_VERSION_MAJOR}) +set_target_properties(flatzinc PROPERTIES COMPATIBLE_INTERFACE_STRING flatzinc_MAJOR_VERSION) +## Dependencies +target_link_libraries(flatzinc PUBLIC ortools::ortools) +if(WIN32) + #target_link_libraries(flatzinc PUBLIC psapi.lib ws2_32.lib) +endif() +## Alias +add_library(${PROJECT_NAME}::flatzinc ALIAS flatzinc) + + +if(APPLE) + set(CMAKE_INSTALL_RPATH + "@loader_path/../${CMAKE_INSTALL_LIBDIR};@loader_path") +elseif(UNIX) + set(CMAKE_INSTALL_RPATH "$ORIGIN/../${CMAKE_INSTALL_LIBDIR}:$ORIGIN") +endif() +# Binary +add_executable(fz + ortools/flatzinc/fz.cc + ) +## Includes +target_include_directories(fz PRIVATE + $ + $ + ) +## Compile options +set_target_properties(fz PROPERTIES + CXX_STANDARD 17 + CXX_STANDARD_REQUIRED ON + CXX_EXTENSIONS OFF + ) +target_compile_features(fz PUBLIC cxx_std_17) +target_compile_definitions(fz PUBLIC ${FLATZINC_COMPILE_DEFINITIONS}) +target_compile_options(fz PUBLIC ${FLATZINC_COMPILE_OPTIONS}) +## Dependencies +target_link_libraries(fz PRIVATE ortools::flatzinc) +## Alias +add_executable(${PROJECT_NAME}::fz ALIAS fz) + +# MiniZinc solver configuration +file(RELATIVE_PATH FZ_REL_INSTALL_BINARY + ${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_DATAROOTDIR}/minizinc/solvers + ${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_BINDIR}/fz) +configure_file( + ortools/flatzinc/ortools.msc.in + ortools.msc + @ONLY) + +# Install rules +include(GNUInstallDirs) +install(TARGETS flatzinc fz + EXPORT ${PROJECT_NAME}Targets + INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} + ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} + RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} + ) + +install(DIRECTORY ortools/flatzinc/mznlib/ + DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/minizinc/ortools + FILES_MATCHING PATTERN "*.mzn") +install(FILES ${CMAKE_BINARY_DIR}/ortools.msc + DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/minizinc/solvers) diff --git a/libs/or-tools-stable/cmake/glop.cmake b/libs/or-tools-stable/cmake/glop.cmake new file mode 100644 index 0000000000000000000000000000000000000000..4911859c2527684718d7878c2a1fc1ab7d2965a5 --- /dev/null +++ b/libs/or-tools-stable/cmake/glop.cmake @@ -0,0 +1,354 @@ +if(NOT BUILD_GLOP) + return() +endif() + + +# Generate Protobuf cpp sources +set(PROTO_HDRS) +set(PROTO_SRCS) +set(proto_files + "ortools/linear_solver/linear_solver.proto" + "ortools/glop/parameters.proto" + "ortools/util/optional_boolean.proto" + ) +## Get Protobuf include dir +get_target_property(protobuf_dirs protobuf::libprotobuf INTERFACE_INCLUDE_DIRECTORIES) +foreach(dir IN LISTS protobuf_dirs) + if (NOT "${dir}" MATCHES "INSTALL_INTERFACE|-NOTFOUND") + message(STATUS "Adding proto path: ${dir}") + list(APPEND PROTO_DIRS "--proto_path=${dir}") + endif() +endforeach() + +foreach(PROTO_FILE IN LISTS proto_files) + #message(STATUS "protoc proto(cc): ${PROTO_FILE}") + get_filename_component(PROTO_DIR ${PROTO_FILE} DIRECTORY) + get_filename_component(PROTO_NAME ${PROTO_FILE} NAME_WE) + set(PROTO_HDR ${PROJECT_BINARY_DIR}/${PROTO_DIR}/${PROTO_NAME}.pb.h) + set(PROTO_SRC ${PROJECT_BINARY_DIR}/${PROTO_DIR}/${PROTO_NAME}.pb.cc) + #message(STATUS "protoc hdr: ${PROTO_HDR}") + #message(STATUS "protoc src: ${PROTO_SRC}") + add_custom_command( + OUTPUT ${PROTO_SRC} ${PROTO_HDR} + COMMAND protobuf::protoc + "--proto_path=${PROJECT_SOURCE_DIR}" + ${PROTO_DIRS} + "--cpp_out=${PROJECT_BINARY_DIR}" + ${PROTO_FILE} + DEPENDS ${PROTO_FILE} protobuf::protoc + COMMENT "Generate C++ protocol buffer for ${PROTO_FILE}" + VERBATIM) + list(APPEND PROTO_HDRS ${PROTO_HDR}) + list(APPEND PROTO_SRCS ${PROTO_SRC}) +endforeach() + +add_library(glop_proto OBJECT ${PROTO_SRCS} ${PROTO_HDRS}) +set_target_properties(glop_proto PROPERTIES + POSITION_INDEPENDENT_CODE ON + CXX_STANDARD 17 + CXX_STANDARD_REQUIRED ON + CXX_EXTENSIONS OFF) +target_include_directories(glop_proto PRIVATE + ${PROJECT_SOURCE_DIR} + ${PROJECT_BINARY_DIR} + $ + ) +target_compile_definitions(glop_proto PUBLIC ${GLOP_COMPILE_DEFINITIONS}) +target_compile_options(glop_proto PUBLIC ${GLOP_COMPILE_OPTIONS}) +target_link_libraries(glop_proto PRIVATE protobuf::libprotobuf) + +# Main Target +add_library(glop + ortools/base/commandlineflags.h + ortools/base/file.cc + ortools/base/file.h + ortools/base/integral_types.h + ortools/base/log_severity.h + ortools/base/logging.cc + ortools/base/logging.h + ortools/base/logging_utilities.cc + ortools/base/logging_utilities.h + ortools/base/macros.h + ortools/base/raw_logging.cc + ortools/base/raw_logging.h + ortools/base/sysinfo.cc + ortools/base/sysinfo.h + ortools/base/vlog_is_on.cc + ortools/base/vlog_is_on.h + ortools/glop/basis_representation.cc + ortools/glop/basis_representation.h + ortools/glop/dual_edge_norms.cc + ortools/glop/dual_edge_norms.h + ortools/glop/entering_variable.cc + ortools/glop/entering_variable.h + ortools/glop/initial_basis.cc + ortools/glop/initial_basis.h + ortools/glop/lp_solver.cc + ortools/glop/lp_solver.h + ortools/glop/lu_factorization.cc + ortools/glop/lu_factorization.h + ortools/glop/markowitz.cc + ortools/glop/markowitz.h + ortools/glop/preprocessor.cc + ortools/glop/preprocessor.h + ortools/glop/primal_edge_norms.cc + ortools/glop/primal_edge_norms.h + ortools/glop/reduced_costs.cc + ortools/glop/reduced_costs.h + ortools/glop/revised_simplex.cc + ortools/glop/revised_simplex.h + ortools/glop/status.cc + ortools/glop/status.h + ortools/glop/update_row.cc + ortools/glop/update_row.h + ortools/glop/variable_values.cc + ortools/glop/variable_values.h + ortools/glop/variables_info.cc + ortools/glop/variables_info.h + ortools/lp_data/lp_data.cc + ortools/lp_data/lp_data.h + ortools/lp_data/lp_data_utils.cc + ortools/lp_data/lp_data_utils.h + ortools/lp_data/lp_print_utils.cc + ortools/lp_data/lp_print_utils.h + ortools/lp_data/lp_types.cc + ortools/lp_data/lp_types.h + ortools/lp_data/lp_utils.cc + ortools/lp_data/lp_utils.h + ortools/lp_data/matrix_scaler.cc + ortools/lp_data/matrix_scaler.h + ortools/lp_data/matrix_utils.cc + ortools/lp_data/matrix_utils.h + ortools/lp_data/proto_utils.cc + ortools/lp_data/proto_utils.h + ortools/lp_data/sparse.cc + ortools/lp_data/sparse.h + ortools/lp_data/sparse_column.cc + ortools/port/sysinfo.h + ortools/port/sysinfo_nonport.cc + ortools/util/file_util.cc + ortools/util/file_util.h + ortools/util/fp_utils.cc + ortools/util/fp_utils.h + ortools/util/rational_approximation.cc + ortools/util/rational_approximation.h + ortools/util/stats.cc + ortools/util/stats.h + ortools/util/time_limit.cc + ortools/util/time_limit.h + ) + +if(WIN32) + list(APPEND GLOP_COMPILE_DEFINITIONS "__WIN32__") +endif() +if(MSVC) + list(APPEND GLOP_COMPILE_OPTIONS + "/bigobj" # Allow big object + "/DNOMINMAX" + "/DWIN32_LEAN_AND_MEAN=1" + "/D_CRT_SECURE_NO_WARNINGS" + "/D_CRT_SECURE_NO_DEPRECATE" + "/MP" # Build with multiple processes + "/DNDEBUG" + ) + # MSVC warning suppressions + list(APPEND GLOP_COMPILE_OPTIONS + "/wd4005" # 'macro-redefinition' + "/wd4018" # 'expression' : signed/unsigned mismatch + "/wd4065" # switch statement contains 'default' but no 'case' labels + "/wd4068" # 'unknown pragma' + "/wd4101" # 'identifier' : unreferenced local variable + "/wd4146" # unary minus operator applied to unsigned type, result still unsigned + "/wd4200" # nonstandard extension used : zero-sized array in struct/union + "/wd4244" # 'conversion' conversion from 'type1' to 'type2', possible loss of data + "/wd4251" # 'identifier' : class 'type' needs to have dll-interface to be used by clients of class 'type2' + "/wd4267" # 'var' : conversion from 'size_t' to 'type', possible loss of data + "/wd4305" # 'identifier' : truncation from 'type1' to 'type2' + "/wd4307" # 'operator' : integral constant overflow + "/wd4309" # 'conversion' : truncation of constant value + "/wd4334" # 'operator' : result of 32-bit shift implicitly converted to 64 bits (was 64-bit shift intended?) + "/wd4355" # 'this' : used in base member initializer list + "/wd4477" # 'fwprintf' : format string '%s' requires an argument of type 'wchar_t *' + "/wd4506" # no definition for inline function 'function' + "/wd4715" # function' : not all control paths return a value + "/wd4800" # 'type' : forcing value to bool 'true' or 'false' (performance warning) + "/wd4996" # The compiler encountered a deprecated declaration. + ) +else() + list(APPEND GLOP_COMPILE_OPTIONS "-fwrapv") +endif() + +# Includes +target_include_directories(glop PUBLIC + $ + $ + $ + ) + +# Compile options +set_target_properties(glop PROPERTIES + CXX_STANDARD 17 + CXX_STANDARD_REQUIRED ON + CXX_EXTENSIONS OFF + ) +target_compile_features(glop PUBLIC cxx_std_17) +target_compile_definitions(glop PUBLIC ${GLOP_COMPILE_DEFINITIONS}) +target_compile_options(glop PUBLIC ${GLOP_COMPILE_OPTIONS}) + +# Properties +if(NOT APPLE) + set_target_properties(glop PROPERTIES VERSION ${PROJECT_VERSION}) +else() + # Clang don't support version x.y.z with z > 255 + set_target_properties(glop PROPERTIES + INSTALL_RPATH "@loader_path" + VERSION ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}) +endif() +set_target_properties(glop PROPERTIES + SOVERSION ${PROJECT_VERSION_MAJOR} + POSITION_INDEPENDENT_CODE ON + INTERFACE_POSITION_INDEPENDENT_CODE ON +) +set_target_properties(glop PROPERTIES INTERFACE_glop_MAJOR_VERSION ${PROJECT_VERSION_MAJOR}) +set_target_properties(glop PROPERTIES COMPATIBLE_INTERFACE_STRING glop_MAJOR_VERSION) + +# Dependencies +target_sources(glop PRIVATE $) +add_dependencies(glop glop_proto) + +target_link_libraries(glop PUBLIC + absl::memory + absl::hash + absl::flags + absl::status + absl::time + absl::strings + absl::statusor + absl::container + absl::str_format + protobuf::libprotobuf + ) +if(WIN32) + #target_link_libraries(glop PUBLIC psapi.lib ws2_32.lib) +endif() + +# ALIAS +add_library(${PROJECT_NAME}::glop ALIAS glop) + +# Install rules +include(GNUInstallDirs) +include(GenerateExportHeader) +GENERATE_EXPORT_HEADER(glop) +install(FILES ${PROJECT_BINARY_DIR}/glop_export.h + DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/ortools/glop + COMPONENT Devel) + +install(TARGETS glop + EXPORT glopTargets + INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} + ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} + RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} + ) + +install(EXPORT glopTargets + NAMESPACE ortools:: + DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/glop) + +# glop headers +install(DIRECTORY ortools/glop + DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/ortools + COMPONENT Devel + FILES_MATCHING + PATTERN "*.h") +# dependencies headers +install(FILES + ortools/base/accurate_sum.h + ortools/base/basictypes.h + ortools/base/commandlineflags.h + ortools/base/file.h + ortools/base/hash.h + ortools/base/int_type.h + ortools/base/strong_vector.h + ortools/base/integral_types.h + ortools/base/log_severity.h + ortools/base/logging.h + ortools/base/logging_export.h + ortools/base/logging_utilities.h + ortools/base/macros.h + ortools/base/raw_logging.h + ortools/base/recordio.h + ortools/base/sysinfo.h + ortools/base/timer.h + ortools/base/vlog_is_on.h + DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/ortools/base + COMPONENT Devel) +install(FILES + ortools/lp_data/lp_data.h + ortools/lp_data/permutation.h + ortools/lp_data/scattered_vector.h + ortools/lp_data/sparse_column.h + ortools/lp_data/sparse_row.h + ortools/lp_data/sparse_vector.h + ortools/lp_data/lp_types.h + ortools/lp_data/lp_utils.h + ortools/lp_data/lp_print_utils.h + ortools/lp_data/matrix_scaler.h + ortools/lp_data/matrix_utils.h + ortools/lp_data/proto_utils.h + ortools/lp_data/sparse.h + DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/ortools/lp_data + COMPONENT Devel) +install(FILES + ortools/graph/iterators.h + DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/ortools/graph + COMPONENT Devel) +install(FILES + ortools/port/sysinfo.h + DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/ortools/port + COMPONENT Devel) +install(FILES + ortools/util/bitset.h + ortools/util/file_util.h + ortools/util/fp_utils.h + ortools/util/random_engine.h + ortools/util/rational_approximation.h + ortools/util/return_macros.h + ortools/util/running_stat.h + ortools/util/stats.h + ortools/util/time_limit.h + DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/ortools/util + COMPONENT Devel) +# proto headers +install(FILES + ${PROJECT_BINARY_DIR}/ortools/glop/parameters.pb.h + DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/ortools/glop + COMPONENT Devel) +install(FILES + ${PROJECT_BINARY_DIR}/ortools/linear_solver/linear_solver.pb.h + DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/ortools/linear_solver + COMPONENT Devel) +install(FILES + ${PROJECT_BINARY_DIR}/ortools/util/optional_boolean.pb.h + DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/ortools/util + COMPONENT Devel) + +include(CMakePackageConfigHelpers) +string (TOUPPER "glop" PACKAGE_PREFIX) +configure_package_config_file(cmake/glopConfig.cmake.in + "${PROJECT_BINARY_DIR}/glopConfig.cmake" + INSTALL_DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/glop" + NO_CHECK_REQUIRED_COMPONENTS_MACRO) +write_basic_package_version_file( + "${PROJECT_BINARY_DIR}/glopConfigVersion.cmake" + COMPATIBILITY SameMajorVersion + ) +install( + FILES + "${PROJECT_BINARY_DIR}/glopConfig.cmake" + "${PROJECT_BINARY_DIR}/glopConfigVersion.cmake" + DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/glop" + COMPONENT Devel) + +# Build glop samples +add_subdirectory(ortools/glop/samples) diff --git a/libs/or-tools-stable/cmake/glopConfig.cmake.in b/libs/or-tools-stable/cmake/glopConfig.cmake.in new file mode 100644 index 0000000000000000000000000000000000000000..e5225a1d7512543b9a8a07f436870d238a776ab7 --- /dev/null +++ b/libs/or-tools-stable/cmake/glopConfig.cmake.in @@ -0,0 +1,24 @@ +## ortools CMake configuration file + +set(@PACKAGE_PREFIX@_VERSION @PROJECT_VERSION@) + +@PACKAGE_INIT@ + +include(CMakeFindDependencyMacro) +# Kitware CMake provide a FindZLIB.cmake module +if(NOT ZLIB_FOUND AND NOT TARGET ZLIB::ZLIB) + find_dependency(ZLIB REQUIRED) +endif() + +if(${CMAKE_VERSION} VERSION_GREATER_EQUAL "3.9.6") + set(CONFIG_FLAG CONFIG) +endif() + +if(NOT absl_FOUND) + find_dependency(absl REQUIRED ${CONFIG_FLAG}) +endif() +if(NOT Protobuf_FOUND AND NOT PROTOBUF_FOUND AND NOT TARGET protobuf::libprotobuf) + find_dependency(Protobuf REQUIRED ${CONFIG_FLAG}) +endif() + +include("${CMAKE_CURRENT_LIST_DIR}/glopTargets.cmake") diff --git a/libs/or-tools-stable/cmake/java.cmake b/libs/or-tools-stable/cmake/java.cmake new file mode 100644 index 0000000000000000000000000000000000000000..c7c834e6f6c241d008a6effdb3acd329d1ebd648 --- /dev/null +++ b/libs/or-tools-stable/cmake/java.cmake @@ -0,0 +1,350 @@ +if(NOT BUILD_JAVA) + return() +endif() + +if(NOT TARGET ortools::ortools) + message(FATAL_ERROR "Java: missing ortools::ortools TARGET") +endif() + +# Will need swig +set(CMAKE_SWIG_FLAGS) +find_package(SWIG REQUIRED) +include(UseSWIG) + +if(${SWIG_VERSION} VERSION_GREATER_EQUAL 4) + list(APPEND CMAKE_SWIG_FLAGS "-doxygen") +endif() + +if(UNIX AND NOT APPLE) + list(APPEND CMAKE_SWIG_FLAGS "-DSWIGWORDSIZE64") +endif() + +# Find Java +find_package(Java 1.8 COMPONENTS Development REQUIRED) +find_package(JNI REQUIRED) + +# Find maven +# On windows mvn spawn a process while mvn.cmd is a blocking command +if(UNIX) + find_program(MAVEN_EXECUTABLE mvn) +else() + find_program(MAVEN_EXECUTABLE mvn.cmd) +endif() +if(NOT MAVEN_EXECUTABLE) + message(FATAL_ERROR "Check for maven Program: not found") +else() + message(STATUS "Found Maven: ${MAVEN_EXECUTABLE}") +endif() + +# Needed by java/CMakeLists.txt +set(JAVA_PACKAGE com.google.ortools) +set(JAVA_PACKAGE_PATH src/main/java/com/google/ortools) +set(JAVA_TEST_PATH src/test/java/com/google/ortools) +set(JAVA_RESOURCES_PATH src/main/resources) +if(APPLE) + set(NATIVE_IDENTIFIER darwin) +elseif(UNIX) + set(NATIVE_IDENTIFIER linux-x86-64) +elseif(WIN32) + set(NATIVE_IDENTIFIER win32-x86-64) +else() + message(FATAL_ERROR "Unsupported system !") +endif() +set(JAVA_NATIVE_PROJECT ortools-${NATIVE_IDENTIFIER}) +set(JAVA_PROJECT ortools-java) + +# CMake will remove all '-D' prefix (i.e. -DUSE_FOO become USE_FOO) +#get_target_property(FLAGS ortools::ortools COMPILE_DEFINITIONS) +set(FLAGS -DUSE_BOP -DUSE_GLOP -DABSL_MUST_USE_RESULT) +if(USE_SCIP) + list(APPEND FLAGS "-DUSE_SCIP") +endif() +if(USE_COINOR) + list(APPEND FLAGS "-DUSE_CBC" "-DUSE_CLP") +endif() +list(APPEND CMAKE_SWIG_FLAGS ${FLAGS} "-I${PROJECT_SOURCE_DIR}") + +# Generate Protobuf java sources +set(PROTO_JAVAS) +file(GLOB_RECURSE proto_java_files RELATIVE ${PROJECT_SOURCE_DIR} + "ortools/constraint_solver/*.proto" + "ortools/linear_solver/*.proto" + "ortools/sat/*.proto" + "ortools/util/*.proto" + ) +list(REMOVE_ITEM proto_java_files "ortools/constraint_solver/demon_profiler.proto") +list(REMOVE_ITEM proto_java_files "ortools/constraint_solver/assignment.proto") +foreach(PROTO_FILE IN LISTS proto_java_files) + #message(STATUS "protoc proto(java): ${PROTO_FILE}") + get_filename_component(PROTO_DIR ${PROTO_FILE} DIRECTORY) + string(REGEX REPLACE "_" "" PROTO_DIR ${PROTO_DIR}) + get_filename_component(PROTO_NAME ${PROTO_FILE} NAME_WE) + set(PROTO_OUT ${PROJECT_BINARY_DIR}/java/${JAVA_PROJECT}/src/main/java/com/google/${PROTO_DIR}) + set(PROTO_JAVA ${PROTO_OUT}/${PROTO_NAME}.java) + #message(STATUS "protoc java: ${PROTO_JAVA}") + add_custom_command( + OUTPUT ${PROTO_JAVA} + COMMAND ${CMAKE_COMMAND} -E make_directory ${PROTO_OUT} + COMMAND protobuf::protoc + "--proto_path=${PROJECT_SOURCE_DIR}" + ${PROTO_DIRS} + "--java_out=${PROJECT_BINARY_DIR}/java/${JAVA_PROJECT}/src/main/java" + ${PROTO_FILE} + DEPENDS ${PROTO_FILE} protobuf::protoc + COMMENT "Generate Java protocol buffer for ${PROTO_FILE}" + VERBATIM) + list(APPEND PROTO_JAVAS ${PROTO_JAVA}) +endforeach() +add_custom_target(Java${PROJECT_NAME}_proto DEPENDS ${PROTO_JAVAS} ortools::ortools) + +# Create the native library +add_library(jniortools SHARED "") +set_target_properties(jniortools PROPERTIES + POSITION_INDEPENDENT_CODE ON) +# note: macOS is APPLE and also UNIX ! +if(APPLE) + set_target_properties(jniortools PROPERTIES INSTALL_RPATH "@loader_path") + # Xcode fails to build if library doesn't contains at least one source file. + if(XCODE) + file(GENERATE + OUTPUT ${PROJECT_BINARY_DIR}/jniortools/version.cpp + CONTENT "namespace {char* version = \"${PROJECT_VERSION}\";}") + target_sources(jniortools PRIVATE ${PROJECT_BINARY_DIR}/jniortools/version.cpp) + endif() +elseif(UNIX) + set_target_properties(jniortools PROPERTIES INSTALL_RPATH "$ORIGIN") +endif() + +# Swig wrap all libraries +foreach(SUBPROJECT IN ITEMS algorithms graph linear_solver constraint_solver sat util) + add_subdirectory(ortools/${SUBPROJECT}/java) + target_link_libraries(jniortools PRIVATE jni${SUBPROJECT}) +endforeach() + +################################# +## Java Native Maven Package ## +################################# +set(JAVA_NATIVE_PROJECT_PATH ${PROJECT_BINARY_DIR}/java/${JAVA_NATIVE_PROJECT}) +file(MAKE_DIRECTORY ${JAVA_NATIVE_PROJECT_PATH}/${JAVA_RESOURCES_PATH}/${NATIVE_IDENTIFIER}) + +configure_file( + ${PROJECT_SOURCE_DIR}/ortools/java/pom-native.xml.in + ${JAVA_NATIVE_PROJECT_PATH}/pom.xml + @ONLY) + +add_custom_target(java_native_package + DEPENDS + ${JAVA_NATIVE_PROJECT_PATH}/pom.xml + COMMAND ${CMAKE_COMMAND} -E copy + $ + $<$>:$> + ${JAVA_RESOURCES_PATH}/${NATIVE_IDENTIFIER}/ + COMMAND ${MAVEN_EXECUTABLE} compile + COMMAND ${MAVEN_EXECUTABLE} package + COMMAND ${MAVEN_EXECUTABLE} install + BYPRODUCTS + ${JAVA_NATIVE_PROJECT_PATH}/target + WORKING_DIRECTORY ${JAVA_NATIVE_PROJECT_PATH}) + +########################## +## Java Maven Package ## +########################## +set(JAVA_PROJECT_PATH ${PROJECT_BINARY_DIR}/java/${JAVA_PROJECT}) +file(MAKE_DIRECTORY ${JAVA_PROJECT_PATH}/${JAVA_PACKAGE_PATH}) + +configure_file( + ${PROJECT_SOURCE_DIR}/ortools/java/pom-local.xml.in + ${JAVA_PROJECT_PATH}/pom.xml + @ONLY) + +file(GLOB_RECURSE java_files RELATIVE ${PROJECT_SOURCE_DIR}/ortools/java + "ortools/java/*.java") +list(REMOVE_ITEM java_files "CMakeTest.java") +#message(WARNING "list: ${java_files}") + +set(JAVA_SRCS) +foreach(JAVA_FILE IN LISTS java_files) + #message(STATUS "java: ${JAVA_FILE}") + set(JAVA_OUT ${JAVA_PROJECT_PATH}/src/main/java/${JAVA_FILE}) + #message(STATUS "java out: ${JAVA_OUT}") + add_custom_command( + OUTPUT ${JAVA_OUT} + COMMAND ${CMAKE_COMMAND} -E copy + ${PROJECT_SOURCE_DIR}/ortools/java/${JAVA_FILE} + ${JAVA_OUT} + DEPENDS ${PROJECT_SOURCE_DIR}/ortools/java/${JAVA_FILE} + COMMENT "Copy Java file ${JAVA_FILE}" + VERBATIM) + list(APPEND JAVA_SRCS ${JAVA_OUT}) +endforeach() + +add_custom_target(java_package ALL + DEPENDS + ${JAVA_PROJECT_PATH}/pom.xml + ${JAVA_SRCS} + COMMAND ${MAVEN_EXECUTABLE} compile + COMMAND ${MAVEN_EXECUTABLE} package + COMMAND ${MAVEN_EXECUTABLE} install + BYPRODUCTS + ${JAVA_PROJECT_PATH}/target + WORKING_DIRECTORY ${JAVA_PROJECT_PATH}) +add_dependencies(java_package java_native_package Java${PROJECT_NAME}_proto) + +################# +## Java Test ## +################# +if(BUILD_TESTING) + set(TEST_PATH ${PROJECT_BINARY_DIR}/java/tests/ortools-test) + file(MAKE_DIRECTORY ${TEST_PATH}/${JAVA_TEST_PATH}) + + file(COPY ${PROJECT_SOURCE_DIR}/ortools/java/CMakeTest.java + DESTINATION ${TEST_PATH}/${JAVA_TEST_PATH}) + + set(JAVA_TEST_PROJECT ortools-test) + configure_file( + ${PROJECT_SOURCE_DIR}/ortools/java/pom-test.xml.in + ${TEST_PATH}/pom.xml + @ONLY) + + add_custom_target(java_test_Test ALL + DEPENDS ${TEST_PATH}/pom.xml + COMMAND ${MAVEN_EXECUTABLE} compile + BYPRODUCTS + ${TEST_PATH}/target + WORKING_DIRECTORY ${TEST_PATH}) + add_dependencies(java_test_Test java_package) + + add_test( + NAME java_tests_Test + COMMAND ${MAVEN_EXECUTABLE} test + WORKING_DIRECTORY ${TEST_PATH}) +endif() + +# add_java_sample() +# CMake function to generate and build java sample. +# Parameters: +# the java filename +# e.g.: +# add_java_sample(Foo.java) +function(add_java_sample FILE_NAME) + message(STATUS "Building ${FILE_NAME}: ...") + get_filename_component(SAMPLE_NAME ${FILE_NAME} NAME_WE) + get_filename_component(SAMPLE_DIR ${FILE_NAME} DIRECTORY) + get_filename_component(COMPONENT_DIR ${SAMPLE_DIR} DIRECTORY) + get_filename_component(COMPONENT_NAME ${COMPONENT_DIR} NAME) + string(REPLACE "_" "" COMPONENT_NAME_LOWER ${COMPONENT_NAME}) + + set(SAMPLE_PATH ${PROJECT_BINARY_DIR}/java/${COMPONENT_NAME}/${SAMPLE_NAME}) + file(MAKE_DIRECTORY ${SAMPLE_PATH}/${JAVA_PACKAGE_PATH}) + + file(COPY ${FILE_NAME} DESTINATION ${SAMPLE_PATH}/${JAVA_PACKAGE_PATH}) + + string(TOLOWER ${SAMPLE_NAME} JAVA_SAMPLE_PROJECT) + set(JAVA_MAIN_CLASS + "${JAVA_PACKAGE}.${COMPONENT_NAME_LOWER}.samples.${SAMPLE_NAME}") + configure_file( + ${PROJECT_SOURCE_DIR}/ortools/java/pom-sample.xml.in + ${SAMPLE_PATH}/pom.xml + @ONLY) + + add_custom_target(java_sample_${SAMPLE_NAME} ALL + DEPENDS ${SAMPLE_PATH}/pom.xml + COMMAND ${MAVEN_EXECUTABLE} compile + BYPRODUCTS + ${SAMPLE_PATH}/target + WORKING_DIRECTORY ${SAMPLE_PATH}) + add_dependencies(java_sample_${SAMPLE_NAME} java_package) + + if(BUILD_TESTING) + add_test( + NAME java_${COMPONENT_NAME}_${SAMPLE_NAME} + COMMAND ${MAVEN_EXECUTABLE} exec:java + WORKING_DIRECTORY ${SAMPLE_PATH}) + endif() + + message(STATUS "Building ${FILE_NAME}: ...DONE") +endfunction() + +# add_java_example() +# CMake function to generate and build java example. +# Parameters: +# the java filename +# e.g.: +# add_java_example(Foo.java) +function(add_java_example FILE_NAME) + message(STATUS "Building ${FILE_NAME}: ...") + get_filename_component(EXAMPLE_NAME ${FILE_NAME} NAME_WE) + get_filename_component(COMPONENT_DIR ${FILE_NAME} DIRECTORY) + get_filename_component(COMPONENT_NAME ${COMPONENT_DIR} NAME) + + set(EXAMPLE_PATH ${PROJECT_BINARY_DIR}/java/${COMPONENT_NAME}/${EXAMPLE_NAME}) + file(MAKE_DIRECTORY ${EXAMPLE_PATH}/${JAVA_PACKAGE_PATH}) + + file(COPY ${FILE_NAME} DESTINATION ${EXAMPLE_PATH}/${JAVA_PACKAGE_PATH}) + + string(TOLOWER ${EXAMPLE_NAME} JAVA_SAMPLE_PROJECT) + set(JAVA_MAIN_CLASS + "${JAVA_PACKAGE}.${COMPONENT_NAME}.${EXAMPLE_NAME}") + configure_file( + ${PROJECT_SOURCE_DIR}/ortools/java/pom-sample.xml.in + ${EXAMPLE_PATH}/pom.xml + @ONLY) + + add_custom_target(java_example_${EXAMPLE_NAME} ALL + DEPENDS ${EXAMPLE_PATH}/pom.xml + COMMAND ${MAVEN_EXECUTABLE} compile + BYPRODUCTS + ${EXAMPLE_PATH}/target + WORKING_DIRECTORY ${EXAMPLE_PATH}) + add_dependencies(java_example_${EXAMPLE_NAME} java_package) + + if(BUILD_TESTING) + add_test( + NAME java_${COMPONENT_NAME}_${EXAMPLE_NAME} + COMMAND ${MAVEN_EXECUTABLE} exec:java + WORKING_DIRECTORY ${EXAMPLE_PATH}) + endif() + + message(STATUS "Building ${FILE_NAME}: ...DONE") +endfunction() + +# add_java_test() +# CMake function to generate and build java test. +# Parameters: +# the java filename +# e.g.: +# add_java_test(Foo.java) +function(add_java_test FILE_NAME) + message(STATUS "Building ${FILE_NAME}: ...") + get_filename_component(TEST_NAME ${FILE_NAME} NAME_WE) + get_filename_component(COMPONENT_DIR ${FILE_NAME} DIRECTORY) + get_filename_component(COMPONENT_NAME ${COMPONENT_DIR} NAME) + + set(TEST_PATH ${PROJECT_BINARY_DIR}/java/${COMPONENT_NAME}/${TEST_NAME}) + file(MAKE_DIRECTORY ${TEST_PATH}/${JAVA_TEST_PATH}) + + file(COPY ${FILE_NAME} DESTINATION ${TEST_PATH}/${JAVA_TEST_PATH}) + + string(TOLOWER ${TEST_NAME} JAVA_TEST_PROJECT) + configure_file( + ${PROJECT_SOURCE_DIR}/ortools/java/pom-test.xml.in + ${TEST_PATH}/pom.xml + @ONLY) + + add_custom_target(java_test_${TEST_NAME} ALL + DEPENDS ${TEST_PATH}/pom.xml + COMMAND ${MAVEN_EXECUTABLE} compile + BYPRODUCTS + ${TEST_PATH}/target + WORKING_DIRECTORY ${TEST_PATH}) + add_dependencies(java_test_${TEST_NAME} java_package) + + if(BUILD_TESTING) + add_test( + NAME java_${COMPONENT_NAME}_${TEST_NAME} + COMMAND ${MAVEN_EXECUTABLE} test + WORKING_DIRECTORY ${TEST_PATH}) + endif() + + message(STATUS "Building ${FILE_NAME}: ...DONE") +endfunction() diff --git a/libs/or-tools-stable/cmake/ortoolsConfig.cmake.in b/libs/or-tools-stable/cmake/ortoolsConfig.cmake.in new file mode 100644 index 0000000000000000000000000000000000000000..845571c341395af8d658bdc9a2f5e124f1378bb3 --- /dev/null +++ b/libs/or-tools-stable/cmake/ortoolsConfig.cmake.in @@ -0,0 +1,39 @@ +## ortools CMake configuration file + +set(@PACKAGE_PREFIX@_VERSION @PROJECT_VERSION@) + +@PACKAGE_INIT@ + +include(CMakeFindDependencyMacro) +# Kitware CMake provide a FindZLIB.cmake module +if(NOT ZLIB_FOUND AND NOT TARGET ZLIB::ZLIB) + find_dependency(ZLIB REQUIRED) +endif() + +if(${CMAKE_VERSION} VERSION_GREATER_EQUAL "3.9.6") + set(CONFIG_FLAG CONFIG) +endif() + +if(NOT absl_FOUND) + find_dependency(absl REQUIRED ${CONFIG_FLAG}) +endif() +if(NOT Protobuf_FOUND AND NOT PROTOBUF_FOUND AND NOT TARGET protobuf::libprotobuf) + find_dependency(Protobuf REQUIRED ${CONFIG_FLAG}) +endif() + +if(@USE_SCIP@) + if(NOT scip_FOUND AND NOT TARGET libscip) + find_dependency(scip REQUIRED ${CONFIG_FLAG}) + endif() +endif() + +if(@USE_COINOR@) + if(NOT Clp_FOUND AND NOT TARGET Coin::ClpSolver) + find_dependency(Clp REQUIRED ${CONFIG_FLAG}) + endif() + if(NOT Cbc_FOUND AND NOT TARGET Coin::CbcSolver) + find_dependency(Cbc REQUIRED ${CONFIG_FLAG}) + endif() +endif() + +include("${CMAKE_CURRENT_LIST_DIR}/@PROJECT_NAME@Targets.cmake") diff --git a/libs/or-tools-stable/cmake/python-install.cmake.in b/libs/or-tools-stable/cmake/python-install.cmake.in new file mode 100644 index 0000000000000000000000000000000000000000..49bd2a5930edcf95789d0b4a6319e2cb0952a9a6 --- /dev/null +++ b/libs/or-tools-stable/cmake/python-install.cmake.in @@ -0,0 +1,31 @@ +if(DEFINED ENV{DESTDIR}) + # If DESTDIR is not absolute path, make it relative to @PROJECT_BINARY_DIR@ + # like any install() command. + if(IS_ABSOLUTE $ENV{DESTDIR}) + set(ROOT "--root=$ENV{DESTDIR}") + else() + set(ROOT "--root=@PROJECT_BINARY_DIR@/$ENV{DESTDIR}") + endif() +else() + set(ROOT "") +endif() + +# Check if we have system Python on Debian/Ubuntu, if so tell setuptools +# to use the deb layout (dist-packages instead of site-packages). +execute_process( + COMMAND @Python_EXECUTABLE@ -c "import sys; sys.stdout.write(sys.path[-1])" + OUTPUT_VARIABLE Python_STDLIB_DIR +) +if(Python_STDLIB_DIR MATCHES ".*/dist-packages$") + set(SETUPTOOLS_INSTALL_LAYOUT "--install-layout=deb") +else() + set(SETUPTOOLS_INSTALL_LAYOUT "") +endif() + +execute_process( + WORKING_DIRECTORY @PROJECT_BINARY_DIR@/python + COMMAND @Python_EXECUTABLE@ setup.py install + ${ROOT} + --prefix=@CMAKE_INSTALL_PREFIX@ + ${SETUPTOOLS_INSTALL_LAYOUT} +) diff --git a/libs/or-tools-stable/cmake/python.cmake b/libs/or-tools-stable/cmake/python.cmake new file mode 100644 index 0000000000000000000000000000000000000000..d081c04f25cff1701a1031112ef9acc9e816f407 --- /dev/null +++ b/libs/or-tools-stable/cmake/python.cmake @@ -0,0 +1,274 @@ +if(NOT BUILD_PYTHON) + return() +endif() + +# Use latest UseSWIG module +cmake_minimum_required(VERSION 3.14) + +if(NOT TARGET ortools::ortools) + message(FATAL_ERROR "Python: missing ortools TARGET") +endif() + +# Will need swig +set(CMAKE_SWIG_FLAGS) +find_package(SWIG REQUIRED) +include(UseSWIG) + +if(${SWIG_VERSION} VERSION_GREATER_EQUAL 4) + list(APPEND CMAKE_SWIG_FLAGS "-doxygen") +endif() + +if(UNIX AND NOT APPLE) + list(APPEND CMAKE_SWIG_FLAGS "-DSWIGWORDSIZE64") +endif() + +# Find Python +find_package(Python REQUIRED COMPONENTS Interpreter Development) + +if(Python_VERSION VERSION_GREATER_EQUAL 3) + list(APPEND CMAKE_SWIG_FLAGS "-py3" "-DPY3") +endif() + +# Find if python module MODULE_NAME is available, +# if not install it to the Python user install directory. +function(search_python_module MODULE_NAME) + execute_process( + COMMAND ${Python_EXECUTABLE} -c "import ${MODULE_NAME}; print(${MODULE_NAME}.__version__)" + RESULT_VARIABLE _RESULT + OUTPUT_VARIABLE MODULE_VERSION + ERROR_QUIET + OUTPUT_STRIP_TRAILING_WHITESPACE + ) + if(${_RESULT} STREQUAL "0") + message(STATUS "Found python module: ${MODULE_NAME} (found version \"${MODULE_VERSION}\")") + else() + message(WARNING "Can't find python module \"${MODULE_NAME}\", install it using pip...") + execute_process( + COMMAND ${Python_EXECUTABLE} -m pip install --user ${MODULE_NAME} + OUTPUT_STRIP_TRAILING_WHITESPACE + ) + endif() +endfunction() + +# Find if python builtin module MODULE_NAME is available. +function(search_python_internal_module MODULE_NAME) + execute_process( + COMMAND ${Python_EXECUTABLE} -c "import ${MODULE_NAME}" + RESULT_VARIABLE _RESULT + OUTPUT_VARIABLE MODULE_VERSION + ERROR_QUIET + OUTPUT_STRIP_TRAILING_WHITESPACE + ) + if(${_RESULT} STREQUAL "0") + message(STATUS "Found python internal module: ${MODULE_NAME}") + else() + message(FATAL_ERROR "Can't find python internal module \"${MODULE_NAME}\", please install it using your system package manger") + endif() +endfunction() + +# Generate Protobuf py sources with mypy support +search_python_module(mypy-protobuf) +set(PROTO_PYS) +file(GLOB_RECURSE proto_py_files RELATIVE ${PROJECT_SOURCE_DIR} + "ortools/constraint_solver/*.proto" + "ortools/data/*.proto" + "ortools/linear_solver/*.proto" + "ortools/sat/*.proto" + "ortools/util/*.proto" + ) +list(REMOVE_ITEM proto_py_files "ortools/constraint_solver/demon_profiler.proto") +foreach(PROTO_FILE IN LISTS proto_py_files) + #message(STATUS "protoc proto(py): ${PROTO_FILE}") + get_filename_component(PROTO_DIR ${PROTO_FILE} DIRECTORY) + get_filename_component(PROTO_NAME ${PROTO_FILE} NAME_WE) + set(PROTO_PY ${PROJECT_BINARY_DIR}/python/${PROTO_DIR}/${PROTO_NAME}_pb2.py) + #message(STATUS "protoc py: ${PROTO_PY}") + add_custom_command( + OUTPUT ${PROTO_PY} + COMMAND protobuf::protoc + "--proto_path=${PROJECT_SOURCE_DIR}" + ${PROTO_DIRS} + "--python_out=${PROJECT_BINARY_DIR}/python" + "--mypy_out=${PROJECT_BINARY_DIR}/python" + ${PROTO_FILE} + DEPENDS ${PROTO_FILE} protobuf::protoc + COMMENT "Generate Python protocol buffer for ${PROTO_FILE}" + VERBATIM) + list(APPEND PROTO_PYS ${PROTO_PY}) +endforeach() +add_custom_target(Py${PROJECT_NAME}_proto DEPENDS ${PROTO_PYS} ortools::ortools) + +# CMake will remove all '-D' prefix (i.e. -DUSE_FOO become USE_FOO) +#get_target_property(FLAGS ortools::ortools COMPILE_DEFINITIONS) +set(FLAGS -DUSE_BOP -DUSE_GLOP -DABSL_MUST_USE_RESULT) +if(USE_SCIP) + list(APPEND FLAGS "-DUSE_SCIP") +endif() +if(USE_COINOR) + list(APPEND FLAGS "-DUSE_CBC" "-DUSE_CLP") +endif() +list(APPEND CMAKE_SWIG_FLAGS ${FLAGS} "-I${PROJECT_SOURCE_DIR}") + +foreach(SUBPROJECT IN ITEMS algorithms graph linear_solver constraint_solver sat data util) + add_subdirectory(ortools/${SUBPROJECT}/python) +endforeach() + +####################### +## Python Packaging ## +####################### +#file(MAKE_DIRECTORY python/${PROJECT_NAME}) +file(COPY ortools/__init__.py DESTINATION python/${PROJECT_NAME}) +file(COPY ortools/__init__.py DESTINATION python/${PROJECT_NAME}/util) +file(COPY ortools/__init__.py DESTINATION python/${PROJECT_NAME}/constraint_solver) +file(COPY ortools/__init__.py DESTINATION python/${PROJECT_NAME}/linear_solver) +file(COPY ortools/__init__.py DESTINATION python/${PROJECT_NAME}/sat) +file(COPY ortools/__init__.py DESTINATION python/${PROJECT_NAME}/sat/python) +file(COPY ortools/__init__.py DESTINATION python/${PROJECT_NAME}/graph) +file(COPY ortools/__init__.py DESTINATION python/${PROJECT_NAME}/algorithms) +file(COPY ortools/__init__.py DESTINATION python/${PROJECT_NAME}/data) + +file(COPY + ortools/linear_solver/linear_solver_natural_api.py + DESTINATION python/ortools/linear_solver) +file(COPY + ortools/sat/python/cp_model.py + ortools/sat/python/cp_model_helper.py + ortools/sat/python/visualization.py + DESTINATION python/ortools/sat/python) + +# setup.py.in contains cmake variable e.g. @PROJECT_NAME@ and +# generator expression e.g. $ +configure_file( + ${PROJECT_SOURCE_DIR}/ortools/python/setup.py.in + ${PROJECT_BINARY_DIR}/python/setup.py.in + @ONLY) +file(GENERATE + OUTPUT ${PROJECT_BINARY_DIR}/python/$/setup.py + INPUT ${PROJECT_BINARY_DIR}/python/setup.py.in) + +configure_file( + ${PROJECT_SOURCE_DIR}/tools/README.pypi.txt + ${PROJECT_BINARY_DIR}/python/README.txt + COPYONLY) + +# Look for python module wheel +search_python_module(setuptools) +search_python_module(wheel) + +# Main Target +add_custom_target(python_package ALL + COMMAND ${CMAKE_COMMAND} -E copy $/setup.py setup.py + COMMAND ${CMAKE_COMMAND} -E remove_directory dist + COMMAND ${CMAKE_COMMAND} -E make_directory ${PROJECT_NAME}/.libs + # Don't need to copy static lib on windows. + COMMAND ${CMAKE_COMMAND} -E $,copy,true> + $<$:$> ${PROJECT_NAME}/.libs + COMMAND ${CMAKE_COMMAND} -E copy $ ${PROJECT_NAME}/algorithms + COMMAND ${CMAKE_COMMAND} -E copy $ ${PROJECT_NAME}/graph + COMMAND ${CMAKE_COMMAND} -E copy $ ${PROJECT_NAME}/constraint_solver + COMMAND ${CMAKE_COMMAND} -E copy $ ${PROJECT_NAME}/linear_solver + COMMAND ${CMAKE_COMMAND} -E copy $ ${PROJECT_NAME}/sat + COMMAND ${CMAKE_COMMAND} -E copy $ ${PROJECT_NAME}/data + COMMAND ${CMAKE_COMMAND} -E copy $ ${PROJECT_NAME}/util + #COMMAND ${Python_EXECUTABLE} setup.py bdist_egg bdist_wheel + COMMAND ${Python_EXECUTABLE} setup.py bdist_wheel + BYPRODUCTS + python/${PROJECT_NAME} + python/build + python/dist + python/${PROJECT_NAME}.egg-info + WORKING_DIRECTORY python + ) +add_dependencies(python_package ortools::ortools Py${PROJECT_NAME}_proto) + +# Install rules +configure_file( + ${PROJECT_SOURCE_DIR}/cmake/python-install.cmake.in + ${PROJECT_BINARY_DIR}/python/python-install.cmake + @ONLY) +install(SCRIPT ${PROJECT_BINARY_DIR}/python/python-install.cmake) + +# Test +if(BUILD_TESTING) + # Look for python module venv + search_python_module(absl-py) + search_python_internal_module(venv) + # Testing using a vitual environment + set(VENV_EXECUTABLE ${Python_EXECUTABLE} -m venv) + set(VENV_DIR ${PROJECT_BINARY_DIR}/python/venv) + if(WIN32) + set(VENV_Python_EXECUTABLE "${VENV_DIR}\\Scripts\\python.exe") + else() + set(VENV_Python_EXECUTABLE ${VENV_DIR}/bin/python) + endif() + # make a virtualenv to install our python package in it + add_custom_command(TARGET python_package POST_BUILD + COMMAND ${VENV_EXECUTABLE} ${VENV_DIR} + # Must not call it in a folder containing the setup.py otherwise pip call it + # (i.e. "python setup.py bdist") while we want to consume the wheel package + COMMAND ${VENV_Python_EXECUTABLE} -m pip install --find-links=${CMAKE_CURRENT_BINARY_DIR}/python/dist ${PROJECT_NAME} + COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/test.py.in ${VENV_DIR}/test.py + BYPRODUCTS ${VENV_DIR} + WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} VERBATIM) + # run the tests within the virtualenv + add_test(NAME pytest_venv + COMMAND ${VENV_Python_EXECUTABLE} ${VENV_DIR}/test.py) +endif() + +# add_python_sample() +# CMake function to generate and build python sample. +# Parameters: +# the python filename +# e.g.: +# add_python_sample(foo.py) +function(add_python_sample FILE_NAME) + get_filename_component(SAMPLE_NAME ${FILE_NAME} NAME_WE) + get_filename_component(SAMPLE_DIR ${FILE_NAME} DIRECTORY) + get_filename_component(COMPONENT_DIR ${SAMPLE_DIR} DIRECTORY) + get_filename_component(COMPONENT_NAME ${COMPONENT_DIR} NAME) + + if(BUILD_TESTING) + add_test( + NAME python_${COMPONENT_NAME}_${SAMPLE_NAME} + COMMAND ${VENV_Python_EXECUTABLE} ${FILE_NAME} + WORKING_DIRECTORY ${VENV_DIR}) + endif() +endfunction() + +# add_python_example() +# CMake function to generate and build python example. +# Parameters: +# the python filename +# e.g.: +# add_python_example(foo.py) +function(add_python_example FILE_NAME) + get_filename_component(EXAMPLE_NAME ${FILE_NAME} NAME_WE) + get_filename_component(COMPONENT_DIR ${FILE_NAME} DIRECTORY) + get_filename_component(COMPONENT_NAME ${COMPONENT_DIR} NAME) + + if(BUILD_TESTING) + add_test( + NAME python_${COMPONENT_NAME}_${EXAMPLE_NAME} + COMMAND ${VENV_Python_EXECUTABLE} ${FILE_NAME} + WORKING_DIRECTORY ${VENV_DIR}) + endif() +endfunction() + +# add_python_test() +# CMake function to generate and build python test. +# Parameters: +# the python filename +# e.g.: +# add_python_test(foo.py) +function(add_python_test FILE_NAME) + get_filename_component(TEST_NAME ${FILE_NAME} NAME_WE) + get_filename_component(COMPONENT_DIR ${FILE_NAME} DIRECTORY) + get_filename_component(COMPONENT_NAME ${COMPONENT_DIR} NAME) + + if(BUILD_TESTING) + add_test( + NAME python_${COMPONENT_NAME}_${TEST_NAME} + COMMAND ${VENV_Python_EXECUTABLE} ${FILE_NAME} + WORKING_DIRECTORY ${VENV_DIR}) + endif() +endfunction() diff --git a/libs/or-tools-stable/cmake/samples/cpp/CMakeLists.txt b/libs/or-tools-stable/cmake/samples/cpp/CMakeLists.txt new file mode 100644 index 0000000000000000000000000000000000000000..b51b0f5d61499a2e4aa25647c67c5288dab2068f --- /dev/null +++ b/libs/or-tools-stable/cmake/samples/cpp/CMakeLists.txt @@ -0,0 +1,19 @@ +cmake_minimum_required(VERSION 3.14) +project(Sample VERSION 1.0.0 LANGUAGES CXX) + +include(CTest) +find_package(ortools CONFIG REQUIRED) + +add_executable(sample main.cpp) +target_compile_features(sample PUBLIC cxx_std_17) +set_target_properties(sample PROPERTIES VERSION ${PROJECT_VERSION}) +target_link_libraries(sample PRIVATE ortools::ortools) + +if(BUILD_TESTING) + add_test(NAME sample_UT COMMAND sample) +endif() + +include(GNUInstallDirs) +install(TARGETS sample + EXPORT SampleTargets + DESTINATION ${CMAKE_INSTALL_BINDIR}) diff --git a/libs/or-tools-stable/cmake/samples/cpp/main.cpp b/libs/or-tools-stable/cmake/samples/cpp/main.cpp new file mode 100644 index 0000000000000000000000000000000000000000..d2dbe41d811c6e621c76ab766e1393cabf94fd2d --- /dev/null +++ b/libs/or-tools-stable/cmake/samples/cpp/main.cpp @@ -0,0 +1,52 @@ +#include +#include +#include + +namespace operations_research { +void RunLinearExample( + MPSolver::OptimizationProblemType optimization_problem_type) { + MPSolver solver("LinearExample", optimization_problem_type); + const double infinity = solver.infinity(); + // x and y are non-negative variables. + MPVariable* const x = solver.MakeNumVar(0.0, infinity, "x"); + MPVariable* const y = solver.MakeNumVar(0.0, infinity, "y"); + // Objective function: 3x + 4y. + MPObjective* const objective = solver.MutableObjective(); + objective->SetCoefficient(x, 3); + objective->SetCoefficient(y, 4); + objective->SetMaximization(); + // x + 2y <= 14. + MPConstraint* const c0 = solver.MakeRowConstraint(-infinity, 14.0); + c0->SetCoefficient(x, 1); + c0->SetCoefficient(y, 2); + + // 3x - y >= 0. + MPConstraint* const c1 = solver.MakeRowConstraint(0.0, infinity); + c1->SetCoefficient(x, 3); + c1->SetCoefficient(y, -1); + + // x - y <= 2. + MPConstraint* const c2 = solver.MakeRowConstraint(-infinity, 2.0); + c2->SetCoefficient(x, 1); + c2->SetCoefficient(y, -1); + std::cout << "Number of variables = " << solver.NumVariables() << std::endl; + std::cout << "Number of constraints = " << solver.NumConstraints() << std::endl; + solver.Solve(); + // The value of each variable in the solution. + std::cout << "Solution:" << std::endl + << "x = " << x->solution_value() << std::endl + << "y = " << y->solution_value() << std::endl; + + // The objective value of the solution. + std::cout << "Optimal objective value = " << objective->Value() << std::endl; +} + +void RunExample() { + RunLinearExample(MPSolver::GLOP_LINEAR_PROGRAMMING); +} +} // namespace operations_research + +int main(int argc, char** argv) { + operations_research::RunExample(); + return 0; +} diff --git a/libs/or-tools-stable/cmake/samples/dotnet/CPSample.cs b/libs/or-tools-stable/cmake/samples/dotnet/CPSample.cs new file mode 100644 index 0000000000000000000000000000000000000000..acc5ca18f22cae61eab416f4ca49dd764e1ce696 --- /dev/null +++ b/libs/or-tools-stable/cmake/samples/dotnet/CPSample.cs @@ -0,0 +1,24 @@ +using System; +using Xunit; + +using Google.OrTools.ConstraintSolver; + +namespace Google.OrTools.Tests { + public class ConstraintSolverTest { + [Theory] + [InlineData(false)] + [InlineData(true)] + public void SolverTest(bool callGC) { + Solver solver = new Solver("Solver"); + IntVar x = solver.MakeIntVar(3, 7, "x"); + + if (callGC) { + GC.Collect(); + } + + Assert.Equal(3, x.Min()); + Assert.Equal(7, x.Max()); + Assert.Equal("x(3..7)", x.ToString()); + } + } +} // namespace Google.Sample.Tests diff --git a/libs/or-tools-stable/cmake/samples/dotnet/Google.Sample.csproj b/libs/or-tools-stable/cmake/samples/dotnet/Google.Sample.csproj new file mode 100644 index 0000000000000000000000000000000000000000..3cfb9446f614eac7eacb4b9cec4d94c7aa2805b9 --- /dev/null +++ b/libs/or-tools-stable/cmake/samples/dotnet/Google.Sample.csproj @@ -0,0 +1,31 @@ + + + Exe + 7.3 + netcoreapp2.1 + + LatestMajor + Google.Sample + + + false + + + + full + true + true + + + + + .;$(RestoreSources);https://api.nuget.org/v3/index.json + + + + + + + + + diff --git a/libs/or-tools-stable/cmake/samples/dotnet/LPSample.cs b/libs/or-tools-stable/cmake/samples/dotnet/LPSample.cs new file mode 100644 index 0000000000000000000000000000000000000000..9de027737734d1756aabfa85833d1180ab85908a --- /dev/null +++ b/libs/or-tools-stable/cmake/samples/dotnet/LPSample.cs @@ -0,0 +1,21 @@ +using System; +using Xunit; + +using Google.OrTools.LinearSolver; + +namespace Google.OrTools.Tests { + public class LinearSolverTest { + [Theory] + [InlineData(false)] + [InlineData(true)] + public void SolverTest(bool callGC) { + Solver solver = new Solver( + "Solver", + Solver.OptimizationProblemType.CLP_LINEAR_PROGRAMMING); + + if (callGC) { + GC.Collect(); + } + } + } +} // namespace Google.Sample.Tests diff --git a/libs/or-tools-stable/cmake/samples/dotnet/RoutingSample.cs b/libs/or-tools-stable/cmake/samples/dotnet/RoutingSample.cs new file mode 100644 index 0000000000000000000000000000000000000000..edd1bed20cca16ef139ba4b1704157ae2453d36e --- /dev/null +++ b/libs/or-tools-stable/cmake/samples/dotnet/RoutingSample.cs @@ -0,0 +1,40 @@ +using System; +using Xunit; + +using Google.OrTools.ConstraintSolver; + +namespace Google.OrTools.Tests { + public class RoutingSolverTest { + [Theory] + [InlineData(false)] + [InlineData(true)] + public void SolverTest(bool callGC) { + // Create Routing Index Manager + RoutingIndexManager manager = new RoutingIndexManager( + 5/*locations*/, 1/*vehicle*/, 0/*depot*/); + // Create Routing Model. + RoutingModel routing = new RoutingModel(manager); + // Create a distance callback. + int transitCallbackIndex = routing.RegisterTransitCallback( + (long fromIndex, long toIndex) => { + // Convert from routing variable Index to distance matrix NodeIndex. + var fromNode = manager.IndexToNode(fromIndex); + var toNode = manager.IndexToNode(toIndex); + return Math.Abs(toNode - fromNode); + }); + // Define cost of each arc. + routing.SetArcCostEvaluatorOfAllVehicles(transitCallbackIndex); + if (callGC) { + GC.Collect(); + } + // Setting first solution heuristic. + RoutingSearchParameters searchParameters = + operations_research_constraint_solver.DefaultRoutingSearchParameters(); + searchParameters.FirstSolutionStrategy = + FirstSolutionStrategy.Types.Value.PathCheapestArc; + Assignment solution = routing.SolveWithParameters(searchParameters); + // 0 --(+1)-> 1 --(+1)-> 2 --(+1)-> 3 --(+1)-> 4 --(+4)-> 0 := +8 + Assert.Equal(8, solution.ObjectiveValue()); + } + } +} // namespace Google.Sample.Tests diff --git a/libs/or-tools-stable/cmake/samples/dotnet/SATSample.cs b/libs/or-tools-stable/cmake/samples/dotnet/SATSample.cs new file mode 100644 index 0000000000000000000000000000000000000000..122df519a75b72f35ae06f362182a0edb255acf9 --- /dev/null +++ b/libs/or-tools-stable/cmake/samples/dotnet/SATSample.cs @@ -0,0 +1,28 @@ +using System; +using Xunit; + +using Google.OrTools.Sat; + +namespace Google.OrTools.Tests { + public class SatSolverTest { + [Theory] + [InlineData(false)] + [InlineData(true)] + public void SolverTest(bool callGC) { + CpModel model = new CpModel(); + + int num_vals = 3; + IntVar x = model.NewIntVar(0, num_vals - 1, "x"); + IntVar y = model.NewIntVar(0, num_vals - 1, "y"); + IntVar z = model.NewIntVar(0, num_vals - 1, "z"); + + model.Add(x != y); + + CpSolver solver = new CpSolver(); + if (callGC) { + GC.Collect(); + } + CpSolverStatus status = solver.Solve(model); + } + } +} // namespace Google.Sample.Tests diff --git a/libs/or-tools-stable/cmake/samples/glop/CMakeLists.txt b/libs/or-tools-stable/cmake/samples/glop/CMakeLists.txt new file mode 100644 index 0000000000000000000000000000000000000000..a7b4da15a3adfeecae312b39662b7ebf5355b16a --- /dev/null +++ b/libs/or-tools-stable/cmake/samples/glop/CMakeLists.txt @@ -0,0 +1,19 @@ +cmake_minimum_required(VERSION 3.14) +project(Sample VERSION 1.0.0 LANGUAGES CXX) + +include(CTest) +find_package(glop CONFIG REQUIRED) + +add_executable(sample main.cpp) +target_compile_features(sample PUBLIC cxx_std_17) +set_target_properties(sample PROPERTIES VERSION ${PROJECT_VERSION}) +target_link_libraries(sample PRIVATE ortools::glop) + +if(BUILD_TESTING) + add_test(NAME sample_UT COMMAND sample) +endif() + +include(GNUInstallDirs) +install(TARGETS sample + EXPORT SampleTargets + DESTINATION ${CMAKE_INSTALL_BINDIR}) diff --git a/libs/or-tools-stable/cmake/samples/glop/main.cpp b/libs/or-tools-stable/cmake/samples/glop/main.cpp new file mode 100644 index 0000000000000000000000000000000000000000..947cbacd261c5997006aadf01e3aac3ef8341e27 --- /dev/null +++ b/libs/or-tools-stable/cmake/samples/glop/main.cpp @@ -0,0 +1,54 @@ +#include +#include +#include +#include + +namespace operations_research::glop { + int RunLinearExample() { + LinearProgram linear_program; + // Create the variables x and y. + ColIndex col_x = linear_program.FindOrCreateVariable("x"); + linear_program.SetVariableBounds(col_x, 0.0, 1.0); + ColIndex col_y = linear_program.FindOrCreateVariable("y"); + linear_program.SetVariableBounds(col_y, 0.0, 2.0); + + // Create linear constraint: 0 <= x + y <= 2. + RowIndex row_r1 = linear_program.FindOrCreateConstraint("r1"); + linear_program.SetConstraintBounds(row_r1, 0.0, 2.0); + linear_program.SetCoefficient(row_r1, col_x, 1); + linear_program.SetCoefficient(row_r1, col_y, 1); + + // Create objective function: 3 * x + y. + linear_program.SetObjectiveCoefficient(col_x, 3); + linear_program.SetObjectiveCoefficient(col_y, 1); + linear_program.SetMaximizationProblem(true); + + linear_program.CleanUp(); + + std::cout << "Number of variables = " << linear_program.num_variables() << std::endl; + std::cout << "Number of constraints = " << linear_program.num_constraints() << std::endl; + + LPSolver solver; + GlopParameters parameters; + parameters.set_provide_strong_optimal_guarantee(true); + solver.SetParameters(parameters); + + ProblemStatus status = solver.Solve(linear_program); + if (status == ProblemStatus::OPTIMAL) { + std::cout << "Optimal solution found !" << std::endl; + // The objective value of the solution. + std::cout << "Optimal objective value = " << solver.GetObjectiveValue() << std::endl; + // The value of each variable in the solution. + const DenseRow& values = solver.variable_values(); + std::cout << "Solution:" << std::endl + << "x = " << values[col_x] << std::endl + << ", y = " << values[col_y] << std::endl; + return 0; + } else + return 1; + } +} // namespace operations_research::glop + +int main(int argc, char** argv) { + return operations_research::glop::RunLinearExample(); +} diff --git a/libs/or-tools-stable/cmake/samples/java/pom.xml b/libs/or-tools-stable/cmake/samples/java/pom.xml new file mode 100644 index 0000000000000000000000000000000000000000..74a7347a92c980ac3df223acd2018168290a0f72 --- /dev/null +++ b/libs/or-tools-stable/cmake/samples/java/pom.xml @@ -0,0 +1,29 @@ + + + + 4.0.0 + + com.google.ortools + sample + jar + 1.0-SNAPSHOT + + sample + https://developers.google.com/optimization/ + + + UTF-8 + 1.7 + 1.7 + + + + + junit + junit + 4.11 + test + + + diff --git a/libs/or-tools-stable/cmake/samples/java/src/main/java/com/google/ortools/App.java b/libs/or-tools-stable/cmake/samples/java/src/main/java/com/google/ortools/App.java new file mode 100644 index 0000000000000000000000000000000000000000..19565bd99c03bffbf86aab67b81fdf4f30417bdd --- /dev/null +++ b/libs/or-tools-stable/cmake/samples/java/src/main/java/com/google/ortools/App.java @@ -0,0 +1,13 @@ +package com.google.ortools; + +/** + * Hello world! + * + */ +public class App +{ + public static void main( String[] args ) + { + System.out.println( "Hello World!" ); + } +} diff --git a/libs/or-tools-stable/cmake/samples/java/src/test/java/com/google/ortools/AppTest.java b/libs/or-tools-stable/cmake/samples/java/src/test/java/com/google/ortools/AppTest.java new file mode 100644 index 0000000000000000000000000000000000000000..c86f17bed534fb5754a46791516e3e5b171a36f1 --- /dev/null +++ b/libs/or-tools-stable/cmake/samples/java/src/test/java/com/google/ortools/AppTest.java @@ -0,0 +1,38 @@ +package com.google.ortools; + +import junit.framework.Test; +import junit.framework.TestCase; +import junit.framework.TestSuite; + +/** + * Unit test for simple App. + */ +public class AppTest + extends TestCase +{ + /** + * Create the test case + * + * @param testName name of the test case + */ + public AppTest( String testName ) + { + super( testName ); + } + + /** + * @return the suite of tests being tested + */ + public static Test suite() + { + return new TestSuite( AppTest.class ); + } + + /** + * Rigourous Test :-) + */ + public void testApp() + { + assertTrue( true ); + } +} diff --git a/libs/or-tools-stable/cmake/samples/python/sample.py b/libs/or-tools-stable/cmake/samples/python/sample.py new file mode 100644 index 0000000000000000000000000000000000000000..963898108c4c9132ee25cedebb4859b9968a7a12 --- /dev/null +++ b/libs/or-tools-stable/cmake/samples/python/sample.py @@ -0,0 +1,34 @@ +from ortools.linear_solver import pywraplp +from ortools.linear_solver import linear_solver_pb2 +from ortools.constraint_solver import pywrapcp +from ortools.sat import pywrapsat +from ortools.graph import pywrapgraph +from ortools.algorithms import pywrapknapsack_solver +from ortools.data import pywraprcpsp + +def lpsolver(): + print('Test lpsolver...') + lpsolver = pywraplp.Solver( + 'LinearTest', + pywraplp.Solver.GLOP_LINEAR_PROGRAMMING) + lpsolver.Solve() + print('Test lpsolver...DONE') + +def cpsolver(): + print('Test cpsolver...') + cpsolver = pywrapcp.Solver('ConstraintTest') + num_vals = 3 + x = cpsolver.IntVar(0, num_vals - 1, "x") + y = cpsolver.IntVar(0, num_vals - 1, "y") + z = cpsolver.IntVar(0, num_vals - 1, "z") + cpsolver.Add(x != y) + db = cpsolver.Phase([x, y, z], cpsolver.CHOOSE_FIRST_UNBOUND, cpsolver.ASSIGN_MIN_VALUE) + cpsolver.Solve(db) + print('Test cpsolver...DONE') + +def main(): + lpsolver() + cpsolver() + +if __name__ == "__main__": + main() diff --git a/libs/or-tools-stable/cmake/utils.cmake b/libs/or-tools-stable/cmake/utils.cmake new file mode 100644 index 0000000000000000000000000000000000000000..44ca4db3a8bd9a46bd51f49981800590ef1b734e --- /dev/null +++ b/libs/or-tools-stable/cmake/utils.cmake @@ -0,0 +1,128 @@ +function(get_patch_from_git VERSION_PATCH) + find_package(Git QUIET) + if(NOT GIT_FOUND) + message(STATUS "Did not find git package.") + set(PATCH 9999) + else() + # If no tags can be found, it is a git shallow clone + execute_process(COMMAND + ${GIT_EXECUTABLE} describe --tags + RESULT_VARIABLE _OUTPUT_VAR + OUTPUT_VARIABLE FULL + ERROR_QUIET + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}) + if(NOT _OUTPUT_VAR) + execute_process(COMMAND + ${GIT_EXECUTABLE} rev-list HEAD --count + RESULT_VARIABLE _OUTPUT_VAR + OUTPUT_VARIABLE PATCH + ERROR_QUIET + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}) + STRING(STRIP PATCH ${PATCH}) + STRING(REGEX REPLACE "\n$" "" PATCH ${PATCH}) + STRING(REGEX REPLACE " " "" PATCH ${PATCH}) + else() + message(STATUS "Did not find any tag.") + set(PATCH 9999) + endif() + endif() + set(${VERSION_PATCH} ${PATCH} PARENT_SCOPE) +endfunction() + +function(set_version VERSION) + # Get Major and Minor from Version.txt + file(STRINGS "Version.txt" VERSION_STR) + foreach(STR ${VERSION_STR}) + if(${STR} MATCHES "OR_TOOLS_MAJOR=(.*)") + set(MAJOR ${CMAKE_MATCH_1}) + endif() + if(${STR} MATCHES "OR_TOOLS_MINOR=(.*)") + set(MINOR ${CMAKE_MATCH_1}) + endif() + endforeach() + + # Compute Patch if .git is present otherwise set it to 9999 + get_filename_component(GIT_DIR ".git" ABSOLUTE) + if(EXISTS ${GIT_DIR}) + get_patch_from_git(PATCH) + else() + set(PATCH 9999) + endif() + set(${VERSION} "${MAJOR}.${MINOR}.${PATCH}" PARENT_SCOPE) +endfunction() + + +# fetch_git_dependency() +# +# CMake function to download, build and install (in staging area) a dependency at configure +# time. +# +# Parameters: +# NAME: name of the dependency +# REPOSITORY: git url of the dependency +# TAG: tag of the dependency +# PATCH_COMMAND: apply patch +# SOURCE_SUBDIR: Path to source CMakeLists.txt relative to root dir +# CMAKE_ARGS: List of specific CMake args to add +# +# e.g.: +# fetch_git_dependency( +# NAME +# abseil-cpp +# URL +# https://github.com/abseil/abseil-cpp.git +# TAG +# master +# PATCH_COMMAND +# "git apply ${CMAKE_SOURCE_DIR}/patches/abseil-cpp.patch" +# ) +function(fetch_git_dependency) + set(options "") + set(oneValueArgs NAME REPOSITORY TAG PATCH_COMMAND SOURCE_SUBDIR) + set(multiValueArgs CMAKE_ARGS) + cmake_parse_arguments(GIT_DEP + "${options}" + "${oneValueArgs}" + "${multiValueArgs}" + ${ARGN} + ) + message(STATUS "Building ${GIT_DEP_NAME}: ...") + string(TOLOWER ${GIT_DEP_NAME} NAME_LOWER) + + if(GIT_DEP_PATCH_COMMAND) + set(PATCH_CMD "${GIT_DEP_PATCH_COMMAND}") + else() + set(PATCH_CMD "") + endif() + configure_file( + ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt.in + ${CMAKE_BINARY_DIR}/_deps/${NAME_LOWER}-subbuild/CMakeLists.txt @ONLY) + + execute_process( + COMMAND ${CMAKE_COMMAND} -S. -Bproject_build -G "${CMAKE_GENERATOR}" + RESULT_VARIABLE result + WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/_deps/${NAME_LOWER}-subbuild) + if(result) + message(FATAL_ERROR "CMake step for ${GIT_DEP_NAME} failed: ${result}") + endif() + + execute_process( + COMMAND ${CMAKE_COMMAND} --build project_build --config ${CMAKE_BUILD_TYPE} + RESULT_VARIABLE result + WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/_deps/${NAME_LOWER}-subbuild) + if(result) + message(FATAL_ERROR "Build step for ${GIT_DEP_NAME} failed: ${result}") + endif() + + if(GIT_DEP_SOURCE_SUBDIR) + add_subdirectory( + ${CMAKE_BINARY_DIR}/_deps/${NAME_LOWER}-src/${GIT_DEP_SOURCE_SUBDIR} + ${CMAKE_BINARY_DIR}/_deps/${NAME_LOWER}-build) + else() + add_subdirectory( + ${CMAKE_BINARY_DIR}/_deps/${NAME_LOWER}-src + ${CMAKE_BINARY_DIR}/_deps/${NAME_LOWER}-build) + endif() + + message(STATUS "Building ${GIT_DEP_NAME}: ...DONE") +endfunction() diff --git a/libs/or-tools-stable/cmake/vagrant/freebsd/cpp/Vagrantfile b/libs/or-tools-stable/cmake/vagrant/freebsd/cpp/Vagrantfile new file mode 100644 index 0000000000000000000000000000000000000000..0cfca2a4cec2c9a843a2cde485e6ea5bba52ca63 --- /dev/null +++ b/libs/or-tools-stable/cmake/vagrant/freebsd/cpp/Vagrantfile @@ -0,0 +1,116 @@ +# -*- mode: ruby -*- +# vi: set ft=ruby : + +# All Vagrant configuration is done below. The "2" in Vagrant.configure +# configures the configuration version (we support older styles for +# backwards compatibility). Please don't change it unless you know what +# you're doing. +Vagrant.configure("2") do |config| + # The most common configuration options are documented and commented below. + # For a complete reference, please see the online documentation at + # https://docs.vagrantup.com. + + # Every Vagrant development environment requires a box. You can search for + # boxes at https://vagrantcloud.com/search. + config.vm.guest = :freebsd + config.vm.box = "generic/freebsd12" + config.vm.provider "virtualbox" do |v| + v.name = "ortools_freebsd_cpp" + end + config.ssh.shell = "sh" + + # Disable automatic box update checking. If you disable this, then + # boxes will only be checked for updates when the user runs + # `vagrant box outdated`. This is not recommended. + # config.vm.box_check_update = false + + # Create a forwarded port mapping which allows access to a specific port + # within the machine from a port on the host machine. In the example below, + # accessing "localhost:8080" will access port 80 on the guest machine. + # NOTE: This will enable public access to the opened port + # config.vm.network "forwarded_port", guest: 80, host: 8080 + + # Create a forwarded port mapping which allows access to a specific port + # within the machine from a port on the host machine and only allow access + # via 127.0.0.1 to disable public access + # config.vm.network "forwarded_port", guest: 80, host: 8080, host_ip: "127.0.0.1" + + # Create a private network, which allows host-only access to the machine + # using a specific IP. + # config.vm.network "private_network", ip: "192.168.33.10" + + # Create a public network, which generally matched to bridged network. + # Bridged networks make the machine appear as another physical device on + # your network. + # config.vm.network "public_network" + + # Share an additional folder to the guest VM. The first argument is + # the path on the host to the actual folder. The second argument is + # the path on the guest to mount the folder. And the optional third + # argument is a set of non-required options. + #config.vm.synced_folder "../../..", "/home/vagrant/project" + config.vm.synced_folder ".", "/vagrant", id: "vagrant-root", disabled: true + + + # Provider-specific configuration so you can fine-tune various + # backing providers for Vagrant. These expose provider-specific options. + # Example for VirtualBox: + # + # config.vm.provider "virtualbox" do |vb| + # # Display the VirtualBox GUI when booting the machine + # vb.gui = true + # + # # Customize the amount of memory on the VM: + # vb.memory = "1024" + # end + # + # View the documentation for the provider you are using for more + # information on available options. + + # Enable provisioning with a shell script. Additional provisioners such as + # Ansible, Chef, Docker, Puppet and Salt are also available. Please see the + # documentation for more information about their specific syntax and use. + # note: clang installed by default + config.vm.provision "env", type: "shell", inline:<<-SHELL + set -x + pkg update -f + pkg install -y git cmake + SHELL + + config.vm.provision "file", source: "../../../../CMakeLists.txt", destination: "$HOME/project/" + config.vm.provision "file", source: "../../../../cmake", destination: "$HOME/project/" + config.vm.provision "file", source: "../../../../ortools", destination: "$HOME/project/" + config.vm.provision "file", source: "../../../../examples/contrib", destination: "$HOME/project/examples/" + config.vm.provision "file", source: "../../../../examples/cpp", destination: "$HOME/project/examples/" + config.vm.provision "file", source: "../../../../examples/dotnet", destination: "$HOME/project/examples/" + config.vm.provision "file", source: "../../../../examples/java", destination: "$HOME/project/examples/" + config.vm.provision "file", source: "../../../../examples/python", destination: "$HOME/project/examples/" + config.vm.provision "file", source: "../../../../examples/tests", destination: "$HOME/project/examples/" + config.vm.provision "file", source: "../../../../patches", destination: "$HOME/project/" + config.vm.provision "file", source: "../../../../Version.txt", destination: "$HOME/project/" + config.vm.provision "file", source: "../../../../dependencies", destination: "$HOME/project/" + + config.vm.provision "devel", type: "shell", inline:<<-SHELL + set -x + cd project + ls + SHELL + + config.vm.provision "configure", type: "shell", inline:<<-SHELL + set -x + cd project + cmake -S. -Bbuild -DBUILD_DEPS=ON + SHELL + + config.vm.provision "build", type: "shell", inline:<<-SHELL + set -x + cd project + cmake --build build -v + SHELL + + config.vm.provision "test", type: "shell", inline:<<-SHELL + set -x + cd project + cmake --build build --target test -v + SHELL +end diff --git a/libs/or-tools-stable/cmake/vagrant/freebsd/dotnet/Vagrantfile b/libs/or-tools-stable/cmake/vagrant/freebsd/dotnet/Vagrantfile new file mode 100644 index 0000000000000000000000000000000000000000..8edd5e8ba95acc23f6a38f23bf98c6d41858d544 --- /dev/null +++ b/libs/or-tools-stable/cmake/vagrant/freebsd/dotnet/Vagrantfile @@ -0,0 +1,119 @@ +# -*- mode: ruby -*- +# vi: set ft=ruby : + +# All Vagrant configuration is done below. The "2" in Vagrant.configure +# configures the configuration version (we support older styles for +# backwards compatibility). Please don't change it unless you know what +# you're doing. +Vagrant.configure("2") do |config| + # The most common configuration options are documented and commented below. + # For a complete reference, please see the online documentation at + # https://docs.vagrantup.com. + + # Every Vagrant development environment requires a box. You can search for + # boxes at https://vagrantcloud.com/search. + config.vm.guest = :freebsd + config.vm.box = "generic/freebsd12" + config.vm.provider "virtualbox" do |v| + v.name = "ortools_freebsd_dotnet" + end + config.ssh.shell = "sh" + + # Disable automatic box update checking. If you disable this, then + # boxes will only be checked for updates when the user runs + # `vagrant box outdated`. This is not recommended. + # config.vm.box_check_update = false + + # Create a forwarded port mapping which allows access to a specific port + # within the machine from a port on the host machine. In the example below, + # accessing "localhost:8080" will access port 80 on the guest machine. + # NOTE: This will enable public access to the opened port + # config.vm.network "forwarded_port", guest: 80, host: 8080 + + # Create a forwarded port mapping which allows access to a specific port + # within the machine from a port on the host machine and only allow access + # via 127.0.0.1 to disable public access + # config.vm.network "forwarded_port", guest: 80, host: 8080, host_ip: "127.0.0.1" + + # Create a private network, which allows host-only access to the machine + # using a specific IP. + # config.vm.network "private_network", ip: "192.168.33.10" + + # Create a public network, which generally matched to bridged network. + # Bridged networks make the machine appear as another physical device on + # your network. + # config.vm.network "public_network" + + # Share an additional folder to the guest VM. The first argument is + # the path on the host to the actual folder. The second argument is + # the path on the guest to mount the folder. And the optional third + # argument is a set of non-required options. + #config.vm.synced_folder "../../..", "/home/vagrant/project" + config.vm.synced_folder ".", "/vagrant", id: "vagrant-root", disabled: true + + + # Provider-specific configuration so you can fine-tune various + # backing providers for Vagrant. These expose provider-specific options. + # Example for VirtualBox: + # + # config.vm.provider "virtualbox" do |vb| + # # Display the VirtualBox GUI when booting the machine + # vb.gui = true + # + # # Customize the amount of memory on the VM: + # vb.memory = "1024" + # end + # + # View the documentation for the provider you are using for more + # information on available options. + + # Enable provisioning with a shell script. Additional provisioners such as + # Ansible, Chef, Docker, Puppet and Salt are also available. Please see the + # documentation for more information about their specific syntax and use. + # note: clang installed by default + config.vm.provision "env", type: "shell", inline:<<-SHELL + set -x + pkg update -f + pkg install -y git cmake + kldload linux64 + pkg install -y swig linux-dotnet-sdk + SHELL + + config.vm.provision "file", source: "../../../../CMakeLists.txt", destination: "$HOME/project/" + config.vm.provision "file", source: "../../../../cmake", destination: "$HOME/project/" + config.vm.provision "file", source: "../../../../ortools", destination: "$HOME/project/" + config.vm.provision "file", source: "../../../../examples/contrib", destination: "$HOME/project/examples/" + config.vm.provision "file", source: "../../../../examples/cpp", destination: "$HOME/project/examples/" + config.vm.provision "file", source: "../../../../examples/dotnet", destination: "$HOME/project/examples/" + config.vm.provision "file", source: "../../../../examples/java", destination: "$HOME/project/examples/" + config.vm.provision "file", source: "../../../../examples/python", destination: "$HOME/project/examples/" + config.vm.provision "file", source: "../../../../examples/tests", destination: "$HOME/project/examples/" + config.vm.provision "file", source: "../../../../patches", destination: "$HOME/project/" + config.vm.provision "file", source: "../../../../Version.txt", destination: "$HOME/project/" + config.vm.provision "file", source: "../../../../dependencies", destination: "$HOME/project/" + config.vm.provision "file", source: "../../../../tools/doc/orLogo.png", destination: "$HOME/project/tools/doc/" + + config.vm.provision "devel", type: "shell", inline:<<-SHELL + set -x + cd project + ls + SHELL + + config.vm.provision "configure", type: "shell", inline:<<-SHELL + set -x + cd project + cmake -S. -Bbuild -DBUILD_DOTNET=ON -DBUILD_CXX_SAMPLES=OFF -DBUILD_CXX_EXAMPLES=OFF + SHELL + + config.vm.provision "build", type: "shell", inline:<<-SHELL + set -x + cd project + cmake --build build -v + SHELL + + config.vm.provision "test", type: "shell", inline:<<-SHELL + set -x + cd project + cmake --build build --target test -v + SHELL +end diff --git a/libs/or-tools-stable/cmake/vagrant/freebsd/java/Vagrantfile b/libs/or-tools-stable/cmake/vagrant/freebsd/java/Vagrantfile new file mode 100644 index 0000000000000000000000000000000000000000..391ebb90345b6c4aba9738a6858af3c52651c111 --- /dev/null +++ b/libs/or-tools-stable/cmake/vagrant/freebsd/java/Vagrantfile @@ -0,0 +1,120 @@ +# -*- mode: ruby -*- +# vi: set ft=ruby : + +# All Vagrant configuration is done below. The "2" in Vagrant.configure +# configures the configuration version (we support older styles for +# backwards compatibility). Please don't change it unless you know what +# you're doing. +Vagrant.configure("2") do |config| + # The most common configuration options are documented and commented below. + # For a complete reference, please see the online documentation at + # https://docs.vagrantup.com. + + # Every Vagrant development environment requires a box. You can search for + # boxes at https://vagrantcloud.com/search. + config.vm.guest = :freebsd + config.vm.box = "generic/freebsd12" + config.vm.provider "virtualbox" do |v| + v.name = "ortools_freebsd_java" + end + config.ssh.shell = "sh" + + # Disable automatic box update checking. If you disable this, then + # boxes will only be checked for updates when the user runs + # `vagrant box outdated`. This is not recommended. + # config.vm.box_check_update = false + + # Create a forwarded port mapping which allows access to a specific port + # within the machine from a port on the host machine. In the example below, + # accessing "localhost:8080" will access port 80 on the guest machine. + # NOTE: This will enable public access to the opened port + # config.vm.network "forwarded_port", guest: 80, host: 8080 + + # Create a forwarded port mapping which allows access to a specific port + # within the machine from a port on the host machine and only allow access + # via 127.0.0.1 to disable public access + # config.vm.network "forwarded_port", guest: 80, host: 8080, host_ip: "127.0.0.1" + + # Create a private network, which allows host-only access to the machine + # using a specific IP. + # config.vm.network "private_network", ip: "192.168.33.10" + + # Create a public network, which generally matched to bridged network. + # Bridged networks make the machine appear as another physical device on + # your network. + # config.vm.network "public_network" + + # Share an additional folder to the guest VM. The first argument is + # the path on the host to the actual folder. The second argument is + # the path on the guest to mount the folder. And the optional third + # argument is a set of non-required options. + #config.vm.synced_folder "../../..", "/home/vagrant/project" + config.vm.synced_folder ".", "/vagrant", id: "vagrant-root", disabled: true + + + # Provider-specific configuration so you can fine-tune various + # backing providers for Vagrant. These expose provider-specific options. + # Example for VirtualBox: + # + # config.vm.provider "virtualbox" do |vb| + # # Display the VirtualBox GUI when booting the machine + # vb.gui = true + # + # # Customize the amount of memory on the VM: + # vb.memory = "1024" + # end + # + # View the documentation for the provider you are using for more + # information on available options. + + # Enable provisioning with a shell script. Additional provisioners such as + # Ansible, Chef, Docker, Puppet and Salt are also available. Please see the + # documentation for more information about their specific syntax and use. + # note: clang installed by default + config.vm.provision "env", type: "shell", inline:<<-SHELL + set -x + pkg update -f + pkg install -y git cmake + pkg install -y swig openjdk11 maven + mount -t fdescfs fdesc /dev/fd + mount -t procfs proc /proc + SHELL + + config.vm.provision "file", source: "../../../../CMakeLists.txt", destination: "$HOME/project/" + config.vm.provision "file", source: "../../../../cmake", destination: "$HOME/project/" + config.vm.provision "file", source: "../../../../ortools", destination: "$HOME/project/" + config.vm.provision "file", source: "../../../../examples/contrib", destination: "$HOME/project/examples/" + config.vm.provision "file", source: "../../../../examples/cpp", destination: "$HOME/project/examples/" + config.vm.provision "file", source: "../../../../examples/dotnet", destination: "$HOME/project/examples/" + config.vm.provision "file", source: "../../../../examples/java", destination: "$HOME/project/examples/" + config.vm.provision "file", source: "../../../../examples/python", destination: "$HOME/project/examples/" + config.vm.provision "file", source: "../../../../examples/tests", destination: "$HOME/project/examples/" + config.vm.provision "file", source: "../../../../patches", destination: "$HOME/project/" + config.vm.provision "file", source: "../../../../Version.txt", destination: "$HOME/project/" + config.vm.provision "file", source: "../../../../dependencies", destination: "$HOME/project/" + + config.vm.provision "devel", type: "shell", inline:<<-SHELL + set -x + cd project + ls + SHELL + + config.vm.provision "configure", type: "shell", inline:<<-SHELL + set -x + cd project + export JAVA_HOME=/usr/local/openjdk11 + cmake -S. -Bbuild -DBUILD_JAVA=ON -DBUILD_CXX_SAMPLES=OFF -DBUILD_CXX_EXAMPLES=OFF + SHELL + + config.vm.provision "build", type: "shell", inline:<<-SHELL + set -x + cd project + cmake --build build -v + SHELL + + config.vm.provision "test", type: "shell", inline:<<-SHELL + set -x + cd project + cmake --build build --target test -v + SHELL +end diff --git a/libs/or-tools-stable/cmake/vagrant/freebsd/python/Vagrantfile b/libs/or-tools-stable/cmake/vagrant/freebsd/python/Vagrantfile new file mode 100644 index 0000000000000000000000000000000000000000..28a399c7b2443f1f132c9248da6ca590b1f0c7fb --- /dev/null +++ b/libs/or-tools-stable/cmake/vagrant/freebsd/python/Vagrantfile @@ -0,0 +1,118 @@ +# -*- mode: ruby -*- +# vi: set ft=ruby : + +# All Vagrant configuration is done below. The "2" in Vagrant.configure +# configures the configuration version (we support older styles for +# backwards compatibility). Please don't change it unless you know what +# you're doing. +Vagrant.configure("2") do |config| + # The most common configuration options are documented and commented below. + # For a complete reference, please see the online documentation at + # https://docs.vagrantup.com. + + # Every Vagrant development environment requires a box. You can search for + # boxes at https://vagrantcloud.com/search. + config.vm.guest = :freebsd + config.vm.box = "generic/freebsd12" + config.vm.provider "virtualbox" do |v| + v.name = "ortools_freebsd_python" + end + config.ssh.shell = "sh" + + # Disable automatic box update checking. If you disable this, then + # boxes will only be checked for updates when the user runs + # `vagrant box outdated`. This is not recommended. + # config.vm.box_check_update = false + + # Create a forwarded port mapping which allows access to a specific port + # within the machine from a port on the host machine. In the example below, + # accessing "localhost:8080" will access port 80 on the guest machine. + # NOTE: This will enable public access to the opened port + # config.vm.network "forwarded_port", guest: 80, host: 8080 + + # Create a forwarded port mapping which allows access to a specific port + # within the machine from a port on the host machine and only allow access + # via 127.0.0.1 to disable public access + # config.vm.network "forwarded_port", guest: 80, host: 8080, host_ip: "127.0.0.1" + + # Create a private network, which allows host-only access to the machine + # using a specific IP. + # config.vm.network "private_network", ip: "192.168.33.10" + + # Create a public network, which generally matched to bridged network. + # Bridged networks make the machine appear as another physical device on + # your network. + # config.vm.network "public_network" + + # Share an additional folder to the guest VM. The first argument is + # the path on the host to the actual folder. The second argument is + # the path on the guest to mount the folder. And the optional third + # argument is a set of non-required options. + #config.vm.synced_folder "../../..", "/home/vagrant/project" + config.vm.synced_folder ".", "/vagrant", id: "vagrant-root", disabled: true + + + # Provider-specific configuration so you can fine-tune various + # backing providers for Vagrant. These expose provider-specific options. + # Example for VirtualBox: + # + # config.vm.provider "virtualbox" do |vb| + # # Display the VirtualBox GUI when booting the machine + # vb.gui = true + # + # # Customize the amount of memory on the VM: + # vb.memory = "1024" + # end + # + # View the documentation for the provider you are using for more + # information on available options. + + # Enable provisioning with a shell script. Additional provisioners such as + # Ansible, Chef, Docker, Puppet and Salt are also available. Please see the + # documentation for more information about their specific syntax and use. + # note: clang installed by default + config.vm.provision "env", type: "shell", inline:<<-SHELL + set -x + pkg update -f + pkg install -y git cmake + pkg install -y swig python py37-pip + SHELL + + config.vm.provision "file", source: "../../../../CMakeLists.txt", destination: "$HOME/project/" + config.vm.provision "file", source: "../../../../cmake", destination: "$HOME/project/" + config.vm.provision "file", source: "../../../../ortools", destination: "$HOME/project/" + config.vm.provision "file", source: "../../../../examples/contrib", destination: "$HOME/project/examples/" + config.vm.provision "file", source: "../../../../examples/cpp", destination: "$HOME/project/examples/" + config.vm.provision "file", source: "../../../../examples/dotnet", destination: "$HOME/project/examples/" + config.vm.provision "file", source: "../../../../examples/java", destination: "$HOME/project/examples/" + config.vm.provision "file", source: "../../../../examples/python", destination: "$HOME/project/examples/" + config.vm.provision "file", source: "../../../../examples/tests", destination: "$HOME/project/examples/" + config.vm.provision "file", source: "../../../../patches", destination: "$HOME/project/" + config.vm.provision "file", source: "../../../../Version.txt", destination: "$HOME/project/" + config.vm.provision "file", source: "../../../../dependencies", destination: "$HOME/project/" + config.vm.provision "file", source: "../../../../test.py.in", destination: "$HOME/project/" + + config.vm.provision "devel", type: "shell", inline:<<-SHELL + set -x + cd project + ls + SHELL + + config.vm.provision "configure", type: "shell", inline:<<-SHELL + set -x + cd project + cmake -S. -Bbuild -DBUILD_PYTHON=ON -DBUILD_CXX_SAMPLES=OFF -DBUILD_CXX_EXAMPLES=OFF + SHELL + + config.vm.provision "build", type: "shell", inline:<<-SHELL + set -x + cd project + cmake --build build -v + SHELL + + config.vm.provision "test", type: "shell", inline:<<-SHELL + set -x + cd project + cmake --build build --target test -v + SHELL +end diff --git a/libs/or-tools-stable/docs/_config.yml b/libs/or-tools-stable/docs/_config.yml new file mode 100644 index 0000000000000000000000000000000000000000..3397c9a4928e1b41957484ee4e53e78da37224e8 --- /dev/null +++ b/libs/or-tools-stable/docs/_config.yml @@ -0,0 +1 @@ +theme: jekyll-theme-architect \ No newline at end of file diff --git a/libs/or-tools-stable/docs/cpp.tag b/libs/or-tools-stable/docs/cpp.tag new file mode 100644 index 0000000000000000000000000000000000000000..22b273be5b5ff107e299402a10a074e8be6cab5b --- /dev/null +++ b/libs/or-tools-stable/docs/cpp.tag @@ -0,0 +1,401647 @@ + + + + accurate_sum.h + /home/mizux/work/master/ortools/base/ + accurate__sum_8h.html + operations_research::AccurateSum + operations_research + + + adaptative_parameter_value.h + /home/mizux/work/master/ortools/util/ + adaptative__parameter__value_8h.html + ortools/base/integral_types.h + operations_research::AdaptiveParameterValue + operations_research + + + adjustable_priority_queue-inl.h + /home/mizux/work/master/ortools/base/ + adjustable__priority__queue-inl_8h.html + ortools/base/adjustable_priority_queue.h + + + adjustable_priority_queue.h + /home/mizux/work/master/ortools/base/ + adjustable__priority__queue_8h.html + ortools/base/basictypes.h + ortools/base/logging.h + ortools/base/macros.h + LowerPriorityThan + AdjustablePriorityQueue + + + affine_relation.h + /home/mizux/work/master/ortools/util/ + affine__relation_8h.html + ortools/base/iterator_adaptors.h + ortools/base/logging.h + ortools/base/macros.h + operations_research::AffineRelation + operations_research::AffineRelation::Relation + operations_research + + + all_different.cc + /home/mizux/work/master/ortools/sat/ + all__different_8cc.html + ortools/sat/all_different.h + ortools/base/int_type.h + ortools/base/logging.h + ortools/base/map_util.h + ortools/graph/strongly_connected_components.h + ortools/sat/sat_solver.h + ortools/util/sort.h + operations_research + operations_research::sat + + std::function< void(Model *)> + AllDifferentBinary + namespaceoperations__research_1_1sat.html + a9d6526e2b6f684e7c3c80172b598b7cb + (const std::vector< IntegerVariable > &vars) + + + std::function< void(Model *)> + AllDifferentOnBounds + namespaceoperations__research_1_1sat.html + a467d0c8bf263413aae5e5e530d4c5259 + (const std::vector< IntegerVariable > &vars) + + + std::function< void(Model *)> + AllDifferentAC + namespaceoperations__research_1_1sat.html + a0f570bf53aae0cd9303912d273425428 + (const std::vector< IntegerVariable > &variables) + + + + all_different.h + /home/mizux/work/master/ortools/sat/ + all__different_8h.html + ortools/base/integral_types.h + ortools/base/macros.h + ortools/sat/integer.h + ortools/sat/model.h + ortools/sat/sat_base.h + operations_research::sat::AllDifferentConstraint + operations_research::sat::AllDifferentBoundsPropagator + operations_research + operations_research::sat + + std::function< void(Model *)> + AllDifferentBinary + namespaceoperations__research_1_1sat.html + a9d6526e2b6f684e7c3c80172b598b7cb + (const std::vector< IntegerVariable > &vars) + + + std::function< void(Model *)> + AllDifferentOnBounds + namespaceoperations__research_1_1sat.html + a467d0c8bf263413aae5e5e530d4c5259 + (const std::vector< IntegerVariable > &vars) + + + std::function< void(Model *)> + AllDifferentAC + namespaceoperations__research_1_1sat.html + a0f570bf53aae0cd9303912d273425428 + (const std::vector< IntegerVariable > &variables) + + + + alldiff_cst.cc + /home/mizux/work/master/ortools/constraint_solver/ + alldiff__cst_8cc.html + ortools/base/integral_types.h + ortools/base/logging.h + ortools/constraint_solver/constraint_solver.h + ortools/constraint_solver/constraint_solveri.h + ortools/util/string_array.h + operations_research + + const std::vector< IntVar * > + vars_ + alldiff__cst_8cc.html + a151248525a9e07eb3e6e60ea1c4995eb + + + + int64 + min + alldiff__cst_8cc.html + a021e695f54a13bd809c34b2f4ca87c37 + + + + int64 + max + alldiff__cst_8cc.html + a9d0c202d5fdd62f4fa2c613339ff168a + + + + int + min_rank + alldiff__cst_8cc.html + ace1a164cb9535504a4441b0e81998eb7 + + + + int + max_rank + alldiff__cst_8cc.html + a5c4f8c31d1c77116201f5c497e1e19f8 + + + + + constraint_solver/assignment.cc + /home/mizux/work/master/ortools/constraint_solver/ + constraint__solver_2assignment_8cc.html + ortools/base/file.h + ortools/base/hash.h + ortools/base/integral_types.h + ortools/base/logging.h + ortools/base/map_util.h + ortools/base/recordio.h + ortools/constraint_solver/assignment.pb.h + ortools/constraint_solver/constraint_solver.h + operations_research + + void + RealLoad + namespaceoperations__research.html + a0412e348537cd12c508820ba56ead3b0 + (const AssignmentProto &assignment_proto, Container *const container, int(AssignmentProto::*GetSize)() const, const Proto &(AssignmentProto::*GetElem)(int) const) + + + void + RealSave + namespaceoperations__research.html + aeceaa7ab9cf1334f0fd24ef39fb65d3d + (AssignmentProto *const assignment_proto, const Container &container, Proto *(AssignmentProto::*Add)()) + + + void + RealDebugString + namespaceoperations__research.html + ad895312656075fb0fccf0d2d4bb122ce + (const Container &container, std::string *const out) + + + void + SetAssignmentFromAssignment + namespaceoperations__research.html + a57f1befcdc8fc2b6f9741369a1beb136 + (Assignment *target_assignment, const std::vector< IntVar * > &target_vars, const Assignment *source_assignment, const std::vector< IntVar * > &source_vars) + + + std::ostream & + operator<< + namespaceoperations__research.html + a51e0728b2f50b8aa26f3115138b8ff1b + (std::ostream &out, const Assignment &assignment) + + + + graph/assignment.cc + /home/mizux/work/master/ortools/graph/ + graph_2assignment_8cc.html + ortools/graph/assignment.h + ortools/base/commandlineflags.h + ortools/graph/ebert_graph.h + ortools/graph/linear_assignment.h + operations_research + + + assignment.h + /home/mizux/work/master/ortools/graph/ + assignment_8h.html + ortools/graph/ebert_graph.h + operations_research::SimpleLinearSumAssignment + operations_research + + + assignment.pb.cc + /home/mizux/work/master/ortools/gen/ortools/constraint_solver/ + assignment_8pb_8cc.html + ortools/constraint_solver/assignment.pb.h + operations_research::IntVarAssignmentDefaultTypeInternal + operations_research::IntervalVarAssignmentDefaultTypeInternal + operations_research::SequenceVarAssignmentDefaultTypeInternal + operations_research::WorkerInfoDefaultTypeInternal + operations_research::AssignmentProtoDefaultTypeInternal + operations_research::IntVarAssignment::_Internal + operations_research::IntervalVarAssignment::_Internal + operations_research::SequenceVarAssignment::_Internal + operations_research::WorkerInfo::_Internal + operations_research::AssignmentProto::_Internal + operations_research + + #define + CHK_ + assignment_8pb_8cc.html + a1a656da48cf3d2824247c83ad8d92f10 + (x) + + + #define + CHK_ + assignment_8pb_8cc.html + a1a656da48cf3d2824247c83ad8d92f10 + (x) + + + #define + CHK_ + assignment_8pb_8cc.html + a1a656da48cf3d2824247c83ad8d92f10 + (x) + + + #define + CHK_ + assignment_8pb_8cc.html + a1a656da48cf3d2824247c83ad8d92f10 + (x) + + + #define + CHK_ + assignment_8pb_8cc.html + a1a656da48cf3d2824247c83ad8d92f10 + (x) + + + static void + InitDefaultsscc_info_AssignmentProto_ortools_2fconstraint_5fsolver_2fassignment_2eproto + assignment_8pb_8cc.html + a5bb74c42990b74cd08b309d844c1cc76 + () + + + static void + InitDefaultsscc_info_IntVarAssignment_ortools_2fconstraint_5fsolver_2fassignment_2eproto + assignment_8pb_8cc.html + ab35e318c644e4dbdae81c2ae75e5fbd5 + () + + + static void + InitDefaultsscc_info_IntervalVarAssignment_ortools_2fconstraint_5fsolver_2fassignment_2eproto + assignment_8pb_8cc.html + a8d65e16b43a4736fc15f75f08f9924ec + () + + + static void + InitDefaultsscc_info_SequenceVarAssignment_ortools_2fconstraint_5fsolver_2fassignment_2eproto + assignment_8pb_8cc.html + a83021ad0706906ccd40dbdcf07cc9569 + () + + + static void + InitDefaultsscc_info_WorkerInfo_ortools_2fconstraint_5fsolver_2fassignment_2eproto + assignment_8pb_8cc.html + a67431f0041c18e423d2319bd58b4d824 + () + + + const ::PROTOBUF_NAMESPACE_ID::uint32 TableStruct_ortools_2fconstraint_5fsolver_2fassignment_2eproto::offsets[] + PROTOBUF_SECTION_VARIABLE + assignment_8pb_8cc.html + a924598b7b03faab351f2d41c53f8ed60 + (protodesc_cold) + + + PROTOBUF_NAMESPACE_OPEN PROTOBUF_NOINLINE ::operations_research::IntVarAssignment * + Arena::CreateMaybeMessage< ::operations_research::IntVarAssignment > + assignment_8pb_8cc.html + a33ca8068d0e2699ab9a08835ad3c57ce + (Arena *arena) + + + PROTOBUF_NOINLINE ::operations_research::IntervalVarAssignment * + Arena::CreateMaybeMessage< ::operations_research::IntervalVarAssignment > + assignment_8pb_8cc.html + ae570a0f3a24f7e02ab5093180df87934 + (Arena *arena) + + + PROTOBUF_NOINLINE ::operations_research::SequenceVarAssignment * + Arena::CreateMaybeMessage< ::operations_research::SequenceVarAssignment > + assignment_8pb_8cc.html + ad39edc36e8f1ea27300b1dc0e92c3c08 + (Arena *arena) + + + PROTOBUF_NOINLINE ::operations_research::WorkerInfo * + Arena::CreateMaybeMessage< ::operations_research::WorkerInfo > + assignment_8pb_8cc.html + a9c198d10d19971f3c808cb2157b8d9c9 + (Arena *arena) + + + PROTOBUF_NOINLINE ::operations_research::AssignmentProto * + Arena::CreateMaybeMessage< ::operations_research::AssignmentProto > + assignment_8pb_8cc.html + a80d7e8db9e705561e3401c282d9fe6b3 + (Arena *arena) + + + PROTOBUF_INTERNAL_EXPORT_ortools_2fconstraint_5fsolver_2fassignment_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo< 0 > + scc_info_IntVarAssignment_ortools_2fconstraint_5fsolver_2fassignment_2eproto + assignment_8pb_8cc.html + a1909d0d5860546e77647feacdfc4b12c + + + + PROTOBUF_INTERNAL_EXPORT_ortools_2fconstraint_5fsolver_2fassignment_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo< 0 > + scc_info_IntervalVarAssignment_ortools_2fconstraint_5fsolver_2fassignment_2eproto + assignment_8pb_8cc.html + a798060366e750e6dc5e17a68f48a7516 + + + + PROTOBUF_INTERNAL_EXPORT_ortools_2fconstraint_5fsolver_2fassignment_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo< 0 > + scc_info_SequenceVarAssignment_ortools_2fconstraint_5fsolver_2fassignment_2eproto + assignment_8pb_8cc.html + a4c70ce1f011f56ebccb9e9f02e99a5e7 + + + + PROTOBUF_INTERNAL_EXPORT_ortools_2fconstraint_5fsolver_2fassignment_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo< 0 > + scc_info_WorkerInfo_ortools_2fconstraint_5fsolver_2fassignment_2eproto + assignment_8pb_8cc.html + aecf93665abcdce18f5a1ab46d4083d28 + + + + class operations_research::IntVarAssignmentDefaultTypeInternal + _IntVarAssignment_default_instance_ + namespaceoperations__research.html + ad24b0c8b9d2dab9dd0d96d40d52bb743 + + + + class operations_research::IntervalVarAssignmentDefaultTypeInternal + _IntervalVarAssignment_default_instance_ + namespaceoperations__research.html + a5ad249dc5100b4e80763fbc1492426e0 + + + + class operations_research::SequenceVarAssignmentDefaultTypeInternal + _SequenceVarAssignment_default_instance_ + namespaceoperations__research.html + a9044b5e9e7d8fb33c212df31caa2a96f + + + + class operations_research::WorkerInfoDefaultTypeInternal + _WorkerInfo_default_instance_ + namespaceoperations__research.html + af96f2eb9df50f9992bf3529e9e48c1a4 + + + + class operations_research::AssignmentProtoDefaultTypeInternal + _AssignmentProto_default_instance_ + namespaceoperations__research.html + a71b4716e350a5a5e04973547d1f49b13 + + + + ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo< 4 > + scc_info_AssignmentProto_ortools_2fconstraint_5fsolver_2fassignment_2eproto + assignment_8pb_8cc.html + ad6fb986c1b35ae1357282d7ccca156a5 + + + + ::PROTOBUF_NAMESPACE_ID::Metadata + file_level_metadata_ortools_2fconstraint_5fsolver_2fassignment_2eproto + assignment_8pb_8cc.html + acf6d31adc238252a539ef5629f07afd8 + [5] + + + static constexpr ::PROTOBUF_NAMESPACE_ID::EnumDescriptor const ** + file_level_enum_descriptors_ortools_2fconstraint_5fsolver_2fassignment_2eproto + assignment_8pb_8cc.html + a9314da8a064664669a7e03ee47206144 + + + + static constexpr ::PROTOBUF_NAMESPACE_ID::ServiceDescriptor const ** + file_level_service_descriptors_ortools_2fconstraint_5fsolver_2fassignment_2eproto + assignment_8pb_8cc.html + a7379289aaf7997d57759c2ebb14a1fe8 + + + + ::PROTOBUF_NAMESPACE_ID::Message const *const + file_default_instances + assignment_8pb_8cc.html + a99b6f5a2938c4db4c9413e9b84f85717 + [] + + + static const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable *const + descriptor_table_ortools_2fconstraint_5fsolver_2fassignment_2eproto_deps + assignment_8pb_8cc.html + a456fd7a9ee73588cd62b072a651039ec + [1] + + + ::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase *const + descriptor_table_ortools_2fconstraint_5fsolver_2fassignment_2eproto_sccs + assignment_8pb_8cc.html + a482ef402f7aea31d233e8aceb63a9b2c + [5] + + + ::PROTOBUF_NAMESPACE_ID::internal::once_flag + descriptor_table_ortools_2fconstraint_5fsolver_2fassignment_2eproto_once + assignment_8pb_8cc.html + ab859b6b0afe070a44ceaa556ac26dd9c + + + + const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable + descriptor_table_ortools_2fconstraint_5fsolver_2fassignment_2eproto + assignment_8pb_8cc.html + a686fb78be7dc1ca4d4498448d5f58a58 + + + + static bool + dynamic_init_dummy_ortools_2fconstraint_5fsolver_2fassignment_2eproto + assignment_8pb_8cc.html + a4627baed1ab0c602cd0503a8d02f8885 + + + + + assignment.pb.h + /home/mizux/work/master/ortools/gen/ortools/constraint_solver/ + assignment_8pb_8h.html + TableStruct_ortools_2fconstraint_5fsolver_2fassignment_2eproto + operations_research::PROTOBUF_FINAL + operations_research::PROTOBUF_FINAL + operations_research::PROTOBUF_FINAL + operations_research::PROTOBUF_FINAL + operations_research::PROTOBUF_FINAL + internal + operations_research + + #define + PROTOBUF_INTERNAL_EXPORT_ortools_2fconstraint_5fsolver_2fassignment_2eproto + assignment_8pb_8h.html + af9b703c84018fe0b59348ff604b1c509 + + + + PROTOBUF_NAMESPACE_OPEN ::operations_research::AssignmentProto * + Arena::CreateMaybeMessage<::operations_research::AssignmentProto > + assignment_8pb_8h.html + add987639c5af4762e5cb22d0e393a154 + (Arena *) + + + ::operations_research::IntVarAssignment * + Arena::CreateMaybeMessage<::operations_research::IntVarAssignment > + assignment_8pb_8h.html + a87b9326eb6b55d36a82b7264679c87f0 + (Arena *) + + + ::operations_research::IntervalVarAssignment * + Arena::CreateMaybeMessage<::operations_research::IntervalVarAssignment > + assignment_8pb_8h.html + aade9d963d9333b645755da79e30f5621 + (Arena *) + + + ::operations_research::SequenceVarAssignment * + Arena::CreateMaybeMessage<::operations_research::SequenceVarAssignment > + assignment_8pb_8h.html + a2c2669c3bbb98d386459ac4510a1c2a5 + (Arena *) + + + ::operations_research::WorkerInfo * + Arena::CreateMaybeMessage<::operations_research::WorkerInfo > + assignment_8pb_8h.html + abc611269e2526a234a6eb9ba9d531534 + (Arena *) + + + const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable + descriptor_table_ortools_2fconstraint_5fsolver_2fassignment_2eproto + assignment_8pb_8h.html + a686fb78be7dc1ca4d4498448d5f58a58 + + + + + astar.cc + /home/mizux/work/master/ortools/graph/ + astar_8cc.html + ortools/base/adjustable_priority_queue.h + ortools/base/integral_types.h + operations_research::AStarSP + operations_research + + bool + AStarShortestPath + namespaceoperations__research.html + a7e7b0fe4bb8e0bf96552d54a77ac1edf + (int node_count, int start_node, int end_node, std::function< int64(int, int)> graph, std::function< int64(int)> heuristic, int64 disconnected_distance, std::vector< int > *nodes) + + + + base_export.h + /home/mizux/work/master/ortools/base/ + base__export_8h.html + + #define + BASE_EXPORT + base__export_8h.html + a9366d263280e9f3a126950a84c211fb7 + + + + + basictypes.h + /home/mizux/work/master/ortools/base/ + basictypes_8h.html + ortools/base/integral_types.h + ortools/base/logging.h + + + basis_representation.cc + /home/mizux/work/master/ortools/glop/ + basis__representation_8cc.html + ortools/glop/basis_representation.h + ortools/base/stl_util.h + ortools/glop/status.h + ortools/lp_data/lp_utils.h + operations_research + operations_research::glop + + + basis_representation.h + /home/mizux/work/master/ortools/glop/ + basis__representation_8h.html + ortools/base/logging.h + ortools/glop/lu_factorization.h + ortools/glop/parameters.pb.h + ortools/glop/rank_one_update.h + ortools/glop/status.h + ortools/lp_data/lp_types.h + ortools/lp_data/permutation.h + ortools/lp_data/scattered_vector.h + ortools/lp_data/sparse.h + ortools/util/stats.h + operations_research::glop::EtaMatrix + operations_research::glop::EtaFactorization + operations_research::glop::BasisFactorization + operations_research + operations_research::glop + + + bellman_ford.cc + /home/mizux/work/master/ortools/graph/ + bellman__ford_8cc.html + ortools/base/integral_types.h + ortools/graph/shortestpaths.h + operations_research::BellmanFord + operations_research + + bool + BellmanFordShortestPath + namespaceoperations__research.html + a5b598ba6d43b314420d739360f10b94f + (int node_count, int start_node, int end_node, std::function< int64(int, int)> graph, int64 disconnected_distance, std::vector< int > *nodes) + + + + bitmap.cc + /home/mizux/work/master/ortools/base/ + bitmap_8cc.html + ortools/base/bitmap.h + ortools/base/basictypes.h + operations_research + + + bitmap.h + /home/mizux/work/master/ortools/base/ + bitmap_8h.html + ortools/base/basictypes.h + operations_research::Bitmap + operations_research + operations_research::internal + + uint64 + OneBit64 + namespaceoperations__research_1_1internal.html + a7027f0cf0f3a155f3f474cf9a287492d + (int pos) + + + uint64 + BitPos64 + namespaceoperations__research_1_1internal.html + a2a24a9e72a53b68f10a5f52282bae808 + (uint64 pos) + + + uint64 + BitOffset64 + namespaceoperations__research_1_1internal.html + ada4997ddaf3e92e81918934f8563121c + (uint64 pos) + + + uint64 + BitLength64 + namespaceoperations__research_1_1internal.html + a04552bf747d1989b4ecf2e67dfd798a7 + (uint64 size) + + + bool + IsBitSet64 + namespaceoperations__research_1_1internal.html + a3db55bbc8608d9f72b84fcbf46d12cf0 + (const uint64 *const bitset, uint64 pos) + + + void + SetBit64 + namespaceoperations__research_1_1internal.html + a58fe3d4e20906432c943dafbbc6b9894 + (uint64 *const bitset, uint64 pos) + + + void + ClearBit64 + namespaceoperations__research_1_1internal.html + a8630ffe6e92b7bdec46b4e9e439f1d1f + (uint64 *const bitset, uint64 pos) + + + + bitset.cc + /home/mizux/work/master/ortools/util/ + bitset_8cc.html + ortools/util/bitset.h + ortools/base/commandlineflags.h + ortools/base/logging.h + operations_research + + #define + BIT_COUNT_RANGE + bitset_8cc.html + a8a1613218821bcc0746e658018b22e14 + (size, zero) + + + #define + IS_EMPTY_RANGE + bitset_8cc.html + a6d1d9d8e8f51f8c5c9c196cee565c99a + (size) + + + #define + LEAST_SIGNIFCANT_BIT_POSITION + bitset_8cc.html + a0e35598507f1cefefed70d6b330e5564 + (size) + + + #define + MOST_SIGNIFICANT_BIT_POSITION + bitset_8cc.html + a6c95af60e681e064db683d517de7c3c8 + (size) + + + #define + UNSAFE_LEAST_SIGNIFICANT_BIT_POSITION + bitset_8cc.html + ab483ccbdddfcad95eef8087de59791db + (size) + + + #define + UNSAFE_MOST_SIGNIFICANT_BIT_POSITION + bitset_8cc.html + a1e8883f9118f3bc5cc8e7a892aa08215 + (size) + + + + ABSL_FLAG + bitset_8cc.html + a95564ffe5aa637e68370ebd4ede9e98b + (int, bitset_small_bitset_count, 8, "threshold to count bits with buckets") + + + + bitset.h + /home/mizux/work/master/ortools/util/ + bitset_8h.html + ortools/base/integral_types.h + ortools/base/logging.h + ortools/base/macros.h + operations_research::Bitset64 + operations_research::Bitset64::Iterator + operations_research::BitQueue64 + operations_research::SparseBitset + operations_research + + #define + USE_DEBRUIJN + bitset_8h.html + ae5a53e66fb1e93cdfc78edc0aa603d81 + + + + uint64 + OneBit64 + namespaceoperations__research.html + aebb30ce0aaac158bab53d6d5a17e6ac2 + (int pos) + + + uint32 + OneBit32 + namespaceoperations__research.html + ac258cd47a0ecede02fda32d46ca2b9de + (int pos) + + + uint64 + BitCount64 + namespaceoperations__research.html + a52c40b416aa0a9a5a8a2f906fb63510a + (uint64 n) + + + uint32 + BitCount32 + namespaceoperations__research.html + a13e0fa69754cea8a2adb3274d15dea2f + (uint32 n) + + + uint64 + LeastSignificantBitWord64 + namespaceoperations__research.html + a9f7a6b6d74b7d44168f642dc016af2a6 + (uint64 n) + + + uint32 + LeastSignificantBitWord32 + namespaceoperations__research.html + a27abe4e3c1d930c66402b375fb0f4828 + (uint32 n) + + + int + LeastSignificantBitPosition64DeBruijn + namespaceoperations__research.html + a8ea383d9810426002bc78380d19f76ff + (uint64 n) + + + int + LeastSignificantBitPosition64Default + namespaceoperations__research.html + a2094bbd3073e4f2db087e5158b01271a + (uint64 n) + + + int + LeastSignificantBitPosition64 + namespaceoperations__research.html + a0c18bf720ab440c35d6e1919608a77f4 + (uint64 n) + + + int + LeastSignificantBitPosition32DeBruijn + namespaceoperations__research.html + ab2695a131958db96000b2c1c3c332c78 + (uint32 n) + + + int + LeastSignificantBitPosition32Default + namespaceoperations__research.html + a852ae19a5f1ecfb2b471c901c4a71818 + (uint32 n) + + + int + LeastSignificantBitPosition32 + namespaceoperations__research.html + a8c0af724b02e5459f70846dbc4002ec2 + (uint32 n) + + + int + MostSignificantBitPosition64Default + namespaceoperations__research.html + ac10134da8cc24423f5039eafdb327f5d + (uint64 n) + + + int + MostSignificantBitPosition64 + namespaceoperations__research.html + a2f9ef253c023106392eb1495a277616b + (uint64 n) + + + int + MostSignificantBitPosition32Default + namespaceoperations__research.html + ae27ae21c3d5691da592ebfae548dc0bc + (uint32 n) + + + int + MostSignificantBitPosition32 + namespaceoperations__research.html + af8aecc8eafe5e0448d5279dfcbfb988d + (uint32 n) + + + uint64 + OneRange64 + namespaceoperations__research.html + aaa21b4b557dfc38a4772c6e3c3f16c80 + (uint64 s, uint64 e) + + + uint32 + OneRange32 + namespaceoperations__research.html + ad78d793e75ff5a2020201fd49b6cc131 + (uint32 s, uint32 e) + + + uint64 + IntervalUp64 + namespaceoperations__research.html + a2e063c0be01ba3cb136e63e66857c7fc + (uint64 s) + + + uint32 + IntervalUp32 + namespaceoperations__research.html + a963bf5d24260cfa55b48c1d29867825b + (uint32 s) + + + uint64 + IntervalDown64 + namespaceoperations__research.html + ad2b3cf4992bc4e99283bdd16a6306487 + (uint64 s) + + + uint32 + IntervalDown32 + namespaceoperations__research.html + a5dfcfe21dc3931417b81ceb941369064 + (uint32 s) + + + uint32 + BitPos64 + namespaceoperations__research.html + a1584128ad7e80569b2bf5e08a895fcfb + (uint64 pos) + + + uint32 + BitPos32 + namespaceoperations__research.html + a53af2d490dd2a583668f638a569f8238 + (uint32 pos) + + + uint64 + BitOffset64 + namespaceoperations__research.html + a671ea41a7439f3f3010b3850f33473a1 + (uint64 pos) + + + uint32 + BitOffset32 + namespaceoperations__research.html + aaec83600113c0328c0265874ea8b4c35 + (uint32 pos) + + + uint64 + BitLength64 + namespaceoperations__research.html + af2d4f2de0654ff5a8bc06e9ff6f971cc + (uint64 size) + + + uint32 + BitLength32 + namespaceoperations__research.html + a6971de16321b89f8875d130f11a53e18 + (uint32 size) + + + uint64 + BitShift64 + namespaceoperations__research.html + a0762d7f9698e66e097f2568bf8ddcbd8 + (uint64 v) + + + uint32 + BitShift32 + namespaceoperations__research.html + a3e5a3f19923cea72234a02df393d54e8 + (uint32 v) + + + bool + IsBitSet64 + namespaceoperations__research.html + a7cbc9887c50da95e2b15416515a36de3 + (const uint64 *const bitset, uint64 pos) + + + bool + IsBitSet32 + namespaceoperations__research.html + a6bb3729d3e8f531d00211ec5a476a8ab + (const uint32 *const bitset, uint32 pos) + + + void + SetBit64 + namespaceoperations__research.html + a694b6f1e4e2ebf72a624d5ebe2d516ea + (uint64 *const bitset, uint64 pos) + + + void + SetBit32 + namespaceoperations__research.html + a1cc088d33490ff58f94ffd09ffda1c82 + (uint32 *const bitset, uint32 pos) + + + void + ClearBit64 + namespaceoperations__research.html + a989f7360995e5921f26a29b2691e6b7b + (uint64 *const bitset, uint64 pos) + + + void + ClearBit32 + namespaceoperations__research.html + aa58c01239f5b32b9cb0cad14fb1ddf16 + (uint32 *const bitset, uint32 pos) + + + uint64 + BitCountRange64 + namespaceoperations__research.html + abd43126bf2a2e814acdb95877d4fa6e6 + (const uint64 *const bitset, uint64 start, uint64 end) + + + uint32 + BitCountRange32 + namespaceoperations__research.html + a92abd2d92ec748c1de47f1be71a4d394 + (const uint32 *const bitset, uint32 start, uint32 end) + + + bool + IsEmptyRange64 + namespaceoperations__research.html + a8b48d098fb775b4ec872d1906877fb75 + (const uint64 *const bitset, uint64 start, uint64 end) + + + bool + IsEmptyRange32 + namespaceoperations__research.html + aec1829be6992c2fe011937e783fafbfe + (const uint32 *const bitset, uint32 start, uint32 end) + + + int64 + LeastSignificantBitPosition64 + namespaceoperations__research.html + a9d4629658255c9a2aee5fbdaaabe4d6b + (const uint64 *const bitset, uint64 start, uint64 end) + + + int + LeastSignificantBitPosition32 + namespaceoperations__research.html + ae7e2ee952ccf14236fa3f86f4edc2420 + (const uint32 *const bitset, uint32 start, uint32 end) + + + int64 + MostSignificantBitPosition64 + namespaceoperations__research.html + ada5912beef1f0a6a67214ba9fff393e0 + (const uint64 *const bitset, uint64 start, uint64 end) + + + int + MostSignificantBitPosition32 + namespaceoperations__research.html + a694d927d80a23d26c0e7aeac8828406a + (const uint32 *const bitset, uint32 start, uint32 end) + + + int64 + UnsafeLeastSignificantBitPosition64 + namespaceoperations__research.html + a62ee39cdd9ff970b4e18e08ed5c0187c + (const uint64 *const bitset, uint64 start, uint64 end) + + + int32 + UnsafeLeastSignificantBitPosition32 + namespaceoperations__research.html + a8531856d0edea91b0ce299febf4a59bf + (const uint32 *const bitset, uint32 start, uint32 end) + + + int64 + UnsafeMostSignificantBitPosition64 + namespaceoperations__research.html + ad0d57fe2cba7f40e2f93237cb1b7bf98 + (const uint64 *const bitset, uint64 start, uint64 end) + + + int32 + UnsafeMostSignificantBitPosition32 + namespaceoperations__research.html + a6de2fd571f71b9aa6f7bcb2eb235d02c + (const uint32 *const bitset, uint32 start, uint32 end) + + + uint64 + TwoBitsFromPos64 + namespaceoperations__research.html + a63a915210c8c46803e884506f578f307 + (uint64 pos) + + + static const uint64 + kAllBits64 + namespaceoperations__research.html + a90d1406de97913c95ddde50a74e55f0a + + + + static const uint64 + kAllBitsButLsb64 + namespaceoperations__research.html + a67374710b8569112d72ce32369e68468 + + + + static const uint32 + kAllBits32 + namespaceoperations__research.html + a88f56fedb5aeb959a583d1527c2c7156 + + + + + boolean_problem.cc + /home/mizux/work/master/ortools/sat/ + boolean__problem_8cc.html + ortools/sat/boolean_problem.h + ortools/base/commandlineflags.h + ortools/base/integral_types.h + ortools/base/logging.h + ortools/graph/io.h + ortools/algorithms/find_graph_symmetries.h + ortools/base/hash.h + ortools/base/int_type.h + ortools/base/map_util.h + ortools/graph/util.h + ortools/port/proto_utils.h + ortools/sat/sat_parameters.pb.h + operations_research + operations_research::sat + + + ABSL_FLAG + boolean__problem_8cc.html + aa76db68d1f81b1cfd98995e3d0ac26f4 + (std::string, debug_dump_symmetry_graph_to_file, "", "If this flag is non-empty, an undirected graph whose" " automorphism group is in one-to-one correspondence with the" " symmetries of the SAT problem will be dumped to a file every" " time FindLinearBooleanProblemSymmetries() is called.") + + + void + ExtractAssignment + namespaceoperations__research_1_1sat.html + ae787aad51dac94ee684cf971def30838 + (const LinearBooleanProblem &problem, const SatSolver &solver, std::vector< bool > *assignment) + + + absl::Status + ValidateBooleanProblem + namespaceoperations__research_1_1sat.html + a6004b20c87a172cc7d18754489157868 + (const LinearBooleanProblem &problem) + + + CpModelProto + BooleanProblemToCpModelproto + namespaceoperations__research_1_1sat.html + acaccfd2e692c84b7b31c77ac174199cd + (const LinearBooleanProblem &problem) + + + void + ChangeOptimizationDirection + namespaceoperations__research_1_1sat.html + aaf57d784624873d840a2589efa6ff1a1 + (LinearBooleanProblem *problem) + + + bool + LoadBooleanProblem + namespaceoperations__research_1_1sat.html + add13e122d8861d6cac9b9bb4a51cfcb7 + (const LinearBooleanProblem &problem, SatSolver *solver) + + + bool + LoadAndConsumeBooleanProblem + namespaceoperations__research_1_1sat.html + aa72e6dc6e802fbf5c5fd237efea1131f + (LinearBooleanProblem *problem, SatSolver *solver) + + + void + UseObjectiveForSatAssignmentPreference + namespaceoperations__research_1_1sat.html + a40254eb00d4590a09d811fe94c727c2a + (const LinearBooleanProblem &problem, SatSolver *solver) + + + bool + AddObjectiveUpperBound + namespaceoperations__research_1_1sat.html + a66979ace60178ae3fe59f6180e4db42f + (const LinearBooleanProblem &problem, Coefficient upper_bound, SatSolver *solver) + + + bool + AddObjectiveConstraint + namespaceoperations__research_1_1sat.html + a07c4372fa55782d13edd24b86130e3ba + (const LinearBooleanProblem &problem, bool use_lower_bound, Coefficient lower_bound, bool use_upper_bound, Coefficient upper_bound, SatSolver *solver) + + + Coefficient + ComputeObjectiveValue + namespaceoperations__research_1_1sat.html + abb66766a5d79e878ff67851bc55ca24f + (const LinearBooleanProblem &problem, const std::vector< bool > &assignment) + + + bool + IsAssignmentValid + namespaceoperations__research_1_1sat.html + aab5216003fbe0c2f21e7433084d358e1 + (const LinearBooleanProblem &problem, const std::vector< bool > &assignment) + + + std::string + LinearBooleanProblemToCnfString + namespaceoperations__research_1_1sat.html + ae701a64603e2ac22a99d6c0dd0649845 + (const LinearBooleanProblem &problem) + + + void + StoreAssignment + namespaceoperations__research_1_1sat.html + a25b9a60378da756e4100df6231f29b23 + (const VariablesAssignment &assignment, BooleanAssignment *output) + + + void + ExtractSubproblem + namespaceoperations__research_1_1sat.html + a58c0f19bf0e5ad35da0572722b33d6e7 + (const LinearBooleanProblem &problem, const std::vector< int > &constraint_indices, LinearBooleanProblem *subproblem) + + + Graph * + GenerateGraphForSymmetryDetection + namespaceoperations__research_1_1sat.html + a3f6fa74408ea28eb41f29e9696d9a9a2 + (const LinearBooleanProblem &problem, std::vector< int > *initial_equivalence_classes) + + + void + MakeAllLiteralsPositive + namespaceoperations__research_1_1sat.html + ace3f68c781179d6de36fad9d4b0c386b + (LinearBooleanProblem *problem) + + + void + FindLinearBooleanProblemSymmetries + namespaceoperations__research_1_1sat.html + a6986d13a746e6577bcf0cb190aef8113 + (const LinearBooleanProblem &problem, std::vector< std::unique_ptr< SparsePermutation >> *generators) + + + void + ApplyLiteralMappingToBooleanProblem + namespaceoperations__research_1_1sat.html + aa9848f5a312eda3dad1aa59ed96e2519 + (const absl::StrongVector< LiteralIndex, LiteralIndex > &mapping, LinearBooleanProblem *problem) + + + void + ProbeAndSimplifyProblem + namespaceoperations__research_1_1sat.html + ab55a8cd2852ff07c9900f5cff231b329 + (SatPostsolver *postsolver, LinearBooleanProblem *problem) + + + + boolean_problem.h + /home/mizux/work/master/ortools/sat/ + boolean__problem_8h.html + ortools/algorithms/sparse_permutation.h + ortools/base/strong_vector.h + ortools/sat/boolean_problem.pb.h + ortools/sat/cp_model.pb.h + ortools/sat/pb_constraint.h + ortools/sat/sat_base.h + ortools/sat/sat_solver.h + ortools/sat/simplification.h + operations_research + operations_research::sat + + CpModelProto + BooleanProblemToCpModelproto + namespaceoperations__research_1_1sat.html + acaccfd2e692c84b7b31c77ac174199cd + (const LinearBooleanProblem &problem) + + + double + AddOffsetAndScaleObjectiveValue + namespaceoperations__research_1_1sat.html + a16bcd287bd18e3a940d997aafb9321a9 + (const LinearBooleanProblem &problem, Coefficient v) + + + void + ChangeOptimizationDirection + namespaceoperations__research_1_1sat.html + aaf57d784624873d840a2589efa6ff1a1 + (LinearBooleanProblem *problem) + + + void + ExtractAssignment + namespaceoperations__research_1_1sat.html + ae787aad51dac94ee684cf971def30838 + (const LinearBooleanProblem &problem, const SatSolver &solver, std::vector< bool > *assignment) + + + absl::Status + ValidateBooleanProblem + namespaceoperations__research_1_1sat.html + a6004b20c87a172cc7d18754489157868 + (const LinearBooleanProblem &problem) + + + bool + LoadBooleanProblem + namespaceoperations__research_1_1sat.html + add13e122d8861d6cac9b9bb4a51cfcb7 + (const LinearBooleanProblem &problem, SatSolver *solver) + + + bool + LoadAndConsumeBooleanProblem + namespaceoperations__research_1_1sat.html + aa72e6dc6e802fbf5c5fd237efea1131f + (LinearBooleanProblem *problem, SatSolver *solver) + + + void + UseObjectiveForSatAssignmentPreference + namespaceoperations__research_1_1sat.html + a40254eb00d4590a09d811fe94c727c2a + (const LinearBooleanProblem &problem, SatSolver *solver) + + + bool + AddObjectiveUpperBound + namespaceoperations__research_1_1sat.html + a66979ace60178ae3fe59f6180e4db42f + (const LinearBooleanProblem &problem, Coefficient upper_bound, SatSolver *solver) + + + bool + AddObjectiveConstraint + namespaceoperations__research_1_1sat.html + a07c4372fa55782d13edd24b86130e3ba + (const LinearBooleanProblem &problem, bool use_lower_bound, Coefficient lower_bound, bool use_upper_bound, Coefficient upper_bound, SatSolver *solver) + + + Coefficient + ComputeObjectiveValue + namespaceoperations__research_1_1sat.html + abb66766a5d79e878ff67851bc55ca24f + (const LinearBooleanProblem &problem, const std::vector< bool > &assignment) + + + bool + IsAssignmentValid + namespaceoperations__research_1_1sat.html + aab5216003fbe0c2f21e7433084d358e1 + (const LinearBooleanProblem &problem, const std::vector< bool > &assignment) + + + std::string + LinearBooleanProblemToCnfString + namespaceoperations__research_1_1sat.html + ae701a64603e2ac22a99d6c0dd0649845 + (const LinearBooleanProblem &problem) + + + void + StoreAssignment + namespaceoperations__research_1_1sat.html + a25b9a60378da756e4100df6231f29b23 + (const VariablesAssignment &assignment, BooleanAssignment *output) + + + void + ExtractSubproblem + namespaceoperations__research_1_1sat.html + a58c0f19bf0e5ad35da0572722b33d6e7 + (const LinearBooleanProblem &problem, const std::vector< int > &constraint_indices, LinearBooleanProblem *subproblem) + + + void + MakeAllLiteralsPositive + namespaceoperations__research_1_1sat.html + ace3f68c781179d6de36fad9d4b0c386b + (LinearBooleanProblem *problem) + + + void + FindLinearBooleanProblemSymmetries + namespaceoperations__research_1_1sat.html + a6986d13a746e6577bcf0cb190aef8113 + (const LinearBooleanProblem &problem, std::vector< std::unique_ptr< SparsePermutation >> *generators) + + + void + ApplyLiteralMappingToBooleanProblem + namespaceoperations__research_1_1sat.html + aa9848f5a312eda3dad1aa59ed96e2519 + (const absl::StrongVector< LiteralIndex, LiteralIndex > &mapping, LinearBooleanProblem *problem) + + + void + ProbeAndSimplifyProblem + namespaceoperations__research_1_1sat.html + ab55a8cd2852ff07c9900f5cff231b329 + (SatPostsolver *postsolver, LinearBooleanProblem *problem) + + + + boolean_problem.pb.cc + /home/mizux/work/master/ortools/gen/ortools/sat/ + boolean__problem_8pb_8cc.html + ortools/sat/boolean_problem.pb.h + operations_research::sat::LinearBooleanConstraintDefaultTypeInternal + operations_research::sat::LinearObjectiveDefaultTypeInternal + operations_research::sat::BooleanAssignmentDefaultTypeInternal + operations_research::sat::LinearBooleanProblemDefaultTypeInternal + operations_research::sat::LinearBooleanConstraint::_Internal + operations_research::sat::LinearObjective::_Internal + operations_research::sat::BooleanAssignment::_Internal + operations_research::sat::LinearBooleanProblem::_Internal + operations_research + operations_research::sat + + #define + CHK_ + boolean__problem_8pb_8cc.html + a1a656da48cf3d2824247c83ad8d92f10 + (x) + + + #define + CHK_ + boolean__problem_8pb_8cc.html + a1a656da48cf3d2824247c83ad8d92f10 + (x) + + + #define + CHK_ + boolean__problem_8pb_8cc.html + a1a656da48cf3d2824247c83ad8d92f10 + (x) + + + #define + CHK_ + boolean__problem_8pb_8cc.html + a1a656da48cf3d2824247c83ad8d92f10 + (x) + + + static void + InitDefaultsscc_info_BooleanAssignment_ortools_2fsat_2fboolean_5fproblem_2eproto + boolean__problem_8pb_8cc.html + aef64e9f5784dfc516cef1739059c2693 + () + + + static void + InitDefaultsscc_info_LinearBooleanConstraint_ortools_2fsat_2fboolean_5fproblem_2eproto + boolean__problem_8pb_8cc.html + a61be73e6ea14b3283769cd919e72ac02 + () + + + static void + InitDefaultsscc_info_LinearBooleanProblem_ortools_2fsat_2fboolean_5fproblem_2eproto + boolean__problem_8pb_8cc.html + aed03cb174acb94c25e25991470edba60 + () + + + static void + InitDefaultsscc_info_LinearObjective_ortools_2fsat_2fboolean_5fproblem_2eproto + boolean__problem_8pb_8cc.html + a1e8d8931f202613cd1922fb7826efd60 + () + + + const ::PROTOBUF_NAMESPACE_ID::uint32 TableStruct_ortools_2fsat_2fboolean_5fproblem_2eproto::offsets[] + PROTOBUF_SECTION_VARIABLE + boolean__problem_8pb_8cc.html + a79d16f74bb1390edebaa82b085c4edaa + (protodesc_cold) + + + PROTOBUF_NAMESPACE_OPEN PROTOBUF_NOINLINE ::operations_research::sat::LinearBooleanConstraint * + Arena::CreateMaybeMessage< ::operations_research::sat::LinearBooleanConstraint > + boolean__problem_8pb_8cc.html + ae8fe1a0f7e5b650a9eda8ea68885f059 + (Arena *arena) + + + PROTOBUF_NOINLINE ::operations_research::sat::LinearObjective * + Arena::CreateMaybeMessage< ::operations_research::sat::LinearObjective > + boolean__problem_8pb_8cc.html + a1645bada5068fb921eb6c1cec15be522 + (Arena *arena) + + + PROTOBUF_NOINLINE ::operations_research::sat::BooleanAssignment * + Arena::CreateMaybeMessage< ::operations_research::sat::BooleanAssignment > + boolean__problem_8pb_8cc.html + a8bc6d07750c62202d2936f4c149599e0 + (Arena *arena) + + + PROTOBUF_NOINLINE ::operations_research::sat::LinearBooleanProblem * + Arena::CreateMaybeMessage< ::operations_research::sat::LinearBooleanProblem > + boolean__problem_8pb_8cc.html + a0206ad86b562bbe61b783642e5f59755 + (Arena *arena) + + + PROTOBUF_INTERNAL_EXPORT_ortools_2fsat_2fboolean_5fproblem_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo< 0 > + scc_info_BooleanAssignment_ortools_2fsat_2fboolean_5fproblem_2eproto + boolean__problem_8pb_8cc.html + ab017de72fd6bf1c32b9536c5ab6072cf + + + + PROTOBUF_INTERNAL_EXPORT_ortools_2fsat_2fboolean_5fproblem_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo< 0 > + scc_info_LinearBooleanConstraint_ortools_2fsat_2fboolean_5fproblem_2eproto + boolean__problem_8pb_8cc.html + a9a5013e952057b494c758de19df6903d + + + + PROTOBUF_INTERNAL_EXPORT_ortools_2fsat_2fboolean_5fproblem_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo< 0 > + scc_info_LinearObjective_ortools_2fsat_2fboolean_5fproblem_2eproto + boolean__problem_8pb_8cc.html + abfd512d3305629791b952d16db894691 + + + + class operations_research::sat::LinearBooleanConstraintDefaultTypeInternal + _LinearBooleanConstraint_default_instance_ + namespaceoperations__research_1_1sat.html + a44c77c642d778b82561e14d4d88fe982 + + + + class operations_research::sat::LinearObjectiveDefaultTypeInternal + _LinearObjective_default_instance_ + namespaceoperations__research_1_1sat.html + acff383180e0a501ae04bf4a31adfe5a2 + + + + class operations_research::sat::BooleanAssignmentDefaultTypeInternal + _BooleanAssignment_default_instance_ + namespaceoperations__research_1_1sat.html + a440252e6a87c7ee2f290f750e4520326 + + + + class operations_research::sat::LinearBooleanProblemDefaultTypeInternal + _LinearBooleanProblem_default_instance_ + namespaceoperations__research_1_1sat.html + aecb63fab84829b29e02f6481963463f5 + + + + ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo< 3 > + scc_info_LinearBooleanProblem_ortools_2fsat_2fboolean_5fproblem_2eproto + boolean__problem_8pb_8cc.html + a05340153ffbc386597de84d70200155a + + + + ::PROTOBUF_NAMESPACE_ID::Metadata + file_level_metadata_ortools_2fsat_2fboolean_5fproblem_2eproto + boolean__problem_8pb_8cc.html + af58f5a6fa273efc162447e0723e582eb + [4] + + + static constexpr ::PROTOBUF_NAMESPACE_ID::EnumDescriptor const ** + file_level_enum_descriptors_ortools_2fsat_2fboolean_5fproblem_2eproto + boolean__problem_8pb_8cc.html + ab7be3558d1c88c8f264dfa412e0630e9 + + + + static constexpr ::PROTOBUF_NAMESPACE_ID::ServiceDescriptor const ** + file_level_service_descriptors_ortools_2fsat_2fboolean_5fproblem_2eproto + boolean__problem_8pb_8cc.html + a1214d8de4c301ae715fdcde74dc29c5d + + + + ::PROTOBUF_NAMESPACE_ID::Message const *const + file_default_instances + boolean__problem_8pb_8cc.html + a99b6f5a2938c4db4c9413e9b84f85717 + [] + + + static const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable *const + descriptor_table_ortools_2fsat_2fboolean_5fproblem_2eproto_deps + boolean__problem_8pb_8cc.html + ae9feb5bbfb5f498d731f1483da7e78f4 + [1] + + + ::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase *const + descriptor_table_ortools_2fsat_2fboolean_5fproblem_2eproto_sccs + boolean__problem_8pb_8cc.html + a3a860e555091fa4ec895d48661a46273 + [4] + + + ::PROTOBUF_NAMESPACE_ID::internal::once_flag + descriptor_table_ortools_2fsat_2fboolean_5fproblem_2eproto_once + boolean__problem_8pb_8cc.html + a8594dc831523f04794022058505dd9d4 + + + + const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable + descriptor_table_ortools_2fsat_2fboolean_5fproblem_2eproto + boolean__problem_8pb_8cc.html + a8f0186f55a13089b6fa9ce2d8b0d5904 + + + + static bool + dynamic_init_dummy_ortools_2fsat_2fboolean_5fproblem_2eproto + boolean__problem_8pb_8cc.html + ad969d1dbbaa5d9c3754df74514be9fda + + + + + boolean_problem.pb.h + /home/mizux/work/master/ortools/gen/ortools/sat/ + boolean__problem_8pb_8h.html + TableStruct_ortools_2fsat_2fboolean_5fproblem_2eproto + operations_research::sat::PROTOBUF_FINAL + operations_research::sat::PROTOBUF_FINAL + operations_research::sat::PROTOBUF_FINAL + operations_research::sat::PROTOBUF_FINAL + internal + operations_research + operations_research::sat + + #define + PROTOBUF_INTERNAL_EXPORT_ortools_2fsat_2fboolean_5fproblem_2eproto + boolean__problem_8pb_8h.html + a1ea0a3d28cbedc83ec048bd57e5d703c + + + + PROTOBUF_NAMESPACE_OPEN ::operations_research::sat::BooleanAssignment * + Arena::CreateMaybeMessage<::operations_research::sat::BooleanAssignment > + boolean__problem_8pb_8h.html + a9c9ab5f990bab449509129b29cee1c97 + (Arena *) + + + ::operations_research::sat::LinearBooleanConstraint * + Arena::CreateMaybeMessage<::operations_research::sat::LinearBooleanConstraint > + boolean__problem_8pb_8h.html + ab7b9f3d8de786e766dd296fe34d835b1 + (Arena *) + + + ::operations_research::sat::LinearBooleanProblem * + Arena::CreateMaybeMessage<::operations_research::sat::LinearBooleanProblem > + boolean__problem_8pb_8h.html + ab8fe03451886a01a76313ca12cc3f2f7 + (Arena *) + + + ::operations_research::sat::LinearObjective * + Arena::CreateMaybeMessage<::operations_research::sat::LinearObjective > + boolean__problem_8pb_8h.html + a51aa112770d5a6aec2821db7c264d127 + (Arena *) + + + const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable + descriptor_table_ortools_2fsat_2fboolean_5fproblem_2eproto + boolean__problem_8pb_8h.html + a8f0186f55a13089b6fa9ce2d8b0d5904 + + + + + bop_base.cc + /home/mizux/work/master/ortools/bop/ + bop__base_8cc.html + ortools/bop/bop_base.h + ortools/sat/boolean_problem.h + operations_research + operations_research::bop + + + bop_base.h + /home/mizux/work/master/ortools/bop/ + bop__base_8h.html + ortools/base/basictypes.h + ortools/bop/bop_parameters.pb.h + ortools/bop/bop_solution.h + ortools/lp_data/lp_types.h + ortools/sat/boolean_problem.pb.h + ortools/sat/clause.h + ortools/sat/sat_base.h + ortools/util/stats.h + ortools/util/time_limit.h + operations_research::bop::BopOptimizerBase + operations_research::bop::ProblemState + operations_research::bop::LearnedInfo + operations_research + operations_research::bop + + std::ostream & + operator<< + namespaceoperations__research_1_1bop.html + a89d3d2079dea899b901f775515f8b12f + (std::ostream &os, BopOptimizerBase::Status status) + + + + bop_fs.cc + /home/mizux/work/master/ortools/bop/ + bop__fs_8cc.html + ortools/bop/bop_fs.h + ortools/algorithms/sparse_permutation.h + ortools/base/commandlineflags.h + ortools/base/stl_util.h + ortools/glop/lp_solver.h + ortools/lp_data/lp_print_utils.h + ortools/sat/boolean_problem.h + ortools/sat/lp_utils.h + ortools/sat/sat_solver.h + ortools/sat/symmetry.h + ortools/sat/util.h + ortools/util/bitset.h + operations_research + operations_research::bop + + + bop_fs.h + /home/mizux/work/master/ortools/bop/ + bop__fs_8h.html + ortools/base/basictypes.h + ortools/base/int_type.h + ortools/base/integral_types.h + ortools/base/logging.h + ortools/base/macros.h + ortools/base/random.h + ortools/base/strong_vector.h + ortools/bop/bop_base.h + ortools/bop/bop_parameters.pb.h + ortools/bop/bop_solution.h + ortools/bop/bop_types.h + ortools/bop/bop_util.h + ortools/glop/lp_solver.h + ortools/sat/boolean_problem.pb.h + ortools/sat/sat_solver.h + ortools/util/time_limit.h + operations_research::bop::GuidedSatFirstSolutionGenerator + operations_research::bop::BopRandomFirstSolutionGenerator + operations_research::bop::LinearRelaxation + operations_research + operations_research::bop + + + bop_interface.cc + /home/mizux/work/master/ortools/linear_solver/ + bop__interface_8cc.html + ortools/base/commandlineflags.h + ortools/base/file.h + ortools/base/hash.h + ortools/base/integral_types.h + ortools/base/logging.h + ortools/bop/bop_parameters.pb.h + ortools/bop/integral_solver.h + ortools/linear_solver/linear_solver.h + operations_research::BopInterface + operations_research + + MPSolverInterface * + BuildBopInterface + namespaceoperations__research.html + a1cda4034d09c9fa2f0641992116830f0 + (MPSolver *const solver) + + + + bop_lns.cc + /home/mizux/work/master/ortools/bop/ + bop__lns_8cc.html + ortools/bop/bop_lns.h + ortools/base/cleanup.h + ortools/base/commandlineflags.h + ortools/base/stl_util.h + ortools/glop/lp_solver.h + ortools/lp_data/lp_print_utils.h + ortools/sat/boolean_problem.h + ortools/sat/lp_utils.h + ortools/sat/sat_solver.h + ortools/util/bitset.h + operations_research + operations_research::bop + + + bop_lns.h + /home/mizux/work/master/ortools/bop/ + bop__lns_8h.html + ortools/base/basictypes.h + ortools/base/int_type.h + ortools/base/integral_types.h + ortools/base/logging.h + ortools/base/macros.h + ortools/base/random.h + ortools/base/strong_vector.h + ortools/bop/bop_base.h + ortools/bop/bop_parameters.pb.h + ortools/bop/bop_solution.h + ortools/bop/bop_types.h + ortools/bop/bop_util.h + ortools/glop/lp_solver.h + ortools/sat/boolean_problem.pb.h + ortools/sat/sat_solver.h + ortools/util/stats.h + ortools/util/time_limit.h + operations_research::bop::BopCompleteLNSOptimizer + operations_research::bop::NeighborhoodGenerator + operations_research::bop::BopAdaptiveLNSOptimizer + operations_research::bop::ObjectiveBasedNeighborhood + operations_research::bop::ConstraintBasedNeighborhood + operations_research::bop::RelationGraphBasedNeighborhood + operations_research + operations_research::bop + + + bop_ls.cc + /home/mizux/work/master/ortools/bop/ + bop__ls_8cc.html + ortools/bop/bop_ls.h + ortools/bop/bop_util.h + ortools/sat/boolean_problem.h + operations_research + operations_research::bop + + + bop_ls.h + /home/mizux/work/master/ortools/bop/ + bop__ls_8h.html + ortools/base/hash.h + ortools/base/random.h + ortools/bop/bop_base.h + ortools/bop/bop_solution.h + ortools/bop/bop_types.h + ortools/sat/boolean_problem.pb.h + ortools/sat/sat_solver.h + operations_research::bop::SatWrapper + operations_research::bop::LocalSearchOptimizer + operations_research::bop::BacktrackableIntegerSet + operations_research::bop::NonOrderedSetHasher + operations_research::bop::AssignmentAndConstraintFeasibilityMaintainer + operations_research::bop::OneFlipConstraintRepairer + operations_research::bop::OneFlipConstraintRepairer::ConstraintTerm + operations_research::bop::LocalSearchAssignmentIterator + operations_research + operations_research::bop + + + bop_parameters.pb.cc + /home/mizux/work/master/ortools/gen/ortools/bop/ + bop__parameters_8pb_8cc.html + ortools/bop/bop_parameters.pb.h + operations_research::bop::BopOptimizerMethodDefaultTypeInternal + operations_research::bop::BopSolverOptimizerSetDefaultTypeInternal + operations_research::bop::BopParametersDefaultTypeInternal + operations_research::bop::BopOptimizerMethod::_Internal + operations_research::bop::BopSolverOptimizerSet::_Internal + operations_research::bop::BopParameters::_Internal + operations_research + operations_research::bop + + #define + CHK_ + bop__parameters_8pb_8cc.html + a1a656da48cf3d2824247c83ad8d92f10 + (x) + + + #define + CHK_ + bop__parameters_8pb_8cc.html + a1a656da48cf3d2824247c83ad8d92f10 + (x) + + + #define + CHK_ + bop__parameters_8pb_8cc.html + a1a656da48cf3d2824247c83ad8d92f10 + (x) + + + static void + InitDefaultsscc_info_BopOptimizerMethod_ortools_2fbop_2fbop_5fparameters_2eproto + bop__parameters_8pb_8cc.html + a2f5826f3848b6e9278ad1e53093c0418 + () + + + static void + InitDefaultsscc_info_BopParameters_ortools_2fbop_2fbop_5fparameters_2eproto + bop__parameters_8pb_8cc.html + a192e294dc314a4cee66439dd5e3f496c + () + + + static void + InitDefaultsscc_info_BopSolverOptimizerSet_ortools_2fbop_2fbop_5fparameters_2eproto + bop__parameters_8pb_8cc.html + af8f8477a6dad33dab874434ce89dbed1 + () + + + const ::PROTOBUF_NAMESPACE_ID::uint32 TableStruct_ortools_2fbop_2fbop_5fparameters_2eproto::offsets[] + PROTOBUF_SECTION_VARIABLE + bop__parameters_8pb_8cc.html + a6e5ec8f1b1af5721e6f68d8f87654f7f + (protodesc_cold) + + + const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor * + BopOptimizerMethod_OptimizerType_descriptor + namespaceoperations__research_1_1bop.html + a980963a0fd439c5c8a9dce10954aaf5f + () + + + bool + BopOptimizerMethod_OptimizerType_IsValid + namespaceoperations__research_1_1bop.html + a693bab41babebf1ff827e84ddec6a54a + (int value) + + + const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor * + BopParameters_ThreadSynchronizationType_descriptor + namespaceoperations__research_1_1bop.html + a524d0bcbc523a4c21ac46fdd2a3f1f62 + () + + + bool + BopParameters_ThreadSynchronizationType_IsValid + namespaceoperations__research_1_1bop.html + af6adf8bf6510629b4386c4d7f8d083b0 + (int value) + + + PROTOBUF_NAMESPACE_OPEN PROTOBUF_NOINLINE ::operations_research::bop::BopOptimizerMethod * + Arena::CreateMaybeMessage< ::operations_research::bop::BopOptimizerMethod > + bop__parameters_8pb_8cc.html + a826422d02e1dc8f24a396d3b2335757f + (Arena *arena) + + + PROTOBUF_NOINLINE ::operations_research::bop::BopSolverOptimizerSet * + Arena::CreateMaybeMessage< ::operations_research::bop::BopSolverOptimizerSet > + bop__parameters_8pb_8cc.html + a711899b447da0bf80874e584a928c540 + (Arena *arena) + + + PROTOBUF_NOINLINE ::operations_research::bop::BopParameters * + Arena::CreateMaybeMessage< ::operations_research::bop::BopParameters > + bop__parameters_8pb_8cc.html + afb42fa7c2c6f08c6114c7e3d8a1b38da + (Arena *arena) + + + PROTOBUF_INTERNAL_EXPORT_ortools_2fbop_2fbop_5fparameters_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo< 0 > + scc_info_BopOptimizerMethod_ortools_2fbop_2fbop_5fparameters_2eproto + bop__parameters_8pb_8cc.html + acf6577fe69065cea5e5f3e6525d24e49 + + + + PROTOBUF_INTERNAL_EXPORT_ortools_2fbop_2fbop_5fparameters_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo< 1 > + scc_info_BopSolverOptimizerSet_ortools_2fbop_2fbop_5fparameters_2eproto + bop__parameters_8pb_8cc.html + af29b3ba8abcdbead230efa2cdec9442f + + + + class operations_research::bop::BopOptimizerMethodDefaultTypeInternal + _BopOptimizerMethod_default_instance_ + namespaceoperations__research_1_1bop.html + a372b1e7401febedd71ae3109c3c43378 + + + + class operations_research::bop::BopSolverOptimizerSetDefaultTypeInternal + _BopSolverOptimizerSet_default_instance_ + namespaceoperations__research_1_1bop.html + addaf3a28c919a4194cdd4550c78707f3 + + + + class operations_research::bop::BopParametersDefaultTypeInternal + _BopParameters_default_instance_ + namespaceoperations__research_1_1bop.html + a220937d2924d601cecc4aafd377675bc + + + + ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo< 1 > + scc_info_BopParameters_ortools_2fbop_2fbop_5fparameters_2eproto + bop__parameters_8pb_8cc.html + a12105885632083eaad36ab5050e244b3 + + + + ::PROTOBUF_NAMESPACE_ID::Metadata + file_level_metadata_ortools_2fbop_2fbop_5fparameters_2eproto + bop__parameters_8pb_8cc.html + aae73cfa5e1c1d75a09ca459aacf85cbf + [3] + + + static const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor * + file_level_enum_descriptors_ortools_2fbop_2fbop_5fparameters_2eproto + bop__parameters_8pb_8cc.html + aebb15ffacb74d30e03c54b7a3913676f + [2] + + + static constexpr ::PROTOBUF_NAMESPACE_ID::ServiceDescriptor const ** + file_level_service_descriptors_ortools_2fbop_2fbop_5fparameters_2eproto + bop__parameters_8pb_8cc.html + a17115ab4e2ed86751ea78b785facc263 + + + + ::PROTOBUF_NAMESPACE_ID::Message const *const + file_default_instances + bop__parameters_8pb_8cc.html + a99b6f5a2938c4db4c9413e9b84f85717 + [] + + + static const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable *const + descriptor_table_ortools_2fbop_2fbop_5fparameters_2eproto_deps + bop__parameters_8pb_8cc.html + aa4fdeccf8294db334e594e98b979065b + [1] + + + ::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase *const + descriptor_table_ortools_2fbop_2fbop_5fparameters_2eproto_sccs + bop__parameters_8pb_8cc.html + a8f45682c6a765907f7467758dda0fba1 + [3] + + + ::PROTOBUF_NAMESPACE_ID::internal::once_flag + descriptor_table_ortools_2fbop_2fbop_5fparameters_2eproto_once + bop__parameters_8pb_8cc.html + a750cd2f707e10c2d291420d92c3a31fe + + + + const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable + descriptor_table_ortools_2fbop_2fbop_5fparameters_2eproto + bop__parameters_8pb_8cc.html + a645ffbb5ab489c32ac878042d369ce75 + + + + static bool + dynamic_init_dummy_ortools_2fbop_2fbop_5fparameters_2eproto + bop__parameters_8pb_8cc.html + ae776303d21a84d17abe74b38da3173e5 + + + + + bop_parameters.pb.h + /home/mizux/work/master/ortools/gen/ortools/bop/ + bop__parameters_8pb_8h.html + TableStruct_ortools_2fbop_2fbop_5fparameters_2eproto + operations_research::bop::PROTOBUF_FINAL + operations_research::bop::PROTOBUF_FINAL + operations_research::bop::PROTOBUF_FINAL + is_proto_enum< ::operations_research::bop::BopOptimizerMethod_OptimizerType > + is_proto_enum< ::operations_research::bop::BopParameters_ThreadSynchronizationType > + internal + operations_research + operations_research::bop + + #define + PROTOBUF_INTERNAL_EXPORT_ortools_2fbop_2fbop_5fparameters_2eproto + bop__parameters_8pb_8h.html + a8a814f60f2294201161d9b27ea2d4342 + + + + + BopOptimizerMethod_OptimizerType + namespaceoperations__research_1_1bop.html + aed9de9ea8b19231ed04894b990215e4a + + + + BopOptimizerMethod_OptimizerType_SAT_CORE_BASED + namespaceoperations__research_1_1bop.html + aed9de9ea8b19231ed04894b990215e4aa8e861f9c29047d2ed9898c49209717af + + + + BopOptimizerMethod_OptimizerType_SAT_LINEAR_SEARCH + namespaceoperations__research_1_1bop.html + aed9de9ea8b19231ed04894b990215e4aac928364bd8e9522ed2205009855c6b34 + + + + BopOptimizerMethod_OptimizerType_LINEAR_RELAXATION + namespaceoperations__research_1_1bop.html + aed9de9ea8b19231ed04894b990215e4aa6ab7ef22ab14b74824c8439335413891 + + + + BopOptimizerMethod_OptimizerType_LOCAL_SEARCH + namespaceoperations__research_1_1bop.html + aed9de9ea8b19231ed04894b990215e4aa680390b924e399c156116ae681dbf978 + + + + BopOptimizerMethod_OptimizerType_RANDOM_FIRST_SOLUTION + namespaceoperations__research_1_1bop.html + aed9de9ea8b19231ed04894b990215e4aa43f08e23f24104af189b119495c366fc + + + + BopOptimizerMethod_OptimizerType_RANDOM_CONSTRAINT_LNS + namespaceoperations__research_1_1bop.html + aed9de9ea8b19231ed04894b990215e4aa853d8fd185eedb35cb8654d652695b8f + + + + BopOptimizerMethod_OptimizerType_RANDOM_VARIABLE_LNS + namespaceoperations__research_1_1bop.html + aed9de9ea8b19231ed04894b990215e4aa4664d7e73fede28bba16c80d8dffb139 + + + + BopOptimizerMethod_OptimizerType_COMPLETE_LNS + namespaceoperations__research_1_1bop.html + aed9de9ea8b19231ed04894b990215e4aa3bcd605a7f3eacb54b2a77b4202971df + + + + BopOptimizerMethod_OptimizerType_LP_FIRST_SOLUTION + namespaceoperations__research_1_1bop.html + aed9de9ea8b19231ed04894b990215e4aa74a71f92d51fc8fe150eb03434fb821d + + + + BopOptimizerMethod_OptimizerType_OBJECTIVE_FIRST_SOLUTION + namespaceoperations__research_1_1bop.html + aed9de9ea8b19231ed04894b990215e4aa91869e0226b63908cc1e1a03dbbd635d + + + + BopOptimizerMethod_OptimizerType_USER_GUIDED_FIRST_SOLUTION + namespaceoperations__research_1_1bop.html + aed9de9ea8b19231ed04894b990215e4aaa3e3ebd7859512450c2f46791d2ca0ad + + + + BopOptimizerMethod_OptimizerType_RANDOM_CONSTRAINT_LNS_GUIDED_BY_LP + namespaceoperations__research_1_1bop.html + aed9de9ea8b19231ed04894b990215e4aaa40a063c421a1ec04132568b608c5066 + + + + BopOptimizerMethod_OptimizerType_RANDOM_VARIABLE_LNS_GUIDED_BY_LP + namespaceoperations__research_1_1bop.html + aed9de9ea8b19231ed04894b990215e4aae7a48b923e5a64a2ecee9d5d8bc23ceb + + + + BopOptimizerMethod_OptimizerType_RELATION_GRAPH_LNS + namespaceoperations__research_1_1bop.html + aed9de9ea8b19231ed04894b990215e4aaaece4adfdd12247aa6146487e417fe39 + + + + BopOptimizerMethod_OptimizerType_RELATION_GRAPH_LNS_GUIDED_BY_LP + namespaceoperations__research_1_1bop.html + aed9de9ea8b19231ed04894b990215e4aa366341bb8fc23794447a32756c5b4e2f + + + + + BopParameters_ThreadSynchronizationType + namespaceoperations__research_1_1bop.html + aef90b0a80011302d6cabd5a157876cae + + + + BopParameters_ThreadSynchronizationType_NO_SYNCHRONIZATION + namespaceoperations__research_1_1bop.html + aef90b0a80011302d6cabd5a157876caea0dccf30151324561e5a460017c2c875f + + + + BopParameters_ThreadSynchronizationType_SYNCHRONIZE_ALL + namespaceoperations__research_1_1bop.html + aef90b0a80011302d6cabd5a157876caea1e797b4ae6157776777b85564d635063 + + + + BopParameters_ThreadSynchronizationType_SYNCHRONIZE_ON_RIGHT + namespaceoperations__research_1_1bop.html + aef90b0a80011302d6cabd5a157876caea0020ab2f9bb71c0d0349719fd426ae46 + + + + PROTOBUF_NAMESPACE_OPEN ::operations_research::bop::BopOptimizerMethod * + Arena::CreateMaybeMessage<::operations_research::bop::BopOptimizerMethod > + bop__parameters_8pb_8h.html + a42c38549972cf22c6a6f21613876382f + (Arena *) + + + ::operations_research::bop::BopParameters * + Arena::CreateMaybeMessage<::operations_research::bop::BopParameters > + bop__parameters_8pb_8h.html + ae09eefa5d8bd5d96c5b9d61390aa1b9a + (Arena *) + + + ::operations_research::bop::BopSolverOptimizerSet * + Arena::CreateMaybeMessage<::operations_research::bop::BopSolverOptimizerSet > + bop__parameters_8pb_8h.html + a0827436c61d55c40759bcecb764334c3 + (Arena *) + + + bool + BopOptimizerMethod_OptimizerType_IsValid + namespaceoperations__research_1_1bop.html + a693bab41babebf1ff827e84ddec6a54a + (int value) + + + const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor * + BopOptimizerMethod_OptimizerType_descriptor + namespaceoperations__research_1_1bop.html + a980963a0fd439c5c8a9dce10954aaf5f + () + + + const std::string & + BopOptimizerMethod_OptimizerType_Name + namespaceoperations__research_1_1bop.html + a401297383905565c9287b3240b974f85 + (T enum_t_value) + + + bool + BopOptimizerMethod_OptimizerType_Parse + namespaceoperations__research_1_1bop.html + a56e066e847e6c7b3480fa1ce5e29082f + (::PROTOBUF_NAMESPACE_ID::ConstStringParam name, BopOptimizerMethod_OptimizerType *value) + + + bool + BopParameters_ThreadSynchronizationType_IsValid + namespaceoperations__research_1_1bop.html + af6adf8bf6510629b4386c4d7f8d083b0 + (int value) + + + const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor * + BopParameters_ThreadSynchronizationType_descriptor + namespaceoperations__research_1_1bop.html + a524d0bcbc523a4c21ac46fdd2a3f1f62 + () + + + const std::string & + BopParameters_ThreadSynchronizationType_Name + namespaceoperations__research_1_1bop.html + a6a0cdccceb6a0d68c643154c4a87e753 + (T enum_t_value) + + + bool + BopParameters_ThreadSynchronizationType_Parse + namespaceoperations__research_1_1bop.html + a7f95e7f6329babc0929a3f3416270a35 + (::PROTOBUF_NAMESPACE_ID::ConstStringParam name, BopParameters_ThreadSynchronizationType *value) + + + const EnumDescriptor * + GetEnumDescriptor< ::operations_research::bop::BopOptimizerMethod_OptimizerType > + bop__parameters_8pb_8h.html + a9a547b00406c67fafdddda923e385a39 + () + + + const EnumDescriptor * + GetEnumDescriptor< ::operations_research::bop::BopParameters_ThreadSynchronizationType > + bop__parameters_8pb_8h.html + a3ec60145b66fbf2c0d524aff07f37157 + () + + + const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable + descriptor_table_ortools_2fbop_2fbop_5fparameters_2eproto + bop__parameters_8pb_8h.html + a645ffbb5ab489c32ac878042d369ce75 + + + + constexpr BopOptimizerMethod_OptimizerType + BopOptimizerMethod_OptimizerType_OptimizerType_MIN + namespaceoperations__research_1_1bop.html + abee23606aa9d2ddb0b610afaad912ca2 + + + + constexpr BopOptimizerMethod_OptimizerType + BopOptimizerMethod_OptimizerType_OptimizerType_MAX + namespaceoperations__research_1_1bop.html + a9e58d08bb7779b5562d14d4dda3d6642 + + + + constexpr int + BopOptimizerMethod_OptimizerType_OptimizerType_ARRAYSIZE + namespaceoperations__research_1_1bop.html + aca901506d2a1842d1adf0090871eac31 + + + + constexpr BopParameters_ThreadSynchronizationType + BopParameters_ThreadSynchronizationType_ThreadSynchronizationType_MIN + namespaceoperations__research_1_1bop.html + a59963239108c6732ad3c45f3256ad2aa + + + + constexpr BopParameters_ThreadSynchronizationType + BopParameters_ThreadSynchronizationType_ThreadSynchronizationType_MAX + namespaceoperations__research_1_1bop.html + ae1c2eb832b73d5e3cc935647c555669c + + + + constexpr int + BopParameters_ThreadSynchronizationType_ThreadSynchronizationType_ARRAYSIZE + namespaceoperations__research_1_1bop.html + a874f2531fc215e55857fe9c36b38968a + + + + + bop_portfolio.cc + /home/mizux/work/master/ortools/bop/ + bop__portfolio_8cc.html + ortools/bop/bop_portfolio.h + ortools/base/stl_util.h + ortools/bop/bop_fs.h + ortools/bop/bop_lns.h + ortools/bop/bop_ls.h + ortools/bop/bop_util.h + ortools/bop/complete_optimizer.h + ortools/sat/boolean_problem.h + ortools/sat/boolean_problem.pb.h + ortools/sat/symmetry.h + operations_research + operations_research::bop + + + bop_portfolio.h + /home/mizux/work/master/ortools/bop/ + bop__portfolio_8h.html + ortools/bop/bop_base.h + ortools/bop/bop_lns.h + ortools/bop/bop_parameters.pb.h + ortools/bop/bop_solution.h + ortools/bop/bop_types.h + ortools/glop/lp_solver.h + ortools/sat/boolean_problem.pb.h + ortools/sat/sat_solver.h + ortools/util/stats.h + ortools/util/time_limit.h + operations_research::bop::PortfolioOptimizer + operations_research::bop::OptimizerSelector + operations_research + operations_research::bop + + + DEFINE_INT_TYPE + namespaceoperations__research_1_1bop.html + a73c64bc3939d4195d10ff01d6d9715e6 + (OptimizerIndex, int) + + + const OptimizerIndex + kInvalidOptimizerIndex + namespaceoperations__research_1_1bop.html + a5f4af3d65054eb50d75d907bd9e3071a + (-1) + + + + bop_solution.cc + /home/mizux/work/master/ortools/bop/ + bop__solution_8cc.html + ortools/bop/bop_solution.h + operations_research + operations_research::bop + + + bop_solution.h + /home/mizux/work/master/ortools/bop/ + bop__solution_8h.html + ortools/bop/bop_types.h + ortools/sat/boolean_problem.h + ortools/sat/boolean_problem.pb.h + operations_research::bop::BopSolution + operations_research + operations_research::bop + + + bop_solver.cc + /home/mizux/work/master/ortools/bop/ + bop__solver_8cc.html + ortools/bop/bop_solver.h + ortools/base/commandlineflags.h + ortools/base/stl_util.h + ortools/bop/bop_fs.h + ortools/bop/bop_lns.h + ortools/bop/bop_ls.h + ortools/bop/bop_portfolio.h + ortools/bop/bop_util.h + ortools/bop/complete_optimizer.h + ortools/glop/lp_solver.h + ortools/lp_data/lp_print_utils.h + ortools/sat/boolean_problem.h + ortools/sat/lp_utils.h + ortools/sat/sat_solver.h + ortools/util/bitset.h + operations_research + operations_research::bop + + + bop_solver.h + /home/mizux/work/master/ortools/bop/ + bop__solver_8h.html + ortools/base/basictypes.h + ortools/base/int_type.h + ortools/base/integral_types.h + ortools/base/logging.h + ortools/base/macros.h + ortools/base/strong_vector.h + ortools/bop/bop_base.h + ortools/bop/bop_parameters.pb.h + ortools/bop/bop_solution.h + ortools/bop/bop_types.h + ortools/glop/lp_solver.h + ortools/sat/boolean_problem.pb.h + ortools/sat/sat_solver.h + ortools/util/stats.h + ortools/util/time_limit.h + operations_research::bop::BopSolver + operations_research + operations_research::bop + + + bop_types.h + /home/mizux/work/master/ortools/bop/ + bop__types_8h.html + ortools/base/basictypes.h + ortools/base/int_type.h + ortools/base/strong_vector.h + operations_research::bop::BopConstraintTerm + operations_research + operations_research::bop + + absl::StrongVector< SparseIndex, BopConstraintTerm > + BopConstraintTerms + namespaceoperations__research_1_1bop.html + ac9c38b3de2073e14b57f06fb328dcdb4 + + + + + BopSolveStatus + namespaceoperations__research_1_1bop.html + a7fe1fd792b1c40c0b5dcc44728e5f915 + + OPTIMAL_SOLUTION_FOUND + FEASIBLE_SOLUTION_FOUND + NO_SOLUTION_FOUND + INFEASIBLE_PROBLEM + INVALID_PROBLEM + + + + DEFINE_INT_TYPE + namespaceoperations__research_1_1bop.html + a583f0a1266f51bcd1547fcd84a260bc9 + (ConstraintIndex, int) + + + + DEFINE_INT_TYPE + namespaceoperations__research_1_1bop.html + a43e32dbba43f215cefd88bb6d8cb96ae + (EntryIndex, int) + + + + DEFINE_INT_TYPE + namespaceoperations__research_1_1bop.html + a96937cfd6051c2a5e5ec588c702914b5 + (SearchIndex, int) + + + + DEFINE_INT_TYPE + namespaceoperations__research_1_1bop.html + a210beea71eb50852229a5239588aceb1 + (TermIndex, int) + + + + DEFINE_INT_TYPE + namespaceoperations__research_1_1bop.html + a33eea723a457e44a282c125e8abb7b2a + (VariableIndex, int) + + + + DEFINE_INT_TYPE + namespaceoperations__research_1_1bop.html + a174d1634e6c8bec6fe54e97ad2a508be + (SolverTimeStamp, int64) + + + std::string + GetSolveStatusString + namespaceoperations__research_1_1bop.html + abe3dec50f93b321c6cce5fea9d5d2fa7 + (BopSolveStatus status) + + + std::ostream & + operator<< + namespaceoperations__research_1_1bop.html + adc2aae82d6c34822e104b326156bca0b + (std::ostream &os, BopSolveStatus status) + + + + DEFINE_INT_TYPE + namespaceoperations__research_1_1bop.html + a58cdeeab679104e0fcd9a2e5dedda151 + (SparseIndex, int) + + + + bop_util.cc + /home/mizux/work/master/ortools/bop/ + bop__util_8cc.html + ortools/bop/bop_util.h + ortools/base/basictypes.h + ortools/base/integral_types.h + ortools/bop/bop_base.h + ortools/bop/bop_solution.h + ortools/sat/boolean_problem.h + ortools/sat/sat_solver.h + operations_research + operations_research::bop + + BopOptimizerBase::Status + LoadStateProblemToSatSolver + namespaceoperations__research_1_1bop.html + a2c3c1538ecc101963e5c92ff9bfb33bb + (const ProblemState &problem_state, sat::SatSolver *sat_solver) + + + void + ExtractLearnedInfoFromSatSolver + namespaceoperations__research_1_1bop.html + a717f3da5a33db3ffe67861f8731b254a + (sat::SatSolver *solver, LearnedInfo *info) + + + void + SatAssignmentToBopSolution + namespaceoperations__research_1_1bop.html + a49c2b7c159260e338438fc2e167a0c3d + (const sat::VariablesAssignment &assignment, BopSolution *solution) + + + + bop_util.h + /home/mizux/work/master/ortools/bop/ + bop__util_8h.html + ortools/base/basictypes.h + ortools/base/integral_types.h + ortools/bop/bop_base.h + ortools/bop/bop_solution.h + ortools/sat/sat_solver.h + operations_research::bop::AdaptiveParameterValue + operations_research::bop::LubyAdaptiveParameterValue + operations_research + operations_research::bop + + BopOptimizerBase::Status + LoadStateProblemToSatSolver + namespaceoperations__research_1_1bop.html + a2c3c1538ecc101963e5c92ff9bfb33bb + (const ProblemState &problem_state, sat::SatSolver *sat_solver) + + + void + ExtractLearnedInfoFromSatSolver + namespaceoperations__research_1_1bop.html + a717f3da5a33db3ffe67861f8731b254a + (sat::SatSolver *solver, LearnedInfo *info) + + + void + SatAssignmentToBopSolution + namespaceoperations__research_1_1bop.html + a49c2b7c159260e338438fc2e167a0c3d + (const sat::VariablesAssignment &assignment, BopSolution *solution) + + + + cached_log.cc + /home/mizux/work/master/ortools/util/ + cached__log_8cc.html + ortools/util/cached_log.h + ortools/base/logging.h + operations_research + + + cached_log.h + /home/mizux/work/master/ortools/util/ + cached__log_8h.html + ortools/base/basictypes.h + ortools/base/integral_types.h + ortools/base/logging.h + ortools/base/macros.h + operations_research::CachedLog + operations_research + + + cbc_interface.cc + /home/mizux/work/master/ortools/linear_solver/ + cbc__interface_8cc.html + ortools/base/commandlineflags.h + ortools/base/hash.h + ortools/base/integral_types.h + ortools/base/logging.h + ortools/base/timer.h + ortools/linear_solver/linear_solver.h + operations_research::CBCInterface + operations_research + + MPSolverInterface * + BuildCBCInterface + namespaceoperations__research.html + a3cde3225ed4ac75f81b1ee768a41aa4b + (MPSolver *const solver) + + + + checker.cc + /home/mizux/work/master/ortools/flatzinc/ + checker_8cc.html + ortools/flatzinc/checker.h + ortools/base/map_util.h + ortools/flatzinc/logging.h + ortools/flatzinc/model.h + operations_research + operations_research::fz + + bool + CheckSolution + namespaceoperations__research_1_1fz.html + a8451e6a72eeb9f0ae3ee0ea8187fe880 + (const Model &model, const std::function< int64(IntegerVariable *)> &evaluator) + + + + checker.h + /home/mizux/work/master/ortools/flatzinc/ + checker_8h.html + ortools/flatzinc/model.h + operations_research + operations_research::fz + + bool + CheckSolution + namespaceoperations__research_1_1fz.html + a8451e6a72eeb9f0ae3ee0ea8187fe880 + (const Model &model, const std::function< int64(IntegerVariable *)> &evaluator) + + + + christofides.h + /home/mizux/work/master/ortools/graph/ + christofides_8h.html + ortools/base/integral_types.h + ortools/base/logging.h + ortools/graph/eulerian_path.h + ortools/graph/graph.h + ortools/graph/minimum_spanning_tree.h + ortools/graph/perfect_matching.h + ortools/linear_solver/linear_solver.h + ortools/linear_solver/linear_solver.pb.h + ortools/util/saturated_arithmetic.h + operations_research::ChristofidesPathSolver + operations_research + + std::vector< std::pair< typename GraphType::NodeIndex, typename GraphType::NodeIndex > > + ComputeMinimumWeightMatching + namespaceoperations__research.html + a3174292e878ea613e33ac86334fde459 + (const GraphType &graph, const WeightFunctionType &weight) + + + std::vector< std::pair< typename GraphType::NodeIndex, typename GraphType::NodeIndex > > + ComputeMinimumWeightMatchingWithMIP + namespaceoperations__research.html + a48f6892917d77639f011cd780ce88bde + (const GraphType &graph, const WeightFunctionType &weight) + + + + circuit.cc + /home/mizux/work/master/ortools/sat/ + circuit_8cc.html + ortools/sat/circuit.h + ortools/base/map_util.h + ortools/sat/sat_solver.h + operations_research + operations_research::sat + + std::function< void(Model *)> + ExactlyOnePerRowAndPerColumn + namespaceoperations__research_1_1sat.html + a505d58583f35441cea048e6a69453099 + (const std::vector< std::vector< Literal >> &graph) + + + std::function< void(Model *)> + SubcircuitConstraint + namespaceoperations__research_1_1sat.html + a3c25e2ace66c05a1078d9d8128ca33c3 + (int num_nodes, const std::vector< int > &tails, const std::vector< int > &heads, const std::vector< Literal > &literals, bool multiple_subcircuit_through_zero) + + + std::function< void(Model *)> + CircuitCovering + namespaceoperations__research_1_1sat.html + a42094dcdae62a62bd5d269e1223f7f30 + (const std::vector< std::vector< Literal >> &graph, const std::vector< int > &distinguished_nodes) + + + + circuit.h + /home/mizux/work/master/ortools/sat/ + circuit_8h.html + ortools/base/int_type.h + ortools/base/integral_types.h + ortools/base/logging.h + ortools/base/macros.h + ortools/sat/integer.h + ortools/sat/model.h + ortools/sat/sat_base.h + ortools/util/rev.h + operations_research::sat::CircuitPropagator + operations_research::sat::CircuitPropagator::Options + operations_research::sat::CircuitCoveringPropagator + operations_research + operations_research::sat + + int + ReindexArcs + namespaceoperations__research_1_1sat.html + a8f4f9889ab3527ce5381ed32e2fae25a + (IntContainer *tails, IntContainer *heads) + + + std::function< void(Model *)> + SubcircuitConstraint + namespaceoperations__research_1_1sat.html + a3c25e2ace66c05a1078d9d8128ca33c3 + (int num_nodes, const std::vector< int > &tails, const std::vector< int > &heads, const std::vector< Literal > &literals, bool multiple_subcircuit_through_zero) + + + std::function< void(Model *)> + ExactlyOnePerRowAndPerColumn + namespaceoperations__research_1_1sat.html + a505d58583f35441cea048e6a69453099 + (const std::vector< std::vector< Literal >> &graph) + + + std::function< void(Model *)> + CircuitCovering + namespaceoperations__research_1_1sat.html + a42094dcdae62a62bd5d269e1223f7f30 + (const std::vector< std::vector< Literal >> &graph, const std::vector< int > &distinguished_nodes) + + + + clause.cc + /home/mizux/work/master/ortools/sat/ + clause_8cc.html + ortools/sat/clause.h + ortools/base/logging.h + ortools/base/stl_util.h + ortools/base/timer.h + ortools/graph/strongly_connected_components.h + operations_research::sat::SccGraph + operations_research + operations_research::sat + + + clause.h + /home/mizux/work/master/ortools/sat/ + clause_8h.html + ortools/base/hash.h + ortools/base/int_type.h + ortools/base/integral_types.h + ortools/base/macros.h + ortools/base/strong_vector.h + ortools/sat/drat_proof_handler.h + ortools/sat/model.h + ortools/sat/sat_base.h + ortools/sat/sat_parameters.pb.h + ortools/sat/util.h + ortools/util/bitset.h + ortools/util/random_engine.h + ortools/util/stats.h + ortools/util/time_limit.h + operations_research::sat::SatClause + operations_research::sat::ClauseInfo + operations_research::sat::LiteralWatchers + operations_research::sat::LiteralWatchers::Watcher + operations_research::sat::BinaryClause + operations_research::sat::BinaryClauseManager + operations_research::sat::BinaryImplicationGraph + operations_research + operations_research::sat + + + cleanup.h + /home/mizux/work/master/ortools/base/ + cleanup_8h.html + ortools/base/logging.h + absl::cleanup_internal::Storage + absl::cleanup_internal::AccessStorage + absl::Cleanup + absl + absl::cleanup_internal + + absl::Cleanup< absl::decay_t< Callback > > + MakeCleanup + namespaceabsl.html + a9bfb260a67150f0bc1da17aac9199866 + (Callback &&callback) + + + + cliques.cc + /home/mizux/work/master/ortools/graph/ + cliques_8cc.html + ortools/graph/cliques.h + ortools/base/hash.h + operations_research + + void + FindCliques + namespaceoperations__research.html + af7f3504c258b748227551a4d7b7bf036 + (std::function< bool(int, int)> graph, int node_count, std::function< bool(const std::vector< int > &)> callback) + + + void + CoverArcsByCliques + namespaceoperations__research.html + a5986867bcb6d1470fd6c27438d289fcd + (std::function< bool(int, int)> graph, int node_count, std::function< bool(const std::vector< int > &)> callback) + + + + cliques.h + /home/mizux/work/master/ortools/graph/ + cliques_8h.html + ortools/base/int_type.h + ortools/base/logging.h + ortools/base/strong_vector.h + ortools/util/time_limit.h + operations_research::BronKerboschAlgorithm + operations_research + + + CliqueResponse + namespaceoperations__research.html + ae6df4b4cb7c39ca06812199bbee9119c + + CONTINUE + STOP + + + + BronKerboschAlgorithmStatus + namespaceoperations__research.html + abd4e546b0e3afb0208c7a44ee6ab4ea8 + + COMPLETED + INTERRUPTED + + + void + FindCliques + namespaceoperations__research.html + af7f3504c258b748227551a4d7b7bf036 + (std::function< bool(int, int)> graph, int node_count, std::function< bool(const std::vector< int > &)> callback) + + + void + CoverArcsByCliques + namespaceoperations__research.html + a5986867bcb6d1470fd6c27438d289fcd + (std::function< bool(int, int)> graph, int node_count, std::function< bool(const std::vector< int > &)> callback) + + + + clp_interface.cc + /home/mizux/work/master/ortools/linear_solver/ + clp__interface_8cc.html + ortools/base/commandlineflags.h + ortools/base/hash.h + ortools/base/integral_types.h + ortools/base/logging.h + ortools/base/timer.h + ortools/linear_solver/linear_solver.h + operations_research::CLPInterface + operations_research + + MPSolverInterface * + BuildCLPInterface + namespaceoperations__research.html + aa9ff99a01a4a9c5d8a65a5f5ea37d342 + (MPSolver *const solver) + + + + commandlineflags.cc + /home/mizux/work/master/ortools/base/ + commandlineflags_8cc.html + ortools/base/commandlineflags.h + + void + CommandLineFlagsUnusedMethod + commandlineflags_8cc.html + a2935360945023c0304f46869eb988a9c + () + + + + commandlineflags.h + /home/mizux/work/master/ortools/base/ + commandlineflags_8h.html + + + complete_optimizer.cc + /home/mizux/work/master/ortools/bop/ + complete__optimizer_8cc.html + ortools/bop/complete_optimizer.h + ortools/bop/bop_util.h + ortools/sat/boolean_problem.h + operations_research + operations_research::bop + + + complete_optimizer.h + /home/mizux/work/master/ortools/bop/ + complete__optimizer_8h.html + ortools/bop/bop_base.h + ortools/bop/bop_solution.h + ortools/bop/bop_types.h + ortools/sat/boolean_problem.pb.h + ortools/sat/encoding.h + ortools/sat/sat_solver.h + operations_research::bop::SatCoreBasedOptimizer + operations_research + operations_research::bop + + + connected_components.cc + /home/mizux/work/master/ortools/graph/ + connected__components_8cc.html + ortools/graph/connected_components.h + ortools/base/stl_util.h + + + connected_components.h + /home/mizux/work/master/ortools/graph/ + connected__components_8h.html + ortools/base/logging.h + ortools/base/map_util.h + ortools/base/ptr_util.h + DenseConnectedComponentsFinder + internal::ConnectedComponentsTypeHelper + internal::ConnectedComponentsTypeHelper::SelectContainer + internal::ConnectedComponentsTypeHelper::SelectContainer< U, absl::enable_if_t< std::is_integral< decltype(std::declval< const U & >()(std::declval< const T & >()))>::value > > + ConnectedComponentsFinder + util + internal + + std::vector< int > + GetConnectedComponents + namespaceutil.html + a366d433bd2afb387ea527c581447dffc + (int num_nodes, const UndirectedGraph &graph) + + + + constraint_solver.cc + /home/mizux/work/master/ortools/constraint_solver/ + constraint__solver_8cc.html + ortools/constraint_solver/constraint_solver.h + ortools/base/commandlineflags.h + ortools/base/file.h + ortools/base/integral_types.h + ortools/base/logging.h + ortools/base/macros.h + ortools/base/map_util.h + ortools/base/recordio.h + ortools/base/stl_util.h + ortools/constraint_solver/constraint_solveri.h + ortools/util/tuple_set.h + operations_research::Queue + operations_research::StateInfo + operations_research::StateMarker + operations_research::Trail + operations_research::Search + operations_research::Trace + operations_research::LocalSearchMonitorMaster + operations_research + + #define + CP_TRY + constraint__solver_8cc.html + a458c844702d69839c667500d86ae49c8 + (search) + + + #define + CP_ON_FAIL + constraint__solver_8cc.html + a40910cf9a9eb89daac6c929006a03416 + + + + #define + CP_DO_FAIL + constraint__solver_8cc.html + a61301f951c309e0078fcaa570fa0e262 + (search) + + + + ABSL_FLAG + constraint__solver_8cc.html + a79a2d981d61042787478f024a9748f78 + (bool, cp_trace_propagation, false, "Trace propagation events (constraint and demon executions," " variable modifications).") + + + + ABSL_FLAG + constraint__solver_8cc.html + a0f362dac4ad04c5e74c4ec48ac35ad9c + (bool, cp_trace_search, false, "Trace search events") + + + + ABSL_FLAG + constraint__solver_8cc.html + ac986fbec333ae5f948a6ad50b2d56c25 + (bool, cp_print_added_constraints, false, "show all constraints added to the solver.") + + + + ABSL_FLAG + constraint__solver_8cc.html + ad1c2778d104145e1d3adfee190a7423a + (bool, cp_print_model, false, "use PrintModelVisitor on model before solving.") + + + + ABSL_FLAG + constraint__solver_8cc.html + a2a357f4cbf78a7894155b999b3582e9f + (bool, cp_model_stats, false, "use StatisticsModelVisitor on model before solving.") + + + + ABSL_FLAG + constraint__solver_8cc.html + ae2da7c48947628991cd03155f21280cc + (bool, cp_disable_solve, false, "Force failure at the beginning of a search.") + + + + ABSL_FLAG + constraint__solver_8cc.html + ac67f0b62004688d6ef6729915324f4bd + (std::string, cp_profile_file, "", "Export profiling overview to file.") + + + + ABSL_FLAG + constraint__solver_8cc.html + af2c957bd8f9fdc6b5b05a89a1d915998 + (bool, cp_print_local_search_profile, false, "Print local search profiling data after solving.") + + + + ABSL_FLAG + constraint__solver_8cc.html + a21754a57147088978544f3e043a03ca7 + (bool, cp_name_variables, false, "Force all variables to have names.") + + + + ABSL_FLAG + constraint__solver_8cc.html + aef196112ef9eee7784db78459673011b + (bool, cp_name_cast_variables, false, "Name variables casted from expressions") + + + + ABSL_FLAG + constraint__solver_8cc.html + ac466a1b3146d8e17868dd4ba395b7bd4 + (bool, cp_use_small_table, true, "Use small compact table constraint when possible.") + + + + ABSL_FLAG + constraint__solver_8cc.html + a1053abe7d98cf6621e950a5e34133252 + (bool, cp_use_cumulative_edge_finder, true, "Use the O(n log n) cumulative edge finding algorithm described " "in 'Edge Finding Filtering Algorithm for Discrete Cumulative " "Resources in O(kn log n)' by Petr Vilim, CP 2009.") + + + + ABSL_FLAG + constraint__solver_8cc.html + aba53bc2e0ca3683c53fe5ffc66bb9a90 + (bool, cp_use_cumulative_time_table, true, "Use a O(n^2) cumulative time table propagation algorithm.") + + + + ABSL_FLAG + constraint__solver_8cc.html + ae2bb43b7cc826bfc2b15fd12cfc942ca + (bool, cp_use_cumulative_time_table_sync, false, "Use a synchronized O(n^2 log n) cumulative time table propagation " "algorithm.") + + + + ABSL_FLAG + constraint__solver_8cc.html + ae3cfc74adc8925f90283dc597d74d189 + (bool, cp_use_sequence_high_demand_tasks, true, "Use a sequence constraints for cumulative tasks that have a " "demand greater than half of the capacity of the resource.") + + + + ABSL_FLAG + constraint__solver_8cc.html + a7441638bac66048fffda4f85ad47b053 + (bool, cp_use_all_possible_disjunctions, true, "Post temporal disjunctions for all pairs of tasks sharing a " "cumulative resource and that cannot overlap because the sum of " "their demand exceeds the capacity.") + + + + ABSL_FLAG + constraint__solver_8cc.html + ac8511aece3de0b1ad3c7fe74ed5b6aab + (int, cp_max_edge_finder_size, 50, "Do not post the edge finder in the cumulative constraints if " "it contains more than this number of tasks") + + + + ABSL_FLAG + constraint__solver_8cc.html + ab30b3cd46368782ea63ecedc64a16229 + (bool, cp_diffn_use_cumulative, true, "Diffn constraint adds redundant cumulative constraint") + + + + ABSL_FLAG + constraint__solver_8cc.html + aca453a33de00c272b74b04dc2c35a4ae + (bool, cp_use_element_rmq, true, "If true, rmq's will be used in element expressions.") + + + + ABSL_FLAG + constraint__solver_8cc.html + ad985ec7efaad19f8d3865d4fef188e81 + (int, cp_check_solution_period, 1, "Number of solutions explored between two solution checks during " "local search.") + + + + ABSL_FLAG + constraint__solver_8cc.html + a6121db2822d7f6e8effd0a3224fbe8be + (int64, cp_random_seed, 12345, "Random seed used in several (but not all) random number " "generators used by the CP solver. Use -1 to auto-generate an" "undeterministic random seed.") + + + void + ConstraintSolverFailsHere + constraint__solver_8cc.html + ac13a1be8287ff935b4a93be3cc716e79 + () + + + DemonProfiler * + BuildDemonProfiler + namespaceoperations__research.html + aa77291e19ddff9a79129492a816faea9 + (Solver *const solver) + + + void + DeleteDemonProfiler + namespaceoperations__research.html + ae9bda1126d10f6d82174b04a78470cbf + (DemonProfiler *const monitor) + + + void + InstallDemonProfiler + namespaceoperations__research.html + a149483ab8d542a656880da500c648a7a + (DemonProfiler *const monitor) + + + LocalSearchProfiler * + BuildLocalSearchProfiler + namespaceoperations__research.html + af99f1f47c471de23412979cd175e4ba5 + (Solver *solver) + + + void + DeleteLocalSearchProfiler + namespaceoperations__research.html + a6b1eaa3bbbca6bb1540d0c6f58e1b429 + (LocalSearchProfiler *monitor) + + + void + InstallLocalSearchProfiler + namespaceoperations__research.html + a1c0f97bcea6f2f81b6fd7243ae86f95d + (LocalSearchProfiler *monitor) + + + void + CleanVariableOnFail + namespaceoperations__research.html + a2d93e6c7c6b355e59b3305d51ad28ea4 + (IntVar *const var) + + + void + RestoreBoolValue + namespaceoperations__research.html + aa101bbcacb341513ace416484147ce55 + (IntVar *const var) + + + void + InternalSaveBooleanVarValue + namespaceoperations__research.html + a0e9621c9c2973131800432eaa57818d5 + (Solver *const solver, IntVar *const var) + + + bool + LocalOptimumReached + namespaceoperations__research.html + af3c183bd74c4ac70341e97fe5030b191 + (Search *const search) + + + bool + AcceptDelta + namespaceoperations__research.html + aa84acd1f5e19a0fda99d68bfcce4fdcf + (Search *const search, Assignment *delta, Assignment *deltadelta) + + + void + AcceptNeighbor + namespaceoperations__research.html + ac076f97ddc2c6a302b01ca2bb528e1f4 + (Search *const search) + + + void + AcceptUncheckedNeighbor + namespaceoperations__research.html + af7c8c8d0b8a6e63b446a63628d790337 + (Search *const search) + + + PropagationMonitor * + BuildTrace + namespaceoperations__research.html + ae86db60a7a714376a12d02f5a17e0834 + (Solver *const s) + + + LocalSearchMonitor * + BuildLocalSearchMonitorMaster + namespaceoperations__research.html + ac14e9b596ffcb12583b9afc36d205514 + (Solver *const s) + + + ModelCache * + BuildModelCache + namespaceoperations__research.html + a361a9208d4526ad684cd218aa429676d + (Solver *const solver) + + + PropagationMonitor * + BuildPrintTrace + namespaceoperations__research.html + a00c751d43cd8e101a59f9198ea5a5555 + (Solver *const s) + + + std::ostream & + operator<< + namespaceoperations__research.html + a5243a6e26c5553715409101ba9dedfbb + (std::ostream &out, const Solver *const s) + + + std::ostream & + operator<< + namespaceoperations__research.html + a33241b1c5963edc052a5ddd089274322 + (std::ostream &out, const BaseObject *const o) + + + std::string + compressed + constraint__solver_8cc.html + ad3abed281c933b061bc42a26033aa7b6 + + + + Block * + next + constraint__solver_8cc.html + a395f613555f398dd389670bb4c2a4599 + + + + + constraint_solver.h + /home/mizux/work/master/ortools/constraint_solver/ + constraint__solver_8h.html + ortools/base/commandlineflags.h + ortools/base/hash.h + ortools/base/integral_types.h + ortools/base/logging.h + ortools/base/macros.h + ortools/base/map_util.h + ortools/base/sysinfo.h + ortools/base/timer.h + ortools/constraint_solver/routing_parameters.pb.h + ortools/constraint_solver/search_stats.pb.h + ortools/constraint_solver/solver_parameters.pb.h + ortools/util/piecewise_linear_function.h + ortools/util/sorted_interval_list.h + ortools/util/tuple_set.h + operations_research::DefaultPhaseParameters + operations_research::Solver + operations_research::Solver::IntegerCastInfo + operations_research::Solver::SearchLogParameters + operations_research::BaseObject + operations_research::PropagationBaseObject + operations_research::Decision + operations_research::DecisionVisitor + operations_research::DecisionBuilder + operations_research::Demon + operations_research::ModelVisitor + operations_research::Constraint + operations_research::CastConstraint + operations_research::SearchMonitor + operations_research::Rev + operations_research::NumericalRev + operations_research::RevArray + operations_research::NumericalRevArray + operations_research::IntExpr + operations_research::IntVarIterator + operations_research::InitAndGetValues + operations_research::InitAndGetValues::Iterator + operations_research::IntVar + operations_research::SolutionCollector + operations_research::SolutionCollector::SolutionData + operations_research::OptimizeVar + operations_research::SearchLimit + operations_research::RegularLimit + operations_research::ImprovementSearchLimit + operations_research::IntervalVar + operations_research::SequenceVar + operations_research::AssignmentElement + operations_research::IntVarElement + operations_research::IntervalVarElement + operations_research::SequenceVarElement + operations_research::AssignmentContainer + operations_research::Assignment + operations_research::Pack + operations_research::DisjunctiveConstraint + operations_research::SolutionPool + operations_research + + + ABSL_DECLARE_FLAG + constraint__solver_8h.html + a3e3a92c699a8a88d483f53bf8e4bf095 + (int64, cp_random_seed) + + + int64 + CpRandomSeed + namespaceoperations__research.html + af46f97d04f28e1d1c8a99d02f000d212 + () + + + std::ostream & + operator<< + namespaceoperations__research.html + a5243a6e26c5553715409101ba9dedfbb + (std::ostream &out, const Solver *const s) + + + int64 + Zero + namespaceoperations__research.html + a009f247167f32509baf749083e4bc984 + () + + + int64 + One + namespaceoperations__research.html + aa96bb5a28dd9c1ccc864b1587e8e1a98 + () + + + std::ostream & + operator<< + namespaceoperations__research.html + a33241b1c5963edc052a5ddd089274322 + (std::ostream &out, const BaseObject *const o) + + + std::ostream & + operator<< + namespaceoperations__research.html + a51e0728b2f50b8aa26f3115138b8ff1b + (std::ostream &out, const Assignment &assignment) + + + void + SetAssignmentFromAssignment + namespaceoperations__research.html + a57f1befcdc8fc2b6f9741369a1beb136 + (Assignment *target_assignment, const std::vector< IntVar * > &target_vars, const Assignment *source_assignment, const std::vector< IntVar * > &source_vars) + + + + constraint_solver_csharp_wrap.cc + /home/mizux/work/master/ortools/gen/ortools/constraint_solver/ + constraint__solver__csharp__wrap_8cc.html + ortools/base/basictypes.h + ortools/base/integral_types.h + ortools/constraint_solver/constraint_solver.h + ortools/constraint_solver/constraint_solveri.h + ortools/constraint_solver/search_limit.pb.h + ortools/constraint_solver/solver_parameters.pb.h + ortools/util/tuple_set.h + ortools/constraint_solver/routing_types.h + ortools/constraint_solver/routing_index_manager.h + ortools/constraint_solver/routing.h + ortools/constraint_solver/routing_parameters.h + ortools/constraint_solver/routing_parameters.pb.h + constraint_solver_csharp_wrap.h + SWIG_CSharpException_t + SWIG_CSharpExceptionArgument_t + Swig::Director + Swig::DirectorException + Swig::DirectorPureVirtualException + operations_research::LocalSearchPhaseParameters + FailureProtect + Swig + operations_research + + #define + SWIGCSHARP + constraint__solver__csharp__wrap_8cc.html + a8b1bf5bd8374ca61c5ac75d346cfb824 + + + + #define + SWIG_DIRECTORS + constraint__solver__csharp__wrap_8cc.html + a08d7251e749eb4d7a032a647f48950a5 + + + + #define + SWIGTEMPLATEDISAMBIGUATOR + constraint__solver__csharp__wrap_8cc.html + a7e84031693895e512662f5b390c6d0e4 + + + + #define + SWIGINLINE + constraint__solver__csharp__wrap_8cc.html + a6d0a7c65b3712775e92c8bdb7acdd0ee + + + + #define + SWIGUNUSED + constraint__solver__csharp__wrap_8cc.html + a6ee41cd160d397aa76668bf4db65e2d1 + + + + #define + SWIGUNUSEDPARM + constraint__solver__csharp__wrap_8cc.html + a6a54164d0685c632e7540c5ad32a453a + (p) + + + #define + SWIGINTERN + constraint__solver__csharp__wrap_8cc.html + a8f2319f775e5b9d5906c9ef25d9b819a + + + + #define + SWIGINTERNINLINE + constraint__solver__csharp__wrap_8cc.html + afc5b08bb3c3cd2e3fb2e34b775346153 + + + + #define + SWIGEXPORT + constraint__solver__csharp__wrap_8cc.html + aea3c8b056dcc8c1ab93f6b825cd1371b + + + + #define + SWIGSTDCALL + constraint__solver__csharp__wrap_8cc.html + adcd6410456ea7a76147d3ad95b9bcb36 + + + + #define + SWIG_contract_assert + constraint__solver__csharp__wrap_8cc.html + a348dca0399dff2bcea8e49cb9cb04991 + (nullreturn, expr, msg) + + + #define + SWIG_UnknownError + constraint__solver__csharp__wrap_8cc.html + a45817cd389e6f40d0ffb004ff0678031 + + + + #define + SWIG_IOError + constraint__solver__csharp__wrap_8cc.html + a9fcdfcd79ad6f30120990223ea16879a + + + + #define + SWIG_RuntimeError + constraint__solver__csharp__wrap_8cc.html + a34d3d1c1310427d00140bf1cc8de3ef6 + + + + #define + SWIG_IndexError + constraint__solver__csharp__wrap_8cc.html + af1ed73e454bdee28cc19369784f56eed + + + + #define + SWIG_TypeError + constraint__solver__csharp__wrap_8cc.html + a2685345a18f9d5fe8a390ec8500cb916 + + + + #define + SWIG_DivisionByZero + constraint__solver__csharp__wrap_8cc.html + ae4cc0f5599402526dd5c2fdb80d87517 + + + + #define + SWIG_OverflowError + constraint__solver__csharp__wrap_8cc.html + ae9c11d011d8390489595f718d7565a8a + + + + #define + SWIG_SyntaxError + constraint__solver__csharp__wrap_8cc.html + a1c4e29c043d3220cedca539360e07148 + + + + #define + SWIG_ValueError + constraint__solver__csharp__wrap_8cc.html + a4c1b15a2401d60351d98df9327886280 + + + + #define + SWIG_SystemError + constraint__solver__csharp__wrap_8cc.html + ae4a7b4ce78e031cbf5227bea38d81221 + + + + #define + SWIG_AttributeError + constraint__solver__csharp__wrap_8cc.html + a5c83bd4d8f39d6eed1df7d3444caa2e1 + + + + #define + SWIG_MemoryError + constraint__solver__csharp__wrap_8cc.html + ae1cd9de0a75c6d814815a9de66a4a46d + + + + #define + SWIG_NullReferenceError + constraint__solver__csharp__wrap_8cc.html + aa11fe417abd4c5a02d31cc1a51dee007 + + + + #define + SWIGWORDSIZE64 + constraint__solver__csharp__wrap_8cc.html + a166de8bdcf295101efabbdb2d5f3fb18 + + + + void(SWIGSTDCALL * + SWIG_CSharpExceptionCallback_t + constraint__solver__csharp__wrap_8cc.html + a15b29b70a0fbb7c7021ec8effbc53d47 + )(const char *) + + + void(SWIGSTDCALL * + SWIG_CSharpExceptionArgumentCallback_t + constraint__solver__csharp__wrap_8cc.html + a6358697a5d507512a9f78ff3bd6cccd5 + )(const char *, const char *) + + + char *(SWIGSTDCALL * + SWIG_CSharpStringHelperCallback + constraint__solver__csharp__wrap_8cc.html + aaa02c1f66a231e4039ed6a3b0823c56c + )(const char *) + + + + SWIG_CSharpExceptionCodes + constraint__solver__csharp__wrap_8cc.html + af68ebade407536ee03e4e28d8c58696d + + + + SWIG_CSharpApplicationException + knapsack__solver__csharp__wrap_8cc.html + af68ebade407536ee03e4e28d8c58696da69262c7d7afa064846600b8c24771785 + + + + SWIG_CSharpArithmeticException + knapsack__solver__csharp__wrap_8cc.html + af68ebade407536ee03e4e28d8c58696da5763deee13f7a5735de6958edcabf368 + + + + SWIG_CSharpDivideByZeroException + knapsack__solver__csharp__wrap_8cc.html + af68ebade407536ee03e4e28d8c58696da291e1d4e9c2b45cae4b5cf8acc46fa96 + + + + SWIG_CSharpIndexOutOfRangeException + knapsack__solver__csharp__wrap_8cc.html + af68ebade407536ee03e4e28d8c58696daef72dc6cf6fba64f7752f60601e1bda3 + + + + SWIG_CSharpInvalidCastException + knapsack__solver__csharp__wrap_8cc.html + af68ebade407536ee03e4e28d8c58696da988e3a73ac4992bd1a627988ad8cb017 + + + + SWIG_CSharpInvalidOperationException + knapsack__solver__csharp__wrap_8cc.html + af68ebade407536ee03e4e28d8c58696daa91cfd78181281017684581278c3f055 + + + + SWIG_CSharpIOException + knapsack__solver__csharp__wrap_8cc.html + af68ebade407536ee03e4e28d8c58696dadd2b1c4946931216b3e090df3f4ad11e + + + + SWIG_CSharpNullReferenceException + knapsack__solver__csharp__wrap_8cc.html + af68ebade407536ee03e4e28d8c58696da8c62b351364168d0ff745bcb823a6735 + + + + SWIG_CSharpOutOfMemoryException + knapsack__solver__csharp__wrap_8cc.html + af68ebade407536ee03e4e28d8c58696da30fa713c47003931415140f77ec41955 + + + + SWIG_CSharpOverflowException + knapsack__solver__csharp__wrap_8cc.html + af68ebade407536ee03e4e28d8c58696dad116186fd18e46d768b34f12458664dd + + + + SWIG_CSharpSystemException + knapsack__solver__csharp__wrap_8cc.html + af68ebade407536ee03e4e28d8c58696da649d43db5e7715eeb27ba60a8a1f3736 + + + + SWIG_CSharpApplicationException + constraint__solver__csharp__wrap_8cc.html + af68ebade407536ee03e4e28d8c58696da69262c7d7afa064846600b8c24771785 + + + + SWIG_CSharpArithmeticException + constraint__solver__csharp__wrap_8cc.html + af68ebade407536ee03e4e28d8c58696da5763deee13f7a5735de6958edcabf368 + + + + SWIG_CSharpDivideByZeroException + constraint__solver__csharp__wrap_8cc.html + af68ebade407536ee03e4e28d8c58696da291e1d4e9c2b45cae4b5cf8acc46fa96 + + + + SWIG_CSharpIndexOutOfRangeException + constraint__solver__csharp__wrap_8cc.html + af68ebade407536ee03e4e28d8c58696daef72dc6cf6fba64f7752f60601e1bda3 + + + + SWIG_CSharpInvalidCastException + constraint__solver__csharp__wrap_8cc.html + af68ebade407536ee03e4e28d8c58696da988e3a73ac4992bd1a627988ad8cb017 + + + + SWIG_CSharpInvalidOperationException + constraint__solver__csharp__wrap_8cc.html + af68ebade407536ee03e4e28d8c58696daa91cfd78181281017684581278c3f055 + + + + SWIG_CSharpIOException + constraint__solver__csharp__wrap_8cc.html + af68ebade407536ee03e4e28d8c58696dadd2b1c4946931216b3e090df3f4ad11e + + + + SWIG_CSharpNullReferenceException + constraint__solver__csharp__wrap_8cc.html + af68ebade407536ee03e4e28d8c58696da8c62b351364168d0ff745bcb823a6735 + + + + SWIG_CSharpOutOfMemoryException + constraint__solver__csharp__wrap_8cc.html + af68ebade407536ee03e4e28d8c58696da30fa713c47003931415140f77ec41955 + + + + SWIG_CSharpOverflowException + constraint__solver__csharp__wrap_8cc.html + af68ebade407536ee03e4e28d8c58696dad116186fd18e46d768b34f12458664dd + + + + SWIG_CSharpSystemException + constraint__solver__csharp__wrap_8cc.html + af68ebade407536ee03e4e28d8c58696da649d43db5e7715eeb27ba60a8a1f3736 + + + + SWIG_CSharpApplicationException + graph__csharp__wrap_8cc.html + af68ebade407536ee03e4e28d8c58696da69262c7d7afa064846600b8c24771785 + + + + SWIG_CSharpArithmeticException + graph__csharp__wrap_8cc.html + af68ebade407536ee03e4e28d8c58696da5763deee13f7a5735de6958edcabf368 + + + + SWIG_CSharpDivideByZeroException + graph__csharp__wrap_8cc.html + af68ebade407536ee03e4e28d8c58696da291e1d4e9c2b45cae4b5cf8acc46fa96 + + + + SWIG_CSharpIndexOutOfRangeException + graph__csharp__wrap_8cc.html + af68ebade407536ee03e4e28d8c58696daef72dc6cf6fba64f7752f60601e1bda3 + + + + SWIG_CSharpInvalidCastException + graph__csharp__wrap_8cc.html + af68ebade407536ee03e4e28d8c58696da988e3a73ac4992bd1a627988ad8cb017 + + + + SWIG_CSharpInvalidOperationException + graph__csharp__wrap_8cc.html + af68ebade407536ee03e4e28d8c58696daa91cfd78181281017684581278c3f055 + + + + SWIG_CSharpIOException + graph__csharp__wrap_8cc.html + af68ebade407536ee03e4e28d8c58696dadd2b1c4946931216b3e090df3f4ad11e + + + + SWIG_CSharpNullReferenceException + graph__csharp__wrap_8cc.html + af68ebade407536ee03e4e28d8c58696da8c62b351364168d0ff745bcb823a6735 + + + + SWIG_CSharpOutOfMemoryException + graph__csharp__wrap_8cc.html + af68ebade407536ee03e4e28d8c58696da30fa713c47003931415140f77ec41955 + + + + SWIG_CSharpOverflowException + graph__csharp__wrap_8cc.html + af68ebade407536ee03e4e28d8c58696dad116186fd18e46d768b34f12458664dd + + + + SWIG_CSharpSystemException + graph__csharp__wrap_8cc.html + af68ebade407536ee03e4e28d8c58696da649d43db5e7715eeb27ba60a8a1f3736 + + + + SWIG_CSharpApplicationException + linear__solver__csharp__wrap_8cc.html + af68ebade407536ee03e4e28d8c58696da69262c7d7afa064846600b8c24771785 + + + + SWIG_CSharpArithmeticException + linear__solver__csharp__wrap_8cc.html + af68ebade407536ee03e4e28d8c58696da5763deee13f7a5735de6958edcabf368 + + + + SWIG_CSharpDivideByZeroException + linear__solver__csharp__wrap_8cc.html + af68ebade407536ee03e4e28d8c58696da291e1d4e9c2b45cae4b5cf8acc46fa96 + + + + SWIG_CSharpIndexOutOfRangeException + linear__solver__csharp__wrap_8cc.html + af68ebade407536ee03e4e28d8c58696daef72dc6cf6fba64f7752f60601e1bda3 + + + + SWIG_CSharpInvalidCastException + linear__solver__csharp__wrap_8cc.html + af68ebade407536ee03e4e28d8c58696da988e3a73ac4992bd1a627988ad8cb017 + + + + SWIG_CSharpInvalidOperationException + linear__solver__csharp__wrap_8cc.html + af68ebade407536ee03e4e28d8c58696daa91cfd78181281017684581278c3f055 + + + + SWIG_CSharpIOException + linear__solver__csharp__wrap_8cc.html + af68ebade407536ee03e4e28d8c58696dadd2b1c4946931216b3e090df3f4ad11e + + + + SWIG_CSharpNullReferenceException + linear__solver__csharp__wrap_8cc.html + af68ebade407536ee03e4e28d8c58696da8c62b351364168d0ff745bcb823a6735 + + + + SWIG_CSharpOutOfMemoryException + linear__solver__csharp__wrap_8cc.html + af68ebade407536ee03e4e28d8c58696da30fa713c47003931415140f77ec41955 + + + + SWIG_CSharpOverflowException + linear__solver__csharp__wrap_8cc.html + af68ebade407536ee03e4e28d8c58696dad116186fd18e46d768b34f12458664dd + + + + SWIG_CSharpSystemException + linear__solver__csharp__wrap_8cc.html + af68ebade407536ee03e4e28d8c58696da649d43db5e7715eeb27ba60a8a1f3736 + + + + SWIG_CSharpApplicationException + sat__csharp__wrap_8cc.html + af68ebade407536ee03e4e28d8c58696da69262c7d7afa064846600b8c24771785 + + + + SWIG_CSharpArithmeticException + sat__csharp__wrap_8cc.html + af68ebade407536ee03e4e28d8c58696da5763deee13f7a5735de6958edcabf368 + + + + SWIG_CSharpDivideByZeroException + sat__csharp__wrap_8cc.html + af68ebade407536ee03e4e28d8c58696da291e1d4e9c2b45cae4b5cf8acc46fa96 + + + + SWIG_CSharpIndexOutOfRangeException + sat__csharp__wrap_8cc.html + af68ebade407536ee03e4e28d8c58696daef72dc6cf6fba64f7752f60601e1bda3 + + + + SWIG_CSharpInvalidCastException + sat__csharp__wrap_8cc.html + af68ebade407536ee03e4e28d8c58696da988e3a73ac4992bd1a627988ad8cb017 + + + + SWIG_CSharpInvalidOperationException + sat__csharp__wrap_8cc.html + af68ebade407536ee03e4e28d8c58696daa91cfd78181281017684581278c3f055 + + + + SWIG_CSharpIOException + sat__csharp__wrap_8cc.html + af68ebade407536ee03e4e28d8c58696dadd2b1c4946931216b3e090df3f4ad11e + + + + SWIG_CSharpNullReferenceException + sat__csharp__wrap_8cc.html + af68ebade407536ee03e4e28d8c58696da8c62b351364168d0ff745bcb823a6735 + + + + SWIG_CSharpOutOfMemoryException + sat__csharp__wrap_8cc.html + af68ebade407536ee03e4e28d8c58696da30fa713c47003931415140f77ec41955 + + + + SWIG_CSharpOverflowException + sat__csharp__wrap_8cc.html + af68ebade407536ee03e4e28d8c58696dad116186fd18e46d768b34f12458664dd + + + + SWIG_CSharpSystemException + sat__csharp__wrap_8cc.html + af68ebade407536ee03e4e28d8c58696da649d43db5e7715eeb27ba60a8a1f3736 + + + + SWIG_CSharpApplicationException + sorted__interval__list__csharp__wrap_8cc.html + af68ebade407536ee03e4e28d8c58696da69262c7d7afa064846600b8c24771785 + + + + SWIG_CSharpArithmeticException + sorted__interval__list__csharp__wrap_8cc.html + af68ebade407536ee03e4e28d8c58696da5763deee13f7a5735de6958edcabf368 + + + + SWIG_CSharpDivideByZeroException + sorted__interval__list__csharp__wrap_8cc.html + af68ebade407536ee03e4e28d8c58696da291e1d4e9c2b45cae4b5cf8acc46fa96 + + + + SWIG_CSharpIndexOutOfRangeException + sorted__interval__list__csharp__wrap_8cc.html + af68ebade407536ee03e4e28d8c58696daef72dc6cf6fba64f7752f60601e1bda3 + + + + SWIG_CSharpInvalidCastException + sorted__interval__list__csharp__wrap_8cc.html + af68ebade407536ee03e4e28d8c58696da988e3a73ac4992bd1a627988ad8cb017 + + + + SWIG_CSharpInvalidOperationException + sorted__interval__list__csharp__wrap_8cc.html + af68ebade407536ee03e4e28d8c58696daa91cfd78181281017684581278c3f055 + + + + SWIG_CSharpIOException + sorted__interval__list__csharp__wrap_8cc.html + af68ebade407536ee03e4e28d8c58696dadd2b1c4946931216b3e090df3f4ad11e + + + + SWIG_CSharpNullReferenceException + sorted__interval__list__csharp__wrap_8cc.html + af68ebade407536ee03e4e28d8c58696da8c62b351364168d0ff745bcb823a6735 + + + + SWIG_CSharpOutOfMemoryException + sorted__interval__list__csharp__wrap_8cc.html + af68ebade407536ee03e4e28d8c58696da30fa713c47003931415140f77ec41955 + + + + SWIG_CSharpOverflowException + sorted__interval__list__csharp__wrap_8cc.html + af68ebade407536ee03e4e28d8c58696dad116186fd18e46d768b34f12458664dd + + + + SWIG_CSharpSystemException + sorted__interval__list__csharp__wrap_8cc.html + af68ebade407536ee03e4e28d8c58696da649d43db5e7715eeb27ba60a8a1f3736 + + + + + SWIG_CSharpExceptionArgumentCodes + constraint__solver__csharp__wrap_8cc.html + a96af968a8ad5d2e899c24200d52959b0 + + + + SWIG_CSharpArgumentException + knapsack__solver__csharp__wrap_8cc.html + a96af968a8ad5d2e899c24200d52959b0a62b3c566de468b7704bfca018aed4ade + + + + SWIG_CSharpArgumentNullException + knapsack__solver__csharp__wrap_8cc.html + a96af968a8ad5d2e899c24200d52959b0aa8107996714f2635d64cc979be44caf4 + + + + SWIG_CSharpArgumentOutOfRangeException + knapsack__solver__csharp__wrap_8cc.html + a96af968a8ad5d2e899c24200d52959b0a9bbceb36dd494a91360ee2e8fe9ddc2d + + + + SWIG_CSharpArgumentException + constraint__solver__csharp__wrap_8cc.html + a96af968a8ad5d2e899c24200d52959b0a62b3c566de468b7704bfca018aed4ade + + + + SWIG_CSharpArgumentNullException + constraint__solver__csharp__wrap_8cc.html + a96af968a8ad5d2e899c24200d52959b0aa8107996714f2635d64cc979be44caf4 + + + + SWIG_CSharpArgumentOutOfRangeException + constraint__solver__csharp__wrap_8cc.html + a96af968a8ad5d2e899c24200d52959b0a9bbceb36dd494a91360ee2e8fe9ddc2d + + + + SWIG_CSharpArgumentException + graph__csharp__wrap_8cc.html + a96af968a8ad5d2e899c24200d52959b0a62b3c566de468b7704bfca018aed4ade + + + + SWIG_CSharpArgumentNullException + graph__csharp__wrap_8cc.html + a96af968a8ad5d2e899c24200d52959b0aa8107996714f2635d64cc979be44caf4 + + + + SWIG_CSharpArgumentOutOfRangeException + graph__csharp__wrap_8cc.html + a96af968a8ad5d2e899c24200d52959b0a9bbceb36dd494a91360ee2e8fe9ddc2d + + + + SWIG_CSharpArgumentException + linear__solver__csharp__wrap_8cc.html + a96af968a8ad5d2e899c24200d52959b0a62b3c566de468b7704bfca018aed4ade + + + + SWIG_CSharpArgumentNullException + linear__solver__csharp__wrap_8cc.html + a96af968a8ad5d2e899c24200d52959b0aa8107996714f2635d64cc979be44caf4 + + + + SWIG_CSharpArgumentOutOfRangeException + linear__solver__csharp__wrap_8cc.html + a96af968a8ad5d2e899c24200d52959b0a9bbceb36dd494a91360ee2e8fe9ddc2d + + + + SWIG_CSharpArgumentException + sat__csharp__wrap_8cc.html + a96af968a8ad5d2e899c24200d52959b0a62b3c566de468b7704bfca018aed4ade + + + + SWIG_CSharpArgumentNullException + sat__csharp__wrap_8cc.html + a96af968a8ad5d2e899c24200d52959b0aa8107996714f2635d64cc979be44caf4 + + + + SWIG_CSharpArgumentOutOfRangeException + sat__csharp__wrap_8cc.html + a96af968a8ad5d2e899c24200d52959b0a9bbceb36dd494a91360ee2e8fe9ddc2d + + + + SWIG_CSharpArgumentException + sorted__interval__list__csharp__wrap_8cc.html + a96af968a8ad5d2e899c24200d52959b0a62b3c566de468b7704bfca018aed4ade + + + + SWIG_CSharpArgumentNullException + sorted__interval__list__csharp__wrap_8cc.html + a96af968a8ad5d2e899c24200d52959b0aa8107996714f2635d64cc979be44caf4 + + + + SWIG_CSharpArgumentOutOfRangeException + sorted__interval__list__csharp__wrap_8cc.html + a96af968a8ad5d2e899c24200d52959b0a9bbceb36dd494a91360ee2e8fe9ddc2d + + + + static void SWIGUNUSED + SWIG_CSharpSetPendingException + constraint__solver__csharp__wrap_8cc.html + ac606468865baa90db9b5b058abfefd09 + (SWIG_CSharpExceptionCodes code, const char *msg) + + + static void SWIGUNUSED + SWIG_CSharpSetPendingExceptionArgument + constraint__solver__csharp__wrap_8cc.html + a212b5837164225dfff7c2403bb6f48a9 + (SWIG_CSharpExceptionArgumentCodes code, const char *msg, const char *param_name) + + + SWIGEXPORT void SWIGSTDCALL + SWIGRegisterExceptionCallbacks_operations_research_constraint_solver + constraint__solver__csharp__wrap_8cc.html + aebff0caf209518acdbc667fb9526ee54 + (SWIG_CSharpExceptionCallback_t applicationCallback, SWIG_CSharpExceptionCallback_t arithmeticCallback, SWIG_CSharpExceptionCallback_t divideByZeroCallback, SWIG_CSharpExceptionCallback_t indexOutOfRangeCallback, SWIG_CSharpExceptionCallback_t invalidCastCallback, SWIG_CSharpExceptionCallback_t invalidOperationCallback, SWIG_CSharpExceptionCallback_t ioCallback, SWIG_CSharpExceptionCallback_t nullReferenceCallback, SWIG_CSharpExceptionCallback_t outOfMemoryCallback, SWIG_CSharpExceptionCallback_t overflowCallback, SWIG_CSharpExceptionCallback_t systemCallback) + + + SWIGEXPORT void SWIGSTDCALL + SWIGRegisterExceptionArgumentCallbacks_operations_research_constraint_solver + constraint__solver__csharp__wrap_8cc.html + aa7cbd74d5d80590c1ff2ad95ff1cbff0 + (SWIG_CSharpExceptionArgumentCallback_t argumentCallback, SWIG_CSharpExceptionArgumentCallback_t argumentNullCallback, SWIG_CSharpExceptionArgumentCallback_t argumentOutOfRangeCallback) + + + SWIGEXPORT void SWIGSTDCALL + SWIGRegisterStringCallback_operations_research_constraint_solver + constraint__solver__csharp__wrap_8cc.html + abd2ee35605b8d82edb739e0b134e47e2 + (SWIG_CSharpStringHelperCallback callback) + + + SWIGINTERN void + SWIG_CSharpException + constraint__solver__csharp__wrap_8cc.html + aa2b13165787203e243846faba41b4e18 + (int code, const char *msg) + + + SWIGINTERN std::vector< int > * + new_std_vector_Sl_int_Sg___SWIG_2 + constraint__solver__csharp__wrap_8cc.html + acc443ee3d06f6518dcd20d596f3a9138 + (int capacity) + + + SWIGINTERN int + std_vector_Sl_int_Sg__getitemcopy + constraint__solver__csharp__wrap_8cc.html + a4a01b48fb5f20ba102d4b45c3d4fde95 + (std::vector< int > *self, int index) + + + SWIGINTERN std::vector< int >::value_type const & + std_vector_Sl_int_Sg__getitem + constraint__solver__csharp__wrap_8cc.html + aca44506fd4e4773c410914ae3843dd7d + (std::vector< int > *self, int index) + + + SWIGINTERN void + std_vector_Sl_int_Sg__setitem + constraint__solver__csharp__wrap_8cc.html + abea6a202eb03919a5395c975736cced9 + (std::vector< int > *self, int index, int const &val) + + + SWIGINTERN void + std_vector_Sl_int_Sg__AddRange + constraint__solver__csharp__wrap_8cc.html + a46ca1a826b692c302c4dbaf038c567c6 + (std::vector< int > *self, std::vector< int > const &values) + + + SWIGINTERN std::vector< int > * + std_vector_Sl_int_Sg__GetRange + constraint__solver__csharp__wrap_8cc.html + ad7077c21dcdba7efcee7949cd8b58007 + (std::vector< int > *self, int index, int count) + + + SWIGINTERN void + std_vector_Sl_int_Sg__Insert + constraint__solver__csharp__wrap_8cc.html + afc2307dc496e317738650c3623ce18cc + (std::vector< int > *self, int index, int const &x) + + + SWIGINTERN void + std_vector_Sl_int_Sg__InsertRange + constraint__solver__csharp__wrap_8cc.html + a0bb31506470214989e2e2c80fde00087 + (std::vector< int > *self, int index, std::vector< int > const &values) + + + SWIGINTERN void + std_vector_Sl_int_Sg__RemoveAt + constraint__solver__csharp__wrap_8cc.html + adaab16f2816fbb1d314d0c7446f10d90 + (std::vector< int > *self, int index) + + + SWIGINTERN void + std_vector_Sl_int_Sg__RemoveRange + constraint__solver__csharp__wrap_8cc.html + a9e66fa71b3b7306518fda66126e12e42 + (std::vector< int > *self, int index, int count) + + + SWIGINTERN std::vector< int > * + std_vector_Sl_int_Sg__Repeat + constraint__solver__csharp__wrap_8cc.html + a18050d77dbd7c1d44296cab1ee74da64 + (int const &value, int count) + + + SWIGINTERN void + std_vector_Sl_int_Sg__Reverse__SWIG_0 + constraint__solver__csharp__wrap_8cc.html + a61d1b0e2e241270b8bd621480f2e28b4 + (std::vector< int > *self) + + + SWIGINTERN void + std_vector_Sl_int_Sg__Reverse__SWIG_1 + constraint__solver__csharp__wrap_8cc.html + a3d4f5f3f05af0fff7f8ea383cfa96dbc + (std::vector< int > *self, int index, int count) + + + SWIGINTERN void + std_vector_Sl_int_Sg__SetRange + constraint__solver__csharp__wrap_8cc.html + aea2cb96da736a88450b48f9c3261cb4e + (std::vector< int > *self, int index, std::vector< int > const &values) + + + SWIGINTERN bool + std_vector_Sl_int_Sg__Contains + constraint__solver__csharp__wrap_8cc.html + a344915abcc9b86edcf5ac91a7c087aa1 + (std::vector< int > *self, int const &value) + + + SWIGINTERN int + std_vector_Sl_int_Sg__IndexOf + constraint__solver__csharp__wrap_8cc.html + ae258f0609e17ebc7cfa65542259db31c + (std::vector< int > *self, int const &value) + + + SWIGINTERN int + std_vector_Sl_int_Sg__LastIndexOf + constraint__solver__csharp__wrap_8cc.html + a3b4f3e82bd0acd7664489745df25a062 + (std::vector< int > *self, int const &value) + + + SWIGINTERN bool + std_vector_Sl_int_Sg__Remove + constraint__solver__csharp__wrap_8cc.html + a59fbc8a327095c0ec52f6de269f82610 + (std::vector< int > *self, int const &value) + + + SWIGINTERN std::vector< std::vector< int > > * + new_std_vector_Sl_std_vector_Sl_int_Sg__Sg___SWIG_2 + constraint__solver__csharp__wrap_8cc.html + a541a5e1a7e946b93c7a33d2bd2abb9c8 + (int capacity) + + + SWIGINTERN std::vector< int > + std_vector_Sl_std_vector_Sl_int_Sg__Sg__getitemcopy + constraint__solver__csharp__wrap_8cc.html + a5dcf37f86626d442850c11071b993415 + (std::vector< std::vector< int > > *self, int index) + + + SWIGINTERN std::vector< std::vector< int > >::value_type const & + std_vector_Sl_std_vector_Sl_int_Sg__Sg__getitem + constraint__solver__csharp__wrap_8cc.html + aff6b3bccbef43c784e3b1025b2ddbde2 + (std::vector< std::vector< int > > *self, int index) + + + SWIGINTERN void + std_vector_Sl_std_vector_Sl_int_Sg__Sg__setitem + constraint__solver__csharp__wrap_8cc.html + a79fef5cf9ca674a2e7305ad18e630100 + (std::vector< std::vector< int > > *self, int index, std::vector< int > const &val) + + + SWIGINTERN void + std_vector_Sl_std_vector_Sl_int_Sg__Sg__AddRange + constraint__solver__csharp__wrap_8cc.html + afcee4517a8c3cd3a06d6ed059d79849f + (std::vector< std::vector< int > > *self, std::vector< std::vector< int > > const &values) + + + SWIGINTERN std::vector< std::vector< int > > * + std_vector_Sl_std_vector_Sl_int_Sg__Sg__GetRange + constraint__solver__csharp__wrap_8cc.html + a6483f1f1ec049cf4e0dd49931dd117de + (std::vector< std::vector< int > > *self, int index, int count) + + + SWIGINTERN void + std_vector_Sl_std_vector_Sl_int_Sg__Sg__Insert + constraint__solver__csharp__wrap_8cc.html + a77f69ddcc20950f15d0932f81cc74d29 + (std::vector< std::vector< int > > *self, int index, std::vector< int > const &x) + + + SWIGINTERN void + std_vector_Sl_std_vector_Sl_int_Sg__Sg__InsertRange + constraint__solver__csharp__wrap_8cc.html + a32eec6fd16eab7d4d62ad47885152b31 + (std::vector< std::vector< int > > *self, int index, std::vector< std::vector< int > > const &values) + + + SWIGINTERN void + std_vector_Sl_std_vector_Sl_int_Sg__Sg__RemoveAt + constraint__solver__csharp__wrap_8cc.html + ac0c0b081b75f6e45cdb99c538ca47609 + (std::vector< std::vector< int > > *self, int index) + + + SWIGINTERN void + std_vector_Sl_std_vector_Sl_int_Sg__Sg__RemoveRange + constraint__solver__csharp__wrap_8cc.html + a48ce4598430dd29b297deb292c5b20e5 + (std::vector< std::vector< int > > *self, int index, int count) + + + SWIGINTERN std::vector< std::vector< int > > * + std_vector_Sl_std_vector_Sl_int_Sg__Sg__Repeat + constraint__solver__csharp__wrap_8cc.html + a1efcc9f999e1e5480f335f7edaeea0c9 + (std::vector< int > const &value, int count) + + + SWIGINTERN void + std_vector_Sl_std_vector_Sl_int_Sg__Sg__Reverse__SWIG_0 + constraint__solver__csharp__wrap_8cc.html + a9e90e47a020673ca01c7a11852566d9a + (std::vector< std::vector< int > > *self) + + + SWIGINTERN void + std_vector_Sl_std_vector_Sl_int_Sg__Sg__Reverse__SWIG_1 + constraint__solver__csharp__wrap_8cc.html + a1d7816b487fefb08171c44829fb2395f + (std::vector< std::vector< int > > *self, int index, int count) + + + SWIGINTERN void + std_vector_Sl_std_vector_Sl_int_Sg__Sg__SetRange + constraint__solver__csharp__wrap_8cc.html + a3fa8a48c3e62c0cf3a58a95c3709331d + (std::vector< std::vector< int > > *self, int index, std::vector< std::vector< int > > const &values) + + + SWIGINTERN std::vector< int64 > * + new_std_vector_Sl_int64_Sg___SWIG_2 + constraint__solver__csharp__wrap_8cc.html + a6ddb421a010b98615a40da8afbe7dc13 + (int capacity) + + + SWIGINTERN long + std_vector_Sl_int64_Sg__getitemcopy + constraint__solver__csharp__wrap_8cc.html + a298e523d5cc25957bdeb254e4d60d44f + (std::vector< int64 > *self, int index) + + + SWIGINTERN std::vector< long >::value_type const & + std_vector_Sl_int64_Sg__getitem + constraint__solver__csharp__wrap_8cc.html + a0e9b3fe8633212e62b08353d407ce4d7 + (std::vector< int64 > *self, int index) + + + SWIGINTERN void + std_vector_Sl_int64_Sg__setitem + constraint__solver__csharp__wrap_8cc.html + a7ff63c28509150bb4522506e817ea197 + (std::vector< int64 > *self, int index, long const &val) + + + SWIGINTERN void + std_vector_Sl_int64_Sg__AddRange + constraint__solver__csharp__wrap_8cc.html + a0216f6f954b753a865e339f5da590cee + (std::vector< int64 > *self, std::vector< long > const &values) + + + SWIGINTERN std::vector< long > * + std_vector_Sl_int64_Sg__GetRange + constraint__solver__csharp__wrap_8cc.html + a6c6544550392463ec4642e028144d830 + (std::vector< int64 > *self, int index, int count) + + + SWIGINTERN void + std_vector_Sl_int64_Sg__Insert + constraint__solver__csharp__wrap_8cc.html + a595f9978518d50f3794958c5c0cbc9aa + (std::vector< int64 > *self, int index, long const &x) + + + SWIGINTERN void + std_vector_Sl_int64_Sg__InsertRange + constraint__solver__csharp__wrap_8cc.html + a5f1663df9767a6b7bc52b57686f6590c + (std::vector< int64 > *self, int index, std::vector< long > const &values) + + + SWIGINTERN void + std_vector_Sl_int64_Sg__RemoveAt + constraint__solver__csharp__wrap_8cc.html + a61efd3be79da9ff84753a4df3f7fffd6 + (std::vector< int64 > *self, int index) + + + SWIGINTERN void + std_vector_Sl_int64_Sg__RemoveRange + constraint__solver__csharp__wrap_8cc.html + a5cccdcf22192f3b5da05abd7c83ffd80 + (std::vector< int64 > *self, int index, int count) + + + SWIGINTERN std::vector< long > * + std_vector_Sl_int64_Sg__Repeat + constraint__solver__csharp__wrap_8cc.html + ac881fa853108e5fe4d456d9fc82b460f + (long const &value, int count) + + + SWIGINTERN void + std_vector_Sl_int64_Sg__Reverse__SWIG_0 + constraint__solver__csharp__wrap_8cc.html + aeef157e1f26eb6104e188f86500ea403 + (std::vector< int64 > *self) + + + SWIGINTERN void + std_vector_Sl_int64_Sg__Reverse__SWIG_1 + constraint__solver__csharp__wrap_8cc.html + aa8a2d6d72ff443be35a549d0255ef8eb + (std::vector< int64 > *self, int index, int count) + + + SWIGINTERN void + std_vector_Sl_int64_Sg__SetRange + constraint__solver__csharp__wrap_8cc.html + ad6fb31c32e47900f0f1782c8efd65758 + (std::vector< int64 > *self, int index, std::vector< long > const &values) + + + SWIGINTERN bool + std_vector_Sl_int64_Sg__Contains + constraint__solver__csharp__wrap_8cc.html + a56ae2fc36784e098659e7c9b11bbd35b + (std::vector< int64 > *self, long const &value) + + + SWIGINTERN int + std_vector_Sl_int64_Sg__IndexOf + constraint__solver__csharp__wrap_8cc.html + a7ddbb16256ec56774ab0d6a01f84812a + (std::vector< int64 > *self, long const &value) + + + SWIGINTERN int + std_vector_Sl_int64_Sg__LastIndexOf + constraint__solver__csharp__wrap_8cc.html + adc366756b1a3d706caa747e5ac4980d7 + (std::vector< int64 > *self, long const &value) + + + SWIGINTERN bool + std_vector_Sl_int64_Sg__Remove + constraint__solver__csharp__wrap_8cc.html + a4e00b1ec5760f58ddee885823c524c92 + (std::vector< int64 > *self, long const &value) + + + SWIGINTERN std::vector< std::vector< int64 > > * + new_std_vector_Sl_std_vector_Sl_int64_Sg__Sg___SWIG_2 + constraint__solver__csharp__wrap_8cc.html + a76743dd7365b14eebf6a79817a527029 + (int capacity) + + + SWIGINTERN std::vector< int64 > + std_vector_Sl_std_vector_Sl_int64_Sg__Sg__getitemcopy + constraint__solver__csharp__wrap_8cc.html + a1583495c4e553d57f50e517284da41cb + (std::vector< std::vector< int64 > > *self, int index) + + + SWIGINTERN std::vector< std::vector< long > >::value_type const & + std_vector_Sl_std_vector_Sl_int64_Sg__Sg__getitem + constraint__solver__csharp__wrap_8cc.html + a3af1aa629f97875d8b1f5f7eed26877d + (std::vector< std::vector< int64 > > *self, int index) + + + SWIGINTERN void + std_vector_Sl_std_vector_Sl_int64_Sg__Sg__setitem + constraint__solver__csharp__wrap_8cc.html + a76f42e62c56d1a4dc42ffae6f63fca33 + (std::vector< std::vector< int64 > > *self, int index, std::vector< int64 > const &val) + + + SWIGINTERN void + std_vector_Sl_std_vector_Sl_int64_Sg__Sg__AddRange + constraint__solver__csharp__wrap_8cc.html + ad8882397b889438fd33ab6cb58acec96 + (std::vector< std::vector< int64 > > *self, std::vector< std::vector< int64 > > const &values) + + + SWIGINTERN std::vector< std::vector< int64 > > * + std_vector_Sl_std_vector_Sl_int64_Sg__Sg__GetRange + constraint__solver__csharp__wrap_8cc.html + ad36e78d4e453f38ccd8d1c03cba25e81 + (std::vector< std::vector< int64 > > *self, int index, int count) + + + SWIGINTERN void + std_vector_Sl_std_vector_Sl_int64_Sg__Sg__Insert + constraint__solver__csharp__wrap_8cc.html + ad314b1a76955c248f8a297d806f349b9 + (std::vector< std::vector< int64 > > *self, int index, std::vector< int64 > const &x) + + + SWIGINTERN void + std_vector_Sl_std_vector_Sl_int64_Sg__Sg__InsertRange + constraint__solver__csharp__wrap_8cc.html + a96bebb751b04933d31eb9f5e2a983bff + (std::vector< std::vector< int64 > > *self, int index, std::vector< std::vector< int64 > > const &values) + + + SWIGINTERN void + std_vector_Sl_std_vector_Sl_int64_Sg__Sg__RemoveAt + constraint__solver__csharp__wrap_8cc.html + a54e7fcbc9473daeff9c992517d9daf58 + (std::vector< std::vector< int64 > > *self, int index) + + + SWIGINTERN void + std_vector_Sl_std_vector_Sl_int64_Sg__Sg__RemoveRange + constraint__solver__csharp__wrap_8cc.html + a8da19e87fd509630f2fd5e66982e4710 + (std::vector< std::vector< int64 > > *self, int index, int count) + + + SWIGINTERN std::vector< std::vector< int64 > > * + std_vector_Sl_std_vector_Sl_int64_Sg__Sg__Repeat + constraint__solver__csharp__wrap_8cc.html + a0b8e7ffe45ba0a7abad473de5c3043c4 + (std::vector< int64 > const &value, int count) + + + SWIGINTERN void + std_vector_Sl_std_vector_Sl_int64_Sg__Sg__Reverse__SWIG_0 + constraint__solver__csharp__wrap_8cc.html + acfa08ac21851c386303e8fc169fe0ed6 + (std::vector< std::vector< int64 > > *self) + + + SWIGINTERN void + std_vector_Sl_std_vector_Sl_int64_Sg__Sg__Reverse__SWIG_1 + constraint__solver__csharp__wrap_8cc.html + a9a48c2d8095b659c081c217682c0c94b + (std::vector< std::vector< int64 > > *self, int index, int count) + + + SWIGINTERN void + std_vector_Sl_std_vector_Sl_int64_Sg__Sg__SetRange + constraint__solver__csharp__wrap_8cc.html + a6914c45a133070eb67672eadacc78539 + (std::vector< std::vector< int64 > > *self, int index, std::vector< std::vector< int64 > > const &values) + + + SWIGINTERN std::vector< operations_research::IntVar * > * + new_std_vector_Sl_operations_research_IntVar_Sm__Sg___SWIG_2 + constraint__solver__csharp__wrap_8cc.html + a7041434a2d2d03b4609251a287f1fb22 + (int capacity) + + + SWIGINTERN operations_research::IntVar * + std_vector_Sl_operations_research_IntVar_Sm__Sg__getitemcopy + constraint__solver__csharp__wrap_8cc.html + a998b3549f15833c299e33434e762fca6 + (std::vector< operations_research::IntVar * > *self, int index) + + + SWIGINTERN std::vector< operations_research::IntVar * >::value_type const & + std_vector_Sl_operations_research_IntVar_Sm__Sg__getitem + constraint__solver__csharp__wrap_8cc.html + ace25fbe24351131527c4940ad03f5012 + (std::vector< operations_research::IntVar * > *self, int index) + + + SWIGINTERN void + std_vector_Sl_operations_research_IntVar_Sm__Sg__setitem + constraint__solver__csharp__wrap_8cc.html + a12a986389b5970e6d0589adb8b29644d + (std::vector< operations_research::IntVar * > *self, int index, operations_research::IntVar *const &val) + + + SWIGINTERN void + std_vector_Sl_operations_research_IntVar_Sm__Sg__AddRange + constraint__solver__csharp__wrap_8cc.html + a2280f00d86b5f877d3e9fbf06cdf7cee + (std::vector< operations_research::IntVar * > *self, std::vector< operations_research::IntVar * > const &values) + + + SWIGINTERN std::vector< operations_research::IntVar * > * + std_vector_Sl_operations_research_IntVar_Sm__Sg__GetRange + constraint__solver__csharp__wrap_8cc.html + a470b75c0186137e686434619636d5941 + (std::vector< operations_research::IntVar * > *self, int index, int count) + + + SWIGINTERN void + std_vector_Sl_operations_research_IntVar_Sm__Sg__Insert + constraint__solver__csharp__wrap_8cc.html + a0f5fb504d5579feb3d4913a41e07868a + (std::vector< operations_research::IntVar * > *self, int index, operations_research::IntVar *const &x) + + + SWIGINTERN void + std_vector_Sl_operations_research_IntVar_Sm__Sg__InsertRange + constraint__solver__csharp__wrap_8cc.html + a57e302e22d1c06e040e45425b3999ef6 + (std::vector< operations_research::IntVar * > *self, int index, std::vector< operations_research::IntVar * > const &values) + + + SWIGINTERN void + std_vector_Sl_operations_research_IntVar_Sm__Sg__RemoveAt + constraint__solver__csharp__wrap_8cc.html + a713112e2b5bdc633e8c088ec21203bd6 + (std::vector< operations_research::IntVar * > *self, int index) + + + SWIGINTERN void + std_vector_Sl_operations_research_IntVar_Sm__Sg__RemoveRange + constraint__solver__csharp__wrap_8cc.html + a4731a6b78ca5c18bb4dbdb581bdd03bf + (std::vector< operations_research::IntVar * > *self, int index, int count) + + + SWIGINTERN std::vector< operations_research::IntVar * > * + std_vector_Sl_operations_research_IntVar_Sm__Sg__Repeat + constraint__solver__csharp__wrap_8cc.html + a202c3e532d1aa58933f0d223c9dfee3f + (operations_research::IntVar *const &value, int count) + + + SWIGINTERN void + std_vector_Sl_operations_research_IntVar_Sm__Sg__Reverse__SWIG_0 + constraint__solver__csharp__wrap_8cc.html + af6a9324f91c39b002e97a933ec5135e0 + (std::vector< operations_research::IntVar * > *self) + + + SWIGINTERN void + std_vector_Sl_operations_research_IntVar_Sm__Sg__Reverse__SWIG_1 + constraint__solver__csharp__wrap_8cc.html + a8d0a895d09327892fd92133b7d94413c + (std::vector< operations_research::IntVar * > *self, int index, int count) + + + SWIGINTERN void + std_vector_Sl_operations_research_IntVar_Sm__Sg__SetRange + constraint__solver__csharp__wrap_8cc.html + adfc0cacd91772cfe37b147e967dcb884 + (std::vector< operations_research::IntVar * > *self, int index, std::vector< operations_research::IntVar * > const &values) + + + SWIGINTERN bool + std_vector_Sl_operations_research_IntVar_Sm__Sg__Contains + constraint__solver__csharp__wrap_8cc.html + a7949db101c33454645731f8cc7acc01b + (std::vector< operations_research::IntVar * > *self, operations_research::IntVar *const &value) + + + SWIGINTERN int + std_vector_Sl_operations_research_IntVar_Sm__Sg__IndexOf + constraint__solver__csharp__wrap_8cc.html + ac81db34237967b33109e2c540d924ada + (std::vector< operations_research::IntVar * > *self, operations_research::IntVar *const &value) + + + SWIGINTERN int + std_vector_Sl_operations_research_IntVar_Sm__Sg__LastIndexOf + constraint__solver__csharp__wrap_8cc.html + a08fb54741522e01a9dd6da866458abfb + (std::vector< operations_research::IntVar * > *self, operations_research::IntVar *const &value) + + + SWIGINTERN bool + std_vector_Sl_operations_research_IntVar_Sm__Sg__Remove + constraint__solver__csharp__wrap_8cc.html + a3c59796af9d568946de5633a82a58f14 + (std::vector< operations_research::IntVar * > *self, operations_research::IntVar *const &value) + + + SWIGINTERN std::vector< operations_research::SearchMonitor * > * + new_std_vector_Sl_operations_research_SearchMonitor_Sm__Sg___SWIG_2 + constraint__solver__csharp__wrap_8cc.html + a3e1b77fb84773a1cef970cc2a435af44 + (int capacity) + + + SWIGINTERN operations_research::SearchMonitor * + std_vector_Sl_operations_research_SearchMonitor_Sm__Sg__getitemcopy + constraint__solver__csharp__wrap_8cc.html + abb5bcc208102027851ce0200265b051d + (std::vector< operations_research::SearchMonitor * > *self, int index) + + + SWIGINTERN std::vector< operations_research::SearchMonitor * >::value_type const & + std_vector_Sl_operations_research_SearchMonitor_Sm__Sg__getitem + constraint__solver__csharp__wrap_8cc.html + a8e20fd6f4e953b13b108620dd56e04f2 + (std::vector< operations_research::SearchMonitor * > *self, int index) + + + SWIGINTERN void + std_vector_Sl_operations_research_SearchMonitor_Sm__Sg__setitem + constraint__solver__csharp__wrap_8cc.html + a6601352428c90bbdd6e564d92284ebe8 + (std::vector< operations_research::SearchMonitor * > *self, int index, operations_research::SearchMonitor *const &val) + + + SWIGINTERN void + std_vector_Sl_operations_research_SearchMonitor_Sm__Sg__AddRange + constraint__solver__csharp__wrap_8cc.html + a285b45dc412b7370bf8c3db9c3750f23 + (std::vector< operations_research::SearchMonitor * > *self, std::vector< operations_research::SearchMonitor * > const &values) + + + SWIGINTERN std::vector< operations_research::SearchMonitor * > * + std_vector_Sl_operations_research_SearchMonitor_Sm__Sg__GetRange + constraint__solver__csharp__wrap_8cc.html + aa8e0cd61f832ee5385cd08bbd32979e5 + (std::vector< operations_research::SearchMonitor * > *self, int index, int count) + + + SWIGINTERN void + std_vector_Sl_operations_research_SearchMonitor_Sm__Sg__Insert + constraint__solver__csharp__wrap_8cc.html + ad3ce3140e7de6c4ca3d539c02ae991f7 + (std::vector< operations_research::SearchMonitor * > *self, int index, operations_research::SearchMonitor *const &x) + + + SWIGINTERN void + std_vector_Sl_operations_research_SearchMonitor_Sm__Sg__InsertRange + constraint__solver__csharp__wrap_8cc.html + a50b882111f5f134b6d590b43c27fc403 + (std::vector< operations_research::SearchMonitor * > *self, int index, std::vector< operations_research::SearchMonitor * > const &values) + + + SWIGINTERN void + std_vector_Sl_operations_research_SearchMonitor_Sm__Sg__RemoveAt + constraint__solver__csharp__wrap_8cc.html + ac3ac3e7d0a40a6b3700859b005c1e69b + (std::vector< operations_research::SearchMonitor * > *self, int index) + + + SWIGINTERN void + std_vector_Sl_operations_research_SearchMonitor_Sm__Sg__RemoveRange + constraint__solver__csharp__wrap_8cc.html + a20741d3572c165ef9445a7b5fe5e924d + (std::vector< operations_research::SearchMonitor * > *self, int index, int count) + + + SWIGINTERN std::vector< operations_research::SearchMonitor * > * + std_vector_Sl_operations_research_SearchMonitor_Sm__Sg__Repeat + constraint__solver__csharp__wrap_8cc.html + aad070fc42af0e86e01e3bbdc4bf7d3ad + (operations_research::SearchMonitor *const &value, int count) + + + SWIGINTERN void + std_vector_Sl_operations_research_SearchMonitor_Sm__Sg__Reverse__SWIG_0 + constraint__solver__csharp__wrap_8cc.html + a4a648e0abd05bec0e3722319d3a057cd + (std::vector< operations_research::SearchMonitor * > *self) + + + SWIGINTERN void + std_vector_Sl_operations_research_SearchMonitor_Sm__Sg__Reverse__SWIG_1 + constraint__solver__csharp__wrap_8cc.html + a03fb5f2496e882ba41e9f1f8ca62bd36 + (std::vector< operations_research::SearchMonitor * > *self, int index, int count) + + + SWIGINTERN void + std_vector_Sl_operations_research_SearchMonitor_Sm__Sg__SetRange + constraint__solver__csharp__wrap_8cc.html + ac9ca57822698e3ead7a37412084075dc + (std::vector< operations_research::SearchMonitor * > *self, int index, std::vector< operations_research::SearchMonitor * > const &values) + + + SWIGINTERN bool + std_vector_Sl_operations_research_SearchMonitor_Sm__Sg__Contains + constraint__solver__csharp__wrap_8cc.html + aaed2de452975739e3e98bd430ff13a53 + (std::vector< operations_research::SearchMonitor * > *self, operations_research::SearchMonitor *const &value) + + + SWIGINTERN int + std_vector_Sl_operations_research_SearchMonitor_Sm__Sg__IndexOf + constraint__solver__csharp__wrap_8cc.html + a1d72e936323e4e81e272b29e60686481 + (std::vector< operations_research::SearchMonitor * > *self, operations_research::SearchMonitor *const &value) + + + SWIGINTERN int + std_vector_Sl_operations_research_SearchMonitor_Sm__Sg__LastIndexOf + constraint__solver__csharp__wrap_8cc.html + a41a5b764652765c65f598da606accc8d + (std::vector< operations_research::SearchMonitor * > *self, operations_research::SearchMonitor *const &value) + + + SWIGINTERN bool + std_vector_Sl_operations_research_SearchMonitor_Sm__Sg__Remove + constraint__solver__csharp__wrap_8cc.html + a6a10ea9a027ac20aa76a691f766a3218 + (std::vector< operations_research::SearchMonitor * > *self, operations_research::SearchMonitor *const &value) + + + SWIGINTERN std::vector< operations_research::DecisionBuilder * > * + new_std_vector_Sl_operations_research_DecisionBuilder_Sm__Sg___SWIG_2 + constraint__solver__csharp__wrap_8cc.html + a12a020679f31a86d1c62c1cde8cc73dd + (int capacity) + + + SWIGINTERN operations_research::DecisionBuilder * + std_vector_Sl_operations_research_DecisionBuilder_Sm__Sg__getitemcopy + constraint__solver__csharp__wrap_8cc.html + aa461e09d841f33bb879afc9dcdea744e + (std::vector< operations_research::DecisionBuilder * > *self, int index) + + + SWIGINTERN std::vector< operations_research::DecisionBuilder * >::value_type const & + std_vector_Sl_operations_research_DecisionBuilder_Sm__Sg__getitem + constraint__solver__csharp__wrap_8cc.html + acedfda5be35f841cca9916c28f0e60ae + (std::vector< operations_research::DecisionBuilder * > *self, int index) + + + SWIGINTERN void + std_vector_Sl_operations_research_DecisionBuilder_Sm__Sg__setitem + constraint__solver__csharp__wrap_8cc.html + a153411aef5c19735a8a81120a9f0df29 + (std::vector< operations_research::DecisionBuilder * > *self, int index, operations_research::DecisionBuilder *const &val) + + + SWIGINTERN void + std_vector_Sl_operations_research_DecisionBuilder_Sm__Sg__AddRange + constraint__solver__csharp__wrap_8cc.html + a46e8557ae3edc8ffb18b81f5fc0bfb7e + (std::vector< operations_research::DecisionBuilder * > *self, std::vector< operations_research::DecisionBuilder * > const &values) + + + SWIGINTERN std::vector< operations_research::DecisionBuilder * > * + std_vector_Sl_operations_research_DecisionBuilder_Sm__Sg__GetRange + constraint__solver__csharp__wrap_8cc.html + a85d3b86320be48c149c8f49617b1dc4c + (std::vector< operations_research::DecisionBuilder * > *self, int index, int count) + + + SWIGINTERN void + std_vector_Sl_operations_research_DecisionBuilder_Sm__Sg__Insert + constraint__solver__csharp__wrap_8cc.html + a105aafbdc5cda4315751d0f0e3edf0ef + (std::vector< operations_research::DecisionBuilder * > *self, int index, operations_research::DecisionBuilder *const &x) + + + SWIGINTERN void + std_vector_Sl_operations_research_DecisionBuilder_Sm__Sg__InsertRange + constraint__solver__csharp__wrap_8cc.html + a17e4ab3c91c950282e8b9ae0f216da4f + (std::vector< operations_research::DecisionBuilder * > *self, int index, std::vector< operations_research::DecisionBuilder * > const &values) + + + SWIGINTERN void + std_vector_Sl_operations_research_DecisionBuilder_Sm__Sg__RemoveAt + constraint__solver__csharp__wrap_8cc.html + a1cc47cfca8233d4d4688c89a89b0fa54 + (std::vector< operations_research::DecisionBuilder * > *self, int index) + + + SWIGINTERN void + std_vector_Sl_operations_research_DecisionBuilder_Sm__Sg__RemoveRange + constraint__solver__csharp__wrap_8cc.html + ad4d1fb8c5d83ef196714a9810d07f98c + (std::vector< operations_research::DecisionBuilder * > *self, int index, int count) + + + SWIGINTERN std::vector< operations_research::DecisionBuilder * > * + std_vector_Sl_operations_research_DecisionBuilder_Sm__Sg__Repeat + constraint__solver__csharp__wrap_8cc.html + ae3284e8628e5bcfd8f34f6151cf4fc97 + (operations_research::DecisionBuilder *const &value, int count) + + + SWIGINTERN void + std_vector_Sl_operations_research_DecisionBuilder_Sm__Sg__Reverse__SWIG_0 + constraint__solver__csharp__wrap_8cc.html + ac869740a1ae4b770cb6f61d177b96e48 + (std::vector< operations_research::DecisionBuilder * > *self) + + + SWIGINTERN void + std_vector_Sl_operations_research_DecisionBuilder_Sm__Sg__Reverse__SWIG_1 + constraint__solver__csharp__wrap_8cc.html + a499c7ef785992d02d2732bacd189030d + (std::vector< operations_research::DecisionBuilder * > *self, int index, int count) + + + SWIGINTERN void + std_vector_Sl_operations_research_DecisionBuilder_Sm__Sg__SetRange + constraint__solver__csharp__wrap_8cc.html + ac770f50be9148db97e2c1f07bc108772 + (std::vector< operations_research::DecisionBuilder * > *self, int index, std::vector< operations_research::DecisionBuilder * > const &values) + + + SWIGINTERN bool + std_vector_Sl_operations_research_DecisionBuilder_Sm__Sg__Contains + constraint__solver__csharp__wrap_8cc.html + a82808e0cef5589873c5a77198e3d7794 + (std::vector< operations_research::DecisionBuilder * > *self, operations_research::DecisionBuilder *const &value) + + + SWIGINTERN int + std_vector_Sl_operations_research_DecisionBuilder_Sm__Sg__IndexOf + constraint__solver__csharp__wrap_8cc.html + a74b3fa434398ac3cf3622a98d9956c5e + (std::vector< operations_research::DecisionBuilder * > *self, operations_research::DecisionBuilder *const &value) + + + SWIGINTERN int + std_vector_Sl_operations_research_DecisionBuilder_Sm__Sg__LastIndexOf + constraint__solver__csharp__wrap_8cc.html + a16d1512926e74cef63bd0cbc23ce7649 + (std::vector< operations_research::DecisionBuilder * > *self, operations_research::DecisionBuilder *const &value) + + + SWIGINTERN bool + std_vector_Sl_operations_research_DecisionBuilder_Sm__Sg__Remove + constraint__solver__csharp__wrap_8cc.html + aaa9848518e9d999669fbe229f7d80690 + (std::vector< operations_research::DecisionBuilder * > *self, operations_research::DecisionBuilder *const &value) + + + SWIGINTERN std::vector< operations_research::IntervalVar * > * + new_std_vector_Sl_operations_research_IntervalVar_Sm__Sg___SWIG_2 + constraint__solver__csharp__wrap_8cc.html + aaf259308eef69d4eba7a3ff6a647e753 + (int capacity) + + + SWIGINTERN operations_research::IntervalVar * + std_vector_Sl_operations_research_IntervalVar_Sm__Sg__getitemcopy + constraint__solver__csharp__wrap_8cc.html + a95ebed9d04ab4020ce5373275654c6e6 + (std::vector< operations_research::IntervalVar * > *self, int index) + + + SWIGINTERN std::vector< operations_research::IntervalVar * >::value_type const & + std_vector_Sl_operations_research_IntervalVar_Sm__Sg__getitem + constraint__solver__csharp__wrap_8cc.html + a4359c39a5bfad82f2842d0f0f55813d3 + (std::vector< operations_research::IntervalVar * > *self, int index) + + + SWIGINTERN void + std_vector_Sl_operations_research_IntervalVar_Sm__Sg__setitem + constraint__solver__csharp__wrap_8cc.html + a152809bdd896adcac6bf09d61c42f435 + (std::vector< operations_research::IntervalVar * > *self, int index, operations_research::IntervalVar *const &val) + + + SWIGINTERN void + std_vector_Sl_operations_research_IntervalVar_Sm__Sg__AddRange + constraint__solver__csharp__wrap_8cc.html + a6932b9bc33fb7b31594503d6f5374240 + (std::vector< operations_research::IntervalVar * > *self, std::vector< operations_research::IntervalVar * > const &values) + + + SWIGINTERN std::vector< operations_research::IntervalVar * > * + std_vector_Sl_operations_research_IntervalVar_Sm__Sg__GetRange + constraint__solver__csharp__wrap_8cc.html + a574af6d5422d361a15df9252679f4e5e + (std::vector< operations_research::IntervalVar * > *self, int index, int count) + + + SWIGINTERN void + std_vector_Sl_operations_research_IntervalVar_Sm__Sg__Insert + constraint__solver__csharp__wrap_8cc.html + afdda0d4926fa56eca37fed6e75e92f07 + (std::vector< operations_research::IntervalVar * > *self, int index, operations_research::IntervalVar *const &x) + + + SWIGINTERN void + std_vector_Sl_operations_research_IntervalVar_Sm__Sg__InsertRange + constraint__solver__csharp__wrap_8cc.html + a918b53b763a0f9f88cdcd44d847b5e21 + (std::vector< operations_research::IntervalVar * > *self, int index, std::vector< operations_research::IntervalVar * > const &values) + + + SWIGINTERN void + std_vector_Sl_operations_research_IntervalVar_Sm__Sg__RemoveAt + constraint__solver__csharp__wrap_8cc.html + a16fa9d932f57493cc436c200a431d497 + (std::vector< operations_research::IntervalVar * > *self, int index) + + + SWIGINTERN void + std_vector_Sl_operations_research_IntervalVar_Sm__Sg__RemoveRange + constraint__solver__csharp__wrap_8cc.html + a0d7925af2773ebf89183c96cd9e58fd6 + (std::vector< operations_research::IntervalVar * > *self, int index, int count) + + + SWIGINTERN std::vector< operations_research::IntervalVar * > * + std_vector_Sl_operations_research_IntervalVar_Sm__Sg__Repeat + constraint__solver__csharp__wrap_8cc.html + a2c67e12d512c1cb89c862d03769366e6 + (operations_research::IntervalVar *const &value, int count) + + + SWIGINTERN void + std_vector_Sl_operations_research_IntervalVar_Sm__Sg__Reverse__SWIG_0 + constraint__solver__csharp__wrap_8cc.html + aac3075fa0a1c57c4eb485bd879750acc + (std::vector< operations_research::IntervalVar * > *self) + + + SWIGINTERN void + std_vector_Sl_operations_research_IntervalVar_Sm__Sg__Reverse__SWIG_1 + constraint__solver__csharp__wrap_8cc.html + a9ff2bac129e27f1f6953baba878d0d53 + (std::vector< operations_research::IntervalVar * > *self, int index, int count) + + + SWIGINTERN void + std_vector_Sl_operations_research_IntervalVar_Sm__Sg__SetRange + constraint__solver__csharp__wrap_8cc.html + a869ed947bec78724bde2e36522e3bd0a + (std::vector< operations_research::IntervalVar * > *self, int index, std::vector< operations_research::IntervalVar * > const &values) + + + SWIGINTERN bool + std_vector_Sl_operations_research_IntervalVar_Sm__Sg__Contains + constraint__solver__csharp__wrap_8cc.html + aab3c06e62f1ae6d560de1d268a2cbf0e + (std::vector< operations_research::IntervalVar * > *self, operations_research::IntervalVar *const &value) + + + SWIGINTERN int + std_vector_Sl_operations_research_IntervalVar_Sm__Sg__IndexOf + constraint__solver__csharp__wrap_8cc.html + a8b6b05d5e13378f93b983f4765ef467d + (std::vector< operations_research::IntervalVar * > *self, operations_research::IntervalVar *const &value) + + + SWIGINTERN int + std_vector_Sl_operations_research_IntervalVar_Sm__Sg__LastIndexOf + constraint__solver__csharp__wrap_8cc.html + a913f4c8301463d3369959a0896738c04 + (std::vector< operations_research::IntervalVar * > *self, operations_research::IntervalVar *const &value) + + + SWIGINTERN bool + std_vector_Sl_operations_research_IntervalVar_Sm__Sg__Remove + constraint__solver__csharp__wrap_8cc.html + a9e29bf879e189029e05a1644c367c50c + (std::vector< operations_research::IntervalVar * > *self, operations_research::IntervalVar *const &value) + + + SWIGINTERN std::vector< operations_research::SequenceVar * > * + new_std_vector_Sl_operations_research_SequenceVar_Sm__Sg___SWIG_2 + constraint__solver__csharp__wrap_8cc.html + adaa6a8ae260ef937c2e590a5bb11870c + (int capacity) + + + SWIGINTERN operations_research::SequenceVar * + std_vector_Sl_operations_research_SequenceVar_Sm__Sg__getitemcopy + constraint__solver__csharp__wrap_8cc.html + a071605a41207224554f50420173e861a + (std::vector< operations_research::SequenceVar * > *self, int index) + + + SWIGINTERN std::vector< operations_research::SequenceVar * >::value_type const & + std_vector_Sl_operations_research_SequenceVar_Sm__Sg__getitem + constraint__solver__csharp__wrap_8cc.html + a5f38bf78f6d0c4c3478540a8451840f9 + (std::vector< operations_research::SequenceVar * > *self, int index) + + + SWIGINTERN void + std_vector_Sl_operations_research_SequenceVar_Sm__Sg__setitem + constraint__solver__csharp__wrap_8cc.html + aeedef10eb961dee74bf25d18378f3b6e + (std::vector< operations_research::SequenceVar * > *self, int index, operations_research::SequenceVar *const &val) + + + SWIGINTERN void + std_vector_Sl_operations_research_SequenceVar_Sm__Sg__AddRange + constraint__solver__csharp__wrap_8cc.html + a2499b7fe04fecd40b896a47fed65641d + (std::vector< operations_research::SequenceVar * > *self, std::vector< operations_research::SequenceVar * > const &values) + + + SWIGINTERN std::vector< operations_research::SequenceVar * > * + std_vector_Sl_operations_research_SequenceVar_Sm__Sg__GetRange + constraint__solver__csharp__wrap_8cc.html + adb0bc82f467f42deb3736978fcb51d2e + (std::vector< operations_research::SequenceVar * > *self, int index, int count) + + + SWIGINTERN void + std_vector_Sl_operations_research_SequenceVar_Sm__Sg__Insert + constraint__solver__csharp__wrap_8cc.html + ac1cd6661ef99aa972c520e71a5571a30 + (std::vector< operations_research::SequenceVar * > *self, int index, operations_research::SequenceVar *const &x) + + + SWIGINTERN void + std_vector_Sl_operations_research_SequenceVar_Sm__Sg__InsertRange + constraint__solver__csharp__wrap_8cc.html + aabea66b53b83c422bc7500f0ae95f326 + (std::vector< operations_research::SequenceVar * > *self, int index, std::vector< operations_research::SequenceVar * > const &values) + + + SWIGINTERN void + std_vector_Sl_operations_research_SequenceVar_Sm__Sg__RemoveAt + constraint__solver__csharp__wrap_8cc.html + aa04299d7e7192389afc698e5612dd9d2 + (std::vector< operations_research::SequenceVar * > *self, int index) + + + SWIGINTERN void + std_vector_Sl_operations_research_SequenceVar_Sm__Sg__RemoveRange + constraint__solver__csharp__wrap_8cc.html + ad172a5ac5f676e2fbebb9d11e72dcebb + (std::vector< operations_research::SequenceVar * > *self, int index, int count) + + + SWIGINTERN std::vector< operations_research::SequenceVar * > * + std_vector_Sl_operations_research_SequenceVar_Sm__Sg__Repeat + constraint__solver__csharp__wrap_8cc.html + ad483146a4bacd1888354bbdecb01cbc3 + (operations_research::SequenceVar *const &value, int count) + + + SWIGINTERN void + std_vector_Sl_operations_research_SequenceVar_Sm__Sg__Reverse__SWIG_0 + constraint__solver__csharp__wrap_8cc.html + a21e3318c8ad3b0319aadc052b189653c + (std::vector< operations_research::SequenceVar * > *self) + + + SWIGINTERN void + std_vector_Sl_operations_research_SequenceVar_Sm__Sg__Reverse__SWIG_1 + constraint__solver__csharp__wrap_8cc.html + a2c9a3e0831cbb8f66d0ecfcc12b08378 + (std::vector< operations_research::SequenceVar * > *self, int index, int count) + + + SWIGINTERN void + std_vector_Sl_operations_research_SequenceVar_Sm__Sg__SetRange + constraint__solver__csharp__wrap_8cc.html + ae9fdbc05f64ec944e568d16ea8cb7c36 + (std::vector< operations_research::SequenceVar * > *self, int index, std::vector< operations_research::SequenceVar * > const &values) + + + SWIGINTERN bool + std_vector_Sl_operations_research_SequenceVar_Sm__Sg__Contains + constraint__solver__csharp__wrap_8cc.html + a39be30af5620cf7246f93de5a451d90d + (std::vector< operations_research::SequenceVar * > *self, operations_research::SequenceVar *const &value) + + + SWIGINTERN int + std_vector_Sl_operations_research_SequenceVar_Sm__Sg__IndexOf + constraint__solver__csharp__wrap_8cc.html + a5f7f7bd5d649fc6d8d656ecbd667c90f + (std::vector< operations_research::SequenceVar * > *self, operations_research::SequenceVar *const &value) + + + SWIGINTERN int + std_vector_Sl_operations_research_SequenceVar_Sm__Sg__LastIndexOf + constraint__solver__csharp__wrap_8cc.html + a6bc1eb9fd8b8f7846165d08d928ac72f + (std::vector< operations_research::SequenceVar * > *self, operations_research::SequenceVar *const &value) + + + SWIGINTERN bool + std_vector_Sl_operations_research_SequenceVar_Sm__Sg__Remove + constraint__solver__csharp__wrap_8cc.html + a8d22afa244a0162b0f3bb131056ee5f6 + (std::vector< operations_research::SequenceVar * > *self, operations_research::SequenceVar *const &value) + + + SWIGINTERN std::vector< operations_research::LocalSearchOperator * > * + new_std_vector_Sl_operations_research_LocalSearchOperator_Sm__Sg___SWIG_2 + constraint__solver__csharp__wrap_8cc.html + a786ddaa3db29bfd658a775c5dd57ae00 + (int capacity) + + + SWIGINTERN operations_research::LocalSearchOperator * + std_vector_Sl_operations_research_LocalSearchOperator_Sm__Sg__getitemcopy + constraint__solver__csharp__wrap_8cc.html + a4541ae5d281299f5f15e472b18e2416f + (std::vector< operations_research::LocalSearchOperator * > *self, int index) + + + SWIGINTERN std::vector< operations_research::LocalSearchOperator * >::value_type const & + std_vector_Sl_operations_research_LocalSearchOperator_Sm__Sg__getitem + constraint__solver__csharp__wrap_8cc.html + a9cd076153a3ba0db1e948b4975aa3f1b + (std::vector< operations_research::LocalSearchOperator * > *self, int index) + + + SWIGINTERN void + std_vector_Sl_operations_research_LocalSearchOperator_Sm__Sg__setitem + constraint__solver__csharp__wrap_8cc.html + a1ef3411a4e32fb0b42d83bfc960cadd8 + (std::vector< operations_research::LocalSearchOperator * > *self, int index, operations_research::LocalSearchOperator *const &val) + + + SWIGINTERN void + std_vector_Sl_operations_research_LocalSearchOperator_Sm__Sg__AddRange + constraint__solver__csharp__wrap_8cc.html + a95a01d7980ed982e6d9e93931d9ee1ab + (std::vector< operations_research::LocalSearchOperator * > *self, std::vector< operations_research::LocalSearchOperator * > const &values) + + + SWIGINTERN std::vector< operations_research::LocalSearchOperator * > * + std_vector_Sl_operations_research_LocalSearchOperator_Sm__Sg__GetRange + constraint__solver__csharp__wrap_8cc.html + a84b981d84a2988e7a5a3545310fc2954 + (std::vector< operations_research::LocalSearchOperator * > *self, int index, int count) + + + SWIGINTERN void + std_vector_Sl_operations_research_LocalSearchOperator_Sm__Sg__Insert + constraint__solver__csharp__wrap_8cc.html + afd132700b5dc35a37c9512b5c81ae1fa + (std::vector< operations_research::LocalSearchOperator * > *self, int index, operations_research::LocalSearchOperator *const &x) + + + SWIGINTERN void + std_vector_Sl_operations_research_LocalSearchOperator_Sm__Sg__InsertRange + constraint__solver__csharp__wrap_8cc.html + ad9dae4134fadac9b1b078201128ac309 + (std::vector< operations_research::LocalSearchOperator * > *self, int index, std::vector< operations_research::LocalSearchOperator * > const &values) + + + SWIGINTERN void + std_vector_Sl_operations_research_LocalSearchOperator_Sm__Sg__RemoveAt + constraint__solver__csharp__wrap_8cc.html + a10d25cd3f68b5dc113b7d9042a096258 + (std::vector< operations_research::LocalSearchOperator * > *self, int index) + + + SWIGINTERN void + std_vector_Sl_operations_research_LocalSearchOperator_Sm__Sg__RemoveRange + constraint__solver__csharp__wrap_8cc.html + ae546ab414c114967a882aa8d26ec8779 + (std::vector< operations_research::LocalSearchOperator * > *self, int index, int count) + + + SWIGINTERN std::vector< operations_research::LocalSearchOperator * > * + std_vector_Sl_operations_research_LocalSearchOperator_Sm__Sg__Repeat + constraint__solver__csharp__wrap_8cc.html + a4e4cd0ca6e91747d525fa701b056fab7 + (operations_research::LocalSearchOperator *const &value, int count) + + + SWIGINTERN void + std_vector_Sl_operations_research_LocalSearchOperator_Sm__Sg__Reverse__SWIG_0 + constraint__solver__csharp__wrap_8cc.html + af1c3c847bbba4e122ca4d928561d6312 + (std::vector< operations_research::LocalSearchOperator * > *self) + + + SWIGINTERN void + std_vector_Sl_operations_research_LocalSearchOperator_Sm__Sg__Reverse__SWIG_1 + constraint__solver__csharp__wrap_8cc.html + a58b6bf4a93c915f4d9d1d23e2f152b2c + (std::vector< operations_research::LocalSearchOperator * > *self, int index, int count) + + + SWIGINTERN void + std_vector_Sl_operations_research_LocalSearchOperator_Sm__Sg__SetRange + constraint__solver__csharp__wrap_8cc.html + a172e3b3cd60af7d9cf2ce7928a3c0663 + (std::vector< operations_research::LocalSearchOperator * > *self, int index, std::vector< operations_research::LocalSearchOperator * > const &values) + + + SWIGINTERN bool + std_vector_Sl_operations_research_LocalSearchOperator_Sm__Sg__Contains + constraint__solver__csharp__wrap_8cc.html + ab570baf87ee6c80c248f834787711f78 + (std::vector< operations_research::LocalSearchOperator * > *self, operations_research::LocalSearchOperator *const &value) + + + SWIGINTERN int + std_vector_Sl_operations_research_LocalSearchOperator_Sm__Sg__IndexOf + constraint__solver__csharp__wrap_8cc.html + a8191d221ec2dbd28d72c9e5df8671383 + (std::vector< operations_research::LocalSearchOperator * > *self, operations_research::LocalSearchOperator *const &value) + + + SWIGINTERN int + std_vector_Sl_operations_research_LocalSearchOperator_Sm__Sg__LastIndexOf + constraint__solver__csharp__wrap_8cc.html + a08f41320c36d4fe81ea426ecbf26f47f + (std::vector< operations_research::LocalSearchOperator * > *self, operations_research::LocalSearchOperator *const &value) + + + SWIGINTERN bool + std_vector_Sl_operations_research_LocalSearchOperator_Sm__Sg__Remove + constraint__solver__csharp__wrap_8cc.html + ae5e125e6d00c7129a083843c1e8914e2 + (std::vector< operations_research::LocalSearchOperator * > *self, operations_research::LocalSearchOperator *const &value) + + + SWIGINTERN std::vector< operations_research::LocalSearchFilter * > * + new_std_vector_Sl_operations_research_LocalSearchFilter_Sm__Sg___SWIG_2 + constraint__solver__csharp__wrap_8cc.html + a10465b6577e17360b6c3f19f7b866e97 + (int capacity) + + + SWIGINTERN operations_research::LocalSearchFilter * + std_vector_Sl_operations_research_LocalSearchFilter_Sm__Sg__getitemcopy + constraint__solver__csharp__wrap_8cc.html + a406eb45ac1abd670a8036efe3fbbcf5b + (std::vector< operations_research::LocalSearchFilter * > *self, int index) + + + SWIGINTERN std::vector< operations_research::LocalSearchFilter * >::value_type const & + std_vector_Sl_operations_research_LocalSearchFilter_Sm__Sg__getitem + constraint__solver__csharp__wrap_8cc.html + a6426896f1cc1dcbae82b13d7150b3956 + (std::vector< operations_research::LocalSearchFilter * > *self, int index) + + + SWIGINTERN void + std_vector_Sl_operations_research_LocalSearchFilter_Sm__Sg__setitem + constraint__solver__csharp__wrap_8cc.html + ace8959a199f1640174eb937dce91bbf6 + (std::vector< operations_research::LocalSearchFilter * > *self, int index, operations_research::LocalSearchFilter *const &val) + + + SWIGINTERN void + std_vector_Sl_operations_research_LocalSearchFilter_Sm__Sg__AddRange + constraint__solver__csharp__wrap_8cc.html + a55ddfc1aee5c6163346e376d43d849fa + (std::vector< operations_research::LocalSearchFilter * > *self, std::vector< operations_research::LocalSearchFilter * > const &values) + + + SWIGINTERN std::vector< operations_research::LocalSearchFilter * > * + std_vector_Sl_operations_research_LocalSearchFilter_Sm__Sg__GetRange + constraint__solver__csharp__wrap_8cc.html + a0b076babf3b00f7bacaa42d0d71a27cd + (std::vector< operations_research::LocalSearchFilter * > *self, int index, int count) + + + SWIGINTERN void + std_vector_Sl_operations_research_LocalSearchFilter_Sm__Sg__Insert + constraint__solver__csharp__wrap_8cc.html + a4c746de4d3824e072b688e839aa70395 + (std::vector< operations_research::LocalSearchFilter * > *self, int index, operations_research::LocalSearchFilter *const &x) + + + SWIGINTERN void + std_vector_Sl_operations_research_LocalSearchFilter_Sm__Sg__InsertRange + constraint__solver__csharp__wrap_8cc.html + a4631f8e4e1c8ca3efbc6e4959aea073b + (std::vector< operations_research::LocalSearchFilter * > *self, int index, std::vector< operations_research::LocalSearchFilter * > const &values) + + + SWIGINTERN void + std_vector_Sl_operations_research_LocalSearchFilter_Sm__Sg__RemoveAt + constraint__solver__csharp__wrap_8cc.html + afaa5ec862e224e7964d24bc0024aa516 + (std::vector< operations_research::LocalSearchFilter * > *self, int index) + + + SWIGINTERN void + std_vector_Sl_operations_research_LocalSearchFilter_Sm__Sg__RemoveRange + constraint__solver__csharp__wrap_8cc.html + a6bfe1963c25c14fdcb62eeaddbb9ad3c + (std::vector< operations_research::LocalSearchFilter * > *self, int index, int count) + + + SWIGINTERN std::vector< operations_research::LocalSearchFilter * > * + std_vector_Sl_operations_research_LocalSearchFilter_Sm__Sg__Repeat + constraint__solver__csharp__wrap_8cc.html + a3ed2f41f9e506a6405cabbefc4e9a876 + (operations_research::LocalSearchFilter *const &value, int count) + + + SWIGINTERN void + std_vector_Sl_operations_research_LocalSearchFilter_Sm__Sg__Reverse__SWIG_0 + constraint__solver__csharp__wrap_8cc.html + ac92b721f1020fac3c0b05473dc54edb8 + (std::vector< operations_research::LocalSearchFilter * > *self) + + + SWIGINTERN void + std_vector_Sl_operations_research_LocalSearchFilter_Sm__Sg__Reverse__SWIG_1 + constraint__solver__csharp__wrap_8cc.html + aa91c63f73a13fb3bbc1e2f9dbed838d6 + (std::vector< operations_research::LocalSearchFilter * > *self, int index, int count) + + + SWIGINTERN void + std_vector_Sl_operations_research_LocalSearchFilter_Sm__Sg__SetRange + constraint__solver__csharp__wrap_8cc.html + a7976c3d873f55dc4c484249edc1fd146 + (std::vector< operations_research::LocalSearchFilter * > *self, int index, std::vector< operations_research::LocalSearchFilter * > const &values) + + + SWIGINTERN bool + std_vector_Sl_operations_research_LocalSearchFilter_Sm__Sg__Contains + constraint__solver__csharp__wrap_8cc.html + ad7a0cc85727abd076ba231ab608c828c + (std::vector< operations_research::LocalSearchFilter * > *self, operations_research::LocalSearchFilter *const &value) + + + SWIGINTERN int + std_vector_Sl_operations_research_LocalSearchFilter_Sm__Sg__IndexOf + constraint__solver__csharp__wrap_8cc.html + a1dfb4e24660f736d33fe1cfffe7aff42 + (std::vector< operations_research::LocalSearchFilter * > *self, operations_research::LocalSearchFilter *const &value) + + + SWIGINTERN int + std_vector_Sl_operations_research_LocalSearchFilter_Sm__Sg__LastIndexOf + constraint__solver__csharp__wrap_8cc.html + a68bd0115b753da4680877f8edc8c29e2 + (std::vector< operations_research::LocalSearchFilter * > *self, operations_research::LocalSearchFilter *const &value) + + + SWIGINTERN bool + std_vector_Sl_operations_research_LocalSearchFilter_Sm__Sg__Remove + constraint__solver__csharp__wrap_8cc.html + a9c996e34aa3ed3450e7b41c5c36fe204 + (std::vector< operations_research::LocalSearchFilter * > *self, operations_research::LocalSearchFilter *const &value) + + + SWIGINTERN std::vector< operations_research::SymmetryBreaker * > * + new_std_vector_Sl_operations_research_SymmetryBreaker_Sm__Sg___SWIG_2 + constraint__solver__csharp__wrap_8cc.html + a704f4d9a087af58ecbfefc87c21d8bdd + (int capacity) + + + SWIGINTERN operations_research::SymmetryBreaker * + std_vector_Sl_operations_research_SymmetryBreaker_Sm__Sg__getitemcopy + constraint__solver__csharp__wrap_8cc.html + a4856f75133b717d4ee7acea16a45b9e6 + (std::vector< operations_research::SymmetryBreaker * > *self, int index) + + + SWIGINTERN std::vector< operations_research::SymmetryBreaker * >::value_type const & + std_vector_Sl_operations_research_SymmetryBreaker_Sm__Sg__getitem + constraint__solver__csharp__wrap_8cc.html + ae9c104353fbe2857ea532c791252c2a5 + (std::vector< operations_research::SymmetryBreaker * > *self, int index) + + + SWIGINTERN void + std_vector_Sl_operations_research_SymmetryBreaker_Sm__Sg__setitem + constraint__solver__csharp__wrap_8cc.html + a568580973b5c73233aa74c2957aa1e35 + (std::vector< operations_research::SymmetryBreaker * > *self, int index, operations_research::SymmetryBreaker *const &val) + + + SWIGINTERN void + std_vector_Sl_operations_research_SymmetryBreaker_Sm__Sg__AddRange + constraint__solver__csharp__wrap_8cc.html + aa815d2322c1fb2f570f164f5761f5075 + (std::vector< operations_research::SymmetryBreaker * > *self, std::vector< operations_research::SymmetryBreaker * > const &values) + + + SWIGINTERN std::vector< operations_research::SymmetryBreaker * > * + std_vector_Sl_operations_research_SymmetryBreaker_Sm__Sg__GetRange + constraint__solver__csharp__wrap_8cc.html + af211b978035618f77af476e7fe42c4db + (std::vector< operations_research::SymmetryBreaker * > *self, int index, int count) + + + SWIGINTERN void + std_vector_Sl_operations_research_SymmetryBreaker_Sm__Sg__Insert + constraint__solver__csharp__wrap_8cc.html + a1bcade046eadb90c438edb899b172828 + (std::vector< operations_research::SymmetryBreaker * > *self, int index, operations_research::SymmetryBreaker *const &x) + + + SWIGINTERN void + std_vector_Sl_operations_research_SymmetryBreaker_Sm__Sg__InsertRange + constraint__solver__csharp__wrap_8cc.html + a86c01b8124c351807ca6e62acbb3f907 + (std::vector< operations_research::SymmetryBreaker * > *self, int index, std::vector< operations_research::SymmetryBreaker * > const &values) + + + SWIGINTERN void + std_vector_Sl_operations_research_SymmetryBreaker_Sm__Sg__RemoveAt + constraint__solver__csharp__wrap_8cc.html + a7ced0ae219a46614b96ec16ecf6b8cb9 + (std::vector< operations_research::SymmetryBreaker * > *self, int index) + + + SWIGINTERN void + std_vector_Sl_operations_research_SymmetryBreaker_Sm__Sg__RemoveRange + constraint__solver__csharp__wrap_8cc.html + ae970cad6d84752136e63ceaa28257fa1 + (std::vector< operations_research::SymmetryBreaker * > *self, int index, int count) + + + SWIGINTERN std::vector< operations_research::SymmetryBreaker * > * + std_vector_Sl_operations_research_SymmetryBreaker_Sm__Sg__Repeat + constraint__solver__csharp__wrap_8cc.html + aee695df1b84bf2fd424ab978d550da25 + (operations_research::SymmetryBreaker *const &value, int count) + + + SWIGINTERN void + std_vector_Sl_operations_research_SymmetryBreaker_Sm__Sg__Reverse__SWIG_0 + constraint__solver__csharp__wrap_8cc.html + a7ce9a94e1d686df7393db855107eb216 + (std::vector< operations_research::SymmetryBreaker * > *self) + + + SWIGINTERN void + std_vector_Sl_operations_research_SymmetryBreaker_Sm__Sg__Reverse__SWIG_1 + constraint__solver__csharp__wrap_8cc.html + ace13513010205e1337c2a20a014e65b7 + (std::vector< operations_research::SymmetryBreaker * > *self, int index, int count) + + + SWIGINTERN void + std_vector_Sl_operations_research_SymmetryBreaker_Sm__Sg__SetRange + constraint__solver__csharp__wrap_8cc.html + ab3edb4689db47fe09739f1dc452fd531 + (std::vector< operations_research::SymmetryBreaker * > *self, int index, std::vector< operations_research::SymmetryBreaker * > const &values) + + + SWIGINTERN bool + std_vector_Sl_operations_research_SymmetryBreaker_Sm__Sg__Contains + constraint__solver__csharp__wrap_8cc.html + a9cf4b2919b65a1a0f9597a0f2f2ba1b1 + (std::vector< operations_research::SymmetryBreaker * > *self, operations_research::SymmetryBreaker *const &value) + + + SWIGINTERN int + std_vector_Sl_operations_research_SymmetryBreaker_Sm__Sg__IndexOf + constraint__solver__csharp__wrap_8cc.html + a7174012bc463cc8b2027b02f57e67e17 + (std::vector< operations_research::SymmetryBreaker * > *self, operations_research::SymmetryBreaker *const &value) + + + SWIGINTERN int + std_vector_Sl_operations_research_SymmetryBreaker_Sm__Sg__LastIndexOf + constraint__solver__csharp__wrap_8cc.html + a439c673236dd1171ae7dc3ea80bfb2a9 + (std::vector< operations_research::SymmetryBreaker * > *self, operations_research::SymmetryBreaker *const &value) + + + SWIGINTERN bool + std_vector_Sl_operations_research_SymmetryBreaker_Sm__Sg__Remove + constraint__solver__csharp__wrap_8cc.html + a45c5b65df1580b850754dc4a410a0345 + (std::vector< operations_research::SymmetryBreaker * > *self, operations_research::SymmetryBreaker *const &value) + + + SWIGINTERN operations_research::Constraint * + operations_research_IntExpr_MapTo + constraint__solver__csharp__wrap_8cc.html + a205cfd66c0ab7b05c8d211ba48917cb0 + (operations_research::IntExpr *self, std::vector< operations_research::IntVar * > const &vars) + + + SWIGINTERN operations_research::IntExpr * + operations_research_IntExpr_IndexOf__SWIG_0 + constraint__solver__csharp__wrap_8cc.html + a8d32838f795d57ddabfc499cbaa60150 + (operations_research::IntExpr *self, std::vector< int64 > const &vars) + + + SWIGINTERN operations_research::IntExpr * + operations_research_IntExpr_IndexOf__SWIG_1 + constraint__solver__csharp__wrap_8cc.html + a40d96a9fbddfa8bb929f85e35a98774a + (operations_research::IntExpr *self, std::vector< operations_research::IntVar * > const &vars) + + + SWIGINTERN operations_research::IntVar * + operations_research_IntExpr_IsEqual__SWIG_0 + constraint__solver__csharp__wrap_8cc.html + a07351b2843d05088c9550ba292651349 + (operations_research::IntExpr *self, int64 value) + + + SWIGINTERN operations_research::IntVar * + operations_research_IntExpr_IsDifferent__SWIG_0 + constraint__solver__csharp__wrap_8cc.html + aa144127e30f41544b365d3f2a6383b93 + (operations_research::IntExpr *self, int64 value) + + + SWIGINTERN operations_research::IntVar * + operations_research_IntExpr_IsGreater__SWIG_0 + constraint__solver__csharp__wrap_8cc.html + ab51dcfff2b13a28f3d4f33f79a4b1428 + (operations_research::IntExpr *self, int64 value) + + + SWIGINTERN operations_research::IntVar * + operations_research_IntExpr_IsGreaterOrEqual__SWIG_0 + constraint__solver__csharp__wrap_8cc.html + a7512fc9303101e7d6b3fc57cf8219603 + (operations_research::IntExpr *self, int64 value) + + + SWIGINTERN operations_research::IntVar * + operations_research_IntExpr_IsLess__SWIG_0 + constraint__solver__csharp__wrap_8cc.html + aad10ec6854dc0eac91d1923de190f341 + (operations_research::IntExpr *self, int64 value) + + + SWIGINTERN operations_research::IntVar * + operations_research_IntExpr_IsLessOrEqual__SWIG_0 + constraint__solver__csharp__wrap_8cc.html + aa6d74e9b0c9aa7ad51772fb6bba2329e + (operations_research::IntExpr *self, int64 value) + + + SWIGINTERN operations_research::IntVar * + operations_research_IntExpr_IsMember__SWIG_0 + constraint__solver__csharp__wrap_8cc.html + aafa2f1a7eaa53f1ccda192f0c7e7ef9e + (operations_research::IntExpr *self, std::vector< int64 > const &values) + + + SWIGINTERN operations_research::IntVar * + operations_research_IntExpr_IsMember__SWIG_1 + constraint__solver__csharp__wrap_8cc.html + aa5d23720977c86651a327281667946da + (operations_research::IntExpr *self, std::vector< int > const &values) + + + SWIGINTERN operations_research::Constraint * + operations_research_IntExpr_Member__SWIG_0 + constraint__solver__csharp__wrap_8cc.html + a2f000aedea8ca27c206bce4f628089a7 + (operations_research::IntExpr *self, std::vector< int64 > const &values) + + + SWIGINTERN operations_research::Constraint * + operations_research_IntExpr_Member__SWIG_1 + constraint__solver__csharp__wrap_8cc.html + a39b0914c05d62aeae240b2edb05756a2 + (operations_research::IntExpr *self, std::vector< int > const &values) + + + SWIGINTERN operations_research::IntVar * + operations_research_IntExpr_IsEqual__SWIG_1 + constraint__solver__csharp__wrap_8cc.html + a5e95a14d5e7dbf6d191c719b4b2b8f3a + (operations_research::IntExpr *self, operations_research::IntExpr *const other) + + + SWIGINTERN operations_research::IntVar * + operations_research_IntExpr_IsDifferent__SWIG_1 + constraint__solver__csharp__wrap_8cc.html + a7317ceffdfef079b934b970dc5f68c54 + (operations_research::IntExpr *self, operations_research::IntExpr *const other) + + + SWIGINTERN operations_research::IntVar * + operations_research_IntExpr_IsGreater__SWIG_1 + constraint__solver__csharp__wrap_8cc.html + a10f65d0afee889139301e0b2014ebf79 + (operations_research::IntExpr *self, operations_research::IntExpr *const other) + + + SWIGINTERN operations_research::IntVar * + operations_research_IntExpr_IsGreaterOrEqual__SWIG_1 + constraint__solver__csharp__wrap_8cc.html + a6c0515613d927a08e8f8b72df37a49b4 + (operations_research::IntExpr *self, operations_research::IntExpr *const other) + + + SWIGINTERN operations_research::IntVar * + operations_research_IntExpr_IsLess__SWIG_1 + constraint__solver__csharp__wrap_8cc.html + a937e9bce997c8e59541c8a68b439bd49 + (operations_research::IntExpr *self, operations_research::IntExpr *const other) + + + SWIGINTERN operations_research::IntVar * + operations_research_IntExpr_IsLessOrEqual__SWIG_1 + constraint__solver__csharp__wrap_8cc.html + a9ddee363d5c1b2145f60beb178e88dde + (operations_research::IntExpr *self, operations_research::IntExpr *const other) + + + SWIGINTERN operations_research::OptimizeVar * + operations_research_IntExpr_Minimize + constraint__solver__csharp__wrap_8cc.html + ae941e2e56ea71fc52a94f740e69a0efd + (operations_research::IntExpr *self, int64 step) + + + SWIGINTERN operations_research::OptimizeVar * + operations_research_IntExpr_Maximize + constraint__solver__csharp__wrap_8cc.html + a7b49f7a97675c7243ff1ca0ae51c73e7 + (operations_research::IntExpr *self, int64 step) + + + SWIGINTERN operations_research::IntVarIterator * + operations_research_IntVar_GetDomain + constraint__solver__csharp__wrap_8cc.html + a0a56bcdd7ae90d3e0942d5bd55ba628c + (operations_research::IntVar *self) + + + SWIGINTERN operations_research::IntVarIterator * + operations_research_IntVar_GetHoles + constraint__solver__csharp__wrap_8cc.html + a7f0a12b6d36273e582d197af546c4b45 + (operations_research::IntVar *self) + + + SWIGINTERN operations_research::Constraint * + operations_research_IntervalVar_EndsAfterEnd + constraint__solver__csharp__wrap_8cc.html + a75a7255f04b03b439371df1ffe936174 + (operations_research::IntervalVar *self, operations_research::IntervalVar *other) + + + SWIGINTERN operations_research::Constraint * + operations_research_IntervalVar_EndsAfterStart + constraint__solver__csharp__wrap_8cc.html + aee67cf1b8830b08c193e6a7035402afb + (operations_research::IntervalVar *self, operations_research::IntervalVar *other) + + + SWIGINTERN operations_research::Constraint * + operations_research_IntervalVar_EndsAtEnd + constraint__solver__csharp__wrap_8cc.html + a32319d9d0bdf90a1d549cafefca6e2b6 + (operations_research::IntervalVar *self, operations_research::IntervalVar *other) + + + SWIGINTERN operations_research::Constraint * + operations_research_IntervalVar_EndsAtStart + constraint__solver__csharp__wrap_8cc.html + ac20da14bb2c2118e0d32b547f1dd3400 + (operations_research::IntervalVar *self, operations_research::IntervalVar *other) + + + SWIGINTERN operations_research::Constraint * + operations_research_IntervalVar_StartsAfterEnd + constraint__solver__csharp__wrap_8cc.html + a3ed980279b67bd89d2b5eadc554cc13b + (operations_research::IntervalVar *self, operations_research::IntervalVar *other) + + + SWIGINTERN operations_research::Constraint * + operations_research_IntervalVar_StartsAfterStart + constraint__solver__csharp__wrap_8cc.html + adb144aa3e87a32199037fdf9d07186d5 + (operations_research::IntervalVar *self, operations_research::IntervalVar *other) + + + SWIGINTERN operations_research::Constraint * + operations_research_IntervalVar_StartsAtEnd + constraint__solver__csharp__wrap_8cc.html + a7467cacbe8bcd5b26e726703073fb194 + (operations_research::IntervalVar *self, operations_research::IntervalVar *other) + + + SWIGINTERN operations_research::Constraint * + operations_research_IntervalVar_StartsAtStart + constraint__solver__csharp__wrap_8cc.html + a8e45f71b6df7a854def8bd9ea75c8da3 + (operations_research::IntervalVar *self, operations_research::IntervalVar *other) + + + SWIGINTERN operations_research::Constraint * + operations_research_IntervalVar_EndsAfterEndWithDelay + constraint__solver__csharp__wrap_8cc.html + afa1af719124d7173433001b83f8ddea7 + (operations_research::IntervalVar *self, operations_research::IntervalVar *other, int64 delay) + + + SWIGINTERN operations_research::Constraint * + operations_research_IntervalVar_EndsAfterStartWithDelay + constraint__solver__csharp__wrap_8cc.html + af679670dddc51dfeb7b307b29ff228f9 + (operations_research::IntervalVar *self, operations_research::IntervalVar *other, int64 delay) + + + SWIGINTERN operations_research::Constraint * + operations_research_IntervalVar_EndsAtEndWithDelay + constraint__solver__csharp__wrap_8cc.html + a5a7a56420fd8c0d8c4a617ebe0ca2e6d + (operations_research::IntervalVar *self, operations_research::IntervalVar *other, int64 delay) + + + SWIGINTERN operations_research::Constraint * + operations_research_IntervalVar_EndsAtStartWithDelay + constraint__solver__csharp__wrap_8cc.html + aa02f7739b50228f1d8161be59674f83c + (operations_research::IntervalVar *self, operations_research::IntervalVar *other, int64 delay) + + + SWIGINTERN operations_research::Constraint * + operations_research_IntervalVar_StartsAfterEndWithDelay + constraint__solver__csharp__wrap_8cc.html + a33165980327c478976c3d2884c3d3a9d + (operations_research::IntervalVar *self, operations_research::IntervalVar *other, int64 delay) + + + SWIGINTERN operations_research::Constraint * + operations_research_IntervalVar_StartsAfterStartWithDelay + constraint__solver__csharp__wrap_8cc.html + a314e419a808d346ba5aa5f357256fcbf + (operations_research::IntervalVar *self, operations_research::IntervalVar *other, int64 delay) + + + SWIGINTERN operations_research::Constraint * + operations_research_IntervalVar_StartsAtEndWithDelay + constraint__solver__csharp__wrap_8cc.html + a3acd2615149272eb38900fff45c4e872 + (operations_research::IntervalVar *self, operations_research::IntervalVar *other, int64 delay) + + + SWIGINTERN operations_research::Constraint * + operations_research_IntervalVar_StartsAtStartWithDelay + constraint__solver__csharp__wrap_8cc.html + a4a9f68997a7f25bc6c545d5bc018c513 + (operations_research::IntervalVar *self, operations_research::IntervalVar *other, int64 delay) + + + SWIGINTERN operations_research::Constraint * + operations_research_IntervalVar_EndsAfter + constraint__solver__csharp__wrap_8cc.html + a3d77d9c6fbfba60af69e1de5e271c4dc + (operations_research::IntervalVar *self, int64 date) + + + SWIGINTERN operations_research::Constraint * + operations_research_IntervalVar_EndsAt + constraint__solver__csharp__wrap_8cc.html + a4726e8132e83da834b59e0984a85352e + (operations_research::IntervalVar *self, int64 date) + + + SWIGINTERN operations_research::Constraint * + operations_research_IntervalVar_EndsBefore + constraint__solver__csharp__wrap_8cc.html + afadb69596c7825066b233ae11ceaf1ff + (operations_research::IntervalVar *self, int64 date) + + + SWIGINTERN operations_research::Constraint * + operations_research_IntervalVar_StartsAfter + constraint__solver__csharp__wrap_8cc.html + af14c4cb2892a52da207e1e98efbd4b41 + (operations_research::IntervalVar *self, int64 date) + + + SWIGINTERN operations_research::Constraint * + operations_research_IntervalVar_StartsAt + constraint__solver__csharp__wrap_8cc.html + a25acf339d3e0f4bf69e8c5e42c17de2b + (operations_research::IntervalVar *self, int64 date) + + + SWIGINTERN operations_research::Constraint * + operations_research_IntervalVar_StartsBefore + constraint__solver__csharp__wrap_8cc.html + a8746d290c2d33e306bbe2b86fd554fa9 + (operations_research::IntervalVar *self, int64 date) + + + SWIGINTERN operations_research::Constraint * + operations_research_IntervalVar_CrossesDate + constraint__solver__csharp__wrap_8cc.html + ae387a36e184f90e451e1484bd4ad310e + (operations_research::IntervalVar *self, int64 date) + + + SWIGINTERN operations_research::Constraint * + operations_research_IntervalVar_AvoidsDate + constraint__solver__csharp__wrap_8cc.html + ae9bc8d996cbad5f127a5385693ef93e1 + (operations_research::IntervalVar *self, int64 date) + + + SWIGINTERN operations_research::IntervalVar * + operations_research_IntervalVar_RelaxedMax + constraint__solver__csharp__wrap_8cc.html + a289901a00b23481e4665b91ed95c9afc + (operations_research::IntervalVar *self) + + + SWIGINTERN operations_research::IntervalVar * + operations_research_IntervalVar_RelaxedMin + constraint__solver__csharp__wrap_8cc.html + acc4399e180452a9d44e6c834fa2c2e92 + (operations_research::IntervalVar *self) + + + SWIGINTERN int + operations_research_IntVarLocalSearchFilter_Index + constraint__solver__csharp__wrap_8cc.html + a0bdad273c53596915b798d7c764fb99c + (operations_research::IntVarLocalSearchFilter *self, operations_research::IntVar *const var) + + + SWIGEXPORT void SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_IntVector_Clear___ + constraint__solver__csharp__wrap_8cc.html + a6c6c5f83ba30ab56eb99acd73f9c21c3 + (void *jarg1) + + + SWIGEXPORT void SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_IntVector_Add___ + constraint__solver__csharp__wrap_8cc.html + ae00622e98222e87c760b8bc422665e4a + (void *jarg1, int jarg2) + + + SWIGEXPORT unsigned long SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_IntVector_size___ + constraint__solver__csharp__wrap_8cc.html + a0c42c460d7a62966809ac7ee51009461 + (void *jarg1) + + + SWIGEXPORT unsigned long SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_IntVector_capacity___ + constraint__solver__csharp__wrap_8cc.html + a4ce027e73b1f12d19e3664f82ac6bdc4 + (void *jarg1) + + + SWIGEXPORT void SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_IntVector_reserve___ + constraint__solver__csharp__wrap_8cc.html + ac60d2429f994f40926c2adb75eb6f68c + (void *jarg1, unsigned long jarg2) + + + SWIGEXPORT void *SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_new_IntVector__SWIG_0___ + constraint__solver__csharp__wrap_8cc.html + ae41ea8a114a4264251524a69cdfcffe5 + () + + + SWIGEXPORT void *SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_new_IntVector__SWIG_1___ + constraint__solver__csharp__wrap_8cc.html + af064fc0a5685c85d96dd89139ac4aba7 + (void *jarg1) + + + SWIGEXPORT void *SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_new_IntVector__SWIG_2___ + constraint__solver__csharp__wrap_8cc.html + a72bd4bfbed30b7de29d667136c4dd5c8 + (int jarg1) + + + SWIGEXPORT int SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_IntVector_getitemcopy___ + constraint__solver__csharp__wrap_8cc.html + a2cb1da5e11b809c0b8abcee011889b6c + (void *jarg1, int jarg2) + + + SWIGEXPORT int SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_IntVector_getitem___ + constraint__solver__csharp__wrap_8cc.html + a4dbc7be7d4e9c56487a01aa5bf7a1b3c + (void *jarg1, int jarg2) + + + SWIGEXPORT void SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_IntVector_setitem___ + constraint__solver__csharp__wrap_8cc.html + a61f3036772a2a0bd20e65510bea8bbe7 + (void *jarg1, int jarg2, int jarg3) + + + SWIGEXPORT void SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_IntVector_AddRange___ + constraint__solver__csharp__wrap_8cc.html + ae4a19c96afb7a85285dc5c981e559652 + (void *jarg1, void *jarg2) + + + SWIGEXPORT void *SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_IntVector_GetRange___ + constraint__solver__csharp__wrap_8cc.html + a2fb08be704511b6cf57d0e9cdad29c7e + (void *jarg1, int jarg2, int jarg3) + + + SWIGEXPORT void SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_IntVector_Insert___ + constraint__solver__csharp__wrap_8cc.html + a6d348ccf769e5ebb259bd70d7ccb0e39 + (void *jarg1, int jarg2, int jarg3) + + + SWIGEXPORT void SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_IntVector_InsertRange___ + constraint__solver__csharp__wrap_8cc.html + af257cde20e5966e1d5a579121d7b2fa1 + (void *jarg1, int jarg2, void *jarg3) + + + SWIGEXPORT void SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_IntVector_RemoveAt___ + constraint__solver__csharp__wrap_8cc.html + abd1c9d32538e4b5589952fb99466565a + (void *jarg1, int jarg2) + + + SWIGEXPORT void SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_IntVector_RemoveRange___ + constraint__solver__csharp__wrap_8cc.html + aa43b95f77d100dcad2f0f8be8f307a15 + (void *jarg1, int jarg2, int jarg3) + + + SWIGEXPORT void *SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_IntVector_Repeat___ + constraint__solver__csharp__wrap_8cc.html + acc97a0f36209ff40098c20321d5d5944 + (int jarg1, int jarg2) + + + SWIGEXPORT void SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_IntVector_Reverse__SWIG_0___ + constraint__solver__csharp__wrap_8cc.html + abf67df212a1b95f6720c9fbb814ce04b + (void *jarg1) + + + SWIGEXPORT void SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_IntVector_Reverse__SWIG_1___ + constraint__solver__csharp__wrap_8cc.html + ad5cd37263bb829de8532a7e26a7ded9a + (void *jarg1, int jarg2, int jarg3) + + + SWIGEXPORT void SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_IntVector_SetRange___ + constraint__solver__csharp__wrap_8cc.html + a89d1001cb02ba6c4573f105990a4be47 + (void *jarg1, int jarg2, void *jarg3) + + + SWIGEXPORT unsigned int SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_IntVector_Contains___ + constraint__solver__csharp__wrap_8cc.html + a88584e207d99d70b523de3a596cb87fc + (void *jarg1, int jarg2) + + + SWIGEXPORT int SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_IntVector_IndexOf___ + constraint__solver__csharp__wrap_8cc.html + a4670c0f61086ea5b0a19c2b9c65a6bfb + (void *jarg1, int jarg2) + + + SWIGEXPORT int SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_IntVector_LastIndexOf___ + constraint__solver__csharp__wrap_8cc.html + ab4bff101aad89ce00f55f0f4a1a8666c + (void *jarg1, int jarg2) + + + SWIGEXPORT unsigned int SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_IntVector_Remove___ + constraint__solver__csharp__wrap_8cc.html + a62342e0afea879f070efe8b6f1c73a09 + (void *jarg1, int jarg2) + + + SWIGEXPORT void SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_delete_IntVector___ + constraint__solver__csharp__wrap_8cc.html + a93ae71af3650a4f96e902deeb0de866c + (void *jarg1) + + + SWIGEXPORT void SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_IntVectorVector_Clear___ + constraint__solver__csharp__wrap_8cc.html + a3da59407b7539c68de8c34013a015165 + (void *jarg1) + + + SWIGEXPORT void SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_IntVectorVector_Add___ + constraint__solver__csharp__wrap_8cc.html + aea96576f8868b2122156ac7991d2acec + (void *jarg1, void *jarg2) + + + SWIGEXPORT unsigned long SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_IntVectorVector_size___ + constraint__solver__csharp__wrap_8cc.html + a078061db5460769bdc105d929da0cfca + (void *jarg1) + + + SWIGEXPORT unsigned long SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_IntVectorVector_capacity___ + constraint__solver__csharp__wrap_8cc.html + a2b53dcbcf2c1d787317b0c4b9ad86144 + (void *jarg1) + + + SWIGEXPORT void SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_IntVectorVector_reserve___ + constraint__solver__csharp__wrap_8cc.html + a8d8bee825b884063751af7add7474a99 + (void *jarg1, unsigned long jarg2) + + + SWIGEXPORT void *SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_new_IntVectorVector__SWIG_0___ + constraint__solver__csharp__wrap_8cc.html + af7bf5209fae318fbdf690bef52455da6 + () + + + SWIGEXPORT void *SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_new_IntVectorVector__SWIG_1___ + constraint__solver__csharp__wrap_8cc.html + a0bdb674b51b7063d2158bfd4b4307939 + (void *jarg1) + + + SWIGEXPORT void *SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_new_IntVectorVector__SWIG_2___ + constraint__solver__csharp__wrap_8cc.html + a487ffb7763ce1fedb00f3c53b1b3114a + (int jarg1) + + + SWIGEXPORT void *SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_IntVectorVector_getitemcopy___ + constraint__solver__csharp__wrap_8cc.html + ab49d450789fb2c96b230e60a47a746b4 + (void *jarg1, int jarg2) + + + SWIGEXPORT void *SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_IntVectorVector_getitem___ + constraint__solver__csharp__wrap_8cc.html + ad2d5dee3dd95c05dd5561ff7b52c3ec5 + (void *jarg1, int jarg2) + + + SWIGEXPORT void SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_IntVectorVector_setitem___ + constraint__solver__csharp__wrap_8cc.html + a60a1affede8ba72e847c4baa8ef1c5e4 + (void *jarg1, int jarg2, void *jarg3) + + + SWIGEXPORT void SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_IntVectorVector_AddRange___ + constraint__solver__csharp__wrap_8cc.html + aaa46633476e0ba3e723268209afe7414 + (void *jarg1, void *jarg2) + + + SWIGEXPORT void *SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_IntVectorVector_GetRange___ + constraint__solver__csharp__wrap_8cc.html + af3bfb67c99cf23b3a29cd1b55105a3ea + (void *jarg1, int jarg2, int jarg3) + + + SWIGEXPORT void SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_IntVectorVector_Insert___ + constraint__solver__csharp__wrap_8cc.html + a34231c0982bad1a0aa2e41f9186ae0fe + (void *jarg1, int jarg2, void *jarg3) + + + SWIGEXPORT void SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_IntVectorVector_InsertRange___ + constraint__solver__csharp__wrap_8cc.html + acddd630fa88bf7a9590e3d8b70d7d041 + (void *jarg1, int jarg2, void *jarg3) + + + SWIGEXPORT void SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_IntVectorVector_RemoveAt___ + constraint__solver__csharp__wrap_8cc.html + a37325956c905d827ece2513a9791e9fe + (void *jarg1, int jarg2) + + + SWIGEXPORT void SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_IntVectorVector_RemoveRange___ + constraint__solver__csharp__wrap_8cc.html + a42503bbc5bfe020c615f710a07f0db66 + (void *jarg1, int jarg2, int jarg3) + + + SWIGEXPORT void *SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_IntVectorVector_Repeat___ + constraint__solver__csharp__wrap_8cc.html + a5ac0dfafe13cc716816277867495023e + (void *jarg1, int jarg2) + + + SWIGEXPORT void SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_IntVectorVector_Reverse__SWIG_0___ + constraint__solver__csharp__wrap_8cc.html + ae0fd3c1c72b5172ca0fb04cad50061c6 + (void *jarg1) + + + SWIGEXPORT void SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_IntVectorVector_Reverse__SWIG_1___ + constraint__solver__csharp__wrap_8cc.html + a86406dcb4a210b7547caf0c5c4b26a66 + (void *jarg1, int jarg2, int jarg3) + + + SWIGEXPORT void SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_IntVectorVector_SetRange___ + constraint__solver__csharp__wrap_8cc.html + ab658abc5e9a04324f703a4000348e2ef + (void *jarg1, int jarg2, void *jarg3) + + + SWIGEXPORT void SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_delete_IntVectorVector___ + constraint__solver__csharp__wrap_8cc.html + a5db0f91d4617abb44fe068dbaff1311e + (void *jarg1) + + + SWIGEXPORT void SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_Int64Vector_Clear___ + constraint__solver__csharp__wrap_8cc.html + afa4b0ad7a4402e13d3ee80ec2aea9d96 + (void *jarg1) + + + SWIGEXPORT void SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_Int64Vector_Add___ + constraint__solver__csharp__wrap_8cc.html + a596798480f66f138d825ae2c1f224c8f + (void *jarg1, long long jarg2) + + + SWIGEXPORT unsigned long SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_Int64Vector_size___ + constraint__solver__csharp__wrap_8cc.html + a2f4439998b079faaa4b83690f78ae32c + (void *jarg1) + + + SWIGEXPORT unsigned long SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_Int64Vector_capacity___ + constraint__solver__csharp__wrap_8cc.html + a3ac2da0b084ee883206a1e6bbde65bca + (void *jarg1) + + + SWIGEXPORT void SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_Int64Vector_reserve___ + constraint__solver__csharp__wrap_8cc.html + afff6c16f29b9ca0a9ff5253cd2df1c51 + (void *jarg1, unsigned long jarg2) + + + SWIGEXPORT void *SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_new_Int64Vector__SWIG_0___ + constraint__solver__csharp__wrap_8cc.html + a1c32ffd254789ef0e0941bfb6c22b45c + () + + + SWIGEXPORT void *SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_new_Int64Vector__SWIG_1___ + constraint__solver__csharp__wrap_8cc.html + a74ea89978457ee87281c2322fd379e89 + (void *jarg1) + + + SWIGEXPORT void *SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_new_Int64Vector__SWIG_2___ + constraint__solver__csharp__wrap_8cc.html + a12ae5519281e3dcb7e97e859467d8f09 + (int jarg1) + + + SWIGEXPORT long long SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_Int64Vector_getitemcopy___ + constraint__solver__csharp__wrap_8cc.html + a484aad46dc1ace620de05bfc6e507124 + (void *jarg1, int jarg2) + + + SWIGEXPORT long long SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_Int64Vector_getitem___ + constraint__solver__csharp__wrap_8cc.html + ac3c07a04764723ae25ad8429e126559b + (void *jarg1, int jarg2) + + + SWIGEXPORT void SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_Int64Vector_setitem___ + constraint__solver__csharp__wrap_8cc.html + a23826216647d12f8456c396a77ee39e5 + (void *jarg1, int jarg2, long long jarg3) + + + SWIGEXPORT void SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_Int64Vector_AddRange___ + constraint__solver__csharp__wrap_8cc.html + a33de4bbfd0a259769d68e28a52504a09 + (void *jarg1, void *jarg2) + + + SWIGEXPORT void *SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_Int64Vector_GetRange___ + constraint__solver__csharp__wrap_8cc.html + a4b036cb837461d5a1278dece2e34edbe + (void *jarg1, int jarg2, int jarg3) + + + SWIGEXPORT void SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_Int64Vector_Insert___ + constraint__solver__csharp__wrap_8cc.html + af7092d3be5ec6b239f773fea114f4f23 + (void *jarg1, int jarg2, long long jarg3) + + + SWIGEXPORT void SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_Int64Vector_InsertRange___ + constraint__solver__csharp__wrap_8cc.html + ae9c9a5a780048b4b939b35965d0ffaaf + (void *jarg1, int jarg2, void *jarg3) + + + SWIGEXPORT void SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_Int64Vector_RemoveAt___ + constraint__solver__csharp__wrap_8cc.html + a1d0f4982b0fe13308c5af573071cc760 + (void *jarg1, int jarg2) + + + SWIGEXPORT void SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_Int64Vector_RemoveRange___ + constraint__solver__csharp__wrap_8cc.html + a22699674fdf007da845f29ebf23dbd0d + (void *jarg1, int jarg2, int jarg3) + + + SWIGEXPORT void *SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_Int64Vector_Repeat___ + constraint__solver__csharp__wrap_8cc.html + a28488e2ed0a1f5c637ad3dd28a79be48 + (long long jarg1, int jarg2) + + + SWIGEXPORT void SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_Int64Vector_Reverse__SWIG_0___ + constraint__solver__csharp__wrap_8cc.html + a10d42ad0d11d74ee2dd695695ceea0e3 + (void *jarg1) + + + SWIGEXPORT void SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_Int64Vector_Reverse__SWIG_1___ + constraint__solver__csharp__wrap_8cc.html + ae1333a53293edf4f2d65dafc562af479 + (void *jarg1, int jarg2, int jarg3) + + + SWIGEXPORT void SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_Int64Vector_SetRange___ + constraint__solver__csharp__wrap_8cc.html + a41a787c2534f1929f279e376ffb05b06 + (void *jarg1, int jarg2, void *jarg3) + + + SWIGEXPORT unsigned int SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_Int64Vector_Contains___ + constraint__solver__csharp__wrap_8cc.html + a2e3b9953df620648d43f327cc7dafd3c + (void *jarg1, long long jarg2) + + + SWIGEXPORT int SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_Int64Vector_IndexOf___ + constraint__solver__csharp__wrap_8cc.html + a97be930f6e5a5ff9d920e3106ac0c669 + (void *jarg1, long long jarg2) + + + SWIGEXPORT int SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_Int64Vector_LastIndexOf___ + constraint__solver__csharp__wrap_8cc.html + a2f4428bfac5b68c02a987be0ba1a08db + (void *jarg1, long long jarg2) + + + SWIGEXPORT unsigned int SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_Int64Vector_Remove___ + constraint__solver__csharp__wrap_8cc.html + ab9e8d5faaa5cdc48d33e39e7df5de6f7 + (void *jarg1, long long jarg2) + + + SWIGEXPORT void SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_delete_Int64Vector___ + constraint__solver__csharp__wrap_8cc.html + a3a5bf0716b762e2561d948f03e35f59f + (void *jarg1) + + + SWIGEXPORT void SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_Int64VectorVector_Clear___ + constraint__solver__csharp__wrap_8cc.html + afb74741b1727be75eb7c3bcc0dc182cc + (void *jarg1) + + + SWIGEXPORT void SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_Int64VectorVector_Add___ + constraint__solver__csharp__wrap_8cc.html + aba6d0d6c736ebc49cfe45d8b5a42584a + (void *jarg1, void *jarg2) + + + SWIGEXPORT unsigned long SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_Int64VectorVector_size___ + constraint__solver__csharp__wrap_8cc.html + a7d10eb9448745eae5d82f8dff30e36a6 + (void *jarg1) + + + SWIGEXPORT unsigned long SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_Int64VectorVector_capacity___ + constraint__solver__csharp__wrap_8cc.html + a25d5665efba44977575ef2d926cb4f9e + (void *jarg1) + + + SWIGEXPORT void SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_Int64VectorVector_reserve___ + constraint__solver__csharp__wrap_8cc.html + a17686baf44ae74086d2d4f18eb8e4164 + (void *jarg1, unsigned long jarg2) + + + SWIGEXPORT void *SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_new_Int64VectorVector__SWIG_0___ + constraint__solver__csharp__wrap_8cc.html + a63e9d8455ae322b10bd387d2070fbd04 + () + + + SWIGEXPORT void *SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_new_Int64VectorVector__SWIG_1___ + constraint__solver__csharp__wrap_8cc.html + a64f9cfb0c639183c9807f8d34f3c07fe + (void *jarg1) + + + SWIGEXPORT void *SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_new_Int64VectorVector__SWIG_2___ + constraint__solver__csharp__wrap_8cc.html + a81d18b88716c2165a2584cb9fac1bec4 + (int jarg1) + + + SWIGEXPORT void *SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_Int64VectorVector_getitemcopy___ + constraint__solver__csharp__wrap_8cc.html + adf0dec656973b7515f20fd5c54eb910d + (void *jarg1, int jarg2) + + + SWIGEXPORT void *SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_Int64VectorVector_getitem___ + constraint__solver__csharp__wrap_8cc.html + a36131f5bff9554492ac56d9f378272d3 + (void *jarg1, int jarg2) + + + SWIGEXPORT void SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_Int64VectorVector_setitem___ + constraint__solver__csharp__wrap_8cc.html + a8c6281acbedf90f9faed4a963fb254c4 + (void *jarg1, int jarg2, void *jarg3) + + + SWIGEXPORT void SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_Int64VectorVector_AddRange___ + constraint__solver__csharp__wrap_8cc.html + a68652b6d88d9b8bc9d2cd14856accb7c + (void *jarg1, void *jarg2) + + + SWIGEXPORT void *SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_Int64VectorVector_GetRange___ + constraint__solver__csharp__wrap_8cc.html + ac351d8b8eecc17ea50c9c1064e3a04ce + (void *jarg1, int jarg2, int jarg3) + + + SWIGEXPORT void SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_Int64VectorVector_Insert___ + constraint__solver__csharp__wrap_8cc.html + a0d50989dba071b60d7a6891984ab7ffa + (void *jarg1, int jarg2, void *jarg3) + + + SWIGEXPORT void SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_Int64VectorVector_InsertRange___ + constraint__solver__csharp__wrap_8cc.html + aaffc95eeb8af3ef731e2720323201555 + (void *jarg1, int jarg2, void *jarg3) + + + SWIGEXPORT void SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_Int64VectorVector_RemoveAt___ + constraint__solver__csharp__wrap_8cc.html + a97274f3b41ae9d1b2ecf942022c2af49 + (void *jarg1, int jarg2) + + + SWIGEXPORT void SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_Int64VectorVector_RemoveRange___ + constraint__solver__csharp__wrap_8cc.html + a8e4bdde1e952fe0562ec0fa677feac86 + (void *jarg1, int jarg2, int jarg3) + + + SWIGEXPORT void *SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_Int64VectorVector_Repeat___ + constraint__solver__csharp__wrap_8cc.html + a05d0499fc2397cbcb8ac4f0698cccd6c + (void *jarg1, int jarg2) + + + SWIGEXPORT void SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_Int64VectorVector_Reverse__SWIG_0___ + constraint__solver__csharp__wrap_8cc.html + a616d1be3ef968ee974fd64e0ebafbd5c + (void *jarg1) + + + SWIGEXPORT void SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_Int64VectorVector_Reverse__SWIG_1___ + constraint__solver__csharp__wrap_8cc.html + ac8b6e2530e6b27eb1c9214ea00cf4b73 + (void *jarg1, int jarg2, int jarg3) + + + SWIGEXPORT void SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_Int64VectorVector_SetRange___ + constraint__solver__csharp__wrap_8cc.html + aef2d775e5723af30013e176c48accb5b + (void *jarg1, int jarg2, void *jarg3) + + + SWIGEXPORT void SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_delete_Int64VectorVector___ + constraint__solver__csharp__wrap_8cc.html + a5c0e33f15e0465e230c2ada7fd27a0fa + (void *jarg1) + + + SWIGEXPORT void *SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_new_IntTupleSet__SWIG_0___ + constraint__solver__csharp__wrap_8cc.html + a897f008ca77e0ce7ced4f903fb3e482a + (int jarg1) + + + SWIGEXPORT void *SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_new_IntTupleSet__SWIG_1___ + constraint__solver__csharp__wrap_8cc.html + abb942c93107a684c4d4d11b60f3cc7f6 + (void *jarg1) + + + SWIGEXPORT void SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_delete_IntTupleSet___ + constraint__solver__csharp__wrap_8cc.html + aecdec31cec860c02fd60f25509884d37 + (void *jarg1) + + + SWIGEXPORT void SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_IntTupleSet_Clear___ + constraint__solver__csharp__wrap_8cc.html + a8b5dea371a3c0b9a6a8343b50eee3a36 + (void *jarg1) + + + SWIGEXPORT int SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_IntTupleSet_Insert__SWIG_0___ + constraint__solver__csharp__wrap_8cc.html + a9f2986a6565cf0de87fb4331d504518d + (void *jarg1, int length2, int *jarg2) + + + SWIGEXPORT int SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_IntTupleSet_Insert__SWIG_1___ + constraint__solver__csharp__wrap_8cc.html + a3a2ee560b06b02f65d9199e20b7b2242 + (void *jarg1, int length2, int64 *jarg2) + + + SWIGEXPORT int SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_IntTupleSet_Insert2___ + constraint__solver__csharp__wrap_8cc.html + ad9df1428286203c1a762a059409fe3ac + (void *jarg1, long long jarg2, long long jarg3) + + + SWIGEXPORT int SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_IntTupleSet_Insert3___ + constraint__solver__csharp__wrap_8cc.html + a8e90cd3d1560c74c1922300c396ec5d7 + (void *jarg1, long long jarg2, long long jarg3, long long jarg4) + + + SWIGEXPORT int SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_IntTupleSet_Insert4___ + constraint__solver__csharp__wrap_8cc.html + a6f65f035372ea14460e1d28a50016393 + (void *jarg1, long long jarg2, long long jarg3, long long jarg4, long long jarg5) + + + SWIGEXPORT void SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_IntTupleSet_InsertAll__SWIG_0___ + constraint__solver__csharp__wrap_8cc.html + ac5417a3f606b748151eb280954c27164 + (void *jarg1, int len2_1, int len2_2[], int64 *jarg2) + + + SWIGEXPORT void SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_IntTupleSet_InsertAll__SWIG_1___ + constraint__solver__csharp__wrap_8cc.html + af54c843f41e87117ce5c339074336f16 + (void *jarg1, int len2_1, int len2_2[], int *jarg2) + + + SWIGEXPORT unsigned int SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_IntTupleSet_Contains__SWIG_0___ + constraint__solver__csharp__wrap_8cc.html + a69ae424fed2ac457cd01810ba77ae3d7 + (void *jarg1, int length2, int *jarg2) + + + SWIGEXPORT unsigned int SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_IntTupleSet_Contains__SWIG_1___ + constraint__solver__csharp__wrap_8cc.html + af4d52357a1c4b0367f50dc9824ee8579 + (void *jarg1, int length2, int64 *jarg2) + + + SWIGEXPORT int SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_IntTupleSet_NumTuples___ + constraint__solver__csharp__wrap_8cc.html + a138501b40378165f1a50a7bd763e4394 + (void *jarg1) + + + SWIGEXPORT long long SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_IntTupleSet_Value___ + constraint__solver__csharp__wrap_8cc.html + ac73a46fc68e918c700c9e91418f5e7c0 + (void *jarg1, int jarg2, int jarg3) + + + SWIGEXPORT int SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_IntTupleSet_Arity___ + constraint__solver__csharp__wrap_8cc.html + aacecaf87af73b64d13a494bdec8283bc + (void *jarg1) + + + SWIGEXPORT int SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_IntTupleSet_NumDifferentValuesInColumn___ + constraint__solver__csharp__wrap_8cc.html + a20a4e1fefa2dce2e7b7bba70b6e46c4f + (void *jarg1, int jarg2) + + + SWIGEXPORT void *SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_IntTupleSet_SortedByColumn___ + constraint__solver__csharp__wrap_8cc.html + a8e917d3ec514ff5b53cdefcc532f9100 + (void *jarg1, int jarg2) + + + SWIGEXPORT void *SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_IntTupleSet_SortedLexicographically___ + constraint__solver__csharp__wrap_8cc.html + a6fa6d52ca9ff2959d43a7e395b894f3d + (void *jarg1) + + + SWIGEXPORT void *SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_new_LocalSearchPhaseParameters___ + constraint__solver__csharp__wrap_8cc.html + a7a036021cee87ec2d9afa0422e881ff4 + () + + + SWIGEXPORT void SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_delete_LocalSearchPhaseParameters___ + constraint__solver__csharp__wrap_8cc.html + a6b45b6ff21a9b3112be7239edb876100 + (void *jarg1) + + + SWIGEXPORT void SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_IntVarVector_Clear___ + constraint__solver__csharp__wrap_8cc.html + a56f69e08f4809d0a34108bc8f9834396 + (void *jarg1) + + + SWIGEXPORT void SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_IntVarVector_Add___ + constraint__solver__csharp__wrap_8cc.html + a5a4d40555d0df8ce7a28c110a3ed3e06 + (void *jarg1, void *jarg2) + + + SWIGEXPORT unsigned long SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_IntVarVector_size___ + constraint__solver__csharp__wrap_8cc.html + ae336aa4043c9da0766fa5ff3090060f8 + (void *jarg1) + + + SWIGEXPORT unsigned long SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_IntVarVector_capacity___ + constraint__solver__csharp__wrap_8cc.html + a781ad9aefcfb98a8d97cc1b635f9ed4b + (void *jarg1) + + + SWIGEXPORT void SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_IntVarVector_reserve___ + constraint__solver__csharp__wrap_8cc.html + adf9939a7eb281b9db90a647334f09cac + (void *jarg1, unsigned long jarg2) + + + SWIGEXPORT void *SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_new_IntVarVector__SWIG_0___ + constraint__solver__csharp__wrap_8cc.html + ac39ad3c2d9dcd937b946624c51a4104e + () + + + SWIGEXPORT void *SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_new_IntVarVector__SWIG_1___ + constraint__solver__csharp__wrap_8cc.html + a8f925b2a0ae699234723ec839da09ab8 + (void *jarg1) + + + SWIGEXPORT void *SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_new_IntVarVector__SWIG_2___ + constraint__solver__csharp__wrap_8cc.html + a4a0405dad2d96d688f8857ef4a0ecaf1 + (int jarg1) + + + SWIGEXPORT void *SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_IntVarVector_getitemcopy___ + constraint__solver__csharp__wrap_8cc.html + abc200977ffc2767e0dfcc8077dcb5998 + (void *jarg1, int jarg2) + + + SWIGEXPORT void *SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_IntVarVector_getitem___ + constraint__solver__csharp__wrap_8cc.html + a51771a57fed47c9bc68831b7ccf0d9ce + (void *jarg1, int jarg2) + + + SWIGEXPORT void SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_IntVarVector_setitem___ + constraint__solver__csharp__wrap_8cc.html + a8a284f2b0908f3750ed4a221b78b2930 + (void *jarg1, int jarg2, void *jarg3) + + + SWIGEXPORT void SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_IntVarVector_AddRange___ + constraint__solver__csharp__wrap_8cc.html + a70d8cd58246f35705b65e9f0e72085a1 + (void *jarg1, void *jarg2) + + + SWIGEXPORT void *SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_IntVarVector_GetRange___ + constraint__solver__csharp__wrap_8cc.html + a01a3157a19d82721cb6a95f5f5c185bb + (void *jarg1, int jarg2, int jarg3) + + + SWIGEXPORT void SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_IntVarVector_Insert___ + constraint__solver__csharp__wrap_8cc.html + aa88ffd9858efab51985e9780e9547135 + (void *jarg1, int jarg2, void *jarg3) + + + SWIGEXPORT void SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_IntVarVector_InsertRange___ + constraint__solver__csharp__wrap_8cc.html + aa08c0b3a15717eed7f5b09ee044345c3 + (void *jarg1, int jarg2, void *jarg3) + + + SWIGEXPORT void SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_IntVarVector_RemoveAt___ + constraint__solver__csharp__wrap_8cc.html + af6e26033690ffb78f256df16a3e6d09c + (void *jarg1, int jarg2) + + + SWIGEXPORT void SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_IntVarVector_RemoveRange___ + constraint__solver__csharp__wrap_8cc.html + a24da4cd9eb7157e70b18a006ed2082bf + (void *jarg1, int jarg2, int jarg3) + + + SWIGEXPORT void *SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_IntVarVector_Repeat___ + constraint__solver__csharp__wrap_8cc.html + aac860fd0ae95207151231bf7ecb0bb2a + (void *jarg1, int jarg2) + + + SWIGEXPORT void SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_IntVarVector_Reverse__SWIG_0___ + constraint__solver__csharp__wrap_8cc.html + a910801c70ed4c4dd3cd40fa6dff22bf1 + (void *jarg1) + + + SWIGEXPORT void SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_IntVarVector_Reverse__SWIG_1___ + constraint__solver__csharp__wrap_8cc.html + a1ee4f106dd8b7c693d14f3f84e4049fe + (void *jarg1, int jarg2, int jarg3) + + + SWIGEXPORT void SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_IntVarVector_SetRange___ + constraint__solver__csharp__wrap_8cc.html + a4d424163b91f0792e3a247a734d48837 + (void *jarg1, int jarg2, void *jarg3) + + + SWIGEXPORT unsigned int SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_IntVarVector_Contains___ + constraint__solver__csharp__wrap_8cc.html + aad42a4a68e67c3a43ddb4042c450d35a + (void *jarg1, void *jarg2) + + + SWIGEXPORT int SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_IntVarVector_IndexOf___ + constraint__solver__csharp__wrap_8cc.html + af612c5d9918cf48451f35797f7adde8f + (void *jarg1, void *jarg2) + + + SWIGEXPORT int SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_IntVarVector_LastIndexOf___ + constraint__solver__csharp__wrap_8cc.html + aa1471d289915eed9ba3149ad52f5b7b9 + (void *jarg1, void *jarg2) + + + SWIGEXPORT unsigned int SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_IntVarVector_Remove___ + constraint__solver__csharp__wrap_8cc.html + a779351a53acf769eadba4dfd171dc916 + (void *jarg1, void *jarg2) + + + SWIGEXPORT void SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_delete_IntVarVector___ + constraint__solver__csharp__wrap_8cc.html + a2df200b2e6cdd9e3f02110814cb03f69 + (void *jarg1) + + + SWIGEXPORT void SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_SearchMonitorVector_Clear___ + constraint__solver__csharp__wrap_8cc.html + a38864935f60c7047e80aa6b25f152ba9 + (void *jarg1) + + + SWIGEXPORT void SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_SearchMonitorVector_Add___ + constraint__solver__csharp__wrap_8cc.html + a1c5a6d4fe04eb0b8191c0f033d473ebf + (void *jarg1, void *jarg2) + + + SWIGEXPORT unsigned long SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_SearchMonitorVector_size___ + constraint__solver__csharp__wrap_8cc.html + aff8922ee54364d6c2afe2a277dd287d3 + (void *jarg1) + + + SWIGEXPORT unsigned long SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_SearchMonitorVector_capacity___ + constraint__solver__csharp__wrap_8cc.html + a1a09d6cacf9c584f32f0ea80482c585d + (void *jarg1) + + + SWIGEXPORT void SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_SearchMonitorVector_reserve___ + constraint__solver__csharp__wrap_8cc.html + adad6d1066b5459efb97d6800c1222453 + (void *jarg1, unsigned long jarg2) + + + SWIGEXPORT void *SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_new_SearchMonitorVector__SWIG_0___ + constraint__solver__csharp__wrap_8cc.html + a1140db1cb86b1621eabcf93d468646d8 + () + + + SWIGEXPORT void *SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_new_SearchMonitorVector__SWIG_1___ + constraint__solver__csharp__wrap_8cc.html + adff67a666f59f8a2f300020ec7715fc4 + (void *jarg1) + + + SWIGEXPORT void *SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_new_SearchMonitorVector__SWIG_2___ + constraint__solver__csharp__wrap_8cc.html + ad816c589b2fc05e208fccd5f58084125 + (int jarg1) + + + SWIGEXPORT void *SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_SearchMonitorVector_getitemcopy___ + constraint__solver__csharp__wrap_8cc.html + afc9186fa7972925cf127af20cf80fdd8 + (void *jarg1, int jarg2) + + + SWIGEXPORT void *SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_SearchMonitorVector_getitem___ + constraint__solver__csharp__wrap_8cc.html + a0027326b62ae87362b5cc5ca505942a7 + (void *jarg1, int jarg2) + + + SWIGEXPORT void SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_SearchMonitorVector_setitem___ + constraint__solver__csharp__wrap_8cc.html + ae4d6983197a79f0663aee4f54564143c + (void *jarg1, int jarg2, void *jarg3) + + + SWIGEXPORT void SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_SearchMonitorVector_AddRange___ + constraint__solver__csharp__wrap_8cc.html + a6a50a50adec7614a4f3ea7466d58544a + (void *jarg1, void *jarg2) + + + SWIGEXPORT void *SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_SearchMonitorVector_GetRange___ + constraint__solver__csharp__wrap_8cc.html + ae294eeb2a00893958a1efbe2da024dc9 + (void *jarg1, int jarg2, int jarg3) + + + SWIGEXPORT void SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_SearchMonitorVector_Insert___ + constraint__solver__csharp__wrap_8cc.html + a01065a5a71c277e77e9da0974f41e318 + (void *jarg1, int jarg2, void *jarg3) + + + SWIGEXPORT void SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_SearchMonitorVector_InsertRange___ + constraint__solver__csharp__wrap_8cc.html + a7bb9eeb6546277e7c9352ed7f14a37af + (void *jarg1, int jarg2, void *jarg3) + + + SWIGEXPORT void SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_SearchMonitorVector_RemoveAt___ + constraint__solver__csharp__wrap_8cc.html + acf7402aefbda452921f9ee1181387eb3 + (void *jarg1, int jarg2) + + + SWIGEXPORT void SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_SearchMonitorVector_RemoveRange___ + constraint__solver__csharp__wrap_8cc.html + a09bffbaaae84e6a241fac5349e28b824 + (void *jarg1, int jarg2, int jarg3) + + + SWIGEXPORT void *SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_SearchMonitorVector_Repeat___ + constraint__solver__csharp__wrap_8cc.html + a57c3c5228999a59833c133edb0277365 + (void *jarg1, int jarg2) + + + SWIGEXPORT void SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_SearchMonitorVector_Reverse__SWIG_0___ + constraint__solver__csharp__wrap_8cc.html + a05ece45780be74373e448f9e79d806cb + (void *jarg1) + + + SWIGEXPORT void SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_SearchMonitorVector_Reverse__SWIG_1___ + constraint__solver__csharp__wrap_8cc.html + a52dd69750dbb34898ce37217736ea4f9 + (void *jarg1, int jarg2, int jarg3) + + + SWIGEXPORT void SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_SearchMonitorVector_SetRange___ + constraint__solver__csharp__wrap_8cc.html + ad3d0494a1c0485a5763564163cc01c1a + (void *jarg1, int jarg2, void *jarg3) + + + SWIGEXPORT unsigned int SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_SearchMonitorVector_Contains___ + constraint__solver__csharp__wrap_8cc.html + afac863dacf41d6a719a6a4f4806bab6f + (void *jarg1, void *jarg2) + + + SWIGEXPORT int SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_SearchMonitorVector_IndexOf___ + constraint__solver__csharp__wrap_8cc.html + a3009014d248e0143116105ac3a02aa62 + (void *jarg1, void *jarg2) + + + SWIGEXPORT int SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_SearchMonitorVector_LastIndexOf___ + constraint__solver__csharp__wrap_8cc.html + aa8a40007088a1988d3131986da9db670 + (void *jarg1, void *jarg2) + + + SWIGEXPORT unsigned int SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_SearchMonitorVector_Remove___ + constraint__solver__csharp__wrap_8cc.html + aefd1fd41565469f440645107dd6b99f1 + (void *jarg1, void *jarg2) + + + SWIGEXPORT void SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_delete_SearchMonitorVector___ + constraint__solver__csharp__wrap_8cc.html + aa29d0e7f4abf991b183adca292f60096 + (void *jarg1) + + + SWIGEXPORT void SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_DecisionBuilderVector_Clear___ + constraint__solver__csharp__wrap_8cc.html + a077c8f6cb8beaa9f2ae8c5cc0398f484 + (void *jarg1) + + + SWIGEXPORT void SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_DecisionBuilderVector_Add___ + constraint__solver__csharp__wrap_8cc.html + aad8a6ee492c6e03db9a1749b04a8e09e + (void *jarg1, void *jarg2) + + + SWIGEXPORT unsigned long SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_DecisionBuilderVector_size___ + constraint__solver__csharp__wrap_8cc.html + a5b5e9737dc6667dc65e28b9116ec4ccc + (void *jarg1) + + + SWIGEXPORT unsigned long SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_DecisionBuilderVector_capacity___ + constraint__solver__csharp__wrap_8cc.html + ac2a2a4639c28c9d1135a30211f5a3946 + (void *jarg1) + + + SWIGEXPORT void SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_DecisionBuilderVector_reserve___ + constraint__solver__csharp__wrap_8cc.html + a2f27fff39108a1d1e7993f094caa90c7 + (void *jarg1, unsigned long jarg2) + + + SWIGEXPORT void *SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_new_DecisionBuilderVector__SWIG_0___ + constraint__solver__csharp__wrap_8cc.html + a9b54a0cfe36576e7c5397dcf9f7585ea + () + + + SWIGEXPORT void *SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_new_DecisionBuilderVector__SWIG_1___ + constraint__solver__csharp__wrap_8cc.html + a49c26cfb1038d8689065fea417f702a8 + (void *jarg1) + + + SWIGEXPORT void *SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_new_DecisionBuilderVector__SWIG_2___ + constraint__solver__csharp__wrap_8cc.html + a65eb1dc59b2c2fc422e8045ed9fa02db + (int jarg1) + + + SWIGEXPORT void *SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_DecisionBuilderVector_getitemcopy___ + constraint__solver__csharp__wrap_8cc.html + ada1ddc0674db39c285571a0dd4686c83 + (void *jarg1, int jarg2) + + + SWIGEXPORT void *SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_DecisionBuilderVector_getitem___ + constraint__solver__csharp__wrap_8cc.html + aaa8cd1ef982a41a46021c5cfcd9f4277 + (void *jarg1, int jarg2) + + + SWIGEXPORT void SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_DecisionBuilderVector_setitem___ + constraint__solver__csharp__wrap_8cc.html + a0118b2a0313469472bed082bb2bb01f1 + (void *jarg1, int jarg2, void *jarg3) + + + SWIGEXPORT void SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_DecisionBuilderVector_AddRange___ + constraint__solver__csharp__wrap_8cc.html + ac3666094f32f4c27b9e5f60f39b3b4a4 + (void *jarg1, void *jarg2) + + + SWIGEXPORT void *SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_DecisionBuilderVector_GetRange___ + constraint__solver__csharp__wrap_8cc.html + aba589626104acf5f89e196f26f5df0d5 + (void *jarg1, int jarg2, int jarg3) + + + SWIGEXPORT void SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_DecisionBuilderVector_Insert___ + constraint__solver__csharp__wrap_8cc.html + abfc82c25421cb929f62fc59a2961db8c + (void *jarg1, int jarg2, void *jarg3) + + + SWIGEXPORT void SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_DecisionBuilderVector_InsertRange___ + constraint__solver__csharp__wrap_8cc.html + af955a380c3a0344712c70840afac16e3 + (void *jarg1, int jarg2, void *jarg3) + + + SWIGEXPORT void SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_DecisionBuilderVector_RemoveAt___ + constraint__solver__csharp__wrap_8cc.html + aacd1eb694b136c8935f3bdaad34b289c + (void *jarg1, int jarg2) + + + SWIGEXPORT void SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_DecisionBuilderVector_RemoveRange___ + constraint__solver__csharp__wrap_8cc.html + a0d69c820889ebea09bc1f8c8faaf77d8 + (void *jarg1, int jarg2, int jarg3) + + + SWIGEXPORT void *SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_DecisionBuilderVector_Repeat___ + constraint__solver__csharp__wrap_8cc.html + a90c37adc6a5e133acfdbc2f43fa27989 + (void *jarg1, int jarg2) + + + SWIGEXPORT void SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_DecisionBuilderVector_Reverse__SWIG_0___ + constraint__solver__csharp__wrap_8cc.html + abf315d4374e3db460db727aad6b84d52 + (void *jarg1) + + + SWIGEXPORT void SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_DecisionBuilderVector_Reverse__SWIG_1___ + constraint__solver__csharp__wrap_8cc.html + a50b3f39d04fdd2e6468ac0c091f58e97 + (void *jarg1, int jarg2, int jarg3) + + + SWIGEXPORT void SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_DecisionBuilderVector_SetRange___ + constraint__solver__csharp__wrap_8cc.html + a98e26f55ae9941bf29a92045128c62a1 + (void *jarg1, int jarg2, void *jarg3) + + + SWIGEXPORT unsigned int SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_DecisionBuilderVector_Contains___ + constraint__solver__csharp__wrap_8cc.html + ae78452d0f22e9cd5d7ac76420efc5a3e + (void *jarg1, void *jarg2) + + + SWIGEXPORT int SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_DecisionBuilderVector_IndexOf___ + constraint__solver__csharp__wrap_8cc.html + aaaeaed9f6b7898523e81b4bad2028959 + (void *jarg1, void *jarg2) + + + SWIGEXPORT int SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_DecisionBuilderVector_LastIndexOf___ + constraint__solver__csharp__wrap_8cc.html + af9a0baae2f8a89df318128738a8afe4d + (void *jarg1, void *jarg2) + + + SWIGEXPORT unsigned int SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_DecisionBuilderVector_Remove___ + constraint__solver__csharp__wrap_8cc.html + a5501cdfb766b3dfbc0bc5a20f88b3525 + (void *jarg1, void *jarg2) + + + SWIGEXPORT void SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_delete_DecisionBuilderVector___ + constraint__solver__csharp__wrap_8cc.html + a008fbd0abcff47605d70f6d86447215e + (void *jarg1) + + + SWIGEXPORT void SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_IntervalVarVector_Clear___ + constraint__solver__csharp__wrap_8cc.html + a47e74aa54ede68360161bc12e00e9bcf + (void *jarg1) + + + SWIGEXPORT void SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_IntervalVarVector_Add___ + constraint__solver__csharp__wrap_8cc.html + a4035ebc365295d3c764e9f17ab633c64 + (void *jarg1, void *jarg2) + + + SWIGEXPORT unsigned long SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_IntervalVarVector_size___ + constraint__solver__csharp__wrap_8cc.html + a72fc5e1724663aee39b7a07b8904afd7 + (void *jarg1) + + + SWIGEXPORT unsigned long SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_IntervalVarVector_capacity___ + constraint__solver__csharp__wrap_8cc.html + a4b7f28ece24bedee48abace90d3d4dd5 + (void *jarg1) + + + SWIGEXPORT void SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_IntervalVarVector_reserve___ + constraint__solver__csharp__wrap_8cc.html + a8f66b7bc4b92983746c8fddd1fd19ea0 + (void *jarg1, unsigned long jarg2) + + + SWIGEXPORT void *SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_new_IntervalVarVector__SWIG_0___ + constraint__solver__csharp__wrap_8cc.html + a2f93bf7a5fb4b1901c0a0e862b787fc0 + () + + + SWIGEXPORT void *SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_new_IntervalVarVector__SWIG_1___ + constraint__solver__csharp__wrap_8cc.html + a1536c4fe9ac6be438bccdcc571cf6997 + (void *jarg1) + + + SWIGEXPORT void *SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_new_IntervalVarVector__SWIG_2___ + constraint__solver__csharp__wrap_8cc.html + a90c5a87640c15fc79a52d0f9e1512fd6 + (int jarg1) + + + SWIGEXPORT void *SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_IntervalVarVector_getitemcopy___ + constraint__solver__csharp__wrap_8cc.html + a33b85fd744152e2fa558b59c28a660bd + (void *jarg1, int jarg2) + + + SWIGEXPORT void *SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_IntervalVarVector_getitem___ + constraint__solver__csharp__wrap_8cc.html + aeb47e84beee0fe0b78e4c64acf1ea213 + (void *jarg1, int jarg2) + + + SWIGEXPORT void SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_IntervalVarVector_setitem___ + constraint__solver__csharp__wrap_8cc.html + a72f70c7735e5f78a1328d491af0eef72 + (void *jarg1, int jarg2, void *jarg3) + + + SWIGEXPORT void SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_IntervalVarVector_AddRange___ + constraint__solver__csharp__wrap_8cc.html + a3c1e1fc6a061be4870e6e24cde0cb614 + (void *jarg1, void *jarg2) + + + SWIGEXPORT void *SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_IntervalVarVector_GetRange___ + constraint__solver__csharp__wrap_8cc.html + a2737dee318664c7a90ed9b055f2326ed + (void *jarg1, int jarg2, int jarg3) + + + SWIGEXPORT void SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_IntervalVarVector_Insert___ + constraint__solver__csharp__wrap_8cc.html + a5cf9e7a2d1e70bcc99568f7284e56eed + (void *jarg1, int jarg2, void *jarg3) + + + SWIGEXPORT void SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_IntervalVarVector_InsertRange___ + constraint__solver__csharp__wrap_8cc.html + a3e0b032887c09bb7cebf346420c51bf6 + (void *jarg1, int jarg2, void *jarg3) + + + SWIGEXPORT void SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_IntervalVarVector_RemoveAt___ + constraint__solver__csharp__wrap_8cc.html + a31c1c2e720d0166869cb7837cee36df2 + (void *jarg1, int jarg2) + + + SWIGEXPORT void SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_IntervalVarVector_RemoveRange___ + constraint__solver__csharp__wrap_8cc.html + aea08d32a5c718c1e4c8be96ea7576c76 + (void *jarg1, int jarg2, int jarg3) + + + SWIGEXPORT void *SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_IntervalVarVector_Repeat___ + constraint__solver__csharp__wrap_8cc.html + a98848241e5fb388a5a468cdd92653f0e + (void *jarg1, int jarg2) + + + SWIGEXPORT void SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_IntervalVarVector_Reverse__SWIG_0___ + constraint__solver__csharp__wrap_8cc.html + aff50fd3ca63e11b72c9e0201de85174a + (void *jarg1) + + + SWIGEXPORT void SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_IntervalVarVector_Reverse__SWIG_1___ + constraint__solver__csharp__wrap_8cc.html + a92ff58e6c6568b5f41547f1097fc0317 + (void *jarg1, int jarg2, int jarg3) + + + SWIGEXPORT void SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_IntervalVarVector_SetRange___ + constraint__solver__csharp__wrap_8cc.html + a9318f0166ea3a1e919d0f2d7c474f268 + (void *jarg1, int jarg2, void *jarg3) + + + SWIGEXPORT unsigned int SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_IntervalVarVector_Contains___ + constraint__solver__csharp__wrap_8cc.html + a1f019f8dd65a1b4b33c5cfc28df61e4a + (void *jarg1, void *jarg2) + + + SWIGEXPORT int SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_IntervalVarVector_IndexOf___ + constraint__solver__csharp__wrap_8cc.html + aed540dd1ed39666bf4dc6f498694d07c + (void *jarg1, void *jarg2) + + + SWIGEXPORT int SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_IntervalVarVector_LastIndexOf___ + constraint__solver__csharp__wrap_8cc.html + a2ca4313f80e791185f6e9d69d5580a9b + (void *jarg1, void *jarg2) + + + SWIGEXPORT unsigned int SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_IntervalVarVector_Remove___ + constraint__solver__csharp__wrap_8cc.html + a26330be77d3abad993545ee8c5f58399 + (void *jarg1, void *jarg2) + + + SWIGEXPORT void SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_delete_IntervalVarVector___ + constraint__solver__csharp__wrap_8cc.html + aa101fc5da15fcc17b6bb25f9eeeadebe + (void *jarg1) + + + SWIGEXPORT void SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_SequenceVarVector_Clear___ + constraint__solver__csharp__wrap_8cc.html + a940031e56b0ea444a5db676b3015c530 + (void *jarg1) + + + SWIGEXPORT void SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_SequenceVarVector_Add___ + constraint__solver__csharp__wrap_8cc.html + a969d608869ff371f4b423f295c004594 + (void *jarg1, void *jarg2) + + + SWIGEXPORT unsigned long SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_SequenceVarVector_size___ + constraint__solver__csharp__wrap_8cc.html + a7f363b27369c7528c32d7f39c8375561 + (void *jarg1) + + + SWIGEXPORT unsigned long SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_SequenceVarVector_capacity___ + constraint__solver__csharp__wrap_8cc.html + aafb293305451771082593cc64a3c7a98 + (void *jarg1) + + + SWIGEXPORT void SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_SequenceVarVector_reserve___ + constraint__solver__csharp__wrap_8cc.html + a7ad696b8e31f7d4103ee603ee8e990d8 + (void *jarg1, unsigned long jarg2) + + + SWIGEXPORT void *SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_new_SequenceVarVector__SWIG_0___ + constraint__solver__csharp__wrap_8cc.html + a3bba25bf308f8c4474289348e0df940e + () + + + SWIGEXPORT void *SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_new_SequenceVarVector__SWIG_1___ + constraint__solver__csharp__wrap_8cc.html + a78c02f0e6b5a2fbd628bcf366b86b661 + (void *jarg1) + + + SWIGEXPORT void *SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_new_SequenceVarVector__SWIG_2___ + constraint__solver__csharp__wrap_8cc.html + a4c41723e153b2139958d5343b97cbd09 + (int jarg1) + + + SWIGEXPORT void *SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_SequenceVarVector_getitemcopy___ + constraint__solver__csharp__wrap_8cc.html + a0420300da92f620bf60f064b5812ad8b + (void *jarg1, int jarg2) + + + SWIGEXPORT void *SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_SequenceVarVector_getitem___ + constraint__solver__csharp__wrap_8cc.html + aede611b61a74d2903e3646ecb67a917f + (void *jarg1, int jarg2) + + + SWIGEXPORT void SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_SequenceVarVector_setitem___ + constraint__solver__csharp__wrap_8cc.html + a51e3e9e95e08cb6ca6d3cc20339e6a70 + (void *jarg1, int jarg2, void *jarg3) + + + SWIGEXPORT void SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_SequenceVarVector_AddRange___ + constraint__solver__csharp__wrap_8cc.html + a1f8c3f6ee42003e73aa40b88833c4453 + (void *jarg1, void *jarg2) + + + SWIGEXPORT void *SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_SequenceVarVector_GetRange___ + constraint__solver__csharp__wrap_8cc.html + ad2ec4a030360ffbc14fcaf98e46cd7b9 + (void *jarg1, int jarg2, int jarg3) + + + SWIGEXPORT void SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_SequenceVarVector_Insert___ + constraint__solver__csharp__wrap_8cc.html + a1bc512d217c48bf0fd22d063affca4df + (void *jarg1, int jarg2, void *jarg3) + + + SWIGEXPORT void SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_SequenceVarVector_InsertRange___ + constraint__solver__csharp__wrap_8cc.html + a69321622a7e36e2e1d110b222afbce9c + (void *jarg1, int jarg2, void *jarg3) + + + SWIGEXPORT void SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_SequenceVarVector_RemoveAt___ + constraint__solver__csharp__wrap_8cc.html + afe571b334eedc91f3bca9c72239139b3 + (void *jarg1, int jarg2) + + + SWIGEXPORT void SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_SequenceVarVector_RemoveRange___ + constraint__solver__csharp__wrap_8cc.html + a36ef50bc7290f3003a3a506e76627ff2 + (void *jarg1, int jarg2, int jarg3) + + + SWIGEXPORT void *SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_SequenceVarVector_Repeat___ + constraint__solver__csharp__wrap_8cc.html + a6a8c53283b3f42b344d4479af8e0e233 + (void *jarg1, int jarg2) + + + SWIGEXPORT void SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_SequenceVarVector_Reverse__SWIG_0___ + constraint__solver__csharp__wrap_8cc.html + a07aeccf6499e424ce634c65138b24162 + (void *jarg1) + + + SWIGEXPORT void SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_SequenceVarVector_Reverse__SWIG_1___ + constraint__solver__csharp__wrap_8cc.html + a598bd083b26c6adca146be7f4866b5c1 + (void *jarg1, int jarg2, int jarg3) + + + SWIGEXPORT void SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_SequenceVarVector_SetRange___ + constraint__solver__csharp__wrap_8cc.html + adf19b1000fc54ebfc871d3726b14eb3f + (void *jarg1, int jarg2, void *jarg3) + + + SWIGEXPORT unsigned int SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_SequenceVarVector_Contains___ + constraint__solver__csharp__wrap_8cc.html + ac51187d5799058d6089ea51d97080d16 + (void *jarg1, void *jarg2) + + + SWIGEXPORT int SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_SequenceVarVector_IndexOf___ + constraint__solver__csharp__wrap_8cc.html + ada03f13f24f52fcebaa00f7df6affa0c + (void *jarg1, void *jarg2) + + + SWIGEXPORT int SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_SequenceVarVector_LastIndexOf___ + constraint__solver__csharp__wrap_8cc.html + aac1547ab4ac78a4e477f876df80940b6 + (void *jarg1, void *jarg2) + + + SWIGEXPORT unsigned int SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_SequenceVarVector_Remove___ + constraint__solver__csharp__wrap_8cc.html + a3113565fbe1a847344b61384c51ac8c4 + (void *jarg1, void *jarg2) + + + SWIGEXPORT void SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_delete_SequenceVarVector___ + constraint__solver__csharp__wrap_8cc.html + a8cb40e2c34561390b8095f7c9c59e5a1 + (void *jarg1) + + + SWIGEXPORT void SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_LocalSearchOperatorVector_Clear___ + constraint__solver__csharp__wrap_8cc.html + abf9fe5cc3a797998367565cc00f837f3 + (void *jarg1) + + + SWIGEXPORT void SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_LocalSearchOperatorVector_Add___ + constraint__solver__csharp__wrap_8cc.html + a24399967a3bf3f345bfe61a5c5fa0849 + (void *jarg1, void *jarg2) + + + SWIGEXPORT unsigned long SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_LocalSearchOperatorVector_size___ + constraint__solver__csharp__wrap_8cc.html + a199d078f7875693ff9ba39f834ad1afe + (void *jarg1) + + + SWIGEXPORT unsigned long SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_LocalSearchOperatorVector_capacity___ + constraint__solver__csharp__wrap_8cc.html + a56bbf20e87d87391f273714d42c0d6ab + (void *jarg1) + + + SWIGEXPORT void SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_LocalSearchOperatorVector_reserve___ + constraint__solver__csharp__wrap_8cc.html + a867dafcedd828ee4fece49a837f2e7bc + (void *jarg1, unsigned long jarg2) + + + SWIGEXPORT void *SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_new_LocalSearchOperatorVector__SWIG_0___ + constraint__solver__csharp__wrap_8cc.html + ab3e07257b031a6594cc8ba976cadaf82 + () + + + SWIGEXPORT void *SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_new_LocalSearchOperatorVector__SWIG_1___ + constraint__solver__csharp__wrap_8cc.html + aba96aaae0eb75284b9e74e684a60a426 + (void *jarg1) + + + SWIGEXPORT void *SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_new_LocalSearchOperatorVector__SWIG_2___ + constraint__solver__csharp__wrap_8cc.html + ae23a59c4f85d8efaec28cd2e69f21fe9 + (int jarg1) + + + SWIGEXPORT void *SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_LocalSearchOperatorVector_getitemcopy___ + constraint__solver__csharp__wrap_8cc.html + ae14a490ea069ad4cf22b3596b1d67825 + (void *jarg1, int jarg2) + + + SWIGEXPORT void *SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_LocalSearchOperatorVector_getitem___ + constraint__solver__csharp__wrap_8cc.html + a63992b6ee4384069612f778c30be534e + (void *jarg1, int jarg2) + + + SWIGEXPORT void SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_LocalSearchOperatorVector_setitem___ + constraint__solver__csharp__wrap_8cc.html + a008f073c8db6661cb0dcbd07895c3f90 + (void *jarg1, int jarg2, void *jarg3) + + + SWIGEXPORT void SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_LocalSearchOperatorVector_AddRange___ + constraint__solver__csharp__wrap_8cc.html + a6b98c930cc8b35f83c3854ac03312ae8 + (void *jarg1, void *jarg2) + + + SWIGEXPORT void *SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_LocalSearchOperatorVector_GetRange___ + constraint__solver__csharp__wrap_8cc.html + a36839c2796fe83e287d860ba8a4c28fe + (void *jarg1, int jarg2, int jarg3) + + + SWIGEXPORT void SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_LocalSearchOperatorVector_Insert___ + constraint__solver__csharp__wrap_8cc.html + ab359a4c749e40c4e4e139385f60f9fd8 + (void *jarg1, int jarg2, void *jarg3) + + + SWIGEXPORT void SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_LocalSearchOperatorVector_InsertRange___ + constraint__solver__csharp__wrap_8cc.html + a8dcc375b4cd14ab872b9a107a22f6eba + (void *jarg1, int jarg2, void *jarg3) + + + SWIGEXPORT void SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_LocalSearchOperatorVector_RemoveAt___ + constraint__solver__csharp__wrap_8cc.html + a48ea5020592ec2f6ab3796ff023345cc + (void *jarg1, int jarg2) + + + SWIGEXPORT void SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_LocalSearchOperatorVector_RemoveRange___ + constraint__solver__csharp__wrap_8cc.html + a92eb1cc10f4acb53128ec07c705012d3 + (void *jarg1, int jarg2, int jarg3) + + + SWIGEXPORT void *SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_LocalSearchOperatorVector_Repeat___ + constraint__solver__csharp__wrap_8cc.html + afbcdf0a02e9a80e8fa704fca7293a121 + (void *jarg1, int jarg2) + + + SWIGEXPORT void SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_LocalSearchOperatorVector_Reverse__SWIG_0___ + constraint__solver__csharp__wrap_8cc.html + a760f388fdbbb075d9fce9152cff68606 + (void *jarg1) + + + SWIGEXPORT void SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_LocalSearchOperatorVector_Reverse__SWIG_1___ + constraint__solver__csharp__wrap_8cc.html + ab8d19fe411738efc9ad542d37eaa4c95 + (void *jarg1, int jarg2, int jarg3) + + + SWIGEXPORT void SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_LocalSearchOperatorVector_SetRange___ + constraint__solver__csharp__wrap_8cc.html + a3aeb554d10b7ef62835c1485896d379b + (void *jarg1, int jarg2, void *jarg3) + + + SWIGEXPORT unsigned int SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_LocalSearchOperatorVector_Contains___ + constraint__solver__csharp__wrap_8cc.html + ad7217624c9e4db014320395325b9416f + (void *jarg1, void *jarg2) + + + SWIGEXPORT int SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_LocalSearchOperatorVector_IndexOf___ + constraint__solver__csharp__wrap_8cc.html + a876930f388508584a71bd4abd9e0f17c + (void *jarg1, void *jarg2) + + + SWIGEXPORT int SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_LocalSearchOperatorVector_LastIndexOf___ + constraint__solver__csharp__wrap_8cc.html + ae8efc50e4207090cfbcf0afd7ac08591 + (void *jarg1, void *jarg2) + + + SWIGEXPORT unsigned int SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_LocalSearchOperatorVector_Remove___ + constraint__solver__csharp__wrap_8cc.html + ae8e4468340c401ca1c48e9b89830fcfd + (void *jarg1, void *jarg2) + + + SWIGEXPORT void SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_delete_LocalSearchOperatorVector___ + constraint__solver__csharp__wrap_8cc.html + afb6632466d56439097522c92c618161b + (void *jarg1) + + + SWIGEXPORT void SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_LocalSearchFilterVector_Clear___ + constraint__solver__csharp__wrap_8cc.html + a73893858ac008a6352e2868578a01a86 + (void *jarg1) + + + SWIGEXPORT void SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_LocalSearchFilterVector_Add___ + constraint__solver__csharp__wrap_8cc.html + acb813cd981d524013a5851593f89ba79 + (void *jarg1, void *jarg2) + + + SWIGEXPORT unsigned long SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_LocalSearchFilterVector_size___ + constraint__solver__csharp__wrap_8cc.html + ac1dff857063797fb86c324b735ccb213 + (void *jarg1) + + + SWIGEXPORT unsigned long SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_LocalSearchFilterVector_capacity___ + constraint__solver__csharp__wrap_8cc.html + acbe8919348d6ab41af716f594dff022d + (void *jarg1) + + + SWIGEXPORT void SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_LocalSearchFilterVector_reserve___ + constraint__solver__csharp__wrap_8cc.html + a3e3b91a119f6e5989a66ab61ee0ec625 + (void *jarg1, unsigned long jarg2) + + + SWIGEXPORT void *SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_new_LocalSearchFilterVector__SWIG_0___ + constraint__solver__csharp__wrap_8cc.html + a239a82a93d49319a7f5b87b28c5a4a30 + () + + + SWIGEXPORT void *SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_new_LocalSearchFilterVector__SWIG_1___ + constraint__solver__csharp__wrap_8cc.html + ab18363db1db761d5b8a712ad4929191b + (void *jarg1) + + + SWIGEXPORT void *SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_new_LocalSearchFilterVector__SWIG_2___ + constraint__solver__csharp__wrap_8cc.html + a400b7a477c1607d7511c3c0fd9d6d810 + (int jarg1) + + + SWIGEXPORT void *SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_LocalSearchFilterVector_getitemcopy___ + constraint__solver__csharp__wrap_8cc.html + af15164a099f9283c4e21615ad75a91a3 + (void *jarg1, int jarg2) + + + SWIGEXPORT void *SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_LocalSearchFilterVector_getitem___ + constraint__solver__csharp__wrap_8cc.html + a694e6c4dc1e486ec9711b746739e8bdc + (void *jarg1, int jarg2) + + + SWIGEXPORT void SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_LocalSearchFilterVector_setitem___ + constraint__solver__csharp__wrap_8cc.html + a448b04f70abf51fbbffd2e3c9dd23623 + (void *jarg1, int jarg2, void *jarg3) + + + SWIGEXPORT void SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_LocalSearchFilterVector_AddRange___ + constraint__solver__csharp__wrap_8cc.html + a736547faedefcfe439cedae489aaffe0 + (void *jarg1, void *jarg2) + + + SWIGEXPORT void *SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_LocalSearchFilterVector_GetRange___ + constraint__solver__csharp__wrap_8cc.html + a6bd0798e2cabea40e0fe89a82bd54032 + (void *jarg1, int jarg2, int jarg3) + + + SWIGEXPORT void SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_LocalSearchFilterVector_Insert___ + constraint__solver__csharp__wrap_8cc.html + ab0aa5a2a77f718a0e986807eee82e857 + (void *jarg1, int jarg2, void *jarg3) + + + SWIGEXPORT void SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_LocalSearchFilterVector_InsertRange___ + constraint__solver__csharp__wrap_8cc.html + a00e585b4db02e05e9c2a011fffc2a5c6 + (void *jarg1, int jarg2, void *jarg3) + + + SWIGEXPORT void SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_LocalSearchFilterVector_RemoveAt___ + constraint__solver__csharp__wrap_8cc.html + a94b87f1cd2bd86c7c8b0019d746247be + (void *jarg1, int jarg2) + + + SWIGEXPORT void SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_LocalSearchFilterVector_RemoveRange___ + constraint__solver__csharp__wrap_8cc.html + af548270b826975e6ce39a105332c514f + (void *jarg1, int jarg2, int jarg3) + + + SWIGEXPORT void *SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_LocalSearchFilterVector_Repeat___ + constraint__solver__csharp__wrap_8cc.html + affa97a1aa70d163690a975f24c18c463 + (void *jarg1, int jarg2) + + + SWIGEXPORT void SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_LocalSearchFilterVector_Reverse__SWIG_0___ + constraint__solver__csharp__wrap_8cc.html + afef29a9e7ae35553ebc8ca72bbd2a401 + (void *jarg1) + + + SWIGEXPORT void SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_LocalSearchFilterVector_Reverse__SWIG_1___ + constraint__solver__csharp__wrap_8cc.html + a3437f21e77b4b10efe1c6f0d87fe53b5 + (void *jarg1, int jarg2, int jarg3) + + + SWIGEXPORT void SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_LocalSearchFilterVector_SetRange___ + constraint__solver__csharp__wrap_8cc.html + a69e56fa6df5b7113e89b41470d8303e8 + (void *jarg1, int jarg2, void *jarg3) + + + SWIGEXPORT unsigned int SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_LocalSearchFilterVector_Contains___ + constraint__solver__csharp__wrap_8cc.html + a362bbf40b810b5cb42324658975bdcb8 + (void *jarg1, void *jarg2) + + + SWIGEXPORT int SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_LocalSearchFilterVector_IndexOf___ + constraint__solver__csharp__wrap_8cc.html + a01e7b1326a7e047cbb90e88e28e8e63b + (void *jarg1, void *jarg2) + + + SWIGEXPORT int SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_LocalSearchFilterVector_LastIndexOf___ + constraint__solver__csharp__wrap_8cc.html + abf3573fb7484d4212c1921e47d35cd50 + (void *jarg1, void *jarg2) + + + SWIGEXPORT unsigned int SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_LocalSearchFilterVector_Remove___ + constraint__solver__csharp__wrap_8cc.html + a73ad4fd7ab2602d8126d629b2cbd1b20 + (void *jarg1, void *jarg2) + + + SWIGEXPORT void SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_delete_LocalSearchFilterVector___ + constraint__solver__csharp__wrap_8cc.html + adb71a1e47875467924f02eb92d4f19fd + (void *jarg1) + + + SWIGEXPORT void SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_SymmetryBreakerVector_Clear___ + constraint__solver__csharp__wrap_8cc.html + aaadee998f6789c577e56cc97c843b69e + (void *jarg1) + + + SWIGEXPORT void SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_SymmetryBreakerVector_Add___ + constraint__solver__csharp__wrap_8cc.html + a14a1b98938150c1da74e24490e497ff4 + (void *jarg1, void *jarg2) + + + SWIGEXPORT unsigned long SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_SymmetryBreakerVector_size___ + constraint__solver__csharp__wrap_8cc.html + abafb4fb8d3d6058110d65ce43be19e8a + (void *jarg1) + + + SWIGEXPORT unsigned long SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_SymmetryBreakerVector_capacity___ + constraint__solver__csharp__wrap_8cc.html + a4f2f7279fdb3866d2518c7dfa3ddf978 + (void *jarg1) + + + SWIGEXPORT void SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_SymmetryBreakerVector_reserve___ + constraint__solver__csharp__wrap_8cc.html + a7c448038a9458d9ce9788d2a9603431c + (void *jarg1, unsigned long jarg2) + + + SWIGEXPORT void *SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_new_SymmetryBreakerVector__SWIG_0___ + constraint__solver__csharp__wrap_8cc.html + a69949f2fb2ab155008045bd9cb3e9eea + () + + + SWIGEXPORT void *SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_new_SymmetryBreakerVector__SWIG_1___ + constraint__solver__csharp__wrap_8cc.html + a26e2b4e6c1be8e6260abf74bac870afb + (void *jarg1) + + + SWIGEXPORT void *SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_new_SymmetryBreakerVector__SWIG_2___ + constraint__solver__csharp__wrap_8cc.html + a3e33448bd5579cb818cefdbc4e9ca8f9 + (int jarg1) + + + SWIGEXPORT void *SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_SymmetryBreakerVector_getitemcopy___ + constraint__solver__csharp__wrap_8cc.html + ab9553dc41962ec7f1d0b247e5af632e4 + (void *jarg1, int jarg2) + + + SWIGEXPORT void *SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_SymmetryBreakerVector_getitem___ + constraint__solver__csharp__wrap_8cc.html + a1c9273a441fe13a85c25610211aafef0 + (void *jarg1, int jarg2) + + + SWIGEXPORT void SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_SymmetryBreakerVector_setitem___ + constraint__solver__csharp__wrap_8cc.html + abdf4668c3cdf8acac0f32865f52446b7 + (void *jarg1, int jarg2, void *jarg3) + + + SWIGEXPORT void SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_SymmetryBreakerVector_AddRange___ + constraint__solver__csharp__wrap_8cc.html + ae137ee4981970e5c0bad06bb55e779ba + (void *jarg1, void *jarg2) + + + SWIGEXPORT void *SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_SymmetryBreakerVector_GetRange___ + constraint__solver__csharp__wrap_8cc.html + a97205df4e70b281a11df803fe08c756a + (void *jarg1, int jarg2, int jarg3) + + + SWIGEXPORT void SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_SymmetryBreakerVector_Insert___ + constraint__solver__csharp__wrap_8cc.html + af8e5da9bda3b7a9338aac4921860636e + (void *jarg1, int jarg2, void *jarg3) + + + SWIGEXPORT void SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_SymmetryBreakerVector_InsertRange___ + constraint__solver__csharp__wrap_8cc.html + a4ba2565d38c2fa985ab0e1ecf4dbd6d3 + (void *jarg1, int jarg2, void *jarg3) + + + SWIGEXPORT void SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_SymmetryBreakerVector_RemoveAt___ + constraint__solver__csharp__wrap_8cc.html + acbd3b23648f294fa6c52ffeea910276f + (void *jarg1, int jarg2) + + + SWIGEXPORT void SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_SymmetryBreakerVector_RemoveRange___ + constraint__solver__csharp__wrap_8cc.html + a5f51480e113e8def00cc66959d2aeb82 + (void *jarg1, int jarg2, int jarg3) + + + SWIGEXPORT void *SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_SymmetryBreakerVector_Repeat___ + constraint__solver__csharp__wrap_8cc.html + ade9475cfd0e521e9c077c132648442b9 + (void *jarg1, int jarg2) + + + SWIGEXPORT void SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_SymmetryBreakerVector_Reverse__SWIG_0___ + constraint__solver__csharp__wrap_8cc.html + afce023159d1223fb02a849d7c45e8b7b + (void *jarg1) + + + SWIGEXPORT void SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_SymmetryBreakerVector_Reverse__SWIG_1___ + constraint__solver__csharp__wrap_8cc.html + ae41b143910669586cb1202fde3d84355 + (void *jarg1, int jarg2, int jarg3) + + + SWIGEXPORT void SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_SymmetryBreakerVector_SetRange___ + constraint__solver__csharp__wrap_8cc.html + a59411d17c0523037fab6f4698750d01d + (void *jarg1, int jarg2, void *jarg3) + + + SWIGEXPORT unsigned int SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_SymmetryBreakerVector_Contains___ + constraint__solver__csharp__wrap_8cc.html + a74ddb710c9b011914f68c86d72b79636 + (void *jarg1, void *jarg2) + + + SWIGEXPORT int SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_SymmetryBreakerVector_IndexOf___ + constraint__solver__csharp__wrap_8cc.html + a8348accd23c7719b5b2f19ba465f6246 + (void *jarg1, void *jarg2) + + + SWIGEXPORT int SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_SymmetryBreakerVector_LastIndexOf___ + constraint__solver__csharp__wrap_8cc.html + a4ac6d960d0e18bd6344495baf94f2414 + (void *jarg1, void *jarg2) + + + SWIGEXPORT unsigned int SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_SymmetryBreakerVector_Remove___ + constraint__solver__csharp__wrap_8cc.html + a3000baa04182bc654d4536c18cc478b5 + (void *jarg1, void *jarg2) + + + SWIGEXPORT void SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_delete_SymmetryBreakerVector___ + constraint__solver__csharp__wrap_8cc.html + a8b01e740bd35969b2f4ba59fa87ed192 + (void *jarg1) + + + SWIGEXPORT long long SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_CpRandomSeed___ + constraint__solver__csharp__wrap_8cc.html + ac2291226a301406c0f04d7edf957cc8e + () + + + SWIGEXPORT int SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_DefaultPhaseParameters_CHOOSE_MAX_SUM_IMPACT_get___ + constraint__solver__csharp__wrap_8cc.html + a9f34f388447b6d6b153de3c0140cab63 + () + + + SWIGEXPORT int SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_DefaultPhaseParameters_CHOOSE_MAX_AVERAGE_IMPACT_get___ + constraint__solver__csharp__wrap_8cc.html + af5035edc2ede3607c0e3cfb4e293dfba + () + + + SWIGEXPORT int SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_DefaultPhaseParameters_CHOOSE_MAX_VALUE_IMPACT_get___ + constraint__solver__csharp__wrap_8cc.html + a81feefd89b71576b2c2a7b211cdf07ce + () + + + SWIGEXPORT int SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_DefaultPhaseParameters_SELECT_MIN_IMPACT_get___ + constraint__solver__csharp__wrap_8cc.html + a1b33265dfbcced56fc58449ea2a1f529 + () + + + SWIGEXPORT int SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_DefaultPhaseParameters_SELECT_MAX_IMPACT_get___ + constraint__solver__csharp__wrap_8cc.html + a1ae30ecb76c4edea2a0ad2bee108f819 + () + + + SWIGEXPORT int SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_DefaultPhaseParameters_NONE_get___ + constraint__solver__csharp__wrap_8cc.html + afccc1c8925b04b80cba2ef918411e8dd + () + + + SWIGEXPORT int SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_DefaultPhaseParameters_NORMAL_get___ + constraint__solver__csharp__wrap_8cc.html + a3d531d494dc2be23365d37a62a1ea6ca + () + + + SWIGEXPORT int SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_DefaultPhaseParameters_VERBOSE_get___ + constraint__solver__csharp__wrap_8cc.html + a6cef314a7af33509c305c4b8f04764ce + () + + + SWIGEXPORT void SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_DefaultPhaseParameters_var_selection_schema_set___ + constraint__solver__csharp__wrap_8cc.html + a075460f1d6f9271a781cd3c80590a937 + (void *jarg1, int jarg2) + + + SWIGEXPORT int SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_DefaultPhaseParameters_var_selection_schema_get___ + constraint__solver__csharp__wrap_8cc.html + a6b19a106c5de80e0a89e972cffcd9a59 + (void *jarg1) + + + SWIGEXPORT void SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_DefaultPhaseParameters_value_selection_schema_set___ + constraint__solver__csharp__wrap_8cc.html + a0a938bc31f907f0dd42fabaac40b4bd4 + (void *jarg1, int jarg2) + + + SWIGEXPORT int SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_DefaultPhaseParameters_value_selection_schema_get___ + constraint__solver__csharp__wrap_8cc.html + af6e900f985727e8449e66fb0c9f6e9a1 + (void *jarg1) + + + SWIGEXPORT void SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_DefaultPhaseParameters_initialization_splits_set___ + constraint__solver__csharp__wrap_8cc.html + a475817a8945ca71604fa104364284c91 + (void *jarg1, int jarg2) + + + SWIGEXPORT int SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_DefaultPhaseParameters_initialization_splits_get___ + constraint__solver__csharp__wrap_8cc.html + a16a3c18ac25cf9e6f2d15e2efe0774b3 + (void *jarg1) + + + SWIGEXPORT void SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_DefaultPhaseParameters_run_all_heuristics_set___ + constraint__solver__csharp__wrap_8cc.html + a7d1d491214f4572178ad71b3fadc8c02 + (void *jarg1, unsigned int jarg2) + + + SWIGEXPORT unsigned int SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_DefaultPhaseParameters_run_all_heuristics_get___ + constraint__solver__csharp__wrap_8cc.html + a2acab480d6ceb54cbe581d60de780676 + (void *jarg1) + + + SWIGEXPORT void SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_DefaultPhaseParameters_heuristic_period_set___ + constraint__solver__csharp__wrap_8cc.html + aa78ebf14fa4ad90e55358a7bb2fc5548 + (void *jarg1, int jarg2) + + + SWIGEXPORT int SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_DefaultPhaseParameters_heuristic_period_get___ + constraint__solver__csharp__wrap_8cc.html + a60e0f68f51796fc6324fe742c7c6b1e1 + (void *jarg1) + + + SWIGEXPORT void SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_DefaultPhaseParameters_heuristic_num_failures_limit_set___ + constraint__solver__csharp__wrap_8cc.html + ad366c9801cc3434f704eaece994c2a02 + (void *jarg1, int jarg2) + + + SWIGEXPORT int SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_DefaultPhaseParameters_heuristic_num_failures_limit_get___ + constraint__solver__csharp__wrap_8cc.html + ae954ecfc918a1508b2e18ff9b2343215 + (void *jarg1) + + + SWIGEXPORT void SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_DefaultPhaseParameters_persistent_impact_set___ + constraint__solver__csharp__wrap_8cc.html + ae8eced07de7dd15272d063c0ba66081a + (void *jarg1, unsigned int jarg2) + + + SWIGEXPORT unsigned int SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_DefaultPhaseParameters_persistent_impact_get___ + constraint__solver__csharp__wrap_8cc.html + a0d63f0bab3f9fc46cb2b61a3c9fde283 + (void *jarg1) + + + SWIGEXPORT void SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_DefaultPhaseParameters_random_seed_set___ + constraint__solver__csharp__wrap_8cc.html + a36ca43c2d0ac8e38b8e4948e5bd8ce5a + (void *jarg1, int jarg2) + + + SWIGEXPORT int SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_DefaultPhaseParameters_random_seed_get___ + constraint__solver__csharp__wrap_8cc.html + a09b4cabde01350b7bfdf379a65fd3a86 + (void *jarg1) + + + SWIGEXPORT void SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_DefaultPhaseParameters_display_level_set___ + constraint__solver__csharp__wrap_8cc.html + afe1575af5fa80abd5835922bd61aa315 + (void *jarg1, int jarg2) + + + SWIGEXPORT int SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_DefaultPhaseParameters_display_level_get___ + constraint__solver__csharp__wrap_8cc.html + a2c68143db0079bd0fb58f09e4805e721 + (void *jarg1) + + + SWIGEXPORT void SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_DefaultPhaseParameters_use_last_conflict_set___ + constraint__solver__csharp__wrap_8cc.html + a7f6bace18dc3276298044dd6aff0211d + (void *jarg1, unsigned int jarg2) + + + SWIGEXPORT unsigned int SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_DefaultPhaseParameters_use_last_conflict_get___ + constraint__solver__csharp__wrap_8cc.html + a7cf1e524d9cd326e32d5aa685fc8ade4 + (void *jarg1) + + + SWIGEXPORT void SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_DefaultPhaseParameters_decision_builder_set___ + constraint__solver__csharp__wrap_8cc.html + a091a768e5b3d59caf9fdb327dcfe3336 + (void *jarg1, void *jarg2) + + + SWIGEXPORT void *SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_DefaultPhaseParameters_decision_builder_get___ + constraint__solver__csharp__wrap_8cc.html + a8adca8f2cc281ccbb6430056ec74bc3e + (void *jarg1) + + + SWIGEXPORT void *SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_new_DefaultPhaseParameters___ + constraint__solver__csharp__wrap_8cc.html + a57a822c96ccfadb49fa0b4f39b419643 + () + + + SWIGEXPORT void SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_delete_DefaultPhaseParameters___ + constraint__solver__csharp__wrap_8cc.html + a828e169e719cd755f586002077619b4e + (void *jarg1) + + + SWIGEXPORT void *SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_new_Solver_IntegerCastInfo__SWIG_0___ + constraint__solver__csharp__wrap_8cc.html + a1c3e07166d23dac2ec7f97886cc8eb5c + () + + + SWIGEXPORT void *SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_new_Solver_IntegerCastInfo__SWIG_1___ + constraint__solver__csharp__wrap_8cc.html + afa2e98055f8a79c9da6e6b65d1b747cb + (void *jarg1, void *jarg2, void *jarg3) + + + SWIGEXPORT void SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_Solver_IntegerCastInfo_variable_set___ + constraint__solver__csharp__wrap_8cc.html + a7772d7d82fccafec1e33ef5b08f38f8a + (void *jarg1, void *jarg2) + + + SWIGEXPORT void *SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_Solver_IntegerCastInfo_variable_get___ + constraint__solver__csharp__wrap_8cc.html + a479715d7ad76b16d20c4f71ccb35f418 + (void *jarg1) + + + SWIGEXPORT void SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_Solver_IntegerCastInfo_expression_set___ + constraint__solver__csharp__wrap_8cc.html + aff346eec17cc5fb1420d6fbbd4b6ba25 + (void *jarg1, void *jarg2) + + + SWIGEXPORT void *SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_Solver_IntegerCastInfo_expression_get___ + constraint__solver__csharp__wrap_8cc.html + aafdb4e1d85c6629977d53761786eea80 + (void *jarg1) + + + SWIGEXPORT void SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_Solver_IntegerCastInfo_maintainer_set___ + constraint__solver__csharp__wrap_8cc.html + a613b519cd2265cdd6b756b02e5b613e2 + (void *jarg1, void *jarg2) + + + SWIGEXPORT void *SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_Solver_IntegerCastInfo_maintainer_get___ + constraint__solver__csharp__wrap_8cc.html + ae7499431889c107f10f8c72bec973db1 + (void *jarg1) + + + SWIGEXPORT void SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_delete_Solver_IntegerCastInfo___ + constraint__solver__csharp__wrap_8cc.html + ab1f46fbdd06709c78df9f70cde78a1c9 + (void *jarg1) + + + SWIGEXPORT int SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_Solver_kNumPriorities_get___ + constraint__solver__csharp__wrap_8cc.html + a45ccd8ffdb8d02c6d33c63ca8d7e5501 + () + + + SWIGEXPORT int SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_Solver_INT_VAR_DEFAULT_get___ + constraint__solver__csharp__wrap_8cc.html + a2caa1150ae29c231d64e147138f0b3e2 + () + + + SWIGEXPORT int SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_Solver_INT_VAR_SIMPLE_get___ + constraint__solver__csharp__wrap_8cc.html + a2a24305b175510817a7133f680d6885b + () + + + SWIGEXPORT int SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_Solver_CHOOSE_FIRST_UNBOUND_get___ + constraint__solver__csharp__wrap_8cc.html + a3891960b5d52181120f8279eb27d3e64 + () + + + SWIGEXPORT int SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_Solver_CHOOSE_RANDOM_get___ + constraint__solver__csharp__wrap_8cc.html + aeab4eea6b60c1873a7b7967e6e6c501f + () + + + SWIGEXPORT int SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_Solver_CHOOSE_MIN_SIZE_LOWEST_MIN_get___ + constraint__solver__csharp__wrap_8cc.html + a22f62d7e30d8e0f1f11b6a5efaee2950 + () + + + SWIGEXPORT int SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_Solver_CHOOSE_MIN_SIZE_HIGHEST_MIN_get___ + constraint__solver__csharp__wrap_8cc.html + aae145d4c1ec17ee57314b031c01df563 + () + + + SWIGEXPORT int SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_Solver_CHOOSE_MIN_SIZE_LOWEST_MAX_get___ + constraint__solver__csharp__wrap_8cc.html + aa5eb3dad5b782df46015d53b8df98029 + () + + + SWIGEXPORT int SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_Solver_CHOOSE_MIN_SIZE_HIGHEST_MAX_get___ + constraint__solver__csharp__wrap_8cc.html + a645d636755910f04a5d132903ba6e4b4 + () + + + SWIGEXPORT int SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_Solver_CHOOSE_LOWEST_MIN_get___ + constraint__solver__csharp__wrap_8cc.html + a1d30969cb54d5d6193ee842172172485 + () + + + SWIGEXPORT int SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_Solver_CHOOSE_HIGHEST_MAX_get___ + constraint__solver__csharp__wrap_8cc.html + a87a449eb79e43afd4e001f827c25d19d + () + + + SWIGEXPORT int SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_Solver_CHOOSE_MIN_SIZE_get___ + constraint__solver__csharp__wrap_8cc.html + a170c8d3340c479ff4afc9ddbdef62fef + () + + + SWIGEXPORT int SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_Solver_CHOOSE_MAX_SIZE_get___ + constraint__solver__csharp__wrap_8cc.html + af25ceab151fa19c700afde568c705467 + () + + + SWIGEXPORT int SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_Solver_CHOOSE_MAX_REGRET_ON_MIN_get___ + constraint__solver__csharp__wrap_8cc.html + af8ad4d56fee457dffb21694df317e01c + () + + + SWIGEXPORT int SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_Solver_CHOOSE_PATH_get___ + constraint__solver__csharp__wrap_8cc.html + a9b939b5c87d3860dbe2ddb11f5438293 + () + + + SWIGEXPORT int SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_Solver_INT_VALUE_DEFAULT_get___ + constraint__solver__csharp__wrap_8cc.html + a71193e95c3fd3ae9d9c67c273d8c2f5a + () + + + SWIGEXPORT int SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_Solver_INT_VALUE_SIMPLE_get___ + constraint__solver__csharp__wrap_8cc.html + adf4a291c4a9e597410d6d6bae156b66a + () + + + SWIGEXPORT int SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_Solver_ASSIGN_MIN_VALUE_get___ + constraint__solver__csharp__wrap_8cc.html + aaba7f4ede85ebee8ac114e33b062826c + () + + + SWIGEXPORT int SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_Solver_ASSIGN_MAX_VALUE_get___ + constraint__solver__csharp__wrap_8cc.html + af918e7986debd0fa53da4bb3efc7c3eb + () + + + SWIGEXPORT int SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_Solver_ASSIGN_RANDOM_VALUE_get___ + constraint__solver__csharp__wrap_8cc.html + a97ed06ac9972e52eacbf4a43b7ad85d6 + () + + + SWIGEXPORT int SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_Solver_ASSIGN_CENTER_VALUE_get___ + constraint__solver__csharp__wrap_8cc.html + a69445cef62905e6370f1311ccf832f48 + () + + + SWIGEXPORT int SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_Solver_SPLIT_LOWER_HALF_get___ + constraint__solver__csharp__wrap_8cc.html + a93d899e71010e5337eb863d4d186efac + () + + + SWIGEXPORT int SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_Solver_SPLIT_UPPER_HALF_get___ + constraint__solver__csharp__wrap_8cc.html + a05accbebb84cfb57e4103993b3fb8bd4 + () + + + SWIGEXPORT int SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_Solver_CHOOSE_STATIC_GLOBAL_BEST_get___ + constraint__solver__csharp__wrap_8cc.html + ad65785c8e30700e95a9759747b0224c9 + () + + + SWIGEXPORT int SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_Solver_CHOOSE_DYNAMIC_GLOBAL_BEST_get___ + constraint__solver__csharp__wrap_8cc.html + ae0d6f73657b9fe365e089ecdd1200e36 + () + + + SWIGEXPORT int SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_Solver_SEQUENCE_DEFAULT_get___ + constraint__solver__csharp__wrap_8cc.html + a3a3aa7bd8251d82dd0c34dfe9c223b9a + () + + + SWIGEXPORT int SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_Solver_SEQUENCE_SIMPLE_get___ + constraint__solver__csharp__wrap_8cc.html + abee6fa49fa707a27087e14702b773522 + () + + + SWIGEXPORT int SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_Solver_CHOOSE_MIN_SLACK_RANK_FORWARD_get___ + constraint__solver__csharp__wrap_8cc.html + a27540fcbe4ae94742ab614ab0ab68fbf + () + + + SWIGEXPORT int SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_Solver_CHOOSE_RANDOM_RANK_FORWARD_get___ + constraint__solver__csharp__wrap_8cc.html + a7017b83b32eedebda449e89aba737f42 + () + + + SWIGEXPORT int SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_Solver_INTERVAL_DEFAULT_get___ + constraint__solver__csharp__wrap_8cc.html + a2be39ea3becd5a316c3b544c8c77656e + () + + + SWIGEXPORT int SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_Solver_INTERVAL_SIMPLE_get___ + constraint__solver__csharp__wrap_8cc.html + a8523c85c9eefc91376a72c7a6dbd0b3e + () + + + SWIGEXPORT int SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_Solver_INTERVAL_SET_TIMES_FORWARD_get___ + constraint__solver__csharp__wrap_8cc.html + ad7874b3d0eea77292f6b7242220ed87d + () + + + SWIGEXPORT int SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_Solver_INTERVAL_SET_TIMES_BACKWARD_get___ + constraint__solver__csharp__wrap_8cc.html + aca9752c17950847a918344d04ca39485 + () + + + SWIGEXPORT int SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_Solver_TWOOPT_get___ + constraint__solver__csharp__wrap_8cc.html + acae3b0381950c42418a4dbd531777e5f + () + + + SWIGEXPORT int SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_Solver_OROPT_get___ + constraint__solver__csharp__wrap_8cc.html + a7abd16c77a8c812087372fbcc5f0fadb + () + + + SWIGEXPORT int SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_Solver_RELOCATE_get___ + constraint__solver__csharp__wrap_8cc.html + ac8fc5e419c12c980d033e0ff519725d7 + () + + + SWIGEXPORT int SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_Solver_EXCHANGE_get___ + constraint__solver__csharp__wrap_8cc.html + a4cd79d94478c475fec4620c584f7ba25 + () + + + SWIGEXPORT int SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_Solver_CROSS_get___ + constraint__solver__csharp__wrap_8cc.html + a4233566adddcad0cd5c6779aae297279 + () + + + SWIGEXPORT int SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_Solver_MAKEACTIVE_get___ + constraint__solver__csharp__wrap_8cc.html + a863e731cf4a9d575f4425b2d45b86ce1 + () + + + SWIGEXPORT int SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_Solver_MAKEINACTIVE_get___ + constraint__solver__csharp__wrap_8cc.html + aee3340e9940c59981b75600b150bf945 + () + + + SWIGEXPORT int SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_Solver_MAKECHAININACTIVE_get___ + constraint__solver__csharp__wrap_8cc.html + a99b4411cf59de1eeefa859b9b098e78c + () + + + SWIGEXPORT int SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_Solver_SWAPACTIVE_get___ + constraint__solver__csharp__wrap_8cc.html + addf51b660fbe679f3a9993bba5cde20a + () + + + SWIGEXPORT int SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_Solver_EXTENDEDSWAPACTIVE_get___ + constraint__solver__csharp__wrap_8cc.html + ac6f5ba7c137c63f7a71bf9c313a91d54 + () + + + SWIGEXPORT int SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_Solver_PATHLNS_get___ + constraint__solver__csharp__wrap_8cc.html + a66ba83461c7a0d492eb4047e94393840 + () + + + SWIGEXPORT int SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_Solver_FULLPATHLNS_get___ + constraint__solver__csharp__wrap_8cc.html + ad1c5f45a7b677c0c69cbbae50fae88d8 + () + + + SWIGEXPORT int SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_Solver_UNACTIVELNS_get___ + constraint__solver__csharp__wrap_8cc.html + aa5e317ffa5adbdaa82fd964fea09447f + () + + + SWIGEXPORT int SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_Solver_INCREMENT_get___ + constraint__solver__csharp__wrap_8cc.html + a4ea6606e30e2d4478ce3fddaa63ae12a + () + + + SWIGEXPORT int SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_Solver_DECREMENT_get___ + constraint__solver__csharp__wrap_8cc.html + a313b6d6031605f726c9dc5e67ca2a49b + () + + + SWIGEXPORT int SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_Solver_SIMPLELNS_get___ + constraint__solver__csharp__wrap_8cc.html + a1f9f0bcfbfae0446927e94defa241f1c + () + + + SWIGEXPORT int SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_Solver_LK_get___ + constraint__solver__csharp__wrap_8cc.html + a0114543cf8dba75fd787238b3db2a1d0 + () + + + SWIGEXPORT int SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_Solver_TSPOPT_get___ + constraint__solver__csharp__wrap_8cc.html + a4f73ed240073d825eb4616a42a3e2df7 + () + + + SWIGEXPORT int SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_Solver_TSPLNS_get___ + constraint__solver__csharp__wrap_8cc.html + a7fc74ed5b119a4a201382b64812470b3 + () + + + SWIGEXPORT int SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_Solver_GE_get___ + constraint__solver__csharp__wrap_8cc.html + a582f3506ab8fb6422bb87832651fbd01 + () + + + SWIGEXPORT int SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_Solver_LE_get___ + constraint__solver__csharp__wrap_8cc.html + a27c602bf56b5406f32f5e9696a7ff1bd + () + + + SWIGEXPORT int SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_Solver_EQ_get___ + constraint__solver__csharp__wrap_8cc.html + ad13094978ab3ec7be65fb084c8993d71 + () + + + SWIGEXPORT int SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_Solver_DELAYED_PRIORITY_get___ + constraint__solver__csharp__wrap_8cc.html + a8cc4e9ff10a0b8572eec03c45a9c5cff + () + + + SWIGEXPORT int SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_Solver_VAR_PRIORITY_get___ + constraint__solver__csharp__wrap_8cc.html + ab024bcd7dcbdf701edab6f4fcc748a1a + () + + + SWIGEXPORT int SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_Solver_NORMAL_PRIORITY_get___ + constraint__solver__csharp__wrap_8cc.html + a5e8e8a876b01d0ddf9fa23b3a851f60a + () + + + SWIGEXPORT int SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_Solver_ENDS_AFTER_END_get___ + constraint__solver__csharp__wrap_8cc.html + ad8f19e6f76e8e9147bbaddd638df5e9c + () + + + SWIGEXPORT int SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_Solver_ENDS_AFTER_START_get___ + constraint__solver__csharp__wrap_8cc.html + a9b98dd8a805f3d564a32bf16af356f75 + () + + + SWIGEXPORT int SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_Solver_ENDS_AT_END_get___ + constraint__solver__csharp__wrap_8cc.html + a47605e56a7f78cb7427507f9703d8396 + () + + + SWIGEXPORT int SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_Solver_ENDS_AT_START_get___ + constraint__solver__csharp__wrap_8cc.html + a5f754ba18ed6af02c29a3d7556655bcd + () + + + SWIGEXPORT int SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_Solver_STARTS_AFTER_END_get___ + constraint__solver__csharp__wrap_8cc.html + afc4d4748223529faaab997dc369504db + () + + + SWIGEXPORT int SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_Solver_STARTS_AFTER_START_get___ + constraint__solver__csharp__wrap_8cc.html + a445bc346a155b1fca9960088a1027dab + () + + + SWIGEXPORT int SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_Solver_STARTS_AT_END_get___ + constraint__solver__csharp__wrap_8cc.html + a4c9cbd2200d910458701508752464c14 + () + + + SWIGEXPORT int SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_Solver_STARTS_AT_START_get___ + constraint__solver__csharp__wrap_8cc.html + a2aa1b1e621707c8f8347d2581d20e874 + () + + + SWIGEXPORT int SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_Solver_STAYS_IN_SYNC_get___ + constraint__solver__csharp__wrap_8cc.html + ace05d7b90cabd55ba6997b53d175e19b + () + + + SWIGEXPORT int SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_Solver_ENDS_AFTER_get___ + constraint__solver__csharp__wrap_8cc.html + a5de1193468e8ef4746b64dd704ecf03c + () + + + SWIGEXPORT int SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_Solver_ENDS_AT_get___ + constraint__solver__csharp__wrap_8cc.html + a208bd3958f19b6c50a77e678cdd81bf7 + () + + + SWIGEXPORT int SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_Solver_ENDS_BEFORE_get___ + constraint__solver__csharp__wrap_8cc.html + a98629f7052b11f948ba7396dc6c4fb90 + () + + + SWIGEXPORT int SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_Solver_STARTS_AFTER_get___ + constraint__solver__csharp__wrap_8cc.html + ac5412ba03d1fea3e68b9b0fb03120501 + () + + + SWIGEXPORT int SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_Solver_STARTS_AT_get___ + constraint__solver__csharp__wrap_8cc.html + ad902b5f6c20b918ba66cb8fd71cd1bbf + () + + + SWIGEXPORT int SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_Solver_STARTS_BEFORE_get___ + constraint__solver__csharp__wrap_8cc.html + a739586c657c1078841b9af4512289ca2 + () + + + SWIGEXPORT int SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_Solver_CROSS_DATE_get___ + constraint__solver__csharp__wrap_8cc.html + a0e0eba6f55dde1ae56ca6a304f691df2 + () + + + SWIGEXPORT int SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_Solver_AVOID_DATE_get___ + constraint__solver__csharp__wrap_8cc.html + a81550b4af3f2dcac4020d1ef81c3f579 + () + + + SWIGEXPORT int SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_Solver_NO_CHANGE_get___ + constraint__solver__csharp__wrap_8cc.html + a77223c167d1fde880036608cfd9463a0 + () + + + SWIGEXPORT int SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_Solver_KEEP_LEFT_get___ + constraint__solver__csharp__wrap_8cc.html + a4970a86d3754e5eb0ce6257ff1f8ff5c + () + + + SWIGEXPORT int SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_Solver_KEEP_RIGHT_get___ + constraint__solver__csharp__wrap_8cc.html + a433dd6ab79fd605dbea98f71b96332a6 + () + + + SWIGEXPORT int SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_Solver_KILL_BOTH_get___ + constraint__solver__csharp__wrap_8cc.html + a13539135c690dba13820bb3790e2dc84 + () + + + SWIGEXPORT int SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_Solver_SWITCH_BRANCHES_get___ + constraint__solver__csharp__wrap_8cc.html + a2ec77ebb1442afb32f964e6e186c2981 + () + + + SWIGEXPORT int SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_Solver_SENTINEL_get___ + constraint__solver__csharp__wrap_8cc.html + a5a4ad2bcfbdd3e5a189dec6ba690da9d + () + + + SWIGEXPORT int SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_Solver_SIMPLE_MARKER_get___ + constraint__solver__csharp__wrap_8cc.html + a32b2ce08358abcea576fbdcaf290930d + () + + + SWIGEXPORT int SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_Solver_CHOICE_POINT_get___ + constraint__solver__csharp__wrap_8cc.html + ac00991bec1f4da58109042631dbabf2c + () + + + SWIGEXPORT int SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_Solver_REVERSIBLE_ACTION_get___ + constraint__solver__csharp__wrap_8cc.html + a6eb615b9ca048828d7e2065dc6c42066 + () + + + SWIGEXPORT int SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_Solver_OUTSIDE_SEARCH_get___ + constraint__solver__csharp__wrap_8cc.html + a84c9a295b70991d56f82440b0eb02fd0 + () + + + SWIGEXPORT int SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_Solver_IN_ROOT_NODE_get___ + constraint__solver__csharp__wrap_8cc.html + ae9f41d80c74bf7cbb16d5f490fa0b709 + () + + + SWIGEXPORT int SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_Solver_IN_SEARCH_get___ + constraint__solver__csharp__wrap_8cc.html + aaa9def579dd11791eb7307fbcce13206 + () + + + SWIGEXPORT int SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_Solver_AT_SOLUTION_get___ + constraint__solver__csharp__wrap_8cc.html + a1a9b9ea0a70454740e8778b2bee73f59 + () + + + SWIGEXPORT int SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_Solver_NO_MORE_SOLUTIONS_get___ + constraint__solver__csharp__wrap_8cc.html + a2ca182f082abae73e70172f75672d450 + () + + + SWIGEXPORT int SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_Solver_PROBLEM_INFEASIBLE_get___ + constraint__solver__csharp__wrap_8cc.html + a307f300f6dd533b58a55d6985480114a + () + + + SWIGEXPORT int SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_Solver_NOT_SET_get___ + constraint__solver__csharp__wrap_8cc.html + a975cb1ffbaf18f8439cc115ac2fc0f2a + () + + + SWIGEXPORT int SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_Solver_MAXIMIZATION_get___ + constraint__solver__csharp__wrap_8cc.html + a78969a356a34662765b0dab11a71988a + () + + + SWIGEXPORT int SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_Solver_MINIMIZATION_get___ + constraint__solver__csharp__wrap_8cc.html + a08e105ef5e66e91d5e21bebbf626419b + () + + + SWIGEXPORT void *SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_new_Solver__SWIG_0___ + constraint__solver__csharp__wrap_8cc.html + ac4c850e06bd6b26301cb678e666fa265 + (char *jarg1) + + + SWIGEXPORT void *SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_new_Solver__SWIG_1___ + constraint__solver__csharp__wrap_8cc.html + abc39326bffba3b1d4691ed1446fc17f3 + (char *jarg1, int parameters_size, uint8 *jarg2) + + + SWIGEXPORT void SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_delete_Solver___ + constraint__solver__csharp__wrap_8cc.html + a677266907fbd5531c48c55ab18f25277 + (void *jarg1) + + + SWIGEXPORT uint8 *SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_Solver_Parameters___ + constraint__solver__csharp__wrap_8cc.html + a3de75c9cec6696a37a556a44d12137c0 + (void *jarg1) + + + SWIGEXPORT uint8 *SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_Solver_DefaultSolverParameters___ + constraint__solver__csharp__wrap_8cc.html + a83cc02efd9022782c969d7453523b94a + () + + + SWIGEXPORT void SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_Solver_Add___ + constraint__solver__csharp__wrap_8cc.html + ad7342e44b980d33ebce13c19b0523b45 + (void *jarg1, void *jarg2) + + + SWIGEXPORT void SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_Solver_AddCastConstraint___ + constraint__solver__csharp__wrap_8cc.html + a882ba8d53c7de889fcfa80533112bfb4 + (void *jarg1, void *jarg2, void *jarg3, void *jarg4) + + + SWIGEXPORT unsigned int SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_Solver_Solve__SWIG_0___ + constraint__solver__csharp__wrap_8cc.html + a28f56b7274985ddff6270e71b9f15dcd + (void *jarg1, void *jarg2, void *jarg3) + + + SWIGEXPORT unsigned int SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_Solver_Solve__SWIG_1___ + constraint__solver__csharp__wrap_8cc.html + af8af8e8cea20df3096651deeb4e69ad8 + (void *jarg1, void *jarg2) + + + SWIGEXPORT unsigned int SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_Solver_Solve__SWIG_2___ + constraint__solver__csharp__wrap_8cc.html + a299e6077257f14b80148ef07397f74da + (void *jarg1, void *jarg2, void *jarg3) + + + SWIGEXPORT unsigned int SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_Solver_Solve__SWIG_3___ + constraint__solver__csharp__wrap_8cc.html + ae277930e3cbdd1809a28abe58b3d47ff + (void *jarg1, void *jarg2, void *jarg3, void *jarg4) + + + SWIGEXPORT unsigned int SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_Solver_Solve__SWIG_4___ + constraint__solver__csharp__wrap_8cc.html + a8386e47b54736018ad67e28d2900af86 + (void *jarg1, void *jarg2, void *jarg3, void *jarg4, void *jarg5) + + + SWIGEXPORT unsigned int SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_Solver_Solve__SWIG_5___ + constraint__solver__csharp__wrap_8cc.html + a89b6f313f02ad619bc4df65235c5865e + (void *jarg1, void *jarg2, void *jarg3, void *jarg4, void *jarg5, void *jarg6) + + + SWIGEXPORT void SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_Solver_NewSearchAux__SWIG_0___ + constraint__solver__csharp__wrap_8cc.html + a22468ceb4cbb5248be3295fd6ec6ff31 + (void *jarg1, void *jarg2, void *jarg3) + + + SWIGEXPORT void SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_Solver_NewSearchAux__SWIG_1___ + constraint__solver__csharp__wrap_8cc.html + a67d76ead08b88d3223aa54c5e9b6953f + (void *jarg1, void *jarg2) + + + SWIGEXPORT void SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_Solver_NewSearchAux__SWIG_2___ + constraint__solver__csharp__wrap_8cc.html + a4854a53acd137eb6125bf1e6ad4810f0 + (void *jarg1, void *jarg2, void *jarg3) + + + SWIGEXPORT void SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_Solver_NewSearchAux__SWIG_3___ + constraint__solver__csharp__wrap_8cc.html + a3c2b80b19724ef2cbf4e435d06c6a8ce + (void *jarg1, void *jarg2, void *jarg3, void *jarg4) + + + SWIGEXPORT void SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_Solver_NewSearchAux__SWIG_4___ + constraint__solver__csharp__wrap_8cc.html + aa30cf9e05a71bb0ee70662b2eb0273ec + (void *jarg1, void *jarg2, void *jarg3, void *jarg4, void *jarg5) + + + SWIGEXPORT void SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_Solver_NewSearchAux__SWIG_5___ + constraint__solver__csharp__wrap_8cc.html + a78f4a3dec469460ff6a0d47ddcc18d3b + (void *jarg1, void *jarg2, void *jarg3, void *jarg4, void *jarg5, void *jarg6) + + + SWIGEXPORT unsigned int SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_Solver_NextSolution___ + constraint__solver__csharp__wrap_8cc.html + a98ac90bae884f501516b0be140ee4ef7 + (void *jarg1) + + + SWIGEXPORT void SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_Solver_RestartSearch___ + constraint__solver__csharp__wrap_8cc.html + a02acf6f83dc7833ec779c0b66069361d + (void *jarg1) + + + SWIGEXPORT void SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_Solver_EndSearchAux___ + constraint__solver__csharp__wrap_8cc.html + a1fd7f2ea6ad8776c876f93bb3e7ae632 + (void *jarg1) + + + SWIGEXPORT unsigned int SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_Solver_SolveAndCommit__SWIG_0___ + constraint__solver__csharp__wrap_8cc.html + afde9399156146e7d9fb555c687fd4be3 + (void *jarg1, void *jarg2, void *jarg3) + + + SWIGEXPORT unsigned int SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_Solver_SolveAndCommit__SWIG_1___ + constraint__solver__csharp__wrap_8cc.html + abf36c04ca0192d7897727e197b3d5ef4 + (void *jarg1, void *jarg2) + + + SWIGEXPORT unsigned int SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_Solver_SolveAndCommit__SWIG_2___ + constraint__solver__csharp__wrap_8cc.html + acb552f64c5e32cf81daa8934e742d2e0 + (void *jarg1, void *jarg2, void *jarg3) + + + SWIGEXPORT unsigned int SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_Solver_SolveAndCommit__SWIG_3___ + constraint__solver__csharp__wrap_8cc.html + a361cc0c41cb6dbf3cd2e40e2750a1c4a + (void *jarg1, void *jarg2, void *jarg3, void *jarg4) + + + SWIGEXPORT unsigned int SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_Solver_SolveAndCommit__SWIG_4___ + constraint__solver__csharp__wrap_8cc.html + a70cb6ed16f8b42757f2d3de1336e37c1 + (void *jarg1, void *jarg2, void *jarg3, void *jarg4, void *jarg5) + + + SWIGEXPORT unsigned int SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_Solver_CheckAssignment___ + constraint__solver__csharp__wrap_8cc.html + a2ef273f26bc7bb8340f4f1cf2ae84840 + (void *jarg1, void *jarg2) + + + SWIGEXPORT unsigned int SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_Solver_CheckConstraint___ + constraint__solver__csharp__wrap_8cc.html + a7f91d2f7ddba94a034e3cada9d3c672b + (void *jarg1, void *jarg2) + + + SWIGEXPORT int SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_Solver_State___ + constraint__solver__csharp__wrap_8cc.html + a69be2fcef0ae8e29300f298f252036d2 + (void *jarg1) + + + SWIGEXPORT void SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_Solver_Fail___ + constraint__solver__csharp__wrap_8cc.html + a823ada91a484c3836fe1439078779691 + (void *jarg1) + + + SWIGEXPORT char *SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_Solver_ToString___ + constraint__solver__csharp__wrap_8cc.html + a528616dd6e8d4811f3180b2166936dbc + (void *jarg1) + + + SWIGEXPORT long long SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_Solver_MemoryUsage___ + constraint__solver__csharp__wrap_8cc.html + a8149ef9fb93f997487f677042edde9ec + () + + + SWIGEXPORT long long SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_Solver_WallTime___ + constraint__solver__csharp__wrap_8cc.html + ae0b16f67147b5850c72f7f3c1edd9d18 + (void *jarg1) + + + SWIGEXPORT long long SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_Solver_Branches___ + constraint__solver__csharp__wrap_8cc.html + a37a74a299fcf0e7fdb09fffbca3b4152 + (void *jarg1) + + + SWIGEXPORT long long SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_Solver_Solutions___ + constraint__solver__csharp__wrap_8cc.html + a566ca339e64456a7d52a3ae69b94394a + (void *jarg1) + + + SWIGEXPORT long long SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_Solver_UncheckedSolutions___ + constraint__solver__csharp__wrap_8cc.html + a322e8c29eedc1681cc8b35325c58cb9a + (void *jarg1) + + + SWIGEXPORT long long SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_Solver_DemonRuns___ + constraint__solver__csharp__wrap_8cc.html + adb05a2479544d27ae04ef884a4f1bfaa + (void *jarg1, int jarg2) + + + SWIGEXPORT long long SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_Solver_Failures___ + constraint__solver__csharp__wrap_8cc.html + a797b6cb29b59dcf97136528f9ba3fa3a + (void *jarg1) + + + SWIGEXPORT long long SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_Solver_Neighbors___ + constraint__solver__csharp__wrap_8cc.html + a485361420f908919d585e618d5054bf1 + (void *jarg1) + + + SWIGEXPORT long long SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_Solver_FilteredNeighbors___ + constraint__solver__csharp__wrap_8cc.html + ab4beee31f2825d0746eef9d3d7fa14a8 + (void *jarg1) + + + SWIGEXPORT long long SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_Solver_AcceptedNeighbors___ + constraint__solver__csharp__wrap_8cc.html + aa1f969e0d4bda2a673a2bdc42918b6bf + (void *jarg1) + + + SWIGEXPORT unsigned long long SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_Solver_Stamp___ + constraint__solver__csharp__wrap_8cc.html + a9f36a75ae136315ba88cb0061d64dbb8 + (void *jarg1) + + + SWIGEXPORT unsigned long long SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_Solver_FailStamp___ + constraint__solver__csharp__wrap_8cc.html + a9d12f3fb0f92b59dc0b7e35d7b3411ff + (void *jarg1) + + + SWIGEXPORT void SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_Solver_SetOptimizationDirection___ + constraint__solver__csharp__wrap_8cc.html + a23bd318ec86b6ed6f7faa2f52496e4c7 + (void *jarg1, int jarg2) + + + SWIGEXPORT void *SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_Solver_MakeIntVar__SWIG_0___ + constraint__solver__csharp__wrap_8cc.html + aedf867ff2f565a40a63b914b5e92219e + (void *jarg1, long long jarg2, long long jarg3, char *jarg4) + + + SWIGEXPORT void *SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_Solver_MakeIntVar__SWIG_1___ + constraint__solver__csharp__wrap_8cc.html + ab8d55a207d463e0453f98b0b0946cfa2 + (void *jarg1, int length2, int64 *jarg2, char *jarg3) + + + SWIGEXPORT void *SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_Solver_MakeIntVar__SWIG_2___ + constraint__solver__csharp__wrap_8cc.html + a7da88b68d9dc1ce44ee0e41316623de8 + (void *jarg1, int length2, int *jarg2, char *jarg3) + + + SWIGEXPORT void *SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_Solver_MakeIntVar__SWIG_3___ + constraint__solver__csharp__wrap_8cc.html + a81b30e68f8f67e2d318c8de663a4aea3 + (void *jarg1, long long jarg2, long long jarg3) + + + SWIGEXPORT void *SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_Solver_MakeIntVar__SWIG_4___ + constraint__solver__csharp__wrap_8cc.html + ac6688445dfdc1a8cff3503f6090f791d + (void *jarg1, int length2, int64 *jarg2) + + + SWIGEXPORT void *SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_Solver_MakeIntVar__SWIG_5___ + constraint__solver__csharp__wrap_8cc.html + aa313a20651027f0a49605f2b1965fec5 + (void *jarg1, int length2, int *jarg2) + + + SWIGEXPORT void *SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_Solver_MakeBoolVar__SWIG_0___ + constraint__solver__csharp__wrap_8cc.html + a2a3b4ee99662e6f32b7875be1dd7f676 + (void *jarg1, char *jarg2) + + + SWIGEXPORT void *SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_Solver_MakeBoolVar__SWIG_1___ + constraint__solver__csharp__wrap_8cc.html + a9860f65f472b30a48b7de7fd7249060c + (void *jarg1) + + + SWIGEXPORT void *SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_Solver_MakeIntConst__SWIG_0___ + constraint__solver__csharp__wrap_8cc.html + ae862751ac0f6e0747f835abd9942e30a + (void *jarg1, long long jarg2, char *jarg3) + + + SWIGEXPORT void *SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_Solver_MakeIntConst__SWIG_1___ + constraint__solver__csharp__wrap_8cc.html + ae46a37fc2a7ee3ce1d6580f641d8d9e0 + (void *jarg1, long long jarg2) + + + SWIGEXPORT void *SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_Solver_MakeSum__SWIG_0___ + constraint__solver__csharp__wrap_8cc.html + a3e395181f213b2f78a5c18d874db760b + (void *jarg1, void *jarg2, void *jarg3) + + + SWIGEXPORT void *SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_Solver_MakeSum__SWIG_1___ + constraint__solver__csharp__wrap_8cc.html + ab9c2846bb3875b94665a146d586c4041 + (void *jarg1, void *jarg2, long long jarg3) + + + SWIGEXPORT void *SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_Solver_MakeSum__SWIG_2___ + constraint__solver__csharp__wrap_8cc.html + a2dd23b1a420d51551a496d5fb80dc111 + (void *jarg1, void *jarg2) + + + SWIGEXPORT void *SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_Solver_MakeScalProd__SWIG_0___ + constraint__solver__csharp__wrap_8cc.html + a4ee857941ed655eecb2b8178b76258b3 + (void *jarg1, void *jarg2, int length3, int64 *jarg3) + + + SWIGEXPORT void *SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_Solver_MakeScalProd__SWIG_1___ + constraint__solver__csharp__wrap_8cc.html + aae37d7cc406db8c702cc431c0f3f8d62 + (void *jarg1, void *jarg2, int length3, int *jarg3) + + + SWIGEXPORT void *SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_Solver_MakeDifference__SWIG_0___ + constraint__solver__csharp__wrap_8cc.html + a78d716e6c87bae7b2011d81b6cfe59b0 + (void *jarg1, void *jarg2, void *jarg3) + + + SWIGEXPORT void *SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_Solver_MakeDifference__SWIG_1___ + constraint__solver__csharp__wrap_8cc.html + a80fb2eb5a867149f36c0bb45cd11a6b8 + (void *jarg1, long long jarg2, void *jarg3) + + + SWIGEXPORT void *SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_Solver_MakeOpposite___ + constraint__solver__csharp__wrap_8cc.html + a5bb20e811a78b057417eb48aba614f25 + (void *jarg1, void *jarg2) + + + SWIGEXPORT void *SWIGSTDCALL + CSharp_GooglefOrToolsfConstraintSolver_Solver_MakeProd__SWIG_0___ + constraint__solver__csharp__wrap_8cc.html + a8bde76d8627d3c3883c9cda7e79a29b7</