Changeset 1189
- Timestamp:
- 04/25/08 03:25:24 (2 weeks ago)
- Files:
-
- trunk/Doc/opensg.doxy (modified) (3 diffs)
- trunk/SConstruct (modified) (3 diffs)
- trunk/Source/Base/Base/Base.dox (modified) (5 diffs)
- trunk/Source/Base/Base/OSGBaseTypes.h (modified) (5 diffs)
- trunk/Source/Base/Base/OSGTypeBase.cpp (modified) (5 diffs)
- trunk/Source/System/FieldContainer/Base/OSGReflexiveContainerType.cpp (modified) (2 diffs)
- trunk/Source/System/FieldContainer/Base/OSGReflexiveContainerType.h (modified) (1 diff)
- trunk/Source/System/FieldContainer/FieldContainer.dox (moved) (moved from trunk/Doc/to_port/FieldContainer.dox) (6 diffs)
- trunk/Source/System/System.dox (moved) (moved from trunk/Doc/to_port/System.dox) (2 diffs)
- trunk/Source/System/build.info (modified) (1 diff)
- trunk/Tools/scons-build/BuildInfoScanner.py (modified) (3 diffs)
- trunk/Tools/scons-build/LibraryUtils.py (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/Doc/opensg.doxy
r907 r1189 109 109 # operators of the base classes will not be shown. 110 110 111 INLINE_INHERITED_MEMB = YES111 INLINE_INHERITED_MEMB = NO 112 112 113 113 # If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full … … 1060 1060 OSG_DEBUG_ARG \ 1061 1061 OSG_DO_DOC \ 1062 DOXYGEN_SHOULD_SKIP_THIS 1062 DOXYGEN_SHOULD_SKIP_THIS \ 1063 __GNUC__ \ 1064 __linux \ 1065 OSG_UNUSED_ATTRIB= 1063 1066 1064 1067 # If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then … … 1069 1072 EXPAND_AS_DEFINED = OSG_CHECK_ARG \ 1070 1073 OSG_BASELIB_DLLMAPPING \ 1071 OSG_SYSTEMLIB_DLLMAPPING 1074 OSG_SYSTEMLIB_DLLMAPPING \ 1075 OSG_UNUSED_ATTRIB \ 1076 OSGT 1072 1077 1073 1078 # If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then trunk/SConstruct
r1167 r1189 849 849 850 850 # Documentation 851 if "NONE" != common_env["docs_mode"] :851 if "NONE" != common_env["docs_mode"] and not ARGUMENTS.has_key("ignore_docs"): 852 852 # Todo: 853 853 # - put output into build dir … … 858 858 dox_inp = "INPUT = " 859 859 for (name,lib) in lib_map.iteritems(): 860 for i in lib.source_files: 861 dox_inp += "../Source/" + i + " " 862 for i in lib.header_files: 863 dox_inp += "../Source/" + i + " " 864 860 for i in lib.doc_extra_files: 861 dox_inp += "../" + i + " " 862 863 if ARGUMENTS.has_key("simple_docs"): 864 for i in lib.doc_source_files: 865 dox_inp += "../" + i + " " 866 for i in lib.doc_header_files: 867 dox_inp += "../" + i + " " 868 else: 869 for i in lib.source_files: 870 dox_inp += "../Source/" + i + " " 871 for i in lib.header_files: 872 dox_inp += "../Source/" + i + " " 873 865 874 # Write it to a file that's included by doxygen 866 875 # Need to do this to avoid environment size problems … … 883 892 raise "Unknown docs_mode %s" % common_env["docs_mode"] 884 893 885 # ---- FOR EACH VARIANT ----- # 886 # This is the core of the build. 887 if verbose_build: 888 print "types: ", variant_helper.variants["type"] 889 #print "libtypes: ", variant_helper.variants["libtype"] 890 print "archs: ", variant_helper.variants["arch"] 891 892 # We tread the first variant type special (auto link from libs here) 893 try: 894 default_combo_type = variant_helper.variants["type"][0][0] 895 except: 896 default_combo_type = None 897 898 for combo in variant_helper.iterate(locals(), base_bldr, common_env): 894 if not ARGUMENTS.has_key("docs_only"): 895 896 # ---- FOR EACH VARIANT ----- # 897 # This is the core of the build. 898 if verbose_build: 899 print "types: ", variant_helper.variants["type"] 900 #print "libtypes: ", variant_helper.variants["libtype"] 901 print "archs: ", variant_helper.variants["arch"] 902 903 # We tread the first variant type special (auto link from libs here) 904 try: 905 default_combo_type = variant_helper.variants["type"][0][0] 906 except: 907 default_combo_type = None 908 909 for combo in variant_helper.iterate(locals(), base_bldr, common_env): 899 910 #baseEnv = env_bldr.applyToEnvironment(common_env.Copy(), variant=combo,options=opts) 900 print " Processing combo: ", ", ".join(['%s:%s'%(i[0],i[1]) for i in combo.iteritems()])901 902 inst_paths = copy.copy(paths)903 if "x64" == combo["arch"]:904 inst_paths['lib'] = inst_paths['lib'] + '64'905 inst_paths["lib_inst_combo"] = inst_paths["lib"]906 if GetPlatform() != "win32":907 if "debug" == combo["type"]:908 inst_paths["lib_inst_combo"] = pj(inst_paths["lib_inst_combo"],"debug")909 else:910 inst_paths["lib_inst_combo"] = pj(inst_paths["lib_inst_combo"],"opt")911 912 Export('build_env', 'inst_paths', 'opts', 'variant_pass', 'combo',913 'lib_map', 'shared_lib_suffix', 'static_lib_suffix',914 'default_combo_type', 'verbose_build')915 916 # Process subdirectories917 sub_dirs = ['Source']918 full_build_dir = pj(buildDir, combo_dir)919 for d in sub_dirs:920 SConscript(pj(d, 'SConscript'), build_dir = pj(full_build_dir, d), duplicate = 0)921 922 # Build -config file based on first set installed923 if 0 == variant_pass:924 # - Create string using pprint.pformat that can build libmap (see osg-config.in for read)925 lib_map_build_list = []926 for (name,lib) in lib_map.iteritems():927 lib_map_build_list.append(lib.dump())911 print " Processing combo: ", ", ".join(['%s:%s'%(i[0],i[1]) for i in combo.iteritems()]) 912 913 inst_paths = copy.copy(paths) 914 if "x64" == combo["arch"]: 915 inst_paths['lib'] = inst_paths['lib'] + '64' 916 inst_paths["lib_inst_combo"] = inst_paths["lib"] 917 if GetPlatform() != "win32": 918 if "debug" == combo["type"]: 919 inst_paths["lib_inst_combo"] = pj(inst_paths["lib_inst_combo"],"debug") 920 else: 921 inst_paths["lib_inst_combo"] = pj(inst_paths["lib_inst_combo"],"opt") 922 923 Export('build_env', 'inst_paths', 'opts', 'variant_pass', 'combo', 924 'lib_map', 'shared_lib_suffix', 'static_lib_suffix', 925 'default_combo_type', 'verbose_build') 926 927 # Process subdirectories 928 sub_dirs = ['Source'] 929 full_build_dir = pj(buildDir, combo_dir) 930 for d in sub_dirs: 931 SConscript(pj(d, 'SConscript'), build_dir = pj(full_build_dir, d), duplicate = 0) 932 933 # Build -config file based on first set installed 934 if 0 == variant_pass: 935 # - Create string using pprint.pformat that can build libmap (see osg-config.in for read) 936 lib_map_build_list = [] 937 for (name,lib) in lib_map.iteritems(): 938 lib_map_build_list.append(lib.dump()) 928 939 929 # Add an alias just for this lib and its unittests930 Alias(name[3:], [ pj(full_build_dir, "Source", "lib" + name + common_env["SHLIBSUFFIX"]), \931 pj(full_build_dir, "unittest", "run" + name)\932 ])933 934 lib_map_str = pprint.pformat(lib_map_build_list)935 936 if "win32" == platform:937 inst_inc_path = inst_paths["include"].replace('\\','\\\\')938 inst_prefix = common_env["prefix"].replace('\\','\\\\')939 inst_lib_path = inst_paths["lib"].replace('\\','\\\\')940 else:941 inst_inc_path = inst_paths["include"]942 inst_prefix = common_env["prefix"]943 inst_lib_path = inst_paths["lib"]944 945 submap = {'@LIB_MAP_STR@' : lib_map_str,946 '@PREFIX@' : inst_prefix,947 '@LIBPATH@' : inst_lib_path,948 '@INCPATH@' : inst_inc_path,949 '@VERSION@' : opensg_version_string,950 '@LIBRARY_UTIL_SRC@' : file(pj('Tools','scons-build','LibraryUtils.py')).read()}951 # Install two scripts so we have one with osg2 in the name to let users be sure they get the right version952 for n in ["osg-config","osg2-config"]:953 osg_config = common_env.SubstBuilder(pj(paths['bin'],n),954 'osg-config.in', submap=submap)955 common_env.AddPostAction(osg_config, Chmod('$TARGET', 0755))956 common_env.Depends(osg_config, Value(lib_map_str))940 # Add an alias just for this lib and its unittests 941 Alias(name[3:], [ pj(full_build_dir, "Source", "lib" + name + common_env["SHLIBSUFFIX"]), \ 942 pj(full_build_dir, "unittest", "run" + name)\ 943 ]) 944 945 lib_map_str = pprint.pformat(lib_map_build_list) 946 947 if "win32" == platform: 948 inst_inc_path = inst_paths["include"].replace('\\','\\\\') 949 inst_prefix = common_env["prefix"].replace('\\','\\\\') 950 inst_lib_path = inst_paths["lib"].replace('\\','\\\\') 951 else: 952 inst_inc_path = inst_paths["include"] 953 inst_prefix = common_env["prefix"] 954 inst_lib_path = inst_paths["lib"] 955 956 submap = {'@LIB_MAP_STR@' : lib_map_str, 957 '@PREFIX@' : inst_prefix, 958 '@LIBPATH@' : inst_lib_path, 959 '@INCPATH@' : inst_inc_path, 960 '@VERSION@' : opensg_version_string, 961 '@LIBRARY_UTIL_SRC@' : file(pj('Tools','scons-build','LibraryUtils.py')).read()} 962 # Install two scripts so we have one with osg2 in the name to let users be sure they get the right version 963 for n in ["osg-config","osg2-config"]: 964 osg_config = common_env.SubstBuilder(pj(paths['bin'],n), 965 'osg-config.in', submap=submap) 966 common_env.AddPostAction(osg_config, Chmod('$TARGET', 0755)) 967 common_env.Depends(osg_config, Value(lib_map_str)) 957 968 958 969 common_env.Alias('install', paths['base']) trunk/Source/Base/Base/Base.dox
r106 r1189 23 23 */ 24 24 25 /*! \defgroup GrpBaseBaseConstants Constants 26 \ingroup GrpBaseBase 27 28 ToDo 29 */ 30 31 /*! \defgroup GrpBaseBaseTypeSystem TypeSystem 32 \ingroup GrpBaseBase 33 34 ToDo 35 */ 36 37 #if 0 38 39 40 25 41 /*! \defgroup GrpBaseBaseBaseTypeTraits BaseTypesTraits 26 42 \ingroup GrpBaseBase … … 41 57 */ 42 58 43 /*! \defgroup GrpBaseBaseConstants Constants44 \ingroup GrpBaseBase45 46 ToDo47 */48 59 49 60 /*! \defgroup GrpBaseBaseFileSystem FileSystem … … 119 130 */ 120 131 121 /*! \defgroup GrpBaseBaseTypeSystem TypeSystem122 \ingroup GrpBaseBase123 124 ToDo125 */126 132 127 133 /*! \defgroup GrpBaseBaseVolume Volume … … 146 152 algorithms or to use STL containers. 147 153 */ 148 149 /*! \page PageBase Base150 151 \latexonly Starter:NewChapter \endlatexonly152 153 All OpenSG symbols are part of the OSG name space, and they have no prefix.154 The actual files, including headers, all use the OSG prefix.155 156 */157 154 158 155 /*! \page PageBaseTypes Base Types … … 426 423 427 424 */ 428 429 /* \page PageBaseFunctors Functors 430 431 Functors are the main method for OpenSG to call configurable actions. Functors 432 wrap calls to a standard function, to a member of a specific instance or to a 433 member of the first parameter. 434 435 Functors will have to be redesigned for 1.1, as they don't compile using the 436 Microsoft Visual Studio compiler. :( Thus we don't talk much about them here, 437 if you need to add a new action or GL object, send us mail. 438 439 440 */ 441 442 425 #endif 426 427 /*! \page PageBase Base 428 429 \latexonly Starter:NewChapter \endlatexonly 430 431 All OpenSG symbols are part of the OSG name space, and they have no prefix. 432 The actual files, including headers, all use the OSG prefix. 433 434 */ 435 436 /*! \page PageDoc General Documentation 437 438 Related Pages 439 440 \subpage PageBase 441 \subpage PageSystem 442 */ trunk/Source/Base/Base/OSGBaseTypes.h
r940 r1189 638 638 #else 639 639 640 #ifndef DOXYGEN_SHOULD_SKIP_THIS 640 641 #if defined(__GNUC__) 641 642 #define OSG_UNUSED_ATTRIB __attribute__((__unused__)) … … 643 644 #define OSG_UNUSED_ATTRIB 644 645 #endif 646 #endif 645 647 646 648 /*! \ingroup GrpBaseBaseConstants … … 659 661 #undef OSG_UNUSED_ATTRIB 660 662 #endif 663 664 #ifndef DOXYGEN_SHOULD_SKIP_THIS 661 665 662 666 namespace PointerSize … … 672 676 Tmp1 >::type PtrSize; 673 677 } 678 679 #endif 680 681 /*! \ingroup GrpBaseBaseBaseTypes 682 */ 674 683 675 684 typedef PointerSize::PtrSize UIntPointer; … … 688 697 typedef const BitVector ConstFieldMaskArg; 689 698 699 /*! FieldFlags 700 \ingroup GrpBaseBaseBaseTypes 701 \ingroup GrpBaseBase 702 */ 703 690 704 struct FieldFlags 691 705 { trunk/Source/Base/Base/OSGTypeBase.cpp
r785 r1189 52 52 #include "OSGLog.h" 53 53 54 OSG_ USING_NAMESPACE54 OSG_BEGIN_NAMESPACE 55 55 56 56 //--------------------------------------------------------------------------- … … 59 59 60 60 /*! \class TypeBase 61 \ingroup GrpBaseBaseTypeSystem 62 \ingroup GrpBaseBase 63 61 64 Base for all types in the type system. 62 65 … … 76 79 from the TypeFactory). This decouples the creation/initialization order from 77 80 the inheritance hierarchy of the types. 78 79 \ingroup GrpBaseBaseTypeSystem80 81 81 82 \see TypeFactory … … 372 373 373 374 \param[in] uiIndent Number of spaces to indent output. 375 \param[in] bvFlags Not used 374 376 */ 375 377 void TypeBase::dump( UInt32 uiIndent, … … 380 382 } 381 383 384 OSG_END_NAMESPACE trunk/Source/System/FieldContainer/Base/OSGReflexiveContainerType.cpp
r943 r1189 52 52 #include <algorithm> 53 53 54 OSG_ USING_NAMESPACE54 OSG_BEGIN_NAMESPACE 55 55 56 56 /*-------------------------------------------------------------------------*/ … … 402 402 return returnValue; 403 403 } 404 405 OSG_END_NAMESPACE trunk/Source/System/FieldContainer/Base/OSGReflexiveContainerType.h
r634 r1189 56 56 typedef void (*InitalInsertDescFunc)(ReflexiveContainerType *); 57 57 58 /*! \ingroup GrpSystemFieldContainer 58 /*! \class ReflexiveContainerType 59 \ingroup GrpSystemFieldContainer 59 60 */ 60 61 trunk/Source/System/FieldContainer/FieldContainer.dox
r585 r1189 7 7 */ 8 8 9 #if 0 10 9 11 /*! \defgroup GrpSystemFieldContainerFuncs Field Container Functions 10 12 \ingroup GrpSystem … … 14 16 \ingroup GrpSystem 15 17 */ 16 18 #endif 19 20 /*! \page PageSystemFieldsNFieldContainers Fields & Field Containers 21 22 */ 23 24 /*! \page PageSystemFieldContainerExt Creating New FieldContainer Classes 25 */ 26 27 #if 0 17 28 /*! \page PageSystemFieldsNFieldContainers Fields & Field Containers 18 29 … … 41 52 different subsets of field containers (Nodes, NodeCores, Attachments). 42 53 43 For reasons connected to multi-threading (s. [threadsafety]) specific kinds of44 pointers have to be used. For every FieldContainer type fc there is a specific45 pointer type fcPtr. It has all the features of a standard pointer, i.e. it can46 be dereferenced via -> and it can be downcasted to a derived type by47 DerivedPtr.dcast( ParentPtr );.48 49 54 Creating a new instance of a specific class is done by calling fcPtr 50 55 var=fcPtr::create(). … … 96 101 out of scope. 97 102 98 \example Use CPEditor for begin/endEdit:99 103 100 104 \code … … 111 115 \endcode 112 116 113 \endexample 114 115 As a further (small) simplification there is a CPEdit macro that creates the 116 CPEditor instance automatically. 117 118 \example Use CPEdit for begin/endEdit: 119 120 \code 121 122 GeoPTypesPtr type = GeoPTypesUI8::create(); 123 { 124 CPEdit(type, GeoPTypesUI8::GeoPropDataFieldMask); 125 126 type->addValue(GL_POLYGON ); 127 type->addValue(GL_TRIANGLES); 128 type->addValue(GL_QUADS ); 129 } 130 131 \endcode 132 133 \endexample 117 134 118 135 119 … … 409 393 410 394 #endif 411 395 #endif trunk/Source/System/System.dox
r585 r1189 5 5 /*! \defgroup GrpSystem OpenSG System Library 6 6 7 \brief The System Library contains the main system-independent parts of OpenSG. 7 \brief The System Library contains the main system-independent parts of 8 OpenSG. 8 9 9 10 See \ref PageSystem for details. 10 11 */ 11 12 13 #if 0 12 14 /*! \defgroup GrpSystemField Fields 13 15 \ingroup GrpSystem … … 36 38 */ 37 39 40 #endif 41 38 42 /*! \page PageSystem System 43 44 SystemLib 39 45 40 SystemLib: everything not base and winsys 46 \subpage PageSystemFieldsNFieldContainers 47 \subpage PageSystemFieldContainerExt 48 */ 41 49 42 */trunk/Source/System/build.info
r886 r1189 26 26 frameworks = ['OpenGL', 'GLUT'] 27 27 frameworkpath = [] 28 29 doc_extra_files = ['System.dox'] trunk/Tools/scons-build/BuildInfoScanner.py
r1166 r1189 60 60 self.libAttributes = ["osg_dep_libs", "libs", "frameworks", "cpppath", 61 61 "libpath", "frameworkpath","osg_test_libs", 62 "other_test_libs","test_cpppath", 63 "test_libpath", "cxx_flags"] 62 "other_test_libs","test_cpppath", "doc_header_files", 63 "doc_extra_files", "test_libpath", "cxx_flags", 64 "doc_source_files" ] 64 65 65 66 def scan(self, scanDir = ""): … … 120 121 print "Library name: ", libName 121 122 123 if biDict.has_key('doc_header_files'): 124 tmplist = [] 125 for f in biDict['doc_header_files']: 126 tmplist.append(pj(fullDir, f)) 127 128 biDict['doc_header_files'] = tmplist 129 130 131 if biDict.has_key('doc_source_files'): 132 tmplist = [] 133 for f in biDict['doc_source_files']: 134 tmplist.append(pj(fullDir, f)) 135 136 biDict['doc_source_files'] = tmplist 137 138 139 if biDict.has_key('doc_extra_files'): 140 tmplist = [] 141 for f in biDict['doc_extra_files']: 142 tmplist.append(pj(fullDir, f)) 143 144 biDict['doc_extra_files'] = tmplist 145 122 146 # Add all the lib options from the evaluation 123 147 # - Only add on the unique ones … … 137 161 headerFiles = [f for f in files if (os.path.splitext(f)[1] in [".h", ".inl", ".ins", ".hpp"] and 138 162 os.path.basename(f).startswith("OSG"))] 139 163 140 164 if self.env['enable_scanparse_in_builddir'] == True: 141 165 parserFiles = [f for f in files if (os.path.splitext(f)[1] in [".yy"] and trunk/Tools/scons-build/LibraryUtils.py
r1166 r1189 9 9 self.source_files = [] # List of source files for this library 10 10 self.header_files = [] # List of header files for this library 11 self.doc_source_files = [] # List of source files for this library 12 self.doc_header_files = [] # List of header files for this library 13 self.doc_extra_files = [] # List of header files for this library 11 14 self.test_files = [] # list of source files for tests 12 15 self.osg_dep_libs = [] # Names of OpenSG libraries we depend on … … 42 45 for a in ["source_files","header_files","test_files","osg_dep_libs", 43 46 "libs","libpath","frameworks","frameworkpath","cpppath", 44 "cxx_flags", 47 "cxx_flags","doc_source_files","doc_header_files", 45 48 "osg_test_libs","other_test_libs","test_cpppath","test_libpath","unittest_files"]: 46 49 getattr(self,a).extend([i for i in getattr(other,a) if not i in getattr(self,a)])
