aboutsummaryrefslogtreecommitdiffhomepage
path: root/tools/cpp
diff options
context:
space:
mode:
authorGravatar Yun Peng <pcloudy@google.com>2018-05-22 06:38:08 -0700
committerGravatar Copybara-Service <copybara-piper@google.com>2018-05-22 06:39:30 -0700
commit5c4f3b59fb4aa06da2c368c764cf0d9056ab287a (patch)
tree335cfaab0b3950556127cc8af24841a80fb29a20 /tools/cpp
parentd34f306eb5ad3bc6060bac5611956c3b2da6f2d1 (diff)
CROSSTOOL: Make C++ compiled and linked artifact name pattern configurable
This change makes Bazel respect artifact name patterns specified in CROSSTOOL. Users cannot specify any arbitrary name pattern, it must ends with allowed extensions. For example, for dynamic library, it can only ends with .so, .dylib or .dll, otherwise Bazel throws an error. Change-Id: I21d9e6fa7c3a282e1a9b8ff29679b00925cddb33 PiperOrigin-RevId: 197553413
Diffstat (limited to 'tools/cpp')
-rw-r--r--tools/cpp/CROSSTOOL.tpl42
-rw-r--r--tools/cpp/windows_cc_configure.bzl1
2 files changed, 43 insertions, 0 deletions
diff --git a/tools/cpp/CROSSTOOL.tpl b/tools/cpp/CROSSTOOL.tpl
index 38df97f323..02ff6617c9 100644
--- a/tools/cpp/CROSSTOOL.tpl
+++ b/tools/cpp/CROSSTOOL.tpl
@@ -169,6 +169,12 @@ toolchain {
target_cpu: "x64_windows"
target_system_name: "local"
+ artifact_name_pattern {
+ category_name: 'executable'
+ prefix: ''
+ extension: '.exe'
+ }
+
%{msys_x64_mingw_content}
linking_mode_flags { mode: DYNAMIC }
@@ -279,6 +285,42 @@ toolchain {
name: "no_legacy_features"
}
+ artifact_name_pattern {
+ category_name: 'object_file'
+ prefix: ''
+ extension: '.obj'
+ }
+
+ artifact_name_pattern {
+ category_name: 'static_library'
+ prefix: ''
+ extension: '.lib'
+ }
+
+ artifact_name_pattern {
+ category_name: 'alwayslink_static_library'
+ prefix: ''
+ extension: '.lo.lib'
+ }
+
+ artifact_name_pattern {
+ category_name: 'executable'
+ prefix: ''
+ extension: '.exe'
+ }
+
+ artifact_name_pattern {
+ category_name: 'dynamic_library'
+ prefix: ''
+ extension: '.dll'
+ }
+
+ artifact_name_pattern {
+ category_name: 'interface_library'
+ prefix: ''
+ extension: '.if.lib'
+ }
+
# Suppress startup banner.
feature {
name: "nologo"
diff --git a/tools/cpp/windows_cc_configure.bzl b/tools/cpp/windows_cc_configure.bzl
index 605760d817..a22cca1959 100644
--- a/tools/cpp/windows_cc_configure.bzl
+++ b/tools/cpp/windows_cc_configure.bzl
@@ -56,6 +56,7 @@ def _get_escaped_windows_msys_crosstool_content(repository_ctx, use_mingw = Fals
' tool_path { name: "cpp" path: "%s%s/bin/cpp" }\n' % (escaped_msys_root, prefix) +
' tool_path { name: "dwp" path: "%s%s/bin/dwp" }\n' % (escaped_msys_root, prefix) +
' tool_path { name: "gcc" path: "%s%s/bin/gcc" }\n' % (escaped_msys_root, prefix) +
+ ' artifact_name_pattern { category_name: "executable" prefix: "" extension: ".exe"}\n' +
' cxx_flag: "-std=gnu++0x"\n' +
' linker_flag: "-lstdc++"\n' +
' cxx_builtin_include_directory: "%s%s/"\n' % (escaped_msys_root, prefix) +