qmk_firmware/keyboards/CMakeLists.txt
2023-04-06 16:22:14 -04:00

44 lines
1.4 KiB
CMake

include(ExternalProject)
include(AddKeyboard)
if(NOT EXISTS "${CMAKE_SOURCE_DIR}/build/targets")
file(WRITE "${CMAKE_SOURCE_DIR}/build/targets" "")
endif()
# if(DEFINED QMK_KEYBOARD_FOLDER)
# if(NOT DEFINED QMK_KEYMAP_FOLDER)
# set(QMK_KEYMAP_FOLDER "default")
# endif()
# add_keyboard(${QMK_KEYBOARD_FOLDER} ${QMK_KEYMAP_FOLDER})
# endif()
# file(GLOB_RECURSE KEYBOARDS **/CMakeLists.txt)
# foreach(KEYBOARD_CMAKE ${KEYBOARDS})
# get_filename_component(KEYBOARD_FOLDER_ABS "${KEYBOARD_CMAKE}" DIRECTORY)
# file(RELATIVE_PATH KEYBOARD_FOLDER "${CMAKE_SOURCE_DIR}/keyboards" "${KEYBOARD_FOLDER_ABS}")
# add_keyboard(${KEYBOARD_FOLDER} "default")
# endforeach()
file(STRINGS "${CMAKE_SOURCE_DIR}/build/targets" TARGETS)
while(TARGETS)
list(POP_FRONT TARGETS LINE)
if (LINE MATCHES "(.+)\\|(.+)\\|(.+):(.+)\\|(.+)")
set(KEYBOARD_FOLDER ${CMAKE_MATCH_3})
set(KEYMAP_FOLDER ${CMAKE_MATCH_4})
add_keyboard(${KEYBOARD_FOLDER} ${KEYMAP_FOLDER})
endif()
endwhile()
# list all keyboards in build/all_keyboards
file(GLOB_RECURSE POSSIBLE_KEYBOARDS **/info.json)
file(WRITE "${CMAKE_SOURCE_DIR}/build/all_keyboards" "")
foreach(KEYBOARD_INFO ${POSSIBLE_KEYBOARDS})
get_filename_component(KEYBOARD_FOLDER_ABS "${KEYBOARD_INFO}" DIRECTORY)
file(RELATIVE_PATH KEYBOARD_FOLDER "${CMAKE_SOURCE_DIR}/keyboards" "${KEYBOARD_FOLDER_ABS}")
file(APPEND "${CMAKE_SOURCE_DIR}/build/all_keyboards" "${KEYBOARD_FOLDER}\n")
endforeach()