支持CI,支持cmake编译
This commit is contained in:
1
.gitignore
vendored
1
.gitignore
vendored
@@ -5,3 +5,4 @@ Debug
|
|||||||
.cproject
|
.cproject
|
||||||
.project
|
.project
|
||||||
.settings/
|
.settings/
|
||||||
|
SI
|
||||||
|
|||||||
87
.gitlab-ci.yml
Normal file
87
.gitlab-ci.yml
Normal file
@@ -0,0 +1,87 @@
|
|||||||
|
image: "git.mesalab.cn:7443/mesa_platform/build-env:master"
|
||||||
|
variables:
|
||||||
|
GIT_STRATEGY: "clone"
|
||||||
|
BUILD_PADDING_PREFIX: /tmp/padding_for_CPACK_RPM_BUILD_SOURCE_DIRS_PREFIX_PREFIX_PREFIX_PREFIX_PREFIX_PREFIX/
|
||||||
|
INSTALL_PREFIX: "/opt/MESA/lib/"
|
||||||
|
INSTALL_DEPENDENCY_LIBRARY: libMESA_handle_logger-devel libcjson-devel libMESA_field_stat2-devel sapp-devel framework_env libMESA_prof_load-devel sapp-devel
|
||||||
|
|
||||||
|
stages:
|
||||||
|
- build
|
||||||
|
|
||||||
|
.build_by_travis:
|
||||||
|
before_script:
|
||||||
|
- mkdir -p $BUILD_PADDING_PREFIX/$CI_PROJECT_NAMESPACE/
|
||||||
|
- ln -s $CI_PROJECT_DIR $BUILD_PADDING_PREFIX/$CI_PROJECT_PATH
|
||||||
|
- cd $BUILD_PADDING_PREFIX/$CI_PROJECT_PATH
|
||||||
|
- chmod +x ./ci/travis.sh
|
||||||
|
script:
|
||||||
|
- yum makecache
|
||||||
|
- ./ci/travis.sh
|
||||||
|
- cd build
|
||||||
|
tags:
|
||||||
|
- share
|
||||||
|
|
||||||
|
branch_build_debug:
|
||||||
|
stage: build
|
||||||
|
extends: .build_by_travis
|
||||||
|
variables:
|
||||||
|
BUILD_TYPE: Debug
|
||||||
|
except:
|
||||||
|
- /^develop.*$/i
|
||||||
|
- /^master.*$/i
|
||||||
|
- tags
|
||||||
|
|
||||||
|
branch_build_release:
|
||||||
|
stage: build
|
||||||
|
variables:
|
||||||
|
BUILD_TYPE: RelWithDebInfo
|
||||||
|
extends: .build_by_travis
|
||||||
|
except:
|
||||||
|
- /^develop.*$/i
|
||||||
|
- /^master.*$/i
|
||||||
|
- tags
|
||||||
|
|
||||||
|
develop_build_debug:
|
||||||
|
stage: build
|
||||||
|
extends: .build_by_travis
|
||||||
|
variables:
|
||||||
|
BUILD_TYPE: Debug
|
||||||
|
PACKAGE: 1
|
||||||
|
artifacts:
|
||||||
|
name: "quic-$CI_COMMIT_REF_NAME-debug"
|
||||||
|
paths:
|
||||||
|
- build/*.rpm
|
||||||
|
only:
|
||||||
|
- /^develop.*$/i
|
||||||
|
- /^master.*$/i
|
||||||
|
|
||||||
|
develop_build_release:
|
||||||
|
stage: build
|
||||||
|
extends: .build_by_travis
|
||||||
|
variables:
|
||||||
|
BUILD_TYPE: RelWithDebInfo
|
||||||
|
PACKAGE: 1
|
||||||
|
artifacts:
|
||||||
|
name: "quic-$CI_COMMIT_REF_NAME-release"
|
||||||
|
paths:
|
||||||
|
- build/*.rpm
|
||||||
|
only:
|
||||||
|
- /^develop.*$/i
|
||||||
|
- /^master.*$/i
|
||||||
|
|
||||||
|
|
||||||
|
release_build_release:
|
||||||
|
stage: build
|
||||||
|
variables:
|
||||||
|
BUILD_TYPE: RelWithDebInfo
|
||||||
|
PACKAGE: 1
|
||||||
|
UPLOAD: 1
|
||||||
|
PULP3_REPO_NAME: protocol-stable-x86_64.el7
|
||||||
|
PULP3_DIST_NAME: protocol-stable-x86_64.el7
|
||||||
|
extends: .build_by_travis
|
||||||
|
artifacts:
|
||||||
|
name: "quic-$CI_COMMIT_REF_NAME-release"
|
||||||
|
paths:
|
||||||
|
- build/*.rpm
|
||||||
|
only:
|
||||||
|
- tags
|
||||||
52
CMakeLists.txt
Normal file
52
CMakeLists.txt
Normal file
@@ -0,0 +1,52 @@
|
|||||||
|
cmake_minimum_required (VERSION 2.8)
|
||||||
|
|
||||||
|
set(lib_name quic)
|
||||||
|
|
||||||
|
project (${lib_name})
|
||||||
|
|
||||||
|
set(CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake)
|
||||||
|
include(Version)
|
||||||
|
|
||||||
|
SET(CMAKE_C_COMPILER "/usr/bin/g++")
|
||||||
|
set(CMAKE_MACOSX_RPATH 0)
|
||||||
|
set(CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS} -Wall)
|
||||||
|
|
||||||
|
#for ASAN
|
||||||
|
option(ENABLE_SANITIZE_ADDRESS "Enable AddressSanitizer" FALSE)
|
||||||
|
option(ENABLE_SANITIZE_THREAD "Enable ThreadSanitizer" FALSE)
|
||||||
|
|
||||||
|
if(ENABLE_SANITIZE_ADDRESS)
|
||||||
|
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fsanitize=address -fno-omit-frame-pointer")
|
||||||
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=address -fno-omit-frame-pointer")
|
||||||
|
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -lasan")
|
||||||
|
set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -lasan")
|
||||||
|
elseif(ENABLE_SANITIZE_THREAD)
|
||||||
|
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fsanitize=thread -fno-omit-frame-pointer")
|
||||||
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=thread -fno-omit-frame-pointer")
|
||||||
|
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -lasan")
|
||||||
|
set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -lasan")
|
||||||
|
endif()
|
||||||
|
# end of for ASAN
|
||||||
|
|
||||||
|
set(CMAKE_INSTALL_PREFIX /home/mesasoft/sapp_run)
|
||||||
|
|
||||||
|
include_directories(/opt/MESA/include/MESA/)
|
||||||
|
|
||||||
|
file(GLOB SRC
|
||||||
|
"src/*.c"
|
||||||
|
)
|
||||||
|
|
||||||
|
set(DNS_DEPEND_DYN_LIB ssl crypto)
|
||||||
|
|
||||||
|
# Shared Library Output
|
||||||
|
add_library(quic SHARED ${SRC})
|
||||||
|
set_target_properties(quic PROPERTIES PREFIX "")
|
||||||
|
target_link_libraries(quic ${DNS_DEPEND_DYN_LIB})
|
||||||
|
set_target_properties(quic PROPERTIES OUTPUT_NAME ${lib_name})
|
||||||
|
|
||||||
|
install(TARGETS quic LIBRARY DESTINATION ${CMAKE_INSTALL_PREFIX}/plug/protocol/quic COMPONENT LIBRARY)
|
||||||
|
install(FILES bin/quic.inf DESTINATION ${CMAKE_INSTALL_PREFIX}/plug/protocol/quic COMPONENT PROFILE)
|
||||||
|
install(FILES bin/quic.conf DESTINATION ${CMAKE_INSTALL_PREFIX}/conf/quic COMPONENT PROFILE)
|
||||||
|
install(FILES src/gquic.h DESTINATION /opt/MESA/include/MESA COMPONENT HEADER)
|
||||||
|
|
||||||
|
include(Package)
|
||||||
59
cmake/Package.cmake
Normal file
59
cmake/Package.cmake
Normal file
@@ -0,0 +1,59 @@
|
|||||||
|
if(CMAKE_BUILD_TYPE STREQUAL "Debug")
|
||||||
|
set(MY_RPM_NAME_PREFIX "${lib_name}-debug")
|
||||||
|
else()
|
||||||
|
set(MY_RPM_NAME_PREFIX "${lib_name}")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
message(STATUS "Package: ${MY_RPM_NAME_PREFIX}")
|
||||||
|
|
||||||
|
set(CPACK_PACKAGE_VECDOR "MESA")
|
||||||
|
set(CPACK_PACKAGE_VERSION_MAJOR "${VERSION_MAJOR}")
|
||||||
|
set(CPACK_PACKAGE_VERSION_MINOR "${VERSION_MINOR}")
|
||||||
|
set(CPACK_PACKAGE_VERSION_PATCH "${VERSION_PATCH}.${VERSION_BUILD}")
|
||||||
|
set(CPACK_PACKAGING_INSTALL_PREFIX ${CMAKE_INSTALL_PREFIX})
|
||||||
|
set(CPACK_PACKAGE_VERSION "${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}.${VERSION_BUILD}")
|
||||||
|
execute_process(COMMAND bash -c "echo -ne \"`uname -r | awk -F'.' '{print $5\".\"$6\".\"$7}'`\"" OUTPUT_VARIABLE SYSTEM_VERSION)
|
||||||
|
|
||||||
|
execute_process(COMMAND sh changelog.sh WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/cmake)
|
||||||
|
SET(CPACK_RPM_CHANGELOG_FILE ${PROJECT_SOURCE_DIR}/cmake/changelog.txt)
|
||||||
|
|
||||||
|
# RPM Build
|
||||||
|
set(CPACK_GENERATOR "RPM")
|
||||||
|
set(CPACK_RPM_PACKAGE_VENDOR "MESA")
|
||||||
|
set(CPACK_RPM_PACKAGE_AUTOREQPROV "yes")
|
||||||
|
set(CPACK_RPM_PACKAGE_RELEASE_LIBRARY "on")
|
||||||
|
set(CPACK_RPM_DEBUGINFO_PACKAGE "on")
|
||||||
|
set(CPACK_RPM_PACKAGE_DEBUG 1)
|
||||||
|
|
||||||
|
set(CPACK_RPM_COMPONENT_INSTALL ON)
|
||||||
|
set(CPACK_COMPONENTS_IGNORE_GROUPS 1)
|
||||||
|
set(CPACK_COMPONENTS_GROUPING ONE_PER_GROUP)
|
||||||
|
set(CPACK_COMPONENT_HEADER_DISPLAY_NAME "develop")
|
||||||
|
|
||||||
|
set(CPACK_COMPONENT_LIBRARY_REQUIRED TRUE)
|
||||||
|
set(CPACK_RPM_LIBRARY_PACKAGE_NAME ${MY_RPM_NAME_PREFIX})
|
||||||
|
set(CPACK_RPM_LIBRARY_FILE_NAME "${CPACK_RPM_LIBRARY_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION}-${SYSTEM_VERSION}.rpm")
|
||||||
|
set(CPACK_RPM_LIBRARY_DEBUGINFO_FILE_NAME "${CPACK_RPM_LIBRARY_PACKAGE_NAME}-debuginfo-${CPACK_PACKAGE_VERSION}-${SYSTEM_VERSION}.rpm")
|
||||||
|
|
||||||
|
set(CPACK_COMPONENT_LIBRARY_GROUP "library")
|
||||||
|
set(CPACK_COMPONENT_PROFILE_GROUP "library")
|
||||||
|
|
||||||
|
set(CPACK_COMPONENT_HEADER_REQUIRED TRUE)
|
||||||
|
set(CPACK_RPM_HEADER_PACKAGE_NAME "${MY_RPM_NAME_PREFIX}-devel")
|
||||||
|
set(CPACK_RPM_HEADER_FILE_NAME "${CPACK_RPM_HEADER_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION}-${SYSTEM_VERSION}.rpm")
|
||||||
|
set(CPACK_RPM_HEADER_DEBUGINFO_FILE_NAME "${CPACK_RPM_HEADER_PACKAGE_NAME}-debuginfo-${CPACK_PACKAGE_VERSION}-${SYSTEM_VERSION}.rpm")
|
||||||
|
set(CPACK_COMPONENT_HEADER_GROUP "header")
|
||||||
|
|
||||||
|
set(CPACK_RPM_HEADER_PACKAGE_REQUIRES_PRE ${CPACK_RPM_LIBRARY_PACKAGE_NAME})
|
||||||
|
set(CPACK_RPM_HEADER_PACKAGE_CONFLICTS ${CPACK_RPM_HEADER_PACKAGE_NAME})
|
||||||
|
|
||||||
|
set(CPACK_COMPONENTS_ALL LIBRARY HEADER PROFILE)
|
||||||
|
|
||||||
|
|
||||||
|
set(CPACK_BUILD_SOURCE_DIRS "${CMAKE_SOURCE_DIR}")
|
||||||
|
|
||||||
|
# Must uninstall the debug package before install release package
|
||||||
|
set(CPACK_RPM_PACKAGE_CONFLICTS ${MY_RPM_NAME_PREFIX})
|
||||||
|
|
||||||
|
# set(CPACK_STRIP_FILES TRUE)
|
||||||
|
include(CPack)
|
||||||
53
cmake/Version.cmake
Normal file
53
cmake/Version.cmake
Normal file
@@ -0,0 +1,53 @@
|
|||||||
|
|
||||||
|
# Using autorevision.sh to generate version information
|
||||||
|
|
||||||
|
set(__SOURCE_AUTORESIVISION ${CMAKE_SOURCE_DIR}/cmake/autorevision.sh)
|
||||||
|
set(__AUTORESIVISION ${CMAKE_BINARY_DIR}/autorevision.sh)
|
||||||
|
set(__VERSION_CACHE ${CMAKE_SOURCE_DIR}/version.txt)
|
||||||
|
set(__VERSION_CONFIG ${CMAKE_BINARY_DIR}/version.cmake)
|
||||||
|
|
||||||
|
file(COPY ${__SOURCE_AUTORESIVISION} DESTINATION ${CMAKE_BINARY_DIR}
|
||||||
|
FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE
|
||||||
|
WORLD_READ WORLD_EXECUTE)
|
||||||
|
|
||||||
|
# execute autorevision.sh to generate version information
|
||||||
|
execute_process(COMMAND ${__AUTORESIVISION} -t cmake -o ${__VERSION_CACHE}
|
||||||
|
OUTPUT_FILE ${__VERSION_CONFIG} ERROR_QUIET)
|
||||||
|
include(${__VERSION_CONFIG})
|
||||||
|
|
||||||
|
# extract major, minor, patch version from git tag
|
||||||
|
string(REGEX REPLACE "^v([0-9]+)\\..*" "\\1" VERSION_MAJOR "${VCS_TAG}")
|
||||||
|
string(REGEX REPLACE "^v[0-9]+\\.([0-9]+).*" "\\1" VERSION_MINOR "${VCS_TAG}")
|
||||||
|
string(REGEX REPLACE "^v[0-9]+\\.[0-9]+\\.([0-9]+).*" "\\1" VERSION_PATCH "${VCS_TAG}")
|
||||||
|
|
||||||
|
if(NOT VERSION_MAJOR)
|
||||||
|
set(VERSION_MAJOR 1)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if(NOT VERSION_MINOR)
|
||||||
|
set(VERSION_MINOR 0)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if(NOT VERSION_PATCH)
|
||||||
|
set(VERSION_PATCH 0)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
set(VERSION "${VERSION_MAJOR}_${VERSION_MINOR}_${VERSION_PATCH}")
|
||||||
|
set(VERSION_BUILD "${VCS_SHORT_HASH}")
|
||||||
|
|
||||||
|
# print information
|
||||||
|
message(STATUS "Version: ${VERSION}-${VERSION_BUILD}")
|
||||||
|
|
||||||
|
if(NOT DEFINE_GIT_VERSION)
|
||||||
|
option(DEFINE_GIT_VERSION "Set DEFINE_GIT_VERSION to OFF" OFF)
|
||||||
|
|
||||||
|
set(GIT_VERSION
|
||||||
|
"${VERSION}-${CMAKE_BUILD_TYPE}-${VERSION_BUILD}-${VCS_BRANCH}-${VCS_TAG}-${VCS_DATE}")
|
||||||
|
string(REGEX REPLACE "[-:+/\\.]" "_" GIT_VERSION ${GIT_VERSION})
|
||||||
|
|
||||||
|
if(DEFINE_GIT_VERSION)
|
||||||
|
add_definitions(-DGIT_VERSION=${GIT_VERSION})
|
||||||
|
option(DEFINE_GIT_VERSION "Set DEFINE_GIT_VERSION to OFF" ON)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
endif()
|
||||||
1268
cmake/autorevision.sh
Normal file
1268
cmake/autorevision.sh
Normal file
File diff suppressed because it is too large
Load Diff
4
cmake/changelog.sh
Normal file
4
cmake/changelog.sh
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
branch=`git status | grep branch | awk '{print $NF}'`
|
||||||
|
git log --branches=$branch --no-merges --date=local --show-signature --pretty="* %ad %an %ae %nhash: %H%ncommit:%n%B" | awk -F"-" '{print "- "$0}' | sed 's/- \*/\*/g' | sed 's/- $//g' | sed 's/-/ -/g' | sed 's/[0-9]\{2\}:[0-9]\{2\}:[0-9]\{2\}//g' > changelog.txt
|
||||||
@@ -612,7 +612,7 @@ void gquic_proc_unencrypt(struct streaminfo *pstream, struct quic_stream* a_qui
|
|||||||
}
|
}
|
||||||
|
|
||||||
UINT8 parse_gquic_Q046(struct streaminfo *pstream, unsigned long long region_flag, void* a_packet,
|
UINT8 parse_gquic_Q046(struct streaminfo *pstream, unsigned long long region_flag, void* a_packet,
|
||||||
int thread_seq, const char * payload, uint32_t payload_len, struct quic_stream* a_quic_stream){
|
int thread_seq, char * payload, uint32_t payload_len, struct quic_stream* a_quic_stream){
|
||||||
uint32_t g_pos_t = 0;
|
uint32_t g_pos_t = 0;
|
||||||
if (!a_canRead(5, payload_len, g_pos_t)) {
|
if (!a_canRead(5, payload_len, g_pos_t)) {
|
||||||
return QUIC_RETURN_DROPME;
|
return QUIC_RETURN_DROPME;
|
||||||
@@ -712,7 +712,7 @@ UINT8 parse_gquic_Q046(struct streaminfo *pstream, unsigned long long region_fla
|
|||||||
}
|
}
|
||||||
|
|
||||||
UINT8 parse_gquic(struct streaminfo *pstream, unsigned long long region_flag, void* a_packet,
|
UINT8 parse_gquic(struct streaminfo *pstream, unsigned long long region_flag, void* a_packet,
|
||||||
int thread_seq, const char * payload, uint32_t payload_len, struct quic_stream* a_quic_stream){
|
int thread_seq, char * payload, uint32_t payload_len, struct quic_stream* a_quic_stream){
|
||||||
uint8_t pub_flags = 0;
|
uint8_t pub_flags = 0;
|
||||||
uint8_t nonce_flag = 0;
|
uint8_t nonce_flag = 0;
|
||||||
uint8_t reset_flag = 0;
|
uint8_t reset_flag = 0;
|
||||||
|
|||||||
@@ -203,12 +203,12 @@ void quic_init_serverHello(struct quic_server_hello* stServerHello, UINT32 tag_n
|
|||||||
// memset(&stServerHello->random, 0, RANDOM_LEN);
|
// memset(&stServerHello->random, 0, RANDOM_LEN);
|
||||||
if(tag_num == 0){
|
if(tag_num == 0){
|
||||||
}else{
|
}else{
|
||||||
(stServerHello->ext_tags) = (struct quic_tlv_t **)dictator_malloc(thread_seq,tag_num*sizeof(struct quic_tlv_t*));
|
(stServerHello->ext_tags) = (quic_tlv_t **)dictator_malloc(thread_seq,tag_num*sizeof(quic_tlv_t*));
|
||||||
int i=0;
|
int i=0;
|
||||||
for(i=0;i<tag_num;i++)
|
for(i=0;i<tag_num;i++)
|
||||||
{
|
{
|
||||||
// stServerHello->ext_tags[i] = (struct quic_tlv_t *)dictator_malloc(thread_seq, sizeof(quic_tlv_t)*20);
|
// stServerHello->ext_tags[i] = (struct quic_tlv_t *)dictator_malloc(thread_seq, sizeof(quic_tlv_t)*20);
|
||||||
stServerHello->ext_tags[i] = (struct quic_tlv_t *)dictator_malloc(thread_seq, sizeof(quic_tlv_t));
|
stServerHello->ext_tags[i] = (quic_tlv_t *)dictator_malloc(thread_seq, sizeof(quic_tlv_t));
|
||||||
memset(stServerHello->ext_tags[i], 0, sizeof(quic_tlv_t));
|
memset(stServerHello->ext_tags[i], 0, sizeof(quic_tlv_t));
|
||||||
stServerHello->ext_tags[i]->ptr_value = (char *)dictator_malloc(thread_seq, sizeof(char)*MAX_TAG_VALUE_LEN);
|
stServerHello->ext_tags[i]->ptr_value = (char *)dictator_malloc(thread_seq, sizeof(char)*MAX_TAG_VALUE_LEN);
|
||||||
stServerHello->ext_tags[i]->length = 0;
|
stServerHello->ext_tags[i]->length = 0;
|
||||||
|
|||||||
Reference in New Issue
Block a user