Skip to content

Commit

Permalink
Some CMake improvements (#592)
Browse files Browse the repository at this point in the history
  • Loading branch information
daboehme authored Sep 20, 2024
1 parent 4029342 commit c4853e7
Show file tree
Hide file tree
Showing 2 changed files with 29 additions and 11 deletions.
21 changes: 17 additions & 4 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,10 @@ project (caliper C CXX)
cmake_policy(SET CMP0063 NEW)
# Use <PackageName>_ROOT variables in find_package()
cmake_policy(SET CMP0074 NEW)
# Find Python by location
if (CMAKE_VERSION VERSION_GREATER_EQUAL 3.15)
cmake_policy(SET CMP0094 NEW)
endif()

# set the default visibility settings
set(CMAKE_VISIBILITY_INLINES_HIDDEN OFF)
Expand Down Expand Up @@ -422,12 +426,19 @@ if(WITH_TAU)
endif()

# Find Python
set(FIND_PYTHON_COMPONENTS "Interpreter")
if (WITH_PYTHON_BINDINGS)
set(FIND_PYTHON_COMPONENTS "Development" ${FIND_PYTHON_COMPONENTS})
endif ()
find_package(Python COMPONENTS Interpreter Development REQUIRED)
find_package(pybind11 CONFIG REQUIRED)
if (pybind11_FOUND)
set(CALIPER_HAVE_PYBIND11 TRUE)
set(CALIPER_PyBind_CMAKE_MSG "Yes, using pybind ${pybind11_VERSION}")
else()
message(WARNING "Python bindings requested but pybind11 was not found")
endif()
else()
find_package(Python COMPONENTS Interpreter REQUIRED)
endif()

find_package(Python COMPONENTS ${FIND_PYTHON_COMPONENTS} REQUIRED)
set(CALI_PYTHON_EXECUTABLE Python::Interpreter)

if (WITH_SAMPLER)
Expand Down Expand Up @@ -620,6 +631,7 @@ message(STATUS "Caliper configuration summary:")
message(STATUS "Caliper version : ${CALIPER_VERSION}")
message(STATUS "Build type : ${CMAKE_BUILD_TYPE}")
message(STATUS "Compiler : ${CMAKE_CXX_COMPILER_ID} ${CMAKE_CXX_COMPILER_VERSION} (${CMAKE_CXX_COMPILER})")
message(STATUS "Python interpreter : ${Python_EXECUTABLE}")
message(STATUS "System : ${CMAKE_SYSTEM} (${CMAKE_SYSTEM_PROCESSOR})")
message(STATUS "Install dir : ${CMAKE_INSTALL_PREFIX}")
message(STATUS "Build shared libs : ${BUILD_SHARED_LIBS}")
Expand All @@ -628,6 +640,7 @@ message(STATUS "Build tests : ${BUILD_TESTING}")

set(CALIPER_MODULES
Fortran
PyBind
cpuinfo
memusage
adiak
Expand Down
19 changes: 12 additions & 7 deletions src/interface/python/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -8,15 +8,21 @@ set(PYCALIPER_BINDING_SOURCES

set(CMAKE_POSITION_INDEPENDENT_CODE TRUE)

find_package(pybind11 CONFIG REQUIRED)

set(PYCALIPER_SYSCONFIG_SCHEME "posix_user" CACHE STRING "Scheme used for searching for pycaliper's install path. Valid options can be determined with 'sysconfig.get_scheme_names()'")

execute_process(COMMAND ${Python_EXECUTABLE} ${CMAKE_SOURCE_DIR}/cmake/get_python_install_paths.py purelib ${PYCALIPER_SYSCONFIG_SCHEME} OUTPUT_VARIABLE PYCALIPER_SITELIB)
execute_process(COMMAND ${Python_EXECUTABLE} ${CMAKE_SOURCE_DIR}/cmake/get_python_install_paths.py platlib ${PYCALIPER_SYSCONFIG_SCHEME} OUTPUT_VARIABLE PYCALIPER_SITEARCH)
execute_process(
COMMAND
${Python_EXECUTABLE} ${CMAKE_SOURCE_DIR}/cmake/get_python_install_paths.py purelib ${PYCALIPER_SYSCONFIG_SCHEME}
OUTPUT_VARIABLE
PYCALIPER_SITELIB)
execute_process(
COMMAND
${Python_EXECUTABLE} ${CMAKE_SOURCE_DIR}/cmake/get_python_install_paths.py platlib ${PYCALIPER_SYSCONFIG_SCHEME}
OUTPUT_VARIABLE
PYCALIPER_SITEARCH)

message(STATUS "Pycaliper sitelib: ${PYCALIPER_SITELIB}")
message(STATUS "Pycaliper sitearch: ${PYCALIPER_SITEARCH}")
# message(STATUS "Pycaliper sitelib: ${PYCALIPER_SITELIB}")
# message(STATUS "Pycaliper sitearch: ${PYCALIPER_SITEARCH}")

set(PYCALIPER_SITELIB "${PYCALIPER_SITELIB}/pycaliper")
set(PYCALIPER_SITEARCH "${PYCALIPER_SITEARCH}/pycaliper")
Expand Down Expand Up @@ -44,7 +50,6 @@ if (BUILD_TESTING)
COMMENT "Creating symlink between Python C module and build directory for testing"
DEPENDS __pycaliper_impl
)
message(STATUS "Will add ${PYPATH_TESTING} to PYTHONPATH during test")
endif()

install(
Expand Down

0 comments on commit c4853e7

Please sign in to comment.