diff options
Diffstat (limited to 'third_party/abseil_cpp/CMake')
-rw-r--r-- | third_party/abseil_cpp/CMake/AbseilDll.cmake | 514 | ||||
-rw-r--r-- | third_party/abseil_cpp/CMake/AbseilHelpers.cmake | 402 | ||||
-rw-r--r-- | third_party/abseil_cpp/CMake/AbseilInstallDirs.cmake | 20 | ||||
-rw-r--r-- | third_party/abseil_cpp/CMake/Googletest/CMakeLists.txt.in | 14 | ||||
-rw-r--r-- | third_party/abseil_cpp/CMake/Googletest/DownloadGTest.cmake | 41 | ||||
-rw-r--r-- | third_party/abseil_cpp/CMake/README.md | 101 | ||||
-rw-r--r-- | third_party/abseil_cpp/CMake/abslConfig.cmake.in | 8 | ||||
-rw-r--r-- | third_party/abseil_cpp/CMake/install_test_project/CMakeLists.txt | 27 | ||||
-rw-r--r-- | third_party/abseil_cpp/CMake/install_test_project/simple.cc | 23 | ||||
-rwxr-xr-x | third_party/abseil_cpp/CMake/install_test_project/test.sh | 162 |
10 files changed, 0 insertions, 1312 deletions
diff --git a/third_party/abseil_cpp/CMake/AbseilDll.cmake b/third_party/abseil_cpp/CMake/AbseilDll.cmake deleted file mode 100644 index e0ff2492e7f2..000000000000 --- a/third_party/abseil_cpp/CMake/AbseilDll.cmake +++ /dev/null @@ -1,514 +0,0 @@ -include(CMakeParseArguments) - -set(ABSL_INTERNAL_DLL_FILES - "algorithm/algorithm.h" - "algorithm/container.h" - "base/attributes.h" - "base/call_once.h" - "base/casts.h" - "base/config.h" - "base/const_init.h" - "base/dynamic_annotations.h" - "base/internal/atomic_hook.h" - "base/internal/bits.h" - "base/internal/cycleclock.cc" - "base/internal/cycleclock.h" - "base/internal/direct_mmap.h" - "base/internal/dynamic_annotations.h" - "base/internal/endian.h" - "base/internal/errno_saver.h" - "base/internal/exponential_biased.cc" - "base/internal/exponential_biased.h" - "base/internal/fast_type_id.h" - "base/internal/hide_ptr.h" - "base/internal/identity.h" - "base/internal/invoke.h" - "base/internal/inline_variable.h" - "base/internal/low_level_alloc.cc" - "base/internal/low_level_alloc.h" - "base/internal/low_level_scheduling.h" - "base/internal/per_thread_tls.h" - "base/internal/periodic_sampler.cc" - "base/internal/periodic_sampler.h" - "base/internal/pretty_function.h" - "base/internal/raw_logging.cc" - "base/internal/raw_logging.h" - "base/internal/scheduling_mode.h" - "base/internal/scoped_set_env.cc" - "base/internal/scoped_set_env.h" - "base/internal/strerror.h" - "base/internal/strerror.cc" - "base/internal/spinlock.cc" - "base/internal/spinlock.h" - "base/internal/spinlock_wait.cc" - "base/internal/spinlock_wait.h" - "base/internal/sysinfo.cc" - "base/internal/sysinfo.h" - "base/internal/thread_annotations.h" - "base/internal/thread_identity.cc" - "base/internal/thread_identity.h" - "base/internal/throw_delegate.cc" - "base/internal/throw_delegate.h" - "base/internal/tsan_mutex_interface.h" - "base/internal/unaligned_access.h" - "base/internal/unscaledcycleclock.cc" - "base/internal/unscaledcycleclock.h" - "base/log_severity.cc" - "base/log_severity.h" - "base/macros.h" - "base/optimization.h" - "base/options.h" - "base/policy_checks.h" - "base/port.h" - "base/thread_annotations.h" - "container/btree_map.h" - "container/btree_set.h" - "container/fixed_array.h" - "container/flat_hash_map.h" - "container/flat_hash_set.h" - "container/inlined_vector.h" - "container/internal/btree.h" - "container/internal/btree_container.h" - "container/internal/common.h" - "container/internal/compressed_tuple.h" - "container/internal/container_memory.h" - "container/internal/counting_allocator.h" - "container/internal/hash_function_defaults.h" - "container/internal/hash_policy_traits.h" - "container/internal/hashtable_debug.h" - "container/internal/hashtable_debug_hooks.h" - "container/internal/hashtablez_sampler.cc" - "container/internal/hashtablez_sampler.h" - "container/internal/hashtablez_sampler_force_weak_definition.cc" - "container/internal/have_sse.h" - "container/internal/inlined_vector.h" - "container/internal/layout.h" - "container/internal/node_hash_policy.h" - "container/internal/raw_hash_map.h" - "container/internal/raw_hash_set.cc" - "container/internal/raw_hash_set.h" - "container/internal/tracked.h" - "container/node_hash_map.h" - "container/node_hash_set.h" - "debugging/failure_signal_handler.cc" - "debugging/failure_signal_handler.h" - "debugging/leak_check.h" - "debugging/leak_check_disable.cc" - "debugging/stacktrace.cc" - "debugging/stacktrace.h" - "debugging/symbolize.cc" - "debugging/symbolize.h" - "debugging/internal/address_is_readable.cc" - "debugging/internal/address_is_readable.h" - "debugging/internal/demangle.cc" - "debugging/internal/demangle.h" - "debugging/internal/elf_mem_image.cc" - "debugging/internal/elf_mem_image.h" - "debugging/internal/examine_stack.cc" - "debugging/internal/examine_stack.h" - "debugging/internal/stack_consumption.cc" - "debugging/internal/stack_consumption.h" - "debugging/internal/stacktrace_config.h" - "debugging/internal/symbolize.h" - "debugging/internal/vdso_support.cc" - "debugging/internal/vdso_support.h" - "functional/internal/front_binder.h" - "functional/bind_front.h" - "functional/function_ref.h" - "functional/internal/function_ref.h" - "hash/hash.h" - "hash/internal/city.h" - "hash/internal/city.cc" - "hash/internal/hash.h" - "hash/internal/hash.cc" - "hash/internal/spy_hash_state.h" - "memory/memory.h" - "meta/type_traits.h" - "numeric/int128.cc" - "numeric/int128.h" - "random/bernoulli_distribution.h" - "random/beta_distribution.h" - "random/bit_gen_ref.h" - "random/discrete_distribution.cc" - "random/discrete_distribution.h" - "random/distributions.h" - "random/exponential_distribution.h" - "random/gaussian_distribution.cc" - "random/gaussian_distribution.h" - "random/internal/distribution_caller.h" - "random/internal/fastmath.h" - "random/internal/fast_uniform_bits.h" - "random/internal/generate_real.h" - "random/internal/iostream_state_saver.h" - "random/internal/mock_helpers.h" - "random/internal/nonsecure_base.h" - "random/internal/pcg_engine.h" - "random/internal/platform.h" - "random/internal/pool_urbg.cc" - "random/internal/pool_urbg.h" - "random/internal/randen.cc" - "random/internal/randen.h" - "random/internal/randen_detect.cc" - "random/internal/randen_detect.h" - "random/internal/randen_engine.h" - "random/internal/randen_hwaes.cc" - "random/internal/randen_hwaes.h" - "random/internal/randen_round_keys.cc" - "random/internal/randen_slow.cc" - "random/internal/randen_slow.h" - "random/internal/randen_traits.h" - "random/internal/salted_seed_seq.h" - "random/internal/seed_material.cc" - "random/internal/seed_material.h" - "random/internal/sequence_urbg.h" - "random/internal/traits.h" - "random/internal/uniform_helper.h" - "random/internal/wide_multiply.h" - "random/log_uniform_int_distribution.h" - "random/poisson_distribution.h" - "random/random.h" - "random/seed_gen_exception.cc" - "random/seed_gen_exception.h" - "random/seed_sequences.cc" - "random/seed_sequences.h" - "random/uniform_int_distribution.h" - "random/uniform_real_distribution.h" - "random/zipf_distribution.h" - "status/internal/status_internal.h" - "status/internal/statusor_internal.h" - "status/status.h" - "status/status.cc" - "status/statusor.h" - "status/statusor.cc" - "status/status_payload_printer.h" - "status/status_payload_printer.cc" - "strings/ascii.cc" - "strings/ascii.h" - "strings/charconv.cc" - "strings/charconv.h" - "strings/cord.cc" - "strings/cord.h" - "strings/escaping.cc" - "strings/escaping.h" - "strings/internal/cord_internal.h" - "strings/internal/charconv_bigint.cc" - "strings/internal/charconv_bigint.h" - "strings/internal/charconv_parse.cc" - "strings/internal/charconv_parse.h" - "strings/internal/stl_type_traits.h" - "strings/internal/string_constant.h" - "strings/match.cc" - "strings/match.h" - "strings/numbers.cc" - "strings/numbers.h" - "strings/str_format.h" - "strings/str_cat.cc" - "strings/str_cat.h" - "strings/str_join.h" - "strings/str_replace.cc" - "strings/str_replace.h" - "strings/str_split.cc" - "strings/str_split.h" - "strings/string_view.cc" - "strings/string_view.h" - "strings/strip.h" - "strings/substitute.cc" - "strings/substitute.h" - "strings/internal/char_map.h" - "strings/internal/escaping.h" - "strings/internal/escaping.cc" - "strings/internal/memutil.cc" - "strings/internal/memutil.h" - "strings/internal/ostringstream.cc" - "strings/internal/ostringstream.h" - "strings/internal/pow10_helper.cc" - "strings/internal/pow10_helper.h" - "strings/internal/resize_uninitialized.h" - "strings/internal/str_format/arg.cc" - "strings/internal/str_format/arg.h" - "strings/internal/str_format/bind.cc" - "strings/internal/str_format/bind.h" - "strings/internal/str_format/checker.h" - "strings/internal/str_format/extension.cc" - "strings/internal/str_format/extension.h" - "strings/internal/str_format/float_conversion.cc" - "strings/internal/str_format/float_conversion.h" - "strings/internal/str_format/output.cc" - "strings/internal/str_format/output.h" - "strings/internal/str_format/parser.cc" - "strings/internal/str_format/parser.h" - "strings/internal/str_join_internal.h" - "strings/internal/str_split_internal.h" - "strings/internal/utf8.cc" - "strings/internal/utf8.h" - "synchronization/barrier.cc" - "synchronization/barrier.h" - "synchronization/blocking_counter.cc" - "synchronization/blocking_counter.h" - "synchronization/mutex.cc" - "synchronization/mutex.h" - "synchronization/notification.cc" - "synchronization/notification.h" - "synchronization/internal/create_thread_identity.cc" - "synchronization/internal/create_thread_identity.h" - "synchronization/internal/futex.h" - "synchronization/internal/graphcycles.cc" - "synchronization/internal/graphcycles.h" - "synchronization/internal/kernel_timeout.h" - "synchronization/internal/per_thread_sem.cc" - "synchronization/internal/per_thread_sem.h" - "synchronization/internal/thread_pool.h" - "synchronization/internal/waiter.cc" - "synchronization/internal/waiter.h" - "time/civil_time.cc" - "time/civil_time.h" - "time/clock.cc" - "time/clock.h" - "time/duration.cc" - "time/format.cc" - "time/time.cc" - "time/time.h" - "time/internal/cctz/include/cctz/civil_time.h" - "time/internal/cctz/include/cctz/civil_time_detail.h" - "time/internal/cctz/include/cctz/time_zone.h" - "time/internal/cctz/include/cctz/zone_info_source.h" - "time/internal/cctz/src/civil_time_detail.cc" - "time/internal/cctz/src/time_zone_fixed.cc" - "time/internal/cctz/src/time_zone_fixed.h" - "time/internal/cctz/src/time_zone_format.cc" - "time/internal/cctz/src/time_zone_if.cc" - "time/internal/cctz/src/time_zone_if.h" - "time/internal/cctz/src/time_zone_impl.cc" - "time/internal/cctz/src/time_zone_impl.h" - "time/internal/cctz/src/time_zone_info.cc" - "time/internal/cctz/src/time_zone_info.h" - "time/internal/cctz/src/time_zone_libc.cc" - "time/internal/cctz/src/time_zone_libc.h" - "time/internal/cctz/src/time_zone_lookup.cc" - "time/internal/cctz/src/time_zone_posix.cc" - "time/internal/cctz/src/time_zone_posix.h" - "time/internal/cctz/src/tzfile.h" - "time/internal/cctz/src/zone_info_source.cc" - "types/any.h" - "types/bad_any_cast.cc" - "types/bad_any_cast.h" - "types/bad_optional_access.cc" - "types/bad_optional_access.h" - "types/bad_variant_access.cc" - "types/bad_variant_access.h" - "types/compare.h" - "types/internal/conformance_aliases.h" - "types/internal/conformance_archetype.h" - "types/internal/conformance_profile.h" - "types/internal/parentheses.h" - "types/internal/transform_args.h" - "types/internal/variant.h" - "types/optional.h" - "types/internal/optional.h" - "types/span.h" - "types/internal/span.h" - "types/variant.h" - "utility/utility.h" -) - -set(ABSL_INTERNAL_DLL_TARGETS - "stacktrace" - "symbolize" - "examine_stack" - "failure_signal_handler" - "debugging_internal" - "demangle_internal" - "leak_check" - "leak_check_disable" - "stack_consumption" - "debugging" - "hash" - "spy_hash_state" - "city" - "memory" - "strings" - "strings_internal" - "cord" - "str_format" - "str_format_internal" - "pow10_helper" - "int128" - "numeric" - "utility" - "any" - "bad_any_cast" - "bad_any_cast_impl" - "span" - "optional" - "bad_optional_access" - "bad_variant_access" - "variant" - "compare" - "algorithm" - "algorithm_container" - "graphcycles_internal" - "kernel_timeout_internal" - "synchronization" - "thread_pool" - "bind_front" - "function_ref" - "atomic_hook" - "log_severity" - "raw_logging_internal" - "spinlock_wait" - "config" - "dynamic_annotations" - "core_headers" - "malloc_internal" - "base_internal" - "base" - "throw_delegate" - "pretty_function" - "endian" - "bits" - "exponential_biased" - "periodic_sampler" - "scoped_set_env" - "type_traits" - "meta" - "random_random" - "random_bit_gen_ref" - "random_distributions" - "random_seed_gen_exception" - "random_seed_sequences" - "random_internal_traits" - "random_internal_distribution_caller" - "random_internal_distributions" - "random_internal_fast_uniform_bits" - "random_internal_seed_material" - "random_internal_pool_urbg" - "random_internal_explicit_seed_seq" - "random_internal_sequence_urbg" - "random_internal_salted_seed_seq" - "random_internal_iostream_state_saver" - "random_internal_generate_real" - "random_internal_wide_multiply" - "random_internal_fastmath" - "random_internal_nonsecure_base" - "random_internal_pcg_engine" - "random_internal_randen_engine" - "random_internal_platform" - "random_internal_randen" - "random_internal_randen_slow" - "random_internal_randen_hwaes" - "random_internal_randen_hwaes_impl" - "random_internal_uniform_helper" - "status" - "time" - "civil_time" - "time_zone" - "container" - "btree" - "compressed_tuple" - "fixed_array" - "inlined_vector_internal" - "inlined_vector" - "counting_allocator" - "flat_hash_map" - "flat_hash_set" - "node_hash_map" - "node_hash_set" - "container_memory" - "hash_function_defaults" - "hash_policy_traits" - "hashtablez_sampler" - "hashtable_debug" - "hashtable_debug_hooks" - "have_sse" - "node_hash_policy" - "raw_hash_map" - "container_common" - "raw_hash_set" - "layout" - "tracked" -) - -function(absl_internal_dll_contains) - cmake_parse_arguments(ABSL_INTERNAL_DLL - "" - "OUTPUT;TARGET" - "" - ${ARGN} - ) - - STRING(REGEX REPLACE "^absl::" "" _target ${ABSL_INTERNAL_DLL_TARGET}) - - list(FIND - ABSL_INTERNAL_DLL_TARGETS - "${_target}" - _index) - - if (${_index} GREATER -1) - set(${ABSL_INTERNAL_DLL_OUTPUT} 1 PARENT_SCOPE) - else() - set(${ABSL_INTERNAL_DLL_OUTPUT} 0 PARENT_SCOPE) - endif() -endfunction() - -function(absl_internal_dll_targets) - cmake_parse_arguments(ABSL_INTERNAL_DLL - "" - "OUTPUT" - "DEPS" - ${ARGN} - ) - - set(_deps "") - foreach(dep IN LISTS ABSL_INTERNAL_DLL_DEPS) - absl_internal_dll_contains(TARGET ${dep} OUTPUT _contains) - if (_contains) - list(APPEND _deps abseil_dll) - else() - list(APPEND _deps ${dep}) - endif() - endforeach() - - # Because we may have added the DLL multiple times - list(REMOVE_DUPLICATES _deps) - set(${ABSL_INTERNAL_DLL_OUTPUT} "${_deps}" PARENT_SCOPE) -endfunction() - -function(absl_make_dll) - add_library( - abseil_dll - SHARED - "${ABSL_INTERNAL_DLL_FILES}" - ) - target_link_libraries( - abseil_dll - PRIVATE - ${ABSL_DEFAULT_LINKOPTS} - ) - set_property(TARGET abseil_dll PROPERTY LINKER_LANGUAGE "CXX") - target_include_directories( - abseil_dll - PUBLIC - "$<BUILD_INTERFACE:${ABSL_COMMON_INCLUDE_DIRS}>" - $<INSTALL_INTERFACE:${ABSL_INSTALL_INCLUDEDIR}> - ) - - target_compile_options( - abseil_dll - PRIVATE - ${ABSL_DEFAULT_COPTS} - ) - - target_compile_definitions( - abseil_dll - PRIVATE - ABSL_BUILD_DLL - NOMINMAX - INTERFACE - ${ABSL_CC_LIB_DEFINES} - ) - install(TARGETS abseil_dll EXPORT ${PROJECT_NAME}Targets - RUNTIME DESTINATION ${ABSL_INSTALL_BINDIR} - LIBRARY DESTINATION ${ABSL_INSTALL_LIBDIR} - ARCHIVE DESTINATION ${ABSL_INSTALL_LIBDIR} - ) -endfunction() diff --git a/third_party/abseil_cpp/CMake/AbseilHelpers.cmake b/third_party/abseil_cpp/CMake/AbseilHelpers.cmake deleted file mode 100644 index e88507de562c..000000000000 --- a/third_party/abseil_cpp/CMake/AbseilHelpers.cmake +++ /dev/null @@ -1,402 +0,0 @@ -# -# Copyright 2017 The Abseil Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# https://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# - -include(CMakeParseArguments) -include(AbseilConfigureCopts) -include(AbseilDll) -include(AbseilInstallDirs) - -# The IDE folder for Abseil that will be used if Abseil is included in a CMake -# project that sets -# set_property(GLOBAL PROPERTY USE_FOLDERS ON) -# For example, Visual Studio supports folders. -if(NOT DEFINED ABSL_IDE_FOLDER) - set(ABSL_IDE_FOLDER Abseil) -endif() - -# absl_cc_library() -# -# CMake function to imitate Bazel's cc_library rule. -# -# Parameters: -# NAME: name of target (see Note) -# HDRS: List of public header files for the library -# SRCS: List of source files for the library -# DEPS: List of other libraries to be linked in to the binary targets -# COPTS: List of private compile options -# DEFINES: List of public defines -# LINKOPTS: List of link options -# PUBLIC: Add this so that this library will be exported under absl:: -# Also in IDE, target will appear in Abseil folder while non PUBLIC will be in Abseil/internal. -# TESTONLY: When added, this target will only be built if user passes -DABSL_RUN_TESTS=ON to CMake. -# -# Note: -# By default, absl_cc_library will always create a library named absl_${NAME}, -# and alias target absl::${NAME}. The absl:: form should always be used. -# This is to reduce namespace pollution. -# -# absl_cc_library( -# NAME -# awesome -# HDRS -# "a.h" -# SRCS -# "a.cc" -# ) -# absl_cc_library( -# NAME -# fantastic_lib -# SRCS -# "b.cc" -# DEPS -# absl::awesome # not "awesome" ! -# PUBLIC -# ) -# -# absl_cc_library( -# NAME -# main_lib -# ... -# DEPS -# absl::fantastic_lib -# ) -# -# TODO: Implement "ALWAYSLINK" -function(absl_cc_library) - cmake_parse_arguments(ABSL_CC_LIB - "DISABLE_INSTALL;PUBLIC;TESTONLY" - "NAME" - "HDRS;SRCS;COPTS;DEFINES;LINKOPTS;DEPS" - ${ARGN} - ) - - 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() - - 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}) - if(ABSL_ENABLE_INSTALL) - absl_internal_dll_contains(TARGET ${_NAME} OUTPUT _in_dll) - else() - absl_internal_dll_contains(TARGET ${ABSL_CC_LIB_NAME} OUTPUT _in_dll) - endif() - if (${_in_dll}) - # This target should be replaced by the DLL - set(_build_type "dll") - set(ABSL_CC_LIB_IS_INTERFACE 1) - else() - # 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() - - # Generate a pkg-config file for every library: - if(${_build_type} STREQUAL "static" OR ${_build_type} STREQUAL "shared") - if(NOT ABSL_CC_LIB_TESTONLY) - if(absl_VERSION) - set(PC_VERSION "${absl_VERSION}") - else() - set(PC_VERSION "head") - endif() - foreach(dep ${ABSL_CC_LIB_DEPS}) - if(${dep} MATCHES "^absl::(.*)") - set(PC_DEPS "${PC_DEPS} absl_${CMAKE_MATCH_1} = ${PC_VERSION}") - endif() - endforeach() - foreach(cflag ${ABSL_CC_LIB_COPTS}) - if(${cflag} MATCHES "^(-Wno|/wd)") - # These flags are needed to suppress warnings that might fire in our headers. - set(PC_CFLAGS "${PC_CFLAGS} ${cflag}") - elseif(${cflag} MATCHES "^(-W|/w[1234eo])") - # Don't impose our warnings on others. - else() - set(PC_CFLAGS "${PC_CFLAGS} ${cflag}") - endif() - endforeach() - FILE(GENERATE OUTPUT "${CMAKE_BINARY_DIR}/lib/pkgconfig/absl_${_NAME}.pc" CONTENT "\ -prefix=${CMAKE_INSTALL_PREFIX}\n\ -exec_prefix=\${prefix}\n\ -libdir=\${prefix}/lib\n\ -includedir=\${prefix}/include\n\ -\n\ -Name: absl_${_NAME}\n\ -Description: Abseil ${_NAME} library\n\ -URL: https://abseil.io/\n\ -Version: ${PC_VERSION}\n\ -Requires.private:${PC_DEPS}\n\ -Libs: -L\${libdir} $<JOIN:${ABSL_CC_LIB_LINKOPTS}, > $<$<NOT:$<BOOL:${ABSL_CC_LIB_IS_INTERFACE}>>:-labsl_${_NAME}>\n\ -Cflags: -I\${includedir}${PC_CFLAGS}\n") - INSTALL(FILES "${CMAKE_BINARY_DIR}/lib/pkgconfig/absl_${_NAME}.pc" - DESTINATION "${CMAKE_INSTALL_PREFIX}/lib/pkgconfig") - endif() - endif() - - 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}) - absl_internal_dll_targets( - DEPS ${ABSL_CC_LIB_DEPS} - OUTPUT _dll_deps - ) - target_link_libraries(${_NAME} - PUBLIC ${_dll_deps} - PRIVATE - ${ABSL_CC_LIB_LINKOPTS} - ${ABSL_DEFAULT_LINKOPTS} - ) - - if (ABSL_CC_LIB_TESTONLY) - set(_gtest_link_define "GTEST_LINKED_AS_SHARED_LIBRARY=1") - else() - set(_gtest_link_define) - endif() - - target_compile_definitions(${_NAME} - PUBLIC - ABSL_CONSUME_DLL - "${_gtest_link_define}" - ) - - 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} - PUBLIC ${ABSL_CC_LIB_DEPS} - PRIVATE - ${ABSL_CC_LIB_LINKOPTS} - ${ABSL_DEFAULT_LINKOPTS} - ) - else() - message(FATAL_ERROR "Invalid build type: ${_build_type}") - endif() - - # 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}" - # TODO(b/173696973): Figure out how to set SOVERSION for LTS releases. - SOVERSION 0 - ) - 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}> - ) - - 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() -# -# CMake function to imitate Bazel's cc_test rule. -# -# Parameters: -# NAME: name of target (see Usage below) -# SRCS: List of source files for the binary -# DEPS: List of other libraries to be linked in to the binary targets -# COPTS: List of private compile options -# DEFINES: List of public defines -# LINKOPTS: List of link options -# -# Note: -# By default, absl_cc_test will always create a binary named absl_${NAME}. -# This will also add it to ctest list as absl_${NAME}. -# -# Usage: -# absl_cc_library( -# NAME -# awesome -# HDRS -# "a.h" -# SRCS -# "a.cc" -# PUBLIC -# ) -# -# absl_cc_test( -# NAME -# awesome_test -# SRCS -# "awesome_test.cc" -# DEPS -# absl::awesome -# gmock -# gtest_main -# ) -function(absl_cc_test) - if(NOT ABSL_RUN_TESTS) - return() - endif() - - cmake_parse_arguments(ABSL_CC_TEST - "" - "NAME" - "SRCS;COPTS;DEFINES;LINKOPTS;DEPS" - ${ARGN} - ) - - 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} - ) - - 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 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}) - set_property(TARGET ${_NAME} PROPERTY CXX_STANDARD_REQUIRED ON) - - add_test(NAME ${_NAME} COMMAND ${_NAME}) -endfunction() - - -function(check_target my_target) - if(NOT TARGET ${my_target}) - message(FATAL_ERROR " ABSL: compiling absl requires a ${my_target} CMake target in your project, - see CMake/README.md for more details") - endif(NOT TARGET ${my_target}) -endfunction() diff --git a/third_party/abseil_cpp/CMake/AbseilInstallDirs.cmake b/third_party/abseil_cpp/CMake/AbseilInstallDirs.cmake deleted file mode 100644 index 6fc914b60f62..000000000000 --- a/third_party/abseil_cpp/CMake/AbseilInstallDirs.cmake +++ /dev/null @@ -1,20 +0,0 @@ -include(GNUInstallDirs) - -# absl_VERSION is only set if we are an LTS release being installed, in which -# case it may be into a system directory and so we need to make subdirectories -# for each installed version of Abseil. This mechanism is implemented in -# Abseil's internal Copybara (https://github.com/google/copybara) workflows and -# isn't visible in the CMake buildsystem itself. - -if(absl_VERSION) - set(ABSL_SUBDIR "${PROJECT_NAME}_${PROJECT_VERSION}") - set(ABSL_INSTALL_BINDIR "${CMAKE_INSTALL_BINDIR}/${ABSL_SUBDIR}") - set(ABSL_INSTALL_CONFIGDIR "${CMAKE_INSTALL_LIBDIR}/cmake/${ABSL_SUBDIR}") - set(ABSL_INSTALL_INCLUDEDIR "${CMAKE_INSTALL_INCLUDEDIR}/${ABSL_SUBDIR}") - set(ABSL_INSTALL_LIBDIR "${CMAKE_INSTALL_LIBDIR}/${ABSL_SUBDIR}") -else() - set(ABSL_INSTALL_BINDIR "${CMAKE_INSTALL_BINDIR}") - set(ABSL_INSTALL_CONFIGDIR "${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}") - set(ABSL_INSTALL_INCLUDEDIR "${CMAKE_INSTALL_INCLUDEDIR}") - set(ABSL_INSTALL_LIBDIR "${CMAKE_INSTALL_LIBDIR}") -endif() diff --git a/third_party/abseil_cpp/CMake/Googletest/CMakeLists.txt.in b/third_party/abseil_cpp/CMake/Googletest/CMakeLists.txt.in deleted file mode 100644 index 5769e3a97b62..000000000000 --- a/third_party/abseil_cpp/CMake/Googletest/CMakeLists.txt.in +++ /dev/null @@ -1,14 +0,0 @@ -cmake_minimum_required(VERSION 2.8.2) - -project(googletest-external NONE) - -include(ExternalProject) -ExternalProject_Add(googletest - URL "${absl_gtest_download_url}" # May be empty - SOURCE_DIR "${absl_gtest_src_dir}" - BINARY_DIR "${absl_gtest_build_dir}" - CONFIGURE_COMMAND "" - BUILD_COMMAND "" - INSTALL_COMMAND "" - TEST_COMMAND "" -) diff --git a/third_party/abseil_cpp/CMake/Googletest/DownloadGTest.cmake b/third_party/abseil_cpp/CMake/Googletest/DownloadGTest.cmake deleted file mode 100644 index 9d071c917011..000000000000 --- a/third_party/abseil_cpp/CMake/Googletest/DownloadGTest.cmake +++ /dev/null @@ -1,41 +0,0 @@ -# Integrates googletest at configure time. Based on the instructions at -# https://github.com/google/googletest/tree/master/googletest#incorporating-into-an-existing-cmake-project - -# Set up the external googletest project, downloading the latest from Github -# master if requested. -configure_file( - ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt.in - ${CMAKE_BINARY_DIR}/googletest-external/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 googletest source. -execute_process(COMMAND ${CMAKE_COMMAND} -G "${CMAKE_GENERATOR}" . - RESULT_VARIABLE result - WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/googletest-external ) -if(result) - message(FATAL_ERROR "CMake step for googletest failed: ${result}") -endif() - -execute_process(COMMAND ${CMAKE_COMMAND} --build . - RESULT_VARIABLE result - WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/googletest-external) -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) - -# Add googletest directly to our build. This defines the gtest and gtest_main -# targets. -add_subdirectory(${absl_gtest_src_dir} ${absl_gtest_build_dir} EXCLUDE_FROM_ALL) diff --git a/third_party/abseil_cpp/CMake/README.md b/third_party/abseil_cpp/CMake/README.md deleted file mode 100644 index 8f73475a1621..000000000000 --- a/third_party/abseil_cpp/CMake/README.md +++ /dev/null @@ -1,101 +0,0 @@ -# Abseil CMake Build Instructions - -Abseil comes with a CMake build script ([CMakeLists.txt](../CMakeLists.txt)) -that can be used on a wide range of platforms ("C" stands for cross-platform.). -If you don't have CMake installed already, you can download it for free from -<https://www.cmake.org/>. - -CMake works by generating native makefiles or build projects that can -be used in the compiler environment of your choice. - -For API/ABI compatibility reasons, we strongly recommend building Abseil in a -subdirectory of your project or as an embedded dependency. - -## Incorporating Abseil Into a CMake Project - -The recommendations below are similar to those for using CMake within the -googletest framework -(<https://github.com/google/googletest/blob/master/googletest/README.md#incorporating-into-an-existing-cmake-project>) - -### Step-by-Step Instructions - -1. If you want to build the Abseil tests, integrate the Abseil dependency -[Google Test](https://github.com/google/googletest) into your CMake project. To disable Abseil tests, you have to pass -`-DBUILD_TESTING=OFF` when configuring your project with CMake. - -2. Download Abseil and copy it into a subdirectory in your CMake project or add -Abseil as a [git submodule](https://git-scm.com/docs/git-submodule) in your -CMake project. - -3. You can then use the CMake command -[`add_subdirectory()`](https://cmake.org/cmake/help/latest/command/add_subdirectory.html) -to include Abseil directly in your CMake project. - -4. Add the **absl::** target you wish to use to the -[`target_link_libraries()`](https://cmake.org/cmake/help/latest/command/target_link_libraries.html) -section of your executable or of your library.<br> -Here is a short CMakeLists.txt example of a project file using Abseil. - -```cmake -cmake_minimum_required(VERSION 3.5) -project(my_project) - -# Pick the C++ standard to compile with. -# Abseil currently supports C++11, C++14, and C++17. -set(CMAKE_CXX_STANDARD 11) - -add_subdirectory(abseil-cpp) - -add_executable(my_exe source.cpp) -target_link_libraries(my_exe absl::base absl::synchronization absl::strings) -``` - -### Running Abseil Tests with CMake - -Use the `-DABSL_RUN_TESTS=ON` flag to run Abseil tests. Note that if the `-DBUILD_TESTING=OFF` flag is passed then Abseil tests will not be run. - -You will need to provide Abseil with a Googletest dependency. There are two -options for how to do this: - -* Use `-DABSL_USE_GOOGLETEST_HEAD`. This will automatically download the latest -Googletest source into the build directory at configure time. Googletest will -then be compiled directly alongside Abseil's tests. -* Manually integrate Googletest with your build. See -https://github.com/google/googletest/blob/master/googletest/README.md#using-cmake -for more information on using Googletest in a CMake project. - -For example, to run just the Abseil tests, you could use this script: - -``` -cd path/to/abseil-cpp -mkdir build -cd build -cmake -DABSL_USE_GOOGLETEST_HEAD=ON -DABSL_RUN_TESTS=ON .. -make -j -ctest -``` - -Currently, we only run our tests with CMake in a Linux environment, but we are -working on the rest of our supported platforms. See -https://github.com/abseil/abseil-cpp/projects/1 and -https://github.com/abseil/abseil-cpp/issues/109 for more information. - -### Available Abseil CMake Public Targets - -Here's a non-exhaustive list of Abseil CMake public targets: - -```cmake -absl::algorithm -absl::base -absl::debugging -absl::flat_hash_map -absl::flags -absl::memory -absl::meta -absl::numeric -absl::random_random -absl::strings -absl::synchronization -absl::time -absl::utility -``` diff --git a/third_party/abseil_cpp/CMake/abslConfig.cmake.in b/third_party/abseil_cpp/CMake/abslConfig.cmake.in deleted file mode 100644 index 62d246d01e00..000000000000 --- a/third_party/abseil_cpp/CMake/abslConfig.cmake.in +++ /dev/null @@ -1,8 +0,0 @@ -# absl CMake configuration file. - -include(CMakeFindDependencyMacro) -find_dependency(Threads) - -@PACKAGE_INIT@ - -include ("${CMAKE_CURRENT_LIST_DIR}/@PROJECT_NAME@Targets.cmake") diff --git a/third_party/abseil_cpp/CMake/install_test_project/CMakeLists.txt b/third_party/abseil_cpp/CMake/install_test_project/CMakeLists.txt deleted file mode 100644 index 06b797e9eddc..000000000000 --- a/third_party/abseil_cpp/CMake/install_test_project/CMakeLists.txt +++ /dev/null @@ -1,27 +0,0 @@ -# -# Copyright 2019 The Abseil Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# https://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -# A simple CMakeLists.txt for testing cmake installation - -cmake_minimum_required(VERSION 3.5) -project(absl_cmake_testing CXX) - -set(CMAKE_CXX_STANDARD 11) - -add_executable(simple simple.cc) - -find_package(absl REQUIRED) - -target_link_libraries(simple absl::strings) diff --git a/third_party/abseil_cpp/CMake/install_test_project/simple.cc b/third_party/abseil_cpp/CMake/install_test_project/simple.cc deleted file mode 100644 index e9e352912bab..000000000000 --- a/third_party/abseil_cpp/CMake/install_test_project/simple.cc +++ /dev/null @@ -1,23 +0,0 @@ -// -// Copyright 2019 The Abseil Authors. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -#include <iostream> -#include "absl/strings/substitute.h" - -int main(int argc, char** argv) { - for (int i = 0; i < argc; ++i) { - std::cout << absl::Substitute("Arg $0: $1\n", i, argv[i]); - } -} diff --git a/third_party/abseil_cpp/CMake/install_test_project/test.sh b/third_party/abseil_cpp/CMake/install_test_project/test.sh deleted file mode 100755 index ddc7726b6c2d..000000000000 --- a/third_party/abseil_cpp/CMake/install_test_project/test.sh +++ /dev/null @@ -1,162 +0,0 @@ -#!/bin/bash -# -# Copyright 2019 The Abseil Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# https://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -# "Unit" and integration tests for Absl CMake installation - -# TODO(absl-team): This script isn't fully hermetic because -# -DABSL_USE_GOOGLETEST_HEAD=ON means that this script isn't pinned to a fixed -# version of GoogleTest. This means that an upstream change to GoogleTest could -# break this test. Fix this by allowing this script to pin to a known-good -# version of GoogleTest. - -# Fail on any error. Treat unset variables an error. Print commands as executed. -set -euox pipefail - -install_absl() { - pushd "${absl_build_dir}" - if [[ "${#}" -eq 1 ]]; then - cmake -DCMAKE_INSTALL_PREFIX="${1}" "${absl_dir}" - else - cmake "${absl_dir}" - fi - cmake --build . --target install -- -j - popd -} - -uninstall_absl() { - xargs rm < "${absl_build_dir}"/install_manifest.txt - rm -rf "${absl_build_dir}" - mkdir -p "${absl_build_dir}" -} - -lts_install="" - -while getopts ":l" lts; do - case "${lts}" in - l ) - lts_install="true" - ;; - esac -done - -absl_dir=/abseil-cpp -absl_build_dir=/buildfs/absl-build -project_dir="${absl_dir}"/CMake/install_test_project -project_build_dir=/buildfs/project-build - -mkdir -p "${absl_build_dir}" -mkdir -p "${project_build_dir}" - -if [[ "${lts_install}" ]]; then - install_dir="/usr/local" -else - install_dir="${project_build_dir}"/install -fi -mkdir -p "${install_dir}" - -# Test build, install, and link against installed abseil -pushd "${project_build_dir}" -if [[ "${lts_install}" ]]; then - install_absl - cmake "${project_dir}" -else - install_absl "${install_dir}" - cmake "${project_dir}" -DCMAKE_PREFIX_PATH="${install_dir}" -fi - -cmake --build . --target simple - -output="$(${project_build_dir}/simple "printme" 2>&1)" -if [[ "${output}" != *"Arg 1: printme"* ]]; then - echo "Faulty output on simple project:" - echo "${output}" - exit 1 -fi - -popd - -# Test that we haven't accidentally made absl::abslblah -pushd "${install_dir}" - -# Starting in CMake 3.12 the default install dir is lib$bit_width -if [[ -d lib64 ]]; then - libdir="lib64" -elif [[ -d lib ]]; then - libdir="lib" -else - echo "ls *, */*, */*/*:" - ls * - ls */* - ls */*/* - echo "unknown lib dir" -fi - -if [[ "${lts_install}" ]]; then - # LTS versions append the date of the release to the subdir. - # 9999/99/99 is the dummy date used in the local_lts workflow. - absl_subdir="absl_99999999" -else - absl_subdir="absl" -fi - -if ! grep absl::strings "${libdir}/cmake/${absl_subdir}/abslTargets.cmake"; then - cat "${libdir}"/cmake/absl/abslTargets.cmake - echo "CMake targets named incorrectly" - exit 1 -fi - -pushd "${HOME}" -cat > hello-abseil.cc << EOF -#include <cstdlib> - -#include "absl/strings/str_format.h" - -int main(int argc, char **argv) { - absl::PrintF("Hello Abseil!\n"); - return EXIT_SUCCESS; -} -EOF -export PKG_CONFIG_PATH="${install_dir}/${libdir}/pkgconfig" -pc_args=($(pkg-config --cflags --libs --static absl_str_format)) -g++ -static -o hello-abseil hello-abseil.cc "${pc_args[@]}" -hello="$(./hello-abseil)" -[[ "${hello}" == "Hello Abseil!" ]] -popd - -uninstall_absl -popd - -if [[ ! "${lts_install}" ]]; then - # Test that we warn if installed without a prefix or a system prefix - output="$(install_absl 2>&1)" - if [[ "${output}" != *"Please set CMAKE_INSTALL_PREFIX"* ]]; then - echo "Install without prefix didn't warn as expected. Output:" - echo "${output}" - exit 1 - fi - uninstall_absl - - output="$(install_absl /usr 2>&1)" - if [[ "${output}" != *"Please set CMAKE_INSTALL_PREFIX"* ]]; then - echo "Install with /usr didn't warn as expected. Output:" - echo "${output}" - exit 1 - fi - uninstall_absl -fi - -echo "Install test complete!" -exit 0 |