cmake: add constraint_solver_pybind11 support
This commit is contained in:
@@ -314,6 +314,7 @@ file(GENERATE OUTPUT ${PYTHON_PROJECT_DIR}/algorithms/__init__.py CONTENT "")
|
||||
file(GENERATE OUTPUT ${PYTHON_PROJECT_DIR}/algorithms/python/__init__.py CONTENT "")
|
||||
file(GENERATE OUTPUT ${PYTHON_PROJECT_DIR}/bop/__init__.py CONTENT "")
|
||||
file(GENERATE OUTPUT ${PYTHON_PROJECT_DIR}/constraint_solver/__init__.py CONTENT "")
|
||||
file(GENERATE OUTPUT ${PYTHON_PROJECT_DIR}/constraint_solver/python/__init__.py CONTENT "")
|
||||
file(GENERATE OUTPUT ${PYTHON_PROJECT_DIR}/glop/__init__.py CONTENT "")
|
||||
file(GENERATE OUTPUT ${PYTHON_PROJECT_DIR}/graph/__init__.py CONTENT "")
|
||||
file(GENERATE OUTPUT ${PYTHON_PROJECT_DIR}/graph/python/__init__.py CONTENT "")
|
||||
@@ -461,6 +462,8 @@ add_custom_command(
|
||||
$<TARGET_FILE:min_cost_flow_pybind11> ${PYTHON_PROJECT}/graph/python
|
||||
COMMAND ${CMAKE_COMMAND} -E copy
|
||||
$<TARGET_FILE:pywrapcp> ${PYTHON_PROJECT}/constraint_solver
|
||||
COMMAND ${CMAKE_COMMAND} -E copy
|
||||
$<TARGET_FILE:constraint_solver_pybind11> ${PYTHON_PROJECT}/constraint_solver/python
|
||||
COMMAND ${CMAKE_COMMAND} -E copy
|
||||
$<TARGET_FILE:pywraplp> ${PYTHON_PROJECT}/linear_solver
|
||||
COMMAND ${CMAKE_COMMAND} -E copy
|
||||
@@ -490,6 +493,7 @@ add_custom_command(
|
||||
max_flow_pybind11
|
||||
min_cost_flow_pybind11
|
||||
pywrapcp
|
||||
constraint_solver_pybind11
|
||||
routing_pybind11
|
||||
pywraplp
|
||||
model_builder_helper_pybind11
|
||||
@@ -526,6 +530,7 @@ add_custom_command(
|
||||
COMMAND ${stubgen_EXECUTABLE} -p ortools.graph.python.max_flow --output .
|
||||
COMMAND ${stubgen_EXECUTABLE} -p ortools.graph.python.min_cost_flow --output .
|
||||
COMMAND ${stubgen_EXECUTABLE} -p ortools.constraint_solver.pywrapcp --output .
|
||||
COMMAND ${stubgen_EXECUTABLE} -p ortools.constraint_solver.python.constraint_solver --output .
|
||||
COMMAND ${stubgen_EXECUTABLE} -p ortools.linear_solver.pywraplp --output .
|
||||
COMMAND ${stubgen_EXECUTABLE} -p ortools.linear_solver.python.model_builder_helper --output .
|
||||
COMMAND ${stubgen_EXECUTABLE} -p pybind11_abseil.status --output .
|
||||
|
||||
@@ -11,6 +11,7 @@
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
# pywrapcp
|
||||
set_property(SOURCE routing.i PROPERTY CPLUSPLUS ON)
|
||||
set_property(SOURCE routing.i PROPERTY SWIG_MODULE_NAME pywrapcp)
|
||||
set_property(SOURCE routing.i PROPERTY COMPILE_DEFINITIONS
|
||||
@@ -47,6 +48,33 @@ if(MSVC)
|
||||
target_link_libraries(pywrapcp PRIVATE ${Python3_LIBRARIES})
|
||||
endif()
|
||||
|
||||
# constraint_solver
|
||||
pybind11_add_module(constraint_solver_pybind11 MODULE constraint_solver.cc)
|
||||
set_target_properties(constraint_solver_pybind11 PROPERTIES
|
||||
LIBRARY_OUTPUT_NAME "constraint_solver")
|
||||
|
||||
# note: macOS is APPLE and also UNIX !
|
||||
if(APPLE)
|
||||
set_target_properties(constraint_solver_pybind11 PROPERTIES
|
||||
SUFFIX ".so"
|
||||
INSTALL_RPATH "@loader_path;@loader_path/../../../${PYTHON_PROJECT}/.libs"
|
||||
)
|
||||
set_property(TARGET constraint_solver_pybind11 APPEND PROPERTY
|
||||
LINK_FLAGS "-flat_namespace -undefined suppress"
|
||||
)
|
||||
elseif(UNIX)
|
||||
set_target_properties(constraint_solver_pybind11 PROPERTIES
|
||||
INSTALL_RPATH "$ORIGIN:$ORIGIN/../../../${PYTHON_PROJECT}/.libs"
|
||||
)
|
||||
endif()
|
||||
|
||||
target_link_libraries(constraint_solver_pybind11 PRIVATE
|
||||
${PROJECT_NAMESPACE}::ortools
|
||||
pybind11_native_proto_caster
|
||||
)
|
||||
add_library(${PROJECT_NAMESPACE}::constraint_solver_pybind11 ALIAS constraint_solver_pybind11)
|
||||
|
||||
# Test
|
||||
if(BUILD_TESTING)
|
||||
file(GLOB PYTHON_SRCS "*_test.py")
|
||||
foreach(FILE_NAME IN LISTS PYTHON_SRCS)
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
"""Test for constraint_solver pybind11 layer."""
|
||||
|
||||
from absl.testing import absltest
|
||||
from ortools.constraint_solver import constraint_solver
|
||||
from ortools.constraint_solver.python import constraint_solver
|
||||
|
||||
|
||||
class ConstraintSolverTest(absltest.TestCase):
|
||||
|
||||
@@ -71,6 +71,10 @@ setup(
|
||||
'$<TARGET_FILE_NAME:pywrapcp>',
|
||||
'*.pyi'
|
||||
],
|
||||
'@PYTHON_PROJECT@.constraint_solver.python':[
|
||||
'$<TARGET_FILE_NAME:constraint_solver_pybind11>',
|
||||
'*.pyi'
|
||||
],
|
||||
'@PYTHON_PROJECT@.linear_solver':[
|
||||
'$<TARGET_FILE_NAME:pywraplp>',
|
||||
'*.pyi'
|
||||
|
||||
Reference in New Issue
Block a user