Skip to content

Commit b832dce

Browse files
Abseil TeamCJ-Johnson
authored andcommitted
Creation of LTS branch "lts_2020_02_25"
- 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
1 parent aa84489 commit b832dce

File tree

579 files changed

+36280
-6811
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

579 files changed

+36280
-6811
lines changed

CMake/AbseilDll.cmake

Lines changed: 504 additions & 0 deletions
Large diffs are not rendered by default.

CMake/AbseilHelpers.cmake

Lines changed: 164 additions & 66 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616

1717
include(CMakeParseArguments)
1818
include(AbseilConfigureCopts)
19+
include(AbseilDll)
1920
include(AbseilInstallDirs)
2021

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

83-
if(NOT ABSL_CC_LIB_TESTONLY OR ABSL_RUN_TESTS)
84-
if(ABSL_ENABLE_INSTALL)
85-
set(_NAME "${ABSL_CC_LIB_NAME}")
86-
else()
87-
set(_NAME "absl_${ABSL_CC_LIB_NAME}")
84+
if(ABSL_CC_LIB_TESTONLY AND NOT ABSL_RUN_TESTS)
85+
return()
86+
endif()
87+
88+
if(ABSL_ENABLE_INSTALL)
89+
set(_NAME "${ABSL_CC_LIB_NAME}")
90+
else()
91+
set(_NAME "absl_${ABSL_CC_LIB_NAME}")
92+
endif()
93+
94+
# Check if this is a header-only library
95+
# Note that as of February 2019, many popular OS's (for example, Ubuntu
96+
# 16.04 LTS) only come with cmake 3.5 by default. For this reason, we can't
97+
# use list(FILTER...)
98+
set(ABSL_CC_SRCS "${ABSL_CC_LIB_SRCS}")
99+
foreach(src_file IN LISTS ABSL_CC_SRCS)
100+
if(${src_file} MATCHES ".*\\.(h|inc)")
101+
list(REMOVE_ITEM ABSL_CC_SRCS "${src_file}")
88102
endif()
103+
endforeach()
89104

90-
# Check if this is a header-only library
91-
# Note that as of February 2019, many popular OS's (for example, Ubuntu
92-
# 16.04 LTS) only come with cmake 3.5 by default. For this reason, we can't
93-
# use list(FILTER...)
94-
set(ABSL_CC_SRCS "${ABSL_CC_LIB_SRCS}")
95-
foreach(src_file IN LISTS ABSL_CC_SRCS)
96-
if(${src_file} MATCHES ".*\\.(h|inc)")
97-
list(REMOVE_ITEM ABSL_CC_SRCS "${src_file}")
98-
endif()
99-
endforeach()
100-
if("${ABSL_CC_SRCS}" STREQUAL "")
105+
if("${ABSL_CC_SRCS}" STREQUAL "")
106+
set(ABSL_CC_LIB_IS_INTERFACE 1)
107+
else()
108+
set(ABSL_CC_LIB_IS_INTERFACE 0)
109+
endif()
110+
111+
# Determine this build target's relationship to the DLL. It's one of four things:
112+
# 1. "dll" -- This target is part of the DLL
113+
# 2. "dll_dep" -- This target is not part of the DLL, but depends on the DLL.
114+
# Note that we assume any target not in the DLL depends on the
115+
# DLL. This is not a technical necessity but a convenience
116+
# which happens to be true, because nearly every target is
117+
# part of the DLL.
118+
# 3. "shared" -- This is a shared library, perhaps on a non-windows platform
119+
# where DLL doesn't make sense.
120+
# 4. "static" -- This target does not depend on the DLL and should be built
121+
# statically.
122+
if (${ABSL_BUILD_DLL})
123+
absl_internal_dll_contains(TARGET ${_NAME} OUTPUT _in_dll)
124+
if (${_in_dll})
125+
# This target should be replaced by the DLL
126+
set(_build_type "dll")
101127
set(ABSL_CC_LIB_IS_INTERFACE 1)
102128
else()
103-
set(ABSL_CC_LIB_IS_INTERFACE 0)
129+
# Building a DLL, but this target is not part of the DLL
130+
set(_build_type "dll_dep")
104131
endif()
132+
elseif(BUILD_SHARED_LIBS)
133+
set(_build_type "shared")
134+
else()
135+
set(_build_type "static")
136+
endif()
105137

