a682ed4c129a318938871c10f878657d80cb3e71
[platform/upstream/libvorbis.git] / lib / CMakeLists.txt
1 set(VORBIS_PUBLIC_HEADERS
2     ../include/vorbis/codec.h
3     ../include/vorbis/vorbisenc.h
4     ../include/vorbis/vorbisfile.h
5 )
6
7 set(VORBIS_HEADERS
8     envelope.h
9     lpc.h
10     lsp.h
11     codebook.h
12     misc.h
13     psy.h
14     masking.h
15     os.h
16     mdct.h
17     smallft.h
18     highlevel.h
19     registry.h
20     scales.h
21     window.h
22     lookup.h
23     lookup_data.h
24     codec_internal.h
25     backends.h
26     bitrate.h
27 )
28
29 set(VORBIS_SOURCES
30     mdct.c
31     smallft.c
32     block.c
33     envelope.c
34     window.c
35     lsp.c
36     lpc.c
37     analysis.c
38     synthesis.c
39     psy.c
40     info.c
41     floor1.c
42     floor0.c
43     res0.c
44     mapping0.c
45     registry.c
46     codebook.c
47     sharedbook.c
48     lookup.c
49     bitrate.c
50 )
51
52 set(VORBISFILE_SOURCES
53     vorbisfile.c
54 )
55
56 set(VORBISENC_SOURCES
57     vorbisenc.c
58 )
59
60 if(MSVC)
61     list(APPEND VORBIS_SOURCES ../win32/vorbis.def)
62     list(APPEND VORBISENC_SOURCES ../win32/vorbisenc.def)
63     list(APPEND VORBISFILE_SOURCES ../win32/vorbisfile.def)
64 endif()
65
66 include_directories(../include)
67 include_directories(.)
68 include_directories(${OGG_INCLUDE_DIRS})
69
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})
74
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})
81
82     target_link_libraries(vorbis ${OGG_LIBRARIES})
83     target_link_libraries(vorbisenc ${OGG_LIBRARIES} vorbis)
84     target_link_libraries(vorbisfile ${OGG_LIBRARIES} vorbis)
85
86     install(FILES ${VORBIS_PUBLIC_HEADERS} DESTINATION ${CMAKE_INSTALL_FULL_INCLUDEDIR}/vorbis)
87
88     install(TARGETS vorbis     RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} FRAMEWORK DESTINATION ${CMAKE_INSTALL_LIBDIR})
89     install(TARGETS vorbisenc  RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} FRAMEWORK DESTINATION ${CMAKE_INSTALL_LIBDIR})
90     install(TARGETS vorbisfile RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} FRAMEWORK DESTINATION ${CMAKE_INSTALL_LIBDIR})
91 else()
92     add_library(vorbis ${VORBIS_PUBLIC_HEADERS} ${VORBIS_HEADERS} ${VORBIS_SOURCES} ${VORBISFILE_SOURCES} ${VORBISENC_SOURCES})
93     set_target_properties(vorbis PROPERTIES
94         FRAMEWORK TRUE
95         FRAMEWORK_VERSION ${PROJECT_VERSION}
96         MACOSX_FRAMEWORK_IDENTIFIER org.xiph.vorbis
97         MACOSX_FRAMEWORK_SHORT_VERSION_STRING ${PROJECT_VERSION}
98         MACOSX_FRAMEWORK_BUNDLE_VERSION ${PROJECT_VERSION}
99         XCODE_ATTRIBUTE_INSTALL_PATH "@rpath"
100         PUBLIC_HEADER "${VORBIS_PUBLIC_HEADERS}"
101         OUTPUT_NAME Vorbis
102     )
103     target_link_libraries(vorbis ${OGG_LIBRARIES})
104 endif()