From: inv Date: Thu, 10 Jun 2010 14:32:00 +0000 (+0000) Subject: OCC21674 Improve generator of reference documentation X-Git-Tag: V6_7_1~129 X-Git-Url: http://git.dev.opencascade.org/gitweb/?a=commitdiff_plain;h=74003435fb1e17099ededb97db8725257342d8a7;p=occt-wok.git OCC21674 Improve generator of reference documentation --- diff --git a/src/WOKTclLib/FILES b/src/WOKTclLib/FILES index bb45209..a2d162d 100755 --- a/src/WOKTclLib/FILES +++ b/src/WOKTclLib/FILES @@ -163,5 +163,4 @@ srcinc:::config.h srcinc:::opencascade.gif srcinc:::woksh.el srcinc:::wok-comm.el -srcinc:::DocGenerate.tcl srcinc:::OCCTDocumentation.tcl diff --git a/src/WOKTclLib/OCCTDocumentation.tcl b/src/WOKTclLib/OCCTDocumentation.tcl index dd1b4eb..bec122c 100755 --- a/src/WOKTclLib/OCCTDocumentation.tcl +++ b/src/WOKTclLib/OCCTDocumentation.tcl @@ -1,1078 +1,253 @@ -set OCCTDoc_DescriptionUnit "OS" -proc OCCTDoc_UpdateDoxygenDocumentation {OCCTDoc_DocLocation isSearch} { - global OCCTDoc_DescriptionUnit - - set path_RWorkbench [pwd] - - # verify is file Modules.tcl present in specific location - if {[file exists $path_RWorkbench/src/$OCCTDoc_DescriptionUnit/Modules.tcl] != 1} { - puts "File $path_RWorkbench/src/$OCCTDoc_DescriptionUnit/Modules.tcl is absent." - puts " It is impossible to continue the scripts." - return - } - - # get the list of modules - set modulesList {} - source $path_RWorkbench/src/$OCCTDoc_DescriptionUnit/Modules.tcl - set modulesList [$OCCTDoc_DescriptionUnit:Modules] - - # processing the list of modules and prepare the list of toolkits - set toolkitsListOfList {} - foreach moduleName $modulesList { - set toolkitsList {} - if {[file exists $path_RWorkbench/src/$OCCTDoc_DescriptionUnit/$moduleName.tcl]==1} { - source $path_RWorkbench/src/$OCCTDoc_DescriptionUnit/$moduleName.tcl - set toolkitsList [$moduleName:toolkits] - } else { - puts "File $path_RWorkbench/src/$OCCTDoc_DescriptionUnit/$moduleName.tcl is absent." - puts " It is impossible to get information about toolkits in the module $moduleName." - } - # Corrected accordning to the SZV request - alphabetical order - set toolkitsList [lsort $toolkitsList] - # ------------------------------------------------------------ - lappend toolkitsListOfList $toolkitsList - } - - # processing the list of toolkits and prepare the list of packages - set packagesListOfListOfList {} - foreach toolkitsListList $toolkitsListOfList { - set packagesListOfList {} - foreach toolkitName $toolkitsListList { - set packagesList {} - if {[file exists $path_RWorkbench/src/$toolkitName/PACKAGES] == 1} { - set file_PACKAGES [open $path_RWorkbench/src/$toolkitName/PACKAGES RDONLY] - while {[eof $file_PACKAGES] == 0} { - set packageName [string trim [gets $file_PACKAGES]] - if {[string length $packageName]!=0} { - lappend packagesList $packageName - } - } - close $file_PACKAGES - } else { - puts "File $path_RWorkbench/src/$toolkitName/PACKAGES is absent." - puts " It is impossible to get information about packages in the toolkit $toolkitName." - } - # Corrected accordning to the SZV request - alphabetical order - set packagesList [lsort $packagesList] - # ------------------------------------------------------------ - lappend packagesListOfList $packagesList - } - lappend packagesListOfListOfList $packagesListOfList - } +# generate Doxygen configuration file for specified OCCT module of toolkit +proc OCCDoc_MakeDoxyfile {outDir {modules {}} {graphvizPath {}} {useSearch YES} {tagFiles {}}} { - # creating of main HTML page - set retValue [OCCTDoc_CreateMainDoc $OCCTDoc_DocLocation $isSearch $modulesList $toolkitsListOfList $packagesListOfListOfList] - if {$retValue == 1} { - puts "It is impossible to update documentation created by doxygen." - return + # by default take all modules + if { [llength $modules] <= 0 } { + set modules [OS -lm] } -} -proc OCCTDoc_CreateMainDoc {OCCTDoc_DocLocation isSearch modulesList toolkitsListOfList packagesListOfListOfList} { - set file_modulesHTML [open $OCCTDoc_DocLocation/index.html {CREAT TRUNC RDWR}] - puts $file_modulesHTML "" - puts $file_modulesHTML "" - puts $file_modulesHTML "OpenCASCADE Modules" - puts $file_modulesHTML "" - puts $file_modulesHTML "" - puts $file_modulesHTML "

OpenCASCADE
Modules

" - puts $file_modulesHTML "
" - puts $file_modulesHTML "" - puts $file_modulesHTML "
" - puts $file_modulesHTML "" - puts $file_modulesHTML "" - close $file_modulesHTML - if {$isPrepared == 0} { - exec rm $OCCTDoc_DocLocation/index.html - exec rm $OCCTDoc_DocLocation/doxygen.css - return 1 - } - return 0 -} - -proc OCCTDoc_UpdateModuleIndex {OCCTDoc_DocLocation isSearch moduleName} { - if {[file exists $OCCTDoc_DocLocation/$moduleName/html/$moduleName\_index.html] == 1} { - set file_newModuleIndex [open $OCCTDoc_DocLocation/$moduleName/html/$moduleName\_index.html {TRUNC RDWR}] - set file_oldModuleIndex [open $OCCTDoc_DocLocation/$moduleName/html/index.html RDONLY] - while {[eof $file_oldModuleIndex] == 0} { - set isLineWrited 0 - set line_OfFile [string trim [gets $file_oldModuleIndex]] - if {[string compare [string range $line_OfFile 0 6] ""] == 0} { - puts $file_newModuleIndex "<title>OpenCASCADE: $moduleName" - set isLineWrited 1 - } - if {[string compare $isSearch "TRUE"] == 0} { - if {[string compare [string range $line_OfFile 0 8] "OCC Main Page | $moduleName | Toolkits | Packages | Class Hierarchy | Data Structures | File List | Data Fields | Globals | Search for " - set isLineWrited 1 - } - } else { - if {[string compare [string range $line_OfFile 0 10] "
OCC Main Page | $moduleName | Toolkits | Packages | Class Hierarchy | Data Structures | File List | Data Fields | Globals
" - set isLineWrited 1 - } - } - if {[string compare [string range $line_OfFile 0 3] "