106-
if(NOT ABSL_CC_LIB_IS_INTERFACE)
138+
if(NOT ABSL_CC_LIB_IS_INTERFACE)
139+
if(${_build_type} STREQUAL "dll_dep")
140+
# This target depends on the DLL. When adding dependencies to this target,
141+
# any depended-on-target which is contained inside the DLL is replaced
142+
# with a dependency on the DLL.
107143
add_library(${_NAME} STATIC "")
108144
target_sources(${_NAME} PRIVATE ${ABSL_CC_LIB_SRCS} ${ABSL_CC_LIB_HDRS})
109-
target_include_directories(${_NAME}
110-
PUBLIC
111-
$<BUILD_INTERFACE:${ABSL_COMMON_INCLUDE_DIRS}>
112-
$<INSTALL_INTERFACE:${ABSL_INSTALL_INCLUDEDIR}>
145+
absl_internal_dll_targets(
146+
DEPS ${ABSL_CC_LIB_DEPS}
147+
OUTPUT _dll_deps
113148
)
114-
target_compile_options(${_NAME}
115-
PRIVATE ${ABSL_CC_LIB_COPTS})
116149
target_link_libraries(${_NAME}
117-
PUBLIC ${ABSL_CC_LIB_DEPS}
150+
PUBLIC ${_dll_deps}
118151
PRIVATE
119152
${ABSL_CC_LIB_LINKOPTS}
120153
${ABSL_DEFAULT_LINKOPTS}
121154
)
122-
target_compile_definitions(${_NAME} PUBLIC ${ABSL_CC_LIB_DEFINES})
123155

124-
# Add all Abseil targets to a a folder in the IDE for organization.
125-
if(ABSL_CC_LIB_PUBLIC)
126-
set_property(TARGET ${_NAME} PROPERTY FOLDER ${ABSL_IDE_FOLDER})
127-
elseif(ABSL_CC_LIB_TESTONLY)
128-
set_property(TARGET ${_NAME} PROPERTY FOLDER ${ABSL_IDE_FOLDER}/test)
156+
if (ABSL_CC_LIB_TESTONLY)
157+
set(_gtest_link_define "GTEST_LINKED_AS_SHARED_LIBRARY=1")
129158
else()
130-
set_property(TARGET ${_NAME} PROPERTY FOLDER ${ABSL_IDE_FOLDER}/internal)
159+
set(_gtest_link_define)
131160
endif()
132161

133-
# INTERFACE libraries can't have the CXX_STANDARD property set
134-
set_property(TARGET ${_NAME} PROPERTY CXX_STANDARD ${ABSL_CXX_STANDARD})
135-
set_property(TARGET ${_NAME} PROPERTY CXX_STANDARD_REQUIRED ON)
136-
137-
# When being installed, we lose the absl_ prefix. We want to put it back
138-
# to have properly named lib files. This is a no-op when we are not being
139-
# installed.
140-
set_target_properties(${_NAME} PROPERTIES
141-
OUTPUT_NAME "absl_${_NAME}"
162+
target_compile_definitions(${_NAME}
163+
PUBLIC
164+
ABSL_CONSUME_DLL
165+
"${_gtest_link_define}"
142166
)
143-
else()
144-
# Generating header-only library
145-
add_library(${_NAME} INTERFACE)
146-
target_include_directories(${_NAME}
147-
INTERFACE
148-
$<BUILD_INTERFACE:${ABSL_COMMON_INCLUDE_DIRS}>
149-
$<INSTALL_INTERFACE:${ABSL_INSTALL_INCLUDEDIR}>
150-
)
167+
168+
elseif(${_build_type} STREQUAL "static" OR ${_build_type} STREQUAL "shared")
169+
add_library(${_NAME} "")
170+
target_sources(${_NAME} PRIVATE ${ABSL_CC_LIB_SRCS} ${ABSL_CC_LIB_HDRS})
151171
target_link_libraries(${_NAME}
152-
INTERFACE
153-
${ABSL_CC_LIB_DEPS}
154-
${ABSL_CC_LIB_LINKOPTS}
155-
${ABSL_DEFAULT_LINKOPTS}
172+
PUBLIC ${ABSL_CC_LIB_DEPS}
173+
PRIVATE
174+
${ABSL_CC_LIB_LINKOPTS}
175+
${ABSL_DEFAULT_LINKOPTS}
156176
)
157-
target_compile_definitions(${_NAME} INTERFACE ${ABSL_CC_LIB_DEFINES})
177+
else()
178+
message(FATAL_ERROR "Invalid build type: ${_build_type}")
158179
endif()
159180

160-
# TODO currently we don't install googletest alongside abseil sources, so
161-
# installed abseil can't be tested.
162-
if(NOT ABSL_CC_LIB_TESTONLY AND ABSL_ENABLE_INSTALL)
163-
install(TARGETS ${_NAME} EXPORT ${PROJECT_NAME}Targets
164-
RUNTIME DESTINATION ${ABSL_INSTALL_BINDIR}
165-
LIBRARY DESTINATION ${ABSL_INSTALL_LIBDIR}
166-
ARCHIVE DESTINATION ${ABSL_INSTALL_LIBDIR}
181+
# Linker language can be inferred from sources, but in the case of DLLs we
182+
# don't have any .cc files so it would be ambiguous. We could set it
183+
# explicitly only in the case of DLLs but, because "CXX" is always the
184+
# correct linker language for static or for shared libraries, we set it
185+
# unconditionally.
186+
set_property(TARGET ${_NAME} PROPERTY LINKER_LANGUAGE "CXX")
187+
188+
target_include_directories(${_NAME}
189+
PUBLIC
190+
"$<BUILD_INTERFACE:${ABSL_COMMON_INCLUDE_DIRS}>"
191+
$<INSTALL_INTERFACE:${ABSL_INSTALL_INCLUDEDIR}>
192+
)
193+
target_compile_options(${_NAME}
194+
PRIVATE ${ABSL_CC_LIB_COPTS})
195+
target_compile_definitions(${_NAME} PUBLIC ${ABSL_CC_LIB_DEFINES})
196+
197+
# Add all Abseil targets to a a folder in the IDE for organization.
198+
if(ABSL_CC_LIB_PUBLIC)
199+
set_property(TARGET ${_NAME} PROPERTY FOLDER ${ABSL_IDE_FOLDER})
200+
elseif(ABSL_CC_LIB_TESTONLY)
201+
set_property(TARGET ${_NAME} PROPERTY FOLDER ${ABSL_IDE_FOLDER}/test)
202+
else()
203+
set_property(TARGET ${_NAME} PROPERTY FOLDER ${ABSL_IDE_FOLDER}/internal)
204+
endif()
205+
206+
# INTERFACE libraries can't have the CXX_STANDARD property set
207+
set_property(TARGET ${_NAME} PROPERTY CXX_STANDARD ${ABSL_CXX_STANDARD})
208+
set_property(TARGET ${_NAME} PROPERTY CXX_STANDARD_REQUIRED ON)
209+
210+
# When being installed, we lose the absl_ prefix. We want to put it back
211+
# to have properly named lib files. This is a no-op when we are not being
212+
# installed.
213+
if(ABSL_ENABLE_INSTALL)
214+
set_target_properties(${_NAME} PROPERTIES
215+
OUTPUT_NAME "absl_${_NAME}"
167216
)
168217
endif()
218+
else()
219+
# Generating header-only library
220+
add_library(${_NAME} INTERFACE)
221+
target_include_directories(${_NAME}
222+
INTERFACE
223+
"$<BUILD_INTERFACE:${ABSL_COMMON_INCLUDE_DIRS}>"
224+
$<INSTALL_INTERFACE:${ABSL_INSTALL_INCLUDEDIR}>
225+
)
169226

170-
add_library(absl::${ABSL_CC_LIB_NAME} ALIAS ${_NAME})
227+
if (${_build_type} STREQUAL "dll")
228+
set(ABSL_CC_LIB_DEPS abseil_dll)
229+
endif()
230+
231+
target_link_libraries(${_NAME}
232+
INTERFACE
233+
${ABSL_CC_LIB_DEPS}
234+
${ABSL_CC_LIB_LINKOPTS}
235+
${ABSL_DEFAULT_LINKOPTS}
236+
)
237+
target_compile_definitions(${_NAME} INTERFACE ${ABSL_CC_LIB_DEFINES})
238+
endif()
239+
240+
# TODO currently we don't install googletest alongside abseil sources, so
241+
# installed abseil can't be tested.
242+
if(NOT ABSL_CC_LIB_TESTONLY AND ABSL_ENABLE_INSTALL)
243+
install(TARGETS ${_NAME} EXPORT ${PROJECT_NAME}Targets
244+
RUNTIME DESTINATION ${ABSL_INSTALL_BINDIR}
245+
LIBRARY DESTINATION ${ABSL_INSTALL_LIBDIR}
246+
ARCHIVE DESTINATION ${ABSL_INSTALL_LIBDIR}
247+
)
171248
endif()
249+
250+
add_library(absl::${ABSL_CC_LIB_NAME} ALIAS ${_NAME})
172251
endfunction()
173252

174253
# absl_cc_test()
@@ -221,23 +300,42 @@ function(absl_cc_test)
221300
)
222301

223302
set(_NAME "absl_${ABSL_CC_TEST_NAME}")
303+
224304
add_executable(${_NAME} "")
225305
target_sources(${_NAME} PRIVATE ${ABSL_CC_TEST_SRCS})
226306
target_include_directories(${_NAME}
227307
PUBLIC ${ABSL_COMMON_INCLUDE_DIRS}
228308
PRIVATE ${GMOCK_INCLUDE_DIRS} ${GTEST_INCLUDE_DIRS}
229309
)
230-
target_compile_definitions(${_NAME}
231-
PUBLIC ${ABSL_CC_TEST_DEFINES}
232-
)
310+
311+
if (${ABSL_BUILD_DLL})
312+
target_compile_definitions(${_NAME}
313+
PUBLIC
314+
${ABSL_CC_TEST_DEFINES}
315+
ABSL_CONSUME_DLL
316+
GTEST_LINKED_AS_SHARED_LIBRARY=1
317+
)
318+
319+
# Replace dependencies on targets inside the DLL with abseil_dll itself.
320+
absl_internal_dll_targets(
321+
DEPS ${ABSL_CC_TEST_DEPS}
322+
OUTPUT ABSL_CC_TEST_DEPS
323+
)
324+
else()
325+
target_compile_definitions(${_NAME}
326+
PUBLIC
327+
${ABSL_CC_TEST_DEFINES}
328+
)
329+
endif()
233330
target_compile_options(${_NAME}
234331
PRIVATE ${ABSL_CC_TEST_COPTS}
235332
)
333+
236334
target_link_libraries(${_NAME}
237335
PUBLIC ${ABSL_CC_TEST_DEPS}
238336
PRIVATE ${ABSL_CC_TEST_LINKOPTS}
239337
)
240-
# Add all Abseil targets to a a folder in the IDE for organization.
338+
# Add all Abseil targets to a folder in the IDE for organization.
241339
set_property(TARGET ${_NAME} PROPERTY FOLDER ${ABSL_IDE_FOLDER}/test)
242340

243341
set_property(TARGET ${_NAME} PROPERTY CXX_STANDARD ${ABSL_CXX_STANDARD})

CMake/Googletest/DownloadGTest.cmake

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,13 @@ configure_file(
77
${CMAKE_BINARY_DIR}/googletest-download/CMakeLists.txt
88
)
99

10+
set(ABSL_SAVE_CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS})
11+
set(ABSL_SAVE_CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_RUNTIME_OUTPUT_DIRECTORY})
12+
if (BUILD_SHARED_LIBS)
13+
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
14+
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DGTEST_CREATE_SHARED_LIBRARY=1")
15+
endif()
16+
1017
# Configure and build the downloaded googletest source
1118
execute_process(COMMAND ${CMAKE_COMMAND} -G "${CMAKE_GENERATOR}" .
1219
RESULT_VARIABLE result
@@ -22,6 +29,9 @@ if(result)
2229
message(FATAL_ERROR "Build step for googletest failed: ${result}")
2330
endif()
2431

32+
set(CMAKE_CXX_FLAGS ${ABSL_SAVE_CMAKE_CXX_FLAGS})
33+
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${ABSL_SAVE_CMAKE_RUNTIME_OUTPUT_DIRECTORY})
34+
2535
# Prevent overriding the parent project's compiler/linker settings on Windows
2636
set(gtest_force_shared_crt ON CACHE BOOL "" FORCE)
2737

