From 99ff8909d34a8151ae24e62e2308f22f91e9206e Mon Sep 17 00:00:00 2001 From: Sam Wu Date: Tue, 13 Feb 2024 10:28:04 -0700 Subject: [PATCH] Add script for static library job (#526) * Add script for static library job * Set DBUILD_SHARED_LIBS in install to match rmake.py --- .jenkins/static.groovy | 81 ++++++++++++++++++++++++++++++++++++++++++ install | 18 ++++++++-- 2 files changed, 96 insertions(+), 3 deletions(-) create mode 100644 .jenkins/static.groovy diff --git a/.jenkins/static.groovy b/.jenkins/static.groovy new file mode 100644 index 000000000..421a8dff0 --- /dev/null +++ b/.jenkins/static.groovy @@ -0,0 +1,81 @@ +#!/usr/bin/env groovy +@Library('rocJenkins@pong') _ +import com.amd.project.* +import com.amd.docker.* +import java.nio.file.Path; + +def runCI = +{ + nodeDetails, jobName-> + + def prj = new rocProject('rocPRIM', 'static') + prj.paths.build_command = './install -c -s' + prj.timeout.compile = 600 + + def nodes = new dockerNodes(nodeDetails, jobName, prj) + + def commonGroovy + + boolean formatCheck = false + + def compileCommand = + { + platform, project-> + + commonGroovy = load "${project.paths.project_src_prefix}/.jenkins/common.groovy" + commonGroovy.runCompileCommand(platform, project, jobName) + } + + def testCommand = + { + platform, project-> + + commonGroovy.runTestCommand(platform, project) + } + + def packageCommand = + { + platform, project-> + + commonGroovy.runPackageCommand(platform, project) + } + + buildProject(prj, formatCheck, nodes.dockerArray, compileCommand, testCommand, packageCommand) +} + +ci: { + String urlJobName = auxiliary.getTopJobName(env.BUILD_URL) + + def propertyList = ["compute-rocm-dkms-no-npi":[pipelineTriggers([cron('0 1 * * 0')])], + "compute-rocm-dkms-no-npi-hipclang":[pipelineTriggers([cron('0 1 * * 0')])], + "rocm-docker":[]] + propertyList = auxiliary.appendPropertyList(propertyList) + + def jobNameList = ["compute-rocm-dkms-no-npi-hipclang":([ubuntu18:['gfx900'],centos7:['gfx906'],centos8:['gfx906'],sles15sp1:['gfx908']])] + jobNameList = auxiliary.appendJobNameList(jobNameList, 'rocPRIM') + + propertyList.each + { + jobName, property-> + if (urlJobName == jobName) + properties(auxiliary.addCommonProperties(property)) + } + + jobNameList.each + { + jobName, nodeDetails-> + if (urlJobName == jobName) + stage(jobName) { + runCI(nodeDetails, jobName) + } + } + + // For url job names that are not listed by the jobNameList i.e. compute-rocm-dkms-no-npi-1901 + if(!jobNameList.keySet().contains(urlJobName)) + { + properties(auxiliary.addCommonProperties([pipelineTriggers([cron('0 1 * * *')])])) + stage(urlJobName) { + runCI([ubuntu16:['gfx906']], urlJobName) + } + } +} diff --git a/install b/install index a83b75874..7820872c9 100755 --- a/install +++ b/install @@ -18,6 +18,7 @@ function display_help() echo " [-g|--debug] -DCMAKE_BUILD_TYPE=Debug (default is =Release)" echo " [-k|--relwithdebinfo] -DCMAKE_BUILD_TYPE=RelWithDebInfo" echo " [-b|--benchmark] builds and runs benchmark" + echo " [-s|--static] build static libraries" echo " [--codecoverage] build with code coverage profiling enabled" echo " [--hip-clang] build library for amdgpu backend using hip-clang" echo " [--address-sanitizer] build with address sanitizer enabled" @@ -33,6 +34,7 @@ build_package=false build_clients=false build_release=true build_release_debug=false +build_static_libraries=false build_codecoverage=false build_type=Release build_hip_clang=false @@ -99,6 +101,9 @@ while true; do -b|--benchmark) build_benchmark=true shift ;; + -s|--static) + build_static_libraries=true + shift ;; --codecoverage) build_codecoverage=true shift ;; @@ -157,6 +162,10 @@ if [[ "${build_clients}" == true ]]; then clients="ON" fi +if [[ "${build_static_libraries}" == true ]]; then + static_libs="-DBUILD_SHARED_LIBS=OFF" +fi + if [[ "${build_address_sanitizer}" == true ]]; then CFLAGS="${CLFAGS} -fsanitize=address -shared-libasan" CXXFLAGS="${CXXFLAGS} -fsanitize=address -shared-libasan" @@ -178,16 +187,19 @@ if [[ "${build_codecoverage}" == true ]]; then codecoverage="ON" fi - if [[ "${build_relocatable}" == true ]]; then CXX=${rocm_path}/bin/${compiler} ${cmake_executable} ${cmake_common_options} \ -DCMAKE_INSTALL_PREFIX=${rocm_path} -DBUILD_BENCHMARK=${benchmark} \ -DCMAKE_PREFIX_PATH="${rocm_path} ${rocm_path}/hip" \ -DBUILD_BENCHMARK=${benchmark} -DBUILD_TEST=${clients} \ - -DCMAKE_MODULE_PATH="${rocm_path}/lib/cmake/hip ${rocm_path}/hip/cmake" ../../. # or cmake-gui ../. + -DCMAKE_MODULE_PATH="${rocm_path}/lib/cmake/hip ${rocm_path}/hip/cmake" \ + "${static_libs}" \ + ../../. # or cmake-gui ../. else CXX=${rocm_path}/bin/${compiler} ${cmake_executable} ${cmake_common_options} -DBUILD_BENCHMARK=${benchmark} \ - -DBUILD_TEST=${clients} -DCMAKE_BUILD_TYPE=${build_type} -DBUILD_CODE_COVERAGE=${codecoverage} ../../. # or cmake-gui ../. + -DBUILD_TEST=${clients} -DCMAKE_BUILD_TYPE=${build_type} -DBUILD_CODE_COVERAGE=${codecoverage} \ + "${static_libs}" \ + ../../. # or cmake-gui ../. fi # Build