Changeset 5664 for code/branches/resource2/cmake/InstallConfig.cmake
- Timestamp:
- Aug 20, 2009, 11:49:37 PM (15 years ago)
- File:
-
- 1 moved
Legend:
- Unmodified
- Added
- Removed
-
code/branches/resource2/cmake/InstallConfig.cmake
r5662 r5664 21 21 # Reto Grieder 22 22 # Description: 23 # Configures the compilers and sets build options. 24 # This also includes handling the OGRE plugins and the data directory. 23 # Configures the installation (paths, rpaths, options) 25 24 # 26 27 ################# Misc Settings #################28 29 # Standard path suffixes, might not hold everywhere though30 SET(DEFAULT_RUNTIME_PATH bin)31 SET(DEFAULT_LIBRARY_PATH lib)32 SET(DEFAULT_ARCHIVE_PATH lib/static)33 SET(DEFAULT_DOC_PATH doc)34 SET(DEFAULT_DATA_PATH data)35 SET(DEFAULT_CONFIG_PATH config)36 SET(DEFAULT_LOG_PATH log)37 38 # Set output directories39 SET(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/${DEFAULT_RUNTIME_PATH})40 SET(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/${DEFAULT_LIBRARY_PATH})41 SET(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/${DEFAULT_ARCHIVE_PATH})42 SET(CMAKE_DOC_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/${DEFAULT_DOC_PATH})43 # Data directories are only inputs44 SET(CMAKE_CONFIG_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/${DEFAULT_CONFIG_PATH})45 SET(CMAKE_LOG_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/${DEFAULT_LOG_PATH})46 47 # Take care of some CMake 2.6.0 leftovers48 MARK_AS_ADVANCED(EXECUTABLE_OUTPUT_PATH LIBRARY_OUTPUT_PATH)49 50 # Sets where to find the external libraries like OgreMain.dll at runtime51 # On Unix you should not have to change this at all.52 IF(NOT RUNTIME_LIBRARY_DIRECTORY)53 SET(RUNTIME_LIBRARY_DIRECTORY ${CMAKE_RUNTIME_OUTPUT_DIRECTORY})54 ENDIF()55 56 # Set Debug build to default when not having multi-config generator like msvc57 IF(NOT CMAKE_CONFIGURATION_TYPES)58 IF(NOT CMAKE_BUILD_TYPE)59 SET(CMAKE_BUILD_TYPE Debug CACHE STRING60 "Build types are: Debug, Release, MinSizeRel, RelWithDebInfo" FORCE)61 ENDIF()62 MARK_AS_ADVANCED(CLEAR CMAKE_BUILD_TYPE)63 64 MESSAGE(STATUS "*** Build type is ${CMAKE_BUILD_TYPE} ***")65 ELSE()66 IF(CMAKE_BUILD_TYPE)67 SET(CMAKE_BUILD_TYPE CACHE STRING FORCE)68 ENDIF()69 MARK_AS_ADVANCED(CMAKE_BUILD_TYPE)70 ENDIF()71 72 73 ################# OGRE Plugins ##################74 75 # More plugins: Plugin_BSPSceneManager, Plugin_OctreeSceneManager76 SET(OGRE_PLUGINS_INT Plugin_ParticleFX)77 IF(WIN32)78 # CG program manager is probably DirectX related (not available under unix)79 LIST(APPEND OGRE_PLUGINS_INT Plugin_CgProgramManager)80 ENDIF(WIN32)81 SET(OGRE_PLUGINS ${OGRE_PLUGINS_INT} CACHE STRING82 "Specify which OGRE plugins to load. Existance check is performed.")83 84 # Check the plugins and determine the plugin folder85 # You can give a hint by setting the environment variable ENV{OGRE_PLUGIN_DIR}86 INCLUDE(CheckOGREPlugins)87 CHECK_OGRE_PLUGINS(${OGRE_PLUGINS})88 89 90 ################ Compiler Config ################91 92 OPTION(EXTRA_COMPILER_WARNINGS "Enable some extra warnings (heavily pollutes the output)" FALSE)93 94 INCLUDE(FlagUtilities)95 96 # Configure the compiler specific build options97 IF(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_COMPILER_IS_GNUC)98 INCLUDE(BuildConfigGCC)99 ELSEIF(MSVC)100 INCLUDE(BuildConfigMSVC)101 ELSE()102 MESSAGE(STATUS "Warning: Your compiler is not officially supported.")103 ENDIF()104 105 SET(USER_SCRIPT_BUILD_CONFIG "" CACHE FILEPATH106 "Specify a CMake script if you wish to write your own build config.107 See BuildConfigGCC.cmake or BuildConfigMSVC.cmake for examples.")108 IF(USER_SCRIPT_BUILD_CONFIG)109 IF(EXISTS ${CMAKE_MODULE_PATH}/${USER_SCRIPT_BUILD_CONFIG}.cmake)110 INCLUDE(${USER_SCRIPT_BUILD_CONFIG})111 ELSEIF(EXISTS ${USER_SCRIPT_BUILD_CONFIG})112 INCLUDE(${USER_SCRIPT_BUILD_CONFIG})113 ELSEIF(EXISTS ${CMAKE_MODULE_PATH}/${USER_SCRIPT_BUILD_CONFIG})114 INCLUDE(${CMAKE_MODULE_PATH}/${USER_SCRIPT_BUILD_CONFIG})115 ENDIF()116 ENDIF(USER_SCRIPT_BUILD_CONFIG)117 118 119 ############# Installation Settings #############120 25 121 26 SET(_info_text "Puts all installed files in subfolders of the install prefix path. That root folder can then be moved, copied and renamed as you wish. The executable will not write to folders like ~/.orxonox or \"Applictation Data\"") … … 150 55 ENDIF() 151 56 152 153 57 ################## Unix rpath ################### 154 58 155 # use, i.e. don't skip the full RPATH for the build tree 156 SET(CMAKE_SKIP_BUILD_RPATH FALSE) 157 158 # when building, don't use the install RPATH already 59 # When building, don't use the install RPATH already 159 60 # (but later on when installing) 160 61 SET(CMAKE_BUILD_WITH_INSTALL_RPATH FALSE) 161 62 162 # the RPATH to be used when installing63 # The RPATH to be used when installing 163 64 IF(INSTALL_COPYABLE) 164 65 SET(CMAKE_INSTALL_RPATH ${DEFAULT_LIBRARY_PATH}) … … 167 68 ENDIF() 168 69 169 # add the automatically determined parts of the RPATH70 # Add the automatically determined parts of the RPATH 170 71 # which point to directories outside the build tree to the install RPATH 171 72 SET(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE) 172 173 174 ################ Various options ################175 176 # Enable expensive optimisations: Use this for a binary release build177 OPTION(ORXONOX_RELEASE "Enable when building restributable releases" FALSE)178 179 # Use WinMain() or main()?180 IF(WIN32)181 OPTION(ORXONOX_USE_WINMAIN "Use WinMain (doesn't show console) or main" FALSE)182 ENDIF()183 184 # Global switch to disable Precompiled Header Files185 IF(PCH_COMPILER_SUPPORT)186 OPTION(PCH_ENABLE "Global PCH switch" TRUE)187 ENDIF()188 189 190 ############ Static/Dynamic linking #############191 192 # Default linking is SHARED193 SET(ORXONOX_DEFAULT_LINK SHARED)194 195 # Disable Boost auto linking completely196 ADD_COMPILER_FLAGS("-DBOOST_ALL_NO_LIB")197 198 # If no defines are specified, these libs get linked statically199 ADD_COMPILER_FLAGS("-DBOOST_ALL_DYN_LINK" WIN32 LINK_BOOST_DYNAMIC)200 ADD_COMPILER_FLAGS("-DENET_DLL" WIN32 LINK_ENET_DYNAMIC)201 ADD_COMPILER_FLAGS("-DLUA_BUILD_AS_DLL" WIN32 LINK_LUA_DYNAMIC)202 ADD_COMPILER_FLAGS("-DZLIB_DLL" WIN32 LINK_ZLIB_DYNAMIC)203 204 # If no defines are specified, these libs get linked dynamically205 # You can change that optionally in the Cache.206 ADD_COMPILER_FLAGS("-DCEGUI_STATIC" WIN32 NOT LINK_CEGUI_DYNAMIC)207 ADD_COMPILER_FLAGS("-DOGRE_STATIC_LIB" WIN32 NOT LINK_OGRE_DYNAMIC)208 ADD_COMPILER_FLAGS("-DSTATIC_BUILD" WIN32 NOT LINK_TCL_DYNAMIC)
Note: See TracChangeset
for help on using the changeset viewer.