调用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 |