Add libconfig.

This commit is contained in:
fancy 2023-09-12 07:11:30 -07:00
parent 1930349f6e
commit 01e9deaa77
12 changed files with 124 additions and 24 deletions

View File

@ -38,5 +38,6 @@ clean:
external/openssl/openssl-1.1.1s \ external/openssl/openssl-1.1.1s \
external/openssl/build \ external/openssl/build \
external/curl/curl-8.1.2 \ external/curl/curl-8.1.2 \
external/libconfig/libconfig-1.7.3 \
out \ out \
cmake-shell cmake-shell

View File

@ -1,8 +1,9 @@
INCLUDE(CMakeForceCompiler) INCLUDE(CMakeForceCompiler)
set(CMAKE_C_COMPILER gcc) set(CROSS_COMPILE_PREFIX "")
set(CMAKE_CXX_COMPILER g++) set(CMAKE_C_COMPILER "${CROSS_COMPILE_PREFIX}gcc")
set(CMAKE_CXX_COMPILER "${CROSS_COMPILE_PREFIX}g++")
# path to compiler and utilities # path to compiler and utilities
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER) set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
@ -34,7 +35,6 @@ set(PLATFORM_PATH "${CMAKE_CURRENT_SOURCE_DIR}")
set(COVERAGE_ON "true") set(COVERAGE_ON "true")
# ------------ build curl + openssl ------------ start # ------------ build curl + openssl ------------ start
set(CROSS_COMPILE_PREFIX "")
set(CURL_OPENSSL_LIB_SHARED_ENABLE "false") set(CURL_OPENSSL_LIB_SHARED_ENABLE "false")
# ------------ build curl + openssl ------------ end # ------------ build curl + openssl ------------ end
# ------------ build clang-tidy ------------ start # ------------ build clang-tidy ------------ start

3
external/README.md vendored Normal file
View File

@ -0,0 +1,3 @@
# 1. 第三方库
   该目录存放仓库依赖的三方库源码。

34
external/libconfig/build_libconfig.sh vendored Normal file
View File

@ -0,0 +1,34 @@
#!/bin/bash
#compile libconfig to a library
platform=$1
CROSS_COMPILER_PATH=$2
CROSS_COMPILER=$3
echo "Compile libconfig, platform = $platform."
# echo "CROSS_COMPILER_PATH = $CROSS_COMPILER_PATH"
echo "CROSS_COMPILER = $CROSS_COMPILER"
echo "Start to compile libconfig."
export ROOT_PATH=$PWD
# export PATH=$CROSS_COMPILER_PATH:$PATH
if [ ! -d "./libconfig-1.7.3" ];then
echo "tar zxvf libconfig-1.7.3.tar.gz"
tar zxvf libconfig-1.7.3.tar.gz
fi
if [ ! -f "./libconfig-1.7.3/lib/.libs/libconfig++.a" ] || [ ! -f "./libconfig-1.7.3/lib/.libs/libconfig.a" ];then
echo "make libconfig++.a"
cd ./libconfig-1.7.3
# ./configure
# make
case $platform in
"linux")
echo "==Compile linux."
./configure
make
;;
*)
echo "==Compile cross compile."
./configure --host=$CROSS_COMPILER
make
;;
esac
fi
cd $ROOT_PATH

Binary file not shown.

View File

@ -1,5 +1,5 @@
# cmake_minimum_required(VERSION 2.8.0) # cmake_minimum_required(VERSION 2.8.0)
# add_subdirectory(ReturnCode) add_subdirectory(Config)
add_subdirectory(StatusCode) add_subdirectory(StatusCode)
add_subdirectory(Log) add_subdirectory(Log)

View File

