171 lines
		
	
	
		
			6.3 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
			
		
		
	
	
			171 lines
		
	
	
		
			6.3 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
| # This file is based on tensorflow's (v2.2.0) .bazelrc found here:
 | |
| # https://github.com/tensorflow/tensorflow/blob/v2.2.0/.bazelrc
 | |
| 
 | |
| # Sets the default Apple platform to macOS.
 | |
| 
 | |
| build --apple_platform_type=macos
 | |
| 
 | |
| # Enable using platform specific build settings
 | |
| build --enable_platform_specific_config
 | |
| 
 | |
| # Flag to enable remote config. Required starting from TF 2.2.
 | |
| common --experimental_repo_remote_exec
 | |
| 
 | |
| # For workaround https://github.com/bazelbuild/bazel/issues/8772 with Bazel >= 0.29.1
 | |
| build --java_toolchain=//third_party/toolchains/java:tf_java_toolchain
 | |
| build --host_java_toolchain=//third_party/toolchains/java:tf_java_toolchain
 | |
| 
 | |
| # Suppress C++ compiler warnings, otherwise build logs become 10s of MBs.
 | |
| build:android --copt=-w
 | |
| build:linux --copt=-w
 | |
| build:macos --copt=-w
 | |
| build:windows --copt=/w
 | |
| 
 | |
| # Android workspace configurations. Should be replaced by an interative configure in the future.
 | |
| build --action_env ANDROID_NDK_HOME
 | |
| build --action_env ANDROID_NDK_API_LEVEL
 | |
| build --action_env ANDROID_BUILD_TOOLS_VERSION
 | |
| build --action_env ANDROID_SDK_API_LEVEL
 | |
| build --action_env ANDROID_SDK_HOME
 | |
| 
 | |
| # Android configs. Bazel needs to have --cpu and --fat_apk_cpu both set to the
 | |
| # target CPU to build transient dependencies correctly. See
 | |
| # https://docs.bazel.build/versions/master/user-manual.html#flag--fat_apk_cpu
 | |
| 
 | |
| build:android --crosstool_top=//external:android/crosstool
 | |
| build:android --host_crosstool_top=@bazel_tools//tools/cpp:toolchain
 | |
| build:android_arm --config=android
 | |
| build:android_arm --cpu=armeabi-v7a
 | |
| build:android_arm --fat_apk_cpu=armeabi-v7a
 | |
| build:android_arm64 --config=android
 | |
| build:android_arm64 --cpu=arm64-v8a
 | |
| build:android_arm64 --fat_apk_cpu=arm64-v8a
 | |
| build:android_x86 --config=android
 | |
| build:android_x86 --cpu=x86
 | |
| build:android_x86 --fat_apk_cpu=x86
 | |
| build:android_x86_64 --config=android
 | |
| build:android_x86_64 --cpu=x86_64
 | |
| build:android_x86_64 --fat_apk_cpu=x86_64
 | |
| 
 | |
| # iOS configs for each architecture and the fat binary builds.
 | |
| build:ios --apple_platform_type=ios
 | |
| build:ios --apple_bitcode=embedded --copt=-fembed-bitcode
 | |
| build:ios --copt=-Wno-c++11-narrowing
 | |
| build:ios_armv7 --config=ios
 | |
| build:ios_armv7 --cpu=ios_armv7
 | |
| build:ios_arm64 --config=ios
 | |
| build:ios_arm64 --cpu=ios_arm64
 | |
| build:ios_x86_64 --config=ios
 | |
| build:ios_x86_64 --cpu=ios_x86_64
 | |
| build:ios_fat --config=ios
 | |
| build:ios_fat --ios_multi_cpus=armv7,arm64,x86_64
 | |
| 
 | |
| # By default, build TF in C++ 14 mode.
 | |
| build:android --cxxopt=-std=c++14
 | |
| build:android --host_cxxopt=-std=c++14
 | |
| build:ios --cxxopt=-std=c++14
 | |
| build:ios --host_cxxopt=-std=c++14
 | |
| build:linux --cxxopt=-std=c++14
 | |
| build:linux --host_cxxopt=-std=c++14
 | |
| build:macos --cxxopt=-std=c++14
 | |
| build:macos --host_cxxopt=-std=c++14
 | |
| build:windows --cxxopt=/std:c++14
 | |
| build:windows --host_cxxopt=/std:c++14
 | |
| 
 | |
| # Config to use a mostly-static build and disable modular op registration
 | |
| # support (this will revert to loading TensorFlow with RTLD_GLOBAL in Python).
 | |
| # By default, TensorFlow will build with a dependence on
 | |
| # //tensorflow:libtensorflow_framework.so.
 | |
| build:monolithic --define framework_shared_object=false
 | |
| 
 | |
