# Run python setup.py to generate wheel file, rename wheel file and copy it to install path.
# Set the variable passed from configure_file in package.cmake/package_fc.cmake
set(GIT_HASH "@GIT_HASH@")
set(Python3_EXECUTABLE @Python3_EXECUTABLE@)
set(PYTHON_LIBPATH @PYTHON_LIBPATH@)
set(DATASYSTEM_WHEEL_PATH @DATASYSTEM_WHEEL_PATH@)
set(DATASYSTEM_SETUP_PATH @DATASYSTEM_SETUP_PATH@)
set(CMAKE_INSTALL_PATH @ARG_CMAKE_INSTALL_PATH@)
set(ENV{COMMIT_ID} "${GIT_HASH}")
# Copy all libs file and exclude sym file.
message("cmake install prefix: ${CMAKE_INSTALL_PREFIX}")
if(EXISTS ${PYTHON_LIBPATH})
file(COPY ${PYTHON_LIBPATH}/
DESTINATION ${DATASYSTEM_WHEEL_PATH}/lib
REGEX ".*sym$" EXCLUDE)
endif()
file(GLOB_RECURSE FILE_LIST ${CMAKE_INSTALL_PREFIX}/datasystem/sdk/cpp/lib/*so*)
file(WRITE "${DATASYSTEM_WHEEL_PATH}/sdk_lib_list" "")
foreach(FILE ${FILE_LIST})
get_filename_component(FILENAME ${FILE} NAME)
file(APPEND "${DATASYSTEM_WHEEL_PATH}/sdk_lib_list" "${FILENAME}\n")
endforeach()
find_program(CMAKE_STRIP NAMES strip)
file(GLOB SO_FILES "${DATASYSTEM_WHEEL_PATH}/lib/*.so*")
# acl_plugin and cuda_plugin need check sha256 at runtime, can not strip
foreach(SO_FILE ${SO_FILES})
if (NOT SO_FILE MATCHES "lib(acl|cuda)_plugin\\.so$")
execute_process(COMMAND ${CMAKE_STRIP} ${SO_FILE})
endif()
endforeach()
# Run python setup.py bdist_wheel to generate origin wheel file.
execute_process(
COMMAND ${Python3_EXECUTABLE} setup.py bdist_wheel
WORKING_DIRECTORY ${DATASYSTEM_SETUP_PATH}
RESULT_VARIABLE result
)
if(NOT result EQUAL 0)
message(FATAL_ERROR "build wheel failed with exit code ${result}")
endif()
file(GLOB ORIGIN_WHEEL "dist/dist/*.whl")
file(COPY ${ORIGIN_WHEEL} DESTINATION ${CMAKE_INSTALL_PATH}/)
# Remove temporary package path
file(REMOVE_RECURSE ${DATASYSTEM_SETUP_PATH})