调用cmake构建cellml api和python绑定的方法
cellml.recipe.api的Python项目详细描述
概述
这是将使用 默认情况下启用所有选项。目前,有一些限制, 例如,构建cellml api所需的所有依赖项必须是 在使用这个配方之前安装,我不认为这会 现在在窗户下工作。
支持的选项
配方支持以下选项:
- API版本
- 要生成的CellML API版本。有效版本生成的任何版本 通过cmake并具有python绑定(>;1.10),并且必须存在于 有效版本列表。
- cmake生成器
- 要使用的生成器。只有默认选项Unix Makefiles是 支持,因为此配方构建在^{tt2}之上$ 它将使用make和make install。
- 检查生成
- 是否检查生成时依赖项。默认设置为关闭,因为它 没有检测到gsl库,即使它是为我安装的。 与将-DCHECK_BUILD:BOOL=OFF传递给cmake相同。
其他支持的选项:
- enable-examples
- enable-annotools
- enable-ccgs
- enable-celeds
- enable-celeds-exporter
- enable-cevas
- enable-cis
- enable-cuses
- enable-gsl-integrators
- enable-malaes
- enable-python
- enable-rdf
- enable-spros
- enable-srus
- enable-telicems
- enable-vacss
请参考CellML API Documentations了解这些选项 去吧。
用法
因为这个鸡蛋是在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将使用 已启用支持的选项,将在中生成脚本 bin/cellmlpy,它将允许在没有 设置PYTHONPATH和其他相关环境变量。 有关更多详细说明,请参阅示例目录 以及这个配方的其他示例用法。
版权/许可信息
这个软件是在mpl/gpl/lgpl许可下发布的。
有关详细版权,请参阅文件COPYING.txt。 信息,以及docs目录中的特定许可证 软件发布于。
变更历史
0.7(2019-01-23)
- 更新分发位置。
0.6(2018-07-31)
- python 3兼容性。
0.5(2018-01-23)
- 在github上添加了最新版本的cellml api。
- 将运行路径添加到位。
0.4(2012-11-05)
- 添加了CellML API 1.12。
0.3(2012-10-03)
- 更正了telicem标志的输入错误。
- 添加了CellML API 1.11。
0.2(2011-09-21)
- 修复了将所有预期密钥分配给 空字符串,即使未赋值;这会导致各种不需要的边 影响。
- 修复了此构建方法的位置为 未定义。
0.1(2011-09-21)
- cellml api python绑定构建的初始版本。
详细文档
演示
这个配方在zc.recipe.cmmi上扩展,并在 调用cmake而不是./configure脚本,但是有cmake 生成Unix Makefiles,使make/make install CMMI调用将正常进行。
为了演示,我们没有下载/构建整个api 将使用模型(这是以前的设置)。
>>> ls(distros) - cellml-api-0.0fake.tgz >>> distros_url = start_server(distros) >>> archive_url = '%scellml-api-0.0fake.tgz' % distros_url
让我们创建我们的构建,但修改,以便使用我们的假存档。
>>> write('buildout.cfg', ... """ ... [buildout] ... parts = cellml-api ... ... [cellml-api] ... recipe = cellml.recipe.api ... api-version = 0.0fake ... """)
由于我们的模拟API版本未列为可用版本, 建筑会死的。
>>> 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>
汤米·余,作者