| # For projects which use TensorFlow as part of a Bazel build process, putting
 | |
| # nothing in a bazelrc will default to a monolithic build. The following line
 | |
| # opts in to modular op registration support by default.
 | |
| build --define framework_shared_object=true
 | |
| 
 | |
| # ASAN build
 | |
| build:asan --strip=never
 | |
| build:asan --copt -fsanitize=address
 | |
| build:asan --copt -DADDRESS_SANITIZER
 | |
| build:asan --copt -O1
 | |
| build:asan --copt -g
 | |
| build:asan --copt -fno-omit-frame-pointer
 | |
| build:asan --linkopt -fsanitize=address
 | |
| 
 | |
| # Flags for open source build, always set to be true.
 | |
| build --define open_source_build=true
 | |
| test --define open_source_build=true
 | |
| 
 | |
| # dbg config, as a shorthand for '--config=opt -c dbg'
 | |
| build:dbg --config=opt -c dbg
 | |
| # for now, disable arm_neon. see: https://github.com/tensorflow/tensorflow/issues/33360
 | |
| build:dbg --cxxopt -DTF_LITE_DISABLE_X86_NEON
 | |
| # AWS SDK must be compiled in release mode. see: https://github.com/tensorflow/tensorflow/issues/37498
 | |
| build:dbg --copt -DDEBUG_BUILD
 | |
| 
 | |
| build --define=use_fast_cpp_protos=true
 | |
| build --define=allow_oversize_protos=true
 | |
| 
 | |
| build --spawn_strategy=standalone
 | |
| build -c opt
 | |
| 
 | |
| # Adding "--cxxopt=-D_GLIBCXX_USE_CXX11_ABI=0" creates parity with TF
 | |
| # compilation options. It also addresses memory use due to
 | |
| # copy-on-write semantics of std::strings of the older ABI.
 | |
| build --cxxopt=-D_GLIBCXX_USE_CXX11_ABI=0
 | |
| 
 | |
| # Make Bazel print out all options from rc files.
 | |
| build --announce_rc
 | |
| 
 | |
| # Other build flags.
 | |
| build --define=grpc_no_ares=true
 | |
| 
 | |
| # See https://github.com/bazelbuild/bazel/issues/7362 for information on what
 | |
| # --incompatible_remove_legacy_whole_archive flag does.
 | |
| # This flag is set to true in Bazel 1.0 and newer versions. We tried to migrate
 | |
| # Tensorflow to the default, however test coverage wasn't enough to catch the
 | |
| # errors.
 | |
| # There is ongoing work on Bazel team's side to provide support for transitive
 | |
| # shared libraries. As part of migrating to transitive shared libraries, we
 | |
| # hope to provide a better mechanism for control over symbol exporting, and
 | |
| # then tackle this issue again.
 | |
| #
 | |
| # TODO: Remove this line once TF doesn't depend on Bazel wrapping all library
 | |
| # archives in -whole_archive -no_whole_archive.
 | |
| build --noincompatible_remove_legacy_whole_archive
 | |
| 
 | |
| # These are bazel 2.0's incompatible flags. Tensorflow needs to use bazel 2.0.0
 | |
| # to use cc_shared_library, as part of the Tensorflow Build Improvements RFC:
 | |
| # https://github.com/tensorflow/community/pull/179
 | |
| build --noincompatible_prohibit_aapt1
 | |
| 
 | |
| # Build TF with C++ 17 features.
 | |
| build:c++17 --cxxopt=-std=c++1z
 | |
| build:c++17 --cxxopt=-stdlib=libc++
 | |
| build:c++1z --config=c++17
 | |
| 
 | |
| # Enable using platform specific build settings, except when cross-compiling for
 | |
| # mobile platforms.
 | |
| build --enable_platform_specific_config
 | |
| build:android --noenable_platform_specific_config
 | |
| build:ios --noenable_platform_specific_config
 | |
| 
 | |
| # Suppress all warning messages.
 | |
| build:short_logs --output_filter=DONT_MATCH_ANYTHING
 | |
| build:verbose_logs --output_filter=
 | |
| build --config=short_logs
 | |
| 
 | |
| # Options to build TensorFlow 1.x or 2.x.
 | |
| build:v1 --define=tf_api_version=1
 | |
| build:v2 --define=tf_api_version=2
 | |
| build:v1 --action_env=TF2_BEHAVIOR=0
 | |
| build:v2 --action_env=TF2_BEHAVIOR=1
 | |
| build --config=v2
 | |
| test --config=v2
 | |
| 
 | |
| # Options from ./configure
 | |
| try-import %workspace%/.tf_configure.bazelrc
 | |
| 
 | |
| # Put user-specific options in .bazelrc.user
 | |
| try-import %workspace%/.bazelrc.user
 |