source: mediastreamer2/src/CMakeLists.txt @ 1443:95f48b2b5385

Last change on this file since 1443:95f48b2b5385 was 1443:95f48b2b5385, checked in by Nikita Kozlov <nikita@…>, 14 months ago

if speex is not found in root_path, use the internal one

File size: 5.2 KB
Line 
1set(PACKAGE "mediastreamer2")
2set(PACKAGE_BUGREPORT "mediastreamer2")
3set(PACKAGE_NAME "mediastreamer2")
4set(PACKAGE_STRING "${PACKAGE} ${ORTP_VERSION}")
5set(PACKAGE_PLUGINS_DIR "plugins/")
6
7if(ANDROID)
8  set(CMAKE_THREAD_LIBS_INIT "-lc")
9  set(MS_LIBS ${MS_LIBS} m log)
10  add_definitions(-DANDROID)
11endif()
12include(FindThreads)
13
14set(MS_SRCS mscommon.c msfilter.c msqueue.c msticker.c alaw.c ulaw.c mssndcard.c msrtp.c
15        dtmfgen.c ice.c tee.c msconf.c msjoin.c msvolume.c mswebcam.c mtu.c void.c eventqueue.c
16        dsptools.c kiss_fft.c  kiss_fftr.c equalizer.c audiostream.c tonedetector.c itc.c audiomixer.c)
17
18if(NOT ENABLE_VIDEO)
19  list(REMOVE_ITEM MS_SRCS mswebcam.c)
20else(NOT ENABLE_VIDEO)
21  add_definitions(-DVIDEO_ENABLED)
22endif(NOT ENABLE_VIDEO)
23
24add_definitions(-DMS2_INTERNAL)
25if(USE_CSL)
26add_definitions(-DHAVE_CSL)
27endif(USE_CSL)
28
29if(LINUX AND NOT ANDROID)
30  set(MS_SRCS ${MS_SRCS} oss.c)
31  find_library(ALSA  asound)
32  if (ALSA)
33    set(MS_SRCS  ${MS_SRCS} alsa.c)
34    set(MS_LIBS  ${MS_LIBS} ${ALSA})
35    add_definitions(-D__ALSA_ENABLED__)
36  endif(ALSA)
37  add_definitions(-DHAVE_DLOPEN)
38endif(LINUX AND NOT ANDROID)
39
40if(ANDROID)
41  set(MS_SRCS  ${MS_SRCS} msandroid.cpp msjava.c)
42
43  add_definitions(
44          -include${CMAKE_CURRENT_SOURCE_DIR}/../build/android/libmediastreamer2_AndroidConfig.h)
45  include_directories("${CMAKE_CURRENT_SOURCE_DIR}/../build/android" dummy .)
46
47  if (USE_WEBRTC)
48    set(MS_SRCS  ${MS_SRCS} msandroid_webrtc.cpp)
49    #set(MS_SRCS  ${MS_SRCS} audio_device_android_jni.cc audio_device_buffer.cc
50    #     file_impl.cc audio_device_utility.cc thread.cc thread_posix.cc
51    #     critical_section_posix.cc critical_section.cc event_posix.cc
52    #     event.cc audio_device_generic.cc audio_device_impl.cc
53    #     dummy/audio_device_dummy.cc dummy/audio_device_utility_dummy.cc
54    #     audio_device_utility_android.cc atomic32.cc msandroid_webrtc.cpp)
55    add_definitions(-DWEBRTC_ANDROID -DWEBRTC_CLOCK_TYPE_REALTIME
56          -DWEBRTC_LINUX)
57  endif()
58
59endif()
60
61add_definitions(-DMS2_INTERNAL)
62
63if(WIN32)
64  include_directories(../build/win32native/)
65  set(MS_SRCS ${MS_SRCS} winsnd3.c msfileplayer_win.c msfilerec_win.c)
66else(WIN32)
67  set(MS_SRCS ${MS_SRCS} msfileplayer.c msfilerec.c)
68endif(WIN32)
69
70find_file(GSM_GSM_H gsm/gsm.h PATHS ${GSM_INCLUDE_DIRS})
71if(GSM_GSM_H)
72  find_library(GSM_LIB gsm)
73endif(GSM_GSM_H)
74
75if(GSM_LIB)
76  include_directories(${GSM_INCLUDE_DIRS})
77  set(MS_LIBS ${MS_LIBS} ${GSM_LIB})
78  set(MS_SRCS ${MS_SRCS} gsm.c)
79else(GSM_LIB)
80  include_directories(${GSM_INCLUDE_DIRS})
81  set(MS_LIBS ${MS_LIBS} ${GSM_LIBRARIES})
82  set(MS_SRCS ${MS_SRCS} gsm.c)
83endif(GSM_LIB)
84
85find_file(SPEEX_H speex/speex.h PATHS ${SPEEX_INCLUDE_DIRS})
86if(NOT SPEEX_H)
87  set(SPEEX_H "${SPEEX_INCLUDE_DIRS}/speex/speex.h")
88endif()
89
90
91if(SPEEX_H)
92  set(MS_LIBS  ${MS_LIBS} ${SPEEX_LIBRARIES} ${SPEEXDSP_LIBRARIES})
93  set(MS_SRCS ${MS_SRCS} msspeex.c msresample.c speexec.c)
94  include_directories(${SPEEX_INCLUDE_DIRS})
95else(SPEEX_H)
96  add_definitions(-DDISABLE_SPEEX)
97endif(SPEEX_H)
98
99if(PORTAUDIO_FOUND)
100  add_definitions(
101    -D__PORTAUDIO_ENABLED__
102  )
103  include_directories(${PORTAUDIO_INCLUDE_DIRS})
104  set(MS_SRCS  ${MS_SRCS} pasnd.c)
105  set(MS_LIBS  ${MS_LIBS} ${PORTAUDIO_LIBRARIES})
106endif(PORTAUDIO_FOUND)
107
108if(NOT CMAKE_UNDER_CE)
109        TEST_BIG_ENDIAN(BIG_ENDIAN)
110        if(BIG_ENDIAN)
111          add_definitions(
112                -DORTP_BIGENDIAN
113                -DWORDS_BIGENDIAN
114          )
115        endif(BIG_ENDIAN)
116endif(NOT CMAKE_UNDER_CE)
117
118if(NOT WIN32 AND NOT ANDROID)
119        # We want to generated the alldescs.h file
120        # Step 1:
121        #   Find all calls to MS_FILTER_DESC_EXPORT macro in the source file and extract the arguments
122        foreach(f ${MS_SRCS})
123         file(READ ${f} fc)
124         string(REGEX MATCHALL "MS_FILTER_DESC_EXPORT[(][^\n]*_desc[)]" mcs ${fc})
125         message("matches for ${f} are ${mcs} .")
126         set(fds ${fds} ${mcs})
127        endforeach(f)
128
129        string(REPLACE "MS_FILTER_DESC_EXPORT\(" "" fds ${fds})
130        string(REPLACE "\)" " " fds ${fds})
131        string(REPLACE "\n" "" fds ${fds})
132        string(REPLACE " " ";" fds ${fds})
133        set(fds ${fds})
134
135        # Here the 'fds' variable contains the list of filter names
136        #message("fds = ${fds}")
137
138        # Step 2:  Generate the file which refernces all the descriptors
139        set(fn "${CMAKE_CURRENT_BINARY_DIR}/alldescs.h")
140        file(WRITE ${fn} "#include \"mediastreamer2/msfilter.h\"\n\n")
141        foreach(fd ${fds})
142          file(APPEND ${fn} "extern MSFilterDesc ${fd};\n")
143        endforeach(fd)
144        file(APPEND ${fn} "MSFilterDesc *ms_filter_descs[]={\n")
145        foreach(fd ${fds})
146          file(APPEND ${fn} "&${fd},\n")
147        endforeach(fd)
148        file(APPEND ${fn} "0\n};\n")
149endif()
150
151if(IOS)
152  add_definitions(-D__MACIOUNIT_ENABLED__)
153  set(MS_SRCS  ${MS_SRCS} msiounit.c)
154endif()
155
156if(NOT ANDROID)
157  configure_file("${CMAKE_CURRENT_SOURCE_DIR}/mediastreamer-config.h.cmake" "${CMAKE_CURRENT_BINARY_DIR}/mediastreamer-config.h")
158  add_definitions(
159        -DHAVE_CONFIG_H
160        )
161endif()
162
163include_directories(${mediastreamer_SOURCE_DIR}/include ${CMAKE_CURRENT_BINARY_DIR} ${ORTP_INCLUDE_DIRS})
164set(MEDIASTREAMER_INCLUDE_DIRS ${mediastreamer_SOURCE_DIR}/include CACHE STRING "mediastreamer2 include dir")
165
166add_library(mediastreamer SHARED ${MS_SRCS})
167if(NOT ANDROID)
168set_target_properties(mediastreamer PROPERTIES VERSION ${MEDIASTREAMER_VERSION_STRING} SOVERSION
169  ${MEDIASTREAMER_VERSION_STRING})
170endif()
171target_link_libraries(mediastreamer ${MS_LIBS} ${ORTP_LIBRARIES})
172set(MEDIASTREAMER_LIBRARIES mediastreamer CACHE STRING "mediastreamer2 libraries")
Note: See TracBrowser for help on using the repository browser.