# # 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} )