2
0
Эх сурвалжийг харах

Introduce a structure to the project

Introduced folders
- assets/ - for all the images and other future kinds of assets
- src/ - for all the source code of the app itself
- thirdparty/ - for the code of vendored thirdparty dependencies
rexim 4 өдөр өмнө
parent
commit
ad62c7ac1d

+ 17 - 14
Makefile

@@ -1,8 +1,8 @@
 UNAMEOS = $(shell uname)
 
-COMMON_CFLAGS=		-Wall -Wextra -std=c99 -pedantic
-SDL2_CFLAGS+=		`pkg-config --cflags sdl2` $(COMMON_CFLAGS)
-RGFW_CFLAGS+=		$(COMMON_CFLAGS)
+COMMON_CFLAGS=		-Wall -Wextra -std=c99 -pedantic -Ithirdparty -Ibuild
+SDL2_CFLAGS=		`pkg-config --cflags sdl2` $(COMMON_CFLAGS)
+RGFW_CFLAGS=		$(COMMON_CFLAGS)
 COMMON_LIBS=		-lm
 SDL2_LIBS=			`pkg-config --libs sdl2` $(COMMON_LIBS)
 ifeq ($(UNAMEOS),Darwin)
@@ -16,30 +16,33 @@ INSTALL?=		install
 .PHONY: all
 all: Makefile sowon sowon_rgfw man
 
-sowon_rgfw: main_rgfw.c digits.h penger_walk_sheet.h
-	$(CC) $(RGFW_CFLAGS) -o sowon_rgfw main_rgfw.c $(RGFW_LIBS)
+sowon_rgfw: src/main_rgfw.c build/digits.h build/penger_walk_sheet.h
+	$(CC) $(RGFW_CFLAGS) -o sowon_rgfw src/main_rgfw.c $(RGFW_LIBS)
 
-sowon: main.c digits.h penger_walk_sheet.h
-	$(CC) $(SDL2_CFLAGS) -o sowon main.c $(SDL2_LIBS)
+sowon: src/main.c build/digits.h build/penger_walk_sheet.h
+	$(CC) $(SDL2_CFLAGS) -o sowon src/main.c $(SDL2_LIBS)
 
-digits.h: png2c digits.png
-	./png2c digits.png digits > digits.h
+build/digits.h: build/png2c ./assets/digits.png
+	./build/png2c ./assets/digits.png digits > build/digits.h
 
-penger_walk_sheet.h: png2c penger_walk_sheet.png
-	./png2c penger_walk_sheet.png penger > penger_walk_sheet.h
+build/penger_walk_sheet.h: build/png2c ./assets/penger_walk_sheet.png
+	./build/png2c ./assets/penger_walk_sheet.png penger > build/penger_walk_sheet.h
 
-png2c: png2c.c
-	$(CC) $(COMMON_CFLAGS) -o png2c png2c.c -lm
+build/png2c: src/png2c.c | build
+	$(CC) $(COMMON_CFLAGS) -o build/png2c src/png2c.c -lm
 
 docs/sowon.6.gz: docs/sowon.6
 	gzip -c docs/sowon.6 > docs/sowon.6.gz
 
+build:
+	mkdir -pv build
+
 .PHONY: man
 man: docs/sowon.6.gz
 
 .PHONY: clean
 clean:
-	rm sowon docs/sowon.6.gz png2c
+	rm -r sowon sowon_rgfw build docs/sowon.6.gz
 
 .PHONY: install
 install: all

+ 2 - 0
README.md

@@ -12,6 +12,7 @@ Dependencies: [SDL2](https://www.libsdl.org/download-2.0.php)
 ```console
 $ sudo apt-get install libsdl2-dev
 $ make
+$ ./sowon
 ```
 
 ### MacOS
@@ -19,6 +20,7 @@ $ make
 ```console
 $ brew install sdl2 pkg-config
 $ make
+$ ./sowon
 ```
 
 ### Windows

+ 0 - 0
digits.png → assets/digits.png


+ 0 - 0
penger_walk_sheet.png → assets/penger_walk_sheet.png


+ 7 - 6
build_msvc.bat

@@ -2,11 +2,12 @@
 rem launch this from msvc-enabled console
 
 set CXXFLAGS=/std:c++17 /O2 /FC /W4 /nologo
-set INCLUDES=/I SDL2\include
+set INCLUDES=/I SDL2\include /I thirdparty /I build
 set LIBS=SDL2\lib\x64\SDL2.lib SDL2\lib\x64\SDL2main.lib Shell32.lib
 
-cl.exe %CXXFLAGS% /Fepng2c png2c.c /link Shell32.lib -SUBSYSTEM:console
-png2c.exe digits.png digits > digits.h
-png2c.exe penger_walk_sheet.png penger > penger_walk_sheet.h
-cl.exe %CXXFLAGS% %INCLUDES% /Fesowon main.c /link %LIBS% -SUBSYSTEM:windows
-cl.exe %CXXFLAGS% /Fesowon_rgfw main_rgfw.c /link Shell32.lib -SUBSYSTEM:windows /entry:mainCRTStartup
+mkdir build
+cl.exe %CXXFLAGS% /Febuild\png2c src\png2c.c /link Shell32.lib -SUBSYSTEM:console
+build\png2c.exe assets\digits.png digits > build\digits.h
+build\png2c.exe assets\penger_walk_sheet.png penger > build\penger_walk_sheet.h
+cl.exe %CXXFLAGS% %INCLUDES% /Fesowon src/main.c /link %LIBS% -SUBSYSTEM:windows
+cl.exe %CXXFLAGS% /Fesowon_rgfw src/main_rgfw.c /link Shell32.lib -SUBSYSTEM:windows /entry:mainCRTStartup

+ 2 - 2
common.c → src/common.c

@@ -1,7 +1,7 @@
-#include "./digits.h"
+#include "digits.h"
 
 #ifdef PENGER
-#include "./penger_walk_sheet.h"
+#include "penger_walk_sheet.h"
 #endif
 
 #include <math.h>

+ 0 - 0
main.c → src/main.c


+ 0 - 0
main_rgfw.c → src/main_rgfw.c


+ 1 - 1
png2c.c → src/png2c.c

@@ -4,7 +4,7 @@
 #include <stdint.h>
 
 #define STB_IMAGE_IMPLEMENTATION
-#include "./stb_image.h"
+#include "stb_image.h"
 
 const char *shift(int *argc, char ***argv)
 {

+ 0 - 0
rglLoad.h → src/rglLoad.h


+ 0 - 0
RGFW.h → thirdparty/RGFW.h


+ 0 - 0
stb_image.h → thirdparty/stb_image.h