example tasks

This commit is contained in:
Jack Humbert 2023-04-03 23:22:59 -04:00
parent 40a3a431ef
commit 6468360ff1
3 changed files with 149 additions and 7 deletions

137
.vscode/tasks.json vendored Normal file
View File

@ -0,0 +1,137 @@
{
"version": "2.0.0",
"tasks": [
{
"label": "Load Keyboard & Refresh Outline",
"dependsOrder": "sequence",
"dependsOn":[
"Load Keyboard",
"Configure CMake"
],
"group": {
"kind": "build",
"isDefault": true
}
},
{
"label": "Load Keyboard",
"type": "shell",
"command": "cmake -Bbuild -DQMK_KEYBOARD_FOLDER=${input:keyboard}",
"problemMatcher": []
},
{
"label": "Configure CMake",
"type": "cmake",
"command": "configure"
// "command": "${command:cmake.configure}",
// "problemMatcher": [],
},
{
"label": "Build",
"problemMatcher": [
{
"base": "$gcc",
"fileLocation": ["relative", "${workspaceRoot}/build"]
},
],
"options": {
"environment": {
"CLICOLOR_FORCE": "1"
}
},
"type": "cmake",
"command": "build",
"targets":[
"${input:keyboard_safe}"
],
"group": {
"kind": "build",
"isDefault": true
},
// "type": "shell",
// "command": "cmake --build build --target ${input:keyboard_safe}",
// "problemMatcher": [],
// "group": {
// "kind": "build",
// "isDefault": true
// }
// "type": "cmake",
// "command": "build",
// "targets":[
// "${input:keyboard_safe}"
// ]
},
{
"label": "Rebuild",
// "type": "process",
// "command": "cmake",
// "args": [
// "--build",
// "build",
// "--target",
// "${input:keyboard_safe}",
// "--clean-first"
// ],
"problemMatcher": [
{
"base": "$gcc",
"fileLocation": ["relative", "${workspaceRoot}/build"]
},
],
"options": {
"environment": {
"CLICOLOR_FORCE": "1"
}
},
"type": "cmake",
"command": "cleanRebuild",
"targets":[
"${input:keyboard_safe}"
],
"group": {
"kind": "build",
"isDefault": true
},
}
],
"inputs": [
{
"id": "keyboard",
"description": "Keyboard:",
"type": "pickString",
"options":[
"planck/rev5",
"olkb/planck/rev3"
]
},
{
"id": "keyboard_safe",
"description": "Keyboard:",
"type": "pickString",
"options":[
"planck_rev5_default",
"olkb_planck_rev3_default"
]
},
// {
// "type": "command",
// "id": "keyboard",
// "command": "extension.commandvariable.pickStringRemember",
// "args": {
// "description": "select an option :",
// "options": [
// ["always 1", "5000"],
// ["always 2", "5100"]
// ],
// "default": "",
// "fileName": "${workspaceFolder}/data/keyboards.json",
// "pattern": {
// "regexp": "^\\s*(?!#)([^=]+?)\\s*=\\s*(?:(\\{.+\\})|(.+))$",
// "label": "$1",
// "json": "$2",
// "value": "$3"
// }
// }
// }
]
}

View File

@ -24,6 +24,9 @@ resolve_keyboard(${QMK_KEYBOARD_FOLDER} QMK_KEYBOARD_FOLDER_ABS)
set(TEMP_PATH ${QMK_KEYBOARD_FOLDER})
cmake_path(IS_RELATIVE TEMP_PATH IS_KEYBOARD_FOLDER_RELATIVE)
if(${IS_KEYBOARD_FOLDER_RELATIVE} AND NOT EXISTS ${CMAKE_SOURCE_DIR}/keyboards/${QMK_KEYBOARD_FOLDER})
set(IS_KEYBOARD_FOLDER_RELATIVE FALSE)
endif()
if(NOT DEFINED QMK_KEYMAP_FOLDER)
set(QMK_KEYMAP_FOLDER "default")
@ -31,9 +34,6 @@ endif()
set(TEMP_PATH ${QMK_KEYMAP_FOLDER})
cmake_path(IS_RELATIVE TEMP_PATH IS_KEYMAP_FOLDER_RELATIVE)
if(${IS_KEYBOARD_FOLDER_RELATIVE} AND NOT EXISTS ${CMAKE_SOURCE_DIR}/keyboards/${QMK_KEYMAP_FOLDER})
set(IS_KEYBOARD_FOLDER_RELATIVE FALSE)
endif()
if(${IS_KEYBOARD_FOLDER_RELATIVE})
set(QMK_KEYBOARD_CURRENT_FOLDER ${QMK_KEYBOARD_FOLDER})
@ -113,7 +113,7 @@ else(${IS_KEYBOARD_FOLDER_RELATIVE})
if(EXISTS "${QMK_KEYMAP_FOLDER}/keymap.c")
set(QMK_KEYBOARD_KEYMAP "{QMK_KEYMAP_FOLDER}/keymap.c")
else()
message(FATAL_ERROR "Could not find keymap in keymap folder '${QMK_KEYMAP_FOLDER}'")
message(FATAL_ERROR "Could not find keymap in keymap path '${QMK_KEYMAP_FOLDER}'")
endif()
endif()

View File

@ -53,7 +53,8 @@ find_program(AVR_UPLOAD
add_compile_options(
$<$<COMPILE_LANGUAGE:C>:-std=gnu11>
$<$<COMPILE_LANGUAGE:CXX>:-std=gnu++14>
# -flto
-flto
# -mrelax
-Os
-Wall
-Wstrict-prototypes
@ -77,7 +78,11 @@ add_compile_definitions(
F_CPU=16000000
F_USB=16000000UL
__AVR_ATmega32U4__
# LTO_ENABLE
LTO_ENABLE
)
add_link_options(
-Wl,--gc-sections
)
# include_directories("C:/Users/Jack/Downloads/avr-gcc-12.1.0-x64-windows/avr/include")
@ -92,7 +97,7 @@ macro(add_qmk_executable target_name)
set(hex_file ${target_name}-${QMK_MCU}.hex)
set(lst_file ${target_name}-${QMK_MCU}.lst)
add_link_options(-Wl,--gc-sections,-Map=${map_file})
add_link_options(-Wl,-Map=${map_file})
# create elf file
add_executable(${elf_file}