Skip to content

Commit

Permalink
find flux-core by finding flux, match prefix if none specified
Browse files Browse the repository at this point in the history
  • Loading branch information
trws committed Jul 14, 2023
1 parent 22d352d commit cf61c99
Show file tree
Hide file tree
Showing 3 changed files with 26 additions and 13 deletions.
9 changes: 5 additions & 4 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ set( CMAKE_BUILD_RPATH
# the RPATH to be used when installing, but only if it's not a system directory
list(FIND CMAKE_PLATFORM_IMPLICIT_LINK_DIRECTORIES "${CMAKE_INSTALL_PREFIX}/lib" isSystemDir)
if("${isSystemDir}" STREQUAL "-1")
set(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/lib")
set(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/lib")
endif("${isSystemDir}" STREQUAL "-1")


Expand All @@ -49,10 +49,11 @@ list(APPEND CMAKE_PREFIX_PATH ${CMAKE_INSTALL_PREFIX})
# external dependencies
find_package(PkgConfig REQUIRED)
set(ENV{PKG_CONFIG_PATH} "$ENV{PKG_CONFIG_PATH}:${CMAKE_INSTALL_PREFIX}/lib/pkgconfig")
if(DEFINED FLUX_CORE_PREFIX)
set(ENV{PKG_CONFIG_PATH} "${FLUX_CORE_PREFIX}/lib/pkgconfig:$ENV{PKG_CONFIG_PATH}")
endif()
find_package(FluxCore REQUIRED)
if(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)
message(STATUS "flux core found and no specific prefix specified, using ${FLUX_CORE_PREFIX}")
set(CMAKE_INSTALL_PREFIX ${FLUX_CORE_PREFIX} CACHE PATH "..." FORCE)
endif()
find_package(yaml-cpp REQUIRED)
if(DEFINED ENV{PYTHON})
set(Python_EXECUTABLE $ENV{PYTHON} CACHE FILEPATH "")
Expand Down
18 changes: 14 additions & 4 deletions cmake/FindFluxCore.cmake
Original file line number Diff line number Diff line change
@@ -1,5 +1,16 @@
set(saved_PKG_CONFIG_PATH $ENV{PKG_CONFIG_PATH})
set(ENV{PKG_CONFIG_PATH} ${CMAKE_INSTALL_PREFIX}:$ENV{PKG_CONFIG_PATH})
if(DEFINED FLUX_CORE_PREFIX)
set(ENV{PKG_CONFIG_PATH} "${FLUX_CORE_PREFIX}/lib/pkgconfig:$ENV{PKG_CONFIG_PATH}")
else()
find_program(FLUX flux
HINTS ${FLUX_CORE_PREFIX}/bin ENV PATH)
if(FLUX AND NOT FLUX_CORE_PREFIX)
get_filename_component(EXTRA_FLUX_CORE_PREFIX_BIN ${FLUX} DIRECTORY)
get_filename_component(EXTRA_FLUX_CORE_PREFIX ${EXTRA_FLUX_CORE_PREFIX_BIN} DIRECTORY)
set(ENV{PKG_CONFIG_PATH} "${EXTRA_FLUX_CORE_PREFIX}/lib/pkgconfig:$ENV{PKG_CONFIG_PATH}")
message(STATUS "flux found in PATH and no specific FLUX_CORE_PREFIX specified, using ${EXTRA_FLUX_CORE_PREFIX}")
endif()
endif()

pkg_check_modules(FLUX_CORE REQUIRED IMPORTED_TARGET flux-core)
set(FLUX_PREFIX ${FLUX_CORE_PREFIX})
set(LIBFLUX_VERSION ${FLUX_CORE_VERSION})
Expand All @@ -8,7 +19,7 @@ find_program(FLUX flux
PATHS ${FLUX_PREFIX}/bin ENV PATH)

execute_process(COMMAND $FLUX python -c "import sys; print(\".\".join(map(str, sys.version_info[[:2]])))"
OUTPUT_VARIABLE FLUX_PYTHON_VERSION)
OUTPUT_VARIABLE FLUX_PYTHON_VERSION)

pkg_check_modules(FLUX_HOSTLIST REQUIRED IMPORTED_TARGET flux-hostlist )
pkg_check_modules(FLUX_IDSET REQUIRED IMPORTED_TARGET flux-idset )
Expand All @@ -30,4 +41,3 @@ add_library(flux-all INTERFACE)
target_link_libraries(flux-all INTERFACE flux::core flux::hostlist flux::idset flux::optparse flux::schedutil flux::taskmap)
add_library(flux::all ALIAS flux-all)

set(ENV{PKG_CONFIG_PATH} ${saved_PKG_CONFIG_PATH})
12 changes: 7 additions & 5 deletions configure-cmake
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
#!/bin/sh

# Autotools-style (./configure) wrapper for CMake
# <https://github.com/nemequ/configure-cmake>
#
Expand Down Expand Up @@ -28,7 +27,7 @@ if [ "${CMAKE_CMD}" = "" ]; then
fi

BUILD_TYPE="Debug"
PREFIX=/usr/local
# PREFIX=/usr/local
LIBDIR=
CMAKE_ARGS=

Expand Down Expand Up @@ -302,8 +301,11 @@ while [ $# != 0 ]; do
shift
done

if [ "x${LIBDIR}" = "x" ]; then
LIBDIR="${PREFIX}/lib"
if [ -n "${LIBDIR}" ]; then
CMAKE_ARGS="$CMAKE_ARGS -DCMAKE_INSTALL_LIBDIR=\"${LIBDIR}\""
fi
if [ -n "${PREFIX}" ]; then
CMAKE_ARGS="$CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=\"${PREFIX}\""
fi

# Unlike CFLAGS/CXXFLAGS/CC/CXX, LDFLAGS isn't handled by CMake, so we
Expand All @@ -314,4 +316,4 @@ if [ "x${LDFLAGS}" != "x" ]; then
done
fi

eval "${CMAKE_CMD}" "${TOP_SRCDIR}" -DCMAKE_BUILD_TYPE="${BUILD_TYPE}" -DCMAKE_INSTALL_PREFIX="${PREFIX}" -DCMAKE_INSTALL_LIBDIR="${LIBDIR}" ${CMAKE_ARGS}
eval "${CMAKE_CMD}" "${TOP_SRCDIR}" -DCMAKE_BUILD_TYPE="${BUILD_TYPE}" ${CMAKE_ARGS}

0 comments on commit cf61c99

Please sign in to comment.