Конда собирает и разделяет библиотеки, возможна ли доставка уже собранных бинарных файлов? - PullRequest
0 голосов
/ 04 ноября 2018

Предположим, я создаю пакет c ++ самостоятельно, используя cmake со следующими строками (с общими библиотеками):

#!bin/bash
export SUNDIALS_ROOT=~/anaconda3/include/sundials
cmake -DCMAKE_INSTALL_PREFIX="/home/moritz/Dokumente/projects/pycadet/cadet" -DCMAKE_LIBRARY_PATH="~/anaconda3/lib" -DBLA_VENDOR=Intel10_64lp ../code/
make
make install

Если я хочу отправить двоичные файлы сборки с помощью оболочки Python, который вызывает исполняемый файл, достаточно ли в файле meta.yaml определить, что пакет требует библиотеки во время выполнения, например?

package:
    name: pycadet
    version: 3.1.2
build:
    number: 0
source:
    url: some_url
requirements:
    run:
    - sundials
    - mkl
    - hdf5
about:
    home: https://github.com/modsim/CADET
    license: GPL
summary: A package for numerical simulation of chromatography

Или это необходимо для сборки пакета c ++ itsels при вызове conda-build? Например. определен в файле build.sh как так?

#!bin/bash
#
# The build receipy for conda 
#
#
#
#
# You can run build.sh with bash -x -e. The -x makes it echo each command that is run
# and the -e makes it exit whenever a command in the script returns nonzero exit status.
set -x -e

INCLUDE_PATH="${PREFIX}/include"
LIBRARY_PATH="${PREFIX}/lib"
CADET_PATH="${PREFIX}"

# get out of the work directory (contains downloaded cadet)
cd ..

# make the build directory (in source builds are prohibited)
mkdir build

# get into it
cd build

export SUNDIALS_ROOT=${PREFIX}/lib
cmake -DCMAKE_INSTALL_PREFIX="./cadet_test" -DCMAKE_LIBRARY_PATH="${LIBRARY_PATH}"-DBLA_VENDOR=Intel10_64lp ${SRC_DIR} ../work/
make
make install
...