blob: f5c40b953a7d0397e126256eb92fd5a455047594 [file] [log] [blame]
# Copyright (c) PLUMgrid, Inc.
# Licensed under the Apache License, Version 2.0 (the "License")
if(NOT PYTHON_CMD)
set(PYTHON_CMD "python3")
endif()
if(EXISTS "/etc/debian_version")
set(PYTHON_FLAGS "${PYTHON_FLAGS} --install-layout deb")
endif()
file(GLOB_RECURSE PYTHON_SOURCES RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}
${CMAKE_CURRENT_SOURCE_DIR}/*.py)
file(GLOB_RECURSE PYTHON_INCLUDES RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}
${CMAKE_CURRENT_SOURCE_DIR}/*.py.in)
foreach(PY_CMD ${PYTHON_CMD})
string(REPLACE "/" "-" PY_CMD_ESCAPED ${PY_CMD})
set(PY_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/bcc-${PY_CMD_ESCAPED})
foreach(PY_SRC ${PYTHON_SOURCES})
configure_file(${PY_SRC} ${PY_DIRECTORY}/${PY_SRC} COPYONLY)
endforeach()
foreach(PY_INC ${PYTHON_INCLUDES})
string(REPLACE ".py.in" ".py" PY_INC_REPLACED ${PY_INC})
configure_file(${PY_INC} ${PY_DIRECTORY}/${PY_INC_REPLACED} @ONLY)
endforeach()
set(PIP_INSTALLABLE "${PY_DIRECTORY}/dist/bcc-${REVISION}.tar.gz")
add_custom_command(
OUTPUT ${PIP_INSTALLABLE}
COMMAND ${PY_CMD} setup.py sdist
WORKING_DIRECTORY ${PY_DIRECTORY}
DEPENDS ${PYTHON_SOURCES} ${PYTHON_INCLUDES}
COMMENT "Building sdist for ${PY_CMD}"
)
add_custom_target(bcc_py_${PY_CMD_ESCAPED} ALL DEPENDS ${PIP_INSTALLABLE})
install(
CODE "
execute_process(
COMMAND ${PY_CMD} setup.py install -f ${PYTHON_FLAGS} --prefix=${CMAKE_INSTALL_PREFIX}
WORKING_DIRECTORY ${PY_DIRECTORY})"
COMPONENT python)
endforeach()