调用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和其他相关环境变量即可导入。请参阅示例目录以获取更详细的说明和此配方的其他示例用法。
版权/许可信息
此软件根据MPL/GPL/LGPL许可证发布。
有关详细的版权信息,请参阅COPYING.txt文件,有关此软件发布的具体许可证,请参阅docs目录。
变更历史
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 的哈希值
| 算法 | 哈希摘要 | |
|---|---|---|
| SHA256 | 4f380c6648496722631b4e7506629ec3386d9378f7db1a05ec6978e2138e0f7d |
|
| MD5 | 8a05361cce1216739ab106d02f9c1d04 |
|
| BLAKE2b-256 | 997de3e292267bac706830cdad6d8304b2d7478b99d1e242f3f3e54508f4f58e |