add_subdirectory(generic) if(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/${LIBC_TARGET_ARCHITECTURE}) add_subdirectory(${LIBC_TARGET_ARCHITECTURE}) endif() function(add_vector_math_entrypoint_object name) # We prefer machine specific implementation if available. Hence we check # that first and return early if we are able to add an alias target for the # machine specific implementation. get_fq_target_name("${LIBC_TARGET_ARCHITECTURE}.${name}" fq_machine_specific_target_name) if(TARGET ${fq_machine_specific_target_name}) add_entrypoint_object( ${name} ALIAS DEPENDS .${LIBC_TARGET_ARCHITECTURE}.${name} ) return() endif() get_fq_target_name("generic.${name}" fq_generic_target_name) if(TARGET ${fq_generic_target_name}) add_entrypoint_object( ${name} ALIAS DEPENDS .generic.${name} ) return() endif() # Add a dummy entrypoint object for missing implementations. They will be skipped # anyway as there will be no entry for them in the target entrypoints list. add_entrypoint_object( ${name} SRCS dummy_srcs HDRS dummy_hdrs ) endfunction() add_vector_math_entrypoint_object(expf)