~ruther/qmk_firmware

3a13c2120a9e3d897e05923c68efa542f3b3efc7 — Joel Challis 1 year, 6 months ago 7902051
Ensure LTO is enabled as a `info.json` build config option (#22932)

* feature.lto -> build.lto

* keymaps too
M data/schemas/keyboard.jsonschema => data/schemas/keyboard.jsonschema +2 -2
@@ 314,8 314,8 @@
        },
        "features": {
            "$ref": "qmk.definitions.v1#/boolean_array",
            "propertyNames": { "$ref": "qmk.definitions.v1#/snake_case" }

            "propertyNames": { "$ref": "qmk.definitions.v1#/snake_case" },
            "not": { "required": [ "lto" ] }
        },
        "indicators": {
            "type": "object",

M keyboards/acheron/themis/87h/info.json => keyboards/acheron/themis/87h/info.json +3 -1
@@ 8,9 8,11 @@
        "cols": ["A8" ,"C9" ,"C8" ,"B14","B12","B10","B1" ,"B0" ,"A7" ,"A6" ,"A5" ,"A4" ,"C5" ,"C7" ,"B3" ,"A2" ,"C12","D2" ],
        "rows": ["A15","A10","C6" ,"C4" ,"A3" ,"A1" ,"C11","C10","B4"]
    },
    "build": {
        "lto": true
    },
    "features": {
        "bootmagic": true,
        "lto":       true,
        "mousekey":  true,
        "extrakey":  true,
        "console":   false,

M keyboards/acheron/themis/87htsc/info.json => keyboards/acheron/themis/87htsc/info.json +3 -1
@@ 8,9 8,11 @@
        "cols": ["A8" ,"C9" ,"C8" ,"B14","B12","B10","B1" ,"B0" ,"A7" ,"A6" ,"A5" ,"A4" ,"C5" ,"C7" ,"B3" ,"A2" ,"C12","D2" ],
        "rows": ["A15","A10","C6" ,"C4" ,"A3" ,"A1" ,"C11","C10","B4"]
    },
    "build": {
        "lto": true
    },
    "features": {
        "bootmagic": true,
        "lto":       true,
        "mousekey":  true,
        "extrakey":  true,
        "console":   false,

M keyboards/acheron/themis/88htsc/info.json => keyboards/acheron/themis/88htsc/info.json +3 -1
@@ 8,9 8,11 @@
        "cols": ["A8" ,"C9" ,"C8" ,"B14","B12","B10","B1" ,"B0" ,"A7" ,"A6" ,"A5" ,"A4" ,"C5" ,"C7" ,"B3" ,"A2" ,"C12","D2" ],
        "rows": ["A15","A10","C6" ,"C4" ,"A3" ,"A1" ,"C11","C10","B4"]
    },
    "build": {
        "lto": true
    },
    "features": {
        "bootmagic": true,
        "lto":       true,
        "mousekey":  true,
        "extrakey":  true,
        "console":   false,

M keyboards/clueboard/card/info.json => keyboards/clueboard/card/info.json +0 -1
@@ 14,7 14,6 @@
    "command": false,
    "console": true,
    "extrakey": true,
    "lto": true,
    "midi": false,
    "mousekey": true,
    "nkro": false,

M keyboards/crkbd/info.json => keyboards/crkbd/info.json +0 -1
@@ 14,7 14,6 @@
    "features": {
        "bootmagic": true,
        "extrakey": true,
        "lto": true,
        "mousekey": true,
        "nkro": true,
        "oled": true

M keyboards/dark/magnum_ergo_1/info.json => keyboards/dark/magnum_ergo_1/info.json +3 -1
@@ 8,6 8,9 @@
        "pid": "0x4D45",
        "device_version": "0.0.1"
    },
    "build": {
        "lto": true
    },
    "features": {
        "audio": false,
        "backlight": true,


@@ 16,7 19,6 @@
        "console": false,
        "encoder": false,
        "extrakey": true,
        "lto": true,
        "mousekey": false,
        "nkro": true,
        "rgblight": false

M keyboards/fancytech/fancyalice66/info.json => keyboards/fancytech/fancyalice66/info.json +3 -1
@@ 9,11 9,13 @@
            {"pin_a": "F0", "pin_b": "F1", "resolution": 2}
        ]
    },
    "build": {
        "lto": true
    },
    "features": {
        "bootmagic": true,
        "encoder": false,
        "extrakey": true,
        "lto": true,
        "mousekey": true,
        "nkro": true,
        "rgb_matrix": true

M keyboards/hotdox76v2/info.json => keyboards/hotdox76v2/info.json +0 -1
@@ 11,7 11,6 @@
        "extrakey": true,
        "mousekey": true,
        "nkro": true,
        "lto": true,
        "oled": true,
        "rgb_matrix": true
    },

M keyboards/kbdfans/kbdpad/mk3/info.json => keyboards/kbdfans/kbdpad/mk3/info.json +0 -1
@@ 9,7 9,6 @@
        "command": false,
        "console": false,
        "extrakey": true,
        "lto": true,
        "mousekey": true,
        "nkro": true,
        "rgb_matrix": true

