Changeset 5641 for code/branches/resource2/src
- Timestamp:
- Aug 13, 2009, 9:12:24 PM (15 years ago)
- Location:
- code/branches/resource2/src
- Files:
-
- 7 edited
Legend:
- Unmodified
- Added
- Removed
-
code/branches/resource2/src/SpecialConfig.h.in
r3370 r5641 70 70 71 71 // Handle default ConfigValues 72 namespace orxonox 72 namespace orxonox { namespace specialConfig 73 73 { 74 // DEFAULT RELATIVE PATHS (might not be used at all) 75 const char defaultRuntimePath[] = "@DEFAULT_RUNTIME_PATH@"; 76 const char defaultLibraryPath[] = "@DEFAULT_LIBRARY_PATH@"; 77 const char defaultArchivePath[] = "@DEFAULT_ARCHIVE_PATH@"; 78 const char defaultDocPath[] = "@DEFAULT_DOC_PATH@"; 79 const char defaultMediaPath[] = "@DEFAULT_MEDIA_PATH@"; 80 const char defaultConfigPath[] = "@DEFAULT_CONFIG_PATH@"; 81 const char defaultLogPath[] = "@DEFAULT_LOG_PATH@"; 82 74 83 // INSTALLATION PATHS 75 const char ORXONOX_RUNTIME_INSTALL_PATH[] = "@ORXONOX_RUNTIME_INSTALL_PATH@"; 76 const char ORXONOX_MEDIA_INSTALL_PATH[] = "@ORXONOX_MEDIA_INSTALL_PATH@"; 77 /* Config and Log path might be relative because they could be user and therefore runtime dependent */ 78 const char ORXONOX_CONFIG_INSTALL_PATH[] = "@ORXONOX_CONFIG_INSTALL_PATH@"; 79 const char ORXONOX_LOG_INSTALL_PATH[] = "@ORXONOX_LOG_INSTALL_PATH@"; 84 const char runtimeInstallDirectory[] = "@RUNTIME_INSTALL_DIRECTORY@"; 85 const char mediaInstallDirectory[] = "@MEDIA_INSTALL_DIRECTORY@"; 86 const char configInstallDirectory[] = "@CONFIG_INSTALL_DIRECTORY@"; 87 const char logInstallDirectory[] = "@LOG_INSTALL_DIRECTORY@"; 80 88 81 89 // DEVELOPMENT RUN PATHS 82 const char ORXONOX_MEDIA_DEV_PATH[] = "@CMAKE_MEDIA_OUTPUT_DIRECTORY@"; 90 const char mediaDevDirectory[] = "@MEDIA_DIRECTORY@"; 91 const char externalMediaDevDirectory[] = "@EXTERNAL_MEDIA_DIRECTORY@"; 83 92 #ifdef CMAKE_CONFIGURATION_TYPES 84 const char ORXONOX_CONFIG_DEV_PATH[]= "@CMAKE_CONFIG_OUTPUT_DIRECTORY@/" BOOST_PP_STRINGIZE(CMAKE_BUILD_TYPE);85 const char ORXONOX_LOG_DEV_PATH[]= "@CMAKE_LOG_OUTPUT_DIRECTORY@/" BOOST_PP_STRINGIZE(CMAKE_BUILD_TYPE);93 const char configDevDirectory[] = "@CMAKE_CONFIG_OUTPUT_DIRECTORY@/" BOOST_PP_STRINGIZE(CMAKE_BUILD_TYPE); 94 const char logDevDirectory[] = "@CMAKE_LOG_OUTPUT_DIRECTORY@/" BOOST_PP_STRINGIZE(CMAKE_BUILD_TYPE); 86 95 #else 87 const char ORXONOX_CONFIG_DEV_PATH[]= "@CMAKE_CONFIG_OUTPUT_DIRECTORY@";88 const char ORXONOX_LOG_DEV_PATH[]= "@CMAKE_LOG_OUTPUT_DIRECTORY@";96 const char configDevDirectory[] = "@CMAKE_CONFIG_OUTPUT_DIRECTORY@"; 97 const char logDevDirectory[] = "@CMAKE_LOG_OUTPUT_DIRECTORY@"; 89 98 #endif 99 90 100 #ifdef DEPENDENCY_PACKAGE_ENABLE 91 const char ORXONOX_DEP_LIB_PATH[]= "@DEP_LIBRARY_DIR@";101 const char dependencyLibraryDirectory[] = "@DEP_LIBRARY_DIR@"; 92 102 #endif 93 103 94 104 // OGRE PLUGINS 95 105 #ifdef NDEBUG 96 const char ORXONOX_OGRE_PLUGINS[] = "@OGRE_PLUGINS_RELEASE@";106 const char ogrePlugins[] = "@OGRE_PLUGINS_RELEASE@"; 97 107 # ifdef DEPENDENCY_PACKAGE_ENABLE 98 const char ORXONOX_OGRE_PLUGINS_FOLDER[] = ".";108 const char ogrePluginsDirectory[] = "."; 99 109 # else 100 const char ORXONOX_OGRE_PLUGINS_FOLDER[] = "@OGRE_PLUGINS_FOLDER_RELEASE@";110 const char ogrePluginsDirectory[] = "@OGRE_PLUGINS_FOLDER_RELEASE@"; 101 111 # endif 102 112 #else 103 const char ORXONOX_OGRE_PLUGINS[] = "@OGRE_PLUGINS_DEBUG@";113 const char ogrePlugins[] = "@OGRE_PLUGINS_DEBUG@"; 104 114 # ifdef DEPENDENCY_PACKAGE_ENABLE 105 const char ORXONOX_OGRE_PLUGINS_FOLDER[] = ".";115 const char ogrePluginsDirectory[] = "."; 106 116 # else 107 const char ORXONOX_OGRE_PLUGINS_FOLDER[] = "@OGRE_PLUGINS_FOLDER_DEBUG@";117 const char ogrePluginsDirectory[] = "@OGRE_PLUGINS_FOLDER_DEBUG@"; 108 118 # endif 109 119 #endif 110 } 120 } } 111 121 112 122 /** -
code/branches/resource2/src/core/Core.cc
r5614 r5641 85 85 Core* Core::singletonPtr_s = 0; 86 86 87 SetCommandLineArgument( mediaPath, "").information("Path to the media/data files");87 SetCommandLineArgument(externalMediaPath, "").information("Path to the external media files"); 88 88 SetCommandLineOnlyArgument(writingPathSuffix, "").information("Additional subfolder for config and log files"); 89 89 SetCommandLineArgument(settingsFile, "orxonox.ini").information("THE configuration file"); … … 110 110 this->setConfigValues(); 111 111 112 // Possible media path override by the command line 113 if (!CommandLine::getArgument("mediaPath")->hasDefaultValue()) 114 tsetMediaPath(CommandLine::getValue("mediaPath")); 112 // External media directory only exists for dev runs 113 if (Core::isDevelopmentRun()) 114 { 115 // Possible media path override by the command line 116 if (!CommandLine::getArgument("externalMediaPath")->hasDefaultValue()) 117 tsetExternalMediaPath(CommandLine::getValue("externalMediaPath")); 118 } 115 119 } 116 120 … … 145 149 .description("If true, all random actions are different each time you start the game") 146 150 .callback(this, &CoreConfiguration::initializeRandomNumberGenerator); 147 148 // Only show this config value for development builds149 if (Core::isDevelopmentRun())150 {151 SetConfigValue(mediaPathString_, mediaPath_.string())152 .description("Relative path to the game data.")153 .callback(this, &CoreConfiguration::mediaPathChanged);154 }155 151 } 156 152 … … 183 179 184 180 /** 185 @brief186 Callback function if the media path has changed.187 */188 void mediaPathChanged()189 {190 mediaPath_ = boost::filesystem::path(this->mediaPathString_);191 }192 193 /**194 181 @brief Sets the language in the config-file back to the default. 195 182 */ … … 205 192 The new media path 206 193 */ 207 void tsetMediaPath(const std::string& path) 208 { 209 if (Core::isDevelopmentRun()) 210 { 211 ModifyConfigValue(mediaPathString_, tset, path); 212 } 213 else 214 { 215 // Manual 'config' value without the file entry 216 mediaPathString_ = path; 217 this->mediaPathChanged(); 218 } 194 void tsetExternalMediaPath(const std::string& path) 195 { 196 mediaPath_ = boost::filesystem::path(path); 219 197 } 220 198 … … 236 214 std::string language_; //!< The language 237 215 bool bInitializeRandomNumberGenerator_; //!< If true, srand(time(0)) is called 238 std::string mediaPathString_; //!< Path to the data/media file folder as string239 216 240 217 //! Path to the parent directory of the ones above if program was installed with relativ pahts … … 242 219 boost::filesystem::path executablePath_; //!< Path to the executable 243 220 boost::filesystem::path mediaPath_; //!< Path to the media file folder 221 boost::filesystem::path externalMediaPath_; //!< Path to the media file folder 244 222 boost::filesystem::path configPath_; //!< Path to the config file folder 245 223 boost::filesystem::path logPath_; //!< Path to the log file folder … … 423 401 } 424 402 425 /*static*/ void Core::tset MediaPath(const std::string& path)426 { 427 getInstance().configuration_->tset MediaPath(path);403 /*static*/ void Core::tsetExternalMediaPath(const std::string& path) 404 { 405 getInstance().configuration_->tsetExternalMediaPath(path); 428 406 } 429 407 … … 435 413 { 436 414 return getInstance().configuration_->mediaPath_.string() + '/'; 415 } 416 417 /*static*/ const boost::filesystem::path& Core::getExternalMediaPath() 418 { 419 return getInstance().configuration_->externalMediaPath_; 420 } 421 /*static*/ std::string Core::getExternalMediaPathString() 422 { 423 return getInstance().configuration_->externalMediaPath_.string() + '/'; 437 424 } 438 425 … … 574 561 COUT(1) << "Running from the build tree." << std::endl; 575 562 Core::bDevRun_ = true; 576 configuration_->mediaPath_ = ORXONOX_MEDIA_DEV_PATH; 577 configuration_->configPath_ = ORXONOX_CONFIG_DEV_PATH; 578 configuration_->logPath_ = ORXONOX_LOG_DEV_PATH; 563 configuration_->mediaPath_ = specialConfig::mediaDevDirectory; 564 configuration_->externalMediaPath_ = specialConfig::externalMediaDevDirectory; 565 configuration_->configPath_ = specialConfig::configDevDirectory; 566 configuration_->logPath_ = specialConfig::logDevDirectory; 579 567 } 580 568 else … … 582 570 #ifdef INSTALL_COPYABLE // --> relative paths 583 571 // Also set the root path 584 boost::filesystem::path relativeExecutablePath( ORXONOX_RUNTIME_INSTALL_PATH);572 boost::filesystem::path relativeExecutablePath(specialConfig::defaultRuntimePath); 585 573 configuration_->rootPath_ = configuration_->executablePath_; 586 574 while (!boost::filesystem::equivalent(configuration_->rootPath_ / relativeExecutablePath, configuration_->executablePath_) … … 591 579 592 580 // Using paths relative to the install prefix, complete them 593 configuration_->mediaPath_ = configuration_->rootPath_ / ORXONOX_MEDIA_INSTALL_PATH;594 configuration_->configPath_ = configuration_->rootPath_ / ORXONOX_CONFIG_INSTALL_PATH;595 configuration_->logPath_ = configuration_->rootPath_ / ORXONOX_LOG_INSTALL_PATH;581 configuration_->mediaPath_ = configuration_->rootPath_ / specialConfig::defaultMediaPath; 582 configuration_->configPath_ = configuration_->rootPath_ / specialConfig::defaultConfigPath; 583 configuration_->logPath_ = configuration_->rootPath_ / specialConfig::defaultLogPath; 596 584 #else 597 585 // There is no root path, so don't set it at all 598 586 599 configuration_->mediaPath_ = ORXONOX_MEDIA_INSTALL_PATH;587 configuration_->mediaPath_ = specialConfig::mediaInstallDirectory; 600 588 601 589 // Get user directory … … 610 598 userDataPath /= ".orxonox"; 611 599 612 configuration_->configPath_ = userDataPath / ORXONOX_CONFIG_INSTALL_PATH;613 configuration_->logPath_ = userDataPath / ORXONOX_LOG_INSTALL_PATH;600 configuration_->configPath_ = userDataPath / specialConfig::defaultConfigPath; 601 configuration_->logPath_ = userDataPath / specialConfig::defaultLogPath; 614 602 #endif 615 603 } -
code/branches/resource2/src/core/Core.h
r3370 r5641 91 91 static void resetLanguage(); 92 92 93 static void tset MediaPath(const std::string& path);94 //! Returns the path to the configfiles as boost::filesystem::path93 static void tsetExternalMediaPath(const std::string& path); 94 //! Returns the path to the data files as boost::filesystem::path 95 95 static const boost::filesystem::path& getMediaPath(); 96 //! Returns the path to the external data files as boost::filesystem::path 97 static const boost::filesystem::path& getExternalMediaPath(); 96 98 //! Returns the path to the config files as boost::filesystem::path 97 99 static const boost::filesystem::path& getConfigPath(); 98 100 //! Returns the path to the log files as boost::filesystem::path 99 101 static const boost::filesystem::path& getLogPath(); 102 //! Returns the path to the data files as std::string 100 103 //! Returns the path to the root folder as boost::filesystem::path 101 104 static const boost::filesystem::path& getRootPath(); 102 //! Returns the path to the data files as std::string103 105 static std::string getMediaPathString(); 106 //! Returns the path to the external data files as std::string 107 static std::string getExternalMediaPathString(); 104 108 //! Returns the path to the config files as std::string 105 109 static std::string getConfigPathString(); -
code/branches/resource2/src/core/GraphicsManager.cc
r5614 r5641 115 115 SetConfigValue(ogreConfigFile_, "ogre.cfg") 116 116 .description("Location of the Ogre config file"); 117 SetConfigValue(ogrePlugins Folder_, ORXONOX_OGRE_PLUGINS_FOLDER)117 SetConfigValue(ogrePluginsDirectory_, specialConfig::ogrePluginsDirectory) 118 118 .description("Folder where the Ogre plugins are located."); 119 SetConfigValue(ogrePlugins_, ORXONOX_OGRE_PLUGINS)119 SetConfigValue(ogrePlugins_, specialConfig::ogrePlugins) 120 120 .description("Comma separated list of all plugins to load."); 121 121 SetConfigValue(ogreLogFile_, "ogre.log") … … 198 198 { 199 199 // just to make sure the next statement doesn't segfault 200 if (ogrePlugins Folder_ == "")201 ogrePlugins Folder_ = ".";202 203 boost::filesystem::path folder(ogrePlugins Folder_);200 if (ogrePluginsDirectory_ == "") 201 ogrePluginsDirectory_ = "."; 202 203 boost::filesystem::path folder(ogrePluginsDirectory_); 204 204 // Do some SubString magic to get the comma separated list of plugins 205 205 SubString plugins(ogrePlugins_, ",", " ", false, '\\', false, '"', false, '(', ')', false, '\0'); -
code/branches/resource2/src/core/GraphicsManager.h
r5614 r5641 98 98 // config values 99 99 std::string ogreConfigFile_; //!< ogre config file name 100 std::string ogrePlugins Folder_; //!< Folderwhere the Ogre plugins are located100 std::string ogrePluginsDirectory_; //!< Directory where the Ogre plugins are located 101 101 std::string ogrePlugins_; //!< Comma separated list of all plugins to load 102 102 std::string ogreLogFile_; //!< log file name for Ogre log messages -
code/branches/resource2/src/core/TclBind.cc
r3370 r5641 127 127 #ifdef DEPENDENCY_PACKAGE_ENABLE 128 128 if (Core::isDevelopmentRun()) 129 return (std::string( ORXONOX_DEP_LIB_PATH) + "/tcl");129 return (std::string(specialConfig::dependencyLibraryDirectory) + "/tcl"); 130 130 else 131 131 return (Core::getRootPathString() + "lib/tcl"); -
code/branches/resource2/src/orxonox/orxonox.vcproj.user.in
r3196 r5641 11 11 <DebugSettings 12 12 WorkingDirectory="${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/$(OutDir)" 13 Environment="Path=${ ORXONOX_RUNTIME_LIBRARY_DIRECTORY}"13 Environment="Path=${RUNTIME_LIBRARY_DIRECTORY}" 14 14 EnvironmentMerge="true" 15 15 /> … … 20 20 <DebugSettings 21 21 WorkingDirectory="${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/$(OutDir)" 22 Environment="Path=${ ORXONOX_RUNTIME_LIBRARY_DIRECTORY}"22 Environment="Path=${RUNTIME_LIBRARY_DIRECTORY}" 23 23 EnvironmentMerge="true" 24 24 /> … … 29 29 <DebugSettings 30 30 WorkingDirectory="${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/$(OutDir)" 31 Environment="Path=${ ORXONOX_RUNTIME_LIBRARY_DIRECTORY}"31 Environment="Path=${RUNTIME_LIBRARY_DIRECTORY}" 32 32 EnvironmentMerge="true" 33 33 /> … … 38 38 <DebugSettings 39 39 WorkingDirectory="${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/$(OutDir)" 40 Environment="Path=${ ORXONOX_RUNTIME_LIBRARY_DIRECTORY}"40 Environment="Path=${RUNTIME_LIBRARY_DIRECTORY}" 41 41 EnvironmentMerge="true" 42 42 />
Note: See TracChangeset
for help on using the changeset viewer.