Multiple python versions (#42)

* Support multiple Python versions in single build

* RPATH + Split up config into config and runtime

* pybind11 submodule

* Docker build updates
This commit is contained in:
Jonathan R. Madsen
2022-04-21 21:36:07 -05:00
committed by GitHub
parent d98e60a17f
commit 4db6ba3d28
37 changed files with 1554 additions and 870 deletions
+34 -9
View File
@@ -11,13 +11,34 @@ if(DYNINST_BUILD_ELFUTILS AND DYNINST_ELFUTILS_DOWNLOAD_VERSION)
endforeach()
endif()
if(EXISTS /etc/lsb-release AND NOT IS_DIRECTORY /etc/lsb-release)
file(READ /etc/lsb-release _LSB_RELEASE)
if(_LSB_RELEASE)
string(REGEX REPLACE "DISTRIB_ID=(.*)\nDISTRIB_RELEASE=(.*)\nDISTRIB_CODENAME=.*"
"\\1-\\2" _SYSTEM_NAME "${_LSB_RELEASE}")
function(omnitrace_parse_release)
if(EXISTS /etc/lsb-release AND NOT IS_DIRECTORY /etc/lsb-release)
file(READ /etc/lsb-release _LSB_RELEASE)
if(_LSB_RELEASE)
string(REGEX
REPLACE "DISTRIB_ID=(.*)\nDISTRIB_RELEASE=(.*)\nDISTRIB_CODENAME=.*"
"\\1-\\2" _SYSTEM_NAME "${_LSB_RELEASE}")
endif()
elseif(EXISTS /etc/os-release AND NOT IS_DIRECTORY /etc/os-release)
file(READ /etc/os-release _OS_RELEASE)
if(_OS_RELEASE)
string(REPLACE "\"" "" _OS_RELEASE "${_OS_RELEASE}")
string(REPLACE "-" " " _OS_RELEASE "${_OS_RELEASE}")
string(REGEX REPLACE "NAME=.*\nVERSION=([0-9\.]+).*\nID=([a-z]+).*" "\\2-\\1"
_SYSTEM_NAME "${_OS_RELEASE}")
endif()
endif()
endif()
string(TOLOWER "${_SYSTEM_NAME}" _SYSTEM_NAME)
if(NOT _SYSTEM_NAME)
set(_SYSTEM_NAME "${CMAKE_SYSTEM_NAME}")
endif()
set(_SYSTEM_NAME
"${_SYSTEM_NAME}"
PARENT_SCOPE)
endfunction()
# parse either /etc/lsb-release or /etc/os-release
omnitrace_parse_release()
if(NOT _SYSTEM_NAME)
set(_SYSTEM_NAME "${CMAKE_SYSTEM_NAME}")
@@ -86,9 +107,13 @@ if(OMNITRACE_USE_MPI)
endif()
if(OMNITRACE_USE_PYTHON)
string(REPLACE "." "" OMNITRACE_CPACK_PYTHON_VERSION "PY${OMNITRACE_PYTHON_VERSION}")
set(OMNITRACE_CPACK_PACKAGE_SUFFIX
"${OMNITRACE_CPACK_PACKAGE_SUFFIX}-${OMNITRACE_CPACK_PYTHON_VERSION}")
set(_OMNITRACE_PYTHON_NAME "Python3")
foreach(_VER ${OMNITRACE_PYTHON_VERSIONS})
if("${_VER}" VERSION_LESS 3.0.0)
set(_OMNITRACE_PYTHON_NAME "Python")
endif()
endforeach()
set(OMNITRACE_CPACK_PACKAGE_SUFFIX "${OMNITRACE_CPACK_PACKAGE_SUFFIX}-Python3")
endif()
set(CPACK_PACKAGE_FILE_NAME
+5 -1
View File
@@ -584,11 +584,15 @@ omnitrace_add_feature(CMAKE_CXX_FLAGS "C++ compiler flags")
#
# ----------------------------------------------------------------------------------------#
set(OMNITRACE_INSTALL_PYTHONDIR
"${CMAKE_INSTALL_LIBDIR}/python/site-packages"
CACHE STRING "Installation prefix for python")
set(CMAKE_INSTALL_PYTHONDIR ${OMNITRACE_INSTALL_PYTHONDIR})
if(OMNITRACE_USE_PYTHON)
if(OMNITRACE_USE_PYTHON AND NOT OMNITRACE_BUILD_PYTHON)
find_package(pybind11 REQUIRED)
endif()
list(INSERT CMAKE_MODULE_PATH 0 ${PROJECT_SOURCE_DIR}/source/python/cmake)
include(ConfigPython)
endif()