diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 31d91a7..1549248 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,10 +1,10 @@ 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_IMAGE_X86_64_ROCKY8: "git.mesalab.cn:7443/mesa_platform/build-env:rockylinux" + BUILD_IMAGE_AARCH64_ROCKY9: "git.mesalab.cn:7443/mesa_platform/build-env:rocky9-aarch64" BUILD_PADDING_PREFIX: /tmp/padding_for_CPACK_RPM_BUILD_SOURCE_DIRS_PREFIX_PREFIX_PREFIX_PREFIX_PREFIX_PREFIX/ INSTALL_DEPENDENCY_LIBRARY: libasan sudo - INSTALL_DEPENDENCY_FRAMEWORK: sapp-devel libMESA_handle_logger-devel libcjson-devel libMESA_field_stat2-devel framework_env libMESA_prof_load-devel libbreakpad_mini-devel libMESA_htable-devel libMESA_jump_layer libMESA_htable libnsl + INSTALL_DEPENDENCY_FRAMEWORK: sapp-devel libMESA_handle_logger-devel libcjson-devel libMESA_field_stat2-devel framework_env libMESA_prof_load-devel libbreakpad_mini-devel libMESA_htable-devel libMESA_htable libnsl INSTALL_PREFIX: "/opt/MESA/" stages: @@ -12,60 +12,152 @@ stages: - test - package -run_test_for_centos7: - stage: test - extends: .build_by_travis_for_centos7 - script: - - yum makecache - - ./ci/travis.sh - - cd build - - ctest --verbose - -run_test_for_centos8: - stage: test - extends: .build_by_travis_for_centos8 - script: - - yum makecache - - ./ci/travis.sh - - cd build - - ctest3 --verbose - .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 - - yum makecache - - yum install -y elfutils-libelf-devel - -.build_by_travis_for_centos7: +############################################################################### +# build on x86_64 Rocky8 +############################################################################### +.build_by_travis_for_x86_64_rocky8: stage: build - image: $BUILD_IMAGE_CENTOS7 + image: $BUILD_IMAGE_X86_64_ROCKY8 extends: .build_before_script script: - - yum install -y libmnl-devel - - yum install -y libnfnetlink-devel + - ./ci/travis.sh + tags: + - tsg-os-builder-el8 + +run_test_for_x86_64_rocky8: + stage: test + image: $BUILD_IMAGE_X86_64_ROCKY8 + extends: .build_by_travis_for_x86_64_rocky8 + script: + - yum makecache - ./ci/travis.sh - cd build - tags: - - share + - ctest3 --verbose -.build_by_travis_for_centos8: +branch_build_debug_for_x86_64_rocky8: stage: build - image: $BUILD_IMAGE_CENTOS8 + extends: .build_by_travis_for_x86_64_rocky8 + variables: + BUILD_TYPE: Debug + except: + - /^develop.*$/i + - /^master.*$/i + - tags + +branch_build_release_for_x86_64_rocky8: + stage: build + variables: + BUILD_TYPE: RelWithDebInfo + extends: .build_by_travis_for_x86_64_rocky8 + except: + - /^develop.*$/i + - /^master.*$/i + - tags + +develop_build_debug_for_x86_64_rocky8: + stage: build + extends: .build_by_travis_for_x86_64_rocky8 + variables: + BUILD_TYPE: Debug + PACKAGE: 1 + UPLOAD_RPM: 1 + ASAN_OPTION: ADDRESS + TESTING_VERSION_BUILD: 1 + PULP3_REPO_NAME: framework-testing-x86_64.el8 + PULP3_DIST_NAME: framework-testing-x86_64.el8 + artifacts: + name: "MESA_sts-$CI_COMMIT_REF_NAME-debug" + paths: + - build/*.rpm + only: + - /^develop.*$/i + - /^master.*$/i + +develop_build_release_for_x86_64_rocky8: + stage: build + extends: .build_by_travis_for_x86_64_rocky8 + variables: + BUILD_TYPE: RelWithDebInfo + PACKAGE: 1 + UPLOAD_RPM: 1 + TESTING_VERSION_BUILD: 1 + PULP3_REPO_NAME: framework-testing-x86_64.el8 + PULP3_DIST_NAME: framework-testing-x86_64.el8 + artifacts: + name: "MESA_sts-$CI_COMMIT_REF_NAME-release" + paths: + - build/*.rpm + only: + - /^develop.*$/i + - /^master.*$/i + +release_build_debug_for_x86_64_rocky8: + stage: package + variables: + BUILD_TYPE: Debug + PACKAGE: 1 + UPLOAD_RPM: 1 + PULP3_REPO_NAME: framework-stable-x86_64.el8 + PULP3_DIST_NAME: framework-stable-x86_64.el8 + extends: .build_by_travis_for_x86_64_rocky8 + artifacts: + name: "MESA_sts-$CI_COMMIT_REF_NAME-debug" + paths: + - build/*.rpm + only: + - tags + +release_build_release_for_x86_64_rocky8: + stage: package + variables: + BUILD_TYPE: RelWithDebInfo + PACKAGE: 1 + UPLOAD_RPM: 1 + UPLOAD_SYMBOL_FILES: 1 + SYMBOL_TARGET: libMESA_sts + PULP3_REPO_NAME: framework-stable-x86_64.el8 + PULP3_DIST_NAME: framework-stable-x86_64.el8 + extends: .build_by_travis_for_x86_64_rocky8 + artifacts: + name: "MESA_sts-$CI_COMMIT_REF_NAME-release" + paths: + - build/*.rpm + only: + - tags + + +############################################################################### +# build on aarch64 Rocky9 +############################################################################### +.build_by_travis_for_aarch64_rocky9: + stage: build + image: $BUILD_IMAGE_AARCH64_ROCKY9 extends: .build_before_script script: - - dnf --enablerepo=powertools install -y libmnl-devel - - dnf --enablerepo=powertools install -y libnfnetlink-devel - ./ci/travis.sh tags: - - share + - tsg-os-builder-aarch64 -branch_build_debug_for_centos7: +run_test_for_aarch64_rocky9: + stage: test + image: $BUILD_IMAGE_AARCH64_ROCKY9 + extends: .build_by_travis_for_aarch64_rocky9 + script: + - yum makecache + - ./ci/travis.sh + - cd build + - ctest3 --verbose + +branch_build_debug_for_aarch64_rocky9: stage: build - extends: .build_by_travis_for_centos7 + extends: .build_by_travis_for_aarch64_rocky9 variables: BUILD_TYPE: Debug except: @@ -73,27 +165,27 @@ branch_build_debug_for_centos7: - /^master.*$/i - tags -branch_build_release_for_centos7: +branch_build_release_for_aarch64_rocky9: stage: build variables: BUILD_TYPE: RelWithDebInfo - extends: .build_by_travis_for_centos7 + extends: .build_by_travis_for_aarch64_rocky9 except: - /^develop.*$/i - /^master.*$/i - tags -develop_build_debug_for_centos7: +develop_build_debug_for_aarch64_rocky9: stage: build - extends: .build_by_travis_for_centos7 + extends: .build_by_travis_for_aarch64_rocky9 variables: BUILD_TYPE: Debug PACKAGE: 1 UPLOAD_RPM: 1 ASAN_OPTION: ADDRESS TESTING_VERSION_BUILD: 1 - PULP3_REPO_NAME: framework-testing-x86_64.el7 - PULP3_DIST_NAME: framework-testing-x86_64.el7 + PULP3_REPO_NAME: framework-testing-aarch64.el9 + PULP3_DIST_NAME: framework-testing-aarch64.el9 artifacts: name: "MESA_sts-$CI_COMMIT_REF_NAME-debug" paths: @@ -102,16 +194,16 @@ develop_build_debug_for_centos7: - /^develop.*$/i - /^master.*$/i -develop_build_release_for_centos7: +develop_build_release_for_aarch64_rocky9: stage: build - extends: .build_by_travis_for_centos7 + extends: .build_by_travis_for_aarch64_rocky9 variables: BUILD_TYPE: RelWithDebInfo PACKAGE: 1 UPLOAD_RPM: 1 TESTING_VERSION_BUILD: 1 - PULP3_REPO_NAME: framework-testing-x86_64.el7 - PULP3_DIST_NAME: framework-testing-x86_64.el7 + PULP3_REPO_NAME: framework-testing-aarch64.el9 + PULP3_DIST_NAME: framework-testing-aarch64.el9 artifacts: name: "MESA_sts-$CI_COMMIT_REF_NAME-release" paths: @@ -120,15 +212,15 @@ develop_build_release_for_centos7: - /^develop.*$/i - /^master.*$/i -release_build_debug_for_centos7: +release_build_debug_for_aarch64_rocky9: stage: package variables: BUILD_TYPE: Debug PACKAGE: 1 UPLOAD_RPM: 1 - PULP3_REPO_NAME: framework-stable-x86_64.el7 - PULP3_DIST_NAME: framework-stable-x86_64.el7 - extends: .build_by_travis_for_centos7 + PULP3_REPO_NAME: framework-stable-aarch64.el9 + PULP3_DIST_NAME: framework-stable-aarch64.el9 + extends: .build_by_travis_for_aarch64_rocky9 artifacts: name: "MESA_sts-$CI_COMMIT_REF_NAME-debug" paths: @@ -136,7 +228,7 @@ release_build_debug_for_centos7: only: - tags -release_build_release_for_centos7: +release_build_release_for_aarch64_rocky9: stage: package variables: BUILD_TYPE: RelWithDebInfo @@ -144,103 +236,12 @@ release_build_release_for_centos7: UPLOAD_RPM: 1 UPLOAD_SYMBOL_FILES: 1 SYMBOL_TARGET: libMESA_sts - PULP3_REPO_NAME: framework-stable-x86_64.el7 - PULP3_DIST_NAME: framework-stable-x86_64.el7 - extends: .build_by_travis_for_centos7 + PULP3_REPO_NAME: framework-stable-aarch64.el9 + PULP3_DIST_NAME: framework-stable-aarch64.el9 + extends: .build_by_travis_for_aarch64_rocky9 artifacts: name: "MESA_sts-$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: framework-testing-x86_64.el8 - PULP3_DIST_NAME: framework-testing-x86_64.el8 - artifacts: - name: "MESA_sts-$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: framework-testing-x86_64.el8 - PULP3_DIST_NAME: framework-testing-x86_64.el8 - artifacts: - name: "MESA_sts-$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: framework-stable-x86_64.el8 - PULP3_DIST_NAME: framework-stable-x86_64.el8 - extends: .build_by_travis_for_centos8 - artifacts: - name: "MESA_sts-$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: libMESA_sts - PULP3_REPO_NAME: framework-stable-x86_64.el8 - PULP3_DIST_NAME: framework-stable-x86_64.el8 - extends: .build_by_travis_for_centos8 - artifacts: - name: "MESA_sts-$CI_COMMIT_REF_NAME-release" - paths: - - build/*.rpm - only: - - tags + - tags \ No newline at end of file diff --git a/CMakeLists.txt b/CMakeLists.txt index eec516b..7da9926 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -16,38 +16,6 @@ if(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT) set(CMAKE_INSTALL_PREFIX "/opt/MESA" CACHE PATH "default install path" FORCE) endif() -find_program(CMAKE_CXX_CPPCHECK NAMES cppcheck) -if (CMAKE_CXX_CPPCHECK) - list( - APPEND CMAKE_CXX_CPPCHECK - "--enable=all" - "--error-exitcode=1" - "--suppress=unreachableCode" - "--suppress=unusedFunction" - "--suppress=missingInclude" - "--suppress=uselessAssignmentPtrArg" - "--suppress=unmatchedSuppression" - "--suppress=internalAstError" - "--suppress=unmatchedSuppression" - "--suppress=unreadVariable" - "--suppress=memleakOnRealloc" - "--suppress=redundantAssignment" - "--suppress=constParameter" - "--suppress=unsignedLessThanZero" - "--suppress=variableScope" - "--suppress=cstyleCast" - "--suppress=objectIndex" - "--suppress=shadowVariable" - "--suppress=nullPointerRedundantCheck" - "--suppress=ctunullpointer" - "--suppress=shadowFunction" - "--suppress=unusedStructMember" - ) - set(CMAKE_C_CPPCHECK ${CMAKE_CXX_CPPCHECK}) -else() - message(FATAL_ERROR "Could not find the program cppcheck.") -endif() - #for ASAN set(ASAN_OPTION "OFF" CACHE STRING " set asan type chosen by the user, using OFF as default") set_property(CACHE ASAN_OPTION PROPERTY STRINGS OFF ADDRESS THREAD) diff --git a/vendor/CMakeLists.txt b/vendor/CMakeLists.txt index 0035fd9..e212a50 100644 --- a/vendor/CMakeLists.txt +++ b/vendor/CMakeLists.txt @@ -5,7 +5,7 @@ include(ExternalProject) ExternalProject_Add(libgtest PREFIX libgtest URL ${CMAKE_SOURCE_DIR}/vendor/googletest-release-1.10.0.tar.gz URL_MD5 ecd1fa65e7de707cd5c00bdac56022cd - CMAKE_ARGS -DCMAKE_INSTALL_PREFIX= -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}) + CMAKE_ARGS -DCMAKE_INSTALL_PREFIX= -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} -DCMAKE_CXX_FLAGS=-Wno-maybe-uninitialized) ExternalProject_Get_Property(libgtest INSTALL_DIR) file(MAKE_DIRECTORY ${INSTALL_DIR}/include) add_library(gtest-static STATIC IMPORTED GLOBAL)