some relative/abs keymap folder stuff

This commit is contained in:
Jack Humbert
2023-04-02 23:46:40 -04:00
parent 9ae271c844
commit d5760d02a6
3 changed files with 50 additions and 13 deletions
+18 -5
View File
@@ -1,8 +1,8 @@
macro(add_keyboard KEYBOARD_FOLDER)
macro(add_keyboard KEYBOARD_FOLDER KEYMAP_FOLDER)
# not entirely sure why this is necessary
set(TEMP_PATH ${KEYBOARD_FOLDER})
cmake_path(IS_RELATIVE TEMP_PATH IS_FOLDER_RELATIVE)
if(${IS_FOLDER_RELATIVE})
cmake_path(IS_RELATIVE TEMP_PATH IS_KEYBOARD_FOLDER_RELATIVE)
if(${IS_KEYBOARD_FOLDER_RELATIVE})
set(KEYBOARD_FOLDER_ABS ${CMAKE_SOURCE_DIR}/keyboards/${KEYBOARD_FOLDER})
if(NOT EXISTS ${KEYBOARD_FOLDER_ABS})
message(FATAL_ERROR "Keyboard does not exist in QMK - try using an absolute path to the keyboard folder")
@@ -13,6 +13,18 @@ macro(add_keyboard KEYBOARD_FOLDER)
message(FATAL_ERROR "Absolute path to keyboard does not exist")
endif()
endif()
set(TEMP_PATH ${KEYMAP_FOLDER})
cmake_path(IS_RELATIVE TEMP_PATH IS_KEYMAP_FOLDER_RELATIVE)
if(${IS_KEYMAP_FOLDER_RELATIVE})
set(KEYMAP_NAME ${KEYMAP_FOLDER})
else()
if(WIN32)
set(KEYMAP_NAME $ENV{USERNAME})
else()
set(KEYMAP_NAME $ENV{USE})
endif()
endif()
# find the right toolchain
message(STATUS "Reading config from ${KEYBOARD_FOLDER_ABS}/info.json")
@@ -36,14 +48,14 @@ macro(add_keyboard KEYBOARD_FOLDER)
message(FATAL_ERROR "Could not find platform for ${KEYBOARD_FOLDER}")
endif()
if(${IS_FOLDER_RELATIVE})
if(${IS_KEYBOARD_FOLDER_RELATIVE})
string(REPLACE "/" "_" KEYBOARD_NAME ${KEYBOARD_FOLDER})
else()
string(JSON KEYBOARD_NAME GET ${JSON_STRING} keyboard_name)
string(REPLACE " " "_" KEYBOARD_NAME ${KEYBOARD_NAME})
endif()
ExternalProject_Add(${KEYBOARD_NAME}
ExternalProject_Add(${KEYBOARD_NAME}_${KEYMAP_NAME}
SOURCE_DIR ${CMAKE_SOURCE_DIR}
PREFIX ${CMAKE_SOURCE_DIR}/build/keyboards/${KEYBOARD_FOLDER}
TMP_DIR ${CMAKE_SOURCE_DIR}/build/keyboards/${KEYBOARD_FOLDER}/tmp
@@ -61,5 +73,6 @@ macro(add_keyboard KEYBOARD_FOLDER)
-DMAKE_ROOT=${MAKE_ROOT}
-DQMK_KEYBOARD=${KEYBOARD_NAME}
-DQMK_KEYBOARD_FOLDER=${KEYBOARD_FOLDER}
-DQMK_KEYMAP_FOLDER=${KEYMAP_FOLDER}
)
endmacro(add_keyboard)