From: <tz...@us...> - 2009-06-04 18:36:13
|
Revision: 3109 http://freeorion.svn.sourceforge.net/freeorion/revision/?rev=3109&view=rev Author: tzlaine Date: 2009-06-04 18:36:08 +0000 (Thu, 04 Jun 2009) Log Message: ----------- Integrated the freeorion human client into the CMake build. Modified Paths: -------------- trunk/FreeOrion/CMakeLists.txt trunk/FreeOrion/cmake/Version.cpp.in Added Paths: ----------- trunk/FreeOrion/client/human/CMakeLists.txt trunk/FreeOrion/cmake/FindGiGi.cmake trunk/FreeOrion/cmake/FindGraphviz.cmake Modified: trunk/FreeOrion/CMakeLists.txt =================================================================== --- trunk/FreeOrion/CMakeLists.txt 2009-06-04 01:35:23 UTC (rev 3108) +++ trunk/FreeOrion/CMakeLists.txt 2009-06-04 18:36:08 UTC (rev 3109) @@ -6,8 +6,8 @@ ######################################## # Configuration # ######################################## -set(FREEORION_VERSION v0.3.13) -set(FREEORION_RELEASE 0) +set(FREEORION_VERSION 0.3.13) +set(FREEORION_RELEASE false) list(APPEND CMAKE_MODULE_PATH ${CMAKE_HOME_DIRECTORY}/cmake ${CMAKE_HOME_DIRECTORY}/GG/cmake) include(Config) @@ -16,6 +16,9 @@ set(MINIMUM_BOOST_VERSION 1.36.0) set(MINIMUM_BOOST_COMPONENTS date_time filesystem serialization signals system thread) +set(BOOST_SIGNALS_NAMESPACE "signals" CACHE STRING + "Specifies alternate namespace used for boost::signals (only needed if you changed it using the BOOST_SIGNALS_NAMESPACE define when you built boost).") + option(BUILD_DEBUG "Controls generation of debug code; OFF implies release code." OFF) if (BUILD_DEBUG) @@ -30,11 +33,13 @@ if (WIN32) add_definitions(-DFREEORION_WIN32) + if (MSVC) + add_definitions(/wd4146 /wd4099 /wd4251 /wd4800 /wd4267 /wd4275 + /wd4244 /wd4101 /wd4258 /wd4351 /wd4996) + endif () elseif (APPLE) add_definitions(-DFREEORION_MACOSX) -elseif (CYGWIN) - message(FATAL_ERROR "Sorry, Cygwin is not a supported platform for FreeOrion.") -elseif (UNIX) +elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux") add_definitions(-DFREEORION_LINUX -DENABLE_BINRELOC -Wall -Wno-parentheses -Wno-deprecated) else () message(FATAL_ERROR "Unknown platform type! Your setup is not a supported platform for FreeOrion.") @@ -53,6 +58,13 @@ message(FATAL_ERROR "Boost libraries not found.") endif () +if (NOT BOOST_SIGNALS_NAMESPACE STREQUAL "signals") + add_definitions( + -DBOOST_SIGNALS_NAMESPACE=${BOOST_SIGNALS_NAMESPACE} + -Dsignals=${BOOST_SIGNALS_NAMESPACE} + ) +endif () + find_package(ZLIB) if (ZLIB_FOUND) include_directories(${ZLIB_INCLUDE_DIR}) @@ -83,8 +95,16 @@ ######################################## # Build common code library # ######################################## +# TODO: Figure out why this kills the cmake configuration step for CMake 2.6.4 +# Linux on Suse 11.1, and how it might be fixed/contained. +#project(freeorion_lib) + include_directories(${CMAKE_SOURCE_DIR} log4cpp) +if (FREEORION_RELEASE) + add_definitions(-DFREEORION_RELEASE) +endif () + set(common_sources combat/Combat.cpp combat/CombatOrder.cpp @@ -169,8 +189,6 @@ list(APPEND common_sources log4cpp/src/PThreads.cpp) endif () -project(freeorion_lib) - add_library(freeorion_lib STATIC ${common_sources}) set_target_properties( @@ -191,4 +209,4 @@ ######################################## add_subdirectory(server) add_subdirectory(client/AI) -#add_subdirectory(client/human) +add_subdirectory(client/human) Added: trunk/FreeOrion/client/human/CMakeLists.txt =================================================================== --- trunk/FreeOrion/client/human/CMakeLists.txt (rev 0) +++ trunk/FreeOrion/client/human/CMakeLists.txt 2009-06-04 18:36:08 UTC (rev 3109) @@ -0,0 +1,195 @@ +cmake_minimum_required(VERSION 2.6) +cmake_policy(VERSION 2.6.4) + +project(freeorion) + +message("-- Configuring freeorion") + +#list(APPEND MINIMUM_BOOST_COMPONENTS iostreams) +#find_package(Boost ${MINIMUM_BOOST_VERSION} COMPONENTS ${MINIMUM_BOOST_COMPONENTS}) +#if (Boost_FOUND) +# include_directories(${Boost_INCLUDE_DIRS}) +#else () +# message(FATAL_ERROR "Boost libraries not found.") +#endif () + +find_package(GiGi) +if (GIGI_FOUND) + include_directories(${GIGI_INCLUDE_DIR}) +else () + message(FATAL_ERROR "GiGi library not found.") +endif () + +#find_package(OpenGL) +#if (OPENGL_FOUND) +# if (NOT OPENGL_GLU_FOUND) +# message(FATAL_ERROR "OpenGL GLU library not found.") +# endif () +# include_directories(${OPENGL_INCLUDE_DIR}) +#else () +# message(FATAL_ERROR "OpenGL library not found.") +#endif () + +#find_package(Freetype) +#if (FREETYPE_FOUND) +# include_directories(${FREETYPE_INCLUDE_DIRS}) +#else () +# message(FATAL_ERROR "Freetype library not found.") +#endif () + +find_package(OpenAL) +if (OPENAL_FOUND) + include_directories(${OPENAL_INCLUDE_DIR}) +else () + message(FATAL_ERROR "OpenAL library not found.") +endif () + +find_package(ALUT) +if (ALUT_FOUND) + include_directories(${ALUT_INCLUDE_DIR}) +else () + message(FATAL_ERROR "ALUT OpenAL utility library not found.") +endif () + +find_package(OGRE) +if (OGRE_FOUND) + include_directories(${OGRE_INCLUDE_DIR}) + link_directories(${OGRE_LIB_DIR}) +else () + message(FATAL_ERROR "Ogre library not found.") +endif () + +#find_package(OIS) +#if (OIS_FOUND) +# include_directories(${OIS_INCLUDE_DIR}) +# link_directories(${OIS_LIB_DIR}) +#else () +# message(FATAL_ERROR "OIS library not found.") +#endif () + +find_package(Ogg) +if (OGG_FOUND) + include_directories(${OGG_INCLUDE_DIR}) +else () + message(FATAL_ERROR "Ogg library not found.") +endif () + +find_package(Vorbis) +if (VORBIS_FOUND) + include_directories(${VORBIS_INCLUDE_DIR}) +else () + message(FATAL_ERROR "Vorbis library not found.") +endif () + +find_package(Bullet) +if (BULLET_FOUND) + include_directories(${BULLET_INCLUDE_DIR}) + link_directories(${BULLET_LIB_DIR}) +else () + message(FATAL_ERROR "Bullet library not found.") +endif () + +find_package(Graphviz) +if (GRAPHVIZ_FOUND) + include_directories(${GRAPHVIZ_INCLUDE_DIR}) +else () + message(FATAL_ERROR "Bullet library not found.") +endif () + +# TODO: Are these necessary to link against as well? +#circogen +#common +#dotgen +#fdpgen +#gd +#neatogen +#pack +#plugin +#twopigen + +set(sources + ../../client/ClientApp.cpp + ../../client/ClientFSMEvents.cpp + ../../client/human/HumanClientFSM.cpp + ../../client/human/HumanClientApp.cpp + ../../client/human/chmain.cpp + ../../network/ClientNetworking.cpp + ../../UI/About.cpp + ../../UI/BuildDesignatorWnd.cpp + ../../UI/ChatWnd.cpp + ../../UI/ClientUI.cpp + ../../UI/CUIControls.cpp + ../../UI/CUIDrawUtil.cpp + ../../UI/CUIStyle.cpp + ../../UI/CUIWnd.cpp + ../../UI/EncyclopediaDetailPanel.cpp + ../../UI/FleetButton.cpp + ../../UI/FleetWnd.cpp + ../../UI/GalaxySetupWnd.cpp + ../../UI/InGameMenu.cpp + ../../UI/InfoPanels.cpp + ../../UI/IntroScreen.cpp + ../../UI/LinkText.cpp + ../../UI/CollisionMeshConverter.cpp + ../../UI/CombatWnd.cpp + ../../UI/MapWnd.cpp + ../../UI/MultiplayerLobbyWnd.cpp + ../../UI/OptionsWnd.cpp + ../../UI/DesignWnd.cpp + ../../UI/ProductionWnd.cpp + ../../UI/QueueListBox.cpp + ../../UI/ResearchWnd.cpp + ../../UI/ServerConnectWnd.cpp + ../../UI/SidePanel.cpp + ../../UI/SitRepPanel.cpp + ../../UI/Sound.cpp + ../../UI/SystemIcon.cpp + ../../UI/TechTreeWnd.cpp + ../../UI/TurnProgressWnd.cpp + ../../UI/ShaderProgram.cpp + ../../UI/PagedGeometry/BatchedGeometry.cpp + ../../UI/PagedGeometry/BatchPage.cpp + ../../UI/PagedGeometry/GrassLoader.cpp + ../../UI/PagedGeometry/ImpostorPage.cpp + ../../UI/PagedGeometry/PagedGeometry.cpp + ../../UI/PagedGeometry/PropertyMaps.cpp + ../../UI/PagedGeometry/StaticBillboardSet.cpp + ../../UI/PagedGeometry/TreeLoader2D.cpp + ../../UI/PagedGeometry/TreeLoader3D.cpp + ../../UI/PagedGeometry/WindBatchedGeometry.cpp + ../../UI/PagedGeometry/WindBatchPage.cpp + ../../universe/Universe.cpp + ../../util/AppInterface.cpp +) + +add_definitions(-DFREEORION_BUILD_HUMAN -DGL_GLEXT_PROTOTYPES) + +add_executable(freeorion ${sources}) + +set_target_properties( + freeorion + PROPERTIES + RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR} + CLEAN_DIRECT_OUTPUT 1 + LABELS "${PROJECT_NAME}" +) + +target_link_libraries( + freeorion + freeorion_lib + ${Boost_LIBRARIES} + ${GIGI_GIGI_LIBRARY} + ${GIGI_GIGIOGRE_LIBRARY} + ${OPENAL_LIBRARY} + ${ALUT_LIBRARY} + ${OGRE_LIBRARIES} + ${OGG_LIBRARY} + ${VORBIS_LIBRARIES} + ${BULLET_LIBRARIES} + ${GRAPHVIZ_LIBRARIES} +) + +#g++ -o freeorion -pthread combat/Combat.o combat/CombatOrder.o combat/OpenSteer/AsteroidBeltObstacle.o combat/OpenSteer/CombatFighter.o combat/OpenSteer/CombatObject.o combat/OpenSteer/CombatShip.o combat/OpenSteer/Missile.o combat/OpenSteer/Obstacle.o combat/OpenSteer/PathingEngine.o combat/OpenSteer/SimpleVehicle.o combat/OpenSteer/Vec3.o combat/OpenSteer/Vec3Utilities.o Empire/Empire.o Empire/EmpireManager.o Empire/ResourcePool.o network/Message.o network/MessageQueue.o network/Networking.o UI/StringTable.o universe/Building.o universe/Condition.o universe/ConditionParser1.o universe/ConditionParser2.o universe/ConditionParser.o universe/Effect.o universe/EffectParser.o universe/Enums.o universe/Fleet.o universe/Meter.o universe/ParserUtil.o universe/Planet.o universe/PopCenter.o universe/Predicates.o universe/ResourceCenter.o universe/Ship.o universe/ShipDesign.o universe/Special.o universe/System.o universe/Tech.o universe/TopLevelParsers.o universe/UniverseObject.o universe/ValueRef.o universe/ValueRefParser.o util/DataTable.o util/GZStream.o util/MultiplayerCommon.o util/OptionsDB.o util/Order.o util/OrderSet.o util/Process.o util/Random.o util/Serialize.o util/SitRepEntry.o util/VarText.o util/Version.o util/binreloc.o util/Directories.o util/XMLDoc.o log4cpp/src/Appender.o log4cpp/src/AppenderSkeleton.o log4cpp/src/BasicLayout.o log4cpp/src/Category.o log4cpp/src/CategoryStream.o log4cpp/src/Configurator.o log4cpp/src/FactoryParams.o log4cpp/src/FileAppender.o log4cpp/src/HierarchyMaintainer.o log4cpp/src/LayoutAppender.o log4cpp/src/Localtime.o log4cpp/src/LoggingEvent.o log4cpp/src/NDC.o log4cpp/src/PatternLayout.o log4cpp/src/Priority.o log4cpp/src/StringUtil.o log4cpp/src/TimeStamp.o log4cpp/src/PThreads.o client/ClientApp-human.o client/ClientFSMEvents-human.o client/human/HumanClientFSM-human.o client/human/HumanClientApp-human.o client/human/chmain-human.o network/ClientNetworking-human.o UI/About-human.o UI/BuildDesignatorWnd-human.o UI/ChatWnd-human.o UI/ClientUI-human.o UI/CUIControls-human.o UI/CUIDrawUtil-human.o UI/CUIStyle-human.o UI/CUIWnd-human.o UI/EncyclopediaDetailPanel-human.o UI/FleetButton-human.o UI/FleetWnd-human.o UI/GalaxySetupWnd-human.o UI/InGameMenu-human.o UI/InfoPanels-human.o UI/IntroScreen-human.o UI/LinkText-human.o UI/CollisionMeshConverter-human.o UI/CombatWnd-human.o UI/MapWnd-human.o UI/MultiplayerLobbyWnd-human.o UI/OptionsWnd-human.o UI/DesignWnd-human.o UI/ProductionWnd-human.o UI/QueueListBox-human.o UI/ResearchWnd-human.o UI/ServerConnectWnd-human.o UI/SidePanel-human.o UI/SitRepPanel-human.o UI/Sound-human.o UI/SystemIcon-human.o UI/TechTreeWnd-human.o UI/TurnProgressWnd-human.o UI/ShaderProgram-human.o UI/PagedGeometry/BatchedGeometry-human.o UI/PagedGeometry/BatchPage-human.o UI/PagedGeometry/GrassLoader-human.o UI/PagedGeometry/ImpostorPage-human.o UI/PagedGeometry/PagedGeometry-human.o UI/PagedGeometry/PropertyMaps-human.o UI/PagedGeometry/StaticBillboardSet-human.o UI/PagedGeometry/TreeLoader2D-human.o UI/PagedGeometry/TreeLoader3D-human.o UI/PagedGeometry/WindBatchedGeometry-human.o UI/PagedGeometry/WindBatchPage-human.o universe/Universe-human.o util/AppInterface-human.o -L/usr/lib -L/usr/local/lib -lGiGiOgre -lbulletdynamics -lbulletcollision -lbulletmath -lalut -lopenal -lvorbisfile -lgvc -lgraph -lcdt -lOgreMain -lGiGi -lboost_serialization +# -lboost_signals -lboost_system -lboost_filesystem -lboost_thread +# -lboost_python -lboost_iostreams -lpython2.6 +# -lGL -lGLU -lfreetype -lz -ljpeg -lpng -ltiff Added: trunk/FreeOrion/cmake/FindGiGi.cmake =================================================================== --- trunk/FreeOrion/cmake/FindGiGi.cmake (rev 0) +++ trunk/FreeOrion/cmake/FindGiGi.cmake 2009-06-04 18:36:08 UTC (rev 3109) @@ -0,0 +1,55 @@ +# - Try to find GiGi +# Once done this will define +# +# GIGI_FOUND - system has GiGi +# GIGI_INCLUDE_DIR +# GIGI_LIBRARIES +# +# $GIGIDIR is an environment variable that may be set to guide CMake in +# finding GiGi. + +find_package(PkgConfig) +if (PKG_CONFIG_FOUND) + pkg_check_modules(GIGI GiGi GiGiSDL GiGiOgre) + if (GIGI_FOUND) + set(GIGI_INCLUDE_DIR ${GIGI_INCLUDE_DIRS}) + endif () +else () + set(GIGI_INCLUDE_DIRS ${GIGIDIR}/include) + set(GIGI_LIBRARY_DIRS ${GIGIDIR}/lib) +endif () + +find_path( + GIGI_INCLUDE_DIR + NAMES gvc.h + PATHS ${GIGI_INCLUDE_DIRS} +) + +find_library( + GIGI_GIGI_LIBRARY + NAMES GiGi + PATHS ${GIGI_LIBRARY_DIRS} +) +find_library( + GIGI_GIGISDL_LIBRARY + NAMES GiGiSDL + PATHS ${GIGI_LIBRARY_DIRS} +) +find_library( + GIGI_GIGIOGRE_LIBRARY + NAMES GiGiOgre + PATHS ${GIGI_LIBRARY_DIRS} +) + +if (GIGI_INCLUDE_DIR AND + GIGI_GIGI_LIBRARY AND + GIGI_GIGISDL_LIBRARY AND + GIGI_GIGIOGRE_LIBRARY) + set(GIGI_FOUND true) + set(GIGI_LIBRARIES + ${GIGI_GIGI_LIBRARY} + ${GIGI_GIGISDL_LIBRARY} + ${GIGI_GIGIOGRE_LIBRARY}) +else () + set(GIGI_FOUND false) +endif () Added: trunk/FreeOrion/cmake/FindGraphviz.cmake =================================================================== --- trunk/FreeOrion/cmake/FindGraphviz.cmake (rev 0) +++ trunk/FreeOrion/cmake/FindGraphviz.cmake 2009-06-04 18:36:08 UTC (rev 3109) @@ -0,0 +1,76 @@ +# - Try to find Graphviz +# Once done this will define +# +# GRAPHVIZ_FOUND - system has Graphviz +# GRAPHVIZ_INCLUDE_DIR +# GRAPHVIZ_LIBRARIES +# +# $GRAPHVIZDIR is an environment variable that may be set to guide CMake in +# finding Graphviz. + +find_package(PkgConfig) +if (PKG_CONFIG_FOUND) + pkg_check_modules(GRAPHVIZ libagraph libcdt libcgraph libgraph libgvc libpathplan) + if (GRAPHVIZ_FOUND) + set(GRAPHVIZ_INCLUDE_DIR ${GRAPHVIZ_INCLUDE_DIRS}) + endif () +else () + set(GRAPHVIZ_INCLUDE_DIRS ${GRAPHVIZDIR}/include ${GRAPHVIZDIR}/graphviz) + set(GRAPHVIZ_LIBRARY_DIRS ${GRAPHVIZDIR}/lib) +endif () + +find_path( + GRAPHVIZ_INCLUDE_DIR + NAMES gvc.h + PATHS ${GRAPHVIZ_INCLUDE_DIRS} +) + +find_library( + GRAPHVIZ_AGRAPH_LIBRARY + NAMES agraph + PATHS ${GRAPHVIZ_LIBRARY_DIRS} +) +find_library( + GRAPHVIZ_CDT_LIBRARY + NAMES cdt + PATHS ${GRAPHVIZ_LIBRARY_DIRS} +) +find_library( + GRAPHVIZ_CGRAPH_LIBRARY + NAMES cgraph + PATHS ${GRAPHVIZ_LIBRARY_DIRS} +) +find_library( + GRAPHVIZ_GRAPH_LIBRARY + NAMES graph + PATHS ${GRAPHVIZ_LIBRARY_DIRS} +) +find_library( + GRAPHVIZ_GVC_LIBRARY + NAMES gvc + PATHS ${GRAPHVIZ_LIBRARY_DIRS} +) +find_library( + GRAPHVIZ_PATHPLAN_LIBRARY + NAMES pathplan + PATHS ${GRAPHVIZ_LIBRARY_DIRS} +) + +if (GRAPHVIZ_INCLUDE_DIR AND + GRAPHVIZ_AGRAPH_LIBRARY AND + GRAPHVIZ_CDT_LIBRARY AND + GRAPHVIZ_CGRAPH_LIBRARY AND + GRAPHVIZ_GRAPH_LIBRARY AND + GRAPHVIZ_GVC_LIBRARY AND + GRAPHVIZ_PATHPLAN_LIBRARY) + set(GRAPHVIZ_FOUND true) + set(GRAPHVIZ_LIBRARIES + ${GRAPHVIZ_AGRAPH_LIBRARY} + ${GRAPHVIZ_CDT_LIBRARY} + ${GRAPHVIZ_CGRAPH_LIBRARY} + ${GRAPHVIZ_GRAPH_LIBRARY} + ${GRAPHVIZ_GVC_LIBRARY} + ${GRAPHVIZ_PATHPLAN_LIBRARY}) +else () + set(GRAPHVIZ_FOUND false) +endif () Modified: trunk/FreeOrion/cmake/Version.cpp.in =================================================================== --- trunk/FreeOrion/cmake/Version.cpp.in 2009-06-04 01:35:23 UTC (rev 3108) +++ trunk/FreeOrion/cmake/Version.cpp.in 2009-06-04 18:36:08 UTC (rev 3109) @@ -2,6 +2,6 @@ const std::string& FreeOrionVersionString() { - static const std::string retval = "@FREEORION_VERSION@ [Rev @svn_revision_number@]"; + static const std::string retval = "v@FREEORION_VERSION@ [Rev @svn_revision_number@]"; return retval; } |