|
1 | 1 | cmake_minimum_required(VERSION 3.12) |
2 | | - |
3 | 2 | set(PICO_SDK_PATH ${CMAKE_CURRENT_SOURCE_DIR}/ext/pico-sdk) |
4 | 3 | include(pico_sdk_import.cmake) |
5 | 4 |
|
6 | | -project(pico_examples C CXX ASM) |
| 5 | +project(SD2PSX LANGUAGES C CXX ASM) |
| 6 | + |
7 | 7 | set(CMAKE_C_STANDARD 11) |
8 | 8 | set(CMAKE_CXX_STANDARD 17) |
9 | 9 | # set(PICO_COPY_TO_RAM 1) |
10 | 10 |
|
11 | 11 | pico_sdk_init() |
12 | 12 |
|
13 | | -set(LV_CONF_PATH ${CMAKE_CURRENT_SOURCE_DIR}/src/lv_conf.h CACHE STRING "" FORCE) |
14 | | -add_subdirectory(ext/lvgl EXCLUDE_FROM_ALL) |
| 13 | +add_compile_definitions(PICO_FLASH_SIZE_BYTES=16777216) |
| 14 | + |
| 15 | +# Add all subdirectories for sub-targets |
15 | 16 |
|
16 | 17 | add_subdirectory(database) |
| 18 | +add_subdirectory(misc) |
17 | 19 | add_subdirectory(ps2boot) |
18 | 20 | add_subdirectory(src/version) |
| 21 | +add_subdirectory(src/ps2) |
| 22 | +add_subdirectory(src/ps1) |
| 23 | +add_subdirectory(ext/) |
| 24 | + |
| 25 | +# SD2PSX Main Lib |
19 | 26 |
|
20 | 27 | add_executable(sd2psx |
21 | 28 | src/main.c |
22 | | - src/debug.c |
23 | | - src/gui.c |
24 | | - src/input.c |
25 | | - src/ui_menu.c |
26 | | - src/ui_theme_mono.c |
27 | | - src/des.c |
28 | | - src/keystore.c |
29 | | - src/settings.c |
30 | | - src/bigmem.c |
31 | | - src/oled.c |
32 | | - |
33 | | - src/ps1/ps1_cardman.c |
34 | | - src/ps1/ps1_dirty.c |
35 | | - src/ps1/ps1_memory_card.c |
36 | | - src/ps1/ps1_empty_card.c |
37 | | - src/ps1/ps1_odeman.c |
38 | | - |
39 | | - src/ps2/ps2_memory_card.c |
40 | | - src/ps2/ps2_dirty.c |
41 | | - src/ps2/ps2_cardman.c |
42 | | - src/ps2/ps2_pio_qspi.c |
43 | | - src/ps2/ps2_psram.c |
44 | | - src/ps2/ps2_exploit.c |
45 | 29 |
|
| 30 | + src/game_names/game_names.c |
46 | 31 | src/wear_leveling/wear_leveling.c |
47 | 32 | src/wear_leveling/wear_leveling_rp2040_flash.c |
48 | 33 |
|
49 | | - src/arduino_wrapper/sd.cpp |
50 | | - src/arduino_wrapper/SPI.cpp |
51 | | - |
52 | | - ext/ESP8266SdFat/src/common/FmtNumber.cpp |
53 | | - ext/ESP8266SdFat/src/common/FsCache.cpp |
54 | | - ext/ESP8266SdFat/src/common/FsDateTime.cpp |
55 | | - ext/ESP8266SdFat/src/common/FsName.cpp |
56 | | - ext/ESP8266SdFat/src/common/FsStructs.cpp |
57 | | - ext/ESP8266SdFat/src/common/FsUtf.cpp |
58 | | - ext/ESP8266SdFat/src/common/upcase.cpp |
59 | | - ext/ESP8266SdFat/src/ExFatLib/ExFatDbg.cpp |
60 | | - ext/ESP8266SdFat/src/ExFatLib/ExFatFile.cpp |
61 | | - ext/ESP8266SdFat/src/ExFatLib/ExFatFilePrint.cpp |
62 | | - ext/ESP8266SdFat/src/ExFatLib/ExFatFileWrite.cpp |
63 | | - ext/ESP8266SdFat/src/ExFatLib/ExFatFormatter.cpp |
64 | | - ext/ESP8266SdFat/src/ExFatLib/ExFatName.cpp |
65 | | - ext/ESP8266SdFat/src/ExFatLib/ExFatPartition.cpp |
66 | | - ext/ESP8266SdFat/src/ExFatLib/ExFatVolume.cpp |
67 | | - ext/ESP8266SdFat/src/FatLib/FatDbg.cpp |
68 | | - ext/ESP8266SdFat/src/FatLib/FatFile.cpp |
69 | | - ext/ESP8266SdFat/src/FatLib/FatFileLFN.cpp |
70 | | - ext/ESP8266SdFat/src/FatLib/FatFilePrint.cpp |
71 | | - ext/ESP8266SdFat/src/FatLib/FatFileSFN.cpp |
72 | | - ext/ESP8266SdFat/src/FatLib/FatFormatter.cpp |
73 | | - ext/ESP8266SdFat/src/FatLib/FatName.cpp |
74 | | - ext/ESP8266SdFat/src/FatLib/FatPartition.cpp |
75 | | - ext/ESP8266SdFat/src/FatLib/FatVolume.cpp |
76 | | - ext/ESP8266SdFat/src/FreeStack.cpp |
77 | | - ext/ESP8266SdFat/src/FsLib/FsFile.cpp |
78 | | - ext/ESP8266SdFat/src/FsLib/FsNew.cpp |
79 | | - ext/ESP8266SdFat/src/FsLib/FsVolume.cpp |
80 | | - ext/ESP8266SdFat/src/iostream/istream.cpp |
81 | | - ext/ESP8266SdFat/src/iostream/ostream.cpp |
82 | | - ext/ESP8266SdFat/src/iostream/StdioStream.cpp |
83 | | - ext/ESP8266SdFat/src/iostream/StreamBaseClass.cpp |
84 | | - ext/ESP8266SdFat/src/MinimumSerial.cpp |
85 | | - ext/ESP8266SdFat/src/SdCard/SdCardInfo.cpp |
86 | | - ext/ESP8266SdFat/src/SdCard/SdSpiCard.cpp |
87 | | - |
88 | 34 | ext/fnv/hash_64a.c |
89 | 35 | ) |
90 | 36 |
|
91 | | -add_library(ssd1306 STATIC ext/pico-ssd1306/ssd1306.c) |
92 | | -target_link_libraries(ssd1306 pico_stdlib hardware_i2c) |
93 | | - |
94 | 37 | target_compile_definitions( |
95 | 38 | sd2psx PUBLIC |
96 | 39 | PICO_XOSC_STARTUP_DELAY_MULTIPLIER=64 |
97 | | - PICO_FLASH_SIZE_BYTES=16777216 |
98 | | - USE_SPI_ARRAY_TRANSFER=1 |
99 | 40 | ) |
100 | 41 |
|
101 | | -target_compile_options( |
102 | | - sd2psx PRIVATE |
103 | | - -Wall -Wextra |
104 | | - -fno-jump-tables |
105 | | -) |
106 | 42 |
|
107 | 43 | target_include_directories(sd2psx PUBLIC |
108 | | - src/arduino_wrapper |
109 | | - |
110 | | - ext/pico-ssd1306 |
111 | | - ext/ESP8266SdFat/src |
112 | | - ext/ESP8266SdFat/extras/attic |
113 | 44 | ext/fnv |
114 | 45 | ) |
115 | 46 |
|
116 | | -pico_generate_pio_header(sd2psx ${CMAKE_CURRENT_LIST_DIR}/src/ps1/ps1_mc_spi.pio) |
117 | | -pico_generate_pio_header(sd2psx ${CMAKE_CURRENT_LIST_DIR}/src/ps2/ps2_mc_spi.pio) |
118 | | -pico_generate_pio_header(sd2psx ${CMAKE_CURRENT_LIST_DIR}/src/ps2/ps2_qspi.pio) |
119 | | - |
120 | 47 | target_link_libraries(sd2psx |
121 | | - ssd1306 |
122 | | - pico_stdlib |
123 | | - pico_multicore |
124 | | - hardware_pio |
125 | | - hardware_spi |
126 | | - hardware_i2c |
127 | | - hardware_flash |
128 | | - hardware_dma |
129 | | - lvgl::lvgl |
130 | | - gamedb |
131 | | - ps2boot |
132 | | - sd2psx_version |
| 48 | + PRIVATE |
| 49 | + pico_stdlib |
| 50 | + pico_multicore |
| 51 | + hardware_pio |
| 52 | + hardware_i2c |
| 53 | + hardware_flash |
| 54 | + gamedb |
| 55 | + ps2boot |
| 56 | + ps2_history_icons |
| 57 | + sd2psx_version |
| 58 | + sd2psx_common |
| 59 | + ps1_card |
| 60 | + ps2_card |
| 61 | + sd_fat |
133 | 62 | ) |
134 | 63 |
|
135 | 64 | add_dependencies(sd2psx gamedb ps2boot) |
136 | 65 | set_target_properties(sd2psx PROPERTIES PICO_TARGET_LINKER_SCRIPT ${CMAKE_SOURCE_DIR}/memmap_custom.ld) |
137 | 66 |
|
| 67 | +# Common Lib |
| 68 | + |
| 69 | +add_library(sd2psx_common STATIC |
| 70 | + ${CMAKE_CURRENT_SOURCE_DIR}/src/debug.c |
| 71 | + ${CMAKE_CURRENT_SOURCE_DIR}/src/gui.c |
| 72 | + ${CMAKE_CURRENT_SOURCE_DIR}/src/input.c |
| 73 | + ${CMAKE_CURRENT_SOURCE_DIR}/src/ui_menu.c |
| 74 | + ${CMAKE_CURRENT_SOURCE_DIR}/src/ui_theme_mono.c |
| 75 | + ${CMAKE_CURRENT_SOURCE_DIR}/src/des.c |
| 76 | + ${CMAKE_CURRENT_SOURCE_DIR}/src/keystore.c |
| 77 | + ${CMAKE_CURRENT_SOURCE_DIR}/src/settings.c |
| 78 | + ${CMAKE_CURRENT_SOURCE_DIR}/src/bigmem.c |
| 79 | + ${CMAKE_CURRENT_SOURCE_DIR}/src/oled.c) |
| 80 | + |
| 81 | +target_include_directories(sd2psx_common |
| 82 | + PUBLIC |
| 83 | + ${CMAKE_CURRENT_SOURCE_DIR}/src |
| 84 | + PRIVATE ) |
| 85 | + |
| 86 | +target_link_libraries(sd2psx_common |
| 87 | + PUBLIC |
| 88 | + lvgl::lvgl |
| 89 | + PRIVATE |
| 90 | + pico_platform_headers |
| 91 | + ssd1306 |
| 92 | + hardware_flash |
| 93 | + pico_multicore) |
| 94 | + |
| 95 | +target_compile_options(sd2psx_common |
| 96 | + PUBLIC |
| 97 | + -Wall -Wextra |
| 98 | + -fno-jump-tables) |
| 99 | + |
| 100 | +target_compile_definitions(sd2psx_common PUBLIC |
| 101 | + USE_SPI_ARRAY_TRANSFER=1) |
| 102 | + |
| 103 | +set_target_properties(sd2psx_common PROPERTIES PICO_TARGET_LINKER_SCRIPT ${CMAKE_SOURCE_DIR}/memmap_custom.ld) |
| 104 | + |
138 | 105 | pico_add_extra_outputs(sd2psx) |
139 | 106 |
|
140 | 107 | set(DEBUG_USB_UART OFF CACHE BOOL "Activate UART over USB for debugging") |
141 | 108 |
|
142 | 109 | if(DEBUG_USB_UART) |
143 | | - add_definitions(-DDEBUG_USB_UART) |
144 | | - pico_enable_stdio_usb(sd2psx ENABLED) |
| 110 | + target_compile_definitions(sd2psx_common PUBLIC -DDEBUG_USB_UART) |
| 111 | + pico_enable_stdio_usb(sd2psx ON) |
145 | 112 | endif() |
0 commit comments