cmake_minimum_required(VERSION 3.20) project(shadowsocks_consumer LANGUAGES C) set(SS_PACKAGE_NAME shadowsocks-c CACHE STRING "Installed package to test") find_package(${SS_PACKAGE_NAME} CONFIG REQUIRED) foreach(kind shared static) if(TARGET shadowsocks::${kind}) if(SS_PACKAGE_NAME STREQUAL "shadowsocks-libev") # Exercise legacy filenames as well as legacy package discovery. foreach(property IMPORTED_LOCATION IMPORTED_IMPLIB) get_target_property(location shadowsocks::${kind} ${property}) if(location) get_filename_component(directory "${location}" DIRECTORY) get_filename_component(filename "${location}" NAME) string(REPLACE "shadowsocks-c" "shadowsocks-libev" filename "${filename}") set_property(TARGET shadowsocks::${kind} PROPERTY ${property} "${directory}/${filename}") endif() endforeach() endif() add_executable(consumer_${kind} main.c) target_link_libraries(consumer_${kind} PRIVATE shadowsocks::${kind}) endif() endforeach()