From 1f2f420de0cf4edda7d6715075f7e16aaf22d279 Mon Sep 17 00:00:00 2001 From: Dave Date: Sun, 7 Mar 2021 23:22:05 -0600 Subject: [PATCH] Cleaned up generation of keymap table and NUM_KEYMAPS definition Toward #23 and #27 --- firmware/asdf/CMakeLists.txt | 28 ---------------------------- firmware/asdf/make-build-dirs.sh | 11 +++++++---- firmware/asdf/src/CMakeLists.txt | 27 +++++++++++++++++++++++++++ 3 files changed, 34 insertions(+), 32 deletions(-) diff --git a/firmware/asdf/CMakeLists.txt b/firmware/asdf/CMakeLists.txt index d919c64..02b73be 100644 --- a/firmware/asdf/CMakeLists.txt +++ b/firmware/asdf/CMakeLists.txt @@ -36,34 +36,6 @@ set(ASDF_SRC_DIR ${CMAKE_CURRENT_SOURCE_DIR}/src) set (ASDF_TARGET_NAME asdf-v${PROJECT_VERSION}-${ARCH}) set (ASDF_EXECUTABLE_TARGET_NAME ${ASDF_TARGET_NAME}) - -function(create_keymap_setups keymaps keymap_table) - list(TRANSFORM keymaps REPLACE "<\(.+\):\(.+\)>" "\n [\\2] = setup_\\1_keymap" OUTPUT_VARIABLE temp_list) - list(APPEND temp_list "") - set(${keymap_table} "${temp_list}" PARENT_SCOPE) -endfunction(create_keymap_setups) - -function(create_keymap_report keymaps keymap_report) - list(TRANSFORM keymaps REPLACE "<\(.+\):\(.+\)>" "\nkeymap [\\2]: \\1" OUTPUT_VARIABLE temp_list) - list(APPEND temp_list "") - set(${keymap_report} "${temp_list}" PARENT_SCOPE) -endfunction(create_keymap_report) - -include(keymap_list.cmake) - -create_keymap_setups("${keymap_list}" keymap_table) -create_keymap_report("${keymap_list}" keymap_report) - -# get list length and decrement by one to account for trailing semicolon -list (LENGTH keymap_table num_keymaps) -math(EXPR num_keymaps "${num_keymaps}-1") - -message("**********************") -message("Keymap table: ${keymap_report}") -message("**********************\n\n") - - - if(ARCH MATCHES test) add_subdirectory(test) else() diff --git a/firmware/asdf/make-build-dirs.sh b/firmware/asdf/make-build-dirs.sh index 8e5f39a..e62bd8c 100755 --- a/firmware/asdf/make-build-dirs.sh +++ b/firmware/asdf/make-build-dirs.sh @@ -13,19 +13,22 @@ add_valid_target atmega328p add_valid_target atmega2560 build_arch() { - echo one: $1 two: $2 three: $3 - echo star: "[$*]" - echo amp: "[$@]" + for target_arch in "$@" do if [[ ! -d "build-$target_arch" ]] then - mkdir "build-$target_arch" + echo -ne "\nCreating directory $target_arch..." + mkdir "build-$target_arch" && echo "[success]" + else + echo "Directory \"$target_arch\" exists." fi if [[ -d "build-$target_arch" ]] then + echo -e "\nRunning CMake in directory $target_arch..." (cd "build-$target_arch" && cmake -DARCH=$target_arch ..) + echo fi done } diff --git a/firmware/asdf/src/CMakeLists.txt b/firmware/asdf/src/CMakeLists.txt index 3a35065..78589af 100644 --- a/firmware/asdf/src/CMakeLists.txt +++ b/firmware/asdf/src/CMakeLists.txt @@ -1,10 +1,37 @@ message("C compiler: ${CMAKE_C_COMPILER}") +function(create_keymap_setups keymaps keymap_table) + list(TRANSFORM keymaps REPLACE "<\(.+\):\(.+\)>" "\n [\\2] = setup_\\1_keymap" OUTPUT_VARIABLE temp_list) + string(REPLACE ";" "," temp_list2 "${temp_list}") + set(${keymap_table} "${temp_list2}" PARENT_SCOPE) +endfunction(create_keymap_setups) + +function(create_keymap_report keymaps keymap_report) + list(TRANSFORM keymaps REPLACE "<\(.+\):\(.+\)>" "\nkeymap [\\2]: \\1" OUTPUT_VARIABLE temp_list) + string(REPLACE ";" "" temp_list2 "${temp_list}") + set(${keymap_report} "${temp_list2}" PARENT_SCOPE) +endfunction(create_keymap_report) + +include(../keymap_list.cmake) + +create_keymap_setups("${keymap_list}" keymap_table) +create_keymap_report("${keymap_list}" keymap_report) + +# get list length and decrement by one to account for trailing semicolon +list (LENGTH keymap_list num_keymaps) + +message("**********************") +message("Keymap table: ${keymap_report}") +message("**********************\n\n") + + configure_file(${ASDF_SRC_DIR}/Arch/asdf_arch_${ARCH}.h ${CMAKE_CURRENT_BINARY_DIR}/asdf_arch.h COPYONLY) configure_file(${ASDF_SRC_DIR}/Arch/asdf_arch_${ARCH}.c ${CMAKE_CURRENT_BINARY_DIR}/asdf_arch.c COPYONLY) configure_file(${ASDF_SRC_DIR}/asdf_keymap_table.c.in ${CMAKE_CURRENT_BINARY_DIR}/asdf_keymap_table.c) configure_file(${ASDF_SRC_DIR}/asdf_keymap_table.h.in ${CMAKE_CURRENT_BINARY_DIR}/asdf_keymap_table.h) + + list(APPEND C_FLAGS -std=c99 -Wall