Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

Ignore:
Timestamp:
Apr 28, 2011, 7:15:14 AM (13 years ago)
Author:
rgrieder
Message:

Merged kicklib2 branch back to trunk (includes former branches ois_update, mac_osx and kicklib).

Notes for updating

Linux:
You don't need an extra package for CEGUILua and Tolua, it's already shipped with CEGUI.
However you do need to make sure that the OgreRenderer is installed too with CEGUI 0.7 (may be a separate package).
Also, Orxonox now recognises if you install the CgProgramManager (a separate package available on newer Ubuntu on Debian systems).

Windows:
Download the new dependency packages versioned 6.0 and use these. If you have problems with that or if you don't like the in game console problem mentioned below, you can download the new 4.3 version of the packages (only available for Visual Studio 2005/2008).

Key new features:

  • *Support for Mac OS X*
  • Visual Studio 2010 support
  • Bullet library update to 2.77
  • OIS library update to 1.3
  • Support for CEGUI 0.7 —> Support for Arch Linux and even SuSE
  • Improved install target
  • Compiles now with GCC 4.6
  • Ogre Cg Shader plugin activated for Linux if available
  • And of course lots of bug fixes

There are also some regressions:

  • No support for CEGUI 0.5, Ogre 1.4 and boost 1.35 - 1.39 any more
  • In game console is not working in main menu for CEGUI 0.7
  • Tolua (just the C lib, not the application) and CEGUILua libraries are no longer in our repository. —> You will need to get these as well when compiling Orxonox
  • And of course lots of new bugs we don't yet know about
File:
1 edited

Legend:

