Mercurial > sumwars
changeset 1998:9031c6fab6cb
Updated CMake scripts: now has better OGRE included boost lib detection.
author | thegusty999 |
---|---|
date | Sun, 30 Oct 2011 16:36:50 +0000 |
parents | 74e956976194 |
children | cd5a5f637833 |
files | CMakeLists.txt CMakeModules/BoostOgreGetVersion.cmake CMakeModules/FindBoostOGRE.cmake CMakeModules/FindCEGUIOGRE.cmake CMakeModules/FindGNUWIN.cmake CMakeModules/FindVorbis.cmake |
diffstat | 6 files changed, 130 insertions(+), 47 deletions(-) [+] |
line wrap: on
line diff
--- a/CMakeLists.txt Sat Oct 29 15:42:49 2011 +0000 +++ b/CMakeLists.txt Sun Oct 30 16:36:50 2011 +0000 @@ -6,8 +6,7 @@ OPTION(NO_ENET "Do not use in-source ENET Lib" OFF) OPTION(BUILD_TOOLS "Builds editor tools" ON) OPTION(UPDATE_SUBVERSION_REVISION "Option to turn off automatic revision checking" ON) -OPTION(POST_BUILD_COPY "After a build, copy the executable (Win32)" OFF) - +OPTION(POST_BUILD_COPY "After a build, copy the executable to the project folder (Win32)" OFF) IF( NOT CMAKE_BUILD_TYPE ) SET( CMAKE_BUILD_TYPE "RelWithDebInfo" ) @@ -70,10 +69,10 @@ MESSAGE(SEND_ERROR "You need Ogre 1.7 Cthugha to build this.") ENDIF() -#IF (WIN32) -# FIND_PACKAGE(BOOST REQUIRED) -# FIND_PACKAGE(GNUWIN REQUIRED) -#ENDIF (WIN32) +IF (WIN32) + FIND_PACKAGE(BoostOGRE REQUIRED) + FIND_PACKAGE(GNUWIN REQUIRED) +ENDIF (WIN32) FIND_PACKAGE(OIS REQUIRED) FIND_PACKAGE(Lua51 REQUIRED) FIND_PACKAGE(CEGUI REQUIRED) @@ -98,9 +97,12 @@ INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/src/gui) INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/src/gui/contenteditor) INCLUDE_DIRECTORIES(${OGRE_INCLUDE_DIRS}) -#IF (WIN32) -# INCLUDE_DIRECTORIES(${Boost_INCLUDE_DIRS}) -#ENDIF (WIN32) +IF (WIN32) + Message(STATUS "Adding boost include: ${BoostOGRE_INCLUDE_DIR}") + INCLUDE_DIRECTORIES(${BoostOGRE_INCLUDE_DIR}) + Message(STATUS "Adding gnu include: ${GNUWIN_INCLUDE_DIR}") + INCLUDE_DIRECTORIES(${GNUWIN_INCLUDE_DIR}) +ENDIF (WIN32) INCLUDE_DIRECTORIES(${OIS_INCLUDE_DIRS}) INCLUDE_DIRECTORIES(${LUA_INCLUDE_DIR}) INCLUDE_DIRECTORIES(${CEGUI_INCLUDE_DIR}) @@ -417,14 +419,6 @@ ADD_EXECUTABLE(sumwars ${SRCS}) -# Only after adding the executable can a link be made to boost -#IF (WIN32) -# include_directories(${Boost_INCLUDE_DIRS}) -# link_directories(${Boost_LIBRARY_DIRS}) -# include_directories(${GNUWIN_INCLUDE_DIR}) -# -# message("Adding boost include: ${Boost_INCLUDE_DIRS}") -#ENDIF (WIN32) #${CEGUILUA_LIBRARY} @@ -438,8 +432,7 @@ ${LUA_LIBRARIES} ${OPENAL_LIBRARY} ${ALUT_LIBRARY} - ${OGG_LIBRARY_DEBUG} -# ${OGG_LIBRARY} + ${OGG_LIBRARY} ${VORBIS_LIBRARIES} ${PHYSFS_LIBRARY} ) @@ -461,12 +454,8 @@ ws2_32.lib winmm.lib ${LINK_LIBS} -# ${CMAKE_CURRENT_SOURCE_DIR}/Dependencies/gettext/lib/libgettextlib.lib - ${CMAKE_CURRENT_SOURCE_DIR}/Dependencies/gettext/lib/libintl.lib - ${CMAKE_CURRENT_SOURCE_DIR}/Dependencies/boost/lib/libboost_thread-vc100-mt-gd-1_44.lib - ${CMAKE_CURRENT_SOURCE_DIR}/Dependencies/boost/lib/libboost_date_time-vc100-mt-gd-1_44.lib - ${CMAKE_CURRENT_SOURCE_DIR}/Dependencies/boost/lib/libboost_thread-vc100-mt-1_44.lib - ${CMAKE_CURRENT_SOURCE_DIR}/Dependencies/boost/lib/libboost_date_time-vc100-mt-1_44.lib + ${GNUWIN_LIBRARY} + ${BoostOGRE_LIBRARIES} ) ENDIF()
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/CMakeModules/BoostOgreGetVersion.cmake Sun Oct 30 16:36:50 2011 +0000 @@ -0,0 +1,17 @@ +#------------------------------------------------------------------- +# This file is part of the CMake build system for Summoning Wars +# The purpose of this script is to obtain the version of the boost +# library used in the OGRE SDK. +# For the latest info, see http://sumwars.org/ +# +# The contents of this file are placed in the public domain. Feel +# free to make use of it in any way you like. +# Latest update: 2011.10.30 (Augustin Preda). +#------------------------------------------------------------------- + +include(PreprocessorUtils) + +macro(boost_ogre_get_version HEADER) + file(READ ${HEADER} TEMP_VAR_CONTENTS) + get_preprocessor_entry(TEMP_VAR_CONTENTS BOOST_LIB_VERSION BoostOGRE_LIB_VERSION) +endmacro()
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/CMakeModules/FindBoostOGRE.cmake Sun Oct 30 16:36:50 2011 +0000 @@ -0,0 +1,79 @@ +# Find Boost includes and library - use versions that are distributed with Ogre. +# This is very important, as using different library versions is not possible with the SDK. +# INCLUDE(DetermineVersion) +# INCLUDE(FindPackageHandleAdvancedArgs) + +# Only tested for Win32 so far. +IF(WIN32) + INCLUDE(FindPackageHandleStandardArgs) + INCLUDE(HandleLibraryTypes) + INCLUDE(BoostOGREGetVersion) + + # Set the boost search path. Prioritize the Dependencies folder. + SET (BST_SRCPATH ${CMAKE_CURRENT_SOURCE_DIR}/Dependencies/boost $ENV{OGRE_HOME}/boost_1_44) + FIND_PATH(BoostOGRE_INCLUDE_DIR /boost/version.hpp + PATHS ${BST_SRCPATH} + PATH_SUFFIXES /boost /boost_1_44 + ) + + Message (STATUS "Found BoostOGRE_INCLUDE_DIR as: ${BoostOGRE_INCLUDE_DIR}") + + # Get the used version (stored in version.h). Required to know against which libs to link. + # This will store the result into ${BoostOGRE_LIB_VERSION} + boost_ogre_get_version(${BoostOGRE_INCLUDE_DIR}/boost/version.hpp) + Message (STATUS "Found BoostOGRE_LIB_VERSION as: ${BoostOGRE_LIB_VERSION}") + + FIND_LIBRARY(BoostOGRE_THREAD_LIBRARY_DEBUG + NAMES libboost_thread-vc100-mt-gd-${BoostOGRE_LIB_VERSION} + PATHS ${BST_SRCPATH} + PATH_SUFFIXES lib bin + ) + + FIND_LIBRARY(BoostOGRE_THREAD_LIBRARY_OPTIMIZED + NAMES libboost_thread-vc100-mt-${BoostOGRE_LIB_VERSION} + PATHS ${BST_SRCPATH} + PATH_SUFFIXES lib bin + ) + + FIND_LIBRARY(BoostOGRE_DATETIME_LIBRARY_DEBUG + NAMES libboost_date_time-vc100-mt-gd-${BoostOGRE_LIB_VERSION} + PATHS ${BST_SRCPATH} + PATH_SUFFIXES lib bin + ) + + FIND_LIBRARY(BoostOGRE_DATETIME_LIBRARY_OPTIMIZED + NAMES libboost_date_time-vc100-mt-${BoostOGRE_LIB_VERSION} + PATHS ${BST_SRCPATH} + PATH_SUFFIXES lib bin + ) + + # Handle the REQUIRED argument + FIND_PACKAGE_HANDLE_STANDARD_ARGS(BoostOGRE DEFAULT_MSG + BoostOGRE_INCLUDE_DIR + BoostOGRE_THREAD_LIBRARY_DEBUG + BoostOGRE_THREAD_LIBRARY_OPTIMIZED + BoostOGRE_DATETIME_LIBRARY_DEBUG + BoostOGRE_DATETIME_LIBRARY_OPTIMIZED + ) + + # Collect optimized and debug libraries (will auto-use names _LIBRARY_DEBUG & _LIBRARY_OPTIMIZED + HANDLE_LIBRARY_TYPES(BoostOGRE_THREAD) + # Collect optimized and debug libraries + HANDLE_LIBRARY_TYPES(BoostOGRE_DATETIME) + + Message (STATUS "Found BoostOGRE_THREAD_LIBRARY as: ${BoostOGRE_THREAD_LIBRARY}") + Message (STATUS "Found BoostOGRE_DATETIME_LIBRARY as: ${BoostOGRE_DATETIME_LIBRARY}") + SET(BoostOGRE_LIBRARIES ${BoostOGRE_THREAD_LIBRARY} ${BoostOGRE_DATETIME_LIBRARY}) + + # Mark these entries visible only in the advanced section. + MARK_AS_ADVANCED( + BoostOGRE_INCLUDE_DIR + BoostOGRE_THREAD_LIBRARY_OPTIMIZED + BoostOGRE_THREAD_LIBRARY_DEBUG + BoostOGRE_DATETIME_LIBRARY_OPTIMIZED + BoostOGRE_DATETIME_LIBRARY_DEBUG + ) + + Message (STATUS "Found BoostOGRE_LIBRARIES as: ${BoostOGRE_LIBRARIES}") +ENDIF(WIN32) +
--- a/CMakeModules/FindCEGUIOGRE.cmake Sat Oct 29 15:42:49 2011 +0000 +++ b/CMakeModules/FindCEGUIOGRE.cmake Sun Oct 30 16:36:50 2011 +0000 @@ -51,7 +51,7 @@ CEGUIOGRE_INCLUDE_DIRS ) -MESSAGE("${CEGUIOGRE_INCLUDE_DIRS}") +MESSAGE(STATUS "Found CEGUI include dir: ${CEGUIOGRE_INCLUDE_DIRS}") MARK_AS_ADVANCED( CEGUIOGRE_INCLUDE_DIRS
--- a/CMakeModules/FindGNUWIN.cmake Sat Oct 29 15:42:49 2011 +0000 +++ b/CMakeModules/FindGNUWIN.cmake Sun Oct 30 16:36:50 2011 +0000 @@ -9,7 +9,7 @@ INCLUDE(FindPackageHandleStandardArgs) INCLUDE(HandleLibraryTypes) -SET (GNU_SRCPATH $ENV{PROGRAMFILES}/GnuWin32 $ENV{GNUWINDIR} ${PROJECT_SOURCE_DIR}/Dependencies) +SET (GNU_SRCPATH $ENV{PROGRAMFILES}/GnuWin32 $ENV{GNUWINDIR} ${CMAKE_CURRENT_SOURCE_DIR}/Dependencies) FIND_PATH(GNUWIN_INCLUDE_DIR libintl.h PATHS ${GNU_SRCPATH} PATH_SUFFIXES include
--- a/CMakeModules/FindVorbis.cmake Sat Oct 29 15:42:49 2011 +0000 +++ b/CMakeModules/FindVorbis.cmake Sun Oct 30 16:36:50 2011 +0000 @@ -22,23 +22,26 @@ ) IF(WIN32) -#Make a special selection for the scenario of using visual studio 2010, since this will -#be the most frequent at this stage. -SET (TMP_SUFF Win32/Release) -IF (MSVC10) -SET (TMP_SUFF ${TMP_SUFF} VS2010/Win32/Release Win32/VS2010/Win32/Release ) -ENDIF (MSVC10) -FIND_LIBRARY(VORBIS_LIBRARY_OPTIMIZED - NAMES libvorbis_static libvorbis libvorbis-static-mt - PATHS $ENV{VORBISDIR} - PATH_SUFFIXES Release ${TMP_SUFF} -) + #Make a special selection for the scenario of using visual studio 2010, since this will + #be the most frequent at this stage. + SET (TMP_SUFF Win32/Release) + IF (MSVC10) + SET (TMP_SUFF ${TMP_SUFF} VS2010/Win32/Release Win32/VS2010/Win32/Release ) + ENDIF (MSVC10) + # Using static link in as preferred option + # TODO: add option to allow selecting static or release as pre + FIND_LIBRARY(VORBIS_LIBRARY_OPTIMIZED + NAMES libvorbis_static libvorbis-static-mt libvorbis + PATHS $ENV{VORBISDIR} + PATH_SUFFIXES Release ${TMP_SUFF} + ) ELSE() -FIND_LIBRARY(VORBIS_LIBRARY_OPTIMIZED - NAMES vorbis - PATH_SUFFIXES lib -) + FIND_LIBRARY(VORBIS_LIBRARY_OPTIMIZED + NAMES vorbis + PATH_SUFFIXES lib + ) ENDIF(WIN32) +Message (STATUS "Got release vorbis: ${VORBIS_LIBRARY_OPTIMIZED}") IF(WIN32) #Make a special selection for the scenario of using visual studio 2010, since this will @@ -107,8 +110,6 @@ ELSE() FIND_PACKAGE_HANDLE_STANDARD_ARGS(Vorbis DEFAULT_MSG VORBIS_LIBRARY_OPTIMIZED -# #Temporary: also add for WIN32 -# VORBISFILE_LIBRARY_OPTIMIZED VORBIS_INCLUDE_DIR ) ENDIF(NOT WIN32) @@ -120,9 +121,6 @@ SET(VORBIS_LIBRARIES ${VORBIS_LIBRARY} ${VORBISFILE_LIBRARY}) #WIN32 includes VORBISFILE as a static lib ELSE() SET(VORBIS_LIBRARIES ${VORBIS_LIBRARY} ) -# # Why would the fact that WIN32 includes the vorbisfile as static mean that we don't need to pass it here? -# HANDLE_LIBRARY_TYPES(VORBISFILE) -# SET(VORBIS_LIBRARIES ${VORBIS_LIBRARY} ${VORBISFILE_LIBRARY}) ENDIF(NOT WIN32) MARK_AS_ADVANCED(