ocaml/dune

allow excluding certain files being copied to the build folder

开放

#4,865 创建于 2021年8月20日

 (8 条评论) (2 个反应) (0 位负责人)OCaml (478 个派生)github user discovery
help wanted

仓库指标

星标
 (1,882 个星标)
PR 合并指标
 (平均合并 1天 20小时) (30 天内合并 345 个 PR)

描述

Desired Behavior

Currently there are ways to exclude certain directories from being copied to the build folder, but there is no way (or at least I could not find one reading the Stanza Reference page) to stop copying certain files.

I would like to suggest adding a stanza like (ignored_files ...) or a stanza like (files ...) to allow explicit exclusion of files to be copied to the build folder.

I believe it is in general nice to have this possible, and it comes especially handy when the build needs to execute external commands whose behavior may depends on specific files in the current directory. For example, in my case I would like to exclude the .git file under a git submodule, whose presence in the build folder messes up invocations to git, and I am using a workaround to delete the copied .git file before invoking any git commands.

Example

project structure

<project_root>/
- .some-file-to-be-excluded
- dune
- dune-project
- module1/
  - ...

_build directory with an empty dune file

_build/default
- .some-file-to-be-excluded
- dune
- dune-project
- module1/
  - ...

contents of dune, (ignore_files ...) variant

(ignored_files .some-file-to-be-excluded)

contents of dune, (files ...) variant

(files :standard \ .some-file-to-be-excluded)

_build directory with a dune file of either variant listed above

_build/default
- dune
- dune-project
- module1/
  - ...

贡献者指南