1 set(VORBIS_PUBLIC_HEADERS
2 ../include/vorbis/codec.h
3 ../include/vorbis/vorbisenc.h
4 ../include/vorbis/vorbisfile.h
52 set(VORBISFILE_SOURCES
61 list(APPEND VORBIS_SOURCES vorbisenc.c)
65 list(APPEND VORBIS_SOURCES ../win32/vorbis.def)
66 list(APPEND VORBISENC_SOURCES ../win32/vorbisenc.def)
67 list(APPEND VORBISFILE_SOURCES ../win32/vorbisfile.def)
70 if (NOT BUILD_FRAMEWORK)
71 add_library(vorbis ${VORBIS_HEADERS} ${VORBIS_SOURCES})
72 add_library(vorbisenc ${VORBISENC_SOURCES})
73 add_library(vorbisfile ${VORBISFILE_SOURCES})
75 get_version_info(VORBIS_VERSION_INFO "V_LIB_CURRENT" "V_LIB_AGE" "V_LIB_REVISION")
76 set_target_properties(vorbis PROPERTIES SOVERSION ${VORBIS_VERSION_INFO})
77 get_version_info(VORBISENC_VERSION_INFO "VE_LIB_CURRENT" "VE_LIB_AGE" "VE_LIB_REVISION")
78 set_target_properties(vorbisenc PROPERTIES SOVERSION ${VORBISENC_VERSION_INFO})
79 get_version_info(VORBISFILE_VERSION_INFO "VF_LIB_CURRENT" "VF_LIB_AGE" "VF_LIB_REVISION")
80 set_target_properties(vorbisfile PROPERTIES SOVERSION ${VORBISFILE_VERSION_INFO})
82 target_include_directories(vorbis
84 $<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/include>
85 $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>
87 ${CMAKE_CURRENT_SOURCE_DIR}
89 target_include_directories(vorbisenc
91 $<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/include>
92 $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>
94 ${CMAKE_CURRENT_SOURCE_DIR}
96 target_include_directories(vorbisfile
98 $<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/include>
99 $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>
102 target_link_libraries(vorbis
104 PRIVATE $<$<BOOL:${HAVE_LIBM}>:m>
106 target_link_libraries(vorbisenc PUBLIC vorbis)
107 target_link_libraries(vorbisfile PUBLIC vorbis)
109 install(FILES ${VORBIS_PUBLIC_HEADERS} DESTINATION ${CMAKE_INSTALL_FULL_INCLUDEDIR}/vorbis)
111 install(TARGETS vorbis vorbisenc vorbisfile
113 RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
114 LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
115 ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
116 FRAMEWORK DESTINATION ${CMAKE_INSTALL_LIBDIR}
119 if(INSTALL_CMAKE_PACKAGE_MODULE)
121 set(CMAKE_INSTALL_CONFIGDIR ${CMAKE_INSTALL_LIBDIR}/cmake/Vorbis)
123 install(EXPORT VorbisTargets
124 DESTINATION ${CMAKE_INSTALL_CONFIGDIR}
129 include(CMakePackageConfigHelpers)
131 configure_package_config_file(${PROJECT_SOURCE_DIR}/cmake/VorbisConfig.cmake.in ${PROJECT_BINARY_DIR}/VorbisConfig.cmake
132 INSTALL_DESTINATION ${CMAKE_INSTALL_CONFIGDIR}
135 write_basic_package_version_file(${PROJECT_BINARY_DIR}/VorbisConfigVersion.cmake
136 COMPATIBILITY SameMajorVersion
139 install(FILES ${PROJECT_BINARY_DIR}/VorbisConfig.cmake ${PROJECT_BINARY_DIR}/VorbisConfigVersion.cmake
140 DESTINATION ${CMAKE_INSTALL_CONFIGDIR}
145 add_library(vorbis ${VORBIS_PUBLIC_HEADERS} ${VORBIS_HEADERS} ${VORBIS_SOURCES} ${VORBISFILE_SOURCES} ${VORBISENC_SOURCES})
146 set_target_properties(vorbis PROPERTIES
148 FRAMEWORK_VERSION ${PROJECT_VERSION}
149 MACOSX_FRAMEWORK_IDENTIFIER org.xiph.vorbis
150 MACOSX_FRAMEWORK_SHORT_VERSION_STRING ${PROJECT_VERSION}
151 MACOSX_FRAMEWORK_BUNDLE_VERSION ${PROJECT_VERSION}
152 XCODE_ATTRIBUTE_INSTALL_PATH "@rpath"
153 PUBLIC_HEADER "${VORBIS_PUBLIC_HEADERS}"
156 target_link_libraries(vorbis ${OGG_LIBRARIES})