Skip to main content

Generate Compilation Database by parse Keil µVision project

Project description

uv2compdb

Generate Compilation Database by parse Keil µVision project.

Features

  • Parse strategy (dep/build_log -> XML)
  • Extract toolchain predefined macros with -p option
  • VariousControls hierarchical merge (Target -> Group -> File)

Installation

pip install uv2compdb

Usage

Basic Usage

Generate compile_commands.json in the current directory for the first target if the project has multiple targets.

uv2compdb /path/to/project

Specify target and output

Generate compile_commands.json for a specific target and output

uv2compdb /path/to/project -t target -o /path/to/compile_commands.json

Help

usage: uv2compdb [-h] [-a ARGUMENTS] [-b] [-t TARGET] [-o OUTPUT] [-p] project

Generate compile_commands.json by parse Keil µVision project

positional arguments:
  project               path to .uvproj[x] file

options:
  -h, --help            show this help message and exit
  -a, --arguments ARGUMENTS
                        add extra arguments
  -b, --build           try to build while dep/build_log files don't not exist
  -t, --target TARGET   target name
  -o, --output OUTPUT   output dir/file path (default: compile_commands.json)
  -p, --predefined      try to add predefined macros

Limit

  • Not support C51
  • Not parsed "Options" -> "C/C++" -> "Language / Code Generation"
  • Not parsed "Options" -> "ASM", so Asm file use same options with C file
  • Can't parse RTE components
  • Can't add toolchain predefined macros and include path
  • The support for ARMCC (AC5) not well
    • need config .clangd manually

Clangd

.clangd config

CompileFlags:
  CompilationDatabase: /path/to/compile-commands-dir
  Compiler: arm-none-eabi-gcc # use arm-neon-eabi-gcc instead of armcc
  Add:
    - -fdeclspec  # fix '__declspec' if use arm-none-eabi-gcc instead of armcc

Diagnostics:
  UnusedIncludes: None  # Strict(default), None
  # Suppress:
  #   - no_member
  #   - no_member_suggest
  #   - no_template
  #   - undeclared_var_use

References

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

uv2compdb-0.3.0.tar.gz (8.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

uv2compdb-0.3.0-py3-none-any.whl (10.1 kB view details)

Uploaded Python 3

File details

Details for the file uv2compdb-0.3.0.tar.gz.

File metadata

  • Download URL: uv2compdb-0.3.0.tar.gz
  • Upload date:
  • Size: 8.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.12

File hashes

Hashes for uv2compdb-0.3.0.tar.gz
Algorithm Hash digest
SHA256 2f95aeb7d95c4740653ddcdec998e26216d9a3188f621e6348881eaa25103df5
MD5 360d96e6d0cd7baa77920fcd65318268
BLAKE2b-256 803766ccf0a1a87a7e0a060fe62b4c4a4729f55ef2a75416e3528d768d5b3ae6

See more details on using hashes here.

File details

Details for the file uv2compdb-0.3.0-py3-none-any.whl.

File metadata

  • Download URL: uv2compdb-0.3.0-py3-none-any.whl
  • Upload date:
  • Size: 10.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.12

File hashes

Hashes for uv2compdb-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 332a26452bbdadeb313f08406696ec3d20290d658cb6f964810add49b8adf2e2
MD5 ce820fbb78747bf31f759de10f10280a
BLAKE2b-256 f46f6922ece8152581f48fbc7a6524d8b167182473a527cb600a7a029d901024

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page