test
/
build
/pthreadpool-download
/pthreadpool-prefix
/src
/pthreadpool-stamp
/extract-pthreadpool.cmake
| # Distributed under the OSI-approved BSD 3-Clause License. See accompanying | |
| # file Copyright.txt or https://cmake.org/licensing for details. | |
| cmake_minimum_required(VERSION 3.5) | |
| # Make file names absolute: | |
| # | |
| get_filename_component(filename "/content/XNNPACK/build/pthreadpool-download/pthreadpool-prefix/src/43edadc654d6283b4b6e45ba09a853181ae8e850.zip" ABSOLUTE) | |
| get_filename_component(directory "/content/XNNPACK/build/pthreadpool-source" ABSOLUTE) | |
| message(STATUS "extracting... | |
| src='${filename}' | |
| dst='${directory}'" | |
| ) | |
| if(NOT EXISTS "${filename}") | |
| message(FATAL_ERROR "File to extract does not exist: '${filename}'") | |
| endif() | |
| # Prepare a space for extracting: | |
| # | |
| set(i 1234) | |
| while(EXISTS "${directory}/../ex-pthreadpool${i}") | |
| math(EXPR i "${i} + 1") | |
| endwhile() | |
| set(ut_dir "${directory}/../ex-pthreadpool${i}") | |
| file(MAKE_DIRECTORY "${ut_dir}") | |
| # Extract it: | |
| # | |
| message(STATUS "extracting... [tar xfz]") | |
| execute_process(COMMAND ${CMAKE_COMMAND} -E tar xfz ${filename} | |
| WORKING_DIRECTORY ${ut_dir} | |
| RESULT_VARIABLE rv | |
| ) | |
| if(NOT rv EQUAL 0) | |
| message(STATUS "extracting... [error clean up]") | |
| file(REMOVE_RECURSE "${ut_dir}") | |
| message(FATAL_ERROR "Extract of '${filename}' failed") | |
| endif() | |
| # Analyze what came out of the tar file: | |
| # | |
| message(STATUS "extracting... [analysis]") | |
| file(GLOB contents "${ut_dir}/*") | |
| list(REMOVE_ITEM contents "${ut_dir}/.DS_Store") | |
| list(LENGTH contents n) | |
| if(NOT n EQUAL 1 OR NOT IS_DIRECTORY "${contents}") | |
| set(contents "${ut_dir}") | |
| endif() | |
| # Move "the one" directory to the final directory: | |
| # | |
| message(STATUS "extracting... [rename]") | |
| file(REMOVE_RECURSE ${directory}) | |
| get_filename_component(contents ${contents} ABSOLUTE) | |
| file(RENAME ${contents} ${directory}) | |
| # Clean up: | |
| # | |
| message(STATUS "extracting... [clean up]") | |
| file(REMOVE_RECURSE "${ut_dir}") | |
| message(STATUS "extracting... done") | |