CMake: Fix build dependency tracking for Python bindings generation.
This caused a rebuild to always happen due to incorrect dependency tracking. Fixes https://github.com/FreeCAD/FreeCAD/issues/20402.
This commit is contained in:
committed by
Benjamin Nauck
parent
b33c236322
commit
0206ff59cd
@@ -148,7 +148,8 @@ macro(generate_from_py BASE_NAME)
|
||||
file(TO_NATIVE_PATH "${TOOL_PATH}" TOOL_NATIVE_PATH)
|
||||
file(TO_NATIVE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/${BASE_NAME}.pyi" SOURCE_NATIVE_PATH)
|
||||
|
||||
set(SOURCE_CPP_PATH "${CMAKE_CURRENT_BINARY_DIR}/${BASE_NAME}.cpp" )
|
||||
set(SOURCE_CPP_PATH "${CMAKE_CURRENT_BINARY_DIR}/${BASE_NAME}Py.cpp" )
|
||||
set(SOURCE_H_PATH "${CMAKE_CURRENT_BINARY_DIR}/${BASE_NAME}Py.h" )
|
||||
|
||||
# BASE_NAME may include also a path name
|
||||
GET_FILENAME_COMPONENT(OUTPUT_PATH "${SOURCE_CPP_PATH}" PATH)
|
||||
@@ -161,14 +162,14 @@ macro(generate_from_py BASE_NAME)
|
||||
)
|
||||
endif()
|
||||
add_custom_command(
|
||||
OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/${BASE_NAME}_.h" "${CMAKE_CURRENT_BINARY_DIR}/${BASE_NAME}_.cpp"
|
||||
OUTPUT "${SOURCE_H_PATH}" "${SOURCE_CPP_PATH}"
|
||||
COMMAND ${Python3_EXECUTABLE} "${TOOL_NATIVE_PATH}" --outputPath "${OUTPUT_NATIVE_PATH}" ${BASE_NAME}.pyi
|
||||
MAIN_DEPENDENCY "${BASE_NAME}.pyi"
|
||||
DEPENDS
|
||||
"${CMAKE_SOURCE_DIR}/src/Tools/bindings/templates/templateClassPyExport.py"
|
||||
"${TOOL_PATH}"
|
||||
WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}"
|
||||
COMMENT "Building ${BASE_NAME}.h/.cpp out of ${BASE_NAME}.pyi"
|
||||
COMMENT "Building ${BASE_NAME}Py.h/.cpp out of ${BASE_NAME}.pyi"
|
||||
)
|
||||
endmacro(generate_from_py)
|
||||
|
||||
|
||||
@@ -285,7 +285,7 @@ generate_from_py(ViewProviderExtension)
|
||||
generate_from_xml(WorkbenchPy)
|
||||
generate_from_py(Workbench)
|
||||
generate_from_xml(Selection/SelectionObjectPy)
|
||||
generate_from_py(Selection/SelectionObjectPy)
|
||||
generate_from_py(Selection/SelectionObject)
|
||||
generate_from_xml(LinkViewPy)
|
||||
generate_from_py(LinkView)
|
||||
generate_from_xml(ViewProviderLinkPy)
|
||||
|
||||
Reference in New Issue
Block a user