"] == 0} { - puts $file_newModuleIndex "

$moduleName Documentation

" - set isLineWrited 1 - } - if {$isLineWrited == 0} { - puts $file_newModuleIndex $line_OfFile - } - } - close $file_oldModuleIndex - close $file_newModuleIndex - OCCTDoc_UpdateModuleHTMLFiles $OCCTDoc_DocLocation $isSearch $moduleName + # create target directory + if { ! [file exists $outDir] } { + mkdir $outDir + } + + # set context + set one_module [expr [llength $modules] == 1] + if { $one_module } { + set title "OCCT [$modules:name]" + set name $modules } else { - puts "File $OCCTDoc_DocLocation/$moduleName/html/$moduleName\_index.html is absent." - puts " Documentation for $moduleName is not updated." + set title "Open CASCADE Technology" + set name OCCT } -} -proc OCCTDoc_UpdateModuleHTMLFiles {OCCTDoc_DocLocation isSearch moduleName} { - # Processing the file annotated.html - if {[file exists $OCCTDoc_DocLocation/$moduleName/html/annotated.html] == 1} { - exec cp $OCCTDoc_DocLocation/$moduleName/html/annotated.html $OCCTDoc_DocLocation/$moduleName/html/annotated.html.old - set isLineWrited 0 - set file_new [open $OCCTDoc_DocLocation/$moduleName/html/annotated.html {RDWR TRUNC}] - set file_old [open $OCCTDoc_DocLocation/$moduleName/html/annotated.html.old RDONLY] - while {[eof $file_old] == 0} { - set fileLine [string trim [gets $file_old]] - if {[string compare $isSearch "TRUE"] == 0} { - if {[string compare [string range $fileLine 0 8] "OCC Main Page | $moduleName | Toolkits | Packages | Class Hierarchy | Data Structures | File List | Data Fields | Globals | Search for " - set isLineWrited 1 - } else { - puts $file_new $fileLine - } - } else { - puts $file_new $fileLine - } - } else { - if {[string compare [string range $fileLine 0 10] "
OCC Main Page | $moduleName | Toolkits | Packages | Class Hierarchy | Data Structures | File List | Data Fields | Globals
" - set isLineWrited 1 - } else { - puts $file_new $fileLine - } - } else { - puts $file_new $fileLine - } - } + # get list of header files in the specified modules + set filelist {} + foreach module $modules { + if {[lsearch [OS -lm] $module] == -1 } { + puts "Error: no module $module is known in current workbench" + continue } - close $file_old - close $file_new - } - # Processing the file files.html - if {[file exists $OCCTDoc_DocLocation/$moduleName/html/files.html] == 1} { - exec cp $OCCTDoc_DocLocation/$moduleName/html/files.html $OCCTDoc_DocLocation/$moduleName/html/files.html.old - set isLineWrited 0 - set file_new [open $OCCTDoc_DocLocation/$moduleName/html/files.html {RDWR TRUNC}] - set file_old [open $OCCTDoc_DocLocation/$moduleName/html/files.html.old RDONLY] - while {[eof $file_old] == 0} { - set fileLine [string trim [gets $file_old]] - if {[string compare $isSearch "TRUE"] == 0} { - if {[string compare [string range $fileLine 0 8] "OCC Main Page | $moduleName | Toolkits | Packages | Class Hierarchy | Data Structures | File List | Data Fields | Globals | Search for " - set isLineWrited 1 - } else { - puts $file_new $fileLine - } - } else { - puts $file_new $fileLine - } - } else { - if {[string compare [string range $fileLine 0 10] "
OCC Main Page | $moduleName | Toolkits | Packages | Class Hierarchy | Data Structures | File List | Data Fields | Globals
" - set isLineWrited 1 - } else { - puts $file_new $fileLine - } - } else { - puts $file_new $fileLine - } + foreach tk [$module:toolkits] { + foreach pk [osutils:tk:units [woklocate -u $tk]] { + lappend filelist [uinfo -p -T pubinclude $pk] } } - close $file_old - close $file_new - } - # Processing the file functions.html - if {[file exists $OCCTDoc_DocLocation/$moduleName/html/functions.html] == 1} { - exec cp $OCCTDoc_DocLocation/$moduleName/html/functions.html $OCCTDoc_DocLocation/$moduleName/html/functions.html.old - set isLineWrited 0 - set file_new [open $OCCTDoc_DocLocation/$moduleName/html/functions.html {RDWR TRUNC}] - set file_old [open $OCCTDoc_DocLocation/$moduleName/html/functions.html.old RDONLY] - while {[eof $file_old] == 0} { - set fileLine [string trim [gets $file_old]] - if {[string compare $isSearch "TRUE"] == 0} { - if {[string compare [string range $fileLine 0 8] "OCC Main Page | $moduleName | Toolkits | Packages | Class Hierarchy | Data Structures | File List | Data Fields | Globals | Search for " - set isLineWrited 1 - } else { - puts $file_new $fileLine - } - } else { - puts $file_new $fileLine - } - } else { - if {[string compare [string range $fileLine 0 10] "
OCC Main Page | $moduleName | Toolkits | Packages | Class Hierarchy | Data Structures | File List | Data Fields | Globals
" - set isLineWrited 1 - } else { - puts $file_new $fileLine - } - } else { - puts $file_new $fileLine - } - } - } - close $file_old - close $file_new - } - # Processing the file functions_enum.html - if {[file exists $OCCTDoc_DocLocation/$moduleName/html/functions_enum.html] == 1} { - exec cp $OCCTDoc_DocLocation/$moduleName/html/functions_enum.html $OCCTDoc_DocLocation/$moduleName/html/functions_enum.html.old - set isLineWrited 0 - set file_new [open $OCCTDoc_DocLocation/$moduleName/html/functions_enum.html {RDWR TRUNC}] - set file_old [open $OCCTDoc_DocLocation/$moduleName/html/functions_enum.html.old RDONLY] - while {[eof $file_old] == 0} { - set fileLine [string trim [gets $file_old]] - if {[string compare $isSearch "TRUE"] == 0} { - if {[string compare [string range $fileLine 0 8] "OCC Main Page | $moduleName | Toolkits | Packages | Class Hierarchy | Data Structures | File List | Data Fields | Globals | Search for " - set isLineWrited 1 - } else { - puts $file_new $fileLine - } - } else { - puts $file_new $fileLine - } - } else { - if {[string compare [string range $fileLine 0 10] "
OCC Main Page | $moduleName | Toolkits | Packages | Class Hierarchy | Data Structures | File List | Data Fields | Globals
" - set isLineWrited 1 - } else { - puts $file_new $fileLine - } - } else { - puts $file_new $fileLine - } - } - } - close $file_old - close $file_new - } - # Processing the file functions_eval.html - if {[file exists $OCCTDoc_DocLocation/$moduleName/html/functions_eval.html] == 1} { - exec cp $OCCTDoc_DocLocation/$moduleName/html/functions_eval.html $OCCTDoc_DocLocation/$moduleName/html/functions_eval.html.old - set isLineWrited 0 - set file_new [open $OCCTDoc_DocLocation/$moduleName/html/functions_eval.html {RDWR TRUNC}] - set file_old [open $OCCTDoc_DocLocation/$moduleName/html/functions_eval.html.old RDONLY] - while {[eof $file_old] == 0} { - set fileLine [string trim [gets $file_old]] - if {[string compare $isSearch "TRUE"] == 0} { - if {[string compare [string range $fileLine 0 8] "OCC Main Page | $moduleName | Toolkits | Packages | Class Hierarchy | Data Structures | File List | Data Fields | Globals | Search for " - set isLineWrited 1 - } else { - puts $file_new $fileLine - } - } else { - puts $file_new $fileLine - } - } else { - if {[string compare [string range $fileLine 0 10] "
OCC Main Page | $moduleName | Toolkits | Packages | Class Hierarchy | Data Structures | File List | Data Fields | Globals
" - set isLineWrited 1 - } else { - puts $file_new $fileLine - } - } else { - puts $file_new $fileLine - } - } - } - close $file_old - close $file_new - } - # Processing the file functions_func.html - if {[file exists $OCCTDoc_DocLocation/$moduleName/html/functions_func.html] == 1} { - exec cp $OCCTDoc_DocLocation/$moduleName/html/functions_func.html $OCCTDoc_DocLocation/$moduleName/html/functions_func.html.old - set isLineWrited 0 - set file_new [open $OCCTDoc_DocLocation/$moduleName/html/functions_func.html {RDWR TRUNC}] - set file_old [open $OCCTDoc_DocLocation/$moduleName/html/functions_func.html.old RDONLY] - while {[eof $file_old] == 0} { - set fileLine [string trim [gets $file_old]] - if {[string compare $isSearch "TRUE"] == 0} { - if {[string compare [string range $fileLine 0 8] "OCC Main Page | $moduleName | Toolkits | Packages | Class Hierarchy | Data Structures | File List | Data Fields | Globals | Search for " - set isLineWrited 1 - } else { - puts $file_new $fileLine - } - } else { - puts $file_new $fileLine - } - } else { - if {[string compare [string range $fileLine 0 10] "
OCC Main Page | $moduleName | Toolkits | Packages | Class Hierarchy | Data Structures | File List | Data Fields | Globals
" - set isLineWrited 1 - } else { - puts $file_new $fileLine - } - } else { - puts $file_new $fileLine - } - } - } - close $file_old - close $file_new - } - # Processing the file functions_rela.html - if {[file exists $OCCTDoc_DocLocation/$moduleName/html/functions_rela.html] == 1} { - exec cp $OCCTDoc_DocLocation/$moduleName/html/functions_rela.html $OCCTDoc_DocLocation/$moduleName/html/functions_rela.html.old - set isLineWrited 0 - set file_new [open $OCCTDoc_DocLocation/$moduleName/html/functions_rela.html {RDWR TRUNC}] - set file_old [open $OCCTDoc_DocLocation/$moduleName/html/functions_rela.html.old RDONLY] - while {[eof $file_old] == 0} { - set fileLine [string trim [gets $file_old]] - if {[string compare $isSearch "TRUE"] == 0} { - if {[string compare [string range $fileLine 0 8] "OCC Main Page | $moduleName | Toolkits | Packages | Class Hierarchy | Data Structures | File List | Data Fields | Globals | Search for " - set isLineWrited 1 - } else { - puts $file_new $fileLine - } - } else { - puts $file_new $fileLine - } - } else { - if {[string compare [string range $fileLine 0 10] "
OCC Main Page | $moduleName | Toolkits | Packages | Class Hierarchy | Data Structures | File List | Data Fields | Globals
" - set isLineWrited 1 - } else { - puts $file_new $fileLine - } - } else { - puts $file_new $fileLine - } - } - } - close $file_old - close $file_new - } - # Processing the file functions_vars.html - if {[file exists $OCCTDoc_DocLocation/$moduleName/html/functions_vars.html] == 1} { - exec cp $OCCTDoc_DocLocation/$moduleName/html/functions_vars.html $OCCTDoc_DocLocation/$moduleName/html/functions_vars.html.old - set isLineWrited 0 - set file_new [open $OCCTDoc_DocLocation/$moduleName/html/functions_vars.html {RDWR TRUNC}] - set file_old [open $OCCTDoc_DocLocation/$moduleName/html/functions_vars.html.old RDONLY] - while {[eof $file_old] == 0} { - set fileLine [string trim [gets $file_old]] - if {[string compare $isSearch "TRUE"] == 0} { - if {[string compare [string range $fileLine 0 8] "OCC Main Page | $moduleName | Toolkits | Packages | Class Hierarchy | Data Structures | File List | Data Fields | Globals | Search for " - set isLineWrited 1 - } else { - puts $file_new $fileLine - } - } else { - puts $file_new $fileLine - } - } else { - if {[string compare [string range $fileLine 0 10] "
OCC Main Page | $moduleName | Toolkits | Packages | Class Hierarchy | Data Structures | File List | Data Fields | Globals
" - set isLineWrited 1 - } else { - puts $file_new $fileLine - } - } else { - puts $file_new $fileLine - } - } - } - close $file_old - close $file_new - } - # Processing the file functions_type.html - if {[file exists $OCCTDoc_DocLocation/$moduleName/html/functions_type.html] == 1} { - exec cp $OCCTDoc_DocLocation/$moduleName/html/functions_type.html $OCCTDoc_DocLocation/$moduleName/html/functions_type.html.old - set isLineWrited 0 - set file_new [open $OCCTDoc_DocLocation/$moduleName/html/functions_type.html {RDWR TRUNC}] - set file_old [open $OCCTDoc_DocLocation/$moduleName/html/functions_type.html.old RDONLY] - while {[eof $file_old] == 0} { - set fileLine [string trim [gets $file_old]] - if {[string compare $isSearch "TRUE"] == 0} { - if {[string compare [string range $fileLine 0 8] "OCC Main Page | $moduleName | Toolkits | Packages | Class Hierarchy | Data Structures | File List | Data Fields | Globals | Search for " - set isLineWrited 1 - } else { - puts $file_new $fileLine - } - } else { - puts $file_new $fileLine - } - } else { - if {[string compare [string range $fileLine 0 10] "
OCC Main Page | $moduleName | Toolkits | Packages | Class Hierarchy | Data Structures | File List | Data Fields | Globals
" - set isLineWrited 1 - } else { - puts $file_new $fileLine - } - } else { - puts $file_new $fileLine - } - } - } - close $file_old - close $file_new - } - # Processing the file globals.html - if {[file exists $OCCTDoc_DocLocation/$moduleName/html/globals.html] == 1} { - exec cp $OCCTDoc_DocLocation/$moduleName/html/globals.html $OCCTDoc_DocLocation/$moduleName/html/globals.html.old - set isLineWrited 0 - set file_new [open $OCCTDoc_DocLocation/$moduleName/html/globals.html {RDWR TRUNC}] - set file_old [open $OCCTDoc_DocLocation/$moduleName/html/globals.html.old RDONLY] - while {[eof $file_old] == 0} { - set fileLine [string trim [gets $file_old]] - if {[string compare $isSearch "TRUE"] == 0} { - if {[string compare [string range $fileLine 0 8] "OCC Main Page | $moduleName | Toolkits | Packages | Class Hierarchy | Data Structures | File List | Data Fields | Globals | Search for " - set isLineWrited 1 - } else { - puts $file_new $fileLine - } - } else { - puts $file_new $fileLine - } - } else { - if {[string compare [string range $fileLine 0 10] "
OCC Main Page | $moduleName | Toolkits | Packages | Class Hierarchy | Data Structures | File List | Data Fields | Globals
" - set isLineWrited 1 - } else { - puts $file_new $fileLine - } - } else { - puts $file_new $fileLine - } - } - } - close $file_old - close $file_new - } - # Processing the file globals_defs.html - if {[file exists $OCCTDoc_DocLocation/$moduleName/html/globals_defs.html] == 1} { - exec cp $OCCTDoc_DocLocation/$moduleName/html/globals_defs.html $OCCTDoc_DocLocation/$moduleName/html/globals_defs.html.old - set isLineWrited 0 - set file_new [open $OCCTDoc_DocLocation/$moduleName/html/globals_defs.html {RDWR TRUNC}] - set file_old [open $OCCTDoc_DocLocation/$moduleName/html/globals_defs.html.old RDONLY] - while {[eof $file_old] == 0} { - set fileLine [string trim [gets $file_old]] - if {[string compare $isSearch "TRUE"] == 0} { - if {[string compare [string range $fileLine 0 8] "OCC Main Page | $moduleName | Toolkits | Packages | Class Hierarchy | Data Structures | File List | Data Fields | Globals | Search for " - set isLineWrited 1 - } else { - puts $file_new $fileLine - } - } else { - puts $file_new $fileLine - } - } else { - if {[string compare [string range $fileLine 0 10] "
OCC Main Page | $moduleName | Toolkits | Packages | Class Hierarchy | Data Structures | File List | Data Fields | Globals
" - set isLineWrited 1 - } else { - puts $file_new $fileLine - } - } else { - puts $file_new $fileLine - } - } - } - close $file_old - close $file_new - } - # Processing the file globals_enum.html - if {[file exists $OCCTDoc_DocLocation/$moduleName/html/globals_enum.html] == 1} { - exec cp $OCCTDoc_DocLocation/$moduleName/html/globals_enum.html $OCCTDoc_DocLocation/$moduleName/html/globals_enum.html.old - set isLineWrited 0 - set file_new [open $OCCTDoc_DocLocation/$moduleName/html/globals_enum.html {RDWR TRUNC}] - set file_old [open $OCCTDoc_DocLocation/$moduleName/html/globals_enum.html.old RDONLY] - while {[eof $file_old] == 0} { - set fileLine [string trim [gets $file_old]] - if {[string compare $isSearch "TRUE"] == 0} { - if {[string compare [string range $fileLine 0 8] "OCC Main Page | $moduleName | Toolkits | Packages | Class Hierarchy | Data Structures | File List | Data Fields | Globals | Search for " - set isLineWrited 1 - } else { - puts $file_new $fileLine - } - } else { - puts $file_new $fileLine - } - } else { - if {[string compare [string range $fileLine 0 10] "
OCC Main Page | $moduleName | Toolkits | Packages | Class Hierarchy | Data Structures | File List | Data Fields | Globals
" - set isLineWrited 1 - } else { - puts $file_new $fileLine - } - } else { - puts $file_new $fileLine - } - } - } - close $file_old - close $file_new - } - # Processing the file globals_eval.html - if {[file exists $OCCTDoc_DocLocation/$moduleName/html/globals_eval.html] == 1} { - exec cp $OCCTDoc_DocLocation/$moduleName/html/globals_eval.html $OCCTDoc_DocLocation/$moduleName/html/globals_eval.html.old - set isLineWrited 0 - set file_new [open $OCCTDoc_DocLocation/$moduleName/html/globals_eval.html {RDWR TRUNC}] - set file_old [open $OCCTDoc_DocLocation/$moduleName/html/globals_eval.html.old RDONLY] - while {[eof $file_old] == 0} { - set fileLine [string trim [gets $file_old]] - if {[string compare $isSearch "TRUE"] == 0} { - if {[string compare [string range $fileLine 0 8] "OCC Main Page | $moduleName | Toolkits | Packages | Class Hierarchy | Data Structures | File List | Data Fields | Globals | Search for " - set isLineWrited 1 - } else { - puts $file_new $fileLine - } - } else { - puts $file_new $fileLine - } - } else { - if {[string compare [string range $fileLine 0 10] "
OCC Main Page | $moduleName | Toolkits | Packages | Class Hierarchy | Data Structures | File List | Data Fields | Globals
" - set isLineWrited 1 - } else { - puts $file_new $fileLine - } - } else { - puts $file_new $fileLine - } - } - } - close $file_old - close $file_new - } - # Processing the file globals_func.html - if {[file exists $OCCTDoc_DocLocation/$moduleName/html/globals_func.html] == 1} { - exec cp $OCCTDoc_DocLocation/$moduleName/html/globals_func.html $OCCTDoc_DocLocation/$moduleName/html/globals_func.html.old - set isLineWrited 0 - set file_new [open $OCCTDoc_DocLocation/$moduleName/html/globals_func.html {RDWR TRUNC}] - set file_old [open $OCCTDoc_DocLocation/$moduleName/html/globals_func.html.old RDONLY] - while {[eof $file_old] == 0} { - set fileLine [string trim [gets $file_old]] - if {[string compare $isSearch "TRUE"] == 0} { - if {[string compare [string range $fileLine 0 8] "OCC Main Page | $moduleName | Toolkits | Packages | Class Hierarchy | Data Structures | File List | Data Fields | Globals | Search for " - set isLineWrited 1 - } else { - puts $file_new $fileLine - } - } else { - puts $file_new $fileLine - } - } else { - if {[string compare [string range $fileLine 0 10] "
OCC Main Page | $moduleName | Toolkits | Packages | Class Hierarchy | Data Structures | File List | Data Fields | Globals
" - set isLineWrited 1 - } else { - puts $file_new $fileLine - } - } else { - puts $file_new $fileLine - } - } - } - close $file_old - close $file_new - } - # Processing the file globals_type.html - if {[file exists $OCCTDoc_DocLocation/$moduleName/html/globals_type.html] == 1} { - exec cp $OCCTDoc_DocLocation/$moduleName/html/globals_type.html $OCCTDoc_DocLocation/$moduleName/html/globals_type.html.old - set isLineWrited 0 - set file_new [open $OCCTDoc_DocLocation/$moduleName/html/globals_type.html {RDWR TRUNC}] - set file_old [open $OCCTDoc_DocLocation/$moduleName/html/globals_type.html.old RDONLY] - while {[eof $file_old] == 0} { - set fileLine [string trim [gets $file_old]] - if {[string compare $isSearch "TRUE"] == 0} { - if {[string compare [string range $fileLine 0 8] "OCC Main Page | $moduleName | Toolkits | Packages | Class Hierarchy | Data Structures | File List | Data Fields | Globals | Search for " - set isLineWrited 1 - } else { - puts $file_new $fileLine - } - } else { - puts $file_new $fileLine - } - } else { - if {[string compare [string range $fileLine 0 10] "
OCC Main Page | $moduleName | Toolkits | Packages | Class Hierarchy | Data Structures | File List | Data Fields | Globals
" - set isLineWrited 1 - } else { - puts $file_new $fileLine - } - } else { - puts $file_new $fileLine - } - } - } - close $file_old - close $file_new - } - # Processing the file globals_vars.html - if {[file exists $OCCTDoc_DocLocation/$moduleName/html/globals_vars.html] == 1} { - exec cp $OCCTDoc_DocLocation/$moduleName/html/globals_vars.html $OCCTDoc_DocLocation/$moduleName/html/globals_vars.html.old - set isLineWrited 0 - set file_new [open $OCCTDoc_DocLocation/$moduleName/html/globals_vars.html {RDWR TRUNC}] - set file_old [open $OCCTDoc_DocLocation/$moduleName/html/globals_vars.html.old RDONLY] - while {[eof $file_old] == 0} { - set fileLine [string trim [gets $file_old]] - if {[string compare $isSearch "TRUE"] == 0} { - if {[string compare [string range $fileLine 0 8] "OCC Main Page | $moduleName | Toolkits | Packages | Class Hierarchy | Data Structures | File List | Data Fields | Globals | Search for " - set isLineWrited 1 - } else { - puts $file_new $fileLine - } - } else { - puts $file_new $fileLine - } - } else { - if {[string compare [string range $fileLine 0 10] "
OCC Main Page | $moduleName | Toolkits | Packages | Class Hierarchy | Data Structures | File List | Data Fields | Globals
" - set isLineWrited 1 - } else { - puts $file_new $fileLine - } - } else { - puts $file_new $fileLine - } - } - } - close $file_old - close $file_new - } - # Processing the file graph_legend.html - if {[file exists $OCCTDoc_DocLocation/$moduleName/html/graph_legend.html] == 1} { - exec cp $OCCTDoc_DocLocation/$moduleName/html/graph_legend.html $OCCTDoc_DocLocation/$moduleName/html/graph_legend.html.old - set isLineWrited 0 - set file_new [open $OCCTDoc_DocLocation/$moduleName/html/graph_legend.html {RDWR TRUNC}] - set file_old [open $OCCTDoc_DocLocation/$moduleName/html/graph_legend.html.old RDONLY] - while {[eof $file_old] == 0} { - set fileLine [string trim [gets $file_old]] - if {[string compare $isSearch "TRUE"] == 0} { - if {[string compare [string range $fileLine 0 8] "OCC Main Page | $moduleName | Toolkits | Packages | Class Hierarchy | Data Structures | File List | Data Fields | Globals | Search for " - set isLineWrited 1 - } else { - puts $file_new $fileLine - } - } else { - puts $file_new $fileLine - } - } else { - if {[string compare [string range $fileLine 0 10] "
OCC Main Page | $moduleName | Toolkits | Packages | Class Hierarchy | Data Structures | File List | Data Fields | Globals
" - set isLineWrited 1 - } else { - puts $file_new $fileLine - } - } else { - puts $file_new $fileLine - } + } + + # filter out files Handle_*.hxx and *.lxx + set hdrlist {} + foreach fileset $filelist { + set hdrset {} + foreach hdr $fileset { + if { ! [regexp {Handle_.*[.]hxx} $hdr] && ! [regexp {.*[.]lxx} $hdr] } { + lappend hdrset $hdr } } - close $file_old - close $file_new + lappend hdrlist $hdrset } - # Processing the file hierarchy.html - if {[file exists $OCCTDoc_DocLocation/$moduleName/html/hierarchy.html] == 1} { - exec cp $OCCTDoc_DocLocation/$moduleName/html/hierarchy.html $OCCTDoc_DocLocation/$moduleName/html/hierarchy.html.old - set isLineWrited 0 - set file_new [open $OCCTDoc_DocLocation/$moduleName/html/hierarchy.html {RDWR TRUNC}] - set file_old [open $OCCTDoc_DocLocation/$moduleName/html/hierarchy.html.old RDONLY] - while {[eof $file_old] == 0} { - set fileLine [string trim [gets $file_old]] - if {[string compare $isSearch "TRUE"] == 0} { - if {[string compare [string range $fileLine 0 8] "OCC Main Page | $moduleName | Toolkits | Packages | Class Hierarchy | Data Structures | File List | Data Fields | Globals | Search for " - set isLineWrited 1 - } else { - puts $file_new $fileLine - } - } else { - puts $file_new $fileLine - } - } else { - if {[string compare [string range $fileLine 0 10] "
OCC Main Page | $moduleName | Toolkits | Packages | Class Hierarchy | Data Structures | File List | Data Fields | Globals
" - set isLineWrited 1 - } else { - puts $file_new $fileLine - } - } else { - puts $file_new $fileLine - } - } - } - close $file_old - close $file_new + set filelist $hdrlist + + # get OCCT version number + set occt_version "" + set verfile [woklocate -p "Standard:source:Standard_Version.hxx"] + if { "$verfile" != "" && [file readable $verfile] } { + set vfd [open $verfile "r"] + set vmajor "" + set vminor "" + set vpatch "" + set vbuild "" + while { [gets $vfd line] >= 0 } { + if { [regexp {^[ \t]*\#define[ \t]*OCC_VERSION_MAJOR[ \t]*([0-9]+)} $line str num] } { + set vmajor $num + } elseif { [regexp {^[ \t]*\#define[ \t]*OCC_VERSION_MINOR[ \t]*([0-9]+)} $line str num] } { + set vminor $num + } elseif { [regexp {^[ \t]*\#define[ \t]*OCC_VERSION_MAINTENANCE[ \t]*([0-9]+)} $line str num] || + [regexp {^[ \t]*\#define[ \t]*OCC_VERSION_PATCH[ \t]*([0-9]+)} $line str num] } { + set vpatch $num + } elseif { [regexp {^[ \t]*\#define[ \t]*OCC_VERSION_BUILD[ \t]*([0-9]+)} $line str num] } { + set vbuild .$num + } + } + close $vfd + set occt_version $vmajor.$vminor.$vpatch$vbuild } - # Processing the file inherits.html - if {[file exists $OCCTDoc_DocLocation/$moduleName/html/inherits.html] == 1} { - exec cp $OCCTDoc_DocLocation/$moduleName/html/inherits.html $OCCTDoc_DocLocation/$moduleName/html/inherits.html.old - set isLineWrited 0 - set file_new [open $OCCTDoc_DocLocation/$moduleName/html/inherits.html {RDWR TRUNC}] - set file_old [open $OCCTDoc_DocLocation/$moduleName/html/inherits.html.old RDONLY] - while {[eof $file_old] == 0} { - set fileLine [string trim [gets $file_old]] - if {[string compare $isSearch "TRUE"] == 0} { - if {[string compare [string range $fileLine 0 8] "OCC Main Page | $moduleName | Toolkits | Packages | Class Hierarchy | Data Structures | File List | Data Fields | Globals | Search for " - set isLineWrited 1 - } else { - puts $file_new $fileLine - } - } else { - puts $file_new $fileLine - } - } else { - if {[string compare [string range $fileLine 0 10] "
OCC Main Page | $moduleName | Toolkits | Packages | Class Hierarchy | Data Structures | File List | Data Fields | Globals
" - set isLineWrited 1 - } else { - puts $file_new $fileLine - } - } else { - puts $file_new $fileLine - } + + set filename "$outDir/$name.Doxyfile" + msgprint -i -c "WOKStep_DocGenerate:Execute" "Generating Doxygen file for $title in $filename" + set fileid [open $filename "w"] + + set path_prefix "$outDir/" + + puts $fileid "PROJECT_NAME = \"$title\"" + puts $fileid "PROJECT_NUMBER = $occt_version " + puts $fileid "OUTPUT_DIRECTORY = ${path_prefix}." + puts $fileid "CREATE_SUBDIRS = NO" + puts $fileid "OUTPUT_LANGUAGE = English" + puts $fileid "MULTILINE_CPP_IS_BRIEF = YES" + puts $fileid "INHERIT_DOCS = YES" + puts $fileid "REPEAT_BRIEF = NO" + puts $fileid "ALWAYS_DETAILED_SEC = NO" + puts $fileid "INLINE_INHERITED_MEMB = NO" + puts $fileid "FULL_PATH_NAMES = NO" + puts $fileid "OPTIMIZE_OUTPUT_FOR_C = YES" + puts $fileid "SUBGROUPING = YES" + puts $fileid "DISTRIBUTE_GROUP_DOC = YES" + puts $fileid "EXTRACT_ALL = YES" + puts $fileid "EXTRACT_PRIVATE = NO" + puts $fileid "EXTRACT_LOCAL_CLASSES = NO" + puts $fileid "EXTRACT_LOCAL_METHODS = NO" + puts $fileid "HIDE_FRIEND_COMPOUNDS = YES" + puts $fileid "HIDE_UNDOC_MEMBERS = NO" + puts $fileid "INLINE_INFO = YES" + puts $fileid "SHOW_DIRECTORIES = NO" + puts $fileid "VERBATIM_HEADERS = NO" + puts $fileid "QUIET = YES" + puts $fileid "WARNINGS = NO" + puts $fileid "ENABLE_PREPROCESSING = YES" + puts $fileid "MACRO_EXPANSION = YES" + puts $fileid "EXPAND_ONLY_PREDEF = YES" + puts $fileid "PREDEFINED = Standard_EXPORT __Standard_API __Draw_API Handle(a):=Handle" + puts $fileid "GENERATE_HTML = YES" + puts $fileid "GENERATE_LATEX = NO" + puts $fileid "SEARCH_INCLUDES = YES" + puts $fileid "GENERATE_TAGFILE = ${path_prefix}${name}.tag" + puts $fileid "ALLEXTERNALS = NO" + puts $fileid "EXTERNAL_GROUPS = NO" + + # add tag files for OCCT modules (except current one and depending); + # this is based on file Modules.tcl in unit "OS" which defines list of modules + # in the order of their dependency + if { [llength $tagFiles] > 0 } { + set tagdef {} + foreach tagfile $tagFiles { + if [file exists ${path_prefix}$tagname.tag] { + set tagdef "$tagdef \\\n ${path_prefix}${tagname}.tag=../../${tagname}/html" } } - close $file_old - close $file_new + puts $fileid "TAGFILES = $tagdef" } -} -proc OCCTDoc_CreateToolkitHTML {OCCTDoc_DocLocation isSearch moduleName toolkitsList packagesListOfList} { - if {[file exists $OCCTDoc_DocLocation/$moduleName/html/toolkits] == 0} { - exec mkdir $OCCTDoc_DocLocation/$moduleName/html/toolkits - } - set file_toolkitsHTML [open $OCCTDoc_DocLocation/$moduleName/html/toolkits.html {CREAT TRUNC RDWR}] - puts $file_toolkitsHTML "" - puts $file_toolkitsHTML "" - puts $file_toolkitsHTML "$moduleName: Toolkits" - puts $file_toolkitsHTML "" - puts $file_toolkitsHTML "" - if {[string compare $isSearch "TRUE"] == 0} { - puts $file_toolkitsHTML "
" - puts $file_toolkitsHTML "OCC Main Page | $moduleName | Toolkits | Packages | Class Hierarchy | Data Structures | File List | Data Fields | Globals | Search for 
" - } else { - puts $file_toolkitsHTML "
OCC Main Page | $moduleName | Toolkits | Packages | Class Hierarchy | Data Structures | File List | Data Fields | Globals
" + if { $useSearch } { + puts $fileid "SEARCHENGINE = $useSearch" +# puts $fileid "SERVER_BASED_SEARCH = NO" } - puts $file_toolkitsHTML "

