在插件开发过程中,每次都手工创建插件工程相关的目录和文件也是让人烦的事情。而随着插件的积累,我们开发的经验越来越多,开发速度越来越快,能否构建一个IDE,通过用户的设置和选择,自动生成插件工程。如果是h264编码的基于rtsp或者upd协议发送视频流,同时使用opencv解码,那么我们只需要配置ip、port、帧率等,一般可以快速生成对应的代码,甚至不用修改就能直接使用。
为此,后面需安排人员开展相关工作调研。目前可以参考的大概有基于fluent UI +QML的前端框架可以使用。
为了临时解决我们的需求,暂时可以使用脚本来创建通用cmake工程。相关脚本如下:
C++版:create_cpp.sh
#! /bin/bash
echo 'making c++ project files ...'
project=default
if [ ! $1 ]; then
echo '============input a project name first !!!!!=============='
exit
else
echo '============inpputed project is:' $1 '==================='
project=$1
fi
rm -rf ./$project
mkdir ./$project
mkdir ./$project/src
mkdir ./$project/src/include
mkdir ./$project/build
echo 'making CMakeLists.txt'
echo 'set(PROJECT CProject_main)' >> ./$project/CMakeLists.txt
echo 'message("Making ${PROJECT} ...")' >> ./$project/CMakeLists.txt
echo 'cmake_minimum_required(VERSION 3.16)' >> ./$project/CMakeLists.txt
echo 'project(${PROJECT})' >> ./$project/CMakeLists.txt
echo 'aux_source_directory(./src SRC_FILE)' >> ./$project/CMakeLists.txt
echo 'add_executable(run ${SRC_FILE})' >> ./$project/CMakeLists.txt
echo 'message("Make ${PROJECT} ok, please execute run")' >> ./$project/CMakeLists.txt
echo 'making main.cpp'
echo '#include <iostream>' >> ./$project/src/main.cpp
echo '' >> ./$project/src/main.cpp
echo 'int main()' >> ./$project/src/main.cpp
echo '{' >> ./$project/src/main.cpp
echo ' std::cout << "Hello world" << std::endl;' >> ./$project/src/main.cpp
echo ' return 0;' >> ./$project/src/main.cpp
echo '}' >> ./$project/src/main.cpp
echo 'making rebuild_run.sh'
echo 'rm -rf ./build/*' >> ./$project/rebuild_run.sh
echo 'cd ./build' >> ./$project/rebuild_run.sh
echo 'cmake ../' >> ./$project/rebuild_run.sh
echo 'make' >> ./$project/rebuild_run.sh
echo './run' >> ./$project/rebuild_run.sh
echo 'making buildrun.sh'
echo 'cd ./build' >> ./$project/buildrun.sh
echo 'make' >> ./$project/buildrun.sh
echo './run' >> ./$project/buildrun.sh
C版:create_c.sh
#! /bin/bash
echo 'making c project files ...'
project=default
if [ ! $1 ]; then
echo '============input a project name first !!!!!=============='
exit
else
echo '============inpputed project is:' $1 '==================='
project=$1
fi
rm -rf ./$project
mkdir ./$project
mkdir ./$project/src
mkdir ./$project/src/include
mkdir ./$project/build
echo 'making CMakeLists.txt'
echo 'set(PROJECT CProject_main)' >> ./$project/CMakeLists.txt
echo 'message("Making ${PROJECT} ...")' >> ./$project/CMakeLists.txt
echo 'cmake_minimum_required(VERSION 3.16)' >> ./$project/CMakeLists.txt
echo 'project(${PROJECT})' >> ./$project/CMakeLists.txt
echo 'aux_source_directory(./src SRC_FILE)' >> ./$project/CMakeLists.txt
echo 'add_executable(run ${SRC_FILE})' >> ./$project/CMakeLists.txt
echo 'message("Make ${PROJECT} ok, please execute run")' >> ./$project/CMakeLists.txt
echo 'making main.c'
echo '#include <stdio.h>' >> ./$project/src/main.c
echo '#include <stdlib.h>' >> ./$project/src/main.c
echo '' >> ./$project/src/main.c
echo 'int main()' >> ./$project/src/main.c
echo '{' >> ./$project/src/main.c
echo ' printf("Hello world\\n");' >> ./$project/src/main.c
echo ' return 0;' >> ./$project/src/main.c
echo '}' >> ./$project/src/main.c
echo 'making rebuild_run.sh'
echo 'rm -rf ./build/*' >> ./$project/rebuild_run.sh
echo 'cd ./build' >> ./$project/rebuild_run.sh
echo 'cmake ../' >> ./$project/rebuild_run.sh
echo 'make' >> ./$project/rebuild_run.sh
echo './run' >> ./$project/rebuild_run.sh
echo 'making buildrun.sh'
echo 'cd ./build' >> ./$project/buildrun.sh
echo 'make' >> ./$project/buildrun.sh
echo './run' >> ./$project/buildrun.sh