Skip to content

Commit b34e769

Browse files
Conda recipe for teaserpp-python (#125)
* Checkpoint conda recipe for teaserpp-python * Use same version of python for conda build and runtime environment * Update conda recipe
1 parent 5f82221 commit b34e769

File tree

5 files changed

+96
-1
lines changed

5 files changed

+96
-1
lines changed

conda-recipes/README.md

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
# Conda recipes for TEASER++
2+
3+
This directory contains recipes for building conda packages
4+
for TEASER++.
5+
6+
Ideally, someone will eventually [set up a conda-forge feedstock](https://conda-forge.org/docs/maintainer/adding_pkgs.html)
7+
so that users will be able to install from [conda-forge](https://conda-forge.org/#about).
8+
9+
In the meantime, you can use these recipes to build the package for inclusion in privately maintained
10+
conda repositories.
11+
12+
Currently, there is only a recipe for `teaserpp-python`, which provides a minimal python binding
13+
(e.g. no header files, only the shared libraries needed at runtime).
14+
15+
To build this, run this command from this directory on each platform you want to support:
16+
17+
```
18+
conda build teaserpp-python
19+
```
20+
21+
This will build versions of the package for multiple python versions (currently 3.6 through 3.9).
22+
You can build a restricted set of python versions by specifying the `--variants` flag:
23+
24+
```
25+
conda build --variants '{"python" : ["3.7", "3.8"]}' teaserpp-python'
26+
```
27+
28+
This recipe has been run on linux and macos. To run on Windows, someone will need to
29+
add a `build.bat` file corresponding to `build.sh`, and it is possible that some other
30+
tweaks may be required if there are dependency differences on Windows.
31+
32+
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
#!/bin/bash
2+
set -x
3+
echo $PATH
4+
cd $SRC_DIR
5+
mkdir build
6+
cd build
7+
cmake \
8+
-DTEASERPP_PYTHON_VERSION=${PY_VER} \
9+
-DPython3_EXECUTABLE=${PYTHON} \
10+
-DCMAKE_INSTALL_LIBDIR=lib \
11+
-DCMAKE_INSTALL_PREFIX=${PREFIX} \
12+
-DLLVM_TOOLS_BINARY_DIR=${PREFIX}/bin \
13+
..
14+
make teaserpp_python
15+
# make install does too much. We only need the regisration library.
16+
cp pmc-build/libpmc.* ${PREFIX}/lib
17+
cp teaser/libteaser_registration.* ${PREFIX}/lib
18+
cd python
19+
${PYTHON} -m pip install .
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
python:
2+
- 3.6
3+
- 3.7
4+
- 3.8
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
package:
2+
name: teaserpp-python
3+
version: 2.0.1
4+
5+
source:
6+
- path: ../../cmake
7+
folder: cmake
8+
- path: ../../python
9+
folder: python
10+
- path: ../../teaser
11+
folder: teaser
12+
- path: ../../doc
13+
folder: doc
14+
- path: ../../test
15+
folder: test
16+
- path: ../../CMakeLists.txt
17+
18+
# TODO build for different python versions
19+
# TODO try without llvm-openmp
20+
21+
requirements:
22+
build:
23+
- boost
24+
- python {{ python }}
25+
- setuptools
26+
- cmake
27+
- make
28+
- eigen
29+
- {{ compiler('c') }}
30+
- {{ compiler('cxx') }}
31+
- llvm-openmp
32+
host:
33+
- python {{ python }}
34+
run:
35+
- python {{ python }}
36+
37+
about:
38+
home: https://github.com/MIT-SPARK/TEASER-plusplus
39+
license: GPL3
40+
summary: Python binding for TEASER++

python/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ target_link_libraries(teaserpp_python PUBLIC teaser_registration)
1919
# fix for clang
2020
# see: https://github.com/pybind/pybind11/issues/1818
2121
if (CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
22-
target_compile_options(teaserpp_python PUBLIC -fsized-deallocation)
22+
target_compile_options(teaserpp_python PUBLIC -fno-sized-deallocation)
2323
endif ()
2424

2525
# make sure to output the build file to teaserpp_python folder

0 commit comments

Comments
 (0)