$moduleName
Toolkits

" - puts $file_toolkitsHTML "
" - puts $file_toolkitsHTML "" - puts $file_toolkitsHTML "
" - puts $file_toolkitsHTML "" - puts $file_toolkitsHTML "" - close $file_toolkitsHTML -} - -proc OCCTDoc_CreatePackageHTML {OCCTDoc_DocLocation isSearch moduleName toolkitsList packagesListOfList} { - if {[file exists $OCCTDoc_DocLocation/$moduleName/html/packages] == 0} { - exec mkdir $OCCTDoc_DocLocation/$moduleName/html/packages + if { "$graphvizPath" == "" && [info exists env(GRAPHVIZ_HOME)] } { + set graphvizPath $env(GRAPHVIZ_HOME) } - set file_packagesHTML [open $OCCTDoc_DocLocation/$moduleName/html/packages.html {CREAT TRUNC RDWR}] - puts $file_packagesHTML "" - puts $file_packagesHTML "" - puts $file_packagesHTML "$moduleName: Packages" - puts $file_packagesHTML "" - puts $file_packagesHTML "" - if {[string compare $isSearch "TRUE"] == 0} { - puts $file_packagesHTML "
" - puts $file_packagesHTML "OCC Main Page | $moduleName | Toolkits | Packages | Class Hierarchy | Data Structures | File List | Data Fields | Globals | Search for 
" + if { "$graphvizPath" != "" } { + puts $fileid "HAVE_DOT = YES" + puts $fileid "DOT_PATH = $graphvizPath" } else { - puts $file_packagesHTML "
OCC Main Page | $moduleName | Toolkits | Packages | Class Hierarchy | Data Structures | File List | Data Fields | Globals
" + puts "Warning: DOT is not found; use environment variable GRAPHVIZ_HOME or command argument to specify its location" + puts $fileid "HAVE_DOT = NO" + puts $fileid "DOT_PATH = " } - puts $file_packagesHTML "

