From: Phil T. <phi...@us...> - 2007-07-23 15:15:37
|
Update of /cvsroot/aaf/AAF/meta/headergen In directory sc8-pr-cvs11.sourceforge.net:/tmp/cvs-serv18959/meta/headergen Modified Files: GNUmakefile Added Files: genDefInstBuiltins.cpp install-builtins.bash Log Message: Use current SMPTE metadata spreadsheet and agreed list of v1.1.2 built-in DefinitionObject Instances in AAFMetaDict.xls. Extend headergen to create built-in Dictionary DefinitionObject Instances as defined in AAFMetaDict.xls (for DataDefs and ContainerDefs). Update files generated from AAFMetaDict.xls. --- NEW FILE: genDefInstBuiltins.cpp --- //=---------------------------------------------------------------------= // // $Id: genDefInstBuiltins.cpp,v 1.1 2007/07/23 15:15:02 phil_tudor Exp $ // // The contents of this file are subject to the AAF SDK Public // Source License Agreement (the "License"); You may not use this file // except in compliance with the License. The License is available in // AAFSDKPSL.TXT, or you may obtain a copy of the License from the AAF // Association or its successor. // // Software distributed under the License is distributed on an "AS IS" // basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See // the License for the specific language governing rights and limitations // under the License. // // The Original Code of this file is Copyright 1998-2005, Licensor of the // AAF Association. // // The Initial Developer of the Original Code of this file and the // Licensor of the AAF Association is Avid Technology. // All rights reserved. // //=---------------------------------------------------------------------= // Author : Oliver Morgan (ol...@me...) // based on earlier work by Tim Bingham and Bob Tillman. // moduleName on command line must be Class name of target subclass of DefinitionObject // e.g. DataDefinition or ContainerDefinition #include <iostream> #include <assert.h> #include <stdlib.h> #include "headerGenUtils.h" #define AAF_SYMBOL(symbol, name, alias, desc) \ #symbol, alias #define AAF_INSTANCE_TABLE_BEGIN() \ { #define AAF_INSTANCE(cls, name, id, desc) \ {#cls, name, desc, id}, #define AAF_INSTANCE_TABLE_END() \ {0,0,0,0,{0}} \ }; struct inst_t { char* cls; char* name; char* alias; char* desc; uid identification; }; inst_t instances[] = #include "AAFMetaDictionary.h" static void doFile (const char * moduleName, const char * prefix) { assert (moduleName); printCopyright ("Avid Technology", cout); cout << endl; cout << "// AAF well-known " << moduleName << " instances" << endl; cout << "// This file should be #included within ImplAAFDictionary::InitBuiltins()" << endl; cout << "// " << endl; cout << endl << endl; size_t i = 0; for( i=0; instances[i].cls; i++ ) { if( 0==strcmp( instances[i].cls, moduleName ) ) { // DataDef_Unknown appears in AAFDataDefs.h but should not be built-in if (instances[i].name != "DataDef_Unknown") { cout << "Init" << moduleName << " (" << endl; cout << " " << prefix << instances[i].name << ", " << endl; cout << " L\"" << instances[i].name << "\", " << endl; cout << " L\"" << instances[i].desc << "\");" << endl; cout << endl; } } } } int main (int argc, char ** argv) { char * moduleName = 0; char * prefix = 0; validateArgs (argc, argv, moduleName, prefix); assert (moduleName); assert (prefix); doFile (moduleName,prefix); return 0; } --- NEW FILE: install-builtins.bash --- ############################################################################### # # $Id: install-builtins.bash,v 1.1 2007/07/23 15:15:05 phil_tudor Exp $ $Name: $ # # The contents of this file are subject to the AAF SDK Public # Source License Agreement (the "License"); You may not use this file # except in compliance with the License. The License is available in # AAFSDKPSL.TXT, or you may obtain a copy of the License from the AAF # Association or its successor. # # Software distributed under the License is distributed on an "AS IS" # basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See # the License for the specific language governing rights and limitations # under the License. # # The Original Code of this file is Copyright 1998-2005, Licensor of the # AAF Association. # # The Initial Developer of the Original Code of this file and the # Licensor of the AAF Association is Avid Technology. # All rights reserved. # ############################################################################### function usage { echo "Usage : $TOOLNAME [OPTIONS]" echo "OPTIONS:" echo " -c = compare only, report files that need to be updated [default]." echo " -u = update any changed files." echo " -h = help, print this message and exit." } BUILTINS="\ ImplAAFDictionary.cpp_DataDefs \ ImplAAFDictionary.cpp_ContainerDefs \ " SOURCE=./include DEST=../../ref-impl/src/impl FAILURE=1 SUCCESS=0 TOOLNAME=${0##*/} TOOLPATH=${0%/${TOOLNAME}} mode="compare" while getopts ":cuh" opt do case $opt in c) mode="compare" ;; u) mode="update" ;; h) usage exit $SUCCESS ;; \?) echo "$TOOLNAME : Error: \"-$OPTARG\" not recognized." usage exit $FAILURE ;; esac done shift $(($OPTIND - 1)) for h in $BUILTINS do if [[ ! -f ${SOURCE}/$h ]] then echo "Can't find \"${SOURCE}/$h\"." exit $FAILURE fi done for h in $BUILTINS do if [[ ! -f ${DEST}/$h ]] then if [[ $mode == "update" ]] then echo "Creating \"${DEST}/$h\"." cp ${SOURCE}/$h ${DEST}/$h else echo "Can't find \"${DEST}/$h\"." fi fi done for h in $BUILTINS do cmp -s ${SOURCE}/$h ${DEST}/$h if [[ ${?} != 0 ]] then if [[ $mode == "update" ]] then echo "Updating \"${DEST}/$h\"." cp ${SOURCE}/$h ${DEST}/$h else echo "File needs updating \"${DEST}/$h\"." fi fi done exit $SUCCESS Index: GNUmakefile =================================================================== RCS file: /cvsroot/aaf/AAF/meta/headergen/GNUmakefile,v retrieving revision 1.20 retrieving revision 1.21 diff -C2 -d -r1.20 -r1.21 *** GNUmakefile 6 Jun 2006 04:10:13 -0000 1.20 --- GNUmakefile 23 Jul 2007 15:15:06 -0000 1.21 *************** *** 25,28 **** --- 25,29 ---- INSTALL_H_DIR=../../ref-impl/include GEN_H_DIR=./include + INSTALL_BUILTINS_DIR=../../ref-impl/src/impl EXE= OBJ=.o *************** *** 40,43 **** --- 41,45 ---- typeDefUid$(EXE) \ genDefInstances$(EXE) \ + genDefInstBuiltins$(EXE) \ result$(EXE) *************** *** 61,68 **** AAFResult.h # main build target all : $(PROGS) \ $(GEN_H_DIR) \ ! $(addprefix $(GEN_H_DIR)/,$(HEADERS)) # utilities --- 63,74 ---- AAFResult.h + BUILTINS=ImplAAFDictionary.cpp_ContainerDefs \ + ImplAAFDictionary.cpp_DataDefs + # main build target all : $(PROGS) \ $(GEN_H_DIR) \ ! $(addprefix $(GEN_H_DIR)/,$(HEADERS)) \ ! $(addprefix $(GEN_H_DIR)/,$(BUILTINS)) # utilities *************** *** 113,116 **** --- 119,128 ---- $(COMPILE) $(COMPILEFLAGS) -c $< -o $@ + genDefInstBuiltins$(EXE) : headerGenUtils$(OBJ) genDefInstBuiltins$(OBJ) + $(LINK) $^ -o $@ + + genDefInstBuiltins$(OBJ) : genDefInstBuiltins.cpp headerGenUtils.h ../AAFMetaDictionary.h + $(COMPILE) $(COMPILEFLAGS) -c $< -o $@ + result$(EXE) : headerGenUtils$(OBJ) result$(OBJ) $(LINK) $^ -o $@ *************** *** 179,182 **** --- 191,202 ---- ./genDefInstances CompressionDefinition kAAF > $(GEN_H_DIR)/AAFCompressionDefs.h + # targets for generated Definition Object instance builtins files + + $(GEN_H_DIR)/ImplAAFDictionary.cpp_DataDefs : genDefInstBuiltins$(EXE) + ./genDefInstBuiltins DataDefinition kAAF > $(GEN_H_DIR)/ImplAAFDictionary.cpp_DataDefs + + $(GEN_H_DIR)/ImplAAFDictionary.cpp_ContainerDefs : genDefInstBuiltins$(EXE) + ./genDefInstBuiltins ContainerDefinition kAAF > $(GEN_H_DIR)/ImplAAFDictionary.cpp_ContainerDefs + $(GEN_H_DIR)/AAFResult.h : result$(EXE) ./result AAFResult > $(GEN_H_DIR)/AAFResult.h *************** *** 240,243 **** --- 260,271 ---- $(CP) $(GEN_H_DIR)/AAFResult.h $(INSTALL_H_DIR)/AAFResult.h + # install targets for generated Definition Object instance builtins files + + $(INSTALL_BUILTINS_DIR)/ImplAAFDictionary.cpp_DataDefs : $(GEN_H_DIR)/ImplAAFDictionary.cpp_DataDefs + $(CP) $(GEN_H_DIR)/ImplAAFDictionary.cpp_DataDefs $(INSTALL_BUILTINS_DIR)/ImplAAFDictionary.cpp_DataDefs + + $(INSTALL_BUILTINS_DIR)/ImplAAFDictionary.cpp_ContainerDefs : $(GEN_H_DIR)/ImplAAFDictionary.cpp_ContainerDefs + $(CP) $(GEN_H_DIR)/ImplAAFDictionary.cpp_ContainerDefs $(INSTALL_BUILTINS_DIR)/ImplAAFDictionary.cpp_ContainerDefs + # other targets *************** *** 246,250 **** $(RM) *$(OBJ) *~ $(RM) $(addprefix $(GEN_H_DIR)/,$(HEADERS)) ! install: $(addprefix $(INSTALL_H_DIR)/,$(HEADERS)) --- 274,280 ---- $(RM) *$(OBJ) *~ $(RM) $(addprefix $(GEN_H_DIR)/,$(HEADERS)) + $(RM) $(addprefix $(GEN_H_DIR)/,$(BUILTINS)) ! install: $(addprefix $(INSTALL_H_DIR)/,$(HEADERS)) \ ! $(addprefix $(INSTALL_BUILTINS_DIR)/,$(BUILTINS)) |