Commit Graph

10 Commits

Author SHA1 Message Date
Trent Piepho b1093e9da5 Fix VERBOSE make flag (#26289)
The docs say set this to true to enable verbose output, but setting it to
anything, even "false", would enable verbose mode.

The qmk python build program actually does this, supplying "VERBOSE=false"
to make, which turns verbose mode on, not off!  The reason it's not verbose
is that the wrapper also adds the "-s" switch that has the same effect as
turning verbose mode back off.

After fixing the flag, there's no reason to add the "-s", so remove that code.
2026-06-26 14:20:10 +01:00
Nick Brassel ac991405d0 Deprecate qmk generate-compilation-database. (#25237) 2025-05-06 09:52:41 +10:00
Nick Brassel 575abc48a3 More Windows->Unix style path fixes. (#25119) 2025-04-09 10:15:14 +10:00
Nick Brassel 380e0c9cad Userspace: add support for adding environment variables during build (#22887) 2024-08-12 22:34:22 +10:00
Nick Brassel 56802f506c Ensure qmk generate-compilation-database copies to userspace as well. (#23129) 2024-02-22 12:47:42 +00:00
Nick Brassel 62d19fc2ac Copy compile_commands.json to userspace, if in use. (#22925) 2024-01-20 08:11:17 +11:00
Nick Brassel 5501e804ff QMK Userspace (#22222)
Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>
2023-11-28 07:53:43 +11:00
Nick Brassel 0fcd13f552 [CLI] Remove duplicates from search results (#22528) 2023-11-22 12:08:26 +11:00
Sergey Vlasov 7e27d72cbc Fix qmk find failure due to circular imports (#22523)
There was an import cycle in the Python modules:

  - `qmk.build_targets` imported `qmk.cli.generate.compilation_database`;
  - importing `qmk.cli.generate.compilation_database` requires
    initializing `qmk.cli` first;
  - the initialization of `qmk.cli` imported the modules for all CLI
    commands;
  - `qmk.cli.compile` imported `qmk.build_targets`.

This cycle did not matter in most cases, because `qmk.cli` was imported
first, and in that case importing `qmk.cli.generate.compilation_database`
did not trigger the initialization of `qmk.cli` again.  However, there was
one corner case when `qmk.bulld_targets` was getting imported first:

  - The `qmk find` command uses the `multiprocessing` module.
  - The `multiprocessing` module uses the `spawn` start method on macOS
    and Windows.
  - When the `spawn` method is used, the child processes initialize
    without any Python modules loaded, and the required modules are loaded
    on demand by the `pickle` module when receiving the serialized objects
    from the main process.

The result was that the `qmk find` command did not work properly on macOS
(and probably Windows too); it reported exceptions like this:

    ImportError: cannot import name 'KeyboardKeymapBuildTarget' from partially initialized module 'qmk.build_targets' (most likely due to a circular import)

Moving the offending `qmk.cli.generate.compilation_database` import into
the method which actually uses it fixes the problem.
2023-11-21 15:05:29 +00:00
Nick Brassel 4938210711 CLI refactoring for common build target APIs (#22221) 2023-11-15 16:24:54 +11:00