$moduleName
Packages

" - puts $file_packagesHTML "
" - puts $file_packagesHTML "" - puts $file_packagesHTML "
" - puts $file_packagesHTML "" - puts $file_packagesHTML "" - close $file_packagesHTML -} -proc OCCTDoc_ProcessToolkitsHTML {OCCTDoc_DocLocation isSearch moduleName toolkitName packagesList} { - if {[file exists $OCCTDoc_DocLocation/$moduleName/html/toolkits] == 0} { - exec mkdir $OCCTDoc_DocLocation/$moduleName/html/toolkits - } - set file_toolkitHTML [open $OCCTDoc_DocLocation/$moduleName/html/toolkits/$toolkitName.html {CREAT TRUNC RDWR}] - puts $file_toolkitHTML "" - puts $file_toolkitHTML "" - puts $file_toolkitHTML "$moduleName: $toolkitName: Packages" - puts $file_toolkitHTML "" - puts $file_toolkitHTML "" - if {[string compare $isSearch "TRUE"] == 0} { - puts $file_toolkitHTML "
" - puts $file_toolkitHTML "OCC Main Page | $moduleName | Toolkits | Packages | Class Hierarchy | Data Structures | File List | Data Fields | Globals | Search for 
" - } else { - puts $file_toolkitHTML "
OCC Main Page | $moduleName | Toolkits | Packages | Class Hierarchy | Data Structures | File List | Data Fields | Globals
" - } - puts $file_toolkitHTML "

