# This file is part of Desktop App Toolkit, # a set of libraries for developing nice desktop applications. # # For license and copyright information please follow this link: # https://github.com/desktop-app/legal/blob/master/LEGAL function(target_link_static_libraries target_name) set(list ${ARGV}) list(REMOVE_AT list 0) set(writing_now "") set(private_libs "") set(public_libs "") set(interface_libs "") set(ignore_nonexisting 0) set(ignored_libs "") foreach (entry ${list}) if (${entry} STREQUAL "PRIVATE" OR ${entry} STREQUAL "PUBLIC" OR ${entry} STREQUAL "INTERFACE") set(writing_now ${entry}) elseif (${entry} STREQUAL "IGNORE_NONEXISTING") set(ignore_nonexisting 1) else() find_library(static_lib_${entry} lib${entry}.a) set(full_path "${static_lib_${entry}}") if (${full_path} STREQUAL static_lib_${entry}-NOTFOUND) if (ignore_nonexisting) if (NOT entry IN_LIST ignored_libs) message(VERBOSE "Could not find static library lib${entry}.a, using shared one...") list(APPEND ignored_libs ${entry}) endif() if (APPLE) find_library(shared_lib_${entry} lib${entry}.dylib) set(full_path "${shared_lib_${entry}}") if (${full_path} STREQUAL shared_lib_${entry}-NOTFOUND) message(FATAL_ERROR "Could not find shared library lib${entry}.dylib") endif() else() set(full_path ${entry}) endif() else() message(FATAL_ERROR "Could not find static library lib${entry}.a") endif() endif() if ("${writing_now}" STREQUAL "PRIVATE") list(APPEND private_libs ${full_path}) elseif ("${writing_now}" STREQUAL "PUBLIC") list(APPEND public_libs ${full_path}) elseif ("${writing_now}" STREQUAL "INTERFACE") list(APPEND interface_libs ${full_path}) else() message(FATAL_ERROR "Unknown frameworks scope for target ${target_name}") endif() endif() endforeach() if (NOT "${public_libs}" STREQUAL "") target_link_libraries(${target_name} PUBLIC ${public_libs}) endif() if (NOT "${private_libs}" STREQUAL "") target_link_libraries(${target_name} PRIVATE ${private_libs}) endif() if (NOT "${interface_libs}" STREQUAL "") target_link_libraries(${target_name} INTERFACE ${interface_libs}) endif() endfunction()