diff options
Diffstat (limited to 'test/unit/CMakeLists.txt')
-rw-r--r-- | test/unit/CMakeLists.txt | 258 |
1 files changed, 41 insertions, 217 deletions
diff --git a/test/unit/CMakeLists.txt b/test/unit/CMakeLists.txt index bdb5a67..cd745c3 100644 --- a/test/unit/CMakeLists.txt +++ b/test/unit/CMakeLists.txt @@ -1,170 +1,3 @@ -set(SRC_DIR ${colobot_SOURCE_DIR}/src) - -# Additional libraries per platform -if(MXE) # MXE requires special treatment - set(PLATFORM_LIBS ${MXE_LIBS}) -elseif(PLATFORM_WINDOWS) - # because it isn't included in standard linking libraries - set(PLATFORM_LIBS "-lintl") -elseif(PLATFORM_GNU) - set(PLATFORM_LIBS "-lX11") -elseif(PLATFORM_LINUX) - # for clock_gettime - set(PLATFORM_LIBS "-lrt -lX11") -elseif(PLATFORM_MACOSX) - find_library(LIBINTL_LIBRARY NAMES intl libintl ) - set(PLATFORM_LIBS ${LIBINTL_LIBRARY} ${X11_X11_LIB}) -endif() - - -# Configure file -configure_file(${SRC_DIR}/common/config.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/common/config.h) - -# Code sources -set(COLOBOT_SOURCES -${SRC_DIR}/app/app.cpp -${SRC_DIR}/app/gamedata.cpp -${SRC_DIR}/app/pausemanager.cpp -${SRC_DIR}/app/system.cpp -${SRC_DIR}/app/${SYSTEM_CPP_MODULE} -${SRC_DIR}/app/system_other.cpp -${SRC_DIR}/common/event.cpp -${SRC_DIR}/common/image.cpp -${SRC_DIR}/common/iman.cpp -${SRC_DIR}/common/logger.cpp -${SRC_DIR}/common/misc.cpp -${SRC_DIR}/common/profile.cpp -${SRC_DIR}/common/restext.cpp -${SRC_DIR}/common/stringutils.cpp -${SRC_DIR}/graphics/core/color.cpp -${SRC_DIR}/graphics/engine/camera.cpp -${SRC_DIR}/graphics/engine/cloud.cpp -${SRC_DIR}/graphics/engine/engine.cpp -${SRC_DIR}/graphics/engine/lightman.cpp -${SRC_DIR}/graphics/engine/lightning.cpp -${SRC_DIR}/graphics/engine/modelfile.cpp -${SRC_DIR}/graphics/engine/modelmanager.cpp -${SRC_DIR}/graphics/engine/particle.cpp -${SRC_DIR}/graphics/engine/planet.cpp -${SRC_DIR}/graphics/engine/pyro.cpp -${SRC_DIR}/graphics/engine/terrain.cpp -${SRC_DIR}/graphics/engine/text.cpp -${SRC_DIR}/graphics/engine/water.cpp -${SRC_DIR}/graphics/opengl/gldevice.cpp -${SRC_DIR}/object/auto/auto.cpp -${SRC_DIR}/object/auto/autobase.cpp -${SRC_DIR}/object/auto/autoconvert.cpp -${SRC_DIR}/object/auto/autoderrick.cpp -${SRC_DIR}/object/auto/autodestroyer.cpp -${SRC_DIR}/object/auto/autoegg.cpp -${SRC_DIR}/object/auto/autoenergy.cpp -${SRC_DIR}/object/auto/autofactory.cpp -${SRC_DIR}/object/auto/autoflag.cpp -${SRC_DIR}/object/auto/autohuston.cpp -${SRC_DIR}/object/auto/autoinfo.cpp -${SRC_DIR}/object/auto/autojostle.cpp -${SRC_DIR}/object/auto/autokid.cpp -${SRC_DIR}/object/auto/autolabo.cpp -${SRC_DIR}/object/auto/automush.cpp -${SRC_DIR}/object/auto/autonest.cpp -${SRC_DIR}/object/auto/autonuclear.cpp -${SRC_DIR}/object/auto/autopara.cpp -${SRC_DIR}/object/auto/autoportico.cpp -${SRC_DIR}/object/auto/autoradar.cpp -${SRC_DIR}/object/auto/autorepair.cpp -${SRC_DIR}/object/auto/autoresearch.cpp -${SRC_DIR}/object/auto/autoroot.cpp -${SRC_DIR}/object/auto/autosafe.cpp -${SRC_DIR}/object/auto/autostation.cpp -${SRC_DIR}/object/auto/autotower.cpp -${SRC_DIR}/object/brain.cpp -${SRC_DIR}/object/mainmovie.cpp -${SRC_DIR}/object/motion/motion.cpp -${SRC_DIR}/object/motion/motionant.cpp -${SRC_DIR}/object/motion/motionbee.cpp -${SRC_DIR}/object/motion/motionhuman.cpp -${SRC_DIR}/object/motion/motionmother.cpp -${SRC_DIR}/object/motion/motionspider.cpp -${SRC_DIR}/object/motion/motiontoto.cpp -${SRC_DIR}/object/motion/motionvehicle.cpp -${SRC_DIR}/object/motion/motionworm.cpp -${SRC_DIR}/object/motion/motiondummy.cpp -${SRC_DIR}/object/object.cpp -${SRC_DIR}/object/objman.cpp -${SRC_DIR}/object/robotmain.cpp -${SRC_DIR}/object/task/task.cpp -${SRC_DIR}/object/task/taskadvance.cpp -${SRC_DIR}/object/task/taskbuild.cpp -${SRC_DIR}/object/task/taskfire.cpp -${SRC_DIR}/object/task/taskfireant.cpp -${SRC_DIR}/object/task/taskflag.cpp -${SRC_DIR}/object/task/taskgoto.cpp -${SRC_DIR}/object/task/taskgungoal.cpp -${SRC_DIR}/object/task/taskinfo.cpp -${SRC_DIR}/object/task/taskmanager.cpp -${SRC_DIR}/object/task/taskmanip.cpp -${SRC_DIR}/object/task/taskpen.cpp -${SRC_DIR}/object/task/taskrecover.cpp -${SRC_DIR}/object/task/taskreset.cpp -${SRC_DIR}/object/task/tasksearch.cpp -${SRC_DIR}/object/task/taskshield.cpp -${SRC_DIR}/object/task/taskspiderexplo.cpp -${SRC_DIR}/object/task/tasktake.cpp -${SRC_DIR}/object/task/taskterraform.cpp -${SRC_DIR}/object/task/taskturn.cpp -${SRC_DIR}/object/task/taskwait.cpp -${SRC_DIR}/physics/physics.cpp -${SRC_DIR}/script/cbottoken.cpp -${SRC_DIR}/script/cmdtoken.cpp -${SRC_DIR}/script/script.cpp -${SRC_DIR}/sound/sound.cpp -${SRC_DIR}/ui/button.cpp -${SRC_DIR}/ui/check.cpp -${SRC_DIR}/ui/color.cpp -${SRC_DIR}/ui/compass.cpp -${SRC_DIR}/ui/control.cpp -${SRC_DIR}/ui/displayinfo.cpp -${SRC_DIR}/ui/displaytext.cpp -${SRC_DIR}/ui/edit.cpp -${SRC_DIR}/ui/editvalue.cpp -${SRC_DIR}/ui/gauge.cpp -${SRC_DIR}/ui/group.cpp -${SRC_DIR}/ui/image.cpp -${SRC_DIR}/ui/interface.cpp -${SRC_DIR}/ui/key.cpp -${SRC_DIR}/ui/label.cpp -${SRC_DIR}/ui/list.cpp -${SRC_DIR}/ui/maindialog.cpp -${SRC_DIR}/ui/mainmap.cpp -${SRC_DIR}/ui/mainshort.cpp -${SRC_DIR}/ui/map.cpp -${SRC_DIR}/ui/scroll.cpp -${SRC_DIR}/ui/shortcut.cpp -${SRC_DIR}/ui/slider.cpp -${SRC_DIR}/ui/studio.cpp -${SRC_DIR}/ui/target.cpp -${SRC_DIR}/ui/window.cpp -) - -set(OPENAL_SOURCES "") - -if(OPENAL_SOUND) - set(OPENAL_SOURCES - ${SRC_DIR}/sound/oalsound/alsound.cpp - ${SRC_DIR}/sound/oalsound/buffer.cpp - ${SRC_DIR}/sound/oalsound/channel.cpp - ) -endif() - -# Optional libraries -set(OPTIONAL_LIBS "") - -if(OPENAL_SOUND) - set(OPTIONAL_LIBS ${OPENAL_LIBRARY}) - set(OPTIONAL_INCLUDES ${OPENAL_INCLUDE_DIR}) -endif() - - # Platform-dependent tests if(PLATFORM_WINDOWS) set(PLATFORM_TESTS app/system_windows_test.cpp) @@ -172,67 +5,58 @@ elseif(PLATFORM_LINUX) set(PLATFORM_TESTS app/system_linux_test.cpp) endif() -# Tests +# Sources set(UT_SOURCES -main.cpp -app/app_test.cpp -graphics/engine/lightman_test.cpp -math/func_test.cpp -math/geometry_test.cpp -math/matrix_test.cpp -math/vector_test.cpp -${PLATFORM_TESTS} + main.cpp + app/app_test.cpp + common/profile_test.cpp + graphics/engine/lightman_test.cpp + math/func_test.cpp + math/geometry_test.cpp + math/matrix_test.cpp + math/vector_test.cpp + ${PLATFORM_TESTS} ) -# Local +# Includes include_directories( -. -common -math -${SRC_DIR} -${CMAKE_CURRENT_BINARY_DIR} + common + math + ${CMAKE_CURRENT_SOURCE_DIR} + ${CMAKE_CURRENT_BINARY_DIR} + ${COLOBOT_LOCAL_INCLUDES} ) -# System include_directories( -SYSTEM -${GTEST_INCLUDE_DIR} -${GMOCK_INCLUDE_DIR} -${SDL_INCLUDE_DIR} -${SDLIMAGE_INCLUDE_DIR} -${SDLTTF_INCLUDE_DIR} -${PNG_INCLUDE_DIRS} -${GLEW_INCLUDE_PATH} -${Boost_INCLUDE_DIRS} -${OPTIONAL_INCLUDE_DIRS} -${LIBSNDFILE_INCLUDE_DIR} -${CLIPBOARD_INCLUDE_DIR} -${LOCALENAME_INCLUDE_DIR} + SYSTEM + ${GTEST_INCLUDE_DIR} + ${GMOCK_INCLUDE_DIR} + ${COLOBOT_SYSTEM_INCLUDES} ) +# Libraries set(LIBS -gtest -gmock -CBot -clipboard -localename -${SDL_LIBRARY} -${SDLIMAGE_LIBRARY} -${SDLTTF_LIBRARY} -${OPENGL_LIBRARY} -${PNG_LIBRARIES} -${GLEW_LIBRARY} -${Boost_LIBRARIES} -${OPTIONAL_LIBS} -${PLATFORM_LIBS} -${LIBSNDFILE_LIBRARY} + gtest + gmock + colobotbase + ${COLOBOT_LIBS} ) -add_executable(colobot_ut ${COLOBOT_SOURCES} ${UT_SOURCES} ${OPENAL_SOURCES}) -target_link_libraries(colobot_ut ${LIBS}) +# Test files -add_test(colobot_ut ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/colobot_ut) +set(TEST_FILES + common/colobot.ini +) -# TODO: change the unit cases to independent automated tests to be included in colobot_ut -add_subdirectory(common) -add_subdirectory(ui) +file(COPY ${TEST_FILES} DESTINATION ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}) + +# Targets + +add_executable(colobot_ut ${UT_SOURCES}) +target_link_libraries(colobot_ut ${LIBS}) + +add_test( + NAME colobot_ut + COMMAND ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/colobot_ut + WORKING_DIRECTORY ${CMAKE_RUNTIME_OUTPUT_DIRECTORY} +) |