From f70fac6382b78ad3a4b4288372026f2f8213b918 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Thu, 15 Sep 2022 18:15:03 +0200 Subject: Python: fix failing bpy build with full release config on Windows * Fix issue with different build and install paths. * Fix issue with oneAPI kernel build. Ref D15957 --- .../cmake/platform/platform_win32_bundle_crt.cmake | 26 ++++++++++++---------- source/creator/CMakeLists.txt | 6 ++--- 2 files changed, 17 insertions(+), 15 deletions(-) diff --git a/build_files/cmake/platform/platform_win32_bundle_crt.cmake b/build_files/cmake/platform/platform_win32_bundle_crt.cmake index f5dd0c8c7bc..f197498d97b 100644 --- a/build_files/cmake/platform/platform_win32_bundle_crt.cmake +++ b/build_files/cmake/platform/platform_win32_bundle_crt.cmake @@ -3,20 +3,22 @@ # First generate the manifest for tests since it will not need the dependency on the CRT. configure_file(${CMAKE_SOURCE_DIR}/release/windows/manifest/blender.exe.manifest.in ${CMAKE_CURRENT_BINARY_DIR}/tests.exe.manifest @ONLY) -if(WITH_WINDOWS_BUNDLE_CRT) - set(CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP TRUE) - set(CMAKE_INSTALL_UCRT_LIBRARIES TRUE) - set(CMAKE_INSTALL_OPENMP_LIBRARIES ${WITH_OPENMP}) - - # This sometimes can change when updates are installed and the compiler version - # changes, so test if it exists and if not, give InstallRequiredSystemLibraries - # another chance to figure out the path. - if(MSVC_REDIST_DIR AND NOT EXISTS "${MSVC_REDIST_DIR}") - unset(MSVC_REDIST_DIR CACHE) - endif() +# Always detect system libraries, since they are also used by oneAPI. +# But don't always install them, only for WITH_WINDOWS_BUNDLE_CRT=ON. +set(CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP TRUE) +set(CMAKE_INSTALL_UCRT_LIBRARIES TRUE) +set(CMAKE_INSTALL_OPENMP_LIBRARIES ${WITH_OPENMP}) + +# This sometimes can change when updates are installed and the compiler version +# changes, so test if it exists and if not, give InstallRequiredSystemLibraries +# another chance to figure out the path. +if(MSVC_REDIST_DIR AND NOT EXISTS "${MSVC_REDIST_DIR}") + unset(MSVC_REDIST_DIR CACHE) +endif() - include(InstallRequiredSystemLibraries) +include(InstallRequiredSystemLibraries) +if(WITH_WINDOWS_BUNDLE_CRT) # ucrtbase(d).dll cannot be in the manifest, due to the way windows 10 handles # redirects for this dll, for details see T88813. foreach(lib ${CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS}) diff --git a/source/creator/CMakeLists.txt b/source/creator/CMakeLists.txt index 050bc8ee608..210014c1585 100644 --- a/source/creator/CMakeLists.txt +++ b/source/creator/CMakeLists.txt @@ -344,10 +344,10 @@ if(UNIX AND NOT APPLE) elseif(WIN32) if(WITH_PYTHON_MODULE) - set(TARGETDIR_BPY $) - set(TARGETDIR_VER $/${BLENDER_VERSION}) + set(TARGETDIR_BPY ${CMAKE_INSTALL_PREFIX_WITH_CONFIG}/bpy) + set(TARGETDIR_VER ${CMAKE_INSTALL_PREFIX_WITH_CONFIG}/bpy/${BLENDER_VERSION}) # Important the DLL's are next to `__init__.pyd` otherwise it won't load. - set(TARGETDIR_LIB $) + set(TARGETDIR_LIB ${CMAKE_INSTALL_PREFIX_WITH_CONFIG}/bpy) else() set(TARGETDIR_VER ${BLENDER_VERSION}) set(TARGETDIR_TEXT .) -- cgit v1.2.3