diff --git a/CMakeLists.txt b/CMakeLists.txt index f633e01..51dfa90 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -4,32 +4,23 @@ include(pico_sdk_import.cmake) project(mtgcard) -file(GLOB ICON_SOURCES CONFIGURE_DEPENDS src/icons/*.c) - -add_executable(mtgcard - src/main.cpp - src/display.cpp - src/pixelstream.cpp - src/lib.cpp - src/flash.cpp - src/cardslot.cpp - src/icons.cpp - src/menu.cpp - src/manamenu.cpp - src/cmcmenu.cpp - src/selectmenu.cpp - src/cardmenu.cpp - - src/usb_descriptors.c - - ${ICON_SOURCES} -) +set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin) +set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin) +set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin) pico_sdk_init() -target_include_directories(mtgcard PUBLIC include) +add_library(devicelib STATIC + src/display.cpp + src/flash.cpp + src/lib.cpp + src/pixelstream.cpp + src/usb_descriptors.c +) -target_link_libraries(mtgcard PUBLIC +target_include_directories(devicelib PUBLIC include) + +target_link_libraries(devicelib PUBLIC pico_stdlib hardware_spi hardware_dma @@ -39,8 +30,8 @@ target_link_libraries(mtgcard PUBLIC pico_unique_id ) -target_compile_definitions(mtgcard PRIVATE +target_compile_definitions(devicelib PUBLIC PICO_ENTER_USB_BOOT_ON_EXIT=1 ) -pico_add_extra_outputs(mtgcard) +add_subdirectory(programs) diff --git a/programs/CMakeLists.txt b/programs/CMakeLists.txt new file mode 100644 index 0000000..e15a78f --- /dev/null +++ b/programs/CMakeLists.txt @@ -0,0 +1,3 @@ +cmake_minimum_required(VERSION 3.13) + +add_subdirectory(mtgcard) diff --git a/programs/mtgcard/CMakeLists.txt b/programs/mtgcard/CMakeLists.txt new file mode 100644 index 0000000..6bd8706 --- /dev/null +++ b/programs/mtgcard/CMakeLists.txt @@ -0,0 +1,22 @@ +cmake_minimum_required(VERSION 3.13) + +file(GLOB ICON_SOURCES CONFIGURE_DEPENDS src/icons/*.c) + +add_executable(mtgcard + src/main.cpp + src/cardslot.cpp + src/icons.cpp + src/menu.cpp + src/manamenu.cpp + src/cmcmenu.cpp + src/selectmenu.cpp + src/cardmenu.cpp + + ${ICON_SOURCES} +) + +target_include_directories(mtgcard PRIVATE include) + +target_link_libraries(mtgcard PRIVATE devicelib) + +pico_add_extra_outputs(mtgcard) diff --git a/include/cardslot.h b/programs/mtgcard/include/cardslot.h similarity index 100% rename from include/cardslot.h rename to programs/mtgcard/include/cardslot.h diff --git a/include/icons.h b/programs/mtgcard/include/icons.h similarity index 100% rename from include/icons.h rename to programs/mtgcard/include/icons.h diff --git a/include/menu.h b/programs/mtgcard/include/menu.h similarity index 100% rename from include/menu.h rename to programs/mtgcard/include/menu.h diff --git a/src/cardmenu.cpp b/programs/mtgcard/src/cardmenu.cpp similarity index 100% rename from src/cardmenu.cpp rename to programs/mtgcard/src/cardmenu.cpp diff --git a/src/cardslot.cpp b/programs/mtgcard/src/cardslot.cpp similarity index 100% rename from src/cardslot.cpp rename to programs/mtgcard/src/cardslot.cpp diff --git a/src/cmcmenu.cpp b/programs/mtgcard/src/cmcmenu.cpp similarity index 100% rename from src/cmcmenu.cpp rename to programs/mtgcard/src/cmcmenu.cpp diff --git a/src/icons.cpp b/programs/mtgcard/src/icons.cpp similarity index 100% rename from src/icons.cpp rename to programs/mtgcard/src/icons.cpp diff --git a/src/icons/0.svg.c b/programs/mtgcard/src/icons/0.svg.c similarity index 100% rename from src/icons/0.svg.c rename to programs/mtgcard/src/icons/0.svg.c diff --git a/src/icons/1.svg.c b/programs/mtgcard/src/icons/1.svg.c similarity index 100% rename from src/icons/1.svg.c rename to programs/mtgcard/src/icons/1.svg.c diff --git a/src/icons/10.svg.c b/programs/mtgcard/src/icons/10.svg.c similarity index 100% rename from src/icons/10.svg.c rename to programs/mtgcard/src/icons/10.svg.c diff --git a/src/icons/11.svg.c b/programs/mtgcard/src/icons/11.svg.c similarity index 100% rename from src/icons/11.svg.c rename to programs/mtgcard/src/icons/11.svg.c diff --git a/src/icons/12.svg.c b/programs/mtgcard/src/icons/12.svg.c similarity index 100% rename from src/icons/12.svg.c rename to programs/mtgcard/src/icons/12.svg.c diff --git a/src/icons/13.svg.c b/programs/mtgcard/src/icons/13.svg.c similarity index 100% rename from src/icons/13.svg.c rename to programs/mtgcard/src/icons/13.svg.c diff --git a/src/icons/14.svg.c b/programs/mtgcard/src/icons/14.svg.c similarity index 100% rename from src/icons/14.svg.c rename to programs/mtgcard/src/icons/14.svg.c diff --git a/src/icons/15.svg.c b/programs/mtgcard/src/icons/15.svg.c similarity index 100% rename from src/icons/15.svg.c rename to programs/mtgcard/src/icons/15.svg.c diff --git a/src/icons/16.svg.c b/programs/mtgcard/src/icons/16.svg.c similarity index 100% rename from src/icons/16.svg.c rename to programs/mtgcard/src/icons/16.svg.c diff --git a/src/icons/17.svg.c b/programs/mtgcard/src/icons/17.svg.c similarity index 100% rename from src/icons/17.svg.c rename to programs/mtgcard/src/icons/17.svg.c diff --git a/src/icons/18.svg.c b/programs/mtgcard/src/icons/18.svg.c similarity index 100% rename from src/icons/18.svg.c rename to programs/mtgcard/src/icons/18.svg.c diff --git a/src/icons/19.svg.c b/programs/mtgcard/src/icons/19.svg.c similarity index 100% rename from src/icons/19.svg.c rename to programs/mtgcard/src/icons/19.svg.c diff --git a/src/icons/2.svg.c b/programs/mtgcard/src/icons/2.svg.c similarity index 100% rename from src/icons/2.svg.c rename to programs/mtgcard/src/icons/2.svg.c diff --git a/src/icons/20.svg.c b/programs/mtgcard/src/icons/20.svg.c similarity index 100% rename from src/icons/20.svg.c rename to programs/mtgcard/src/icons/20.svg.c diff --git a/src/icons/3.svg.c b/programs/mtgcard/src/icons/3.svg.c similarity index 100% rename from src/icons/3.svg.c rename to programs/mtgcard/src/icons/3.svg.c diff --git a/src/icons/4.svg.c b/programs/mtgcard/src/icons/4.svg.c similarity index 100% rename from src/icons/4.svg.c rename to programs/mtgcard/src/icons/4.svg.c diff --git a/src/icons/5.svg.c b/programs/mtgcard/src/icons/5.svg.c similarity index 100% rename from src/icons/5.svg.c rename to programs/mtgcard/src/icons/5.svg.c diff --git a/src/icons/6.svg.c b/programs/mtgcard/src/icons/6.svg.c similarity index 100% rename from src/icons/6.svg.c rename to programs/mtgcard/src/icons/6.svg.c diff --git a/src/icons/7.svg.c b/programs/mtgcard/src/icons/7.svg.c similarity index 100% rename from src/icons/7.svg.c rename to programs/mtgcard/src/icons/7.svg.c diff --git a/src/icons/8.svg.c b/programs/mtgcard/src/icons/8.svg.c similarity index 100% rename from src/icons/8.svg.c rename to programs/mtgcard/src/icons/8.svg.c diff --git a/src/icons/9.svg.c b/programs/mtgcard/src/icons/9.svg.c similarity index 100% rename from src/icons/9.svg.c rename to programs/mtgcard/src/icons/9.svg.c diff --git a/src/icons/A.c b/programs/mtgcard/src/icons/A.c similarity index 100% rename from src/icons/A.c rename to programs/mtgcard/src/icons/A.c diff --git a/src/icons/B.c b/programs/mtgcard/src/icons/B.c similarity index 100% rename from src/icons/B.c rename to programs/mtgcard/src/icons/B.c diff --git a/src/icons/B.svg.c b/programs/mtgcard/src/icons/B.svg.c similarity index 100% rename from src/icons/B.svg.c rename to programs/mtgcard/src/icons/B.svg.c diff --git a/src/icons/C.c b/programs/mtgcard/src/icons/C.c similarity index 100% rename from src/icons/C.c rename to programs/mtgcard/src/icons/C.c diff --git a/src/icons/C.svg.c b/programs/mtgcard/src/icons/C.svg.c similarity index 100% rename from src/icons/C.svg.c rename to programs/mtgcard/src/icons/C.svg.c diff --git a/src/icons/D.c b/programs/mtgcard/src/icons/D.c similarity index 100% rename from src/icons/D.c rename to programs/mtgcard/src/icons/D.c diff --git a/src/icons/E.c b/programs/mtgcard/src/icons/E.c similarity index 100% rename from src/icons/E.c rename to programs/mtgcard/src/icons/E.c diff --git a/src/icons/F.c b/programs/mtgcard/src/icons/F.c similarity index 100% rename from src/icons/F.c rename to programs/mtgcard/src/icons/F.c diff --git a/src/icons/G.c b/programs/mtgcard/src/icons/G.c similarity index 100% rename from src/icons/G.c rename to programs/mtgcard/src/icons/G.c diff --git a/src/icons/G.svg.c b/programs/mtgcard/src/icons/G.svg.c similarity index 100% rename from src/icons/G.svg.c rename to programs/mtgcard/src/icons/G.svg.c diff --git a/src/icons/H.c b/programs/mtgcard/src/icons/H.c similarity index 100% rename from src/icons/H.c rename to programs/mtgcard/src/icons/H.c diff --git a/src/icons/I.c b/programs/mtgcard/src/icons/I.c similarity index 100% rename from src/icons/I.c rename to programs/mtgcard/src/icons/I.c diff --git a/src/icons/J.c b/programs/mtgcard/src/icons/J.c similarity index 100% rename from src/icons/J.c rename to programs/mtgcard/src/icons/J.c diff --git a/src/icons/K.c b/programs/mtgcard/src/icons/K.c similarity index 100% rename from src/icons/K.c rename to programs/mtgcard/src/icons/K.c diff --git a/src/icons/L.c b/programs/mtgcard/src/icons/L.c similarity index 100% rename from src/icons/L.c rename to programs/mtgcard/src/icons/L.c diff --git a/src/icons/M.c b/programs/mtgcard/src/icons/M.c similarity index 100% rename from src/icons/M.c rename to programs/mtgcard/src/icons/M.c diff --git a/src/icons/N.c b/programs/mtgcard/src/icons/N.c similarity index 100% rename from src/icons/N.c rename to programs/mtgcard/src/icons/N.c diff --git a/src/icons/O.c b/programs/mtgcard/src/icons/O.c similarity index 100% rename from src/icons/O.c rename to programs/mtgcard/src/icons/O.c diff --git a/src/icons/P.c b/programs/mtgcard/src/icons/P.c similarity index 100% rename from src/icons/P.c rename to programs/mtgcard/src/icons/P.c diff --git a/src/icons/Q.c b/programs/mtgcard/src/icons/Q.c similarity index 100% rename from src/icons/Q.c rename to programs/mtgcard/src/icons/Q.c diff --git a/src/icons/R.c b/programs/mtgcard/src/icons/R.c similarity index 100% rename from src/icons/R.c rename to programs/mtgcard/src/icons/R.c diff --git a/src/icons/R.svg.c b/programs/mtgcard/src/icons/R.svg.c similarity index 100% rename from src/icons/R.svg.c rename to programs/mtgcard/src/icons/R.svg.c diff --git a/src/icons/S.c b/programs/mtgcard/src/icons/S.c similarity index 100% rename from src/icons/S.c rename to programs/mtgcard/src/icons/S.c diff --git a/src/icons/T.c b/programs/mtgcard/src/icons/T.c similarity index 100% rename from src/icons/T.c rename to programs/mtgcard/src/icons/T.c diff --git a/src/icons/U.c b/programs/mtgcard/src/icons/U.c similarity index 100% rename from src/icons/U.c rename to programs/mtgcard/src/icons/U.c diff --git a/src/icons/U.svg.c b/programs/mtgcard/src/icons/U.svg.c similarity index 100% rename from src/icons/U.svg.c rename to programs/mtgcard/src/icons/U.svg.c diff --git a/src/icons/V.c b/programs/mtgcard/src/icons/V.c similarity index 100% rename from src/icons/V.c rename to programs/mtgcard/src/icons/V.c diff --git a/src/icons/W.c b/programs/mtgcard/src/icons/W.c similarity index 100% rename from src/icons/W.c rename to programs/mtgcard/src/icons/W.c diff --git a/src/icons/W.svg.c b/programs/mtgcard/src/icons/W.svg.c similarity index 100% rename from src/icons/W.svg.c rename to programs/mtgcard/src/icons/W.svg.c diff --git a/src/icons/X.c b/programs/mtgcard/src/icons/X.c similarity index 100% rename from src/icons/X.c rename to programs/mtgcard/src/icons/X.c diff --git a/src/icons/Y.c b/programs/mtgcard/src/icons/Y.c similarity index 100% rename from src/icons/Y.c rename to programs/mtgcard/src/icons/Y.c diff --git a/src/icons/Z.c b/programs/mtgcard/src/icons/Z.c similarity index 100% rename from src/icons/Z.c rename to programs/mtgcard/src/icons/Z.c diff --git a/src/main.cpp b/programs/mtgcard/src/main.cpp similarity index 100% rename from src/main.cpp rename to programs/mtgcard/src/main.cpp diff --git a/src/manamenu.cpp b/programs/mtgcard/src/manamenu.cpp similarity index 100% rename from src/manamenu.cpp rename to programs/mtgcard/src/manamenu.cpp diff --git a/src/menu.cpp b/programs/mtgcard/src/menu.cpp similarity index 100% rename from src/menu.cpp rename to programs/mtgcard/src/menu.cpp diff --git a/src/selectmenu.cpp b/programs/mtgcard/src/selectmenu.cpp similarity index 100% rename from src/selectmenu.cpp rename to programs/mtgcard/src/selectmenu.cpp