FindOpenAL: Fix imported target for macOS framework

If a framework is found, specify it through `INTERFACE_LINK_LIBRARIES`
because `IMPORTED_LOCATION` requires a file and not a framework
directory.
This commit is contained in:
nega
2023-03-28 18:47:25 -04:00
committed by Brad King
parent f4b8176447
commit 5f5476ee31

View File

@@ -105,18 +105,16 @@ find_package_handle_standard_args(
mark_as_advanced(OPENAL_LIBRARY OPENAL_INCLUDE_DIR)
if(OPENAL_INCLUDE_DIR AND OPENAL_LIBRARY)
if(NOT TARGET OpenAL::OpenAL)
if(EXISTS "${OPENAL_LIBRARY}")
add_library(OpenAL::OpenAL UNKNOWN IMPORTED)
set_target_properties(OpenAL::OpenAL PROPERTIES
IMPORTED_LOCATION "${OPENAL_LIBRARY}")
else()
add_library(OpenAL::OpenAL INTERFACE IMPORTED)
set_target_properties(OpenAL::OpenAL PROPERTIES
IMPORTED_LIBNAME "${OPENAL_LIBRARY}")
endif()
if(OPENAL_FOUND AND NOT TARGET OpenAL::OpenAL)
if(OPENAL_LIBRARY MATCHES "/([^/]+)\\.framework$")
add_library(OpenAL::OpenAL INTERFACE IMPORTED)
set_target_properties(OpenAL::OpenAL PROPERTIES
INTERFACE_INCLUDE_DIRECTORIES "${OPENAL_INCLUDE_DIR}")
INTERFACE_LINK_LIBRARIES "${OPENAL_LIBRARY}")
else()
add_library(OpenAL::OpenAL UNKNOWN IMPORTED)
set_target_properties(OpenAL::OpenAL PROPERTIES
IMPORTED_LOCATION "${OPENAL_LIBRARY}")
endif()
set_target_properties(OpenAL::OpenAL PROPERTIES
INTERFACE_INCLUDE_DIRECTORIES "${OPENAL_INCLUDE_DIR}")
endif()