Skip to content

Commit

Permalink
[ci skip] Merge PR 33780
Browse files Browse the repository at this point in the history
Merge PR bioconda#33780, commits were: 
 * Update pyopenms_cmakelist2.patch
 * Update meta.yaml
 * Merge pull request #1 from jpfeuffer/timosachsenberg-patch-1

add patch for hidden symbols
 * Update meta.yaml
 * add patch for hidden symbols
 * Update meta.yaml
 * Delete conda_build_config.yaml
 * Merge branch 'master' into pyopenms2_8_separate
 * Add pip..wow MacOS is really barebones
 * nop
 * Merge branch 'master' into pyopenms2_8_separate
 * add cmakelist patch to fix error in pyopenms 2.8 cmakelist
 * Merge branch 'bioconda:master' into pyopenms2_8_separate
 * Update meta.yaml
 * Add setuptools?
 * Prefer find python by location
 * Specify vindas python executable since on MacOS there is another
 * Xfjshajs
 * ...
 * Test cython import
 * Explicitly specify everything.
 * Add back a separate pyopenms package
  • Loading branch information
jpfeuffer authored Mar 30, 2022
1 parent 704738d commit dc65c0c
Show file tree
Hide file tree
Showing 4 changed files with 146 additions and 0 deletions.
45 changes: 45 additions & 0 deletions recipes/pyopenms/build.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
#!/bin/sh

