if (NOT TARGET pico_sync_headers) add_library(pico_sync_headers INTERFACE) target_include_directories(pico_sync_headers INTERFACE ${CMAKE_CURRENT_LIST_DIR}/include) target_link_libraries(pico_sync_headers INTERFACE hardware_sync pico_time) endif() if (NOT TARGET pico_sync_core) add_library(pico_sync_core INTERFACE) target_sources(pico_sync_core INTERFACE ${CMAKE_CURRENT_LIST_DIR}/lock_core.c ) target_link_libraries(pico_sync_core INTERFACE pico_sync_headers) endif() if (NOT TARGET pico_sync_sem) add_library(pico_sync_sem INTERFACE) target_sources(pico_sync_sem INTERFACE ${CMAKE_CURRENT_LIST_DIR}/sem.c ) target_link_libraries(pico_sync_sem INTERFACE pico_sync_core pico_time) endif() if (NOT TARGET pico_sync_mutex) add_library(pico_sync_mutex INTERFACE) target_sources(pico_sync_mutex INTERFACE ${CMAKE_CURRENT_LIST_DIR}/mutex.c ) target_link_libraries(pico_sync_mutex INTERFACE pico_sync_core pico_time) endif() if (NOT TARGET pico_sync_critical_section) add_library(pico_sync_critical_section INTERFACE) target_sources(pico_sync_critical_section INTERFACE ${CMAKE_CURRENT_LIST_DIR}/critical_section.c ) target_link_libraries(pico_sync_critical_section INTERFACE pico_sync_core pico_time) endif() if (NOT TARGET pico_sync) add_library(pico_sync INTERFACE) target_link_libraries(pico_sync INTERFACE pico_sync_sem pico_sync_mutex pico_sync_critical_section pico_sync_core) endif()