30 Commits

Author SHA1 Message Date
Corentin Le Molgat
a7f49a2585 backport from main
* rename swig files .i in .swig
* update constraint_solver and routing
* backport math_opt changes
* move dynamic loading to ortools/third_party_solvers
2025-07-23 23:12:34 +02:00
Corentin Le Molgat
a66a6daac7 Bump Copyright to 2025 2025-01-10 11:35:44 +01:00
Corentin Le Molgat
5252c00007 cmake cleanup 2024-12-16 15:45:02 +01:00
Corentin Le Molgat
d5c3764d77 cmake: Fix macOS 15 python build 2024-12-16 15:45:02 +01:00
Mizux Seiha
52245b251d cmake: Fix eigen usage 2024-02-09 01:00:02 +01:00
Corentin Le Molgat
75f197409a cmake: rework add_python_test()
* Add FILE_NAME option
* add optional COMPONENT_NAME option
  note: needed if test.py is not in a ortools/<component>/python/ dir
2024-01-15 13:33:49 +01:00
Mizux Seiha
a76bf1c5dd bump license boilerplate 2024-01-04 13:43:15 +01:00
Laurent Perron
346642b871 remove the pywrap prefix from pybind11 modules; add _pybind to the cmake target of the same modules 2023-07-03 14:30:27 +02:00
Laurent Perron
9635b925f6 reformat linear_solver python code to BLACK; support pybind11_protobuf 2023-06-28 15:57:32 +02:00
Mizux Seiha
53c1e40969 swig: Fix define definition
need to set ABSL_MUST_USE_RESULT to empty string so '=' is mandatory
2023-05-30 14:49:13 +02:00
Corentin Le Molgat
192e690204 cmake: cleanup 2023-05-24 15:39:37 +02:00
Laurent Perron
d0f6b6db74 add typing info to model_builder/python; add numpy variable support; update samples 2023-02-28 10:55:51 +04:00
Corentin Le Molgat
41d60ad520 cmake: Fix SWIG build
Still need to define ABSL_MUST_USE_RESULT= even with swig 4.1.1
2023-02-06 08:47:46 +01:00
Corentin Le Molgat
9054f13f95 cmake: remove ABSL_MUST_USE_RESULT for swig
should be fixed with absl upstream + swig 4.1 now support attibute
2023-02-06 08:47:46 +01:00
Corentin Le Molgat
ecd2afe4bb swig: Fix python build when using swig 4.1.0 2022-11-07 15:31:47 +01:00
Corentin Le Molgat
899e30d88b cmake: Fix python build
* fix cmake/python.cmake
* fix <cmp>/python/CMakeLists.txt
* fix examples/tests/CMakeLists.txt
2022-09-22 22:39:55 +02:00
Laurent Perron
81b31ff24b Move model_builder under linear_solver 2022-09-12 11:28:52 +02:00
Corentin Le Molgat
1af55b2be3 Add license boilerplate 2022-06-21 11:25:29 +02:00
StefanBruens
9021ffbb95 Build Python modules as CMake MODULEs (#3259)
Python since 3.8 no longer links to the interpreter library, so
symbols like `PyExc_AttributeError` will be undefined at link time.

This causes build failures when shared libraries are linked with
`-Wl,--no-undefined`. Use `TYPE MODULE` for python extension modules,
which allows to specify distinct flags via CMAKE_MODULE_LINKER_FLAGS
vs CMAKE_SHARED_LINKER_FLAGS. (The same is already used by
`pybind11_add_module(... MODULE ...)`).

Fixes #3258.
2022-04-28 15:50:56 +02:00
Mizux Seiha
655eec5260 cmake: rework python 2021-12-03 14:20:19 +01:00
Mizux Seiha
c7441c346c cmake: Migrate to Python3 and use Development.Module
note: Development.Module is use to look for python header only
since library is not available on manylinux.
see: https://gitlab.kitware.com/cmake/cmake/-/issues/20425

note2: Development.Module has been introduced in CMake 3.18
ref: https://cmake.org/cmake/help/latest/module/FindPython3.html
2021-09-08 16:08:52 +02:00
Mizux Seiha
90a3155af1 cmake(python): Fix module update 2020-05-20 18:46:57 +02:00
Mizux Seiha
775aec03dd cmake(python): Refactor
* Use new Python module
* Use setup.py.in input file (should fix windows error)
2020-05-20 10:13:14 +02:00
Corentin Le Molgat
f2981e11c3 CMake:python: Add missing definition for swig 2020-03-05 13:04:08 +01:00
Corentin Le Molgat
4c7456b175 CMake: Update Python support
* Add define SWIGWORDSIZE64 on Linux
* Add -doxygen option
* add ortools/util/python
* Move python generated stuff to BINARY_DIR/python
* Bump CMake >= 3.14 as requirement
  * SWIG module rework from 3.9 to 3.14
  * Python module rework in 3.12
* Drop Python 2.7 support (like in Makefile)
* Fix clean target
  * OUTPUT/BYPRODUCTS path are relative to CURRENT_BINARY_DIR not WORKING_DIR
* Fix ortools package install in virtualenv
* Clean target now remove the <build>/venv directory
2020-02-28 08:21:27 +01:00
Corentin Le Molgat
47fefdc3bb Remove tab from CMakeLists.txt
- Mandatory to follow google internal convention
2018-11-13 10:12:02 +01:00
Corentin Le Molgat
19ae1c121c Fix python loader_path 2018-01-22 14:33:20 +01:00
Corentin Le Molgat
6856567eda Rework CMakeLists.txt
Dependencies:
- Add dependencies as subprojects instead of prebuild (aka imported target)
- add zlib project
- Use Cbc as CMake subproject instead of prebuilt
- Add log between each subproject
- Force gflags namespace to gflags

Or-tools:
- Rework python.cmake support
- Fix missing ortool.util in python (#558)
- Try to use static library for ortools::proto
pros: can use target_link_libraries to get includes etc...
cons: lot of symbols undefined since libortools.so will strip everything -_-
- Use add_library(XXX OBJECT) for ortools/*
- fix get version from git when using small depth copy
- Create Install rule for ortools
- Don't create export rules
note: since we use subprojects instead of Imported Target,
ortools export complained against target deps "that is not in the export set."

Update windows support
- add swig project
- Protobuf force the use of /MD instead of /MT
- or-tools use /MD by default
- Add missing ws2_32
- Add missing psapi
- Update windows disable warnings list
- Build Static or-tools on Windows
- fix windows export symbols leak issue

Signed-off-by: Corentin Le Molgat <corentinl@google.com>
2018-01-19 15:03:25 +01:00
Amit Prakash Ambasta
553772d03c Removed python build for cleaner patches 2017-05-31 12:00:50 +05:30
Amit Prakash Ambasta
2a12468b93 Added cmake support for C++, initial python build support 2017-05-30 12:02:56 +05:30