[RFC]: automated/make recipe for generation of manifest files for C implementation of a package
- 主要语言
- JavaScript
- 星标
- 6k
- 派生
- 1.3k
- 平均合并
- 1 天 3 小时
- 30 天内合并 PR
- 611
描述
### Description
This RFC proposes a make recipe `genmanifest*` that can be used to generate `include.gypi` , `binding.gyp` and `manifest.json`
> * *: name can be subjected to change in future
Right now, the creation of these files has been manual, that is, for every C implementation for a package such as `@stdlib/math/base/special/fast/abs` we need to create these files manually, copying the includes and binding gyp files from existing related packages and create manifest.json depending on the dependencies used by the package
automating this can help in easing these tasks and also lessen the burden on the contributor as well as new comers.
A working prototype for this would be :

this prototype extracts dependencies used in C files from src, benchmark and examples folder and generate the related manifest.json , include.gypi and binding.gyp for that package
this can be further expanded to support blas as blas manifest.json also follows a similiar pattern based on the related file name like `ccopy.f` is being used in mac and there are 5 os based confs
### Related Issues
n/a
### Questions
No.
### Other
No.
### Checklist
- [X] I have read and understood the [Code of Conduct](https://github.com/stdlib-js/stdlib/blob/develop/CODE_OF_CONDUCT.md).
- [X] Searched for existing issues and pull requests.
- [X] The issue name begins with `RFC:`.
贡献指南
调研方向
Start by reviewing the proposed genmanifest* make recipe and the prototype that scans src, benchmark, and examples. Compare the generated include.gypi, binding.gyp, and manifest.json with manually created package files, then determine how BLAS-related manifests would fit. Done means an agreed automated generation approach covering the stated package files and dependencies.
由索引模型根据 Issue 内容生成。
评估
- 技术栈
- c, javascript
- 领域
- build-system, tooling
- Issue 类型
- 功能
- 难度
- 5/5
- 预计耗时
- 一周以上
- 活跃度
- 停滞
- 描述清晰度
- 基本清楚
- 新手友好度
- 28/100