Skip to content

Commit

Permalink
Creation of LTS branch "lts_2020_02_25"
Browse files Browse the repository at this point in the history
  - 0033c9e Fix build on FreeBSD/powerpc (#616) by kgotlinux <[email protected]>
  - 0d5ce27 Export of internal Abseil changes by Abseil Team <[email protected]>
  - b69c7d8 Export of internal Abseil changes by Abseil Team <[email protected]>
  - 2a5633f Merge "Export of internal Abseil changes" by Xiaoyi Zhang <[email protected]>
  - f9b3d6e Add RISCV support to GetProgramCounter() (#621) by Khem Raj <[email protected]>
  - 0232c87 Add missing ABSL_HAVE_VDSO_SUPPORT conditional (#622) by Sinan Kaya <[email protected]>
  - 3c81410 Export of internal Abseil changes by Abseil Team <[email protected]>
  - c44657f Export of internal Abseil changes by Abseil Team <[email protected]>
  - 98eb410 Export of internal Abseil changes by Abseil Team <[email protected]>
  - bf78e97 Export of internal Abseil changes by Abseil Team <[email protected]>
  - d95d156 Export of internal Abseil changes by Abseil Team <[email protected]>
  - 24713a7 Export of internal Abseil changes by Abseil Team <[email protected]>
  - 72382c2 Export of internal Abseil changes by Abseil Team <[email protected]>
  - 08a7e7b Export of internal Abseil changes by Abseil Team <[email protected]>
  - 36bcd95 Fix pointer format specifier in documentation (#614) by Andre Nguyen <[email protected]>
  - 0f86336 Export of internal Abseil changes by Abseil Team <[email protected]>
  - c512f11 Export of internal Abseil changes by Abseil Team <[email protected]>
  - 37dd256 Export of internal Abseil changes by Abseil Team <[email protected]>
  - 4442770 fix: Add support for more ARM processors detection (#608) by Andre Nguyen <[email protected]>
  - 159bf2b Export of internal Abseil changes by Abseil Team <[email protected]>
  - a2e6ade Use https links. (#586) by nlewycky <[email protected]>
  - 564001a Export of internal Abseil changes by Abseil Team <[email protected]>
  - b3aaac8 Export of internal Abseil changes by Abseil Team <[email protected]>
  - 63ee2f8 Export of internal Abseil changes by Abseil Team <[email protected]>
  - a048203 Export of internal Abseil changes by Abseil Team <[email protected]>
  - 1de0166 Export of internal Abseil changes by Abseil Team <[email protected]>
  - ad904b6 Export of internal Abseil changes by Abseil Team <[email protected]>
  - 2923513 Export of internal Abseil changes by Abseil Team <[email protected]>
  - bf86cfe Export of internal Abseil changes by Abseil Team <[email protected]>
  - 12bc53e Export of internal Abseil changes by Abseil Team <[email protected]>
  - 1e39f86 Export of internal Abseil changes by Abseil Team <[email protected]>
  - 77f8700 Export of internal Abseil changes by Abseil Team <[email protected]>
  - d659fe5 Export of internal Abseil changes by Abseil Team <[email protected]>
  - a4b757b Export of internal Abseil changes by Abseil Team <[email protected]>
  - 0514227 Export of internal Abseil changes by Abseil Team <[email protected]>
  - 7f4fe64 Export of internal Abseil changes by Abseil Team <[email protected]>
  - 16d9fd5 Export of internal Abseil changes by Abseil Team <[email protected]>
  - bcaae60 Export of internal Abseil changes by Abseil Team <[email protected]>
  - 8ba96a8 Export of internal Abseil changes by Abseil Team <[email protected]>
  - 2103fd9 Export of internal Abseil changes by Abseil Team <[email protected]>
  - 3df7b52 Export of internal Abseil changes by Abseil Team <[email protected]>
  - fa8c751 Export of internal Abseil changes by Abseil Team <[email protected]>
  - 85092b4 Fix Conan builds (#400) by Adrian Ostrowski <[email protected]>
  - e96ae22 Export of internal Abseil changes by Abseil Team <[email protected]>
  - 20de2db Export of internal Abseil changes by Abseil Team <[email protected]>
  - 846e5db Export of internal Abseil changes by Abseil Team <[email protected]>
  - 8207907 Export of internal Abseil changes by Abseil Team <[email protected]>
  - 078b89b Export of internal Abseil changes by Abseil Team <[email protected]>
  - 19b021c Export of internal Abseil changes by Abseil Team <[email protected]>
  - ecc0033 Always enable proper symbolize implementation on Windows ... by Loo Rong Jie <[email protected]>
  - 2796d50 Export of internal Abseil changes by Abseil Team <[email protected]>
  - e4c8d0e Export of internal Abseil changes by Abseil Team <[email protected]>
  - a15364c Export of internal Abseil changes by Abseil Team <[email protected]>
  - ab3552a Export of internal Abseil changes by Abseil Team <[email protected]>
  - e9f9000 Fix ABSL_WAITER_MODE detection for mingw (#342) by Joe Sylve <[email protected]>
  - abea769 Fix ABSL_HAVE_ALARM check on mingw (#341) by Joe Sylve <[email protected]>
  - 25597bd Export of internal Abseil changes by Abseil Team <[email protected]>
  - aad33fe Export of internal Abseil changes by Abseil Team <[email protected]>
  - 8fe7214 Export of internal Abseil changes by Abseil Team <[email protected]>
  - debac94 Export of internal Abseil changes by Abseil Team <[email protected]>
  - 882b350 Fix spelling errors (#384) by Sungmann Cho <[email protected]>
  - 502efe6 Export of internal Abseil changes by Abseil Team <[email protected]>
  - ccdd1d5 Export of internal Abseil changes by Abseil Team <[email protected]>
  - ddf8e52 Export of internal Abseil changes by Abseil Team <[email protected]>
  - 6ec1362 Export of internal Abseil changes by Abseil Team <[email protected]>
  - ac78ffc Export of internal Abseil changes by Abseil Team <[email protected]>
  - 5374c56 Export of internal Abseil changes by Abseil Team <[email protected]>
  - 97c1664 Export of internal Abseil changes by Abseil Team <[email protected]>
  - 325fd7b Export of internal Abseil changes by Abseil Team <[email protected]>
  - 83c1d65 Export of internal Abseil changes by Abseil Team <[email protected]>
  - eb6b7bd Export of internal Abseil changes by Abseil Team <[email protected]>
  - 9ddac55 Export of internal Abseil changes by Abseil Team <[email protected]>
  - 1948f6f Export of internal Abseil changes by Abseil Team <[email protected]>
  - a0d1e09 Export of internal Abseil changes by Abseil Team <[email protected]>
  - 2d2d7fb Export of internal Abseil changes by Abseil Team <[email protected]>
  - 0302d1e supppress unused variable warning for gcc (#372) by Martin <[email protected]>
  - 262d74b Export of internal Abseil changes by Abseil Team <[email protected]>
  - f0afae0 Export of internal Abseil changes by Abseil Team <[email protected]>
  - 0e7afdc Export of internal Abseil changes by Abseil Team <[email protected]>
  - 9a41ffd Export of internal Abseil changes by Abseil Team <[email protected]>
  - 36910d3 [bazel] Add fixes for --incompatible_load_cc_rules_from_b... by Yannic <[email protected]>
  - aae8143 Export of internal Abseil changes by Abseil Team <[email protected]>
  - d9aa92d Export of internal Abseil changes by Abseil Team <[email protected]>
  - 321ab53 Export of internal Abseil changes by Abseil Team <[email protected]>
  - 4ef5740 Export of internal Abseil changes by Abseil Team <[email protected]>

GitOrigin-RevId: 0033c9e
Change-Id: I8a2b70063cb3ab40c6943a6db0fe40cae71ed8d7
  • Loading branch information
Abseil Team authored and CJ-Johnson committed Feb 25, 2020
1 parent aa84489 commit b832dce
Show file tree
Hide file tree
Showing 579 changed files with 36,280 additions and 6,811 deletions.
504 changes: 504 additions & 0 deletions CMake/AbseilDll.cmake

Large diffs are not rendered by default.

230 changes: 164 additions & 66 deletions CMake/AbseilHelpers.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@

include(CMakeParseArguments)
include(AbseilConfigureCopts)
include(AbseilDll)
include(AbseilInstallDirs)

# The IDE folder for Abseil that will be used if Abseil is included in a CMake
Expand Down Expand Up @@ -80,95 +81,173 @@ function(absl_cc_library)
${ARGN}
)

if(NOT ABSL_CC_LIB_TESTONLY OR ABSL_RUN_TESTS)
if(ABSL_ENABLE_INSTALL)
set(_NAME "${ABSL_CC_LIB_NAME}")
else()
set(_NAME "absl_${ABSL_CC_LIB_NAME}")
if(ABSL_CC_LIB_TESTONLY AND NOT ABSL_RUN_TESTS)
return()
endif()

if(ABSL_ENABLE_INSTALL)
set(_NAME "${ABSL_CC_LIB_NAME}")
else()
set(_NAME "absl_${ABSL_CC_LIB_NAME}")
endif()

# Check if this is a header-only library
# Note that as of February 2019, many popular OS's (for example, Ubuntu
# 16.04 LTS) only come with cmake 3.5 by default. For this reason, we can't
# use list(FILTER...)
set(ABSL_CC_SRCS "${ABSL_CC_LIB_SRCS}")
foreach(src_file IN LISTS ABSL_CC_SRCS)
if(${src_file} MATCHES ".*\\.(h|inc)")
list(REMOVE_ITEM ABSL_CC_SRCS "${src_file}")
endif()
endforeach()

# Check if this is a header-only library
# Note that as of February 2019, many popular OS's (for example, Ubuntu
# 16.04 LTS) only come with cmake 3.5 by default. For this reason, we can't
# use list(FILTER...)
set(ABSL_CC_SRCS "${ABSL_CC_LIB_SRCS}")
foreach(src_file IN LISTS ABSL_CC_SRCS)
if(${src_file} MATCHES ".*\\.(h|inc)")
list(REMOVE_ITEM ABSL_CC_SRCS "${src_file}")
endif()
endforeach()
if("${ABSL_CC_SRCS}" STREQUAL "")
if("${ABSL_CC_SRCS}" STREQUAL "")
set(ABSL_CC_LIB_IS_INTERFACE 1)
else()
set(ABSL_CC_LIB_IS_INTERFACE 0)
endif()

# Determine this build target's relationship to the DLL. It's one of four things:
# 1. "dll" -- This target is part of the DLL
# 2. "dll_dep" -- This target is not part of the DLL, but depends on the DLL.
# Note that we assume any target not in the DLL depends on the
# DLL. This is not a technical necessity but a convenience
# which happens to be true, because nearly every target is
# part of the DLL.
# 3. "shared" -- This is a shared library, perhaps on a non-windows platform
# where DLL doesn't make sense.
# 4. "static" -- This target does not depend on the DLL and should be built
# statically.
if (${ABSL_BUILD_DLL})
absl_internal_dll_contains(TARGET ${_NAME} OUTPUT _in_dll)
if (${_in_dll})
# This target should be replaced by the DLL
set(_build_type "dll")
set(ABSL_CC_LIB_IS_INTERFACE 1)
else()
set(ABSL_CC_LIB_IS_INTERFACE 0)
# Building a DLL, but this target is not part of the DLL
set(_build_type "dll_dep")
endif()
elseif(BUILD_SHARED_LIBS)
set(_build_type "shared")
else()
set(_build_type "static")
endif()

if(NOT ABSL_CC_LIB_IS_INTERFACE)
if(NOT ABSL_CC_LIB_IS_INTERFACE)
if(${_build_type} STREQUAL "dll_dep")
# This target depends on the DLL. When adding dependencies to this target,
# any depended-on-target which is contained inside the DLL is replaced
# with a dependency on the DLL.
add_library(${_NAME} STATIC "")
target_sources(${_NAME} PRIVATE ${ABSL_CC_LIB_SRCS} ${ABSL_CC_LIB_HDRS})
target_include_directories(${_NAME}
PUBLIC
$<BUILD_INTERFACE:${ABSL_COMMON_INCLUDE_DIRS}>
$<INSTALL_INTERFACE:${ABSL_INSTALL_INCLUDEDIR}>
absl_internal_dll_targets(
DEPS ${ABSL_CC_LIB_DEPS}
OUTPUT _dll_deps
)
target_compile_options(${_NAME}
PRIVATE ${ABSL_CC_LIB_COPTS})
target_link_libraries(${_NAME}
PUBLIC ${ABSL_CC_LIB_DEPS}
PUBLIC ${_dll_deps}
PRIVATE
${ABSL_CC_LIB_LINKOPTS}
${ABSL_DEFAULT_LINKOPTS}
)
target_compile_definitions(${_NAME} PUBLIC ${ABSL_CC_LIB_DEFINES})

# Add all Abseil targets to a a folder in the IDE for organization.
if(ABSL_CC_LIB_PUBLIC)
set_property(TARGET ${_NAME} PROPERTY FOLDER ${ABSL_IDE_FOLDER})
elseif(ABSL_CC_LIB_TESTONLY)
set_property(TARGET ${_NAME} PROPERTY FOLDER ${ABSL_IDE_FOLDER}/test)
if (ABSL_CC_LIB_TESTONLY)
set(_gtest_link_define "GTEST_LINKED_AS_SHARED_LIBRARY=1")
else()
set_property(TARGET ${_NAME} PROPERTY FOLDER ${ABSL_IDE_FOLDER}/internal)
set(_gtest_link_define)
endif()

# INTERFACE libraries can't have the CXX_STANDARD property set
set_property(TARGET ${_NAME} PROPERTY CXX_STANDARD ${ABSL_CXX_STANDARD})
set_property(TARGET ${_NAME} PROPERTY CXX_STANDARD_REQUIRED ON)

# When being installed, we lose the absl_ prefix. We want to put it back
# to have properly named lib files. This is a no-op when we are not being
# installed.
set_target_properties(${_NAME} PROPERTIES
OUTPUT_NAME "absl_${_NAME}"
target_compile_definitions(${_NAME}
PUBLIC
ABSL_CONSUME_DLL
"${_gtest_link_define}"
)
else()
# Generating header-only library
add_library(${_NAME} INTERFACE)
target_include_directories(${_NAME}
INTERFACE
$<BUILD_INTERFACE:${ABSL_COMMON_INCLUDE_DIRS}>
$<INSTALL_INTERFACE:${ABSL_INSTALL_INCLUDEDIR}>
)

elseif(${_build_type} STREQUAL "static" OR ${_build_type} STREQUAL "shared")
add_library(${_NAME} "")
target_sources(${_NAME} PRIVATE ${ABSL_CC_LIB_SRCS} ${ABSL_CC_LIB_HDRS})
target_link_libraries(${_NAME}
INTERFACE
${ABSL_CC_LIB_DEPS}
${ABSL_CC_LIB_LINKOPTS}
${ABSL_DEFAULT_LINKOPTS}
PUBLIC ${ABSL_CC_LIB_DEPS}
PRIVATE
${ABSL_CC_LIB_LINKOPTS}
${ABSL_DEFAULT_LINKOPTS}
)
target_compile_definitions(${_NAME} INTERFACE ${ABSL_CC_LIB_DEFINES})
else()
message(FATAL_ERROR "Invalid build type: ${_build_type}")
endif()

# TODO currently we don't install googletest alongside abseil sources, so
# installed abseil can't be tested.
if(NOT ABSL_CC_LIB_TESTONLY AND ABSL_ENABLE_INSTALL)
install(TARGETS ${_NAME} EXPORT ${PROJECT_NAME}Targets
RUNTIME DESTINATION ${ABSL_INSTALL_BINDIR}
LIBRARY DESTINATION ${ABSL_INSTALL_LIBDIR}
ARCHIVE DESTINATION ${ABSL_INSTALL_LIBDIR}
# Linker language can be inferred from sources, but in the case of DLLs we
# don't have any .cc files so it would be ambiguous. We could set it
# explicitly only in the case of DLLs but, because "CXX" is always the
# correct linker language for static or for shared libraries, we set it
# unconditionally.
set_property(TARGET ${_NAME} PROPERTY LINKER_LANGUAGE "CXX")

target_include_directories(${_NAME}
PUBLIC
"$<BUILD_INTERFACE:${ABSL_COMMON_INCLUDE_DIRS}>"
$<INSTALL_INTERFACE:${ABSL_INSTALL_INCLUDEDIR}>
)
target_compile_options(${_NAME}
PRIVATE ${ABSL_CC_LIB_COPTS})
target_compile_definitions(${_NAME} PUBLIC ${ABSL_CC_LIB_DEFINES})

# Add all Abseil targets to a a folder in the IDE for organization.
if(ABSL_CC_LIB_PUBLIC)
set_property(TARGET ${_NAME} PROPERTY FOLDER ${ABSL_IDE_FOLDER})
elseif(ABSL_CC_LIB_TESTONLY)
set_property(TARGET ${_NAME} PROPERTY FOLDER ${ABSL_IDE_FOLDER}/test)
else()
set_property(TARGET ${_NAME} PROPERTY FOLDER ${ABSL_IDE_FOLDER}/internal)
endif()

# INTERFACE libraries can't have the CXX_STANDARD property set
set_property(TARGET ${_NAME} PROPERTY CXX_STANDARD ${ABSL_CXX_STANDARD})
set_property(TARGET ${_NAME} PROPERTY CXX_STANDARD_REQUIRED ON)

# When being installed, we lose the absl_ prefix. We want to put it back
# to have properly named lib files. This is a no-op when we are not being
# installed.
if(ABSL_ENABLE_INSTALL)
set_target_properties(${_NAME} PROPERTIES
OUTPUT_NAME "absl_${_NAME}"
)
endif()
else()
# Generating header-only library
add_library(${_NAME} INTERFACE)
target_include_directories(${_NAME}
INTERFACE
"$<BUILD_INTERFACE:${ABSL_COMMON_INCLUDE_DIRS}>"
$<INSTALL_INTERFACE:${ABSL_INSTALL_INCLUDEDIR}>
)

add_library(absl::${ABSL_CC_LIB_NAME} ALIAS ${_NAME})
if (${_build_type} STREQUAL "dll")
set(ABSL_CC_LIB_DEPS abseil_dll)
endif()

target_link_libraries(${_NAME}
INTERFACE
${ABSL_CC_LIB_DEPS}
${ABSL_CC_LIB_LINKOPTS}
${ABSL_DEFAULT_LINKOPTS}
)
target_compile_definitions(${_NAME} INTERFACE ${ABSL_CC_LIB_DEFINES})
endif()

# TODO currently we don't install googletest alongside abseil sources, so
# installed abseil can't be tested.
if(NOT ABSL_CC_LIB_TESTONLY AND ABSL_ENABLE_INSTALL)
install(TARGETS ${_NAME} EXPORT ${PROJECT_NAME}Targets
RUNTIME DESTINATION ${ABSL_INSTALL_BINDIR}
LIBRARY DESTINATION ${ABSL_INSTALL_LIBDIR}
ARCHIVE DESTINATION ${ABSL_INSTALL_LIBDIR}
)
endif()

add_library(absl::${ABSL_CC_LIB_NAME} ALIAS ${_NAME})
endfunction()

# absl_cc_test()
Expand Down Expand Up @@ -221,23 +300,42 @@ function(absl_cc_test)
)

set(_NAME "absl_${ABSL_CC_TEST_NAME}")

add_executable(${_NAME} "")
target_sources(${_NAME} PRIVATE ${ABSL_CC_TEST_SRCS})
target_include_directories(${_NAME}
PUBLIC ${ABSL_COMMON_INCLUDE_DIRS}
PRIVATE ${GMOCK_INCLUDE_DIRS} ${GTEST_INCLUDE_DIRS}
)
target_compile_definitions(${_NAME}
PUBLIC ${ABSL_CC_TEST_DEFINES}
)

if (${ABSL_BUILD_DLL})
target_compile_definitions(${_NAME}
PUBLIC
${ABSL_CC_TEST_DEFINES}
ABSL_CONSUME_DLL
GTEST_LINKED_AS_SHARED_LIBRARY=1
)

# Replace dependencies on targets inside the DLL with abseil_dll itself.
absl_internal_dll_targets(
DEPS ${ABSL_CC_TEST_DEPS}
OUTPUT ABSL_CC_TEST_DEPS
)
else()
target_compile_definitions(${_NAME}
PUBLIC
${ABSL_CC_TEST_DEFINES}
)
endif()
target_compile_options(${_NAME}
PRIVATE ${ABSL_CC_TEST_COPTS}
)

target_link_libraries(${_NAME}
PUBLIC ${ABSL_CC_TEST_DEPS}
PRIVATE ${ABSL_CC_TEST_LINKOPTS}
)
# Add all Abseil targets to a a folder in the IDE for organization.
# Add all Abseil targets to a folder in the IDE for organization.
set_property(TARGET ${_NAME} PROPERTY FOLDER ${ABSL_IDE_FOLDER}/test)

set_property(TARGET ${_NAME} PROPERTY CXX_STANDARD ${ABSL_CXX_STANDARD})
Expand Down
10 changes: 10 additions & 0 deletions CMake/Googletest/DownloadGTest.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,13 @@ configure_file(
${CMAKE_BINARY_DIR}/googletest-download/CMakeLists.txt
)

set(ABSL_SAVE_CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS})
set(ABSL_SAVE_CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_RUNTIME_OUTPUT_DIRECTORY})
if (BUILD_SHARED_LIBS)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DGTEST_CREATE_SHARED_LIBRARY=1")
endif()

# Configure and build the downloaded googletest source
execute_process(COMMAND ${CMAKE_COMMAND} -G "${CMAKE_GENERATOR}" .
RESULT_VARIABLE result
Expand All @@ -22,6 +29,9 @@ if(result)
message(FATAL_ERROR "Build step for googletest failed: ${result}")
endif()

set(CMAKE_CXX_FLAGS ${ABSL_SAVE_CMAKE_CXX_FLAGS})
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${ABSL_SAVE_CMAKE_RUNTIME_OUTPUT_DIRECTORY})

# Prevent overriding the parent project's compiler/linker settings on Windows
set(gtest_force_shared_crt ON CACHE BOOL "" FORCE)

Expand Down
4 changes: 3 additions & 1 deletion CMake/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -85,13 +85,15 @@ https://github.com/abseil/abseil-cpp/issues/109 for more information.
Here's a non-exhaustive list of Abseil CMake public targets:

```cmake
absl::base
absl::algorithm
absl::base
absl::debugging
absl::flat_hash_map
absl::flags
absl::memory
absl::meta
absl::numeric
absl::random
absl::strings
absl::synchronization
absl::time
Expand Down
7 changes: 7 additions & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,12 @@ cmake_policy(SET CMP0048 NEW)

project(absl CXX)

# Output directory is correct by default for most build setups. However, when
# building Abseil as a DLL, it is important to have the DLL in the same
# directory as the executable using it. Thus, we put all executables in a single
# /bin directory.
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)

# when absl is included as subproject (i.e. using add_subdirectory(abseil-cpp))
# in the source tree of a project that uses it, install rules are disabled.
if(NOT "^${CMAKE_SOURCE_DIR}$" STREQUAL "^${PROJECT_SOURCE_DIR}$")
Expand All @@ -47,6 +53,7 @@ list(APPEND CMAKE_MODULE_PATH

include(AbseilInstallDirs)
include(CMakePackageConfigHelpers)
include(AbseilDll)
include(AbseilHelpers)


Expand Down
9 changes: 6 additions & 3 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -123,10 +123,13 @@ will be expected to conform to the style outlined

## Running Tests

Use "bazel test <>" functionality to run the unit tests.
If you have [Bazel](https://bazel.build/) installed, use `bazel test
--test_tag_filters="-benchmark" ...` to run the unit tests.

Prerequisites for building and running tests are listed in
[README.md](README.md)
If you are running the Linux operating system and have
[Docker](https://www.docker.com/) installed, you can also run the `linux_*.sh`
scripts under the `ci/`(https://github.com/abseil/abseil-cpp/tree/master/ci)
directory to test Abseil under a variety of conditions.

## Abseil Committers

Expand Down
Loading

0 comments on commit b832dce

Please sign in to comment.