$moduleName
$toolkitName
Packages

" - puts $file_toolkitHTML "
" - puts $file_toolkitHTML "" - puts $file_toolkitHTML "
" - puts $file_toolkitHTML "" - puts $file_toolkitHTML "" - close $file_toolkitHTML + puts $fileid "INCLUDE_PATH = $incdirs" + + # list of files to generate + set mainpage [OCCDoc_MakeMainPage $outDir/$name.dox $modules] + puts $fileid "INPUT = $mainpage \\" + foreach header $filelist { + puts $fileid " $header \\" + } + puts $fileid "" + + close $fileid + + return $filename } -proc OCCTDoc_ProcessPackagesHTML {OCCTDoc_DocLocation isSearch moduleName toolkitName packageName} { - if {[file exists $OCCTDoc_DocLocation/$moduleName/html/packages] == 0} { - exec mkdir $OCCTDoc_DocLocation/$moduleName/html/packages - } - set file_packageHTML [open $OCCTDoc_DocLocation/$moduleName/html/packages/$packageName.html {CREAT TRUNC RDWR}] - puts $file_packageHTML "" - puts $file_packageHTML "" - puts $file_packageHTML "$moduleName: $toolkitName: $packageName: Classes" - puts $file_packageHTML "" - puts $file_packageHTML "" - if {[string compare $isSearch "TRUE"] == 0} { - puts $file_packageHTML "
" - puts $file_packageHTML "OCC Main Page | $moduleName | Toolkits | Packages | Class Hierarchy | Data Structures | File List | Data Fields | Globals | Search for 
" - } else { - puts $file_packageHTML "
OCC Main Page | $moduleName | Toolkits | Packages | Class Hierarchy | Data Structures | File List | Data Fields | Globals
" - } - puts $file_packageHTML "

