Changeset 8351 for code/trunk/cmake/LibraryConfig.cmake
- Timestamp:
- Apr 28, 2011, 7:15:14 AM (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
code/trunk/cmake/LibraryConfig.cmake
r8264 r8351 40 40 # On Windows using a package causes way less problems 41 41 SET(_option_msg "Set this to true to use precompiled dependecy archives") 42 IF(WIN32 )42 IF(WIN32 OR APPLE) 43 43 OPTION(DEPENDENCY_PACKAGE_ENABLE "${_option_msg}" ON) 44 ELSE( WIN32)44 ELSE() 45 45 OPTION(DEPENDENCY_PACKAGE_ENABLE "${_option_msg}" FALSE) 46 ENDIF( WIN32)46 ENDIF() 47 47 48 48 # Scripts for specific library and CMake config 49 49 INCLUDE(LibraryConfigTardis) 50 INCLUDE(LibraryConfigApple)51 50 52 51 IF(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 53 72 GET_FILENAME_COMPONENT(_dep_dir_1 ${CMAKE_SOURCE_DIR}/../dependencies ABSOLUTE) 54 73 GET_FILENAME_COMPONENT(_dep_dir_2 ${CMAKE_SOURCE_DIR}/../lib_dist ABSOLUTE) … … 59 78 ELSEIF(MSVC90) 60 79 SET(_compiler_prefix msvc9) 80 ELSEIF(MSVC10) 81 SET(_compiler_prefix msvc10) 61 82 ENDIF() 62 83 FIND_PATH(DEPENDENCY_PACKAGE_DIR … … 73 94 "Disable LIBRARY_USE_PACKAGE if you have none intalled.") 74 95 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) 78 103 ENDIF() 79 104 ENDIF(DEPENDENCY_PACKAGE_ENABLE) … … 93 118 # Performs the search and sets the variables # 94 119 95 FIND_PACKAGE(OGRE 1.4 REQUIRED) 96 #FIND_PACKAGE(ENet 1.1 REQUIRED) 120 #FIND_PACKAGE(ENet 1.2 REQUIRED) 121 FIND_PACKAGE(CEGUI 0.6 REQUIRED) 122 FIND_PACKAGE(Lua5.1 REQUIRED) 97 123 FIND_PACKAGE(Ogg REQUIRED) 98 124 FIND_PACKAGE(Vorbis REQUIRED) 99 125 FIND_PACKAGE(ALUT REQUIRED) 100 126 FIND_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 106 128 IF(WIN32) 107 129 FIND_PACKAGE(DbgHelp) … … 109 131 ENDIF() 110 132 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++ binding114 # generator ourselves. And we also have to use our bindings in the same115 # lua state is CEGUILua's. Unfortunately this implies that both lua runtime116 # version are equal or else you get segmentation faults.117 # In order to match the Lua versions we decided to ship CEGUILua in our118 # repository, mainly because there is no way to determine which version of119 # Lua CEGUILua was linked against (you'd have to specify yourself) and secondly120 # because we can then choose the Lua version. Future plans might involve only121 # accepting Lua 5.1.122 123 # Insert all internally supported CEGUILua versions here124 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)140 133 141 134 ##### OpenAL ##### … … 161 154 162 155 ##### Boost ##### 163 # Expand the next statement if newer boost versions than 1.36.1are released164 SET(Boost_ADDITIONAL_VERSIONS 1. 37 1.37.0 1.38 1.38.0 1.39 1.39.0 1.40 1.40.0165 1.4 1 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. 35REQUIRED thread filesystem system date_time)156 # Expand the next statement if newer boost versions are released 157 SET(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) 159 IF(NOT TARDIS) 160 FIND_PACKAGE(Boost 1.40 REQUIRED thread filesystem system date_time) 168 161 ENDIF() 169 162 # No auto linking, so this option is useless anyway 170 163 MARK_AS_ADVANCED(Boost_LIB_DIAGNOSTIC_DEFINITIONS) 164 165 ##### OGRE ##### 166 FIND_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 169 IF(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}) 173 ELSEIF(OGRE_NEEDS_BOOST) 174 # Always link against boost too because of threading 175 SET(OGRE_LIBRARY ${OGRE_LIBRARY} ${Boost_THREAD_LIBRARY}) 176 ENDIF() 171 177 172 178 … … 177 183 # Note: Default option in the libraries vary, but our default option is dynamic 178 184 IF(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) 191 192 192 193 IF(DEPENDENCY_PACKAGE_ENABLE) … … 194 195 LINK_BOOST_DYNAMIC LINK_CEGUI_DYNAMIC #LINK_ENET_DYNAMIC 195 196 LINK_OGRE_DYNAMIC LINK_TCL_DYNAMIC LINK_ZLIB_DYNAMIC 196 LINK_LUA _DYNAMIC197 LINK_LUA5.1_DYNAMIC 197 198 ) 198 199 ENDIF()
Note: See TracChangeset
for help on using the changeset viewer.