diff --git a/build_files/build_environment/cmake/cython.cmake b/build_files/build_environment/cmake/cython.cmake index c4666875f83..c943b515275 100644 --- a/build_files/build_environment/cmake/cython.cmake +++ b/build_files/build_environment/cmake/cython.cmake @@ -28,7 +28,7 @@ ExternalProject_Add(external_cython BUILD_COMMAND ${PYTHON_BINARY} setup.py - build ${CYTHON_BUILD_OPTION} -j${MAKE_THREADS} + build ${CYTHON_BUILD_OPTION} -j${PYTHON_MAKE_THREADS} install --old-and-unmanageable diff --git a/build_files/build_environment/cmake/numpy.cmake b/build_files/build_environment/cmake/numpy.cmake index caf78b28e83..fa420f4c63d 100644 --- a/build_files/build_environment/cmake/numpy.cmake +++ b/build_files/build_environment/cmake/numpy.cmake @@ -29,7 +29,7 @@ ExternalProject_Add(external_numpy BUILD_COMMAND ${PYTHON_BINARY} setup.py - build ${NUMPY_BUILD_OPTION} -j${MAKE_THREADS} + build ${NUMPY_BUILD_OPTION} -j${PYTHON_MAKE_THREADS} install --old-and-unmanageable diff --git a/build_files/build_environment/cmake/options.cmake b/build_files/build_environment/cmake/options.cmake index 7285382009d..1924aa0e853 100644 --- a/build_files/build_environment/cmake/options.cmake +++ b/build_files/build_environment/cmake/options.cmake @@ -11,6 +11,15 @@ option(FORCE_CHECK_HASH "Force a check of all hashses during CMake the configure cmake_host_system_information(RESULT NUM_CORES QUERY NUMBER_OF_LOGICAL_CORES) set(MAKE_THREADS ${NUM_CORES} CACHE STRING "Number of threads to run make with") +# Any python module building with setup.py cannot use multiple theads on windows +# as they will try to write to the same .pdb file simultaniously which causes +# build errors. +if(WIN32) + set(PYTHON_MAKE_THREADS 1) +else() + set(PYTHON_MAKE_THREADS ${MAKE_THREADS}) +endif() + if(NOT BUILD_MODE) set(BUILD_MODE "Release") message(STATUS "Build type not specified: defaulting to a release build.") diff --git a/build_files/build_environment/cmake/package_python.cmake b/build_files/build_environment/cmake/package_python.cmake index 8077fe36d1a..34b0d871cba 100644 --- a/build_files/build_environment/cmake/package_python.cmake +++ b/build_files/build_environment/cmake/package_python.cmake @@ -48,6 +48,8 @@ if(MSVC) 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 ) @@ -92,7 +94,11 @@ if(MSVC) add_custom_target(Package_Python ALL DEPENDS - external_python external_numpy external_python_site_packages + external_python + external_numpy + external_python_site_packages + external_zstandard + external_cython OUTPUT ${PYTARGET}/bin/python${PYTHON_POSTFIX}.exe ) diff --git a/build_files/build_environment/cmake/zstandard.cmake b/build_files/build_environment/cmake/zstandard.cmake index 9c45f7383fb..36f894a4f1f 100644 --- a/build_files/build_environment/cmake/zstandard.cmake +++ b/build_files/build_environment/cmake/zstandard.cmake @@ -28,7 +28,7 @@ ExternalProject_Add(external_zstandard BUILD_COMMAND ${PYTHON_BINARY} setup.py - build ${ZSTANDARD_BUILD_OPTION} -j${MAKE_THREADS} + build ${ZSTANDARD_BUILD_OPTION} -j${PYTHON_MAKE_THREADS} install --old-and-unmanageable @@ -38,4 +38,5 @@ ExternalProject_Add(external_zstandard add_dependencies( external_zstandard external_python + external_zstd ) diff --git a/build_files/build_environment/cmake/zstd.cmake b/build_files/build_environment/cmake/zstd.cmake index 39aa549b1a7..f77e2ae41aa 100644 --- a/build_files/build_environment/cmake/zstd.cmake +++ b/build_files/build_environment/cmake/zstd.cmake @@ -40,7 +40,18 @@ if(WIN32) COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/zstd/include/ ${HARVEST_TARGET}/zstd/include/ - + # The zstandard python extention hardcoded links to ztsd.lib + COMMAND ${CMAKE_COMMAND} -E copy + ${LIBDIR}/zstd/lib/zstd_static${LIBEXT} + ${LIBDIR}/zstd/lib/zstd${LIBEXT} + DEPENDEES install + ) + else() + ExternalProject_Add_Step(external_zstd after_install + # The zstandard python extention hardcoded links to ztsd.lib + COMMAND ${CMAKE_COMMAND} -E copy + ${LIBDIR}/zstd/lib/zstd_static${LIBEXT} + ${LIBDIR}/zstd/lib/zstd${LIBEXT} DEPENDEES install ) endif()