diff --git a/CMakeLists.txt b/CMakeLists.txt index a1f8509..9c66e3a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,13 +1,15 @@ cmake_minimum_required(VERSION 3.2) project(gameBase) -set(CMAKE_BUILD_TYPE Debug) cmake_policy(SET CMP0015 NEW) +set(CMAKE_BUILD_TYPE Debug) set(CMAKE_POSITION_INDEPENDENT_CODE ON) +set(BUILD_TESTS ON) -set(states abstractAppState.cpp) -set(core inputManager.cpp mapping.h stateManager.cpp luaManager.cpp) -set(util util.cpp) +set(STATES abstractAppState.cpp) +set(CORE inputManager.cpp mapping.h stateManager.cpp luaManager.cpp luaFields.cpp) +set(UTIL util.cpp) +set(LIB_SRC ${STATES} ${CORE} ${UTIL}) set(GLFW_DIR vb01/external/glfw) set(LUA_DIR external/lua) @@ -18,7 +20,7 @@ set(LUA_LIB_DIR ${LUA_DIR}) include_directories(${LUA_DIR}) link_directories(${LUA_DIR}) -add_library(gameBase STATIC ${states} ${core} ${util}) +add_library(gameBase STATIC ${LIB_SRC}) set(GLFW_DIR ../vb01/external/glfw) set(LIB_NAME gameBase) @@ -26,6 +28,20 @@ set(GLFW_LIB_DIR ../vb01/build/external/glfw/src) target_include_directories(${LIB_NAME} PUBLIC ${GLFW_DIR}/include/GLFW) target_link_directories(${LIB_NAME} PUBLIC ${GLFW_LIB_DIR}) -target_link_libraries(${LIB_NAME} lua) -target_link_libraries(gameBase glfw) +set(DEPS lua glfw) +target_link_libraries(${LIB_NAME} ${DEPS}) +if(BUILD_TESTS) + if(UNIX) + include_directories(/usr/include/cppunit) + link_directories(/usr/lib) + elseif(WIN32) + include_directories(C:/Program\ Files\ \(x86\)/cppunit/include) + link_directories(C:/Program\ Files\ \(x86\)/cppunit/lib) + endif() + + set(TEST_SRC main.cpp ${LIB_SRC} luaFieldsTest.cpp) + + add_executable(gameBaseTests ${TEST_SRC}) + target_link_libraries(gameBaseTests ${LIB_NAME} ${DEPS} cppunit) +endif() diff --git a/luaFields.cpp b/luaFields.cpp new file mode 100644 index 0000000..6160a20 --- /dev/null +++ b/luaFields.cpp @@ -0,0 +1 @@ +#include "luaFields.h" diff --git a/luaFields.h b/luaFields.h new file mode 100644 index 0000000..345e18d --- /dev/null +++ b/luaFields.h @@ -0,0 +1,26 @@ +#ifndef LUA_FIELDS_H +#define LUA_FIELDS_H + +#include +#include + +namespace gameBase{ + class AbstractLuaField{ + public: + std::string name = ""; + protected: + AbstractLuaField(); + std::string toString(); + }; + + class LuaTableField : public AbstractLuaField{ + public: + LuaTableField(); + std::string toString(); + AbstractLuaField operator[](std::string); + private: + std::vector fields; + }; +} + +#endif diff --git a/luaFieldsTest.cpp b/luaFieldsTest.cpp new file mode 100644 index 0000000..afeba12 --- /dev/null +++ b/luaFieldsTest.cpp @@ -0,0 +1,12 @@ +#include "luaFieldsTest.h" + +namespace gameBase{ + void LuaFieldsTest::setUp(){ + } + + void LuaFieldsTest::tearDown(){ + } + + void LuaFieldsTest::testTableToString(){ + } +} diff --git a/luaFieldsTest.h b/luaFieldsTest.h new file mode 100644 index 0000000..f04ab45 --- /dev/null +++ b/luaFieldsTest.h @@ -0,0 +1,22 @@ +#ifndef LUA_FIELDS_TEST_H +#define LUA_FIELDS_TEST_H + +#include +#include + +namespace gameBase{ + class LuaFieldsTest : public CppUnit::TestFixture{ + CPPUNIT_TEST_SUITE(LuaFieldsTest); + CPPUNIT_TEST(testTableToString); + CPPUNIT_TEST_SUITE_END(); + + public: + LuaFieldsTest(){} + void setUp(); + void tearDown(); + private: + void testTableToString(); + }; +} + +#endif diff --git a/main.cpp b/main.cpp new file mode 100644 index 0000000..d52929c --- /dev/null +++ b/main.cpp @@ -0,0 +1,16 @@ +#include +#include +#include +#include + +#include "luaFieldsTest.h" + +using namespace CppUnit; +using namespace gameBase; + +int main(){ + TextUi::TestRunner runner; + runner.addTest(LuaFieldsTest::suite()); + runner.run(); + return 0; +}