|
|
|
@@ -36,15 +36,9 @@ if(NOT GOOD_CLANG_FOUND)
|
|
|
|
|
OUTPUT amdsmi_wrapper.py
|
|
|
|
|
${PY_PACKAGE_DIR}/amdsmi_wrapper.py
|
|
|
|
|
DEPENDS ${AMD_SMI}
|
|
|
|
|
${CMAKE_CURRENT_SOURCE_DIR}/amdsmi_wrapper.py.in
|
|
|
|
|
# remove .in suffix when copying
|
|
|
|
|
COMMAND cp -f ${CMAKE_CURRENT_SOURCE_DIR}/amdsmi_wrapper.py.in ${CMAKE_CURRENT_BINARY_DIR}/amdsmi_wrapper.py
|
|
|
|
|
# hacky alternative to configure_file that will run at MAKE compile instead of CMake configure
|
|
|
|
|
COMMAND sed -i
|
|
|
|
|
s:"@CPACK_PACKAGING_INSTALL_PREFIX@/@CMAKE_INSTALL_LIBDIR@":"${CPACK_PACKAGING_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}":g
|
|
|
|
|
${CMAKE_CURRENT_BINARY_DIR}/amdsmi_wrapper.py
|
|
|
|
|
${CMAKE_CURRENT_SOURCE_DIR}/amdsmi_wrapper.py
|
|
|
|
|
COMMAND mkdir -p ${PY_PACKAGE_DIR}
|
|
|
|
|
COMMAND ln -Pf ${CMAKE_CURRENT_BINARY_DIR}/amdsmi_wrapper.py ${PY_PACKAGE_DIR}/)
|
|
|
|
|
COMMAND ln -Pf ${CMAKE_CURRENT_SOURCE_DIR}/amdsmi_wrapper.py ${PY_PACKAGE_DIR}/)
|
|
|
|
|
else()
|
|
|
|
|
find_package(Python3 3.6 COMPONENTS Interpreter Development REQUIRED)
|
|
|
|
|
# --break-system-packages is needed for python 3.11
|
|
|
|
@@ -59,7 +53,7 @@ else()
|
|
|
|
|
configure_file(${PROJECT_SOURCE_DIR}/tools/generator.py generator.py @ONLY COPYONLY)
|
|
|
|
|
add_custom_command(
|
|
|
|
|
OUTPUT amdsmi.h
|
|
|
|
|
${CMAKE_CURRENT_SOURCE_DIR}/amdsmi_wrapper.py.in
|
|
|
|
|
${CMAKE_CURRENT_SOURCE_DIR}/amdsmi_wrapper.py
|
|
|
|
|
amdsmi_wrapper.py
|
|
|
|
|
${PY_PACKAGE_DIR}/amdsmi_wrapper.py
|
|
|
|
|
DEPENDS ${AMD_SMI}
|
|
|
|
@@ -67,15 +61,9 @@ else()
|
|
|
|
|
generator.py
|
|
|
|
|
${PROJECT_SOURCE_DIR}/include/amd_smi/amdsmi.h
|
|
|
|
|
COMMAND cp ${PROJECT_SOURCE_DIR}/include/amd_smi/amdsmi.h ./
|
|
|
|
|
COMMAND ${Python3_EXECUTABLE} generator.py "$<$<BOOL:${ENABLE_ESMI_LIB}>:-e -DENABLE_ESMI_LIB>" -i amdsmi.h -l ${PROJECT_BINARY_DIR}/src/libamd_smi.so -o ${CMAKE_CURRENT_SOURCE_DIR}/amdsmi_wrapper.py.in
|
|
|
|
|
# remove .in suffix when copying
|
|
|
|
|
COMMAND cp -f ${CMAKE_CURRENT_SOURCE_DIR}/amdsmi_wrapper.py.in ${CMAKE_CURRENT_BINARY_DIR}/amdsmi_wrapper.py
|
|
|
|
|
# hacky alternative to configure_file that will run at MAKE compile instead of CMake configure
|
|
|
|
|
COMMAND sed -i
|
|
|
|
|
s:"@CPACK_PACKAGING_INSTALL_PREFIX@/@CMAKE_INSTALL_LIBDIR@":"${CPACK_PACKAGING_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}":g
|
|
|
|
|
${CMAKE_CURRENT_BINARY_DIR}/amdsmi_wrapper.py
|
|
|
|
|
COMMAND ${Python3_EXECUTABLE} generator.py "$<$<BOOL:${ENABLE_ESMI_LIB}>:-e -DENABLE_ESMI_LIB>" -i amdsmi.h -l ${PROJECT_BINARY_DIR}/src/libamd_smi.so -o ${CMAKE_CURRENT_SOURCE_DIR}/amdsmi_wrapper.py
|
|
|
|
|
COMMAND mkdir -p ${PY_PACKAGE_DIR}
|
|
|
|
|
COMMAND ln -Pf ${CMAKE_CURRENT_BINARY_DIR}/amdsmi_wrapper.py ${PY_PACKAGE_DIR}/)
|
|
|
|
|
COMMAND ln -Pf ${CMAKE_CURRENT_SOURCE_DIR}/amdsmi_wrapper.py ${PY_PACKAGE_DIR}/)
|
|
|
|
|
endif()
|
|
|
|
|
|
|
|
|
|
# populate version string
|
|
|
|
@@ -98,7 +86,17 @@ add_custom_command(
|
|
|
|
|
COMMAND ln -Pf ${CMAKE_CURRENT_SOURCE_DIR}/amdsmi_exception.py ${PY_PACKAGE_DIR}/
|
|
|
|
|
COMMAND ln -Pf ${CMAKE_CURRENT_SOURCE_DIR}/amdsmi_interface.py ${PY_PACKAGE_DIR}/
|
|
|
|
|
COMMAND ln -Pf ${CMAKE_CURRENT_SOURCE_DIR}/README.md ${PY_PACKAGE_DIR}/
|
|
|
|
|
COMMAND ln -Pf ${PROJECT_SOURCE_DIR}/LICENSE ${PY_PACKAGE_DIR}/)
|
|
|
|
|
COMMAND ln -Pf ${PROJECT_SOURCE_DIR}/LICENSE ${PY_PACKAGE_DIR}/
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
# copy libamd_smi.so to allow for a self-contained python package
|
|
|
|
|
add_custom_command(
|
|
|
|
|
OUTPUT ${PY_PACKAGE_DIR}/libamd_smi.so
|
|
|
|
|
DEPENDS ${PROJECT_BINARY_DIR}/src/libamd_smi.so
|
|
|
|
|
COMMAND cp
|
|
|
|
|
"${PROJECT_BINARY_DIR}/src/libamd_smi.so"
|
|
|
|
|
${PY_PACKAGE_DIR}/
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
add_custom_target(
|
|
|
|
|
python_package ALL
|
|
|
|
@@ -108,7 +106,9 @@ add_custom_target(
|
|
|
|
|
${PY_PACKAGE_DIR}/amdsmi_exception.py
|
|
|
|
|
${PY_PACKAGE_DIR}/amdsmi_interface.py
|
|
|
|
|
${PY_PACKAGE_DIR}/README.md
|
|
|
|
|
${PY_PACKAGE_DIR}/LICENSE)
|
|
|
|
|
${PY_PACKAGE_DIR}/LICENSE
|
|
|
|
|
${PY_PACKAGE_DIR}/libamd_smi.so
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
install(
|
|
|
|
|
FILES
|
|
|
|
|