CMake/README.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -85,13 +85,15 @@ https://github.com/abseil/abseil-cpp/issues/109 for more information.
8585
Here's a non-exhaustive list of Abseil CMake public targets:
8686

8787
```cmake
88-
absl::base
8988
absl::algorithm
89+
absl::base
9090
absl::debugging
9191
absl::flat_hash_map
92+
absl::flags
9293
absl::memory
9394
absl::meta
9495
absl::numeric
96+
absl::random
9597
absl::strings
9698
absl::synchronization
9799
absl::time

CMakeLists.txt

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,12 @@ cmake_policy(SET CMP0048 NEW)
3232

3333
project(absl CXX)
3434

35+
# Output directory is correct by default for most build setups. However, when
36+
# building Abseil as a DLL, it is important to have the DLL in the same
37+
# directory as the executable using it. Thus, we put all executables in a single
38+
# /bin directory.
39+
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
40+
3541
# when absl is included as subproject (i.e. using add_subdirectory(abseil-cpp))
3642
# in the source tree of a project that uses it, install rules are disabled.
3743
if(NOT "^${CMAKE_SOURCE_DIR}$" STREQUAL "^${PROJECT_SOURCE_DIR}$")
@@ -47,6 +53,7 @@ list(APPEND CMAKE_MODULE_PATH
4753

4854
include(AbseilInstallDirs)
4955
include(CMakePackageConfigHelpers)
56+
include(AbseilDll)
5057
include(AbseilHelpers)
5158

5259

CONTRIBUTING.md

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -123,10 +123,13 @@ will be expected to conform to the style outlined
123123

124124
## Running Tests
125125

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

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

131134
## Abseil Committers
132135

0 commit comments

Comments
 (0)