2013-01-08 21:12:09 +00:00
|
|
|
# Compile flags as defined in global CMakeLists
|
2013-01-16 00:45:38 +00:00
|
|
|
set(CMAKE_CXX_FLAGS "${COLOBOT_CXX_FLAGS} ${MXE_CFLAGS}")
|
2013-01-08 21:12:09 +00:00
|
|
|
set(CMAKE_CXX_FLAGS_RELEASE ${COLOBOT_CXX_FLAGS_RELEASE})
|
|
|
|
set(CMAKE_CXX_FLAGS_DEBUG ${COLOBOT_CXX_FLAGS_DEBUG})
|
|
|
|
|
|
|
|
|
|
|
|
# Subdirectories
|
|
|
|
|
2012-08-31 18:55:16 +00:00
|
|
|
add_subdirectory(CBot)
|
|
|
|
|
2013-06-24 11:28:18 +00:00
|
|
|
if(TOOLS)
|
2013-06-21 23:11:37 +00:00
|
|
|
add_subdirectory(tools)
|
2013-03-22 17:19:53 +00:00
|
|
|
endif()
|
2012-12-26 13:56:12 +00:00
|
|
|
|
2012-06-26 21:39:31 +00:00
|
|
|
|
2012-09-29 15:19:23 +00:00
|
|
|
# Optional libraries
|
|
|
|
set(OPTIONAL_LIBS "")
|
2013-03-22 17:19:53 +00:00
|
|
|
set(OPTIONAL_INCLUDES "")
|
2012-12-20 20:57:57 +00:00
|
|
|
|
2013-06-24 11:28:18 +00:00
|
|
|
if(OPENAL_SOUND)
|
2013-03-22 17:19:53 +00:00
|
|
|
set(OPTIONAL_LIBS ${OPENAL_LIBRARY})
|
|
|
|
set(OPTIONAL_INCLUDES ${OPENAL_INCLUDE_DIR})
|
2012-12-20 20:57:57 +00:00
|
|
|
endif()
|
2012-09-29 15:19:23 +00:00
|
|
|
|
2013-01-05 22:03:06 +00:00
|
|
|
# Additional libraries per platform
|
2013-06-24 11:28:18 +00:00
|
|
|
if(MXE) # MXE requires special treatment
|
2013-05-26 15:47:54 +00:00
|
|
|
set(PLATFORM_LIBS ${MXE_LIBS})
|
2013-06-24 11:28:18 +00:00
|
|
|
elseif(PLATFORM_WINDOWS)
|
2012-09-29 15:19:23 +00:00
|
|
|
# because it isn't included in standard linking libraries
|
|
|
|
set(PLATFORM_LIBS "-lintl")
|
2013-11-27 17:53:28 +00:00
|
|
|
elseif(PLATFORM_GNU)
|
|
|
|
set(PLATFORM_LIBS "-lX11")
|
2013-06-24 11:28:18 +00:00
|
|
|
elseif(PLATFORM_LINUX)
|
2012-09-29 15:19:23 +00:00
|
|
|
# for clock_gettime
|
2013-04-11 19:55:49 +00:00
|
|
|
set(PLATFORM_LIBS "-lrt -lX11")
|
2013-10-23 12:22:20 +00:00
|
|
|
elseif(PLATFORM_MACOSX)
|
|
|
|
find_library(LIBINTL_LIBRARY NAMES intl libintl )
|
|
|
|
set(PLATFORM_LIBS ${LIBINTL_LIBRARY} ${X11_X11_LIB})
|
2012-07-28 21:36:12 +00:00
|
|
|
endif()
|
|
|
|
|
|
|
|
|
2012-06-26 21:39:31 +00:00
|
|
|
# Configure file
|
|
|
|
configure_file(common/config.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/common/config.h)
|
|
|
|
|
2012-12-20 20:57:57 +00:00
|
|
|
set(OPENAL_SRC "")
|
|
|
|
|
2013-06-24 11:28:18 +00:00
|
|
|
if(OPENAL_SOUND)
|
2012-12-20 20:57:57 +00:00
|
|
|
set(OPENAL_SRC
|
2013-01-05 22:03:06 +00:00
|
|
|
sound/oalsound/alsound.cpp
|
|
|
|
sound/oalsound/buffer.cpp
|
|
|
|
sound/oalsound/channel.cpp
|
2012-12-20 20:57:57 +00:00
|
|
|
)
|
|
|
|
endif()
|
2012-06-26 21:39:31 +00:00
|
|
|
|
2013-10-29 13:30:58 +00:00
|
|
|
set(RES_FILES "")
|
|
|
|
|
|
|
|
if(PLATFORM_WINDOWS)
|
|
|
|
set(RES_FILES "../desktop/colobot.rc")
|
|
|
|
endif()
|
|
|
|
|
2012-06-26 21:39:31 +00:00
|
|
|
# Source files
|
2014-08-12 18:03:56 +00:00
|
|
|
set(BASE_SOURCES
|
|
|
|
app/app.cpp
|
|
|
|
app/pausemanager.cpp
|
|
|
|
app/system.cpp
|
|
|
|
app/${SYSTEM_CPP_MODULE}
|
|
|
|
app/system_other.cpp
|
|
|
|
common/event.cpp
|
|
|
|
common/image.cpp
|
|
|
|
common/iman.cpp
|
|
|
|
common/logger.cpp
|
|
|
|
common/misc.cpp
|
|
|
|
common/profile.cpp
|
|
|
|
common/restext.cpp
|
|
|
|
common/stringutils.cpp
|
2014-10-07 20:15:40 +00:00
|
|
|
common/resources/resourcemanager.cpp
|
|
|
|
common/resources/inputstreambuffer.cpp
|
|
|
|
common/resources/outputstreambuffer.cpp
|
|
|
|
common/resources/inputstream.cpp
|
|
|
|
common/resources/outputstream.cpp
|
|
|
|
common/resources/sndfile.cpp
|
2014-08-12 18:03:56 +00:00
|
|
|
graphics/core/color.cpp
|
|
|
|
graphics/engine/camera.cpp
|
|
|
|
graphics/engine/cloud.cpp
|
|
|
|
graphics/engine/engine.cpp
|
|
|
|
graphics/engine/lightman.cpp
|
|
|
|
graphics/engine/lightning.cpp
|
|
|
|
graphics/engine/modelfile.cpp
|
|
|
|
graphics/engine/modelmanager.cpp
|
|
|
|
graphics/engine/particle.cpp
|
|
|
|
graphics/engine/planet.cpp
|
|
|
|
graphics/engine/pyro.cpp
|
|
|
|
graphics/engine/terrain.cpp
|
|
|
|
graphics/engine/text.cpp
|
|
|
|
graphics/engine/water.cpp
|
|
|
|
graphics/opengl/gldevice.cpp
|
|
|
|
object/auto/auto.cpp
|
|
|
|
object/auto/autobase.cpp
|
|
|
|
object/auto/autoconvert.cpp
|
|
|
|
object/auto/autoderrick.cpp
|
|
|
|
object/auto/autodestroyer.cpp
|
|
|
|
object/auto/autoegg.cpp
|
|
|
|
object/auto/autoenergy.cpp
|
|
|
|
object/auto/autofactory.cpp
|
|
|
|
object/auto/autoflag.cpp
|
|
|
|
object/auto/autohuston.cpp
|
|
|
|
object/auto/autoinfo.cpp
|
|
|
|
object/auto/autojostle.cpp
|
|
|
|
object/auto/autokid.cpp
|
|
|
|
object/auto/autolabo.cpp
|
|
|
|
object/auto/automush.cpp
|
|
|
|
object/auto/autonest.cpp
|
|
|
|
object/auto/autonuclear.cpp
|
|
|
|
object/auto/autopara.cpp
|
|
|
|
object/auto/autoportico.cpp
|
|
|
|
object/auto/autoradar.cpp
|
|
|
|
object/auto/autorepair.cpp
|
|
|
|
object/auto/autoresearch.cpp
|
|
|
|
object/auto/autoroot.cpp
|
|
|
|
object/auto/autosafe.cpp
|
|
|
|
object/auto/autostation.cpp
|
|
|
|
object/auto/autotower.cpp
|
|
|
|
object/brain.cpp
|
2014-10-07 20:15:40 +00:00
|
|
|
object/level/parser.cpp
|
|
|
|
object/level/parserline.cpp
|
|
|
|
object/level/parserparam.cpp
|
|
|
|
object/level/parserexceptions.cpp
|
2014-08-12 18:03:56 +00:00
|
|
|
object/mainmovie.cpp
|
|
|
|
object/motion/motion.cpp
|
|
|
|
object/motion/motionant.cpp
|
|
|
|
object/motion/motionbee.cpp
|
|
|
|
object/motion/motiondummy.cpp
|
|
|
|
object/motion/motionhuman.cpp
|
|
|
|
object/motion/motionmother.cpp
|
|
|
|
object/motion/motionspider.cpp
|
|
|
|
object/motion/motiontoto.cpp
|
|
|
|
object/motion/motionvehicle.cpp
|
|
|
|
object/motion/motionworm.cpp
|
|
|
|
object/object.cpp
|
|
|
|
object/robotmain.cpp
|
|
|
|
object/objman.cpp
|
|
|
|
object/task/task.cpp
|
|
|
|
object/task/taskadvance.cpp
|
|
|
|
object/task/taskbuild.cpp
|
|
|
|
object/task/taskfire.cpp
|
|
|
|
object/task/taskfireant.cpp
|
|
|
|
object/task/taskflag.cpp
|
|
|
|
object/task/taskgoto.cpp
|
|
|
|
object/task/taskgungoal.cpp
|
|
|
|
object/task/taskinfo.cpp
|
|
|
|
object/task/taskmanager.cpp
|
|
|
|
object/task/taskmanip.cpp
|
|
|
|
object/task/taskpen.cpp
|
|
|
|
object/task/taskrecover.cpp
|
|
|
|
object/task/taskreset.cpp
|
|
|
|
object/task/tasksearch.cpp
|
|
|
|
object/task/taskshield.cpp
|
|
|
|
object/task/taskspiderexplo.cpp
|
|
|
|
object/task/tasktake.cpp
|
|
|
|
object/task/taskterraform.cpp
|
|
|
|
object/task/taskturn.cpp
|
|
|
|
object/task/taskwait.cpp
|
|
|
|
physics/physics.cpp
|
|
|
|
script/cbottoken.cpp
|
|
|
|
script/cmdtoken.cpp
|
|
|
|
script/script.cpp
|
|
|
|
sound/sound.cpp
|
|
|
|
ui/button.cpp
|
|
|
|
ui/check.cpp
|
|
|
|
ui/color.cpp
|
|
|
|
ui/compass.cpp
|
|
|
|
ui/control.cpp
|
|
|
|
ui/displayinfo.cpp
|
|
|
|
ui/displaytext.cpp
|
|
|
|
ui/edit.cpp
|
|
|
|
ui/editvalue.cpp
|
|
|
|
ui/gauge.cpp
|
|
|
|
ui/group.cpp
|
|
|
|
ui/image.cpp
|
|
|
|
ui/interface.cpp
|
|
|
|
ui/key.cpp
|
|
|
|
ui/label.cpp
|
|
|
|
ui/list.cpp
|
|
|
|
ui/maindialog.cpp
|
|
|
|
ui/mainmap.cpp
|
|
|
|
ui/mainshort.cpp
|
|
|
|
ui/map.cpp
|
|
|
|
ui/scroll.cpp
|
|
|
|
ui/shortcut.cpp
|
|
|
|
ui/slider.cpp
|
|
|
|
ui/studio.cpp
|
|
|
|
ui/target.cpp
|
|
|
|
ui/window.cpp
|
|
|
|
${OPENAL_SRC}
|
|
|
|
${RES_FILES}
|
|
|
|
)
|
|
|
|
|
|
|
|
set(MAIN_SOURCES
|
|
|
|
app/main.cpp
|
2012-06-25 17:59:17 +00:00
|
|
|
)
|
2012-06-13 20:48:35 +00:00
|
|
|
|
2012-12-20 20:57:57 +00:00
|
|
|
|
2014-08-12 18:03:56 +00:00
|
|
|
# Libraries
|
2012-06-26 21:39:31 +00:00
|
|
|
set(LIBS
|
2014-08-12 18:03:56 +00:00
|
|
|
CBot
|
|
|
|
clipboard
|
|
|
|
localename
|
|
|
|
${SDL_LIBRARY}
|
|
|
|
${SDLIMAGE_LIBRARY}
|
|
|
|
${SDLTTF_LIBRARY}
|
|
|
|
${OPENGL_LIBRARY}
|
|
|
|
${PNG_LIBRARIES}
|
|
|
|
${GLEW_LIBRARY}
|
|
|
|
${Boost_LIBRARIES}
|
|
|
|
${LIBSNDFILE_LIBRARY}
|
|
|
|
${OPTIONAL_LIBS}
|
|
|
|
${PLATFORM_LIBS}
|
2014-10-25 10:44:52 +00:00
|
|
|
${PHYSFS_LIBRARY}
|
2012-06-26 21:39:31 +00:00
|
|
|
)
|
2012-04-14 23:02:51 +00:00
|
|
|
|
2014-08-12 18:03:56 +00:00
|
|
|
set(COLOBOT_LIBS ${LIBS} PARENT_SCOPE)
|
|
|
|
|
|
|
|
|
|
|
|
# Includes
|
|
|
|
set(LOCAL_INCLUDES
|
|
|
|
${CMAKE_CURRENT_SOURCE_DIR}
|
|
|
|
${CMAKE_CURRENT_SOURCE_DIR}/..
|
|
|
|
${CMAKE_CURRENT_BINARY_DIR}
|
2013-01-08 21:12:09 +00:00
|
|
|
)
|
|
|
|
|
2014-08-12 18:03:56 +00:00
|
|
|
set(SYSTEM_INCLUDES
|
|
|
|
${SDL_INCLUDE_DIR}
|
|
|
|
${SDLIMAGE_INCLUDE_DIR}
|
|
|
|
${SDLTTF_INCLUDE_DIR}
|
|
|
|
${PNG_INCLUDE_DIRS}
|
|
|
|
${GLEW_INCLUDE_PATH}
|
|
|
|
${Boost_INCLUDE_DIRS}
|
|
|
|
${LIBSNDFILE_INCLUDE_DIR}
|
|
|
|
${LOCALENAME_INCLUDE_DIR}
|
|
|
|
${OPTIONAL_INCLUDE_DIRS}
|
|
|
|
${CLIPBOARD_INCLUDE_DIR}
|
2014-10-25 10:44:52 +00:00
|
|
|
${PHYSFS_INCLUDE_PATH}
|
2012-07-03 22:04:53 +00:00
|
|
|
)
|
2012-04-14 23:02:51 +00:00
|
|
|
|
2014-08-12 18:03:56 +00:00
|
|
|
set(COLOBOT_LOCAL_INCLUDES ${LOCAL_INCLUDES} PARENT_SCOPE)
|
|
|
|
set(COLOBOT_SYSTEM_INCLUDES ${SYSTEM_INCLUDES} PARENT_SCOPE)
|
|
|
|
|
|
|
|
include_directories(${LOCAL_INCLUDES})
|
|
|
|
include_directories(SYSTEM ${SYSTEM_INCLUDES})
|
|
|
|
|
|
|
|
|
|
|
|
# Link directories
|
|
|
|
link_directories(
|
|
|
|
${CMAKE_CURRENT_SOURCE_DIR}/CBot
|
2012-07-03 22:04:53 +00:00
|
|
|
)
|
2012-04-14 23:02:51 +00:00
|
|
|
|
|
|
|
|
2014-08-12 18:03:56 +00:00
|
|
|
# Targets
|
2012-04-14 23:02:51 +00:00
|
|
|
|
2014-08-12 18:03:56 +00:00
|
|
|
add_library(colobotbase STATIC ${BASE_SOURCES})
|
2012-04-14 23:02:51 +00:00
|
|
|
|
2014-08-12 18:03:56 +00:00
|
|
|
add_executable(colobot ${MAIN_SOURCES})
|
|
|
|
target_link_libraries(colobot colobotbase ${LIBS})
|
2012-10-05 20:07:58 +00:00
|
|
|
|
2012-12-19 23:23:12 +00:00
|
|
|
install(TARGETS colobot RUNTIME DESTINATION ${COLOBOT_INSTALL_BIN_DIR})
|
2013-11-08 09:04:26 +00:00
|
|
|
if(NOT CBOT_STATIC)
|
|
|
|
set_target_properties(colobot PROPERTIES INSTALL_RPATH ${COLOBOT_INSTALL_LIB_DIR})
|
|
|
|
endif()
|