Improve build goahead.

This commit is contained in:
fancy 2023-12-21 08:20:01 -08:00
parent b3b4e80931
commit e4fb89ba1a
4 changed files with 70 additions and 17 deletions

View File

@ -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 ------------ #
# ------------ 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 ------------ #

View File

@ -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(

39
utils/WebServer/README.md Normal file
View File

@ -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.txtauth.txt
COMMAND cp ${EXTERNAL_SOURCE_PATH}/goahead-5.2.0/GoAhead/test/auth.txt ${GOAHEAD_CONFIG_FILE_PATH} // 配置文件两个route.txtauth.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.txtauth.txt

View File

@ -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) {