From dbbb1cf213c88959e0ab032888ef1a7d7e3c614c Mon Sep 17 00:00:00 2001 From: hydai Date: Fri, 4 Dec 2020 05:26:10 +0000 Subject: [PATCH] [Tensorflow] add helper script to check version, if tf is not installed or too old, return error --- preinstall.sh | 13 +++++++ utils/checker/tensorflow_version_checker.cc | 42 +++++++++++++++++++++ 2 files changed, 55 insertions(+) create mode 100644 utils/checker/tensorflow_version_checker.cc diff --git a/preinstall.sh b/preinstall.sh index a90b24e..0dabcee 100755 --- a/preinstall.sh +++ b/preinstall.sh @@ -1,4 +1,17 @@ #!/usr/bin/env bash +# Build SSVM-Storage dependencies cd ./rust_native_storage_library/ make target/debug/librust_native_storage_library.so cd ../ + +# Check TensorFlow version +c++ ./utils/checker/tensorflow_version_checker.cc -ltensorflow -o ./tf_ver +./tf_ver +if [ "$?" -eq "0" ] +then + rm ./tf_ver + exit 0 +else + echo "TensorFlow C library is not yet installed or is too old to support" + exit 1 +fi diff --git a/utils/checker/tensorflow_version_checker.cc b/utils/checker/tensorflow_version_checker.cc new file mode 100644 index 0000000..7cfc744 --- /dev/null +++ b/utils/checker/tensorflow_version_checker.cc @@ -0,0 +1,42 @@ +#include +#include +#include +#include + +struct Version { + int Major; + int Minor; + int Revision; + Version() = default; + Version(std::string Str) { + std::stringstream Ss(Str); + std::string Buffer; + // Major + std::getline(Ss, Buffer, '.'); + Major = std::stoi(Buffer); + // Minor + std::getline(Ss, Buffer, '.'); + Minor = std::stoi(Buffer); + // Revision + std::getline(Ss, Buffer, '.'); + Revision = std::stoi(Buffer); + } + bool isTooOld() { + if (Major < 2) { + return true; + } else if (Major == 2 && Minor < 3) { + return true; + } + return false; + } +}; +int main() { + std::string TFVer(TF_Version()); + std::cout << "Your TensorFlow C library version: " << TFVer << "\n"; + Version V(TFVer); + if (V.isTooOld()) { + std::cerr << "Your TensorFlow C library is too old. Please upgrade to >=2.3.0\n"; + return 1; + } + return 0; +}