From d5134a7f11e32d11caa67e75ae2ae2e506fb54ba Mon Sep 17 00:00:00 2001 From: Adrien Devresse Date: Tue, 26 Sep 2017 20:37:27 -0700 Subject: 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 --- absl/synchronization/CMakeLists.txt | 154 ++++++++++++++++++++++++++++++++++++ 1 file changed, 154 insertions(+) create mode 100644 absl/synchronization/CMakeLists.txt (limited to 'absl/synchronization/CMakeLists.txt') diff --git a/absl/synchronization/CMakeLists.txt b/absl/synchronization/CMakeLists.txt new file mode 100644 index 0000000..c5c4c62 --- /dev/null +++ b/absl/synchronization/CMakeLists.txt @@ -0,0 +1,154 @@ +# +# 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 SYNCHRONIZATION_PUBLIC_HEADERS + "barrier.h" + "blocking_counter.h" + "mutex.h" + "notification.h" +) + + +list(APPEND SYNCHRONIZATION_INTERNAL_HEADERS + "internal/create_thread_identity.h" + "internal/graphcycles.h" + "internal/kernel_timeout.h" + "internal/per_thread_sem.h" + "internal/thread_pool.h" + "internal/waiter.h" +) + + + +# syncrhonisation library +list(APPEND SYNCHRONIZATION_SRC + "barrier.cc" + "blocking_counter.cc" + "internal/create_thread_identity.cc" + "internal/per_thread_sem.cc" + "internal/waiter.cc" + "internal/graphcycles.cc" + "notification.cc" + "mutex.cc" +) +set(SYNCHRONIZATION_PUBLIC_LIBRARIES absl::base absl_malloc_extension absl::time) + +absl_library( + TARGET + absl_synchronization + SOURCES + ${SYNCHRONIZATION_SRC} + PUBLIC_LIBRARIES + ${SYNCHRONIZATION_PUBLIC_LIBRARIES} + EXPORT_NAME + synchronization +) + + +# +## TESTS +# + + +# test barrier_test +set(BARRIER_TEST_SRC "barrier_test.cc") +set(BARRIER_TEST_PUBLIC_LIBRARIES absl::synchronization) + +absl_test( + TARGET + barrier_test + SOURCES + ${BARRIER_TEST_SRC} + PUBLIC_LIBRARIES + ${BARRIER_TEST_PUBLIC_LIBRARIES} +) + + +# test blocking_counter_test +set(BLOCKING_COUNTER_TEST_SRC "blocking_counter_test.cc") +set(BLOCKING_COUNTER_TEST_PUBLIC_LIBRARIES absl::synchronization) + +absl_test( + TARGET + blocking_counter_test + SOURCES + ${BLOCKING_COUNTER_TEST_SRC} + PUBLIC_LIBRARIES + ${BLOCKING_COUNTER_TEST_PUBLIC_LIBRARIES} +) + + +# test graphcycles_test +set(GRAPHCYCLES_TEST_SRC "internal/graphcycles_test.cc") +set(GRAPHCYCLES_TEST_PUBLIC_LIBRARIES absl::synchronization) + +absl_test( + TARGET + graphcycles_test + SOURCES + ${GRAPHCYCLES_TEST_SRC} + PUBLIC_LIBRARIES + ${GRAPHCYCLES_TEST_PUBLIC_LIBRARIES} +) + + +# test mutex_test +set(MUTEX_TEST_SRC "mutex_test.cc") +set(MUTEX_TEST_PUBLIC_LIBRARIES absl::synchronization) + +absl_test( + TARGET + mutex_test + SOURCES + ${MUTEX_TEST_SRC} + PUBLIC_LIBRARIES + ${MUTEX_TEST_PUBLIC_LIBRARIES} +) + + +# test notification_test +set(NOTIFICATION_TEST_SRC "notification_test.cc") +set(NOTIFICATION_TEST_PUBLIC_LIBRARIES absl::synchronization) + +absl_test( + TARGET + notification_test + SOURCES + ${NOTIFICATION_TEST_SRC} + PUBLIC_LIBRARIES + ${NOTIFICATION_TEST_PUBLIC_LIBRARIES} +) + + +# test per_thread_sem_test_common +set(PER_THREAD_SEM_TEST_COMMON_SRC "internal/per_thread_sem_test.cc") +set(PER_THREAD_SEM_TEST_COMMON_PUBLIC_LIBRARIES absl::synchronization absl::strings) + +absl_test( + TARGET + per_thread_sem_test_common + SOURCES + ${PER_THREAD_SEM_TEST_COMMON_SRC} + PUBLIC_LIBRARIES + ${PER_THREAD_SEM_TEST_COMMON_PUBLIC_LIBRARIES} +) + + + + + + + -- cgit v1.2.3