跳转到主要内容

调用CMake构建CellML API和Python绑定的配方

项目描述

概述

这是构建CellML API Python绑定的配方,默认启用所有选项。目前有一些限制,例如构建CellML API所需的所有依赖项必须在使用此配方之前安装,并且我认为目前这个配方在Windows上可能无法工作。

支持选项

该配方支持以下选项

api-version

要构建的CellML API版本。有效的版本是任何通过CMake构建并具有Python绑定的版本(>1.10),并且必须在有效版本列表中。

cmake-generator

要使用的生成器。仅支持默认选项 Unix Makefiles,因为此配方是在 zc.recipe.cmmi的基础上构建的,它将使用 make make install

check-build

是否检查构建时间依赖项。默认是关闭,因为即使为我安装了GSL库,它也没有检测到。等同于向 cmake传递 -DCHECK_BUILD:BOOL=OFF

其他支持的选项

  • enable-examples

  • enable-annotools

  • enable-ccgs

  • enable-celeds

  • enable-celeds-exporter

  • 启用-cevas

  • 启用-cis

  • 启用-cuses

  • 启用-gsl-integrators

  • 启用-malaes

  • 启用-python

  • 启用-rdf

  • 启用-spros

  • 启用-srus

  • 启用-telicems

  • 启用-vacss

有关这些选项的功能,请参阅CellML API 文档

用法

由于此egg发布在pypi上,此配方可以通过在buildout.cfg中包含一个新部分立即使用。以下是一个示例配置

[buildout]
parts =
    ...
    cellml-api
    cellmlpy

[cellml-api]
recipe = cellml.recipe.api
api-version = 1.10

[cellmlpy]
recipe = zc.recipe.egg
eggs =
interpreter = cellmlpy
scripts = cellmlpy
extra-paths = ${cellml-api:location}/lib/python

此示例buildout.cfg将构建具有所有支持选项启用的CellML API v1.10,并在bin/cellmlpy中生成一个脚本,允许绑定不设置PYTHONPATH和其他相关环境变量即可导入。请参阅示例目录以获取更详细的说明和此配方的其他示例用法。

0.8 (2022-04-27)

  • 强制使用已知的支持CXX标准,因为最新的gcc默认使用不兼容的c++17标准。

0.7 (2019-01-23)

  • 更新分发位置。

0.6 (2018-07-31)

  • Python 3 兼容性。

0.5 (2018-01-23)

  • 在github上添加了CellML API的最新版本。

  • 添加了RUNPATH。

0.4 (2012-11-05)

  • 添加了CellML API 1.12。

0.3 (2012-10-03)

  • 更正了TeLICeM标志的拼写错误。

  • 添加了CellML API 1.11。

0.2 (2011-09-21)

  • 修复了即使未分配,所有预期键也分配为空字符串的问题;这导致了各种不希望的副作用。

  • 修复了此buildout配方位置未定义的问题。

0.1 (2011-09-21)

  • CellML API Python绑定buildout的初始发布。

详细文档

演示

此配方基于zc.recipe.cmmi,但有一个限制,即cmake被调用而不是./configure脚本,但cmake生成Unix Makefiles,以便cmmi调用的make/make install可以像往常一样进行。

对于演示,我们不会下载/构建整个API,而是将使用mock-ups(即以前的设置)。

>>> ls(distros)
-  cellml-api-0.0fake.tgz

>>> distros_url = start_server(distros)
>>> archive_url = '%scellml-api-0.0fake.tgz' % distros_url

让我们创建我们的buildout,但修改为使用我们的假存档。

>>> write('buildout.cfg',
... """
... [buildout]
... parts = cellml-api
...
... [cellml-api]
... recipe = cellml.recipe.api
... api-version = 0.0fake
... """)

由于我们的模拟api版本未列为可用版本,buildout将失败。

>>> print('start ' + system(buildout))
start...
  Installing.
  Getting ... cellml-api.
  Initializing ... cellml-api.
...
Traceback (most recent call last):
...
ValueError: api-version `0.0fake` is not a supported version of...
<BLANKLINE>

好吧,由于我们的假版本显然不会被添加到支持API的列表中,我们仍然可以提供我们的url和md5sum,因为zc.recipe.cmmi提供的原始功能仍然有效。用所需的属性重写buildout.cfg。

>>> try: from hashlib import md5
... except ImportError: from md5 import new as md5
>>> m = md5(open(join(distros, 'cellml-api-0.0fake.tgz'), 'rb'
...             ).read()).hexdigest()
>>> write('buildout.cfg',
... """
... [buildout]
... parts = cellml-api
...
... [cellml-api]
... recipe = cellml.recipe.api
... url = %s
... md5sum = %s
... """ % (archive_url, m))

>>> print('start ' + system(buildout))
start...
...
CMake Warning:
  Manually-specified variables were not used by the project:
<BLANKLINE>
    CHECK_BUILD
    ENABLE_ANNOTOOLS
    ENABLE_CCGS
    ENABLE_CELEDS
    ENABLE_CELEDS_EXPORTER
    ENABLE_CEVAS
    ENABLE_CGRS
    ENABLE_CIS
    ENABLE_CUSES
    ENABLE_EXAMPLES
    ENABLE_GSL_INTEGRATORS
    ENABLE_MALAES
    ENABLE_PYTHON
    ENABLE_RDF
    ENABLE_SPROS
    ENABLE_SRUS
    ENABLE_TELICEMS
    ENABLE_VACSS
<BLANKLINE>
<BLANKLINE>
<BLANKLINE>

贡献者

Yu Tommy,作者

下载

项目详情


下载文件

下载适用于您的平台的文件。如果您不确定要选择哪个,请了解更多关于安装包的信息。

源分发

此版本没有可用的源分发文件。请参阅生成分发存档的教程。

构建分发

cellml.recipe.api-0.8-py2.py3-none-any.whl (10.0 kB 查看哈希值)

上传时间 Python 2 Python 3

由以下支持