diff options
author | Adrien Devresse <adrien.devresse@epfl.ch> | 2017-09-27T03·37-0700 |
---|---|---|
committer | Adrien Devresse <adrien.devresse@epfl.ch> | 2017-10-27T16·46+0200 |
commit | d5134a7f11e32d11caa67e75ae2ae2e506fb54ba (patch) | |
tree | a79eb61722804e184840d5b29f6d5de83657fb2a /absl/types | |
parent | 962e9931d546cd6f062894e15283cea02c7d3220 (diff) |
CMake support
- initial cmake support - downgrade cmake requirement to 2.8.12 - factorize cmake test flags / libs options - refactor test / library under helpers functions, follow bazel's style - Add fix for MSVC and Windows support ( thx @patrikfors ) - Switch to default "add_subdirectory()" usage mode - add CMake/README.md for instructions - add header-only cmake target generator - map absl target to absl:: namespace
Diffstat (limited to 'absl/types')
-rw-r--r-- | absl/types/CMakeLists.txt | 153 |
1 files changed, 153 insertions, 0 deletions
diff --git a/absl/types/CMakeLists.txt b/absl/types/CMakeLists.txt new file mode 100644 index 000000000000..95b19fec3a39 --- /dev/null +++ b/absl/types/CMakeLists.txt @@ -0,0 +1,153 @@ +# +# 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 +# +# http://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. +# + +list(APPEND TYPES_PUBLIC_HEADERS + "any.h" + "bad_any_cast.h" + "bad_optional_access.h" + "optional.h" + "span.h" +) + + + +list(APPEND BAD_ANY_CAST_SRC + "bad_any_cast.cc" + ${TYPES_PUBLIC_HEADERS} +) +set(BAD_ANY_CAST_PUBLIC_LIBRARIES absl::base) + +absl_library( + TARGET + absl_bad_any_cast + SOURCES + ${BAD_ANY_CAST_SRC} + PUBLIC_LIBRARIES + ${BAD_ANY_CAST_PUBLIC_LIBRARIES} +) + + + +set(OPTIONAL_SRC "optional.cc") +set(OPTIONAL_PUBLIC_LIBRARIES absl::base) + +absl_library( + TARGET + absl_optional + SOURCES + ${OPTIONAL_SRC} + PUBLIC_LIBRARIES + ${OPTIONAL_PUBLIC_LIBRARIES} +) + + +set(BAD_OPTIONAL_ACCESS_SRC "bad_optional_access.cc") +set(BAD_OPTIONAL_ACCESS_LIBRARIES absl::base) + +absl_library( + TARGET + absl_bad_optional_access + SOURCES + ${BAD_OPTIONAL_ACCESS_SRC} + PUBLIC_LIBRARIES + ${BAD_OPTIONAL_ACCESS_PUBLIC_LIBRARIES} +) + + + +absl_header_library( + TARGET + absl_types + PUBLIC_LIBRARIES + absl_optional absl_bad_any_cast absl_bad_optional_access + EXPORT_NAME + types +) + +# +## TESTS +# + + +# test any_test +set(ANY_TEST_SRC "any_test.cc") +set(ANY_TEST_PUBLIC_LIBRARIES absl::base absl_throw_delegate absl_bad_any_cast test_instance_tracker_lib) + +absl_test( + TARGET + any_test + SOURCES + ${ANY_TEST_SRC} + PUBLIC_LIBRARIES + ${ANY_TEST_PUBLIC_LIBRARIES} + PRIVATE_COMPILE_FLAGS + ${ABSL_EXCEPTIONS_FLAG} +) + + +# test any_test_noexceptions +absl_test( + TARGET + any_test_noexceptions + SOURCES + ${ANY_TEST_SRC} + PUBLIC_LIBRARIES + ${ANY_TEST_PUBLIC_LIBRARIES} +) + + +# test span_test +set(SPAN_TEST_SRC "span_test.cc") +set(SPAN_TEST_PUBLIC_LIBRARIES absl::base absl::strings absl_throw_delegate absl_bad_any_cast test_instance_tracker_lib) + +absl_test( + TARGET + span_test + SOURCES + ${SPAN_TEST_SRC} + PUBLIC_LIBRARIES + ${SPAN_TEST_PUBLIC_LIBRARIES} + PRIVATE_COMPILE_FLAGS + ${ABSL_EXCEPTIONS_FLAG} +) + + +# test span_test_noexceptions +absl_test( + TARGET + span_test_noexceptions + SOURCES + ${SPAN_TEST_SRC} + PUBLIC_LIBRARIES + ${SPAN_TEST_PUBLIC_LIBRARIES} +) + + + +# test optional_test +set(OPTIONAL_TEST_SRC "optional_test.cc") +set(OPTIONAL_TEST_PUBLIC_LIBRARIES absl::base absl_throw_delegate absl_optional bad_optional_access) + +absl_test( + TARGET + optional_test + SOURCES + ${OPTIONAL_TEST_SRC} + PUBLIC_LIBRARIES + ${OPTIONAL_TEST_PUBLIC_LIBRARIES} +) + + |