M keyboards/keychron/q1v1/info.json => keyboards/keychron/q1v1/info.json +3 -1
@@ 4,13 4,15 @@
    "maintainer": "lalalademaxiya1",
    "bootloader": "atmel-dfu",
    "diode_direction": "ROW2COL",
    "build": {
        "lto": true
    },
    "features": {
        "bootmagic": true,
        "command": false,
        "console": false,
        "dip_switch": true,
        "extrakey": true,
        "lto": true,
        "mousekey": true,
        "nkro": true,
        "rgb_matrix": true

M keyboards/mode/m256wh/info.json => keyboards/mode/m256wh/info.json +3 -1
@@ 4,9 4,11 @@
    "maintainer": "Gondolindrim",
    "bootloader": "stm32-dfu",
    "diode_direction": "COL2ROW",
    "build": {
        "lto": true
    },
    "features": {
        "extrakey": true,
        "lto": true,
        "mousekey": true,
        "nkro": true,
        "rgblight": true

M keyboards/mode/m256ws/info.json => keyboards/mode/m256ws/info.json +3 -1
@@ 4,12 4,14 @@
    "maintainer": "Gondolindrim",
    "bootloader": "stm32-dfu",
    "diode_direction": "COL2ROW",
    "build": {
        "lto": true
    },
    "features": {
        "bootmagic": true,
        "command": false,
        "console": false,
        "extrakey": true,
        "lto": true,
        "mousekey": true,
        "nkro": true,
        "rgblight": true

M keyboards/moondrop/dash75/info.json => keyboards/moondrop/dash75/info.json +4 -2
@@ 3,14 3,16 @@
    "keyboard_name": "Dash 75",
    "maintainer": "vinorodrigues",
    "bootloader": "atmel-dfu",
    "build": {
        "lto": true
    },
    "features": {
        "bootmagic": true,
        "command": false,
        "console": false,
        "extrakey": true,
        "mousekey": true,
        "nkro": false,
        "lto": true
        "nkro": false
    },
    "diode_direction": "COL2ROW",
    "matrix_pins": {

M keyboards/moondrop/dash75/keymaps/via/keymap.json => keyboards/moondrop/dash75/keymaps/via/keymap.json +1 -2
@@ 7,8 7,7 @@
    "author": "vinorodrigues",
    "config": {
        "features": {
            "via": true,
            "lto": true
            "via": true
        }
    },
    "layers": [

M keyboards/pauperboards/brick/info.json => keyboards/pauperboards/brick/info.json +1 -2
@@ 23,8 23,7 @@
        "mousekey": true,
        "nkro": true,
        "encoder": true,
        "rgblight": true,
        "lto": true
        "rgblight": true
    },
    "build": {
        "lto": true

M keyboards/quadrum/delta/info.json => keyboards/quadrum/delta/info.json +3 -1
@@ 4,6 4,9 @@
    "maintainer": "Sleepdealr",
    "bootloader": "atmel-dfu",
    "diode_direction": "COL2ROW",
    "build": {
        "lto": true
    },
    "features": {
        "bootmagic": true,
        "command": false,


@@ 11,7 14,6 @@
        "extrakey": true,
        "mousekey": true,
        "nkro": true,
        "lto": true,
        "encoder": true
    },
    "matrix_pins": {

M keyboards/quokka/info.json => keyboards/quokka/info.json +0 -1
@@ 10,7 10,6 @@
    "features": {
        "audio": true,
        "extrakey": true,
        "lto": true,
        "oled": true,
        "rgb_matrix": true
    },

M keyboards/smithrune/magnus/m75h/info.json => keyboards/smithrune/magnus/m75h/info.json +3 -1
@@ 8,6 8,9 @@
        "pid": "0x1676",
        "device_version": "0.0.1"
    },
    "build": {
        "lto": true
    },
    "features": {
        "audio": false,
        "backlight": false,


@@ 16,7 19,6 @@
        "console": false,
        "encoder": false,
        "extrakey": true,
        "lto": true,
        "mousekey": true,
        "nkro": true,
        "rgblight": true

M keyboards/smithrune/magnus/m75s/info.json => keyboards/smithrune/magnus/m75s/info.json +3 -1
@@ 8,6 8,9 @@
        "pid": "0x1675",
        "device_version": "0.0.1"
    },
    "build": {
        "lto": true
    },
    "features": {
        "audio": false,
        "backlight": true,


@@ 16,7 19,6 @@
        "console": false,
        "encoder": false,
        "extrakey": true,
        "lto": true,
        "mousekey": true,
        "nkro": true,
        "rgblight": true

M keyboards/teleport/native/info.json => keyboards/teleport/native/info.json +4 -2
@@ 29,14 29,16 @@
        "led_flush_limit": 32,
        "sleep": true
    },
    "build": {
        "lto": true
    },
    "features": {
        "bootmagic": true,
        "command": false,
        "console": false,
        "extrakey": true,
        "mousekey": true,
        "nkro": true,
        "lto": true
        "nkro": true
    },
    "diode_direction": "ROW2COL",
    "matrix_pins": {

M keyboards/thevankeyboards/minivan/keymaps/via/keymap.json => keyboards/thevankeyboards/minivan/keymaps/via/keymap.json +4 -2
@@ 9,10 9,12 @@
    ["KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS"]
  ],
  "config": {
    "features": {
      "via": true,
    "build": {
      "lto": true
    },
    "features": {
      "via": true
    },
    "dynamic_keymap": {
      "layer_count": 4
    }

M lib/python/qmk/info.py => lib/python/qmk/info.py +3 -0
@@ 233,6 233,9 @@ def _extract_features(info_data, rules):
            key = '_'.join(key.split('_')[:-1]).lower()
            value = True if value.lower() in true_values else False if value.lower() in false_values else value

            if key in ['lto']:
                continue

            if 'config_h_features' not in info_data:
                info_data['config_h_features'] = {}