ocaml/dune

allow excluding certain files being copied to the build folder

Aperta

#4865 aperta il 20 ago 2021

 (8 commenti) (2 reazioni) (0 assegnatari)OCaml (478 fork)github user discovery
help wanted

Metriche repository

Star
 (1882 stelle)
Metriche merge PR
 (Merge medio 1g 20h) (345 PR mergiate in 30 g)

Descrizione

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/
  - ...

Guida contributor