Skip to content

Commit 745594a

Browse files
committed
cmake(python): run stub command AFTER pybind11 are copied
1 parent 990fc9e commit 745594a

File tree

1 file changed

+60
-47
lines changed

1 file changed

+60
-47
lines changed

cmake/python.cmake

Lines changed: 60 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -313,6 +313,53 @@ configure_file(
313313
${PROJECT_BINARY_DIR}/python/README.txt
314314
COPYONLY)
315315

316+
add_custom_command(
317+
OUTPUT python/pybind11_timestamp
318+
COMMAND ${CMAKE_COMMAND} -E remove -f pybind11_timestamp
319+
COMMAND ${CMAKE_COMMAND} -E copy
320+
$<TARGET_FILE:init_pybind11> ${PYTHON_PROJECT}/init/python
321+
COMMAND ${CMAKE_COMMAND} -E copy
322+
$<TARGET_FILE:knapsack_solver_pybind11> ${PYTHON_PROJECT}/algorithms/python
323+
COMMAND ${CMAKE_COMMAND} -E copy
324+
$<TARGET_FILE:linear_sum_assignment_pybind11> ${PYTHON_PROJECT}/graph/python
325+
COMMAND ${CMAKE_COMMAND} -E copy
326+
$<TARGET_FILE:max_flow_pybind11> ${PYTHON_PROJECT}/graph/python
327+
COMMAND ${CMAKE_COMMAND} -E copy
328+
$<TARGET_FILE:min_cost_flow_pybind11> ${PYTHON_PROJECT}/graph/python
329+
COMMAND ${CMAKE_COMMAND} -E copy
330+
$<TARGET_FILE:pywrapcp> ${PYTHON_PROJECT}/constraint_solver
331+
COMMAND ${CMAKE_COMMAND} -E copy
332+
$<TARGET_FILE:pywraplp> ${PYTHON_PROJECT}/linear_solver
333+
COMMAND ${CMAKE_COMMAND} -E copy
334+
$<TARGET_FILE:model_builder_helper_pybind11> ${PYTHON_PROJECT}/linear_solver/python
335+
COMMAND ${CMAKE_COMMAND} -E copy
336+
$<TARGET_FILE:pdlp_pybind11> ${PYTHON_PROJECT}/pdlp/python
337+
COMMAND ${CMAKE_COMMAND} -E copy
338+
$<TARGET_FILE:swig_helper_pybind11> ${PYTHON_PROJECT}/sat/python
339+
COMMAND ${CMAKE_COMMAND} -E copy
340+
$<TARGET_FILE:rcpsp_pybind11> ${PYTHON_PROJECT}/scheduling/python
341+
COMMAND ${CMAKE_COMMAND} -E copy
342+
$<TARGET_FILE:sorted_interval_list_pybind11> ${PYTHON_PROJECT}/util/python
343+
COMMAND ${CMAKE_COMMAND} -E touch ${PROJECT_BINARY_DIR}/python/pybind11_timestamp
344+
MAIN_DEPENDENCY
345+
ortools/python/setup.py.in
346+
DEPENDS
347+
init_pybind11
348+
knapsack_solver_pybind11
349+
linear_sum_assignment_pybind11
350+
max_flow_pybind11
351+
min_cost_flow_pybind11
352+
pywrapcp
353+
pywraplp
354+
model_builder_helper_pybind11
355+
pdlp_pybind11
356+
swig_helper_pybind11
357+
rcpsp_pybind11
358+
sorted_interval_list_pybind11
359+
WORKING_DIRECTORY python
360+
COMMAND_EXPAND_LISTS)
361+
362+
316363
# Generate Stub
317364
if(GENERATE_PYTHON_STUB)
318365
# Look for required python modules
@@ -328,9 +375,8 @@ find_program(
328375
)
329376

