1# - Find lame
2# Find the native lame includes and libraries
3#
4#  MP3LAME_INCLUDE_DIRS - where to find lame.h, etc.
5#  MP3LAME_LIBRARIES    - List of libraries when using lame.
6#  MP3LAME_FOUND        - True if Lame found.
7
8if (MP3LAME_INCLUDE_DIR)
9    # Already in cache, be silent
10    set(MP3LAME_FIND_QUIETLY TRUE)
11endif ()
12
13find_path (MP3LAME_INCLUDE_DIR lame/lame.h
14	HINTS
15		${LAME_ROOT}
16	)
17
18# MSVC built lame may be named mp3lame_static.
19# The provided project files name the library with the lib prefix.
20
21find_library (MP3LAME_LIBRARY
22	NAMES
23		mp3lame
24		mp3lame_static
25		libmp3lame
26		libmp3lame_static
27		libmp3lame-static
28	HINTS
29		${MP3LAME_ROOT}
30	)
31
32find_library (MP3LAME_HIP_LIBRARY
33	NAMES
34		mpghip-static
35		libmpghip-static
36	HINTS
37		${MP3LAME_ROOT}
38	)
39
40# Handle the QUIETLY and REQUIRED arguments and set LAME_FOUND
41# to TRUE if all listed variables are TRUE.
42include(FindPackageHandleStandardArgs)
43find_package_handle_standard_args (mp3lame
44	REQUIRED_VARS
45		MP3LAME_LIBRARY
46		MP3LAME_INCLUDE_DIR
47	)
48
49if (MP3LAME_FOUND)
50	set (MP3LAME_LIBRARIES ${MP3LAME_LIBRARY} ${MP3LAME_HIP_LIBRARY})
51	set (MP3LAME_INCLUDE_DIRS ${MP3LAME_INCLUDE_DIR})
52
53	if (NOT TARGET mp3lame::mp3lame)
54		add_library (mp3lame::mp3lame UNKNOWN IMPORTED)
55		set_target_properties (mp3lame::mp3lame PROPERTIES
56			INTERFACE_INCLUDE_DIRECTORIES "${MP3LAME_INCLUDE_DIRS}"
57			IMPORTED_LOCATION "${MP3LAME_LIBRARY}"
58		)
59		if (MP3LAME_HIP_LIBRARY AND (NOT TARGET mp3lame::mpghip))
60			add_library (mp3lame::mpghip STATIC IMPORTED)
61			set_property (mp3lame::mpghip PROPERTY IMPORTED_LOCATION "${MP3LAME_HIP_LIBRARY}")
62			set_property (TARGET mp3lame::mp3lame PROPERTY INTERFACE_LINK_LIBRARIES "mp3lame::mpghip")
63		endif ()
64	endif ()
65endif ()
66
67mark_as_advanced(MP3LAME_INCLUDE_DIR MP3LAME_LIBRARY MP3LAME_HIP_LIBRARY)
68