From e4fb89ba1a85e5aca117f5bb6c12a7b47832e459 Mon Sep 17 00:00:00 2001 From: fancy <258828110.@qq.com> Date: Thu, 21 Dec 2023 08:20:01 -0800 Subject: [PATCH] Improve build goahead. --- build/cmake/toolchain/linux.toolchain.cmake | 12 +++---- utils/WebServer/CMakeLists.txt | 17 ++++++++- utils/WebServer/README.md | 39 +++++++++++++++++++++ utils/WebServer/src/WebServer.cpp | 19 +++++----- 4 files changed, 70 insertions(+), 17 deletions(-) create mode 100644 utils/WebServer/README.md diff --git a/build/cmake/toolchain/linux.toolchain.cmake b/build/cmake/toolchain/linux.toolchain.cmake index 82a95c49..558b5763 100755 --- a/build/cmake/toolchain/linux.toolchain.cmake +++ b/build/cmake/toolchain/linux.toolchain.cmake @@ -35,14 +35,14 @@ set(TEST_COVERAGE "true") # ------------ build curl + openssl ------------ # set(CURL_OPENSSL_LIB_SHARED_ENABLE "false") # ------------ build curl + openssl end ------------ # -# ------------ build clang-tools ------------ # -# set(CLANG_TIDY_SUPPORT "true") -# set(CLANG_FORMAT_SUPPORT "true") -# set(LLVM_PATH "/home/xiaojiazhu/project/tmp/llvm-project") -# ------------ build clang-tools end ------------ # # ------------ build IpcConfig ------------ # set(IPC_CONFIG_FILE_PATH "./ipc_config") # ------------ build IpcConfig end ------------ # # ------------ build log ------------ # set(LOG_SUPPORT "true") -# ------------ build log end ------------ # \ No newline at end of file +# ------------ build log end ------------ # +# ------------ build GoAhead ------------ # +set(GOAHEAD_DOCUMENTS_PATH "web") +# GOAHEAD_CONFIG_FILE_PATH should be set when cross compile +# set(GOAHEAD_CONFIG_FILE_PATH "./") +# ------------ build GoAhead end ------------ # \ No newline at end of file diff --git a/utils/WebServer/CMakeLists.txt b/utils/WebServer/CMakeLists.txt index b379bb11..68ecbd70 100644 --- a/utils/WebServer/CMakeLists.txt +++ b/utils/WebServer/CMakeLists.txt @@ -18,6 +18,17 @@ include_directories( set(CMAKE_AUTOMOC ON) set(CMAKE_INCLUDE_CURRENT_DIR ON) +if (NOT DEFINED GOAHEAD_DOCUMENTS_PATH) + set(GOAHEAD_DOCUMENTS_PATH "web") +endif() +if (NOT DEFINED GOAHEAD_CONFIG_FILE_PATH) + set(GOAHEAD_CONFIG_FILE_PATH "${PLATFORM_PATH}/cmake-shell/") + add_definitions(-DGOAHEAD_CONFIG_FILE_PATH=\"./\") +else() + add_definitions(-DGOAHEAD_CONFIG_FILE_PATH=\"${GOAHEAD_CONFIG_FILE_PATH}\") +endif() +add_definitions(-DGOAHEAD_DOCUMENTS_PATH=\"${GOAHEAD_DOCUMENTS_PATH}\") + aux_source_directory(./src SRC_FILES) set(TARGET_NAME WebServer) @@ -63,10 +74,14 @@ add_custom_command( add_custom_command( OUTPUT ${EXTERNAL_LIBS_OUTPUT_PATH}/libgo.a DEPENDS ${EXTERNAL_SOURCE_PATH}/goahead-5.2.0/GoAhead/Makefile - COMMAND make CC=${CMAKE_C_COMPILER} ARCH=${SET_ARCH} PROFILE=${LIB_TYPE} + COMMAND make CC=${CMAKE_C_COMPILER} ARCH=${SET_ARCH} PROFILE=${LIB_TYPE} COMMAND mv ${EXTERNAL_SOURCE_PATH}/goahead-5.2.0/GoAhead/build/${GOAHEAD_INCLUDE_PATH}/bin/libgo.a ${EXTERNAL_LIBS_OUTPUT_PATH}/libgo.a COMMAND mv ${EXTERNAL_SOURCE_PATH}/goahead-5.2.0/GoAhead/build/${GOAHEAD_INCLUDE_PATH}/bin/libmbedtls.a ${EXTERNAL_LIBS_OUTPUT_PATH}/libmbedtls.a COMMAND mv ${EXTERNAL_SOURCE_PATH}/goahead-5.2.0/GoAhead/build/${GOAHEAD_INCLUDE_PATH}/bin/libgoahead-mbedtls.a ${EXTERNAL_LIBS_OUTPUT_PATH}/libgoahead-mbedtls.a + COMMAND cp ${EXTERNAL_SOURCE_PATH}/goahead-5.2.0/GoAhead/build/${GOAHEAD_INCLUDE_PATH}/bin/self.crt ${PLATFORM_PATH}/cmake-shell/ + COMMAND cp ${EXTERNAL_SOURCE_PATH}/goahead-5.2.0/GoAhead/build/${GOAHEAD_INCLUDE_PATH}/bin/self.key ${PLATFORM_PATH}/cmake-shell/ + COMMAND cp ${EXTERNAL_SOURCE_PATH}/goahead-5.2.0/GoAhead/test/route.txt ${GOAHEAD_CONFIG_FILE_PATH} + COMMAND cp ${EXTERNAL_SOURCE_PATH}/goahead-5.2.0/GoAhead/test/auth.txt ${GOAHEAD_CONFIG_FILE_PATH} WORKING_DIRECTORY ${EXTERNAL_SOURCE_PATH}/goahead-5.2.0/GoAhead ) add_custom_target( diff --git a/utils/WebServer/README.md b/utils/WebServer/README.md new file mode 100644 index 00000000..927a5d74 --- /dev/null +++ b/utils/WebServer/README.md @@ -0,0 +1,39 @@ +# 1. Goahead开发文档 + +## 1.1. Goahead版本 + +5.2.0 + +## 1.2. 编译脚本 + +``` +# build goahead before make libgo.a +add_custom_command( + OUTPUT ${EXTERNAL_SOURCE_PATH}/goahead-5.2.0/GoAhead/Makefile + COMMAND echo "tar zxvf goahead-5.2.0.tar.gz" + COMMAND tar zxvf goahead-5.2.0.tar.gz // 解压源码包 + WORKING_DIRECTORY ${EXTERNAL_SOURCE_PATH}/goahead-5.2.0/ +) +add_custom_command( + OUTPUT ${EXTERNAL_LIBS_OUTPUT_PATH}/libgo.a + DEPENDS ${EXTERNAL_SOURCE_PATH}/goahead-5.2.0/GoAhead/Makefile + COMMAND make CC=${CMAKE_C_COMPILER} ARCH=${SET_ARCH} PROFILE=${LIB_TYPE} + COMMAND mv ${EXTERNAL_SOURCE_PATH}/goahead-5.2.0/GoAhead/build/${GOAHEAD_INCLUDE_PATH}/bin/libgo.a ${EXTERNAL_LIBS_OUTPUT_PATH}/libgo.a // 拷贝静态库到output目录 + COMMAND mv ${EXTERNAL_SOURCE_PATH}/goahead-5.2.0/GoAhead/build/${GOAHEAD_INCLUDE_PATH}/bin/libmbedtls.a ${EXTERNAL_LIBS_OUTPUT_PATH}/libmbedtls.a // 拷贝静态库到output目录 + COMMAND mv ${EXTERNAL_SOURCE_PATH}/goahead-5.2.0/GoAhead/build/${GOAHEAD_INCLUDE_PATH}/bin/libgoahead-mbedtls.a ${EXTERNAL_LIBS_OUTPUT_PATH}/libgoahead-mbedtls.a // 拷贝静态库到output目录 + COMMAND cp ${EXTERNAL_SOURCE_PATH}/goahead-5.2.0/GoAhead/build/${GOAHEAD_INCLUDE_PATH}/bin/self.crt ${PLATFORM_PATH}/cmake-shell/ // 拷贝self.crt,self.key两个到运行目录; + COMMAND cp ${EXTERNAL_SOURCE_PATH}/goahead-5.2.0/GoAhead/build/${GOAHEAD_INCLUDE_PATH}/bin/self.key ${PLATFORM_PATH}/cmake-shell/ // 拷贝self.crt,self.key两个到运行目录; + COMMAND cp ${EXTERNAL_SOURCE_PATH}/goahead-5.2.0/GoAhead/test/route.txt ${GOAHEAD_CONFIG_FILE_PATH} // 配置文件两个:route.txt,auth.txt; + COMMAND cp ${EXTERNAL_SOURCE_PATH}/goahead-5.2.0/GoAhead/test/auth.txt ${GOAHEAD_CONFIG_FILE_PATH} // 配置文件两个:route.txt,auth.txt; + WORKING_DIRECTORY ${EXTERNAL_SOURCE_PATH}/goahead-5.2.0/GoAhead +) +add_custom_target( + libgo.a // 创建goahead目标 + DEPENDS ${EXTERNAL_LIBS_OUTPUT_PATH}/libgo.a +) +``` + +## 1.3. 环境配置 + +1. 拷贝self.crt,self.key两个到运行目录; +2. 配置文件两个:route.txt,auth.txt; \ No newline at end of file diff --git a/utils/WebServer/src/WebServer.cpp b/utils/WebServer/src/WebServer.cpp index 35bf8713..7c19fef6 100644 --- a/utils/WebServer/src/WebServer.cpp +++ b/utils/WebServer/src/WebServer.cpp @@ -47,25 +47,24 @@ void initPlatform(void) signal(SIGKILL, sigHandler); signal(SIGPIPE, SIG_IGN); } - StatusCode WebServerInit(void) { websSetDebug(1); logSetPath("stdout:2"); - const char *documents = ME_GOAHEAD_DOCUMENTS; - const char *route = - "/home/xiaojiazhu/project/rkipc/battery/ipc-rk1106/ipc-sdk/external/goahead-5.2.0/GoAhead/test/route.txt"; - // /home/xiaojiazhu/project/rkipc/battery/ipc-rk1106/ipc-sdk/external/goahead-5.2.0/GoAhead/test/route.txt - const char *auth = - "/home/xiaojiazhu/project/rkipc/battery/ipc-rk1106/ipc-sdk/external/goahead-5.2.0/GoAhead/test/auth.txt"; + const char *documents = GOAHEAD_DOCUMENTS_PATH; + constexpr int BUF_LENGTH = 128; + char routePath[BUF_LENGTH] = {0}; + char authPath[BUF_LENGTH] = {0}; + snprintf(routePath, BUF_LENGTH, "%s/route.txt", GOAHEAD_CONFIG_FILE_PATH); + snprintf(authPath, BUF_LENGTH, "%s/auth.txt", GOAHEAD_CONFIG_FILE_PATH); initPlatform(); - if (websOpen(documents, route) < 0) { + if (websOpen(documents, routePath) < 0) { LogError("Cannot initialize server. Exiting.\n"); return CreateStatusCode(STATUS_CODE_NOT_OK); } logHeader(); - if (websLoad(auth) < 0) { - LogError("Cannot load %s", auth); + if (websLoad(authPath) < 0) { + LogError("Cannot load %s", authPath); return CreateStatusCode(STATUS_CODE_NOT_OK); } if (websListen("192.168.1.189:8080") < 0) {