M .gitignore => .gitignore +1 -0
@@ 1,5 1,6 @@
/build/
/Varvara.pdx/
+varvara.pdx/
/Source/pdex.bin
/Source/pdex.so
/Source/boot.rom
A CMakeLists.txt => CMakeLists.txt +40 -0
@@ 0,0 1,40 @@
+cmake_minimum_required(VERSION 3.14)
+set(CMAKE_C_STANDARD 11)
+
+set(ENVSDK $ENV{PLAYDATE_SDK_PATH})
+
+if (NOT ${ENVSDK} STREQUAL "")
+ # Convert path from Windows
+ file(TO_CMAKE_PATH ${ENVSDK} SDK)
+else()
+ execute_process(
+ COMMAND bash -c "egrep '^\\s*SDKRoot' $HOME/.Playdate/config"
+ COMMAND head -n 1
+ COMMAND cut -c9-
+ OUTPUT_VARIABLE SDK
+ OUTPUT_STRIP_TRAILING_WHITESPACE
+ )
+endif()
+
+if (NOT EXISTS ${SDK})
+ message(FATAL_ERROR "SDK Path not found; set ENV value PLAYDATE_SDK_PATH")
+ return()
+endif()
+
+set(CMAKE_CONFIGURATION_TYPES "Debug;Release")
+set(CMAKE_XCODE_GENERATE_SCHEME TRUE)
+
+# Game Name Customization
+set(PLAYDATE_GAME_NAME varvara)
+set(PLAYDATE_GAME_DEVICE varvara_DEVICE)
+
+project(${PLAYDATE_GAME_NAME} C ASM)
+
+if (TOOLCHAIN STREQUAL "armgcc")
+ add_executable(${PLAYDATE_GAME_DEVICE} src/main.c src/boot.c src/uxn.c src/devices/apu.c src/devices/ppu.c)
+else()
+ add_library(${PLAYDATE_GAME_NAME} SHARED src/main.c src/boot.c src/uxn.c src/devices/apu.c src/devices/ppu.c )
+endif()
+
+include(${SDK}/C_API/buildsupport/playdate_game.cmake)
+
M build.sh => build.sh +5 -9
@@ 1,14 1,10 @@
#!/bin/sh -e
export PLAYDATE_SDK_PATH="/home/neauoire/Documents/playdate/PlaydateSDK-1.13.1"
-TARGET="etc/wireworld.tal"
-rm -rf bin
-mkdir bin
+make clean
+mkdir build
+cd build
+cmake -DCMAKE_BUILD_TYPE=Release ..
+make
-cp ~/Git/oquonie/bin/result.rom etc/boot.rom
-# cp ~/roms/catclock.rom etc/boot.rom
-
-clang-format -i src/main.c
-clang-format -i src/devices/ppu.c
-clang-format -i src/devices/ppu.h