ConfigureKeyboard.cmake 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. cmake_minimum_required(VERSION 3.20)
  2. list(APPEND CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake")
  3. include(ResolveKeyboard)
  4. include(ValidateJSON)
  5. resolve_keyboard(${QMK_KEYBOARD_FOLDER} KEYBOARD_FOLDER_ABS)
  6. validate_json(${KEYBOARD_FOLDER_ABS}/info.json keyboard JSON_STRING)
  7. if(NOT DEFINED QMK_KEYMAP_FOLDER)
  8. set(QMK_KEYMAP_FOLDER default)
  9. endif()
  10. set(TEMP_PATH ${QMK_KEYBOARD_FOLDER})
  11. cmake_path(IS_RELATIVE TEMP_PATH IS_KEYBOARD_FOLDER_RELATIVE)
  12. set(TEMP_PATH ${QMK_KEYMAP_FOLDER})
  13. cmake_path(IS_RELATIVE TEMP_PATH IS_KEYMAP_FOLDER_RELATIVE)
  14. if(${IS_KEYMAP_FOLDER_RELATIVE})
  15. set(KEYMAP_NAME ${QMK_KEYMAP_FOLDER})
  16. else()
  17. if(WIN32)
  18. set(KEYMAP_NAME $ENV{USERNAME})
  19. else()
  20. set(KEYMAP_NAME $ENV{USE})
  21. endif()
  22. endif()
  23. string(JSON KEYBOARD_NAME GET ${JSON_STRING} keyboard_name)
  24. if(${IS_KEYBOARD_FOLDER_RELATIVE})
  25. string(MAKE_C_IDENTIFIER ${QMK_KEYBOARD_FOLDER} KEYBOARD_SLUG)
  26. else()
  27. string(MAKE_C_IDENTIFIER ${KEYBOARD_NAME} KEYBOARD_SLUG)
  28. endif()
  29. string(JSON MANUFACTURER GET ${JSON_STRING} manufacturer)
  30. set(TARGET_NAME "${KEYBOARD_SLUG}_${KEYMAP_NAME}")
  31. file(APPEND "${CMAKE_SOURCE_DIR}/build/targets" "${TARGET_NAME}|${KEYBOARD_NAME} with ${QMK_KEYMAP_FOLDER}|${QMK_KEYBOARD_FOLDER}:${QMK_KEYMAP_FOLDER}|Made by: ${MANUFACTURER}\n")
  32. message(STATUS "Added keyboard '${QMK_KEYBOARD_FOLDER}' with keymap '${QMK_KEYMAP_FOLDER}'")