@@ -67,10 +67,6 @@ if(MSVC)
6767 list (APPEND VORBISFILE_SOURCES ../win32 /vorbisfile.def)
6868endif ()
6969
70- include_directories (../include )
71- include_directories (.)
72- include_directories (${OGG_INCLUDE_DIRS} )
73-
7470if (NOT BUILD_FRAMEWORK)
7571 add_library (vorbis ${VORBIS_HEADERS} ${VORBIS_SOURCES} )
7672 add_library (vorbisenc ${VORBISENC_SOURCES} )
@@ -83,15 +79,68 @@ if (NOT BUILD_FRAMEWORK)
8379 get_version_info(VORBISFILE_VERSION_INFO "VF_LIB_CURRENT" "VF_LIB_AGE" "VF_LIB_REVISION" )
8480 set_target_properties (vorbisfile PROPERTIES SOVERSION ${VORBISFILE_VERSION_INFO} )
8581
86- target_link_libraries (vorbis ${OGG_LIBRARIES} )
87- target_link_libraries (vorbisenc ${OGG_LIBRARIES} vorbis)
88- target_link_libraries (vorbisfile ${OGG_LIBRARIES} vorbis)
82+ target_include_directories (vorbis
83+ PUBLIC
84+ $<BUILD_INTERFACE:${PROJECT_SOURCE_DIR} /include >
85+ $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR} >
86+ PRIVATE
87+ ${CMAKE_CURRENT_SOURCE_DIR}
88+ )
89+ target_include_directories (vorbisenc
90+ PUBLIC
91+ $<BUILD_INTERFACE:${PROJECT_SOURCE_DIR} /include >
92+ $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR} >
93+ PRIVATE
94+ ${CMAKE_CURRENT_SOURCE_DIR}
95+ )
96+ target_include_directories (vorbisfile
97+ PUBLIC
98+ $<BUILD_INTERFACE:${PROJECT_SOURCE_DIR} /include >
99+ $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR} >
100+ )
101+
102+ target_link_libraries (vorbis
103+ PUBLIC Ogg::ogg
104+ PRIVATE $<$<BOOL :${HAVE_LIBM} >:m>
105+ )
106+ target_link_libraries (vorbisenc PUBLIC vorbis)
107+ target_link_libraries (vorbisfile PUBLIC vorbis)
108+
109+ install (FILES ${VORBIS_PUBLIC_HEADERS} DESTINATION ${CMAKE_INSTALL_FULL_INCLUDEDIR} /Vorbis)
110+
111+ install (TARGETS vorbis vorbisenc vorbisfile
112+ EXPORT VorbisTargets
113+ RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
114+ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
115+ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
116+ FRAMEWORK DESTINATION ${CMAKE_INSTALL_LIBDIR}
117+ )
118+
119+ if (INSTALL_CMAKE_PACKAGE_MODULE)
120+
121+ set (CMAKE_INSTALL_CONFIGDIR ${CMAKE_INSTALL_LIBDIR} /cmake/Vorbis)
122+
123+ install (EXPORT VorbisTargets
124+ DESTINATION ${CMAKE_INSTALL_CONFIGDIR}
125+ NAMESPACE Vorbis::
126+ )
127+
128+
129+ include (CMakePackageConfigHelpers)
130+
131+ configure_package_config_file(${PROJECT_SOURCE_DIR} /cmake/VorbisConfig.cmake.in ${PROJECT_BINARY_DIR} /VorbisConfig.cmake
132+ INSTALL_DESTINATION ${CMAKE_INSTALL_CONFIGDIR}
133+ )
134+
135+ write_basic_package_version_file(${PROJECT_BINARY_DIR} /VorbisConfigVersion.cmake
136+ COMPATIBILITY SameMajorVersion
137+ )
89138
90- install (FILES ${VORBIS_PUBLIC_HEADERS} DESTINATION ${CMAKE_INSTALL_FULL_INCLUDEDIR} /vorbis)
139+ install (FILES ${PROJECT_BINARY_DIR} /VorbisConfig.cmake ${PROJECT_BINARY_DIR} /VorbisConfigVersion.cmake
140+ DESTINATION ${CMAKE_INSTALL_CONFIGDIR}
141+ )
91142
92- install (TARGETS vorbis RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} FRAMEWORK DESTINATION ${CMAKE_INSTALL_LIBDIR} )
93- install (TARGETS vorbisenc RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} FRAMEWORK DESTINATION ${CMAKE_INSTALL_LIBDIR} )
94- install (TARGETS vorbisfile RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} FRAMEWORK DESTINATION ${CMAKE_INSTALL_LIBDIR} )
143+ endif ()
95144else ()
96145 add_library (vorbis ${VORBIS_PUBLIC_HEADERS} ${VORBIS_HEADERS} ${VORBIS_SOURCES} ${VORBISFILE_SOURCES} ${VORBISENC_SOURCES} )
97146 set_target_properties (vorbis PROPERTIES
0 commit comments