[CMake] Fixes for TBB tmp location (#3997)

* fixes for TBB tmp location:

- DL_SDK_TEMP path is not normalized, that leads to paths check mismatch in CMake conditions
- TBB is not downloaded again in a case tmp location is cleaned up and build restarted (TBB_DIR and TBBROOT are cache variables)

* use reset_deps_cache & update_deps_cache for TBB_DIR var.

* single  reset_deps_cache call
This commit is contained in:
Sergey Lyubimtsev 2021-01-25 19:06:12 +03:00 committed by GitHub
parent cb266db570
commit ce0537bd1f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 35 additions and 47 deletions

View File

@ -46,13 +46,7 @@ endif()
function(set_temp_directory temp_variable source_tree_dir) function(set_temp_directory temp_variable source_tree_dir)
if (DEFINED ENV{DL_SDK_TEMP} AND NOT $ENV{DL_SDK_TEMP} STREQUAL "") if (DEFINED ENV{DL_SDK_TEMP} AND NOT $ENV{DL_SDK_TEMP} STREQUAL "")
message(STATUS "DL_SDK_TEMP environment is set : $ENV{DL_SDK_TEMP}") message(STATUS "DL_SDK_TEMP environment is set : $ENV{DL_SDK_TEMP}")
file(TO_CMAKE_PATH $ENV{DL_SDK_TEMP} temp)
if (WIN32)
string(REPLACE "\\" "\\\\" temp $ENV{DL_SDK_TEMP})
else()
set(temp $ENV{DL_SDK_TEMP})
endif()
if (ENABLE_ALTERNATIVE_TEMP) if (ENABLE_ALTERNATIVE_TEMP)
set(ALTERNATIVE_PATH ${source_tree_dir}/temp) set(ALTERNATIVE_PATH ${source_tree_dir}/temp)
endif() endif()

View File

@ -136,51 +136,45 @@ endif ()
## TBB package ## TBB package
if (THREADING STREQUAL "TBB" OR THREADING STREQUAL "TBB_AUTO") if (THREADING STREQUAL "TBB" OR THREADING STREQUAL "TBB_AUTO")
reset_deps_cache(TBBROOT)
if(NOT DEFINED TBB_DIR AND NOT DEFINED ENV{TBB_DIR}) reset_deps_cache(TBBROOT TBB_DIR)
if (WIN32 AND X86_64)
#TODO: add target_path to be platform specific as well, to avoid following if if (WIN32 AND X86_64)
RESOLVE_DEPENDENCY(TBB #TODO: add target_path to be platform specific as well, to avoid following if
ARCHIVE_WIN "tbb2020_20200415_win.zip" RESOLVE_DEPENDENCY(TBB
TARGET_PATH "${TEMP}/tbb" ARCHIVE_WIN "tbb2020_20200415_win.zip"
ENVIRONMENT "TBBROOT" TARGET_PATH "${TEMP}/tbb"
SHA256 "f1c9b9e2861efdaa01552bd25312ccbc5feeb45551e5f91ae61e29221c5c1479") ENVIRONMENT "TBBROOT"
elseif(ANDROID) # Should be before LINUX due LINUX is detected as well SHA256 "f1c9b9e2861efdaa01552bd25312ccbc5feeb45551e5f91ae61e29221c5c1479")
RESOLVE_DEPENDENCY(TBB elseif(ANDROID) # Should be before LINUX due LINUX is detected as well
ARCHIVE_ANDROID "tbb2020_20200404_android.tgz" RESOLVE_DEPENDENCY(TBB
TARGET_PATH "${TEMP}/tbb" ARCHIVE_ANDROID "tbb2020_20200404_android.tgz"
ENVIRONMENT "TBBROOT" TARGET_PATH "${TEMP}/tbb"
SHA256 "f42d084224cc2d643314bd483ad180b081774608844000f132859fca3e9bf0ce") ENVIRONMENT "TBBROOT"
elseif(LINUX AND X86_64) SHA256 "f42d084224cc2d643314bd483ad180b081774608844000f132859fca3e9bf0ce")
RESOLVE_DEPENDENCY(TBB elseif(LINUX AND X86_64)
ARCHIVE_LIN "tbb2020_20200415_lin_strip.tgz" RESOLVE_DEPENDENCY(TBB
TARGET_PATH "${TEMP}/tbb" ARCHIVE_LIN "tbb2020_20200415_lin_strip.tgz"
SHA256 "95b2f3b0b70c7376a0c7de351a355c2c514b42c4966e77e3e34271a599501008") TARGET_PATH "${TEMP}/tbb"
elseif(LINUX AND AARCH64) SHA256 "95b2f3b0b70c7376a0c7de351a355c2c514b42c4966e77e3e34271a599501008")
RESOLVE_DEPENDENCY(TBB elseif(LINUX AND AARCH64)
ARCHIVE_LIN "keembay/tbb2020_38404_kmb.tgz" RESOLVE_DEPENDENCY(TBB
TARGET_PATH "${TEMP}/tbb_yocto" ARCHIVE_LIN "keembay/tbb2020_38404_kmb.tgz"
ENVIRONMENT "TBBROOT" TARGET_PATH "${TEMP}/tbb_yocto"
SHA256 "57ad3ceeab119c8a4d5e9fc38e80952fc19d4bf23ae065e9540cde89b25561d5") ENVIRONMENT "TBBROOT"
elseif(APPLE AND X86_64) SHA256 "57ad3ceeab119c8a4d5e9fc38e80952fc19d4bf23ae065e9540cde89b25561d5")
RESOLVE_DEPENDENCY(TBB elseif(APPLE AND X86_64)
ARCHIVE_MAC "tbb2020_20200404_mac.tgz" RESOLVE_DEPENDENCY(TBB
TARGET_PATH "${TEMP}/tbb" ARCHIVE_MAC "tbb2020_20200404_mac.tgz"
ENVIRONMENT "TBBROOT" TARGET_PATH "${TEMP}/tbb"
SHA256 "ad9cf52e657660058aa6c6844914bc0fc66241fec89a392d8b79a7ff69c3c7f6") ENVIRONMENT "TBBROOT"
else() SHA256 "ad9cf52e657660058aa6c6844914bc0fc66241fec89a392d8b79a7ff69c3c7f6")
message(FATAL_ERROR "TBB is not available on current platform")
endif()
else() else()
if(DEFINED TBB_DIR) message(FATAL_ERROR "TBB is not available on current platform")
get_filename_component(TBB ${TBB_DIR} DIRECTORY)
else()
get_filename_component(TBB $ENV{TBB_DIR} DIRECTORY)
endif()
endif() endif()
update_deps_cache(TBBROOT "${TBB}" "Path to TBB root folder") update_deps_cache(TBBROOT "${TBB}" "Path to TBB root folder")
update_deps_cache(TBB_DIR "${TBB}/cmake" "Path to TBB cmake folder")
if (WIN32) if (WIN32)
log_rpath_from_dir(TBB "${TBB}/bin") log_rpath_from_dir(TBB "${TBB}/bin")