Changeset 5666 for code/branches/libraries
- Timestamp:
- Aug 21, 2009, 2:17:09 PM (15 years ago)
- Location:
- code/branches/libraries
- Files:
-
- 8 edited
Legend:
- Unmodified
- Added
- Removed
-
code/branches/libraries/cmake/BuildConfig.cmake
r5626 r5666 31 31 SET(DEFAULT_LIBRARY_PATH lib) 32 32 SET(DEFAULT_ARCHIVE_PATH lib/static) 33 SET(DEFAULT_ PLUGIN_PATH lib/plugins)33 SET(DEFAULT_MODULE_PATH lib/modules) 34 34 SET(DEFAULT_DOC_PATH doc) 35 35 SET(DEFAULT_MEDIA_PATH media) … … 41 41 SET(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/${DEFAULT_LIBRARY_PATH}) 42 42 SET(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/${DEFAULT_ARCHIVE_PATH}) 43 SET(CMAKE_ PLUGIN_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/${DEFAULT_PLUGIN_PATH})43 SET(CMAKE_MODULE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/${DEFAULT_MODULE_PATH}) 44 44 # Do not set doc and media, rather check in the two subdirectories 45 45 # whether they concur with the DEFAULT_..._PATH … … 72 72 ENDIF() 73 73 74 # Set the extension of the dynamic modules 75 SET(ORXONOX_MODULE_EXTENSION ".module") 74 76 75 77 ################# OGRE Plugins ################## … … 134 136 SET(ORXONOX_LIBRARY_INSTALL_PATH ${DEFAULT_LIBRARY_PATH}) 135 137 SET(ORXONOX_ARCHIVE_INSTALL_PATH ${DEFAULT_ARCHIVE_PATH}) 136 SET(ORXONOX_ PLUGIN_INSTALL_PATH ${DEFAULT_PLUGIN_PATH})138 SET(ORXONOX_MODULE_INSTALL_PATH ${DEFAULT_MODULE_PATH}) 137 139 SET(ORXONOX_DOC_INSTALL_PATH ${DEFAULT_DOC_PATH}) 138 140 SET(ORXONOX_MEDIA_INSTALL_PATH ${DEFAULT_MEDIA_PATH}) … … 145 147 SET(ORXONOX_LIBRARY_INSTALL_PATH ${CMAKE_INSTALL_PREFIX}/lib/orxonox) 146 148 SET(ORXONOX_ARCHIVE_INSTALL_PATH ${CMAKE_INSTALL_PREFIX}/lib/orxonox/static) 147 SET(ORXONOX_ PLUGIN_INSTALL_PATH ${CMAKE_INSTALL_PREFIX}/lib/orxonox/plugins)149 SET(ORXONOX_MODULE_INSTALL_PATH ${CMAKE_INSTALL_PREFIX}/lib/orxonox/modules) 148 150 SET(ORXONOX_DOC_INSTALL_PATH ${CMAKE_INSTALL_PREFIX}/share/doc/orxonox) 149 151 SET(ORXONOX_MEDIA_INSTALL_PATH ${CMAKE_INSTALL_PREFIX}/share/orxonox) … … 156 158 SET(ORXONOX_LIBRARY_INSTALL_PATH ${CMAKE_INSTALL_PREFIX}/${DEFAULT_LIBRARY_PATH}) 157 159 SET(ORXONOX_ARCHIVE_INSTALL_PATH ${CMAKE_INSTALL_PREFIX}/${DEFAULT_ARCHIVE_PATH}) 158 SET(ORXONOX_ PLUGIN_INSTALL_PATH ${CMAKE_INSTALL_PREFIX}/${DEFAULT_PLUGIN_PATH})160 SET(ORXONOX_MODULE_INSTALL_PATH ${CMAKE_INSTALL_PREFIX}/${DEFAULT_MODULE_PATH}) 159 161 SET(ORXONOX_DOC_INSTALL_PATH ${CMAKE_INSTALL_PREFIX}/${DEFAULT_DOC_PATH}) 160 162 SET(ORXONOX_MEDIA_INSTALL_PATH ${CMAKE_INSTALL_PREFIX}/${DEFAULT_MEDIA_PATH}) -
code/branches/libraries/cmake/TargetUtilities.cmake
r5649 r5666 35 35 # NO_SOURCE_GROUPS: Don't create msvc source groups 36 36 # STATIC/SHARED: Inherited from ADD_LIBRARY 37 # PLUGIN: For dynamic pluginlibraries37 # MODULE: For dynamic module libraries 38 38 # WIN32: Inherited from ADD_EXECUTABLE 39 39 # PCH_NO_DEFAULT: Do not make precompiled header files default if … … 81 81 SET(_switches FIND_HEADER_FILES EXCLUDE_FROM_ALL ORXONOX_EXTERNAL 82 82 NO_DLL_INTERFACE NO_SOURCE_GROUPS ${_additional_switches} 83 PCH_NO_DEFAULT NO_INSTALL PLUGIN)83 PCH_NO_DEFAULT NO_INSTALL MODULE) 84 84 SET(_list_names LINK_LIBRARIES VERSION SOURCE_FILES DEFINE_SYMBOL 85 85 TOLUA_FILES PCH_FILE PCH_EXCLUDE OUTPUT_NAME) … … 148 148 ENDIF() 149 149 150 # PLUGIN A, always create shared libraries 151 IF(_arg_PLUGIN) 150 # MODULE A 151 # Always create shared libraries 152 IF(_arg_MODULE) 152 153 SET(_arg_SHARED SHARED) 153 154 SET(_arg_STATIC) … … 163 164 ENDIF() 164 165 165 # PLUGINB166 IF (_arg_ PLUGIN)166 # MODULE B 167 IF (_arg_MODULE) 167 168 SET_TARGET_PROPERTIES(${_target_name} PROPERTIES 168 RUNTIME_OUTPUT_DIRECTORY ${CMAKE_ PLUGIN_OUTPUT_DIRECTORY} # Windows169 LIBRARY_OUTPUT_DIRECTORY ${CMAKE_ PLUGIN_OUTPUT_DIRECTORY} # Unix169 RUNTIME_OUTPUT_DIRECTORY ${CMAKE_MODULE_OUTPUT_DIRECTORY} # Windows 170 LIBRARY_OUTPUT_DIRECTORY ${CMAKE_MODULE_OUTPUT_DIRECTORY} # Unix 170 171 ) 171 ADD_ PLUGIN(${_target_name})172 ADD_MODULE(${_target_name}) 172 173 ENDIF() 173 174 … … 200 201 201 202 IF(NOT _arg_STATIC AND NOT _arg_NO_INSTALL) 202 IF(_arg_ PLUGIN)203 IF(_arg_MODULE) 203 204 INSTALL(TARGETS ${_target_name} 204 RUNTIME DESTINATION ${ORXONOX_ PLUGIN_INSTALL_PATH}205 LIBRARY DESTINATION ${ORXONOX_ PLUGIN_INSTALL_PATH}205 RUNTIME DESTINATION ${ORXONOX_MODULE_INSTALL_PATH} 206 LIBRARY DESTINATION ${ORXONOX_MODULE_INSTALL_PATH} 206 207 ) 207 208 ELSE() … … 216 217 217 218 218 # Creates a helper file with name <name_of_the_library>. plugin219 # This helps finding dynamically loadable plugins at runtime220 221 FUNCTION(ADD_ PLUGIN_target)219 # Creates a helper file with name <name_of_the_library>.module 220 # This helps finding dynamically loadable modules at runtime 221 222 FUNCTION(ADD_MODULE _target) 222 223 # We use the properties to get the name because the librarys name may differ from 223 224 # the target name (for example orxonox <-> liborxonox) … … 228 229 IF(CMAKE_CONFIGURATION_TYPES) 229 230 FOREACH(_config ${CMAKE_CONFIGURATION_TYPES}) 230 SET(_ plugin_filename ${CMAKE_PLUGIN_OUTPUT_DIRECTORY}/${_config}/${_target_name}.plugin)231 232 FILE(WRITE ${_ plugin_filename})231 SET(_module_filename ${CMAKE_MODULE_OUTPUT_DIRECTORY}/${_config}/${_target_name}${ORXONOX_MODULE_EXTENSION}) 232 233 FILE(WRITE ${_module_filename}) 233 234 234 235 INSTALL( 235 FILES ${_ plugin_filename}236 DESTINATION ${ORXONOX_ PLUGIN_INSTALL_PATH}236 FILES ${_module_filename} 237 DESTINATION ${ORXONOX_MODULE_INSTALL_PATH} 237 238 CONFIGURATIONS ${_config} 238 239 ) 239 240 ENDFOREACH() 240 241 ELSE() 241 SET(_ plugin_filename ${CMAKE_PLUGIN_OUTPUT_DIRECTORY}/${_target_name}.plugin)242 243 FILE(WRITE ${_ plugin_filename})242 SET(_module_filename ${CMAKE_MODULE_OUTPUT_DIRECTORY}/${_target_name}${ORXONOX_MODULE_EXTENSION}) 243 244 FILE(WRITE ${_module_filename}) 244 245 245 246 INSTALL( 246 FILES ${_ plugin_filename}247 DESTINATION ${ORXONOX_ PLUGIN_INSTALL_PATH}247 FILES ${_module_filename} 248 DESTINATION ${ORXONOX_MODULE_INSTALL_PATH} 248 249 ) 249 250 ENDIF() 250 ENDFUNCTION(ADD_ PLUGIN)251 ENDFUNCTION(ADD_MODULE) -
code/branches/libraries/src/SpecialConfig.h.in
r5626 r5666 74 74 // INSTALLATION PATHS 75 75 const char ORXONOX_RUNTIME_INSTALL_PATH[] = "@ORXONOX_RUNTIME_INSTALL_PATH@"; 76 const char ORXONOX_ PLUGIN_INSTALL_PATH[] = "@ORXONOX_PLUGIN_INSTALL_PATH@";76 const char ORXONOX_MODULE_INSTALL_PATH[] = "@ORXONOX_MODULE_INSTALL_PATH@"; 77 77 const char ORXONOX_MEDIA_INSTALL_PATH[] = "@ORXONOX_MEDIA_INSTALL_PATH@"; 78 78 /* Config and Log path might be relative because they could be user and therefore runtime dependent */ … … 83 83 const char ORXONOX_MEDIA_DEV_PATH[] = "@CMAKE_MEDIA_OUTPUT_DIRECTORY@"; 84 84 #ifdef CMAKE_CONFIGURATION_TYPES 85 const char ORXONOX_ PLUGIN_DEV_PATH[] = "@CMAKE_PLUGIN_OUTPUT_DIRECTORY@/" BOOST_PP_STRINGIZE(CMAKE_BUILD_TYPE);85 const char ORXONOX_MODULE_DEV_PATH[] = "@CMAKE_MODULE_OUTPUT_DIRECTORY@/" BOOST_PP_STRINGIZE(CMAKE_BUILD_TYPE); 86 86 const char ORXONOX_CONFIG_DEV_PATH[] = "@CMAKE_CONFIG_OUTPUT_DIRECTORY@/" BOOST_PP_STRINGIZE(CMAKE_BUILD_TYPE); 87 87 const char ORXONOX_LOG_DEV_PATH[] = "@CMAKE_LOG_OUTPUT_DIRECTORY@/" BOOST_PP_STRINGIZE(CMAKE_BUILD_TYPE); 88 88 #else 89 const char ORXONOX_ PLUGIN_DEV_PATH[] = "@CMAKE_PLUGIN_OUTPUT_DIRECTORY@";89 const char ORXONOX_MODULE_DEV_PATH[] = "@CMAKE_MODULE_OUTPUT_DIRECTORY@"; 90 90 const char ORXONOX_CONFIG_DEV_PATH[] = "@CMAKE_CONFIG_OUTPUT_DIRECTORY@"; 91 91 const char ORXONOX_LOG_DEV_PATH[] = "@CMAKE_LOG_OUTPUT_DIRECTORY@"; … … 94 94 const char ORXONOX_DEP_LIB_PATH[] = "@DEP_LIBRARY_DIR@"; 95 95 #endif 96 97 // Module extension 98 const char ORXONOX_MODULE_EXTENSION[] = "@ORXONOX_MODULE_EXTENSION@"; 96 99 97 100 // OGRE PLUGINS -
code/branches/libraries/src/core/Core.cc
r5665 r5666 250 250 boost::filesystem::path rootPath_; 251 251 boost::filesystem::path executablePath_; //!< Path to the executable 252 boost::filesystem::path pluginPath_; //!< Path to the plugins252 boost::filesystem::path modulePath_; //!< Path to the modules 253 253 boost::filesystem::path mediaPath_; //!< Path to the media file folder 254 254 boost::filesystem::path configPath_; //!< Path to the config file folder … … 272 272 this->dynLibManager_.reset(new DynLibManager()); 273 273 274 // Load plugins274 // Load modules 275 275 try 276 276 { 277 277 // We search for helper files with the following extension 278 std::string pluginextension = ".plugin";279 size_t pluginextensionlength = pluginextension.size();278 std::string moduleextension = ORXONOX_MODULE_EXTENSION; 279 size_t moduleextensionlength = moduleextension.size(); 280 280 281 281 // Search in the directory of our executable 282 boost::filesystem::path searchpath = this->configuration_-> pluginPath_;283 284 // Add that path to the PATH variable in case a plugindepends on another one282 boost::filesystem::path searchpath = this->configuration_->modulePath_; 283 284 // Add that path to the PATH variable in case a module depends on another one 285 285 std::string pathVariable = getenv("PATH"); 286 putenv(const_cast<char*>(("PATH=" + pathVariable + ";" + configuration_-> pluginPath_.string()).c_str()));286 putenv(const_cast<char*>(("PATH=" + pathVariable + ";" + configuration_->modulePath_.string()).c_str())); 287 287 288 288 boost::filesystem::directory_iterator file(searchpath); … … 295 295 296 296 // Check if the file ends with the exension in question 297 if (filename.size() > pluginextensionlength)297 if (filename.size() > moduleextensionlength) 298 298 { 299 if (filename.substr(filename.size() - pluginextensionlength) == pluginextension)299 if (filename.substr(filename.size() - moduleextensionlength) == moduleextension) 300 300 { 301 301 // We've found a helper file - now load the library with the same name 302 std::string library = filename.substr(0, filename.size() - pluginextensionlength);302 std::string library = filename.substr(0, filename.size() - moduleextensionlength); 303 303 boost::filesystem::path librarypath = searchpath / library; 304 304 … … 309 309 catch (const std::exception& e) 310 310 { 311 COUT(1) << "Couldn't load plugin\"" << librarypath.string() << "\": " << e.what() << std::endl;311 COUT(1) << "Couldn't load module \"" << librarypath.string() << "\": " << e.what() << std::endl; 312 312 } 313 313 catch (...) 314 314 { 315 COUT(1) << "Couldn't load plugin\"" << librarypath.string() << "\"" << std::endl;315 COUT(1) << "Couldn't load module \"" << librarypath.string() << "\"" << std::endl; 316 316 } 317 317 } … … 323 323 catch (const std::exception& e) 324 324 { 325 COUT(1) << "An error occurred while loading plugins: " << e.what() << std::endl;325 COUT(1) << "An error occurred while loading modules: " << e.what() << std::endl; 326 326 } 327 327 catch (...) 328 328 { 329 COUT(1) << "An error occurred while loading plugins." << std::endl;330 } 331 332 // Parse command line arguments AFTER the plugins have been loaded (static code!)329 COUT(1) << "An error occurred while loading modules." << std::endl; 330 } 331 332 // Parse command line arguments AFTER the modules have been loaded (static code!) 333 333 CommandLine::parseCommandLine(cmdLine); 334 334 … … 574 574 /** 575 575 @brief 576 Retrievs the executable path and sets all hard coded fixed path (currently only pluginpath)576 Retrievs the executable path and sets all hard coded fixed path (currently only the module path) 577 577 Also checks for "orxonox_dev_build.keep_me" in the executable diretory. 578 578 If found it means that this is not an installed run, hence we … … 631 631 632 632 ///////////////////// 633 // SET PLUGINPATH //633 // SET MODULE PATH // 634 634 ///////////////////// 635 635 … … 638 638 COUT(1) << "Running from the build tree." << std::endl; 639 639 Core::bDevRun_ = true; 640 configuration_-> pluginPath_ = ORXONOX_PLUGIN_DEV_PATH;640 configuration_->modulePath_ = ORXONOX_MODULE_DEV_PATH; 641 641 } 642 642 else … … 654 654 ThrowException(General, "Could not derive a root directory. Might the binary installation directory contain '..' when taken relative to the installation prefix path?"); 655 655 656 // Pluginpath is fixed as well657 configuration_-> pluginPath_ = configuration_->rootPath_ / ORXONOX_PLUGIN_INSTALL_PATH;656 // Module path is fixed as well 657 configuration_->modulePath_ = configuration_->rootPath_ / ORXONOX_MODULE_INSTALL_PATH; 658 658 659 659 #else 660 660 661 661 // There is no root path, so don't set it at all 662 // Pluginpath is fixed as well663 configuration_-> pluginPath_ = ORXONOX_PLUGIN_INSTALL_PATH;662 // Module path is fixed as well 663 configuration_->modulePath_ = ORXONOX_MODULE_INSTALL_PATH; 664 664 665 665 #endif -
code/branches/libraries/src/core/DynLib.cc
r5631 r5666 64 64 { 65 65 // Log library load 66 COUT(2) << "Loading plugin" << mName << std::endl;66 COUT(2) << "Loading module " << mName << std::endl; 67 67 68 68 std::string name = mName; … … 86 86 { 87 87 // Log library unload 88 COUT(4) << "Unloading plugin" << mName << std::endl;88 COUT(4) << "Unloading module " << mName << std::endl; 89 89 90 90 if( DYNLIB_UNLOAD( m_hInst ) ) -
code/branches/libraries/src/orxonox/gamestates/CMakeLists.txt
r5638 r5666 12 12 13 13 ORXONOX_ADD_LIBRARY(gamestates 14 PLUGIN14 MODULE 15 15 DEFINE_SYMBOL 16 16 "GAMESTATES_SHARED_BUILD" -
code/branches/libraries/src/orxonox/objects/quest/CMakeLists.txt
r5648 r5666 21 21 ADD_SUBDIRECTORY(notifications) 22 22 23 # add the parent directory for tolua (TODO: remove this if the quest pluginis moved somewhere else)23 # add the parent directory for tolua (TODO: remove this if the quest module is moved somewhere else) 24 24 INCLUDE_DIRECTORIES(..) 25 25 26 26 ORXONOX_ADD_LIBRARY(quest 27 PLUGIN27 MODULE 28 28 TOLUA_FILES 29 29 QuestDescription.h -
code/branches/libraries/src/orxonox/overlays/CMakeLists.txt
r5648 r5666 15 15 16 16 ORXONOX_ADD_LIBRARY(overlays 17 PLUGIN17 MODULE 18 18 FIND_HEADER_FILES 19 19 DEFINE_SYMBOL
Note: See TracChangeset
for help on using the changeset viewer.