$moduleName
$toolkitName
$packageName
Classes

" - puts $file_packageHTML "
" - puts $file_packageHTML "" - puts $file_packageHTML "" - puts $file_packageHTML "
" - puts $file_packageHTML "" - puts $file_packageHTML "" - close $file_packageHTML -} -proc OCCTDoc_UpdateClassDescriptionFile {OCCTDoc_DocLocation isSearch pathToFile moduleName toolkitName packageName} { - set updatedPath [string trim $pathToFile] - set backPath "" - set empty 0 - while {$empty == 0} { - set positionNumber [string first / $updatedPath] - if {$positionNumber == -1} { - break + # one page per module: list of toolkits + set toolkits {} + foreach mod $modules { + puts $fd "/**" + if { $one_module } { + puts $fd "\\mainpage OCCT Module [$mod:name]" } else { - append backPath "../" - set updatedPath [string trim [string range $updatedPath [expr {$positionNumber + 1}] [string length $updatedPath]]] + puts $fd "\\page [string tolower module_$mod] Module [$mod:name]" } + foreach tk [lsort [$mod:toolkits]] { + lappend toolkits $tk + puts $fd "\\li \\subpage [string tolower toolkit_$tk]" + } + puts $fd "**/\n" + } + + # one page per toolkit: list of packages + set packages {} + foreach tk $toolkits { + puts $fd "/**" + puts $fd "\\page [string tolower toolkit_$tk] Toolkit $tk" + foreach pk [lsort [osutils:tk:units [woklocate -u $tk]]] { + lappend packages $pk + set u [wokinfo -n $pk] + puts $fd "\\li \\subpage [string tolower package_$u]" + } + puts $fd "**/\n" } - set file_ClassHTML_old "$OCCTDoc_DocLocation/$moduleName/html/$pathToFile.old" - set file_ClassHTML_new "$OCCTDoc_DocLocation/$moduleName/html/$pathToFile" - if {[file exists $file_ClassHTML_new] == 1} { - exec cp $file_ClassHTML_new $file_ClassHTML_old - set isLineWrited 0 - set file_classHTML_new [open $file_ClassHTML_new {RDWR TRUNC}] - set file_classHTML_old [open $file_ClassHTML_old RDONLY] - while {[eof $file_classHTML_old] == 0} { - set classLine [string trim [gets $file_classHTML_old]] - if {[string compare $isSearch "TRUE"] == 0} { - if {[string compare [string range $classLine 0 8] "OCC Main Page | $moduleName | Toolkits | Packages | Class Hierarchy | Data Structures | File List | Data Fields | Globals | Search for " - puts $file_classHTML_new "

