summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitlab-ci.yml158
-rw-r--r--CMakeLists.txt12
-rw-r--r--ci/travis.sh10
-rw-r--r--cmake/Package.cmake29
4 files changed, 163 insertions, 46 deletions
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 3f615a3..703152e 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -1,29 +1,52 @@
-image: "git.mesalab.cn:7443/mesa_platform/build-env:master"
variables:
GIT_STRATEGY: "clone"
+ BUILD_IMAGE_CENTOS7: "git.mesalab.cn:7443/mesa_platform/build-env:master"
+ BUILD_IMAGE_CENTOS8: "git.mesalab.cn:7443/mesa_platform/build-env:rockylinux"
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 libMESA_htable-devel libMESA_field_stat2-devel libMESA_field_stat-devel sapp-devel framework_env libdocumentanalyze-devel libMESA_prof_load-devel libasan
+ INSTALL_DEPENDENCY_PLATFORM: sapp-devel libasan systemd-devel libnsl
+ INSTALL_DEPENDENCY_FRAMEWORK: libMESA_handle_logger-devel libcjson-devel libMESA_field_stat2-devel framework_env libMESA_prof_load-devel libbreakpad_mini-devel libMESA_htable-devel libMESA_field_stat-devel libdocumentanalyze-devel
+ INSTALL_PREFIX: "/home/mesasoft/sapp_run/"
stages:
- build
+- package
-.build_by_travis:
+.build_before_script:
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
+ - yum install -y elfutils-libelf-devel
+
+
+.build_by_travis_for_centos7:
+ stage: build
+ image: $BUILD_IMAGE_CENTOS7
+ extends: .build_before_script
+ script:
+ - yum install -y libmnl-devel
+ - yum install -y libnfnetlink-devel
+ - ./ci/travis.sh
+ - cd build
tags:
- share
-branch_build_debug:
+.build_by_travis_for_centos8:
stage: build
- extends: .build_by_travis
+ image: $BUILD_IMAGE_CENTOS8
+ extends: .build_before_script
+ script:
+ - dnf --enablerepo=powertools install -y libmnl-devel
+ - dnf --enablerepo=powertools install -y libnfnetlink-devel
+ - ./ci/travis.sh
+ tags:
+ - share
+
+branch_build_debug_for_centos7:
+ stage: build
+ extends: .build_by_travis_for_centos7
variables:
BUILD_TYPE: Debug
except:
@@ -31,19 +54,19 @@ branch_build_debug:
- /^master.*$/i
- tags
-branch_build_release:
+branch_build_release_for_centos7:
stage: build
variables:
BUILD_TYPE: RelWithDebInfo
- extends: .build_by_travis
+ extends: .build_by_travis_for_centos7
except:
- /^develop.*$/i
- /^master.*$/i
- tags
-develop_build_debug:
+develop_build_debug_for_centos7:
stage: build
- extends: .build_by_travis
+ extends: .build_by_travis_for_centos7
variables:
BUILD_TYPE: Debug
PACKAGE: 1
@@ -60,9 +83,9 @@ develop_build_debug:
- /^develop.*$/i
- /^master.*$/i
-develop_build_release:
+develop_build_release_for_centos7:
stage: build
- extends: .build_by_travis
+ extends: .build_by_travis_for_centos7
variables:
BUILD_TYPE: RelWithDebInfo
PACKAGE: 1
@@ -78,24 +101,24 @@ develop_build_release:
- /^develop.*$/i
- /^master.*$/i
-release_build_debug:
- stage: build
+release_build_debug_for_centos7:
+ stage: package
variables:
BUILD_TYPE: Debug
PACKAGE: 1
UPLOAD_RPM: 1
PULP3_REPO_NAME: protocol-stable-x86_64.el7
PULP3_DIST_NAME: protocol-stable-x86_64.el7
- extends: .build_by_travis
+ extends: .build_by_travis_for_centos7
artifacts:
- name: "http-$CI_COMMIT_REF_NAME-release"
+ name: "http-$CI_COMMIT_REF_NAME-debug"
paths:
- build/*.rpm
only:
- tags
-release_build_release:
- stage: build
+release_build_release_for_centos7:
+ stage: package
variables:
BUILD_TYPE: RelWithDebInfo
PACKAGE: 1
@@ -104,7 +127,98 @@ release_build_release:
SYMBOL_TARGET: http
PULP3_REPO_NAME: protocol-stable-x86_64.el7
PULP3_DIST_NAME: protocol-stable-x86_64.el7
- extends: .build_by_travis
+ extends: .build_by_travis_for_centos7
+ artifacts:
+ name: "http-$CI_COMMIT_REF_NAME-release"
+ paths:
+ - build/*.rpm
+ only:
+ - tags
+
+branch_build_debug_for_centos8:
+ stage: build
+ extends: .build_by_travis_for_centos8
+ variables:
+ BUILD_TYPE: Debug
+ except:
+ - /^develop.*$/i
+ - /^master.*$/i
+ - tags
+
+branch_build_release_for_centos8:
+ stage: build
+ variables:
+ BUILD_TYPE: RelWithDebInfo
+ extends: .build_by_travis_for_centos8
+ except:
+ - /^develop.*$/i
+ - /^master.*$/i
+ - tags
+
+develop_build_debug_for_centos8:
+ stage: build
+ extends: .build_by_travis_for_centos8
+ variables:
+ BUILD_TYPE: Debug
+ PACKAGE: 1
+ UPLOAD_RPM: 1
+ ASAN_OPTION: ADDRESS
+ TESTING_VERSION_BUILD: 1
+ PULP3_REPO_NAME: protocol-testing-x86_64.el8
+ PULP3_DIST_NAME: protocol-testing-x86_64.el8
+ artifacts:
+ name: "http-$CI_COMMIT_REF_NAME-debug"
+ paths:
+ - build/*.rpm
+ only:
+ - /^develop.*$/i
+ - /^master.*$/i
+
+develop_build_release_for_centos8:
+ stage: build
+ extends: .build_by_travis_for_centos8
+ variables:
+ BUILD_TYPE: RelWithDebInfo
+ PACKAGE: 1
+ UPLOAD_RPM: 1
+ TESTING_VERSION_BUILD: 1
+ PULP3_REPO_NAME: protocol-testing-x86_64.el8
+ PULP3_DIST_NAME: protocol-testing-x86_64.el8
+ artifacts:
+ name: "http-$CI_COMMIT_REF_NAME-release"
+ paths:
+ - build/*.rpm
+ only:
+ - /^develop.*$/i
+ - /^master.*$/i
+
+release_build_debug_for_centos8:
+ stage: package
+ variables:
+ BUILD_TYPE: Debug
+ PACKAGE: 1
+ UPLOAD_RPM: 1
+ PULP3_REPO_NAME: protocol-stable-x86_64.el8
+ PULP3_DIST_NAME: protocol-stable-x86_64.el8
+ extends: .build_by_travis_for_centos8
+ artifacts:
+ name: "http-$CI_COMMIT_REF_NAME-debug"
+ paths:
+ - build/*.rpm
+ only:
+ - tags
+
+release_build_release_for_centos8:
+ stage: package
+ variables:
+ BUILD_TYPE: RelWithDebInfo
+ PACKAGE: 1
+ UPLOAD_RPM: 1
+ UPLOAD_SYMBOL_FILES: 1
+ SYMBOL_TARGET: http
+ PULP3_REPO_NAME: protocol-stable-x86_64.el8
+ PULP3_DIST_NAME: protocol-stable-x86_64.el8
+ extends: .build_by_travis_for_centos8
artifacts:
name: "http-$CI_COMMIT_REF_NAME-release"
paths:
diff --git a/CMakeLists.txt b/CMakeLists.txt
index c3bd042..acdbd1f 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -32,11 +32,15 @@ include_directories(/opt/MESA/include/MESA/)
include_directories(./src/inc/)
include_directories(./src/)
+if(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)
+ set(CMAKE_INSTALL_PREFIX "/home/mesasoft/sapp_run" CACHE PATH "default install path" FORCE)
+endif()
+
file(GLOB SRC
"src/*.c"
)
-set(CMAKE_INSTALL_PREFIX /home/mesasoft/sapp_run/)
+
set(HTTP_DEPEND_DYN_LIB MESA_handle_logger MESA_field_stat MESA_prof_load documentanalyze MESA_htable)
# Shared Library Output
@@ -49,11 +53,11 @@ else()
set_target_properties(http PROPERTIES OUTPUT_NAME ${lib_name})
endif()
-set(CPACK_RPM_LIBRARY_USER_FILELIST "%config(noreplace) ${CMAKE_INSTALL_PREFIX}/plug/protocol/http/http.inf"
+set(CPACK_RPM_LIBRARIES_USER_FILELIST "%config(noreplace) ${CMAKE_INSTALL_PREFIX}/plug/protocol/http/http.inf"
"%config(noreplace) ${CMAKE_INSTALL_PREFIX}/conf/http/http.conf"
- "%config(noreplace) ${CMAKE_INSTALL_PREFIX}/conf/http/http_main.conf")
+ "%config(noreplace) ${CMAKE_INSTALL_PREFIX}/conf/http/http_main.conf")
-install(TARGETS http LIBRARY DESTINATION ${CMAKE_INSTALL_PREFIX}/plug/protocol/${lib_name} COMPONENT LIBRARY)
+install(TARGETS http LIBRARY DESTINATION ${CMAKE_INSTALL_PREFIX}/plug/protocol/${lib_name} COMPONENT LIBRARIES)
install(FILES src/${lib_name}.h DESTINATION /opt/MESA/include/MESA COMPONENT HEADER)
install(FILES bin/${lib_name}.inf DESTINATION ${CMAKE_INSTALL_PREFIX}/plug/protocol/${lib_name} COMPONENT PROFILE)
diff --git a/ci/travis.sh b/ci/travis.sh
index 3c85ff4..0fbae20 100644
--- a/ci/travis.sh
+++ b/ci/travis.sh
@@ -33,12 +33,16 @@ env | sort
: "${COMPILER_IS_GNUCXX:=OFF}"
# Install dependency from YUM
-if [ -n "${INSTALL_DEPENDENCY_LIBRARY}" ]; then
- yum install -y $INSTALL_DEPENDENCY_LIBRARY
+if [ -n "${INSTALL_DEPENDENCY_FRAMEWORK}" ]; then
+ yum install -y $INSTALL_DEPENDENCY_FRAMEWORK
source /etc/profile.d/framework.sh
fi
-if [ $ASAN_OPTION ];then
+if [ -n "${INSTALL_DEPENDENCY_PLATFORM}" ]; then
+ yum install -y $INSTALL_DEPENDENCY_PLATFORM
+fi
+
+if [ $ASAN_OPTION ] && [ -f "/opt/rh/devtoolset-7/enable" ] ;then
source /opt/rh/devtoolset-7/enable
fi
diff --git a/cmake/Package.cmake b/cmake/Package.cmake
index 30dfd2e..d7c7dd3 100644
--- a/cmake/Package.cmake
+++ b/cmake/Package.cmake
@@ -12,45 +12,40 @@ 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 ${CMAKE_BINARY_DIR} WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/cmake)
SET(CPACK_RPM_CHANGELOG_FILE ${CMAKE_BINARY_DIR}/changelog.txt)
# RPM Build
set(CPACK_GENERATOR "RPM")
+set(CPACK_RPM_AUTO_GENERATED_FILE_NAME ON)
+set(CPACK_RPM_FILE_NAME "RPM-DEFAULT")
set(CPACK_RPM_PACKAGE_VENDOR "MESA")
set(CPACK_RPM_PACKAGE_AUTOREQPROV "yes")
-set(CPACK_RPM_PACKAGE_RELEASE_LIBRARY "on")
+set(CPACK_RPM_PACKAGE_RELEASE_DIST "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_LIBRARIES_REQUIRED TRUE)
+set(CPACK_RPM_LIBRARIES_PACKAGE_NAME ${MY_RPM_NAME_PREFIX})
+set(CPACK_COMPONENT_LIBRARIES_GROUP "LIBRARIES")
+set(CPACK_COMPONENT_PROFILE_GROUP "LIBRARIES")
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_COMPONENT_HEADER_GROUP "HEADER")
-set(CPACK_RPM_HEADER_PACKAGE_REQUIRES_PRE ${CPACK_RPM_LIBRARY_PACKAGE_NAME})
+set(CPACK_RPM_HEADER_PACKAGE_REQUIRES_PRE ${CPACK_RPM_LIBRARIES_PACKAGE_NAME})
set(CPACK_RPM_HEADER_PACKAGE_CONFLICTS ${CPACK_RPM_HEADER_PACKAGE_NAME})
-set(CPACK_COMPONENTS_ALL LIBRARY HEADER PROFILE)
+set(CPACK_COMPONENTS_ALL LIBRARIES HEADER PROFILE)
-SET(CPACK_RPM_LIBRARY_PRE_INSTALL_SCRIPT_FILE "${PROJECT_SOURCE_DIR}/cmake/preInstall.sh")
-SET(CPACK_RPM_LIBRARY_PRE_UNINSTALL_SCRIPT_FILE "${PROJECT_SOURCE_DIR}/cmake/preUninstall.sh")
+SET(CPACK_RPM_LIBRARIES_PRE_INSTALL_SCRIPT_FILE "${PROJECT_SOURCE_DIR}/cmake/preInstall.sh")
+SET(CPACK_RPM_LIBRARIES_PRE_UNINSTALL_SCRIPT_FILE "${PROJECT_SOURCE_DIR}/cmake/preUninstall.sh")
set(CPACK_BUILD_SOURCE_DIRS "${CMAKE_SOURCE_DIR}")