Commit Graph

61 Commits

Author SHA1 Message Date
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
Corentin Le Molgat
1eba970bf3 Update pdlp 2022-03-02 22:10:54 +01:00
Mizux Seiha
32b101b9ee cmake: Fixup for pdlp 2022-02-25 23:43:01 +01:00
Laurent Perron
ce02461741 wrap MPModelRequest in python 2022-01-02 10:30:57 +01:00
Mizux Seiha
655eec5260 cmake: rework python 2021-12-03 14:20:19 +01:00
Laurent Perron
9fefaadfaf [LP] change default tolerance on verify solution; add missing base include 2021-11-28 13:01:55 +01:00
Laurent Perron
475880c6c7 show load model errors in python linear solver 2021-10-12 10:51:42 +02:00
Laurent Perron
778b1b3854 [MPSolver] Add better code to interrupt solve; rewrite thread management code when using the CP-SAT solver backend 2021-09-23 14:30:01 +02:00
Laurent Perron
6a84a52d9e switch from pdoc3 to pdoc 2021-09-20 15:23:45 +02: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
8bb54b04ef Bump Copyright to 2021
FYI:
find ortools \( -type d -name .git -prune \) -o -type f -print0 | xargs -0 sed -i 's/\(Copyright 2010\)-2018/\1-2021/g'
2021-04-01 21:00:53 +02:00
Corentin Le Molgat
9662b630d6 python: Fix linear_solver.i wrapper 2021-04-01 16:39:12 +02:00
Laurent Perron
3779db1f83 deep rewrite of the gurobi loading code 2021-03-19 16:24:35 +01:00
Laurent Perron
6e15467065 linear solver: int64 -> int64_t; use new CP-SAT logging 2021-03-12 16:59:39 +01:00
Laurent Perron
c55f00b7ed improve StopSearch() robustness 2021-01-08 09:48:52 +01:00
Laurent Perron
bcb7b3073d large synchro with internal code: linear solver: introduce intermediate SCIP layer called gscip; sat: more work on slow propagation detection; base: remove statusor, use abseil version; constraint solver: more work on internal local search 2020-10-18 16:38:25 +02:00
Mizux Seiha
dbb878aa36 python: Fix LoadSolutionFromProto leak (Fix #2190) 2020-10-08 13:51:47 +02:00
Laurent Perron
23aeaf6072 fix #2094 2020-07-06 11:53:52 +02:00
Laurent Perron
f0f675debd remove non C++ leaks with the linear solver 2020-06-25 11:15:19 +02:00
Laurent Perron
a8fc48e1fd polish linear solver backend selection code 2020-06-25 10:32:58 +02:00
Laurent Perron
d6ecea46ad experimental support for dynamic loading of gurobi; add MPSolver.CreateSolver() factory method for non C++ languages to check correctly installed linear solver backends and licenses when needed; port all non C++ examples 2020-06-24 18:11:12 +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
22356ff523 Sync g3 -> gh part_2 2020-03-09 18:34:21 +01: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
Laurent Perron
2ff000ab9a bump abseil to the latest version, adapt the code all around 2019-11-20 14:28:11 -08:00
Laurent Perron
bc43e37c90 add sat inferface to the linear solver wrapper 2019-10-18 14:39:51 +02:00
Laurent Perron
439cebb9c8 polish xpress support 2019-09-04 15:20:45 +02:00
Laurent Perron
d216e3caab remove obsolete unignore 2019-07-18 11:36:10 -07:00
Laurent Perron
8152464418 document more linear solver code 2019-07-17 07:08:02 -07:00
Laurent Perron
ef8be0d86e polish doc 2019-07-16 10:13:02 -07:00
Laurent Perron
afc4ad1214 simplify python vector swig 2019-07-05 09:32:43 +02:00
Laurent Perron
e6ff7153aa polish new linear_solver non C++ API 2019-07-01 14:13:15 +02:00
Laurent Perron
d4c088a367 test linear solver constraints(), variables(), and SetHint in Python/Java/C# 2019-07-01 13:41:17 +02:00
Laurent Perron
92891ceb01 implement #506 2019-06-29 17:20:42 +02:00
Laurent Perron
8d492a7dfc fix and test SetHint for linear_solver/Python 2019-06-29 15:54:26 +02:00
Laurent Perron
8a4ae8bff0 working SetNumTheads in Python/Java/C#; Working SetHint in java/C# 2019-06-29 12:35:15 +02:00
Laurent Perron
8ade2b9209 revert useless previous CL 2019-06-24 15:43:03 +02:00
Laurent Perron
c5554f6ea7 fix #1374 2019-06-24 11:25:24 +02:00
Laurent Perron
342d703d18 wrap linear solver proto APIs in python 2019-05-17 14:02:59 +02:00
Laurent Perron
dbef2bb42f expose SetNumThreads in python 2019-05-16 08:12:33 +02:00
Corentin Le Molgat
361df3bab6 Expose SetUB and SetLB methods on MPVariables in python. 2019-05-14 11:24:32 +02:00
Laurent Perron
aeec2312d7 fix missing export methods in python 2019-05-10 14:23:28 +02:00
Laurent Perron
2a4fc564b4 add constraint with index in linear solver (API + Proto); rewrite MPS reader/writer; update base library as needed 2019-04-18 19:18:48 +02:00
Laurent Perron
fedf3d4ff4 revamp and simplify swig support, force typed enums for C# and Java for all except the constraint_solver/routing module; port examples; Fix SAT on very large problems 2018-12-11 17:03:03 +01:00
Laurent Perron
1e59a36509 reduce swig complexity 2018-12-11 11:52:50 +01:00
Laurent Perron
589047ce90 python support int64 -> int64_t 2018-12-10 13:35:41 +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
Laurent Perron
87b9d55b21 update license headers 2018-11-10 18:00:53 +01:00