# 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(PYTHON_PACKAGE_LIBPATH @PYTHON_PACKAGE_LIBPATH@)
set(PYTHON_PACKAGE_PATH @PYTHON_PACKAGE_PATH@)
set(TARGET_WHEEL @TARGET_WHEEL@)
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}")
file(COPY ${PYTHON_LIBPATH}/
     DESTINATION ${PYTHON_PACKAGE_LIBPATH}/lib
     REGEX ".*sym$" EXCLUDE)

find_program(CMAKE_STRIP NAMES strip)
file(GLOB SO_FILES "${PYTHON_PACKAGE_LIBPATH}/lib/*.so*")
#libacl_plugin.so need check sha256, can not strip
foreach(SO_FILE ${SO_FILES})
    if (NOT SO_FILE MATCHES "libacl_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 ${PYTHON_PACKAGE_PATH}
    RESULT_VARIABLE result
)
if(NOT result EQUAL 0)
    message(FATAL_ERROR "build wheel failed with exit code ${result}")
endif()
file(GLOB ORIGIN_WHEEL "python_api/dist/*.whl")
# Rename origin wheel file and move to install path.
file(COPY ${ORIGIN_WHEEL} DESTINATION ${CMAKE_INSTALL_PATH})
# Remove temporary package path
file(REMOVE_RECURSE ${PYTHON_PACKAGE_PATH})