1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70
|
# find_package(PythonInterp)
# # TODO: Check PYTHON_VERSION_MAJOR
find_program(VIRTUALENV_PYTHON_EXE ${python})
if(NOT VIRTUALENV_PYTHON_EXE)
# look for non default name
if(${python} MATCHES "python3")
find_program(VIRTUALENV_PYTHON_EXE python)
else()
find_program(VIRTUALENV_PYTHON_EXE python3)
endif()
endif()
set(VIRTUALENV_HOME_DIR ${CMAKE_BINARY_DIR}/virtualenv CACHE PATH "Path to virtual environment")
function(virtualenv_create)
message("${VIRTUALENV_PYTHON_EXE} -m venv ${VIRTUALENV_HOME_DIR} --system-site-packages --clear")
execute_process(
RESULT_VARIABLE rc
COMMAND ${VIRTUALENV_PYTHON_EXE} -m venv ${VIRTUALENV_HOME_DIR} --system-site-packages --clear
)
if(rc)
message(FATAL_ERROR ${rc})
endif()
if(WIN32)
set(VIRTUALENV_BIN_DIR ${VIRTUALENV_HOME_DIR}/Scripts CACHE PATH "Path to virtualenv bin directory")
else()
set(VIRTUALENV_BIN_DIR ${VIRTUALENV_HOME_DIR}/bin CACHE PATH "Path to virtualenv bin directory")
endif()
# verify python executable name inside virtualenv as may be python3 or python (even if installed by python3)
find_program(VIRTUALENV_INST_PYTHON_EXE python3 PATHS ${VIRTUALENV_BIN_DIR} NO_DEFAULT_PATH)
if(NOT VIRTUALENV_INST_PYTHON_EXE)
find_program(VIRTUALENV_INST_PYTHON_EXE python PATHS ${VIRTUALENV_BIN_DIR} NO_DEFAULT_PATH)
endif()
get_filename_component(VIRTUALENV_PYTHON_EXENAME ${VIRTUALENV_INST_PYTHON_EXE} NAME CACHE)
# report the virtual env python version
message("virtualenv python version: ${VIRTUALENV_BIN_DIR}/${VIRTUALENV_PYTHON_EXENAME}")
execute_process(
COMMAND ${VIRTUALENV_BIN_DIR}/${VIRTUALENV_PYTHON_EXENAME} --version
)
endfunction()
function(virtualenv_install)
virtualenv_create()
if(TENSILE_VENV_UPGRADE_PIP)
message("${VIRTUALENV_BIN_DIR}/${VIRTUALENV_PYTHON_EXENAME} -m pip install --upgrade pip")
execute_process(
RESULT_VARIABLE rc
COMMAND ${VIRTUALENV_BIN_DIR}/${VIRTUALENV_PYTHON_EXENAME} -m pip install --upgrade pip
)
if(rc)
message(FATAL_ERROR ${rc})
endif()
endif()
message("${VIRTUALENV_BIN_DIR}/${VIRTUALENV_PYTHON_EXENAME} -m pip install ${ARGN}")
execute_process(
RESULT_VARIABLE rc
COMMAND ${VIRTUALENV_BIN_DIR}/${VIRTUALENV_PYTHON_EXENAME} -m pip install ${ARGN}
)
if(rc)
message(FATAL_ERROR ${rc})
endif()
endfunction()
|