diff options
author | 2016-12-15 14:06:52 -0800 | |
---|---|---|
committer | 2016-12-15 14:22:56 -0800 | |
commit | 6cf6d0a6c29d2dbeeae4d78bc9de1820c0822758 (patch) | |
tree | c704a9b1bb3dfc42dd15fd457ac0b45c0ade4fb3 | |
parent | abd3190d329385776e92baaaaf605d3371010486 (diff) |
Upgraded to the latest version of Eigen
Made it possible to upgrade Eigen without having to change the version in
multiple places
Made the cmake file check the signature of the package again
Change: 142186076
-rw-r--r-- | tensorflow/contrib/cmake/external/eigen.cmake | 17 | ||||
-rwxr-xr-x | tensorflow/contrib/makefile/download_dependencies.sh | 10 | ||||
-rw-r--r-- | tensorflow/workspace.bzl | 16 |
3 files changed, 32 insertions, 11 deletions
diff --git a/tensorflow/contrib/cmake/external/eigen.cmake b/tensorflow/contrib/cmake/external/eigen.cmake index 7f958eb3b0..aced5821a9 100644 --- a/tensorflow/contrib/cmake/external/eigen.cmake +++ b/tensorflow/contrib/cmake/external/eigen.cmake @@ -10,9 +10,16 @@ include (ExternalProject) # We parse the current Eigen version and archive hash from the bazel configuration file(STRINGS ${PROJECT_SOURCE_DIR}/../../workspace.bzl workspace_contents) foreach(line ${workspace_contents}) - string(REGEX MATCH ".*\"(https://bitbucket.org/eigen/eigen/get/.*tar.gz)\"" has_url ${line}) - if(has_url) - set(eigen_url ${CMAKE_MATCH_1}) + string(REGEX MATCH ".*eigen_version.*=.*\"(.*)\"" has_version ${line}) + if(has_version) + set(eigen_version ${CMAKE_MATCH_1}) + break() + endif() +endforeach() +foreach(line ${workspace_contents}) + string(REGEX MATCH ".*eigen_sha256.*=.*\"(.*)\"" has_hash ${line}) + if(has_hash) + set(eigen_hash ${CMAKE_MATCH_1}) break() endif() endforeach() @@ -22,13 +29,15 @@ set(eigen_INCLUDE_DIRS ${CMAKE_CURRENT_BINARY_DIR}/external/eigen_archive ${tensorflow_source_dir}/third_party/eigen3 ) -set(eigen_URL ${eigen_url}) +set(eigen_URL https://bitbucket.org/eigen/eigen/get/${eigen_version}.tar.gz) +set(eigen_HASH SHA256=${eigen_hash}) set(eigen_BUILD ${CMAKE_CURRENT_BINARY_DIR}/eigen/src/eigen) set(eigen_INSTALL ${CMAKE_CURRENT_BINARY_DIR}/eigen/install) ExternalProject_Add(eigen PREFIX eigen URL ${eigen_URL} + URL_HASH ${eigen_HASH} DOWNLOAD_DIR "${DOWNLOAD_LOCATION}" INSTALL_DIR "${eigen_INSTALL}" CMAKE_CACHE_ARGS diff --git a/tensorflow/contrib/makefile/download_dependencies.sh b/tensorflow/contrib/makefile/download_dependencies.sh index 7aebe18767..74d239a598 100755 --- a/tensorflow/contrib/makefile/download_dependencies.sh +++ b/tensorflow/contrib/makefile/download_dependencies.sh @@ -19,8 +19,14 @@ set -e DOWNLOADS_DIR=tensorflow/contrib/makefile/downloads BZL_FILE_PATH=tensorflow/workspace.bzl -EIGEN_URL="$(grep -o 'http.*bitbucket.org/eigen/eigen/get/.*tar\.gz' "${BZL_FILE_PATH}" | grep -v bazel-mirror | head -n1)" -GEMMLOWP_URL="$(grep -o 'http.*github.com/google/gemmlowp/.*tar\.gz' "${BZL_FILE_PATH}" | grep -v bazel-mirror | head -n1)" +EIGEN_VERSION="$(sed -ne 's/^[ \t]*eigen_version = "\(.*\)".*$/\1/p' "${BZL_FILE_PATH}")" +if [ "${EIGEN_VERSION}" == '' ]; then + echo "Cannot extract eigen_version from ${BZL_FILE_PATH}" >&2 + exit 1 +fi +EIGEN_URL="$(grep -o 'http.*bitbucket.org/eigen/eigen/get/' "${BZL_FILE_PATH}")${EIGEN_VERSION}.tar.gz" + +GEMMLOWP_URL="$(grep -o 'http.*github.com/google/gemmlowp/.*tar\.gz' "${BZL_FILE_PATH}" | head -n1)" GOOGLETEST_URL="https://github.com/google/googletest/archive/release-1.8.0.tar.gz" PROTOBUF_URL="$(grep -o 'http.*github.com/google/protobuf/.*tar\.gz' "${BZL_FILE_PATH}" | grep -v bazel-mirror | head -n1)" RE2_URL="$(grep -o 'http.*github.com/google/re2/.*tar\.gz' "${BZL_FILE_PATH}" | grep -v bazel-mirror | head -n1)" diff --git a/tensorflow/workspace.bzl b/tensorflow/workspace.bzl index c6315b5668..aeaed9baa2 100644 --- a/tensorflow/workspace.bzl +++ b/tensorflow/workspace.bzl @@ -14,17 +14,23 @@ def tf_workspace(path_prefix = "", tf_repo_name = ""): if tf_repo_name: print("tf_repo_name was specified to tf_workspace but is no longer used and will be removed in the future.") + # These lines need to be changed when updating Eigen. They are parsed from + # this file by the cmake and make builds to determine the eigen version and + # hash. + eigen_version = "c362228c7087" + eigen_sha256 = "ea091e0a1d78b0c6714f7109a6a80af30c4745f3ff8c398675cf42271acc0c77" + native.new_http_archive( name = "eigen_archive", urls = [ - "http://bazel-mirror.storage.googleapis.com/bitbucket.org/eigen/eigen/get/a6cd28de5779.tar.gz", - "https://bitbucket.org/eigen/eigen/get/a6cd28de5779.tar.gz", + "http://bazel-mirror.storage.googleapis.com/bitbucket.org/eigen/eigen/get/" + eigen_version + ".tar.gz", + "https://bitbucket.org/eigen/eigen/get/" + eigen_version + ".tar.gz", ], - sha256 = "c5d96ed7671002856868e12f2ad55c6bec0f570a89c9d82088954b271538b990", - strip_prefix = "eigen-eigen-a6cd28de5779", + sha256 = eigen_sha256, + strip_prefix = "eigen-eigen-" + eigen_version, build_file = str(Label("//:eigen.BUILD")), ) - + native.new_http_archive( name = "libxsmm_archive", urls = [ |