summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCoprDistGit <infra@openeuler.org>2023-04-11 21:04:50 +0000
committerCoprDistGit <infra@openeuler.org>2023-04-11 21:04:50 +0000
commitdc932d84c08a2949aa5f8533b782edcdd254e9a0 (patch)
treeab50a8b5550b780f8b8ad6e4078ef9213a2ca6db
parent76000c68cd4498c9cb65a2f747ac221a75959fc0 (diff)
automatic import of python-compiledb
-rw-r--r--.gitignore1
-rw-r--r--python-compiledb.spec439
-rw-r--r--sources1
3 files changed, 441 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
index e69de29..f304ba5 100644
--- a/.gitignore
+++ b/.gitignore
@@ -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
+
+[![CircleCI branch](https://img.shields.io/circleci/project/github/nickdiego/compiledb/master.svg)](https://circleci.com/gh/nickdiego/compiledb)
+[![PyPI](https://img.shields.io/pypi/v/compiledb.svg)](https://pypi.org/project/compiledb/)
+[![PyPI - Python Version](https://img.shields.io/pypi/pyversions/compiledb.svg)](https://pypi.org/project/compiledb)
+[![GitHub](https://img.shields.io/github/license/nickdiego/compiledb.svg)](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
+
+[![CircleCI branch](https://img.shields.io/circleci/project/github/nickdiego/compiledb/master.svg)](https://circleci.com/gh/nickdiego/compiledb)
+[![PyPI](https://img.shields.io/pypi/v/compiledb.svg)](https://pypi.org/project/compiledb/)
+[![PyPI - Python Version](https://img.shields.io/pypi/pyversions/compiledb.svg)](https://pypi.org/project/compiledb)
+[![GitHub](https://img.shields.io/github/license/nickdiego/compiledb.svg)](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
+
+[![CircleCI branch](https://img.shields.io/circleci/project/github/nickdiego/compiledb/master.svg)](https://circleci.com/gh/nickdiego/compiledb)
+[![PyPI](https://img.shields.io/pypi/v/compiledb.svg)](https://pypi.org/project/compiledb/)
+[![PyPI - Python Version](https://img.shields.io/pypi/pyversions/compiledb.svg)](https://pypi.org/project/compiledb)
+[![GitHub](https://img.shields.io/github/license/nickdiego/compiledb.svg)](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
diff --git a/sources b/sources
new file mode 100644
index 0000000..bb758f9
--- /dev/null
+++ b/sources
@@ -0,0 +1 @@
+957ea6c6b66017f7ecefe9edf8ee7a80 compiledb-0.10.1.tar.gz