From 015fdfac6ae4ab2c372e5a465ba7c5516f845713 Mon Sep 17 00:00:00 2001 From: "Jonathan R. Madsen" Date: Mon, 25 Jul 2022 02:36:28 -0500 Subject: [PATCH] Docker + build-release.sh + PAPI.cmake (#111) - Release Docker uses CMake 3.21.4 - Configurable PAPI_C_COMPILER - build-release.sh builds install --- cmake/PAPI.cmake | 17 +++++++++++++++-- docker/Dockerfile.centos | 2 +- docker/Dockerfile.opensuse | 2 +- docker/Dockerfile.ubuntu | 2 +- scripts/build-release.sh | 2 +- 5 files changed, 19 insertions(+), 6 deletions(-) diff --git a/cmake/PAPI.cmake b/cmake/PAPI.cmake index 45e9e24d1e..c0491f7594 100644 --- a/cmake/PAPI.cmake +++ b/cmake/PAPI.cmake @@ -183,6 +183,17 @@ if(NOT MAKE_EXECUTABLE) ) endif() +set(_PAPI_C_COMPILER ${CMAKE_C_COMPILER}) +if(CMAKE_C_COMPILER_IS_CLANG) + find_program(OMNITRACE_GNU_C_COMPILER NAMES gcc) + if(OMNITRACE_GNU_C_COMPILER) + set(_PAPI_C_COMPILER ${OMNITRACE_GNU_C_COMPILER}) + endif() +endif() +set(PAPI_C_COMPILER + ${_PAPI_C_COMPILER} + CACHE FILEPATH "C compiler used to compile PAPI") + include(ExternalProject) externalproject_add( omnitrace-papi-build @@ -190,7 +201,7 @@ externalproject_add( SOURCE_DIR ${OMNITRACE_PAPI_SOURCE_DIR}/src BUILD_IN_SOURCE 1 CONFIGURE_COMMAND - ${CMAKE_COMMAND} -E env CC=${CMAKE_C_COMPILER} + ${CMAKE_COMMAND} -E env CC=${PAPI_C_COMPILER} CFLAGS=-fPIC\ -O3\ -g\ -Wno-stringop-truncation LIBS=-lrt LDFLAGS=-lrt ${OMNITRACE_PAPI_EXTRA_ENV} /configure --prefix=${OMNITRACE_PAPI_INSTALL_DIR} --with-static-lib=yes --with-shared-lib=no @@ -268,6 +279,8 @@ target_link_libraries(omnitrace-papi INTERFACE ${PAPI_LIBRARY} ${PAPI_pfm_LIBRAR omnitrace_target_compile_definitions(omnitrace-papi INTERFACE OMNITRACE_USE_PAPI TIMEMORY_USE_PAPI=1) +include(GNUInstallDirs) + install( DIRECTORY ${OMNITRACE_PAPI_INSTALL_DIR}/lib/ DESTINATION ${CMAKE_INSTALL_LIBDIR}/omnitrace @@ -296,7 +309,7 @@ foreach( install( PROGRAMS ${OMNITRACE_PAPI_INSTALL_DIR}/bin/${_UTIL_EXE} DESTINATION ${CMAKE_INSTALL_BINDIR} - COMPONENT papi RENAME ${_UTIL_EXE_INSTALL_NAME} + COMPONENT papi OPTIONAL) endforeach() diff --git a/docker/Dockerfile.centos b/docker/Dockerfile.centos index d7aceb88a9..4889f4be24 100644 --- a/docker/Dockerfile.centos +++ b/docker/Dockerfile.centos @@ -17,7 +17,7 @@ RUN yum update -y && \ yum install -y centos-release-scl && \ yum install -y epel-release && \ yum install -y devtoolset-9 python3-pip openmpi3-devel zlib-devel numactl-devel papi-devel dpkg-devel dpkg-dev wget curl && \ - python3 -m pip install 'cmake==3.18.4' + python3 -m pip install 'cmake==3.21.4' ARG AMDGPU_RPM=21.40.2/rhel/7.9/amdgpu-install-21.40.2.40502-1.el7.noarch.rpm # ARG AMDGPU_RPM=latest/rhel/7.9/amdgpu-install-21.50.50000-1.el7.noarch.rpm diff --git a/docker/Dockerfile.opensuse b/docker/Dockerfile.opensuse index 35aa4fe1c8..81c1386072 100644 --- a/docker/Dockerfile.opensuse +++ b/docker/Dockerfile.opensuse @@ -16,7 +16,7 @@ RUN zypper update -y && \ zypper dist-upgrade -y && \ zypper install -y -t pattern devel_basis && \ zypper install -y python3-pip openmpi3-devel gcc-c++ git libnuma-devel dpkg-devel rpm-build wget curl binutils-gold && \ - python3 -m pip install 'cmake==3.18.4' + python3 -m pip install 'cmake==3.21.4' # ARG AMDGPU_RPM=21.40.2/sle/15/amdgpu-install-21.40.2.40502-1.noarch.rpm ARG AMDGPU_RPM=latest/sle/15/amdgpu-install-21.50.50000-1.noarch.rpm diff --git a/docker/Dockerfile.ubuntu b/docker/Dockerfile.ubuntu index 184dfe246f..d822cddb6f 100644 --- a/docker/Dockerfile.ubuntu +++ b/docker/Dockerfile.ubuntu @@ -23,7 +23,7 @@ ENV PATH ${HOME}/.local/bin:${PATH} RUN apt-get update && \ apt-get dist-upgrade -y && \ apt-get install -y build-essential cmake libnuma-dev wget gnupg2 m4 bash-completion git-core autoconf libtool autotools-dev python3-pip lsb-release libpapi-dev libpfm4-dev libudev-dev libopenmpi-dev rpm librpm-dev curl && \ - python3 -m pip install 'cmake==3.18.4' && \ + python3 -m pip install 'cmake==3.21.4' && \ wget -q -O - https://repo.radeon.com/rocm/rocm.gpg.key | apt-key add - && \ echo "deb [arch=amd64] https://repo.radeon.com/rocm/apt/${ROCM_REPO_VERSION}/ ${ROCM_REPO_DIST} main" | tee /etc/apt/sources.list.d/rocm.list && \ apt-get update && \ diff --git a/scripts/build-release.sh b/scripts/build-release.sh index 0089bd07cd..dd68993a82 100755 --- a/scripts/build-release.sh +++ b/scripts/build-release.sh @@ -208,7 +208,7 @@ build-and-package-base() verbose-run cmake --build ${BUILD_DIR}/${DIR} --target clean fi verbose-run cmake --build ${BUILD_DIR}/${DIR} --target all --parallel ${NJOBS} - verbose-run cmake --build ${BUILD_DIR}/${DIR} --target all --parallel ${NJOBS} + verbose-run cmake --build ${BUILD_DIR}/${DIR} --target install --parallel ${NJOBS} pushd ${BUILD_DIR}/${DIR} verbose-run rm -f *.sh *.deb *.rpm popd