330377
add_custom_command(
331-
OUTPUT python/stub/timestamp
332-
COMMAND ${CMAKE_COMMAND} -E remove_directory stub
333-
COMMAND ${CMAKE_COMMAND} -E make_directory stub
378+
OUTPUT python/stub_timestamp
379+
COMMAND ${CMAKE_COMMAND} -E remove -f stub_timestamp
334380
COMMAND ${stubgen_EXECUTABLE} -p ortools.init.python.init --output .
335381
COMMAND ${stubgen_EXECUTABLE} -p ortools.algorithms.python.knapsack_solver --output .
336382
COMMAND ${stubgen_EXECUTABLE} -p ortools.graph.python.linear_sum_assignment --output .
@@ -343,22 +389,11 @@ add_custom_command(
343389
COMMAND ${stubgen_EXECUTABLE} -p ortools.sat.python.swig_helper --output .
344390
COMMAND ${stubgen_EXECUTABLE} -p ortools.scheduling.python.rcpsp --output .
345391
COMMAND ${stubgen_EXECUTABLE} -p ortools.util.python.sorted_interval_list --output .
346-
COMMAND ${CMAKE_COMMAND} -E touch ${PROJECT_BINARY_DIR}/python/stub/timestamp
392+
COMMAND ${CMAKE_COMMAND} -E touch ${PROJECT_BINARY_DIR}/python/stub_timestamp
347393
MAIN_DEPENDENCY
348394
ortools/python/setup.py.in
349395
DEPENDS
350-
init_pybind11
351-
knapsack_solver_pybind11
352-
linear_sum_assignment_pybind11
353-
max_flow_pybind11
354-
min_cost_flow_pybind11
355-
pywrapcp
356-
pywraplp
357-
model_builder_helper_pybind11
358-
pdlp_pybind11
359-
swig_helper_pybind11
360-
rcpsp_pybind11
361-
sorted_interval_list_pybind11
396+
python/pybind11_timestamp
362397
WORKING_DIRECTORY python
363398
COMMAND_EXPAND_LISTS)
364399
endif()
@@ -372,47 +407,25 @@ search_python_module(
372407
PACKAGE wheel)
373408

374409
add_custom_command(
375-
OUTPUT python/dist/timestamp
410+
OUTPUT python/dist_timestamp
376411
COMMAND ${CMAKE_COMMAND} -E remove_directory dist
377412
COMMAND ${CMAKE_COMMAND} -E make_directory ${PYTHON_PROJECT}/.libs
378413
# Don't need to copy static lib on Windows.
379-
COMMAND ${CMAKE_COMMAND} -E $<IF:$<STREQUAL:$<TARGET_PROPERTY:ortools,TYPE>,SHARED_LIBRARY>,copy,true>
380-
$<$<STREQUAL:$<TARGET_PROPERTY:ortools,TYPE>,SHARED_LIBRARY>:$<TARGET_SONAME_FILE:ortools>>
381-
${PYTHON_PROJECT}/.libs
382-
COMMAND ${CMAKE_COMMAND} -E copy $<TARGET_FILE:init_pybind11> ${PYTHON_PROJECT}/init/python
383-
COMMAND ${CMAKE_COMMAND} -E copy $<TARGET_FILE:knapsack_solver_pybind11> ${PYTHON_PROJECT}/algorithms/python
384-
COMMAND ${CMAKE_COMMAND} -E copy $<TARGET_FILE:linear_sum_assignment_pybind11> ${PYTHON_PROJECT}/graph/python
385-
COMMAND ${CMAKE_COMMAND} -E copy $<TARGET_FILE:max_flow_pybind11> ${PYTHON_PROJECT}/graph/python
386-
COMMAND ${CMAKE_COMMAND} -E copy $<TARGET_FILE:min_cost_flow_pybind11> ${PYTHON_PROJECT}/graph/python
387-
COMMAND ${CMAKE_COMMAND} -E copy $<TARGET_FILE:pywrapcp> ${PYTHON_PROJECT}/constraint_solver
388-
COMMAND ${CMAKE_COMMAND} -E copy $<TARGET_FILE:pywraplp> ${PYTHON_PROJECT}/linear_solver
389-
COMMAND ${CMAKE_COMMAND} -E copy $<TARGET_FILE:model_builder_helper_pybind11> ${PYTHON_PROJECT}/linear_solver/python
390-
COMMAND ${CMAKE_COMMAND} -E copy $<TARGET_FILE:pdlp_pybind11> ${PYTHON_PROJECT}/pdlp/python
391-
COMMAND ${CMAKE_COMMAND} -E copy $<TARGET_FILE:swig_helper_pybind11> ${PYTHON_PROJECT}/sat/python
392-
COMMAND ${CMAKE_COMMAND} -E copy $<TARGET_FILE:rcpsp_pybind11> ${PYTHON_PROJECT}/scheduling/python
393-
COMMAND ${CMAKE_COMMAND} -E copy $<TARGET_FILE:sorted_interval_list_pybind11> ${PYTHON_PROJECT}/util/python
414+
COMMAND ${CMAKE_COMMAND} -E
415+
$<IF:$<STREQUAL:$<TARGET_PROPERTY:ortools,TYPE>,SHARED_LIBRARY>,copy,true>
416+
$<$<STREQUAL:$<TARGET_PROPERTY:ortools,TYPE>,SHARED_LIBRARY>:$<TARGET_SONAME_FILE:ortools>>
417+
${PYTHON_PROJECT}/.libs
394418
#COMMAND ${Python3_EXECUTABLE} setup.py bdist_egg bdist_wheel
395419
COMMAND ${Python3_EXECUTABLE} setup.py bdist_wheel
396-
COMMAND ${CMAKE_COMMAND} -E touch ${PROJECT_BINARY_DIR}/python/dist/timestamp
420+
COMMAND ${CMAKE_COMMAND} -E touch ${PROJECT_BINARY_DIR}/python/dist_timestamp
397421
MAIN_DEPENDENCY
398422
ortools/python/setup.py.in
399423
DEPENDS
400424
python/setup.py
401425
Py${PROJECT_NAME}_proto
402426
${PROJECT_NAMESPACE}::ortools
403-
init_pybind11
404-
knapsack_solver_pybind11
405-
linear_sum_assignment_pybind11
406-
max_flow_pybind11
407-
min_cost_flow_pybind11
408-
pywrapcp
409-
pywraplp
410-
model_builder_helper_pybind11
411-
pdlp_pybind11
412-
swig_helper_pybind11
413-
rcpsp_pybind11
414-
sorted_interval_list_pybind11
415-
$<$<BOOL:${GENERATE_PYTHON_STUB}>:python/stub/timestamp>
427+
python/pybind11_timestamp
428+
$<$<BOOL:${GENERATE_PYTHON_STUB}>:python/stub_timestamp>
416429
BYPRODUCTS
417430
python/${PYTHON_PROJECT}
418431
python/${PYTHON_PROJECT}.egg-info
@@ -424,7 +437,7 @@ add_custom_command(
424437
# Main Target
425438
add_custom_target(python_package ALL
426439
DEPENDS
427-
python/dist/timestamp
440+
python/dist_timestamp
428441
WORKING_DIRECTORY python)
429442

430443
# Install rules

0 commit comments

Comments
 (0)