From 6a960cbf058a1641bbf68c6db19c2b453071a626 Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Tue, 4 Apr 2023 12:29:01 -0400 Subject: [PATCH] move to single lib --- CMakeLists.txt | 2 ++ cmake/Findlufa.cmake | 7 ++++--- cmake/features/backlight.cmake | 9 +++++---- cmake/features/oled.cmake | 5 +++-- cmake/toolchains/avr.cmake | 2 +- platforms/CMakeLists.txt | 8 ++++---- platforms/avr/CMakeLists.txt | 8 ++++---- platforms/chibios/CMakeLists.txt | 6 +++--- quantum/CMakeLists.txt | 24 ++++++++++++------------ tmk_core/protocol/CMakeLists.txt | 12 ++++++------ tmk_core/protocol/lufa/CMakeLists.txt | 19 ++++++++++--------- 11 files changed, 54 insertions(+), 48 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index cfdd4a4cf29..446abc7385c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -101,6 +101,8 @@ else() add_qmk_executable(${QMK_KEYBOARD} ${KEYBOARD_SRC}) endif() +add_library(qmk) + add_subdirectory(quantum) add_subdirectory(platforms) add_subdirectory(tmk_core/protocol) diff --git a/cmake/Findlufa.cmake b/cmake/Findlufa.cmake index 8c9a3511f2b..c6137635943 100644 --- a/cmake/Findlufa.cmake +++ b/cmake/Findlufa.cmake @@ -23,6 +23,7 @@ add_library(lufa ) target_include_directories(lufa PUBLIC ${LUFA_PATH}) -target_link_libraries(lufa ${QMK_TARGET}) -target_link_libraries(lufa tmk_core_protocol) -target_link_libraries(lufa tmk_core_protocol_lufa) \ No newline at end of file +# target_link_libraries(lufa qmk) +# target_link_libraries(lufa ${QMK_TARGET}) +# target_link_libraries(lufa tmk_core_protocol) +# target_link_libraries(lufa tmk_core_protocol_lufa) \ No newline at end of file diff --git a/cmake/features/backlight.cmake b/cmake/features/backlight.cmake index 9f6af2a7735..5eed18fbb9c 100644 --- a/cmake/features/backlight.cmake +++ b/cmake/features/backlight.cmake @@ -22,10 +22,11 @@ if(${BACKLIGHT_ENABLE} AND NOT ${NO_BACKLIGHT_PIN} STREQUAL "backlight-NOTFOUND" target_sources(backlight PRIVATE quantum/backlight/backlight_${BACKLIGHT_DRIVER}.c) endif() endif() - target_include_directories(backlight PUBLIC quantum/backlight) - target_include_directories(backlight PUBLIC drivers/oled) + target_include_directories(qmk PUBLIC quantum/backlight) + target_include_directories(qmk PUBLIC drivers/oled) + target_link_libraries(backlight qmk) # target_include_directories(backlight PUBLIC quantum/backlight) # target_include_directories(quantum PUBLIC quantum/backlight) - target_link_libraries(backlight ${QMK_TARGET}) - target_link_libraries(backlight quantum) + # target_link_libraries(backlight ${QMK_TARGET}) + # target_link_libraries(backlight quantum) endif() diff --git a/cmake/features/oled.cmake b/cmake/features/oled.cmake index 90e0fd9ff14..19b7ef2649c 100644 --- a/cmake/features/oled.cmake +++ b/cmake/features/oled.cmake @@ -7,6 +7,7 @@ if(${OLED_ENABLE}) target_include_directories(oled PUBLIC drivers) target_include_directories(oled PUBLIC drivers/oled) target_include_directories(oled PUBLIC platforms/${QMK_PLATFORM}/drivers) - target_link_libraries(oled ${QMK_TARGET}) - target_link_libraries(oled platforms) + target_link_libraries(oled qmk) + # target_link_libraries(oled ${QMK_TARGET}) + # target_link_libraries(oled platforms) endif() diff --git a/cmake/toolchains/avr.cmake b/cmake/toolchains/avr.cmake index 10c507ac45a..eadf1c88dba 100644 --- a/cmake/toolchains/avr.cmake +++ b/cmake/toolchains/avr.cmake @@ -116,7 +116,7 @@ macro(add_qmk_executable target_name) # create elf file add_executable(${QMK_TARGET} ${ARGN}) - target_link_libraries(${QMK_TARGET} quantum) + target_link_libraries(${QMK_TARGET} qmk) # set_target_properties(${QMK_TARGET} # PROPERTIES diff --git a/platforms/CMakeLists.txt b/platforms/CMakeLists.txt index 52281a277ac..d39d9d45ef4 100644 --- a/platforms/CMakeLists.txt +++ b/platforms/CMakeLists.txt @@ -1,6 +1,6 @@ -add_library(platforms suspend.c synchronization_util.c timer.c) -target_include_directories(platforms PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}) -target_link_libraries(platforms ${QMK_TARGET}) -target_link_libraries(platforms quantum) +target_sources(qmk PUBLIC suspend.c synchronization_util.c timer.c) +target_include_directories(qmk PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}) +# target_link_libraries(platforms ${QMK_TARGET}) +# target_link_libraries(platforms quantum) add_subdirectory(${QMK_PLATFORM}) \ No newline at end of file diff --git a/platforms/avr/CMakeLists.txt b/platforms/avr/CMakeLists.txt index 06a212d938e..5556923a062 100644 --- a/platforms/avr/CMakeLists.txt +++ b/platforms/avr/CMakeLists.txt @@ -4,7 +4,7 @@ # add_link_options( # -mmcu=${QMK_MCU} # ) -add_library(platforms_avr +target_sources(qmk PUBLIC hardware_id.c platform.c suspend.c @@ -13,7 +13,7 @@ add_library(platforms_avr bootloaders/bootloadhid.c xprintf.S ) -target_include_directories(platforms_avr PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}) +target_include_directories(qmk PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}) -target_link_libraries(platforms_avr ${QMK_TARGET}) -target_link_libraries(platforms_avr quantum) \ No newline at end of file +# target_link_libraries(platforms_avr ${QMK_TARGET}) +# target_link_libraries(platforms_avr quantum) \ No newline at end of file diff --git a/platforms/chibios/CMakeLists.txt b/platforms/chibios/CMakeLists.txt index ecd20b0fcce..622e2a56785 100644 --- a/platforms/chibios/CMakeLists.txt +++ b/platforms/chibios/CMakeLists.txt @@ -1,6 +1,6 @@ add_link_options( -mcpu=${QMK_MCU} ) -add_library(platforms_chibios) -include_directories(${CMAKE_CURRENT_SOURCE_DIR}) -target_link_libraries(platforms_chibios ${QMK_TARGET}) \ No newline at end of file +# add_library(platforms_chibios) +target_include_directories(qmk PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}) +# target_link_libraries(platforms_chibios ${QMK_TARGET}) \ No newline at end of file diff --git a/quantum/CMakeLists.txt b/quantum/CMakeLists.txt index 8190e0d0a04..736df9073f6 100644 --- a/quantum/CMakeLists.txt +++ b/quantum/CMakeLists.txt @@ -1,4 +1,4 @@ -add_library(quantum +target_sources(qmk PUBLIC main.c keymap_introspection.c quantum.c @@ -21,18 +21,18 @@ add_library(quantum bootmagic/magic.c ) -target_include_directories(quantum PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}) -target_include_directories(quantum PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/logging) -target_include_directories(quantum PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/keymap_extras) -target_include_directories(quantum PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/process_keycode) -target_include_directories(quantum PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/sequencer) -target_include_directories(quantum PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/bootmagic) +target_include_directories(qmk PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}) +target_include_directories(qmk PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/logging) +target_include_directories(qmk PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/keymap_extras) +target_include_directories(qmk PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/process_keycode) +target_include_directories(qmk PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/sequencer) +target_include_directories(qmk PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/bootmagic) -target_link_libraries(quantum ${QMK_TARGET}) -target_link_libraries(quantum platforms) -target_link_libraries(quantum platforms_${QMK_PLATFORM}) -target_link_libraries(quantum tmk_core_protocol) -target_link_libraries(quantum tmk_core_protocol_${QMK_PROTOCOL}) +# target_link_libraries(quantum ${QMK_TARGET}) +# target_link_libraries(quantum platforms) +# target_link_libraries(quantum platforms_${QMK_PLATFORM}) +# target_link_libraries(quantum tmk_core_protocol) +# target_link_libraries(quantum tmk_core_protocol_${QMK_PROTOCOL}) # if no printf # target_sources(quantum PRIVATE ${CMAKE_SOURCE_DIR}/lib/printf/src/printf/printf.c) diff --git a/tmk_core/protocol/CMakeLists.txt b/tmk_core/protocol/CMakeLists.txt index a56ed30222d..8f04d84c0c4 100644 --- a/tmk_core/protocol/CMakeLists.txt +++ b/tmk_core/protocol/CMakeLists.txt @@ -1,4 +1,4 @@ -add_library(tmk_core_protocol +target_sources(qmk PUBLIC host.c report.c usb_device_state.c @@ -9,10 +9,10 @@ add_compile_definitions( # EXTRAKEY_ENABLE # NKRO_ENABLE ) -target_include_directories(tmk_core_protocol PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}) -target_link_libraries(tmk_core_protocol ${QMK_TARGET}) -target_link_libraries(tmk_core_protocol quantum) -target_link_libraries(tmk_core_protocol tmk_core_protocol_${QMK_PROTOCOL}) -target_link_libraries(tmk_core_protocol platforms_${QMK_PLATFORM}) +target_include_directories(qmk PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}) +# target_link_libraries(tmk_core_protocol ${QMK_TARGET}) +# target_link_libraries(tmk_core_protocol quantum) +# target_link_libraries(tmk_core_protocol tmk_core_protocol_${QMK_PROTOCOL}) +# target_link_libraries(tmk_core_protocol platforms_${QMK_PLATFORM}) add_subdirectory(${QMK_PROTOCOL}) \ No newline at end of file diff --git a/tmk_core/protocol/lufa/CMakeLists.txt b/tmk_core/protocol/lufa/CMakeLists.txt index 55b13ed1d98..7b36900f152 100644 --- a/tmk_core/protocol/lufa/CMakeLists.txt +++ b/tmk_core/protocol/lufa/CMakeLists.txt @@ -1,7 +1,7 @@ set(ARCH AVR8) set(USE_STATIC_OPTIONS "(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)") -add_compile_definitions( +target_compile_definitions(qmk PUBLIC PROTOCOL_LUFA ARCH=ARCH_${ARCH} BOARD=BOARD_NONE @@ -13,7 +13,7 @@ add_compile_definitions( FIXED_NUM_CONFIGURATIONS=1 ) -add_library(tmk_core_protocol_lufa +target_sources(qmk PUBLIC lufa.c ../usb_descriptor.c usb_util.c @@ -21,11 +21,12 @@ add_library(tmk_core_protocol_lufa find_package(lufa REQUIRED) -target_include_directories(tmk_core_protocol_lufa PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}) +target_include_directories(qmk PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}) +target_link_libraries(qmk lufa) -target_link_libraries(tmk_core_protocol_lufa ${QMK_TARGET}) -target_link_libraries(tmk_core_protocol_lufa quantum) -target_link_libraries(tmk_core_protocol_lufa tmk_core_protocol) -target_link_libraries(tmk_core_protocol_lufa lufa) -target_link_libraries(tmk_core_protocol_lufa platforms) -target_link_libraries(tmk_core_protocol_lufa platforms_${QMK_PLATFORM}) \ No newline at end of file +# target_link_libraries(tmk_core_protocol_lufa ${QMK_TARGET}) +# target_link_libraries(tmk_core_protocol_lufa quantum) +# target_link_libraries(tmk_core_protocol_lufa tmk_core_protocol) +# target_link_libraries(tmk_core_protocol_lufa lufa) +# target_link_libraries(tmk_core_protocol_lufa platforms) +# target_link_libraries(tmk_core_protocol_lufa platforms_${QMK_PLATFORM}) \ No newline at end of file