#qtmake="/opt/qt/5.10.1/gcc_64/bin/qmake"

qtmake=" "

if [ ${#qtmake} -lt 5 ]; then
  echo "now need find qmake "
  optfiles=`find /opt -name 'qmake'` 
  for entry in $optfiles
  do
     x=${entry:0-17:17}
     if [ "$x" == "/gcc_64/bin/qmake" ];  then
        qtmake="$entry"
	echo "  -----find qmake"
	echo "$qtmake"
     fi
  done
fi

if [ ${#qtmake} -lt 5 ]; then
  echo "maybe agx,find qmake in usr folder "
  optfiles=`find /usr -name 'qmake'` 
  for entry in $optfiles
  do
     x=${entry:0-14:14}
     if [ "$x" == "/qt5/bin/qmake" ];  then
        qtmake="$entry"
	echo "  -----find qmake"
	echo "$qtmake"
     fi
  done
fi


MAKEOPT=-j2

cd ../../

mkdir bin

cd src/include/proto
sh ./protomake.sh
cd ../../../

cd src/include/proto3
sh ./protomake.sh
cd ../../../

cd src/common/modulecomm/
$qtmake modulecomm.pro
make $MAKEOPT
make clean
cp libmodulecomm.so ./../../../bin/
rm Makefile
rm .qmake.stash
cd ../../../

cd src/common/xmlparam/
$qtmake xmlparam.pro
make $MAKEOPT
make clean
cp libxmlparam.so ./../../../bin/
rm Makefile
rm .qmake.stash
cd ../../../

cd src/common/ndt_cpu/
$qtmake ndt_cpu.pro
make $MAKEOPT
make clean
cp libndt_cpu.so ./../../../bin/
rm Makefile
rm .qmake.stash
cd ../../../

#cd src/common/ndt_gpu/
#$qtmake ndt_gpu.pro
#make $MAKEOPT
#make clean
#cp libndt_gpu.so ./../../../bin/
#rm Makefile
#rm .qmake.stash
#cd ../../../

cd src/common/ivlog/
$qtmake ivlog.pro
make $MAKEOPT
make clean
cp libivlog.so ./../../../bin/
rm Makefile
rm .qmake.stash
cd ../../../

cd src/common/ivfault/
$qtmake ivfault.pro
make $MAKEOPT
make clean
cp libivfault.so ./../../../bin/
rm Makefile
rm .qmake.stash
cd ../../../


cd src/common/ivbacktrace/
$qtmake ivbacktrace.pro
make $MAKEOPT
make clean
cp libivbacktrace.so ./../../../bin/
rm Makefile
rm .qmake.stash
cd ../../../

cd src/common/ivexit/
$qtmake ivexit.pro
make $MAKEOPT
make clean
cp libivexit.so ./../../../bin/
rm Makefile
rm .qmake.stash
cd ../../../

controller_app_name=(
controller_bus
controller_jinlong_peisong
controller_midcar
controller_problue
controller_ge3
controller_vv7
controller_tju_vv7
)

for x in ${controller_app_name[@]}
do
cd src/controller/${x}/
$qtmake ${x}.pro
make $MAKEOPT
make clean
cp ${x} ./../../../bin/
rm Makefile
rm .qmake.stash
rm ${x}
cd ../../../
done

decition_app_name=(
decition_brain
)

for x in ${decition_app_name[@]}
do
cd src/decition/${x}/
$qtmake ${x}.pro
make $MAKEOPT
make clean
cp ${x} ./../../../bin/
rm Makefile
rm .qmake.stash
rm ${x}
cd ../../../
done

driver_app_name=(
driver_camera_usb
driver_can_kvaser
driver_can_vci
driver_can_nvidia_agx
#driver_cloud_grpc_client
#driver_cloud_grpc_pc
#driver_cloud_grpc_server
driver_gps_ins550d
driver_gps_hcp2
driver_lidar_bk16
driver_lidar_hesai40line
driver_lidar_hesai40p
driver_lidar_hesaipandar64
driver_lidar_rs16
driver_lidar_rs32
driver_lidar_vlp16
driver_lidar_vlp32c
driver_lidar_vtdpoint
driver_map_trace
driver_map_xodrload
driver_piccompress
driver_radio_p900
#driver_rpc_client
#driver_rpc_server
driver_vbox_gaohong
)

for x in ${driver_app_name[@]}
do
cd src/driver/${x}/
$qtmake ${x}.pro
make $MAKEOPT
make clean
cp ${x} ./../../../bin/
rm Makefile
rm .qmake.stash
rm ${x}
cd ../../../
done

detect_app_name=(
detection_chassis
detection_gps_hcp2
detection_gps_vtd
#detection_lidar_cnn_segmentation
detection_lidar_cnntogrid
detection_lidar_grid
detection_lidar_ukf_pda
detection_mobileye
#detection_ndt_matching_gpu_multi
detection_radar_delphi_esr
detection_state_delphi_ins500d

)

for x in ${detect_app_name[@]}
do
cd src/detection/${x}/
$qtmake ${x}.pro
make $MAKEOPT
make clean
cp ${x} ./../../../bin/
rm Makefile
rm .qmake.stash
rm ${x}
cd ../../../
done

fusion_app_name=(
fusion_gpsndt
fusion_pointcloud_bus
)

for x in ${fusion_app_name[@]}
do
cd src/fusion/${x}/
$qtmake ${x}.pro
make $MAKEOPT
make clean
cp ${x} ./../../../bin/
rm Makefile
rm .qmake.stash
rm ${x}
cd ../../../
done

tool_app_name=(
adciv_record
adciv_replay
adcndtmultimapping
bqev_lidar_cnn_detect_view
bqev_multilidarcalib
bqev_pcdview
ivmapmake
ivmapmake_sharemem
IVSysMan
map_lanetoxodr
map_mobieye
PerceptionShow
picview
pointcloudviewer
#RemoteCtrl
tool_calcmd5
tool_querymsg
tool_xodrobj
view_gps
view_ivlog
view_pcdmap
view_radar
view_rawcan
tool_configivsysman
)

for x in ${tool_app_name[@]}
do
cd src/tool/${x}/
$qtmake ${x}.pro
make $MAKEOPT
make clean
cp ${x} ./../../../bin/
rm Makefile
rm .qmake.stash
rm ${x}
cd ../../../
done

ui_app_name=(
ui_ads_hmi
)

for x in ${ui_app_name[@]}
do
cd src/ui/${x}/
$qtmake ${x}.pro
make $MAKEOPT
make clean
cp ${x} ./../../../bin/
rm Makefile
rm .qmake.stash
rm ${x}
cd ../../../
done