Files
test/build_files/build_environment/cmake/package_python.cmake
Ray Molenkamp b150f56a5d Revert "Deps_builder: pydantic 2.11.7"
This reverts commit 81e862140f

binary packages turned out to have issues for debug builds on windows
as they link to python_311d.dll and none of the binary packages offfered
on pypi offered a debug build. Building pydantic from source was rejected
due to no rust build infrastructure being in place yet and deemed not
worth the effort for this one library dependency, an alternate solution
was chosen by the assets team that requested this dependency.
2025-07-15 08:09:37 -06:00

107 lines
3.8 KiB
CMake

# SPDX-FileCopyrightText: 2019-2022 Blender Authors
#
# SPDX-License-Identifier: GPL-2.0-or-later
if(MSVC)
set(PYTARGET ${HARVEST_TARGET}/python/${PYTHON_SHORT_VERSION_NO_DOTS})
set(PYSRC ${LIBDIR}/python/)
if(BUILD_MODE STREQUAL Release)
add_custom_command(
OUTPUT ${PYTARGET}/bin/python${PYTHON_POSTFIX}.exe
COMMAND echo packaging python
COMMAND echo this should output at ${PYTARGET}/bin/python${PYTHON_POSTFIX}.exe
COMMAND ${CMAKE_COMMAND} -E make_directory ${PYTARGET}/libs
COMMAND ${CMAKE_COMMAND} -E copy
${PYSRC}/libs/python${PYTHON_SHORT_VERSION_NO_DOTS}.lib
${PYTARGET}/libs/python${PYTHON_SHORT_VERSION_NO_DOTS}.lib
COMMAND ${CMAKE_COMMAND} -E copy
${PYSRC}/python.exe
${PYTARGET}/bin/python.exe
COMMAND ${CMAKE_COMMAND} -E copy
${PYSRC}/python${PYTHON_SHORT_VERSION_NO_DOTS}.dll
${PYTARGET}/bin/python${PYTHON_SHORT_VERSION_NO_DOTS}.dll
COMMAND ${CMAKE_COMMAND} -E copy
${PYSRC}/python3${PYTHON_POSTFIX}.dll
${PYTARGET}/bin/python3${PYTHON_POSTFIX}.dll
COMMAND ${CMAKE_COMMAND} -E copy
${PYSRC}/python${PYTHON_SHORT_VERSION_NO_DOTS}.pdb
${PYTARGET}/libs/python${PYTHON_SHORT_VERSION_NO_DOTS}.pdb
COMMAND ${CMAKE_COMMAND} -E copy_directory
${PYSRC}/include/
${PYTARGET}/include/
COMMAND ${CMAKE_COMMAND} -E copy_directory
${PYSRC}/lib/
${PYTARGET}/lib/
COMMAND ${CMAKE_COMMAND} -E copy_directory
${PYSRC}/DLLs/
${PYTARGET}/DLLs/
COMMAND cd ${PYTARGET}/lib/ &&
for /d /r . %%d in (__pycache__) do @if exist "%%d" echo "%%d" &&
rd /s/q "%%d"
)
add_custom_target(Package_Python
ALL
DEPENDS
external_python
external_numpy
external_python_site_packages
external_zstandard
external_cython
OUTPUT
${HARVEST_TARGET}/python/${PYTHON_SHORT_VERSION_NO_DOTS}/bin/python${PYTHON_POSTFIX}.exe
)
endif()
if(BUILD_MODE STREQUAL Debug)
add_custom_command(
OUTPUT ${PYTARGET}/bin/python${PYTHON_POSTFIX}.exe
COMMAND echo packaging python
COMMAND echo this should output at ${PYTARGET}/bin/python${PYTHON_POSTFIX}.exe
COMMAND ${CMAKE_COMMAND} -E make_directory ${PYTARGET}/libs
COMMAND ${CMAKE_COMMAND} -E copy
${PYSRC}/libs/python${PYTHON_SHORT_VERSION_NO_DOTS}${PYTHON_POSTFIX}.lib
${PYTARGET}/libs/python${PYTHON_SHORT_VERSION_NO_DOTS}${PYTHON_POSTFIX}.lib
COMMAND ${CMAKE_COMMAND} -E copy
${PYSRC}/python${PYTHON_POSTFIX}.exe
${PYTARGET}/bin/python${PYTHON_POSTFIX}.exe
COMMAND ${CMAKE_COMMAND} -E copy
${PYSRC}/python${PYTHON_SHORT_VERSION_NO_DOTS}${PYTHON_POSTFIX}.dll
${PYTARGET}/bin/python${PYTHON_SHORT_VERSION_NO_DOTS}${PYTHON_POSTFIX}.dll
COMMAND ${CMAKE_COMMAND} -E copy
${PYSRC}/python3${PYTHON_POSTFIX}.dll
${PYTARGET}/bin/python3${PYTHON_POSTFIX}.dll
COMMAND ${CMAKE_COMMAND} -E copy
${PYSRC}/python${PYTHON_SHORT_VERSION_NO_DOTS}${PYTHON_POSTFIX}.pdb
${PYTARGET}/libs/python${PYTHON_SHORT_VERSION_NO_DOTS}${PYTHON_POSTFIX}.pdb
COMMAND ${CMAKE_COMMAND} -E copy_directory
${PYSRC}/include/
${PYTARGET}/include/
COMMAND ${CMAKE_COMMAND} -E copy_directory
${PYSRC}/lib/
${PYTARGET}/lib/
COMMAND ${CMAKE_COMMAND} -E copy_directory
${PYSRC}/DLLs/
${PYTARGET}/DLLs/
COMMAND cd ${PYTARGET}/lib/ &&
for /d /r . %%d in (__pycache__) do @if exist "%%d" echo "%%d" &&
rd /s/q "%%d"
)
add_custom_target(Package_Python
ALL
DEPENDS
external_python
external_numpy
external_python_site_packages
external_zstandard
external_cython
OUTPUT
${PYTARGET}/bin/python${PYTHON_POSTFIX}.exe
)
endif()
endif()