Salome HOME
copy tag mergefrom_BR_V0_1_CC_Salome_04oct07
[modules/yacs.git] / src / wrappergen / src / hxx2salome_cpp
1 generate_cpp_module_source()
2 {
3    if [ ${BE_QUIET} -lt 1 ] ; then
4        echo -e "\n\n\tC++ wrapper generation"
5    fi
6    cd ${tmp_dir}
7 #
8 # ------------------------- C++ generation ------------------------------------------------------
9    sed -e "s/SUBDIRS = /SUBDIRS = ${CLASS_NAME}_CPP /" < ${CLASS_NAME}_SRC/src/Makefile.am > ${CLASS_NAME}_SRC/src/tmpfile
10    \mv -f ${CLASS_NAME}_SRC/src/tmpfile ${CLASS_NAME}_SRC/src/Makefile.am
11
12    if [ ${BE_QUIET} -lt 1 ] ; then
13        echo -e "\n\n-> Generate Salome2 C++ files\n"
14    fi
15    cat ${CLASS_NAME}_public_functions |\
16    awk -v class_name=${CLASS_NAME} -f ${gene_dir}/parse4.awk
17    echo "#include \""`basename ${hxx_file}`"\"" > ${CLASS_NAME}_SRC/src/${CLASS_NAME}_CPP/${CLASS_NAME}_CPP.cxx
18    echo >> ${CLASS_NAME}_SRC/src/${CLASS_NAME}_CPP/${CLASS_NAME}_CPP.cxx
19
20    cat code_dispatch >> ${CLASS_NAME}_SRC/src/${CLASS_NAME}_CPP/${CLASS_NAME}_CPP.cxx
21    get_info_makefile
22     
23    if [ ${BE_QUIET} -lt 1 ] ; then
24        echo -e "\n-> Substitute flags in Makefile.am"
25    fi
26    sed "s?HXX2SALOME_INCLUDE?${makefile_include}?g
27         s?HXX2SALOME_PYTHON_FILE?${python_test_file}?g
28         s?HXX2SALOME_LIB?${makefile_lib}?g
29        " ${CLASS_NAME}_SRC/src/${CLASS_NAME}_CPP/Makefile.am > tmpfile
30    sed "s?XXX?XXX -I$hxx_dir?" tmpfile > tmp2file
31    
32    if [ "x${USE_MED}" == "x1" ]
33    then
34        sed "/AM_CXXFLAGS/s?\$? -DMED_WITHOUT_KERNEL -DUSE_MED \${MED2_INCLUDES} -I\${MED_ROOT_DIR}/include/salome?" tmp2file > tmpfile
35        sed "s?USE_MED=0?USE_MED=1?" tmpfile > tmp2file
36    fi 
37    mv tmp2file ${CLASS_NAME}_SRC/src/${CLASS_NAME}_CPP/Makefile.am
38    \rm -f tmpfile tmp2file 
39
40    if [ ${BE_QUIET} -lt 1 ] ; then
41        echo -e "\n-> XML Catalog generation"
42    fi
43    cat ${CLASS_NAME}_public_functions | awk -v class_name=${CLASS_NAME} -f ${gene_dir}/parse5.awk
44    mv catalog.xml ${CLASS_NAME}_SRC/resources/${CLASS_NAME}Catalog.xml
45
46    echo "" >> ${CLASS_NAME}_SRC/resources/Makefile.am
47    echo "${CLASS_NAME}Catalog.xml: \${srcdir}/${CLASS_NAME}Catalog.xml" >> ${CLASS_NAME}_SRC/resources/Makefile.am
48    echo "       cp \$^ \$@" >> ${CLASS_NAME}_SRC/resources/Makefile.am
49
50 }
51
52 clean_cpp_module_source()
53 {
54    \rm -rf ${CLASS_NAME}_SRC/src/${CLASS_NAME}_CPP
55 }
56