@@ -4,6 +4,7 @@ CHECK_WARNINGS=true
44
55if [ $# -lt 1 ]; then
66 echo " [INFO] Target directory is not specified. Used \" MeshLib/local\" "
7+ CHECK_WARNINGS=false
78fi
89
910MODULES=(Main Cpp Py C Csharp)
1415# Use "MeshLib/local" as default if $1 is not provided
1516TARGET_DIR=" ${1:- MeshLib/ local} "
1617
17- # preparing files
18- bash ./scripts/pre.sh " $TARGET_DIR "
19- if [ $? -ne 0 ]; then
20- echo " [ERROR] Problem in preparing files. Abort operation."
21- exit 1
22- fi
2318
24- # create output directory
25- mkdir -p ${TARGET_DIR} /html
26- # clear output directory
27- rm -rf ${TARGET_DIR} /html/*
19+ prepare_setting_files () {
20+ echo " 1.prepare_setting_files"
21+ bash ./scripts/pre.sh " $TARGET_DIR "
22+ if [ $? -ne 0 ]; then
23+ echo " [ERROR] Problem in preparing files. Abort operation."
24+ return 1
25+ fi
26+ }
27+
2828
29- if [ " $CHECK_WARNINGS " = false ]; then
29+ prepare_output_directory () {
30+ echo " 2.prepare_output_directory"
31+ mkdir -p ${TARGET_DIR} /html
32+ # clear output directory
33+ rm -rf ${TARGET_DIR} /html/*
34+ }
35+
36+ clear_log_files () {
37+ echo " 3.clear_log_files"
3038 rm log* .txt
31- fi
39+ }
3240
33- # generate tag files
34- for MODULE in ${MODULES[*]}
35- do
36- cp Doxyfile${MODULE} Doxyfile${MODULE} Tag
37- echo " " >> Doxyfile${MODULE} Tag
38- echo " GENERATE_TAGFILE = MeshLib/MeshLib${MODULE} .tag" >> Doxyfile${MODULE} Tag
39- echo " ========== ${MODULE} " >> log_tag.txt
40- echo " ========== ${MODULE} " >> log_tag_error.txt
41- start=$( date +%s.%N)
42- doxygen -d time ./Doxyfile${MODULE} Tag 1>> log_tag.txt 2>> log_tag_error.txt
43- end=$( date +%s.%N)
44- runtime=$( echo " $end - $start " | bc)
45- echo " ${MODULE} tag $runtime seconds" >> log_time.txt
46- rm Doxyfile${MODULE} Tag
47-
48- done
49- rm -rf ${TARGET_DIR} /html/*
50-
51- # check doxygen error (bad doxyfile, missing sources)
52- if [ " $CHECK_WARNINGS " = true ] && grep -q " ^warning: " log_tag_error.txt; then
53- echo " ERROR: documentation generation error"
54- cat log_tag_error.txt
55- exit 1
56- fi
41+ generate_documentation () {
42+ echo " 4.generate_documentation"
43+ # generate tag files
44+ for MODULE in ${MODULES[*]}
45+ do
46+ cp Doxyfile${MODULE} Doxyfile${MODULE} Tag
47+ echo " " >> Doxyfile${MODULE} Tag
48+ echo " GENERATE_TAGFILE = MeshLib/MeshLib${MODULE} .tag" >> Doxyfile${MODULE} Tag
49+ echo " ========== ${MODULE} " >> log_tag.txt
50+ echo " ========== ${MODULE} " >> log_tag_error.txt
51+ start=$( date +%s.%N)
52+ doxygen -d time ./Doxyfile${MODULE} Tag 1>> log_tag.txt 2>> log_tag_error.txt
53+ end=$( date +%s.%N)
54+ runtime=$( echo " $end - $start " | bc)
55+ echo " ${MODULE} tag $runtime seconds" >> log_time.txt
56+ rm Doxyfile${MODULE} Tag
57+
58+ done
59+ rm -rf ${TARGET_DIR} /html/*
5760
58- # final generation of documentation
59- for MODULE in ${MODULES[*]}
60- do
61- cp Doxyfile${MODULE} Doxyfile${MODULE} Tag
62- DIR=" .."
63- if [ " $MODULE " = " Main" ]; then
64- DIR=" ."
61+ # check doxygen error (bad doxyfile, missing sources)
62+ if [ " $CHECK_WARNINGS " = true ] && grep -q " ^warning: " log_tag_error.txt; then
63+ cat log_tag_error.txt
64+ echo " ERROR: documentation generation error 1"
65+ return 1
6566 fi
66- for MODULE_2 in ${MODULES[*]}
67+
68+ # final generation of documentation
69+ for MODULE in ${MODULES[*]}
6770 do
68- if [ " $MODULE " = " $MODULE_2 " ]; then
69- continue
70- elif [ " $MODULE_2 " = " Main" ]; then
71- echo " " >> Doxyfile${MODULE} Tag
72- echo " TAGFILES += MeshLib/MeshLib${MODULE_2} .tag=../" >> Doxyfile${MODULE} Tag
73- else
74- echo " " >> Doxyfile${MODULE} Tag
75- echo " TAGFILES += MeshLib/MeshLib${MODULE_2} .tag=${DIR} /${MODULE_2} /" >> Doxyfile${MODULE} Tag
71+ cp Doxyfile${MODULE} Doxyfile${MODULE} Tag
72+ DIR=" .."
73+ if [ " $MODULE " = " Main" ]; then
74+ DIR=" ."
7675 fi
76+ for MODULE_2 in ${MODULES[*]}
77+ do
78+ if [ " $MODULE " = " $MODULE_2 " ]; then
79+ continue
80+ elif [ " $MODULE_2 " = " Main" ]; then
81+ echo " " >> Doxyfile${MODULE} Tag
82+ echo " TAGFILES += MeshLib/MeshLib${MODULE_2} .tag=../" >> Doxyfile${MODULE} Tag
83+ else
84+ echo " " >> Doxyfile${MODULE} Tag
85+ echo " TAGFILES += MeshLib/MeshLib${MODULE_2} .tag=${DIR} /${MODULE_2} /" >> Doxyfile${MODULE} Tag
86+ fi
87+ done
88+ if [ " $MODULE " = " Cpp" ]; then
89+ echo " GENERATE_XML = YES" >> Doxyfile${MODULE} Tag
90+ echo " XML_OUTPUT = ./xml" >> Doxyfile${MODULE} Tag
91+ fi
92+ echo " ========== ${MODULE} " >> log.txt
93+ echo " ========== ${MODULE} " >> log_error.txt
94+ start=$( date +%s.%N)
95+ doxygen -d time ./Doxyfile${MODULE} Tag 1>> log.txt 2>> log_error.txt
96+ end=$( date +%s.%N)
97+ runtime=$( echo " $end - $start " | bc)
98+ echo " ${MODULE} $runtime seconds" >> log_time.txt
99+ rm Doxyfile${MODULE} Tag
77100 done
78- if [ " $MODULE " = " Cpp" ]; then
79- echo " GENERATE_XML = YES" >> Doxyfile${MODULE} Tag
80- echo " XML_OUTPUT = ./xml" >> Doxyfile${MODULE} Tag
101+
102+ # check doxygen error (bad doxyfile, missing sources)
103+ if [ " $CHECK_WARNINGS " = true ] && grep -q " ^warning: " log_error.txt; then
104+ cat log_error.txt
105+ echo " ERROR: documentation generation error 2"
106+ return 1
81107 fi
82- echo " ========== ${MODULE} " >> log.txt
83- echo " ========== ${MODULE} " >> log_error.txt
84- start=$( date +%s.%N)
85- doxygen -d time ./Doxyfile${MODULE} Tag 1>> log.txt 2>> log_error.txt
86- end=$( date +%s.%N)
87- runtime=$( echo " $end - $start " | bc)
88- echo " ${MODULE} $runtime seconds" >> log_time.txt
89- rm Doxyfile${MODULE} Tag
90- done
91-
92- # check doxygen error (bad doxyfile, missing sources)
93- if [ " $CHECK_WARNINGS " = true ] && grep -q " ^warning: " log_error.txt; then
94- echo " ERROR: documentation generation error"
95- cat log_error.txt
96- exit 1
97- fi
108+ }
109+
110+ remove_and_restore_files () {
111+ echo " 5.remove_and_restore_files"
112+ # remove tag files
113+ for MODULE in ${MODULES[*]}
114+ do
115+ rm -f MeshLib/MeshLib${MODULE} .tag
116+ done
117+ ./scripts/restore_files.sh
118+ }
98119
99- # remove tag files
100- for MODULE in ${MODULES[*]}
101- do
102- rm -f MeshLib/MeshLib ${MODULE} .tag
103- done
120+ post_processing () {
121+ echo " 6.post_processing "
122+ ./scripts/update_search.sh " $TARGET_DIR "
123+ ./scripts/post.sh " $TARGET_DIR "
124+ }
104125
105- ./scripts/update_search.sh " $TARGET_DIR "
106- ./scripts/restore_files.sh
107- ./scripts/post.sh " $TARGET_DIR "
126+ prepare_setting_files
127+ if [[ $? -ne 0 ]]; then
128+ exit $?
129+ fi
130+ prepare_output_directory
131+ clear_log_files
132+ generate_documentation
133+ exit_code=$?
134+ remove_and_restore_files
135+ if [[ $exit_code -ne 0 ]]; then
136+ exit $exit_code
137+ fi
138+ post_processing
0 commit comments