@ -0,0 +1,62 @@
include(${CMAKE_SOURCE_DIR_IPCSDK}/build/global_config.cmake)
set(EXECUTABLE_OUTPUT_PATH ${EXEC_OUTPUT_PATH})
set(LIBRARY_OUTPUT_PATH ${LIBS_OUTPUT_PATH})
include_directories(
./src
./include
${UTILS_SOURCE_PATH}/StatusCode/include
${UTILS_SOURCE_PATH}/Log/include
)
#do not rely on any other library
#link_directories(
#)
set(CMAKE_AUTOMOC ON)
set(CMAKE_INCLUDE_CURRENT_DIR ON)
aux_source_directory(./src SRC_FILES)
set(TARGET_NAME Config)
add_library(${TARGET_NAME} STATIC ${SRC_FILES})
target_link_libraries(${TARGET_NAME} Log)
if ("${CLANG_TIDY_SUPPORT}" MATCHES "true")
add_custom_target(
Config_code_check
COMMAND ${CLANG_TIDY_EXE}
-checks='${CLANG_TIDY_CHECKS}'
--header-filter=.*
--system-headers=false
${SRC_FILES}
${CLANG_TIDY_CONFIG}
-p ${CMAKE_SOURCE_DIR_IPCSDK}/cmake-shell
WORKING_DIRECTORY ${UTILS_SOURCE_PATH}/Config
)
add_custom_command(
TARGET ${TARGET_NAME}
PRE_BUILD
COMMAND make Config_code_check
WORKING_DIRECTORY ${PROJECT_ROOT_PATH}/cmake-shell/
)
endif()
# build libconfig before make libConfig.a
add_custom_command(
OUTPUT ${EXTERNAL_SOURCE_PATH}/libconfig/libconfig-1.7.3/lib/.libs/libconfig.a
COMMAND echo "Build libconfig-1.7.3. CMAKE_C_COMPILER = ${CMAKE_C_COMPILER}"
# COMMAND tar zxvf libconfig-1.7.3.tar.gz
COMMAND sh build_libconfig.sh ${TARGET_PLATFORM} ${CROSS_COMPILER_PATH} ${CMAKE_C_COMPILER}
WORKING_DIRECTORY ${EXTERNAL_SOURCE_PATH}/libconfig
)
add_custom_target(
compile_libconfig
DEPENDS ${EXTERNAL_SOURCE_PATH}/libconfig/libconfig-1.7.3/lib/.libs/libconfig.a
)
add_custom_command(
TARGET ${TARGET_NAME}
PRE_BUILD
COMMAND make compile_libconfig
WORKING_DIRECTORY ${PROJECT_ROOT_PATH}/cmake-shell
)

0
utils/Config/README.md Normal file
View File

View File

@ -0,0 +1,13 @@
#ifndef CONFIG_H
#define CONFIG_H
#include "StatusCode.h"
#ifdef __cplusplus
extern "C"
{
#endif
const StatusCode ConfigInit(void);
const StatusCode ConfigUnInit(void);
#ifdef __cplusplus
}
#endif
#endif

View File

@ -0,0 +1,7 @@
#include "Config.h"
const StatusCode ConfigInit(void)
{
}
const StatusCode ConfigUnInit(void)
{
}

View File

@ -1,19 +0,0 @@
include(${CMAKE_SOURCE_DIR}/build/global_config.cmake)
set(EXECUTABLE_OUTPUT_PATH ${EXEC_OUTPUT_PATH})
set(LIBRARY_OUTPUT_PATH ${LIBS_OUTPUT_PATH})
include_directories(
./src
./include
)
#do not rely on any other library
#link_directories(
#)
set(CMAKE_AUTOMOC ON)
set(CMAKE_INCLUDE_CURRENT_DIR ON)
aux_source_directory(./src SRC_FILES)
set(TARGET_NAME IpcConfig)
add_library(${TARGET_NAME} STATIC ${SRC_FILES})

View File

@ -36,7 +36,6 @@ add_custom_target(
) )
add_custom_command( add_custom_command(
TARGET ${TARGET_NAME} TARGET ${TARGET_NAME}
# TARGET ${ABSTRACT_TARGET}
PRE_BUILD PRE_BUILD
COMMAND make StatusCode_code_check COMMAND make StatusCode_code_check
WORKING_DIRECTORY ${PROJECT_ROOT_PATH}/cmake-shell/ WORKING_DIRECTORY ${PROJECT_ROOT_PATH}/cmake-shell/