From 38b3d4bca6a848e53892efc5776b338197c83143 Mon Sep 17 00:00:00 2001 From: Shreyas Atre Date: Tue, 21 Jan 2025 21:00:32 -0600 Subject: [PATCH] Avoid building HWLoc more times than initial configuration Signed-off-by: Shreyas Atre --- .github/workflows/macos_debug_fetch_hwloc.yml | 2 +- cmake/HPX_SetupHwloc.cmake | 20 ++++++++++++++----- 2 files changed, 16 insertions(+), 6 deletions(-) diff --git a/.github/workflows/macos_debug_fetch_hwloc.yml b/.github/workflows/macos_debug_fetch_hwloc.yml index caec2af3ac2..5f21e8072c7 100644 --- a/.github/workflows/macos_debug_fetch_hwloc.yml +++ b/.github/workflows/macos_debug_fetch_hwloc.yml @@ -18,7 +18,7 @@ jobs: - name: Install dependencies run: | brew install --overwrite python-tk && \ - brew install --overwrite boost gperftools ninja autoconf automake && \ + brew install --overwrite boost gperftools ninja autoconf automake pkgconf libtool && \ brew upgrade cmake - name: Configure shell: bash diff --git a/cmake/HPX_SetupHwloc.cmake b/cmake/HPX_SetupHwloc.cmake index cf970540b55..587b466e908 100644 --- a/cmake/HPX_SetupHwloc.cmake +++ b/cmake/HPX_SetupHwloc.cmake @@ -44,11 +44,21 @@ else() ) if(NOT HWLoc_POPULATED) fetchcontent_populate(HWLoc) - execute_process( - COMMAND - sh -c - "cd ${FETCHCONTENT_BASE_DIR}/hwloc-src && ./configure --prefix=${FETCHCONTENT_BASE_DIR}/hwloc-installed && make -j && make install" - ) + if(NOT Hwloc_BUILD_INSTALLED) + execute_process( + COMMAND + sh -c + "cd ${FETCHCONTENT_BASE_DIR}/hwloc-src && ./configure --prefix=${FETCHCONTENT_BASE_DIR}/hwloc-installed && make -j && make install" + ) + set(Hwloc_BUILD_INSTALLED + TRUE + CACHE INTERNAL "" + ) + else() + message( + "HWLoc is installed at ${FETCHCONTENT_BASE_DIR}/hwloc-installed" + ) + endif() endif() set(HWLOC_ROOT "${FETCHCONTENT_BASE_DIR}/hwloc-installed") set(Hwloc_INCLUDE_DIR