summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.github/workflows/pip-packaging-windows.yml7
-rw-r--r--CMakeGUDHIVersion.txt2
-rw-r--r--src/python/CMakeLists.txt5
-rw-r--r--src/python/gudhi/__init__.py.in3
-rw-r--r--src/python/gudhi/_distributor_init.py18
5 files changed, 28 insertions, 7 deletions
diff --git a/.github/workflows/pip-packaging-windows.yml b/.github/workflows/pip-packaging-windows.yml
index 95205258..fe4d0227 100644
--- a/.github/workflows/pip-packaging-windows.yml
+++ b/.github/workflows/pip-packaging-windows.yml
@@ -35,14 +35,11 @@ jobs:
cd build
cmake -DCMAKE_BUILD_TYPE=Release -DGMP_INCLUDE_DIR="c:/vcpkg/installed/x64-windows/include" -DGMP_LIBRARIES="c:/vcpkg/installed/x64-windows/lib/mpir.lib" -DGMP_LIBRARIES_DIR="c:/vcpkg/installed/x64-windows/lib" -DCMAKE_TOOLCHAIN_FILE=C:/vcpkg/scripts/buildsystems/vcpkg.cmake -DPython_ADDITIONAL_VERSIONS=3 ..
cd src/python
+ cp c:/vcpkg/installed/x64-windows/bin/mpfr.dll .libs/
+ cp c:/vcpkg/installed/x64-windows/bin/mpir.dll .libs/
python setup.py bdist_wheel
- name: Publish on PyPi
env:
TWINE_USERNAME: __token__
TWINE_PASSWORD: ${{ secrets.PYPI_PASSWORD }}
run: python -m twine upload --repository-url https://test.pypi.org/legacy/ build/src/python/dist/*
- - name: Upload artifacts
- uses: actions/upload-artifact@v1
- with:
- name: dependencies
- path: c:/vcpkg/installed/x64-windows/bin/
diff --git a/CMakeGUDHIVersion.txt b/CMakeGUDHIVersion.txt
index 4ad3921d..794b6ebf 100644
--- a/CMakeGUDHIVersion.txt
+++ b/CMakeGUDHIVersion.txt
@@ -1,6 +1,6 @@
set (GUDHI_MAJOR_VERSION 3)
set (GUDHI_MINOR_VERSION 2)
-set (GUDHI_PATCH_VERSION 0a16)
+set (GUDHI_PATCH_VERSION 0a17)
set(GUDHI_VERSION ${GUDHI_MAJOR_VERSION}.${GUDHI_MINOR_VERSION}.${GUDHI_PATCH_VERSION})
message(STATUS "GUDHI version : ${GUDHI_VERSION}")
diff --git a/src/python/CMakeLists.txt b/src/python/CMakeLists.txt
index fee6b6f5..b35c8de7 100644
--- a/src/python/CMakeLists.txt
+++ b/src/python/CMakeLists.txt
@@ -235,8 +235,11 @@ if(PYTHONINTERP_FOUND)
file(COPY "gudhi/point_cloud" DESTINATION "${CMAKE_CURRENT_BINARY_DIR}/gudhi")
file(COPY "gudhi/weighted_rips_complex.py" DESTINATION "${CMAKE_CURRENT_BINARY_DIR}/gudhi")
- # Other .py files
+ # Some files for pip package
file(COPY "introduction.rst" DESTINATION "${CMAKE_CURRENT_BINARY_DIR}/")
+ file(COPY "gudhi/_distributor_init.py" DESTINATION "${CMAKE_CURRENT_BINARY_DIR}/gudhi")
+ file(MAKE_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/gudhi/.libs")
+ message(" o o o ${CMAKE_CURRENT_BINARY_DIR}/gudhi/.libs")
add_custom_command(
OUTPUT gudhi.so
diff --git a/src/python/gudhi/__init__.py.in b/src/python/gudhi/__init__.py.in
index 79e12fbc..e4198dcf 100644
--- a/src/python/gudhi/__init__.py.in
+++ b/src/python/gudhi/__init__.py.in
@@ -10,6 +10,9 @@
from importlib import import_module
from sys import exc_info
+# Allow distributors to run custom init code
+from . import _distributor_init
+
__author__ = "GUDHI Editorial Board"
__copyright__ = "Copyright (C) 2016 Inria"
__license__ = "https://gudhi.inria.fr/licensing/"
diff --git a/src/python/gudhi/_distributor_init.py b/src/python/gudhi/_distributor_init.py
new file mode 100644
index 00000000..0ed451f9
--- /dev/null
+++ b/src/python/gudhi/_distributor_init.py
@@ -0,0 +1,18 @@
+'''
+Helper to preload windows dlls to prevent dll not found errors.
+Once a DLL is preloaded, its namespace is made available to any subsequent DLL.
+'''
+import os
+from ctypes import WinDLL
+import glob
+if os.name == 'nt':
+ # convention for storing / loading the DLL from gudhi/.libs/, if present
+ try:
+ basedir = os.path.dirname(__file__)
+ except:
+ pass
+ else:
+ libs_dir = os.path.abspath(os.path.join(basedir, '.libs'))
+ if os.path.isdir(libs_dir):
+ for filename in glob.glob(os.path.join(libs_dir, '*dll')):
+ WinDLL(os.path.abspath(filename))