$moduleName
$toolkitName
$packageName

" - puts $file_classHTML_new "
" - set isLineWrited 1 - } else { - puts $file_classHTML_new $classLine - } - } else { - puts $file_classHTML_new $classLine - } - } else { - if {[string compare [string range $classLine 0 10] "
OCC Main Page | $moduleName | Toolkits | Packages | Class Hierarchy | Data Structures | File List | Data Fields | Globals
" - puts $file_classHTML_new "

$moduleName
$toolkitName
$packageName

" - puts $file_classHTML_new "
" - set isLineWrited 1 - } else { - puts $file_classHTML_new $classLine - } - } else { - puts $file_classHTML_new $classLine - } + + # one page per package: list of classes + foreach pk $packages { + set u [wokinfo -n $pk] + puts $fd "/**" + puts $fd "\\page [string tolower package_$u] Package $u" + foreach hdr [lsort [uinfo -f -T pubinclude $pk]] { + if { ! [regexp {^Handle_} $hdr] && [regexp {(.*)[.]hxx} $hdr str obj] } { + puts $fd "\\li \\subpage $obj" } } - close $file_classHTML_old - close $file_classHTML_new - } else { - puts "$file_ClassHTML_new is absent" + puts $fd "**/\n" } + + # one page per class: set reference to package +# foreach pk $packages { +# set u [wokinfo -n $pk] +# foreach hdr [uinfo -f -T pubinclude $pk] { +# if { ! [regexp {^Handle_} $hdr] && [regexp {(.*)[.]hxx} $hdr str obj] } { +# puts $fd "/**" +# puts $fd "\\class $obj" +# puts $fd "Contained in \\ref [string tolower package_$u]" +## puts $fd "\\addtogroup package_$u" +# puts $fd "**/\n" +# } +# } +# } + + close $fd + return $outFile }