| # |
| # 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" |
| ) |
| |
| |
| |
| # synchronization 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::stacktrace absl::symbolize 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} |
| ) |
| |
| |
| |
| |
| |
| |
| |