diff --git a/CMakeLists.txt b/CMakeLists.txt index 240e40d..f347a50 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -8,6 +8,7 @@ set(CMAKE_C_STANDARD 11) include_directories( "${PROJECT_SOURCE_DIR}/dependencies/SDL2/include" "${PROJECT_SOURCE_DIR}/dependencies/minIni/dev" + "${PROJECT_SOURCE_DIR}/dependencies/bdd-for-c" ) if (WIN32) @@ -18,18 +19,46 @@ if (WIN32) endif () endif () -link_directories("${PROJECT_SOURCE_DIR}/dependencies/SDL2/lib/${PROJECT_ARCH}") +link_directories( + "${PROJECT_SOURCE_DIR}/dependencies/SDL2/lib/${PROJECT_ARCH}" +) + +add_executable( + game + dependencies/minIni/dev/minIni.h + dependencies/minIni/dev/minIni.c + src/packages/game/config/IZ_config.h + src/packages/game/config/IZ_config.c + src/packages/game/IZ_common.h + src/packages/game/IZ_action.h + src/packages/game/IZ_app.h + src/packages/game/IZ_app.c + src/packages/game/main.c +) +target_link_libraries( + game + SDL2main + SDL2 +) + add_executable( - izanagi - dependencies/minIni/dev/minIni.h - dependencies/minIni/dev/minIni.c - src/packages/game/main.c - src/packages/game/config/IZ_config.h src/packages/game/config/IZ_config.c src/packages/game/IZ_common.h src/packages/game/IZ_action.h src/packages/game/IZ_app.c src/packages/game/IZ_app.h) -target_link_libraries(izanagi SDL2main SDL2) + game-test + dependencies/minIni/dev/minIni.h + dependencies/minIni/dev/minIni.c + src/packages/game/config/IZ_config.h + src/packages/game/config/IZ_config.c + dependencies/bdd-for-c/bdd-for-c.h + src/packages/game-test/config/IZ_config.c +) +target_link_libraries( + game-test + SDL2main + SDL2 +) if (WIN32) - add_custom_command(TARGET izanagi POST_BUILD + add_custom_command(TARGET game POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy_if_different # which executes "cmake - E copy_if_different..." "${PROJECT_SOURCE_DIR}/dependencies/SDL2/lib/${PROJECT_ARCH}/SDL2.dll" # <--this is in-file - $) # <--this is out-file path + $) # <--this is out-file path endif () diff --git a/dependencies.txt b/dependencies.txt index b28f68d..7837476 100644 --- a/dependencies.txt +++ b/dependencies.txt @@ -1 +1,2 @@ https://github.com/compuphase/minIni +https://github.com/grassator/bdd-for-c diff --git a/src/packages/game-test/config/IZ_config.c b/src/packages/game-test/config/IZ_config.c new file mode 100644 index 0000000..45026b3 --- /dev/null +++ b/src/packages/game-test/config/IZ_config.c @@ -0,0 +1,30 @@ +#include "bdd-for-c.h" +#include "../../game/config/IZ_config.h" + +spec("config") { + describe("LoadConfig") { + static IZ_Config config; + + it("should load default config values") { + IZ_LoadConfig(&config); + + check( + config.video.width == 640, + "Default value for Video.Width is not loaded." + ); + check( + config.video.height == 480, + "Default value for Video.Height is not loaded." + ); + check( + config.video.max_fps == 30, + "Default value for Video.MaxFps is not loaded." + ); + + check( + config.input.gamepad_axis_threshold == 8000, + "Default value for Input.GamepadAxisThreshold is not loaded." + ); + } + } +}