diff --git a/llvm/CMakeLists.txt b/llvm/CMakeLists.txt --- a/llvm/CMakeLists.txt +++ b/llvm/CMakeLists.txt @@ -829,42 +829,46 @@ ${LLVM_INCLUDE_DIR}/llvm/Config/Targets.def ) -# For up-to-date instructions for installing the Tensorflow dependency, refer to -# the bot setup script: https://github.com/google/ml-compiler-opt/blob/master/buildbot/buildbot_init.sh -# In this case, the latest C API library is available for download from -# https://www.tensorflow.org/install/lang_c. -# We will expose the conditional compilation variable, -# LLVM_HAVE_TF_API, through llvm-config.h, so that a user of the LLVM library may -# also leverage the dependency. -set(TENSORFLOW_C_LIB_PATH "" CACHE PATH "Path to TensorFlow C library install") -find_library(tensorflow_c_api tensorflow PATHS ${TENSORFLOW_C_LIB_PATH}/lib) - -if (tensorflow_c_api) - set(LLVM_HAVE_TF_API "ON" CACHE BOOL "Full Tensorflow API available") - include_directories(${TENSORFLOW_C_LIB_PATH}/include) -endif() - # They are not referenced. See set_output_directory(). set( CMAKE_RUNTIME_OUTPUT_DIRECTORY ${LLVM_BINARY_DIR}/bin ) set( CMAKE_LIBRARY_OUTPUT_DIRECTORY ${LLVM_BINARY_DIR}/lib${LLVM_LIBDIR_SUFFIX} ) set( CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${LLVM_BINARY_DIR}/lib${LLVM_LIBDIR_SUFFIX} ) -# For up-to-date instructions for installing the Tensorflow dependency, refer to -# the bot setup script: https://github.com/google/ml-compiler-opt/blob/master/buildbot/buildbot_init.sh -# Specifically, assuming python3 is installed: -# python3 -m pip install --upgrade pip && python3 -m pip install --user tf_nightly==2.3.0.dev20200528 -# Then set TENSORFLOW_AOT_PATH to the package install - usually it's ~/.local/lib/python3.7/site-packages/tensorflow -# -set(TENSORFLOW_AOT_PATH "" CACHE PATH "Path to TensorFlow pip install dir") - -if (NOT TENSORFLOW_AOT_PATH STREQUAL "") - set(LLVM_HAVE_TF_AOT "ON" CACHE BOOL "Tensorflow AOT available") - set(TENSORFLOW_AOT_COMPILER - "${TENSORFLOW_AOT_PATH}/../../../../bin/saved_model_cli" - CACHE PATH "Path to the Tensorflow AOT compiler") - include_directories(${TENSORFLOW_AOT_PATH}/include) - add_subdirectory(${TENSORFLOW_AOT_PATH}/xla_aot_runtime_src - ${CMAKE_ARCHIVE_OUTPUT_DIRECTORY}/tf_runtime) + +option(LLVM_ENABLE_TENSORFLOW "Enable TensorFlow support." OFF) +if (LLVM_ENABLE_TENSORFLOW) + # For up-to-date instructions for installing the Tensorflow dependency, refer to + # the bot setup script: https://github.com/google/ml-compiler-opt/blob/master/buildbot/buildbot_init.sh + # In this case, the latest C API library is available for download from + # https://www.tensorflow.org/install/lang_c. + # We will expose the conditional compilation variable, + # LLVM_HAVE_TF_API, through llvm-config.h, so that a user of the LLVM library may + # also leverage the dependency. + set(TENSORFLOW_C_LIB_PATH "" CACHE PATH "Path to TensorFlow C library install") + find_library(tensorflow_c_api tensorflow PATHS ${TENSORFLOW_C_LIB_PATH}/lib) + + if (tensorflow_c_api) + set(LLVM_HAVE_TF_API "ON" CACHE BOOL "Full Tensorflow API available") + include_directories(${TENSORFLOW_C_LIB_PATH}/include) + endif() + + # For up-to-date instructions for installing the Tensorflow dependency, refer to + # the bot setup script: https://github.com/google/ml-compiler-opt/blob/master/buildbot/buildbot_init.sh + # Specifically, assuming python3 is installed: + # python3 -m pip install --upgrade pip && python3 -m pip install --user tf_nightly==2.3.0.dev20200528 + # Then set TENSORFLOW_AOT_PATH to the package install - usually it's ~/.local/lib/python3.7/site-packages/tensorflow + # + set(TENSORFLOW_AOT_PATH "" CACHE PATH "Path to TensorFlow pip install dir") + + if (NOT TENSORFLOW_AOT_PATH STREQUAL "") + set(LLVM_HAVE_TF_AOT "ON" CACHE BOOL "Tensorflow AOT available") + set(TENSORFLOW_AOT_COMPILER + "${TENSORFLOW_AOT_PATH}/../../../../bin/saved_model_cli" + CACHE PATH "Path to the Tensorflow AOT compiler") + include_directories(${TENSORFLOW_AOT_PATH}/include) + add_subdirectory(${TENSORFLOW_AOT_PATH}/xla_aot_runtime_src + ${CMAKE_ARCHIVE_OUTPUT_DIRECTORY}/tf_runtime) + endif() endif() # Configure the three LLVM configuration header files.