From 03d3472e09b1f2699db46c3c58f77a52ff7e0ab0 Mon Sep 17 00:00:00 2001 From: "Jonathan R. Madsen" Date: Mon, 16 Jun 2025 19:20:28 -0500 Subject: [PATCH 1/5] Reorganize rocprofv3 python package adding Python version candidates review fix fix test fix remove extra line fix the exception handle fix Lint fail fix installation adding checks to check version format disable test for address sanitizer --- source/bin/CMakeLists.txt | 2 - source/bin/rocprofv3-avail.py | 27 ++++++++++++- source/lib/python/CMakeLists.txt | 1 + .../python/rocprofv3}/CMakeLists.txt | 20 ++++------ .../python/rocprofv3}/__init__.py | 0 .../python/rocprofv3}/avail.py | 0 source/lib/python/utilities.cmake | 25 ++++++++++++ tests/rocprofv3-avail/CMakeLists.txt | 40 ++++++++----------- tests/rocprofv3-avail/validate.py | 17 +++++++- 9 files changed, 89 insertions(+), 43 deletions(-) rename source/{bin/rocprofv3_avail_module => lib/python/rocprofv3}/CMakeLists.txt (66%) rename source/{bin/rocprofv3_avail_module => lib/python/rocprofv3}/__init__.py (100%) rename source/{bin/rocprofv3_avail_module => lib/python/rocprofv3}/avail.py (100%) diff --git a/source/bin/CMakeLists.txt b/source/bin/CMakeLists.txt index 7f0bb05908..17da12f29c 100644 --- a/source/bin/CMakeLists.txt +++ b/source/bin/CMakeLists.txt @@ -4,8 +4,6 @@ rocprofiler_activate_clang_tidy() -add_subdirectory(rocprofv3_avail_module) - # Adding main rocprofv3 configure_file(rocprofv3.py ${PROJECT_BINARY_DIR}/${CMAKE_INSTALL_BINDIR}/rocprofv3 @ONLY) diff --git a/source/bin/rocprofv3-avail.py b/source/bin/rocprofv3-avail.py index f0932a9fa7..368bab50ac 100755 --- a/source/bin/rocprofv3-avail.py +++ b/source/bin/rocprofv3-avail.py @@ -25,7 +25,6 @@ import os import argparse import sys -from rocprofv3_avail_module import avail def format_help(formatter, w=120, h=40): @@ -126,7 +125,7 @@ def add_parser_bool_argument(gparser, *args, **kwargs): # Create the parser parser = argparse.ArgumentParser( - description="ROCProfilerV3-avail Run Script", + description="rocprofv3 query tool for agents, counters, pc-sampling, and more", usage="%(prog)s [options] ", epilog=usage_examples, formatter_class=format_help(argparse.RawTextHelpFormatter), @@ -196,6 +195,8 @@ def get_number_columns(max_name_len): def list_basic_agent(args, list_counters): + from rocprofv3 import avail + def print_agent_counter(counters): names_len = [len(counter.name) for counter in counters] names = [ @@ -235,6 +236,8 @@ def print_basic_info(info): def list_pc_sampling(args): + from rocprofv3 import avail + sampling_agents = avail.get_pc_sample_configs() agent_info_map = avail.get_agent_info_map() print("Agents supporting PC Sampling\n") @@ -249,6 +252,8 @@ def list_pc_sampling(args): def info_pc_sampling(args): + from rocprofv3 import avail + sampling_agents = avail.get_pc_sample_configs() agent_info_map = avail.get_agent_info_map() for agent, configs in dict(sorted(sampling_agents.items())).items(): @@ -267,6 +272,8 @@ def info_pc_sampling(args): def listing(args): + from rocprofv3 import avail + def print_agent_counter(counters): names_len = [len(counter.name) for counter in counters] names = [ @@ -306,6 +313,8 @@ def print_agent_counter(counters): def info_pmc(args): + from rocprofv3 import avail + agent_counters = avail.get_counters() agent_info_map = avail.get_agent_info_map() @@ -367,6 +376,8 @@ def process_list(args): def process_pmc_check(args): + from rocprofv3 import avail + def get_device_agent(device_id): for agent, info in agent_info_map.items(): if info["type"] == 2 and info["logical_node_type_id"] == device_id: @@ -458,15 +469,27 @@ def process_qualifiers(pmc): def main(argv=None): + ROCPROFV3_AVAIL_DIR = os.path.dirname(os.path.realpath(__file__)) ROCM_DIR = os.path.dirname(ROCPROFV3_AVAIL_DIR) ROCPROF_LIST_AVAIL_TOOL_LIBRARY = ( f"{ROCM_DIR}/lib/rocprofiler-sdk/librocprofv3-list-avail.so" ) os.environ["ROCPROFILER_METRICS_PATH"] = f"{ROCM_DIR}/share/rocprofiler-sdk" + try: + # try to import rocprofv3 normally + from rocprofv3 import avail + except (ImportError, ModuleNotFoundError): + # if failed, find the python package for this python version + ROCPROFV3_AVAIL_PACKAGE = f"{ROCM_DIR}/lib/python{sys.version_info[0]}.{sys.version_info[1]}/site-packages" + sys.path.append(ROCPROFV3_AVAIL_PACKAGE) + + from rocprofv3 import avail + avail.loadLibrary.libname = os.environ.get( "ROCPROF_LIST_AVAIL_TOOL_LIBRARY", ROCPROF_LIST_AVAIL_TOOL_LIBRARY ) + args = parse_arguments(argv) if args.command: args.func(args) diff --git a/source/lib/python/CMakeLists.txt b/source/lib/python/CMakeLists.txt index 0c0d8755cc..58d07db583 100644 --- a/source/lib/python/CMakeLists.txt +++ b/source/lib/python/CMakeLists.txt @@ -16,3 +16,4 @@ endif() add_subdirectory(roctx) add_subdirectory(rocpd) +add_subdirectory(rocprofv3) diff --git a/source/bin/rocprofv3_avail_module/CMakeLists.txt b/source/lib/python/rocprofv3/CMakeLists.txt similarity index 66% rename from source/bin/rocprofv3_avail_module/CMakeLists.txt rename to source/lib/python/rocprofv3/CMakeLists.txt index 7306e31f44..5d546d0377 100644 --- a/source/bin/rocprofv3_avail_module/CMakeLists.txt +++ b/source/lib/python/rocprofv3/CMakeLists.txt @@ -20,18 +20,12 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE # SOFTWARE. -set(PACKAGE_OUTPUT_DIR - ${PROJECT_BINARY_DIR}/${CMAKE_INSTALL_BINDIR}/rocprofv3_avail_module) +set(ROCPROFV3_PYTHON_VERSION_CANDIDATES + "3.12;3.11;3.10;3.9;3.8;3.7;3.6" + CACHE STRING "Python versions to search for, newest first") -set(ROCPROFV3_AVAIL_SOURCES __init__.py avail.py) - -foreach(_FILE ${ROCPROFV3_AVAIL_SOURCES}) - configure_file(${CMAKE_CURRENT_LIST_DIR}/${_FILE} ${PACKAGE_OUTPUT_DIR}/${_FILE} - COPYONLY) - install( - FILES ${PACKAGE_OUTPUT_DIR}/${_FILE} - DESTINATION ${CMAKE_INSTALL_BINDIR}/rocprofv3_avail_module - PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE - WORLD_READ WORLD_EXECUTE - COMPONENT tools) +foreach(_PYTHON_VERSION IN LISTS ROCPROFV3_PYTHON_VERSION_CANDIDATES) + rocprofiler_rocprofv3_python(${_PYTHON_VERSION}) endforeach() + +rocprofiler_reset_python3_cache() diff --git a/source/bin/rocprofv3_avail_module/__init__.py b/source/lib/python/rocprofv3/__init__.py similarity index 100% rename from source/bin/rocprofv3_avail_module/__init__.py rename to source/lib/python/rocprofv3/__init__.py diff --git a/source/bin/rocprofv3_avail_module/avail.py b/source/lib/python/rocprofv3/avail.py similarity index 100% rename from source/bin/rocprofv3_avail_module/avail.py rename to source/lib/python/rocprofv3/avail.py diff --git a/source/lib/python/utilities.cmake b/source/lib/python/utilities.cmake index 9c8a987d76..593671ee45 100644 --- a/source/lib/python/utilities.cmake +++ b/source/lib/python/utilities.cmake @@ -210,3 +210,28 @@ function(rocprofiler_rocpd_python_bindings _VERSION) DESTINATION ${rocpd_PYTHON_INSTALL_DIRECTORY} COMPONENT rocpd) endfunction() + +function(rocprofiler_rocprofv3_python _VERSION) + message( + STATUS "Creating rocprofiler-sdk rocprofv3 python package for python ${_VERSION}") + if(NOT "${_VERSION}" MATCHES "^([0-9]+)\\.([0-9]+)$") + message( + STATUS + "Bad rocprofiler-sdk rocprofv3 python version ${_VERSION}. Requires ." + ) + endif() + set(rocprofv3_PYTHON_INSTALL_DIRECTORY + ${CMAKE_INSTALL_LIBDIR}/python${_VERSION}/site-packages/rocprofv3) + set(rocprofv3_PYTHON_OUTPUT_DIRECTORY + ${PROJECT_BINARY_DIR}/${rocprofv3_PYTHON_INSTALL_DIRECTORY}) + set(rocprofv3_PYTHON_SOURCES __init__.py avail.py) + + foreach(_SOURCE ${rocprofv3_PYTHON_SOURCES}) + configure_file(${CMAKE_CURRENT_LIST_DIR}/${_SOURCE} + ${rocprofv3_PYTHON_OUTPUT_DIRECTORY}/${_SOURCE} COPYONLY) + install( + FILES ${rocprofv3_PYTHON_OUTPUT_DIRECTORY}/${_SOURCE} + DESTINATION ${rocprofv3_PYTHON_INSTALL_DIRECTORY} + COMPONENT tools) + endforeach() +endfunction() diff --git a/tests/rocprofv3-avail/CMakeLists.txt b/tests/rocprofv3-avail/CMakeLists.txt index 2c40cff554..89a29cd4a5 100644 --- a/tests/rocprofv3-avail/CMakeLists.txt +++ b/tests/rocprofv3-avail/CMakeLists.txt @@ -78,29 +78,21 @@ set_tests_properties( PROPERTIES TIMEOUT 45 LABELS "integration-tests" ENVIRONMENT "${test-rocprofv3-avail-env}" DISABLED "${IS_DISABLED}") -if(TARGET rocprofv3-list-avail) +add_test(NAME rocprofv3-avail-test-validate + COMMAND ${Python3_EXECUTABLE} ${CMAKE_CURRENT_BINARY_DIR}/validate.py + --rocm-path ${rocprofiler-sdk_ROOT_DIR}) - add_test(NAME rocprofv3-avail-test-validate - COMMAND ${Python3_EXECUTABLE} ${CMAKE_CURRENT_BINARY_DIR}/validate.py - --rocm-path ${CMAKE_BINARY_DIR}) +set(test-rocprofv3-avail-validate-env "${PRELOAD_ENV}" "PYTHONPATH=$ENV{PYTHONPATH}") - # for validate, explicitly set ROCPROF_LIST_AVAIL_TOOL_LIBRARY since we copy - # rocprofv3-avail to directory - set(test-rocprofv3-avail-validate-env - "${PRELOAD_ENV}" "PYTHONPATH=$ENV{PYTHONPATH}:${CMAKE_BINARY_DIR}/bin/") - - set_tests_properties( - rocprofv3-avail-test-validate - PROPERTIES TIMEOUT - 45 - LABELS - "integration-tests" - ENVIRONMENT - "${test-rocprofv3-avail-validate-env}" - FAIL_REGULAR_EXPRESSION - "${ROCPROFILER_DEFAULT_FAIL_REGEX}" - DEPENDS - rocprofv3-avail-test-copy-module - DISABLED - "${IS_DISABLED}") -endif() +set_tests_properties( + rocprofv3-avail-test-validate + PROPERTIES TIMEOUT + 45 + LABELS + "integration-tests" + ENVIRONMENT + "${test-rocprofv3-avail-validate-env}" + FAIL_REGULAR_EXPRESSION + "${ROCPROFILER_DEFAULT_FAIL_REGEX}" + DISABLED + "${IS_DISABLED}") diff --git a/tests/rocprofv3-avail/validate.py b/tests/rocprofv3-avail/validate.py index 3d85dc0774..2573e49cd8 100644 --- a/tests/rocprofv3-avail/validate.py +++ b/tests/rocprofv3-avail/validate.py @@ -22,16 +22,17 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -import pandas as pd import sys import os import pytest -from rocprofv3_avail_module import avail import ctypes def test_validate_metrics(rocm_path): set_library(rocm_path) + + from rocprofv3 import avail + lib = avail.get_library() agent_counters_dict = avail.get_counters() @@ -54,6 +55,9 @@ def test_validate_metrics(rocm_path): def test_validate_list_pc_sample_config(rocm_path): set_library(rocm_path) + + from rocprofv3 import avail + lib = avail.get_library() pc_sample_configs_dict = avail.get_pc_sample_configs() @@ -73,6 +77,8 @@ def test_validate_list_pc_sample_config(rocm_path): def test_counter_set(capsys, rocm_path): set_library(rocm_path) + from rocprofv3 import avail + def get_counter_names(counter_ids): counter_names = [] @@ -109,6 +115,13 @@ def get_agent_name(agent_id): def set_library(rocm_path): + ROCPROFV3_AVAIL_PACKAGE = ( + f"{rocm_path}/lib/python{sys.version_info[0]}.{sys.version_info[1]}/site-packages" + ) + sys.path.append(ROCPROFV3_AVAIL_PACKAGE) + + from rocprofv3 import avail + ROCPROF_LIST_AVAIL_TOOL_LIBRARY = ( f"{rocm_path}/lib/rocprofiler-sdk/librocprofv3-list-avail.so" ) From 479bf4e340a66938cfee8c176533c90b38809521 Mon Sep 17 00:00:00 2001 From: Sriraksha Nagaraj Date: Tue, 15 Jul 2025 11:29:42 -0500 Subject: [PATCH 2/5] review comments --- source/bin/rocprofv3-avail.py | 2 +- source/lib/python/rocprofv3/CMakeLists.txt | 9 ++------- source/lib/python/utilities.cmake | 18 ++++++------------ tests/rocprofv3-avail/validate.py | 2 +- 4 files changed, 10 insertions(+), 21 deletions(-) diff --git a/source/bin/rocprofv3-avail.py b/source/bin/rocprofv3-avail.py index 368bab50ac..d68c209454 100755 --- a/source/bin/rocprofv3-avail.py +++ b/source/bin/rocprofv3-avail.py @@ -481,7 +481,7 @@ def main(argv=None): from rocprofv3 import avail except (ImportError, ModuleNotFoundError): # if failed, find the python package for this python version - ROCPROFV3_AVAIL_PACKAGE = f"{ROCM_DIR}/lib/python{sys.version_info[0]}.{sys.version_info[1]}/site-packages" + ROCPROFV3_AVAIL_PACKAGE = f"{ROCM_DIR}/lib/python{sys.version_info[0]}/site-packages" sys.path.append(ROCPROFV3_AVAIL_PACKAGE) from rocprofv3 import avail diff --git a/source/lib/python/rocprofv3/CMakeLists.txt b/source/lib/python/rocprofv3/CMakeLists.txt index 5d546d0377..b99290122e 100644 --- a/source/lib/python/rocprofv3/CMakeLists.txt +++ b/source/lib/python/rocprofv3/CMakeLists.txt @@ -20,12 +20,7 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE # SOFTWARE. -set(ROCPROFV3_PYTHON_VERSION_CANDIDATES - "3.12;3.11;3.10;3.9;3.8;3.7;3.6" - CACHE STRING "Python versions to search for, newest first") - -foreach(_PYTHON_VERSION IN LISTS ROCPROFV3_PYTHON_VERSION_CANDIDATES) - rocprofiler_rocprofv3_python(${_PYTHON_VERSION}) -endforeach() +set(rocprofv3_PYTHON_SOURCES __init__.py avail.py) +rocprofiler_rocprofv3_python(${rocprofv3_PYTHON_SOURCES}) rocprofiler_reset_python3_cache() diff --git a/source/lib/python/utilities.cmake b/source/lib/python/utilities.cmake index 593671ee45..8a76704b1f 100644 --- a/source/lib/python/utilities.cmake +++ b/source/lib/python/utilities.cmake @@ -211,21 +211,15 @@ function(rocprofiler_rocpd_python_bindings _VERSION) COMPONENT rocpd) endfunction() -function(rocprofiler_rocprofv3_python _VERSION) - message( - STATUS "Creating rocprofiler-sdk rocprofv3 python package for python ${_VERSION}") - if(NOT "${_VERSION}" MATCHES "^([0-9]+)\\.([0-9]+)$") - message( - STATUS - "Bad rocprofiler-sdk rocprofv3 python version ${_VERSION}. Requires ." - ) - endif() +function(rocprofiler_rocprofv3_python) set(rocprofv3_PYTHON_INSTALL_DIRECTORY - ${CMAKE_INSTALL_LIBDIR}/python${_VERSION}/site-packages/rocprofv3) + ${CMAKE_INSTALL_LIBDIR}/python3/site-packages/rocprofv3) set(rocprofv3_PYTHON_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/${rocprofv3_PYTHON_INSTALL_DIRECTORY}) - set(rocprofv3_PYTHON_SOURCES __init__.py avail.py) - + set(rocprofv3_PYTHON_SOURCES ${ARGN}) + if(NOT rocprofv3_PYTHON_SOURCES) + message(FATAL_ERROR "rocprofiler_rocprofv3_python requires specifying source files") + endif() foreach(_SOURCE ${rocprofv3_PYTHON_SOURCES}) configure_file(${CMAKE_CURRENT_LIST_DIR}/${_SOURCE} ${rocprofv3_PYTHON_OUTPUT_DIRECTORY}/${_SOURCE} COPYONLY) diff --git a/tests/rocprofv3-avail/validate.py b/tests/rocprofv3-avail/validate.py index 2573e49cd8..1bf88cb4ed 100644 --- a/tests/rocprofv3-avail/validate.py +++ b/tests/rocprofv3-avail/validate.py @@ -116,7 +116,7 @@ def get_agent_name(agent_id): def set_library(rocm_path): ROCPROFV3_AVAIL_PACKAGE = ( - f"{rocm_path}/lib/python{sys.version_info[0]}.{sys.version_info[1]}/site-packages" + f"{rocm_path}/lib/python{sys.version_info[0]}/site-packages" ) sys.path.append(ROCPROFV3_AVAIL_PACKAGE) From 705692f29150d2454b154ea78e53ef79e42710f7 Mon Sep 17 00:00:00 2001 From: Sriraksha Nagaraj Date: Tue, 15 Jul 2025 12:00:26 -0500 Subject: [PATCH 3/5] Removing extra lines --- source/bin/rocprofv3-avail.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/source/bin/rocprofv3-avail.py b/source/bin/rocprofv3-avail.py index d68c209454..86421c7032 100755 --- a/source/bin/rocprofv3-avail.py +++ b/source/bin/rocprofv3-avail.py @@ -469,7 +469,6 @@ def process_qualifiers(pmc): def main(argv=None): - ROCPROFV3_AVAIL_DIR = os.path.dirname(os.path.realpath(__file__)) ROCM_DIR = os.path.dirname(ROCPROFV3_AVAIL_DIR) ROCPROF_LIST_AVAIL_TOOL_LIBRARY = ( @@ -489,7 +488,6 @@ def main(argv=None): avail.loadLibrary.libname = os.environ.get( "ROCPROF_LIST_AVAIL_TOOL_LIBRARY", ROCPROF_LIST_AVAIL_TOOL_LIBRARY ) - args = parse_arguments(argv) if args.command: args.func(args) From f50c459f3d0a4a39e304d1c28fce30327992b221 Mon Sep 17 00:00:00 2001 From: Sriraksha Nagaraj Date: Tue, 15 Jul 2025 12:08:48 -0500 Subject: [PATCH 4/5] fix format --- source/bin/rocprofv3-avail.py | 8 +++++--- source/lib/python/utilities.cmake | 3 ++- tests/rocprofv3-avail/validate.py | 4 +--- 3 files changed, 8 insertions(+), 7 deletions(-) diff --git a/source/bin/rocprofv3-avail.py b/source/bin/rocprofv3-avail.py index 86421c7032..5a0f375957 100755 --- a/source/bin/rocprofv3-avail.py +++ b/source/bin/rocprofv3-avail.py @@ -196,7 +196,7 @@ def get_number_columns(max_name_len): def list_basic_agent(args, list_counters): from rocprofv3 import avail - + def print_agent_counter(counters): names_len = [len(counter.name) for counter in counters] names = [ @@ -273,7 +273,7 @@ def info_pc_sampling(args): def listing(args): from rocprofv3 import avail - + def print_agent_counter(counters): names_len = [len(counter.name) for counter in counters] names = [ @@ -480,7 +480,9 @@ def main(argv=None): from rocprofv3 import avail except (ImportError, ModuleNotFoundError): # if failed, find the python package for this python version - ROCPROFV3_AVAIL_PACKAGE = f"{ROCM_DIR}/lib/python{sys.version_info[0]}/site-packages" + ROCPROFV3_AVAIL_PACKAGE = ( + f"{ROCM_DIR}/lib/python{sys.version_info[0]}/site-packages" + ) sys.path.append(ROCPROFV3_AVAIL_PACKAGE) from rocprofv3 import avail diff --git a/source/lib/python/utilities.cmake b/source/lib/python/utilities.cmake index 8a76704b1f..439f5aa1bb 100644 --- a/source/lib/python/utilities.cmake +++ b/source/lib/python/utilities.cmake @@ -218,7 +218,8 @@ function(rocprofiler_rocprofv3_python) ${PROJECT_BINARY_DIR}/${rocprofv3_PYTHON_INSTALL_DIRECTORY}) set(rocprofv3_PYTHON_SOURCES ${ARGN}) if(NOT rocprofv3_PYTHON_SOURCES) - message(FATAL_ERROR "rocprofiler_rocprofv3_python requires specifying source files") + message( + FATAL_ERROR "rocprofiler_rocprofv3_python requires specifying source files") endif() foreach(_SOURCE ${rocprofv3_PYTHON_SOURCES}) configure_file(${CMAKE_CURRENT_LIST_DIR}/${_SOURCE} diff --git a/tests/rocprofv3-avail/validate.py b/tests/rocprofv3-avail/validate.py index 1bf88cb4ed..e8a335bd76 100644 --- a/tests/rocprofv3-avail/validate.py +++ b/tests/rocprofv3-avail/validate.py @@ -115,9 +115,7 @@ def get_agent_name(agent_id): def set_library(rocm_path): - ROCPROFV3_AVAIL_PACKAGE = ( - f"{rocm_path}/lib/python{sys.version_info[0]}/site-packages" - ) + ROCPROFV3_AVAIL_PACKAGE = f"{rocm_path}/lib/python{sys.version_info[0]}/site-packages" sys.path.append(ROCPROFV3_AVAIL_PACKAGE) from rocprofv3 import avail From 1f7d9ecbdba3067ecebcc71021a4b2f0127fe9be Mon Sep 17 00:00:00 2001 From: "Jonathan R. Madsen" Date: Wed, 23 Jul 2025 16:10:41 -0500 Subject: [PATCH 5/5] Add lib/python3/site-packages to PYTHONPATH in setup-env.sh --- cmake/Templates/modulefile.in | 2 +- cmake/Templates/setup-env.sh.in | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/cmake/Templates/modulefile.in b/cmake/Templates/modulefile.in index dd47f7d6f4..ed5ac2488f 100644 --- a/cmake/Templates/modulefile.in +++ b/cmake/Templates/modulefile.in @@ -12,5 +12,5 @@ setenv @PACKAGE_NAME_UNDERSCORED@_ROOT "${ROOT}" prepend-path CMAKE_PREFIX_PATH "${ROOT}" prepend-path PATH "${ROOT}/bin" prepend-path LD_LIBRARY_PATH "${ROOT}/@CMAKE_INSTALL_LIBDIR@" -prepend-path PYTHONPATH "${ROOT}/@CMAKE_INSTALL_PYTHONDIR@" +prepend-path PYTHONPATH "${ROOT}/@CMAKE_INSTALL_LIBDIR@/python3/site-packages" setenv @PACKAGE_NAME_UNDERSCORED@_DIR "${ROOT}/@CMAKE_INSTALL_LIBDIR@/cmake/@PACKAGE_NAME@" diff --git a/cmake/Templates/setup-env.sh.in b/cmake/Templates/setup-env.sh.in index 7c64413a28..6270efcecb 100644 --- a/cmake/Templates/setup-env.sh.in +++ b/cmake/Templates/setup-env.sh.in @@ -27,9 +27,9 @@ LD_LIBRARY_PATH=${BASEDIR}/@CMAKE_INSTALL_LIBDIR@:${LD_LIBRARY_PATH} CMAKE_PREFIX_PATH=${BASEDIR}:${CMAKE_PREFIX_PATH} if [ -z "@CMAKE_INSTALL_PYTHONDIR@" ]; then - PYTHONPATH=$(@PACKAGE_NAME_UNDERSCORED@_get_python3_path):${PYTHONPATH} + PYTHONPATH=$(@PACKAGE_NAME_UNDERSCORED@_get_python3_path):${BASEDIR}/@CMAKE_INSTALL_LIBDIR@/python3/site-packages:${PYTHONPATH} else - PYTHONPATH=${BASEDIR}/@CMAKE_INSTALL_PYTHONDIR@:${PYTHONPATH} + PYTHONPATH=${BASEDIR}/@CMAKE_INSTALL_PYTHONDIR@:${BASEDIR}/@CMAKE_INSTALL_LIBDIR@/python3/site-packages:${PYTHONPATH} fi unset @PACKAGE_NAME_UNDERSCORED@_get_python3_path