diff options
author | CoprDistGit <infra@openeuler.org> | 2023-04-11 21:04:50 +0000 |
---|---|---|
committer | CoprDistGit <infra@openeuler.org> | 2023-04-11 21:04:50 +0000 |
commit | dc932d84c08a2949aa5f8533b782edcdd254e9a0 (patch) | |
tree | ab50a8b5550b780f8b8ad6e4078ef9213a2ca6db | |
parent | 76000c68cd4498c9cb65a2f747ac221a75959fc0 (diff) |
automatic import of python-compiledb
-rw-r--r-- | .gitignore | 1 | ||||
-rw-r--r-- | python-compiledb.spec | 439 | ||||
-rw-r--r-- | sources | 1 |
3 files changed, 441 insertions, 0 deletions
@@ -0,0 +1 @@ +/compiledb-0.10.1.tar.gz diff --git a/python-compiledb.spec b/python-compiledb.spec new file mode 100644 index 0000000..ab29e6f --- /dev/null +++ b/python-compiledb.spec @@ -0,0 +1,439 @@ +%global _empty_manifest_terminate_build 0 +Name: python-compiledb +Version: 0.10.1 +Release: 1 +Summary: Tool for generating Clang JSON Compilation Database files for make-based build systems. +License: GPLv3 +URL: https://github.com/nickdiego/compiledb +Source0: https://mirrors.nju.edu.cn/pypi/web/packages/76/62/30fb04404b1d4a454f414f792553d142e8acc5da27fddcce911fff0fe570/compiledb-0.10.1.tar.gz +BuildArch: noarch + +Requires: python3-click +Requires: python3-bashlex +Requires: python3-shutilwhich +Requires: python3-pytest + +%description +# Compilation Database Generator + +[](https://circleci.com/gh/nickdiego/compiledb) +[](https://pypi.org/project/compiledb/) +[](https://pypi.org/project/compiledb) +[](https://github.com/nickdiego/compiledb/blob/master/LICENSE) + +Tool for generating [Clang's JSON Compilation Database][compdb] file for GNU +`make`-based build systems. + +It's aimed mainly at non-cmake (cmake already generates compilation database) +large codebases. Inspired by projects like [YCM-Generator][ycm-gen] and [Bear][bear], +but faster (mainly with large projects), since in most cases it **doesn't need a clean +build** (as the mentioned tools do) to generate the compilation database file, to +achieve this it uses the make options such as `-n`/`--dry-run` and `-k`/`--keep-going` +to extract the compile commands. Also, it's more **cross-compiling friendly** than +YCM-generator's fake-toolchanin approach. + +## Installation + +``` +# pip install compiledb +``` +- Supports Python 2.x and 3.x (for now, tested only with 2.7 and 3.6 versions) +- For bash completion support, add the content of `sh-completion/compiledb.bash` file + to your `.bashrc` file, for example. +- _ZSH completion coming soon :)_ + +## Usage + +`compiledb` provides a `make` python wrapper script which, besides to execute the make +build command, updates the JSON compilation database file corresponding to that build, +resulting in a command-line interface similar to [Bear][bear]. + +To generate `compile_commands.json` file using compiledb's "make wrapper" script, +executing Makefile target `all`: +```bash +$ compiledb make +``` + +`compiledb` forwards all the options/arguments passed after `make` subcommand to GNU Make, +so one can, for example, generate `compile_commands.json` using `core/main.mk` +as main makefile (`-f` flag), starting the build from `build` directory (`-C` flag): +```bash +$ compiledb make -f core/main.mk -C build +``` + +By default, `compiledb make` generates the compilation database and runs the actual build +command requested (acting as a make wrapper), the build step can be skipped using the `-n` +or `--no-build` options. +```bash +$ compiledb -n make +``` + +`compiledb` base command has been designed so that it can be used to parse compile commands +from arbitrary text files (or stdin), assuming it has a build log (ideally generated using +`make -Bnwk` command), and generates the corresponding JSON Compilation database. + +For example, to generate the compilation database from `build-log.txt` file, use the following +command. +```bash +$ compiledb --parse build-log.txt +``` + +or its equivalent: +```bash +$ compiledb < build-log.txt +``` + +Or even, to pipe make's output and print the compilation database to the standard output: +```bash +$ make -Bnwk | compiledb -o- +``` + +By default `compiledb` generates a JSON compilation database in the "arguments" list +[format](https://clang.llvm.org/docs/JSONCompilationDatabase.html). The "command" string +format is also supported through the use of the `--command-style` flag: +```bash +$ compiledb --command-style make +``` + +## Testing / Contributing + +I've implemented this tool because I needed to index some [AOSP][aosp]'s modules for navigating +and studying purposes (after having no satisfatory results with current tools available by the +time such as [YCM-Generator][ycm] and [Bear][bear]). So I've reworked YCM-Generator, which resulted +in the initial version of [compiledb/parser.py](compiledb/parser.py) and used successfully to generate +`compile_commands.json` for some AOSP modules in ~1min running in a [Docker][docker] container and then +could use it with some great tools, such as: + +- [Vim][vim] + [YouCompleteMe][ycm] + [rtags][rtags] + [chromatica.nvim][chrom] +- [Neovim][neovim] + [LanguageClient-neovim][lsp] + [cquery][cquery] + [deoplete][deoplete] +- [Neovim][neovim] + [ALE][ale] + [ccls][ccls] + +Notice: +- _Windows: tested on Windows 10 with cmd, wsl(Ubuntu), mingw32_ +- _Linux: tested only on Arch Linux and Ubuntu 18 so far_ +- _Mac: tested on macOS 10.13 and 10.14_ + +Patches are always welcome :) + +## License +GNU GPLv3 + +[compdb]: https://clang.llvm.org/docs/JSONCompilationDatabase.html +[ycm]: https://github.com/Valloric/YouCompleteMe +[rtags]: https://github.com/Andersbakken/rtags +[chrom]: https://github.com/arakashic/chromatica.nvim +[ycm-gen]: https://github.com/rdnetto/YCM-Generator +[bear]: https://github.com/rizsotto/Bear +[aosp]: https://source.android.com/ +[docker]: https://www.docker.com/ +[vim]: https://www.vim.org/ +[neovim]: https://neovim.io/ +[lsp]: https://github.com/autozimu/LanguageClient-neovim +[cquery]: https://github.com/cquery-project/cquery +[deoplete]: https://github.com/Shougo/deoplete.nvim +[ccls]: https://github.com/MaskRay/ccls +[ale]: https://github.com/w0rp/ale + + + + +%package -n python3-compiledb +Summary: Tool for generating Clang JSON Compilation Database files for make-based build systems. +Provides: python-compiledb +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-pip +%description -n python3-compiledb +# Compilation Database Generator + +[](https://circleci.com/gh/nickdiego/compiledb) +[](https://pypi.org/project/compiledb/) +[](https://pypi.org/project/compiledb) +[](https://github.com/nickdiego/compiledb/blob/master/LICENSE) + +Tool for generating [Clang's JSON Compilation Database][compdb] file for GNU +`make`-based build systems. + +It's aimed mainly at non-cmake (cmake already generates compilation database) +large codebases. Inspired by projects like [YCM-Generator][ycm-gen] and [Bear][bear], +but faster (mainly with large projects), since in most cases it **doesn't need a clean +build** (as the mentioned tools do) to generate the compilation database file, to +achieve this it uses the make options such as `-n`/`--dry-run` and `-k`/`--keep-going` +to extract the compile commands. Also, it's more **cross-compiling friendly** than +YCM-generator's fake-toolchanin approach. + +## Installation + +``` +# pip install compiledb +``` +- Supports Python 2.x and 3.x (for now, tested only with 2.7 and 3.6 versions) +- For bash completion support, add the content of `sh-completion/compiledb.bash` file + to your `.bashrc` file, for example. +- _ZSH completion coming soon :)_ + +## Usage + +`compiledb` provides a `make` python wrapper script which, besides to execute the make +build command, updates the JSON compilation database file corresponding to that build, +resulting in a command-line interface similar to [Bear][bear]. + +To generate `compile_commands.json` file using compiledb's "make wrapper" script, +executing Makefile target `all`: +```bash +$ compiledb make +``` + +`compiledb` forwards all the options/arguments passed after `make` subcommand to GNU Make, +so one can, for example, generate `compile_commands.json` using `core/main.mk` +as main makefile (`-f` flag), starting the build from `build` directory (`-C` flag): +```bash +$ compiledb make -f core/main.mk -C build +``` + +By default, `compiledb make` generates the compilation database and runs the actual build +command requested (acting as a make wrapper), the build step can be skipped using the `-n` +or `--no-build` options. +```bash +$ compiledb -n make +``` + +`compiledb` base command has been designed so that it can be used to parse compile commands +from arbitrary text files (or stdin), assuming it has a build log (ideally generated using +`make -Bnwk` command), and generates the corresponding JSON Compilation database. + +For example, to generate the compilation database from `build-log.txt` file, use the following +command. +```bash +$ compiledb --parse build-log.txt +``` + +or its equivalent: +```bash +$ compiledb < build-log.txt +``` + +Or even, to pipe make's output and print the compilation database to the standard output: +```bash +$ make -Bnwk | compiledb -o- +``` + +By default `compiledb` generates a JSON compilation database in the "arguments" list +[format](https://clang.llvm.org/docs/JSONCompilationDatabase.html). The "command" string +format is also supported through the use of the `--command-style` flag: +```bash +$ compiledb --command-style make +``` + +## Testing / Contributing + +I've implemented this tool because I needed to index some [AOSP][aosp]'s modules for navigating +and studying purposes (after having no satisfatory results with current tools available by the +time such as [YCM-Generator][ycm] and [Bear][bear]). So I've reworked YCM-Generator, which resulted +in the initial version of [compiledb/parser.py](compiledb/parser.py) and used successfully to generate +`compile_commands.json` for some AOSP modules in ~1min running in a [Docker][docker] container and then +could use it with some great tools, such as: + +- [Vim][vim] + [YouCompleteMe][ycm] + [rtags][rtags] + [chromatica.nvim][chrom] +- [Neovim][neovim] + [LanguageClient-neovim][lsp] + [cquery][cquery] + [deoplete][deoplete] +- [Neovim][neovim] + [ALE][ale] + [ccls][ccls] + +Notice: +- _Windows: tested on Windows 10 with cmd, wsl(Ubuntu), mingw32_ +- _Linux: tested only on Arch Linux and Ubuntu 18 so far_ +- _Mac: tested on macOS 10.13 and 10.14_ + +Patches are always welcome :) + +## License +GNU GPLv3 + +[compdb]: https://clang.llvm.org/docs/JSONCompilationDatabase.html +[ycm]: https://github.com/Valloric/YouCompleteMe +[rtags]: https://github.com/Andersbakken/rtags +[chrom]: https://github.com/arakashic/chromatica.nvim +[ycm-gen]: https://github.com/rdnetto/YCM-Generator +[bear]: https://github.com/rizsotto/Bear +[aosp]: https://source.android.com/ +[docker]: https://www.docker.com/ +[vim]: https://www.vim.org/ +[neovim]: https://neovim.io/ +[lsp]: https://github.com/autozimu/LanguageClient-neovim +[cquery]: https://github.com/cquery-project/cquery +[deoplete]: https://github.com/Shougo/deoplete.nvim +[ccls]: https://github.com/MaskRay/ccls +[ale]: https://github.com/w0rp/ale + + + + +%package help +Summary: Development documents and examples for compiledb +Provides: python3-compiledb-doc +%description help +# Compilation Database Generator + +[](https://circleci.com/gh/nickdiego/compiledb) +[](https://pypi.org/project/compiledb/) +[](https://pypi.org/project/compiledb) +[](https://github.com/nickdiego/compiledb/blob/master/LICENSE) + +Tool for generating [Clang's JSON Compilation Database][compdb] file for GNU +`make`-based build systems. + +It's aimed mainly at non-cmake (cmake already generates compilation database) +large codebases. Inspired by projects like [YCM-Generator][ycm-gen] and [Bear][bear], +but faster (mainly with large projects), since in most cases it **doesn't need a clean +build** (as the mentioned tools do) to generate the compilation database file, to +achieve this it uses the make options such as `-n`/`--dry-run` and `-k`/`--keep-going` +to extract the compile commands. Also, it's more **cross-compiling friendly** than +YCM-generator's fake-toolchanin approach. + +## Installation + +``` +# pip install compiledb +``` +- Supports Python 2.x and 3.x (for now, tested only with 2.7 and 3.6 versions) +- For bash completion support, add the content of `sh-completion/compiledb.bash` file + to your `.bashrc` file, for example. +- _ZSH completion coming soon :)_ + +## Usage + +`compiledb` provides a `make` python wrapper script which, besides to execute the make +build command, updates the JSON compilation database file corresponding to that build, +resulting in a command-line interface similar to [Bear][bear]. + +To generate `compile_commands.json` file using compiledb's "make wrapper" script, +executing Makefile target `all`: +```bash +$ compiledb make +``` + +`compiledb` forwards all the options/arguments passed after `make` subcommand to GNU Make, +so one can, for example, generate `compile_commands.json` using `core/main.mk` +as main makefile (`-f` flag), starting the build from `build` directory (`-C` flag): +```bash +$ compiledb make -f core/main.mk -C build +``` + +By default, `compiledb make` generates the compilation database and runs the actual build +command requested (acting as a make wrapper), the build step can be skipped using the `-n` +or `--no-build` options. +```bash +$ compiledb -n make +``` + +`compiledb` base command has been designed so that it can be used to parse compile commands +from arbitrary text files (or stdin), assuming it has a build log (ideally generated using +`make -Bnwk` command), and generates the corresponding JSON Compilation database. + +For example, to generate the compilation database from `build-log.txt` file, use the following +command. +```bash +$ compiledb --parse build-log.txt +``` + +or its equivalent: +```bash +$ compiledb < build-log.txt +``` + +Or even, to pipe make's output and print the compilation database to the standard output: +```bash +$ make -Bnwk | compiledb -o- +``` + +By default `compiledb` generates a JSON compilation database in the "arguments" list +[format](https://clang.llvm.org/docs/JSONCompilationDatabase.html). The "command" string +format is also supported through the use of the `--command-style` flag: +```bash +$ compiledb --command-style make +``` + +## Testing / Contributing + +I've implemented this tool because I needed to index some [AOSP][aosp]'s modules for navigating +and studying purposes (after having no satisfatory results with current tools available by the +time such as [YCM-Generator][ycm] and [Bear][bear]). So I've reworked YCM-Generator, which resulted +in the initial version of [compiledb/parser.py](compiledb/parser.py) and used successfully to generate +`compile_commands.json` for some AOSP modules in ~1min running in a [Docker][docker] container and then +could use it with some great tools, such as: + +- [Vim][vim] + [YouCompleteMe][ycm] + [rtags][rtags] + [chromatica.nvim][chrom] +- [Neovim][neovim] + [LanguageClient-neovim][lsp] + [cquery][cquery] + [deoplete][deoplete] +- [Neovim][neovim] + [ALE][ale] + [ccls][ccls] + +Notice: +- _Windows: tested on Windows 10 with cmd, wsl(Ubuntu), mingw32_ +- _Linux: tested only on Arch Linux and Ubuntu 18 so far_ +- _Mac: tested on macOS 10.13 and 10.14_ + +Patches are always welcome :) + +## License +GNU GPLv3 + +[compdb]: https://clang.llvm.org/docs/JSONCompilationDatabase.html +[ycm]: https://github.com/Valloric/YouCompleteMe +[rtags]: https://github.com/Andersbakken/rtags +[chrom]: https://github.com/arakashic/chromatica.nvim +[ycm-gen]: https://github.com/rdnetto/YCM-Generator +[bear]: https://github.com/rizsotto/Bear +[aosp]: https://source.android.com/ +[docker]: https://www.docker.com/ +[vim]: https://www.vim.org/ +[neovim]: https://neovim.io/ +[lsp]: https://github.com/autozimu/LanguageClient-neovim +[cquery]: https://github.com/cquery-project/cquery +[deoplete]: https://github.com/Shougo/deoplete.nvim +[ccls]: https://github.com/MaskRay/ccls +[ale]: https://github.com/w0rp/ale + + + + +%prep +%autosetup -n compiledb-0.10.1 + +%build +%py3_build + +%install +%py3_install +install -d -m755 %{buildroot}/%{_pkgdocdir} +if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi +if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi +if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi +if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi +pushd %{buildroot} +if [ -d usr/lib ]; then + find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/lib64 ]; then + find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/bin ]; then + find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/sbin ]; then + find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst +fi +touch doclist.lst +if [ -d usr/share/man ]; then + find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst +fi +popd +mv %{buildroot}/filelist.lst . +mv %{buildroot}/doclist.lst . + +%files -n python3-compiledb -f filelist.lst +%dir %{python3_sitelib}/* + +%files help -f doclist.lst +%{_docdir}/* + +%changelog +* Tue Apr 11 2023 Python_Bot <Python_Bot@openeuler.org> - 0.10.1-1 +- Package Spec generated @@ -0,0 +1 @@ +957ea6c6b66017f7ecefe9edf8ee7a80 compiledb-0.10.1.tar.gz |