mirror of
https://github.com/opencv/opencv.git
synced 2026-07-21 19:33:03 +04:00
Fix Windows build issues with IPPICV unpack and IPPIW CMakeLists.txt copy (#28608)
- Replace execute_process(tar) with file(ARCHIVE_EXTRACT) for native .zip support and better Windows path handling when CMAKE_VERSION >= 3.18 - Replace execute_process copy with file(COPY) and existence check for reliable CMakeLists.txt copying to avoid timing/path issues on Windows - Maintains backward compatibility with older CMake versions and Linux behavior Fixes issue #28608
This commit is contained in:
@@ -282,11 +282,17 @@ ${OPENCV_DOWNLOAD_LOG}
|
|||||||
ocv_download_log("#mkdir \"${DL_DESTINATION_DIR}\"")
|
ocv_download_log("#mkdir \"${DL_DESTINATION_DIR}\"")
|
||||||
file(MAKE_DIRECTORY "${DL_DESTINATION_DIR}")
|
file(MAKE_DIRECTORY "${DL_DESTINATION_DIR}")
|
||||||
ocv_download_log("#unpack \"${DL_DESTINATION_DIR}\" \"${CACHE_CANDIDATE}\"")
|
ocv_download_log("#unpack \"${DL_DESTINATION_DIR}\" \"${CACHE_CANDIDATE}\"")
|
||||||
execute_process(COMMAND "${CMAKE_COMMAND}" -E tar xzf "${CACHE_CANDIDATE}"
|
if(CMAKE_VERSION VERSION_GREATER_EQUAL "3.18")
|
||||||
WORKING_DIRECTORY "${DL_DESTINATION_DIR}"
|
file(ARCHIVE_EXTRACT
|
||||||
RESULT_VARIABLE res)
|
INPUT "${CACHE_CANDIDATE}"
|
||||||
if(NOT res EQUAL 0)
|
DESTINATION "${DL_DESTINATION_DIR}")
|
||||||
message(FATAL_ERROR "${__msg_prefix}Unpack failed: ${res}")
|
else()
|
||||||
|
execute_process(COMMAND "${CMAKE_COMMAND}" -E tar xzf "${CACHE_CANDIDATE}"
|
||||||
|
WORKING_DIRECTORY "${DL_DESTINATION_DIR}"
|
||||||
|
RESULT_VARIABLE res)
|
||||||
|
if(NOT res EQUAL 0)
|
||||||
|
message(FATAL_ERROR "${__msg_prefix}Unpack failed: ${res}")
|
||||||
|
endif()
|
||||||
endif()
|
endif()
|
||||||
else()
|
else()
|
||||||
ocv_download_log("#copy \"${COPY_DESTINATION}\" \"${CACHE_CANDIDATE}\"")
|
ocv_download_log("#copy \"${COPY_DESTINATION}\" \"${CACHE_CANDIDATE}\"")
|
||||||
|
|||||||
@@ -83,7 +83,9 @@ macro(ippiw_setup PATH BUILD)
|
|||||||
set(IPP_IW_LIBRARY ippiw)
|
set(IPP_IW_LIBRARY ippiw)
|
||||||
set(IPP_IW_INCLUDES "${IPP_IW_PATH}/include")
|
set(IPP_IW_INCLUDES "${IPP_IW_PATH}/include")
|
||||||
set(IPP_IW_LIBRARIES ${IPP_IW_LIBRARY})
|
set(IPP_IW_LIBRARIES ${IPP_IW_LIBRARY})
|
||||||
execute_process(COMMAND ${CMAKE_COMMAND} -E copy_if_different "${OpenCV_SOURCE_DIR}/3rdparty/ippicv/CMakeLists.txt" "${IPP_IW_PATH}/")
|
if(NOT EXISTS "${IPP_IW_PATH}/CMakeLists.txt")
|
||||||
|
file(COPY "${OpenCV_SOURCE_DIR}/3rdparty/ippicv/CMakeLists.txt" DESTINATION "${IPP_IW_PATH}")
|
||||||
|
endif()
|
||||||
add_subdirectory("${IPP_IW_PATH}/" ${OpenCV_BINARY_DIR}/3rdparty/ippiw)
|
add_subdirectory("${IPP_IW_PATH}/" ${OpenCV_BINARY_DIR}/3rdparty/ippiw)
|
||||||
|
|
||||||
set(HAVE_IPP_IW 1)
|
set(HAVE_IPP_IW 1)
|
||||||
|
|||||||
Reference in New Issue
Block a user