Skip to content

Commit 922493b

Browse files
committed
πŸ—οΈ Rename bonus to graphic
1 parent 3b79495 commit 922493b

49 files changed

Lines changed: 92 additions & 112 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

β€ŽCMakeLists.txtβ€Ž

Lines changed: 41 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,40 +1,61 @@
11
cmake_minimum_required(VERSION 3.10.0)
22

3-
project(corewar)
3+
project(corewar C)
44

5+
set(CMAKE_C_COMPILER clang)
6+
set(CMAKE_C_STANDARD 23)
7+
set(CMAKE_C_STANDARD_REQUIRED ON)
58
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
69

710
file(GLOB SOURCES
811
src/*.c
912
src/arena/*.c
1013
src/arena/instructions/*.c
14+
src/graphic/*.c
15+
src/graphic/menu/*.c
1116
src/utils/*.c
1217
src/parsing/*.c)
1318

14-
if (${CMAKE_BUILD_TYPE} MATCHES "Tests")
19+
if (CMAKE_BUILD_TYPE STREQUAL "Tests")
1520
list(REMOVE_ITEM SOURCES "${CMAKE_CURRENT_SOURCE_DIR}/src/main.c")
16-
set(SOURCES ${SOURCES} tests/tests_parsing.c tests/tests_corewar.c)
21+
list(APPEND SOURCES
22+
tests/tests_parsing.c
23+
tests/tests_corewar.c)
24+
find_package(criterion REQUIRED)
1725
endif()
1826

19-
if(${CMAKE_BUILD_TYPE} MATCHES "Bonus")
20-
add_compile_options(-Wall -Wextra -Wconversion -Wpedantic)
21-
find_package(PkgConfig REQUIRED)
22-
pkg_check_modules(SDL2 REQUIRED sdl2)
23-
pkg_check_modules(SDL2_MIXER REQUIRED SDL2_mixer)
24-
find_package(PkgConfig REQUIRED)
25-
pkg_check_modules(RAYLIB REQUIRED raylib)
26-
include_directories(${RAYLIB_INCLUDE_DIRS} bonus/include)
27-
link_directories(${RAYLIB_LIBRARY_DIRS})
28-
add_compile_definitions(BONUS_MODE=1)
29-
set(SOURCES ${SOURCES} bonus/bonus.c bonus/transcribe_dot_s.c bonus/parse_champion.c bonus/menu/menu.c bonus/audio.c)
30-
set(RAYLIB_LIBS ${RAYLIB_LIBRARIES} -lGL -lm -lpthread -ldl -lrt -lX11)
27+
find_package(PkgConfig REQUIRED)
28+
pkg_check_modules(SDL2 REQUIRED sdl2)
29+
pkg_check_modules(SDL2_MIXER REQUIRED SDL2_mixer)
30+
pkg_check_modules(RAYLIB REQUIRED raylib)
31+
32+
include_directories(include ${RAYLIB_INCLUDE_DIRS})
33+
34+
add_compile_definitions(BONUS_MODE=1)
35+
36+
if(CMAKE_BUILD_TYPE STREQUAL "Debug")
37+
add_compile_options(-Weverything -Wall -Wextra -Wconversion -Wpedantic
38+
-fsanitize=address
39+
-Wno-unsafe-buffer-usage
40+
-Wno-pre-c23-compat -Wno-cast-qual -Wno-vla
41+
-Wunused-result)
42+
add_link_options(-fsanitize=address)
43+
endif()
44+
45+
if(CMAKE_BUILD_TYPE STREQUAL "Tests")
46+
add_compile_options(--coverage)
47+
add_link_options(--coverage)
3148
endif()
3249

3350
add_executable(corewar ${SOURCES})
34-
target_include_directories(corewar PRIVATE include)
3551

36-
if(${CMAKE_BUILD_TYPE} MATCHES "Bonus")
37-
target_link_libraries(corewar PRIVATE ncurses ${RAYLIB_LIBS} ${SDL2_LIBRARIES} ${SDL2_MIXER_LIBRARIES})
38-
endif()
52+
target_link_libraries(corewar PRIVATE
53+
ncurses
54+
${RAYLIB_LIBRARIES}
55+
${SDL2_LIBRARIES}
56+
${SDL2_MIXER_LIBRARIES}
57+
m pthread dl rt X11)
3958

40-
set_property(TARGET corewar PROPERTY C_STANDARD 23)
59+
if(CMAKE_BUILD_TYPE STREQUAL "Tests")
60+
target_link_libraries(corewar PRIVATE criterion)
61+
endif()

β€ŽMakefileβ€Ž

Lines changed: 22 additions & 66 deletions
Original file line numberDiff line numberDiff line change
@@ -1,84 +1,40 @@
11
NAME = corewar
2-
LIB = libmystd.a
3-
42
CC = clang
5-
CFLAGS = $(pkg-config --libs --cflags raylib) \
6-
audio_player `sdl2-config --cflags --libs` -lSDL2_mixer
7-
LDFLAGS = -Llibs -lmystd
8-
9-
CMAKE_DEBUG_FLAGS = -fsanitize=address -Weverything \
10-
-Wno-unsafe-buffer-usage \
11-
-Wno-pre-c23-compat -Wno-cast-qual -Wno-vla
12-
CMAKE_BONUS_FLAG = -O3 -Wno-unused-result
13-
CMAKE_TESTS_FLAGS = --coverage -lcriterion
14-
15-
MAKEFLAGS += --no-print-directory
3+
BUILD_DIR = build
164

175
.PHONY: all
18-
all: $(NAME)
19-
20-
$(NAME):
21-
@mkdir -p build
22-
@cd build && CC=$(CC) cmake -DCMAKE_BUILD_TYPE=Debug \
23-
-DCMAKE_CXX_FLAGS="" \
24-
-DCMAKE_C_FLAGS="" \
25-
-DCMAKE_EXE_LINKER_FLAGS="" ..
26-
@cmake --build build --parallel 12
27-
@cp build/$(NAME) .
6+
all: release
287

29-
.PHONY: lib
30-
lib:
31-
@mkdir -p build
32-
@cd build && CC=$(CC) cmake -DCMAKE_BUILD_TYPE=Debug ..
33-
@cmake --build build --target mystd --parallel 12
34-
@cp build/libs/$(LIB) libs/
8+
.PHONY: release
9+
release:
10+
@mkdir -p $(BUILD_DIR)
11+
@cd $(BUILD_DIR) && cmake -DCMAKE_BUILD_TYPE=Release ..
12+
@cmake --build $(BUILD_DIR) --parallel 12
13+
@cp $(BUILD_DIR)/$(NAME) .
3514

3615
.PHONY: debug
3716
debug:
38-
@mkdir -p build
39-
@cd build && CC=clang cmake -DCMAKE_BUILD_TYPE=Debug \
40-
-DCMAKE_CXX_FLAGS="-fsanitize=address" \
41-
-DCMAKE_C_FLAGS="$(CMAKE_DEBUG_FLAGS)" \
42-
-DCMAKE_EXE_LINKER_FLAGS="-fsanitize=address" ..
43-
@cmake --build build --parallel 12
44-
@cp build/$(NAME) .
45-
46-
.PHONY: bonus
47-
bonus:
48-
@mkdir -p build
49-
@cd build && CC=$(CC) cmake -DCMAKE_BUILD_TYPE=Bonus \
50-
-DCMAKE_CXX_FLAGS="" \
51-
-DCMAKE_C_FLAGS="$(CMAKE_BONUS_FLAG)" \
52-
-DCMAKE_EXE_LINKER_FLAGS="" ..
53-
@cmake --build build --parallel 12
54-
@cp build/$(NAME) .
55-
56-
.PHONY: tests_run
57-
tests_run: fclean
58-
@mkdir -p build
59-
@cd build && CC=gcc cmake -DCMAKE_BUILD_TYPE=Tests \
60-
-DCMAKE_CXX_FLAGS="" \
61-
-DCMAKE_C_FLAGS="$(CMAKE_TESTS_FLAGS)" \
62-
-DCMAKE_EXE_LINKER_FLAGS="" ..
63-
@cmake --build build --parallel 12
64-
@cp build/$(NAME) .
65-
@./$(NAME) -j12
66-
67-
.PHONY: coverage
68-
coverage:
69-
@$(MAKE) tests_run 2>&1 1>/dev/null
70-
@gcovr --sort uncovered-percent
17+
@mkdir -p $(BUILD_DIR)
18+
@cd $(BUILD_DIR) && cmake -DCMAKE_BUILD_TYPE=Debug ..
19+
@cmake --build $(BUILD_DIR) --parallel 12
20+
@cp $(BUILD_DIR)/$(NAME) .
21+
22+
.PHONY: tests
23+
tests:
24+
@mkdir -p $(BUILD_DIR)
25+
@cd $(BUILD_DIR) && cmake -DCMAKE_BUILD_TYPE=Tests ..
26+
@cmake --build $(BUILD_DIR) --parallel 12
27+
@cp $(BUILD_DIR)/$(NAME) .
28+
@./$(NAME)
7129

7230
.PHONY: clean
7331
clean:
74-
@rm -rf build
75-
@rm -rf cmake-build-debug
76-
@rm -f *.gcno *.gcda *.gcov *.html *.css
32+
@rm -rf $(BUILD_DIR)
33+
@rm -f *.gcno *.gcda *.gcov
7734

7835
.PHONY: fclean
7936
fclean: clean
8037
@rm -f $(NAME)
81-
@rm -f libs/$(LIB)
8238

8339
.PHONY: re
8440
re: fclean all

β€Žbonus/champions/42.corβ€Ž

-3.11 KB
Binary file not shown.

β€Žbonus/champions/Asombra.corβ€Ž

-2.79 KB
Binary file not shown.

β€Žbonus/champions/Kappa.corβ€Ž

-2.81 KB
Binary file not shown.

β€Žbonus/champions/abel.corβ€Ž

-2.16 KB
Binary file not shown.

β€Žbonus/champions/bill.corβ€Ž

-2.19 KB
Binary file not shown.

β€Žbonus/champions/jon.corβ€Ž

-2.16 KB
Binary file not shown.

β€Žbonus/champions/pdd.corβ€Ž

-2.25 KB
Binary file not shown.

0 commit comments

Comments
Β (0)