# useless default include directory that is silently added by the compiler packages "to help"...
# it is not even added with -isystem https://github.com/AnacondaRecipes/aggregate/blob/master/clang/activate-clang%2B%2B.sh#L87
USELESS="-I${PREFIX}/include"
export CXXFLAGS=${CXXFLAGS//${USELESS}/}

# Not sure if those are needed
export LIBRARY_PATH=${PREFIX}/lib
export LD_LIBRARY_PATH=${PREFIX}/lib
#export DYLD_LIBRARY_PATH=${PREFIX}/lib

mkdir build
cd build

if [[ $(uname -s) == Darwin ]]; then
RPATH='@loader_path/../lib'
else
ORIGIN='$ORIGIN'
export ORIGIN
RPATH='$${ORIGIN}/../lib'
fi
LDFLAGS='-Wl,-rpath,${RPATH}'

cmake ../src/pyOpenMS \
-DOPENMS_GIT_SHORT_REFSPEC="release/${PKG_VERSION}" \
-DOPENMS_GIT_SHORT_SHA1="b59e0c3" \
-DCMAKE_BUILD_TYPE="Release" \
-DCMAKE_OSX_SYSROOT=${CONDA_BUILD_SYSROOT} \
-DCMAKE_MACOSX_RPATH=ON \
-DCMAKE_PREFIX_PATH=${PREFIX} \
-DCMAKE_INSTALL_PREFIX=${PREFIX} \
-DCMAKE_INSTALL_RPATH=${RPATH} \
-DCMAKE_INSTALL_NAME_DIR="@rpath" \
-DCMAKE_BUILD_WITH_INSTALL_RPATH=ON \
-DCMAKE_BUILD_WITH_INSTALL_NAME_DIR=ON \
-DPython_EXECUTABLE=$PYTHON \
-DPython_FIND_STRATEGY="LOCATION" \
-DNO_DEPENDENCIES=ON

# NO_DEPENDENCIES since conda takes over re-linking etc

# limit parallel jobs to 1 for memory usage since pyopenms has huge cython generated cpp files
make -j1 pyopenms
$PYTHON -m pip install ./pyOpenMS/dist/*.whl --ignore-installed --no-deps
66 changes: 66 additions & 0 deletions recipes/pyopenms/meta.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
{% set name = "pyopenms" %}
{% set version = "2.8.0" %}
package:
name: {{ name|lower }}
version: {{ version }}

source:
url: https://abibuilder.informatik.uni-tuebingen.de/archive/openms/OpenMSInstaller/release/{{ version }}/OpenMS-{{ version }}-src.tar.gz
sha256: c39e3ccdce5c335d2659cfa9d0bb63555a01ec422757afd90706d3869bf611ac
patches:
- pyopenms_cmakelist2.patch
- pyopenms_cmakelist.patch

build:
skip: True # [py2k]
number: 0

requirements:
build:
- {{ compiler('cxx') }}
- make
- cmake
host:
- libopenms {{ version }}
- llvm-openmp # [osx]
- libsvm
- xerces-c
- boost-cpp
- qt
- python {{ python }}
- cython >=0.25.2
- autowrap >=0.22.6
- setuptools
- wheel
- pip
- nose
- numpy {{ numpy }}
- pandas
run: # run_exports in libopenms should take care of the libraries. But it does not because of bugs. So copy everthing again and again
- libopenms {{ version }}
- llvm-openmp # [osx]
- libsvm
- xerces-c
- boost-cpp
- qt
- python {{ python }}
- numpy {{ numpy }}
- pandas
test:
requires:
- nose
commands:
- python -c "import pyopenms; print(pyopenms.__version__)"
# We cant use the PYTHON variable since it does not exist on the biocontainer?!
# TODO run the test suite

about:
home: https://github.com/OpenMS/OpenMS
license: BSD
license_file: LICENSE
summary: python bindings for OpenMS, an open-source software C++ library for LC-MS data management and analyses

extra:
identifiers:
- biotools:openms
- doi:10.1038/nmeth.3959
22 changes: 22 additions & 0 deletions recipes/pyopenms/pyopenms_cmakelist.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
diff --git a/src/pyOpenMS/CMakeLists.txt b/src/pyOpenMS/CMakeLists.txt
index 829fe486840..e5094fbfddf 100644
--- a/src/pyOpenMS/CMakeLists.txt
+++ b/src/pyOpenMS/CMakeLists.txt
@@ -631,7 +631,7 @@ if ("${PY_NUM_MODULES}" GREATER "1")
SUFFIX ${PYTHON_EXT_SUFFIX} # since CMake 3.17 you can add WITH_SOABI to Python_add_library
CXX_VISIBILITY_PRESET ${VIS_PRESET}
VISIBILITY_INLINES_HIDDEN ${INLINES_HIDDEN}
- INSTALL_RPATH ${PY_RPATH}
+ INSTALL_RPATH "${PY_RPATH}"
BUILD_WITH_INSTALL_RPATH 1
BUILD_WITH_INSTALL_NAME_DIR 1
ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/pyOpenMS/pyopenms"
@@ -652,7 +652,7 @@ else()
SUFFIX ${PYTHON_EXT_SUFFIX} # since CMake 3.17 you can add WITH_SOABI to Python_add_library
CXX_VISIBILITY_PRESET ${VIS_PRESET}
VISIBILITY_INLINES_HIDDEN ${INLINES_HIDDEN}
- INSTALL_RPATH ${PY_RPATH}
+ INSTALL_RPATH "${PY_RPATH}"
BUILD_WITH_INSTALL_RPATH 1
BUILD_WITH_INSTALL_NAME_DIR 1
ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/pyOpenMS/pyopenms"
13 changes: 13 additions & 0 deletions recipes/pyopenms/pyopenms_cmakelist2.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
diff --git a/src/pyOpenMS/CMakeLists.txt b/src/pyOpenMS/CMakeLists.txt
index 2c67628dec..626a2dd149 100644
--- a/src/pyOpenMS/CMakeLists.txt
+++ b/src/pyOpenMS/CMakeLists.txt
@@ -604,7 +604,7 @@ if (APPLE)
list(APPEND PY_RPATH "@loader_path/")
endif()

-if (LINUX) # see https://github.com/cython/cython/issues/3380
+if (LINUX OR APPLE) # see https://github.com/cython/cython/issues/3380
set(VIS_PRESET "default")
set(INLINES_HIDDEN 0)
else()

0 comments on commit dc65c0c

Please sign in to comment.