16 个不稳定版本 (3 个破坏性更新)
0.4.8 | 2023 年 6 月 14 日 |
---|---|
0.4.5 | 2023 年 5 月 20 日 |
0.4.4 | 2023 年 3 月 28 日 |
0.4.0 | 2022 年 12 月 15 日 |
0.2.2 | 2022 年 3 月 7 日 |
#38 在 构建实用工具 中
每月 186 次下载
在 6 个 crate 中使用 (4 个直接使用)
160KB
3K SLoC
wolfram-app-discovery
API 文档 | CLI 文档 | 变更日志 | 贡献
关于
查找 Wolfram 语言的本地安装和 Wolfram 应用。
本 crate 提供:
示例
使用 API
定位本计算机上的默认 Wolfram 语言安装
use wolfram_app_discovery::WolframApp;
let app = WolframApp::try_default()
.expect("unable to locate any Wolfram applications");
// Prints a path like:
// $InstallationDirectory: /Applications/Mathematica.app/Contents/
println!("$InstallationDirectory: {}", app.installation_directory().display());
另请参阅: WolframApp::try_default()
使用命令行工具
定位本计算机上的默认 Wolfram 语言安装
$ wolfram-app-discovery default
App type: Mathematica
Wolfram Language version: 13.1.0
Application directory: /Applications/Wolfram/Mathematica.app
有关 wolfram-app-discovery
命令行界面的更多信息,请参阅 CommandLineHelp.md。
场景:构建 LibraryLink 库
假设您有一个以下 C 程序,该程序通过 Wolfram LibraryLink 界面提供了一个函数,您希望从 Wolfram 语言编译和调用它
#include "WolframLibrary.h"
/* Adds one to the input, returning the result */
DLLEXPORT int increment(
WolframLibraryData libData,
mint argc,
MArgument *args,
MArgument result
) {
mint arg = MArgument_getInteger(args[0]);
MArgument_setInteger(result, arg + 1);
return LIBRARY_NO_ERROR;
}
为了成功编译此程序,C 编译器需要能够找到包含的 "WolframLibrary.h"
头文件。我们可以使用 wolfram-app-discovery
来获取适当目录的路径
# Get the LibraryLink includes directory
$ export WOLFRAM_C_INCLUDES=`wolfram-app-discovery default --raw-value library-link-c-includes-directory`
然后将该值传递给 C 编译器
# Invoke the C compiler
$ clang increment.c -I$WOLFRAM_C_INCLUDES -shared -o libincrement
编译后的库可以使用 LibraryFunctionLoad
加载到 Wolfram 语言中,然后调用
func = LibraryFunctionLoad["~/libincrement", "increment", {Integer}, Integer];
func[5] (* Returns 6 *)
安装 wolfram-app-discovery
wolfram-app-discovery
命令行工具的预编译二进制文件在 GitHub 发布页面可供所有主流平台使用。
使用 cargo
wolfram-app-discovery
可以通过执行 cargo
(Rust 软件包管理器)来安装,如下所示
$ cargo install --features=cli wolfram-app-discovery
这将安装来自 crates.io 的最新版本的 wolfram-app-discovery
。
配置
用于定位 Wolfram 语言安装的默认方法(WolframApp::try_default()
)将使用以下步骤尝试定位任何本地安装,返回第一个找到的
- 如果设置了,则使用
WOLFRAM_APP_DIRECTORY
环境变量指定的位置。 - 如果
wolframscript
在PATH
上,则使用它来定位系统安装。 - 检查操作系统应用程序目录。
配置示例
指定要使用的特定 Wolfram 语言安装(在 macOS 上)
$ export WOLFRAM_APP_DIRECTORY="/Applications/Mathematica.app"
此环境变量同时由 wolfram-app-discovery
库和命令行可执行文件检查。
许可证
根据您的选择,受以下任一许可证的许可
- Apache 许可证,版本 2.0(《LICENSE-APACHE》或 http://www.apache.org/licenses/LICENSE-2.0》)
- MIT 许可证(《LICENSE-MIT》或 http://opensource.org/licenses/MIT》)
。
Wolfram 应用程序许可证
Wolfram 应用程序受与 wolfram-app-discovery
不同的许可证条款的约束。
Wolfram Engine Community Edition 是 Wolfram 语言的免费发行版,许可用于个人和非生产用途。
贡献
除非您明确声明,否则您根据 Apache-2.0 许可证定义的任何旨在包含在作品中的贡献,都将根据上述条款双重许可,不附加任何额外条款或条件。
有关更多信息,请参阅 CONTRIBUTING.md。
有关在向此项目贡献力量时执行常见开发任务的说明,请参阅 Development.md。
有关维护此项目的说明,请参阅 Maintenance.md。
依赖项
~0–38MB
~541K SLoC