@@ -41,6 +41,37 @@ find_package(OpenSSL REQUIRED COMPONENTS Crypto SSL)
4141find_package (nlohmann_json "3.6.1" REQUIRED )
4242find_package (Python "${IRODS_PYTHON_VERSION} " REQUIRED COMPONENTS Development )
4343
44+ if (NOT IRODS_PYTHON_SONAME)
45+ get_target_property (IRODS_PYTHON_SONAME Python::Python IMPORTED_SONAME )
46+ if (NOT IRODS_PYTHON_SONAME)
47+ get_target_property (__PYTHON_IMPORTED_LOCATION Python::Python IMPORTED_LOCATION )
48+ if (__PYTHON_IMPORTED_LOCATION)
49+ if (IS_SYMLINK "${__PYTHON_IMPORTED_LOCATION} " )
50+ file (READ_SYMLINK "${__PYTHON_IMPORTED_LOCATION} " __PYTHON_LIBRARY_PATH )
51+ else ()
52+ set (__PYTHON_LIBRARY_PATH "${__PYTHON_IMPORTED_LOCATION} " )
53+ endif ()
54+ get_filename_component (IRODS_PYTHON_SONAME "${__PYTHON_LIBRARY_PATH} " NAME )
55+ else ()
56+ # We might be able to use python-config before falling back to guessing like this.
57+ if (Python_VERSION_MAJOR EQUAL "3" AND Python_VERSION_MINOR LESS "8" )
58+ set (__PYTHON_VERSION_SUFFIX "m" )
59+ else ()
60+ set (__PYTHON_VERSION_SUFFIX "" )
61+ endif ()
62+ set (IRODS_PYTHON_SONAME "${CMAKE_SHARED_LIBRARY_PREFIX} python${Python_VERSION_MAJOR} .${Python_VERSION_MINOR}${__PYTHON_VERSION_SUFFIX}${CMAKE_SHARED_LIBRARY_SUFFIX} .1.0" )
63+ endif ()
64+ endif ()
65+ message ("Python SONAME detected as ${IRODS_PYTHON_SONAME} " )
66+ endif ()
67+
68+ file (MAKE_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR} /include/irods/private/re/python" )
69+ configure_file (
70+ "${CMAKE_CURRENT_SOURCE_DIR} /include/irods/private/re/python/config.hpp.in"
71+ "${CMAKE_CURRENT_BINARY_DIR} /include/irods/private/re/python/config.hpp"
72+ @ONLY
73+ )
74+
4475set (
4576 PLUGIN
4677 irods_rule_engine_plugin-python
@@ -154,6 +185,7 @@ target_include_directories(
154185 ${PLUGIN}
155186 PRIVATE
156187 $<BUILD_INTERFACE :${CMAKE_CURRENT_SOURCE_DIR} /include >
188+ $<BUILD_INTERFACE :${CMAKE_CURRENT_BINARY_DIR} /include >
157189 ${IRODS_INCLUDE_DIRS}
158190 ${IRODS_EXTERNALS_FULLPATH_BOOST} /include
159191 ${IRODS_EXTERNALS_FULLPATH_FMT} /include
0 commit comments