将新建的文件复制为 Dune 的节
Copying a newly builded file as a Dune's stanza
我用 OCaml 编写了一个库,其所有源代码都位于 lib
文件夹中。
我还在 bin
文件夹中准备了“外观”可执行文件。
现在我想准备一些如何使用上述可执行文件的示例。
为此,我需要事先复制一个可执行文件,或者(最好)告诉 Dune 在构建后使用新创建的可执行文件。
这是我的问题。
Dune 的 copy_files
节不允许1 我从 _build
文件夹复制。
是否有任何其他方法可以在每次构建后使用新的可执行文件,或者我是否需要在某个时候复制它们并保持最新?
以下是项目的结构(以防口头描述以任何方式产生误导)。
root
lib <- source
bin <- frontend for source
examples <- how to use the above frontend
1 不允许我的意思是本节的以下用法:
( copy_files %{project_root}/_build/default/bin/program.exe )
按照@Lhooq 的建议,解决方案可能是使用带有 --root
参数的 dune exec
命令。
针对提供的场景,如果我们做一个脚本:
dune exec --root=../.. ./bin/some_program.exe
(*
Where 'some_program' is the name of an .ml file located in bin folder.
I assumed here that the program is compiled to native code, not to bytecode (hence the .exe).
*)
并将其放在 examples
目录中,然后通过调用它我们实际上 运行 位于 bin
文件夹中的 some_program.ml
中定义的程序的最新版本。
为了清楚起见:bin
文件夹不包含任何编译文件(既不是 .exe 也不是 .bc)。
我用 OCaml 编写了一个库,其所有源代码都位于 lib
文件夹中。
我还在 bin
文件夹中准备了“外观”可执行文件。
现在我想准备一些如何使用上述可执行文件的示例。
为此,我需要事先复制一个可执行文件,或者(最好)告诉 Dune 在构建后使用新创建的可执行文件。
这是我的问题。
Dune 的 copy_files
节不允许1 我从 _build
文件夹复制。
是否有任何其他方法可以在每次构建后使用新的可执行文件,或者我是否需要在某个时候复制它们并保持最新?
以下是项目的结构(以防口头描述以任何方式产生误导)。
root
lib <- source
bin <- frontend for source
examples <- how to use the above frontend
1 不允许我的意思是本节的以下用法:
( copy_files %{project_root}/_build/default/bin/program.exe )
按照@Lhooq 的建议,解决方案可能是使用带有 --root
参数的 dune exec
命令。
针对提供的场景,如果我们做一个脚本:
dune exec --root=../.. ./bin/some_program.exe
(*
Where 'some_program' is the name of an .ml file located in bin folder.
I assumed here that the program is compiled to native code, not to bytecode (hence the .exe).
*)
并将其放在 examples
目录中,然后通过调用它我们实际上 运行 位于 bin
文件夹中的 some_program.ml
中定义的程序的最新版本。
为了清楚起见:bin
文件夹不包含任何编译文件(既不是 .exe 也不是 .bc)。