Unmodified
Added
Removed
  • code/trunk/cmake/LibraryConfig.cmake

    r8264 r8351  
    4040# On Windows using a package causes way less problems
    4141SET(_option_msg "Set this to true to use precompiled dependecy archives")
    42 IF(WIN32)
     42IF(WIN32 OR APPLE)
    4343  OPTION(DEPENDENCY_PACKAGE_ENABLE "${_option_msg}" ON)
    44 ELSE(WIN32)
     44ELSE()
    4545  OPTION(DEPENDENCY_PACKAGE_ENABLE "${_option_msg}" FALSE)
    46 ENDIF(WIN32)
     46ENDIF()
    4747
    4848# Scripts for specific library and CMake config
    4949INCLUDE(LibraryConfigTardis)
    50 INCLUDE(LibraryConfigApple)
    5150
    5251IF(DEPENDENCY_PACKAGE_ENABLE)
     52  IF(APPLE AND NOT EXISTS ${CMAKE_SOURCE_DIR}/dependencies)
     53    # Let CMake automatically download and extract the dependency package on Mac OS X
     54    # TODO: Handle download errors and always select newest package
     55    SET(_dep_package_current "OrxonoxDeps_110428_2.0_OSX.tar.bz2")
     56    SET(_dep_package_url "http://svn.orxonox.net/ogre/apple/precompiled_dependencies")
     57    MESSAGE(STATUS "Downloading Mac OS X dependency package.")
     58    FILE(DOWNLOAD
     59      ${_dep_package_url}/${_dep_package_current}
     60      ${CMAKE_SOURCE_DIR}/${_dep_package_current}
     61    )
     62    MESSAGE(STATUS "Extracting Mac OS X dependency package.")
     63    EXECUTE_PROCESS(
     64      COMMAND ${CMAKE_COMMAND} -E tar -jxf ${_dep_package_current}
     65      WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
     66      OUTPUT_FILE ${CMAKE_BINARY_DIR}/dep_pack_extract_log.keep_me
     67    )
     68    # Delete the dependency archive once we no longer need it
     69    FILE(REMOVE ${CMAKE_SOURCE_DIR}/${_dep_package_current})
     70  ENDIF()
     71
    5372  GET_FILENAME_COMPONENT(_dep_dir_1 ${CMAKE_SOURCE_DIR}/../dependencies ABSOLUTE)
    5473  GET_FILENAME_COMPONENT(_dep_dir_2 ${CMAKE_SOURCE_DIR}/../lib_dist ABSOLUTE)
     
    5978  ELSEIF(MSVC90)
    6079    SET(_compiler_prefix msvc9)
     80  ELSEIF(MSVC10)
     81    SET(_compiler_prefix msvc10)
    6182  ENDIF()
    6283  FIND_PATH(DEPENDENCY_PACKAGE_DIR
     
    7394                   "Disable LIBRARY_USE_PACKAGE if you have none intalled.")
    7495  ELSE()
    75     INCLUDE(PackageConfigMinGW)
    76     INCLUDE(PackageConfigMSVC)
    77     INCLUDE(PackageConfig) # For both msvc and mingw
     96    IF(WIN32)
     97      INCLUDE(PackageConfigMinGW)
     98      INCLUDE(PackageConfigMSVC)
     99      INCLUDE(PackageConfig) # For both msvc and mingw
     100    ELSEIF(APPLE)
     101      INCLUDE(PackageConfigOSX)
     102    ENDIF(WIN32)
    78103  ENDIF()
    79104ENDIF(DEPENDENCY_PACKAGE_ENABLE)
     
    93118# Performs the search and sets the variables    #
    94119
    95 FIND_PACKAGE(OGRE  1.4       REQUIRED)
    96 #FIND_PACKAGE(ENet  1.1       REQUIRED)
     120#FIND_PACKAGE(ENet     1.2    REQUIRED)
     121FIND_PACKAGE(CEGUI    0.6    REQUIRED)
     122FIND_PACKAGE(Lua5.1          REQUIRED)
    97123FIND_PACKAGE(Ogg             REQUIRED)
    98124FIND_PACKAGE(Vorbis          REQUIRED)
    99125FIND_PACKAGE(ALUT            REQUIRED)
    100126FIND_PACKAGE(ZLIB            REQUIRED)
    101 IF(POCO_REQUIRED)
    102   FIND_PACKAGE(POCO          REQUIRED)
    103   # Always link against POCO too because of threading
    104   SET(OGRE_LIBRARY ${OGRE_LIBRARY} ${POCO_LIBRARY})
    105 ENDIF()
     127
    106128IF(WIN32)
    107129  FIND_PACKAGE(DbgHelp)
     
    109131ENDIF()
    110132
    111 ##### CEGUI #####
    112 # We make use of the CEGUI script module called CEGUILua.
    113 # However there is a small issue with that: We use Tolua, a C++ binding
    114 # generator ourselves. And we also have to use our bindings in the same
    115 # lua state is CEGUILua's. Unfortunately this implies that both lua runtime
    116 # version are equal or else you get segmentation faults.
    117 # In order to match the Lua versions we decided to ship CEGUILua in our
    118 # repository, mainly because there is no way to determine which version of
    119 # Lua CEGUILua was linked against (you'd have to specify yourself) and secondly
    120 # because we can then choose the Lua version. Future plans might involve only
    121 # accepting Lua 5.1.
    122 
    123 # Insert all internally supported CEGUILua versions here
    124 SET(CEGUILUA_INTERNAL_SUPPORT 0.5.0 0.6.0 0.6.1 0.6.2)
    125 OPTION(CEGUILUA_USE_EXTERNAL_LIBRARY "Force the use of external CEGUILua library" OFF)
    126 FIND_PACKAGE(CEGUI 0.5 REQUIRED)
    127 
    128 ##### Lua #####
    129 IF(CEGUILUA_USE_EXTERNAL_LIBRARY)
    130   COMPARE_VERSION_STRINGS(${CEGUI_VERSION} "0.6" _version_comparison)
    131   IF(version_comparison LESS 0)
    132     SET(LUA_VERSION_REQUEST 5.0)
    133   ELSE()
    134     SET(LUA_VERSION_REQUEST 5.1)
    135   ENDIF()
    136 ELSE()
    137   SET(LUA_VERSION_REQUEST 5)
    138 ENDIF()
    139 FIND_PACKAGE(Lua ${LUA_VERSION_REQUEST} EXACT REQUIRED)
    140133
    141134##### OpenAL #####
     
    161154
    162155##### Boost #####
    163 # Expand the next statement if newer boost versions than 1.36.1 are released
    164 SET(Boost_ADDITIONAL_VERSIONS 1.37 1.37.0 1.38 1.38.0 1.39 1.39.0 1.40 1.40.0
    165                               1.41 1.41.0 1.42 1.42.0 1.43 1.43.0 1.44 1.44.0)
    166 IF( NOT TARDIS )
    167   FIND_PACKAGE(Boost 1.35 REQUIRED thread filesystem system date_time)
     156# Expand the next statement if newer boost versions are released
     157SET(Boost_ADDITIONAL_VERSIONS 1.40 1.40.0 1.41 1.41.0 1.42 1.42.0 1.43 1.43.0
     158                              1.44 1.44.0 1.45 1.45.0 1.46 1.46.0 1.46.1)
     159IF(NOT TARDIS)
     160  FIND_PACKAGE(Boost 1.40 REQUIRED thread filesystem system date_time)
    168161ENDIF()
    169162# No auto linking, so this option is useless anyway
    170163MARK_AS_ADVANCED(Boost_LIB_DIAGNOSTIC_DEFINITIONS)
     164
     165##### OGRE #####
     166FIND_PACKAGE(OGRE 1.6 REQUIRED)
     167# For Ogre >= 1.7, we might need a threading library
     168# Variables are either defined by dependency package config or by FindOGRE
     169IF(OGRE_NEEDS_POCO)
     170  FIND_PACKAGE(POCO REQUIRED)
     171  # Always link against POCO too because of threading
     172  SET(OGRE_LIBRARY ${OGRE_LIBRARY} ${POCO_LIBRARY})
     173ELSEIF(OGRE_NEEDS_BOOST)
     174  # Always link against boost too because of threading
     175  SET(OGRE_LIBRARY ${OGRE_LIBRARY} ${Boost_THREAD_LIBRARY})
     176ENDIF()
    171177
    172178
     
    177183# Note: Default option in the libraries vary, but our default option is dynamic
    178184IF(WIN32)
    179   OPTION(LINK_BOOST_DYNAMIC "Link Boost dynamically on Windows" TRUE)
    180   OPTION(LINK_CEGUI_DYNAMIC "Link CEGUI dynamicylly on Windows" TRUE)
    181   #OPTION(LINK_ENET_DYNAMIC  "Link ENet dynamically on Windows" TRUE)
    182   OPTION(LINK_OGRE_DYNAMIC  "Link OGRE dynamically on Windows" TRUE)
    183   OPTION(LINK_TCL_DYNAMIC   "Link TCL dynamically on Windows" TRUE)
    184   OPTION(LINK_ZLIB_DYNAMIC  "Link ZLib dynamically on Windows" TRUE)
    185   COMPARE_VERSION_STRINGS("${LUA_VERSION}" "5.1" _version_comparison)
    186   IF(_version_comparison LESS 0)
    187     OPTION(LINK_LUA_DYNAMIC "Link Lua dynamically on Windows" FALSE)
    188   ELSE(_version_comparison LESS 0)
    189     OPTION(LINK_LUA_DYNAMIC "Link Lua dynamically on Windows" TRUE)
    190   ENDIF(_version_comparison LESS 0)
     185  OPTION(LINK_BOOST_DYNAMIC  "Link Boost dynamically on Windows" TRUE)
     186  OPTION(LINK_CEGUI_DYNAMIC  "Link CEGUI dynamicylly on Windows" TRUE)
     187  #OPTION(LINK_ENET_DYNAMIC   "Link ENet dynamically on Windows" TRUE)
     188  OPTION(LINK_OGRE_DYNAMIC   "Link OGRE dynamically on Windows" TRUE)
     189  OPTION(LINK_TCL_DYNAMIC    "Link TCL dynamically on Windows" TRUE)
     190  OPTION(LINK_ZLIB_DYNAMIC   "Link ZLib dynamically on Windows" TRUE)
     191  OPTION(LINK_LUA5.1_DYNAMIC "Link Lua dynamically on Windows" TRUE)
    191192
    192193  IF(DEPENDENCY_PACKAGE_ENABLE)
     
    194195      LINK_BOOST_DYNAMIC LINK_CEGUI_DYNAMIC #LINK_ENET_DYNAMIC
    195196      LINK_OGRE_DYNAMIC  LINK_TCL_DYNAMIC   LINK_ZLIB_DYNAMIC
    196       LINK_LUA_DYNAMIC
     197      LINK_LUA5.1_DYNAMIC
    197198    )
    198199  ENDIF()
Note: See TracChangeset for help on using the changeset viewer.