CMakeLists.txt 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. include(ExternalProject)
  2. include(AddKeyboard)
  3. if(NOT EXISTS "${CMAKE_SOURCE_DIR}/build/targets")
  4. file(WRITE "${CMAKE_SOURCE_DIR}/build/targets" "")
  5. endif()
  6. # if(DEFINED QMK_KEYBOARD_FOLDER)
  7. # if(NOT DEFINED QMK_KEYMAP_FOLDER)
  8. # set(QMK_KEYMAP_FOLDER "default")
  9. # endif()
  10. # add_keyboard(${QMK_KEYBOARD_FOLDER} ${QMK_KEYMAP_FOLDER})
  11. # endif()
  12. # file(GLOB_RECURSE KEYBOARDS **/CMakeLists.txt)
  13. # foreach(KEYBOARD_CMAKE ${KEYBOARDS})
  14. # get_filename_component(KEYBOARD_FOLDER_ABS "${KEYBOARD_CMAKE}" DIRECTORY)
  15. # file(RELATIVE_PATH KEYBOARD_FOLDER "${CMAKE_SOURCE_DIR}/keyboards" "${KEYBOARD_FOLDER_ABS}")
  16. # add_keyboard(${KEYBOARD_FOLDER} "default")
  17. # endforeach()
  18. file(STRINGS "${CMAKE_SOURCE_DIR}/build/targets" TARGETS)
  19. while(TARGETS)
  20. list(POP_FRONT TARGETS LINE)
  21. if (LINE MATCHES "(.+)\\|(.+)\\|(.+):(.+)\\|(.+)")
  22. set(KEYBOARD_FOLDER ${CMAKE_MATCH_3})
  23. set(KEYMAP_FOLDER ${CMAKE_MATCH_4})
  24. add_keyboard(${KEYBOARD_FOLDER} ${KEYMAP_FOLDER})
  25. endif()
  26. endwhile()
  27. # list all keyboards in build/all_keyboards
  28. file(GLOB_RECURSE POSSIBLE_KEYBOARDS **/info.json)
  29. file(WRITE "${CMAKE_SOURCE_DIR}/build/all_keyboards" "")
  30. foreach(KEYBOARD_INFO ${POSSIBLE_KEYBOARDS})
  31. get_filename_component(KEYBOARD_FOLDER_ABS "${KEYBOARD_INFO}" DIRECTORY)
  32. file(RELATIVE_PATH KEYBOARD_FOLDER "${CMAKE_SOURCE_DIR}/keyboards" "${KEYBOARD_FOLDER_ABS}")
  33. file(APPEND "${CMAKE_SOURCE_DIR}/build/all_keyboards" "${KEYBOARD_FOLDER}\n")
  34. endforeach()