source: mediastreamer2/src/CMakeLists.txt @ 1411:0b9798565433

Last change on this file since 1411:0b9798565433 was 1411:0b9798565433, checked in by Nikita Kozlov <nikita@…>, 2 years ago

add missing lib during linking for android

File size: 4.3 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)
17
18add_definitions(-DMS2_INTERNAL)
19if(USE_CSL)
20add_definitions(-DHAVE_CSL)
21endif(USE_CSL)
22
23if(LINUX AND NOT ANDROID)
24  set(MS_SRCS ${MS_SRCS} oss.c)
25  find_library(ALSA  asound)
26  if (ALSA)
27    set(MS_SRCS  ${MS_SRCS} alsa.c)
28    set(MS_LIBS  ${MS_LIBS} ${ALSA})
29    add_definitions(-D__ALSA_ENABLED__)
30  endif(ALSA)
31  add_definitions(-DHAVE_DLOPEN)
32endif(LINUX AND NOT ANDROID)
33
34if(ANDROID)
35  set(MS_SRCS  ${MS_SRCS} msandroid.cpp msjava.c)
36  include_directories("${CMAKE_CURRENT_SOURCE_DIR}/../build/android")
37endif()
38
39if(WIN32)
40  include_directories(../build/win32native/)
41  set(MS_SRCS ${MS_SRCS} winsnd3.c ../build/win32native/mediastreamer2.def msfileplayer_win.c msfilerec_win.c)
42 
43else(WIN32)
44  set(MS_SRCS ${MS_SRCS} msfileplayer.c msfilerec.c)
45endif(WIN32)
46
47find_file(GSM_GSM_H gsm/gsm.h PATHS ${GSM_INCLUDE_DIRS})
48if(GSM_GSM_H)
49  find_library(GSM_LIB gsm)
50endif(GSM_GSM_H)
51
52if(GSM_LIB)
53  include_directories(${GSM_INCLUDE_DIRS})
54  set(MS_LIBS ${MS_LIBS} ${GSM_LIB})
55  set(MS_SRCS ${MS_SRCS} gsm.c)
56else(GSM_LIB)
57  include_directories(${GSM_INCLUDE_DIRS})
58  set(MS_LIBS ${MS_LIBS} ${GSM_LIBRARIES})
59  set(MS_SRCS ${MS_SRCS} gsm.c)
60endif(GSM_LIB)
61
62find_file(SPEEX_H speex/speex.h PATHS ${SPEEX_INCLUDE_DIRS})
63if(SPEEX_H)
64  set(MS_LIBS  ${MS_LIBS} ${SPEEX_LIBRARIES} ${SPEEXDSP_LIBRARIES})
65  set(MS_SRCS ${MS_SRCS} msspeex.c msresample.c speexec.c)
66  include_directories(${SPEEX_INCLUDE_DIRS})
67else(SPEEX_H)
68  add_definitions(-DDISABLE_SPEEX)
69endif(SPEEX_H)
70
71if(PORTAUDIO_FOUND)
72  add_definitions(
73    -D__PORTAUDIO_ENABLED__
74  )
75  set(MS_SRCS  ${MS_SRCS} pasnd.c)
76  set(MS_LIBS  ${MS_LIBS} ${PORTAUDIO_LIBRARIES})
77endif(PORTAUDIO_FOUND)
78
79if(NOT CMAKE_UNDER_CE AND NOT IPHONE)
80        TEST_BIG_ENDIAN(BIG_ENDIAN)
81        if(BIG_ENDIAN)
82          add_definitions(
83                -DORTP_BIGENDIAN
84                -DWORDS_BIGENDIAN
85          )
86        endif(BIG_ENDIAN)
87endif(NOT CMAKE_UNDER_CE AND NOT IPHONE)
88
89if(NOT WIN32 AND NOT ANDROID)
90        # We want to generated the alldescs.h file
91        # Step 1:
92        #   Find all calls to MS_FILTER_DESC_EXPORT macro in the source file and extract the arguments
93        foreach(f ${MS_SRCS})
94         file(READ ${f} fc)
95         string(REGEX MATCHALL "MS_FILTER_DESC_EXPORT[(][^\n]*_desc[)]" mcs ${fc})
96         message("matches for ${f} are ${mcs} .")
97         set(fds ${fds} ${mcs})
98        endforeach(f)
99
100        string(REPLACE "MS_FILTER_DESC_EXPORT\(" "" fds ${fds})
101        string(REPLACE "\)" " " fds ${fds})
102        string(REPLACE "\n" "" fds ${fds})
103        string(REPLACE " " ";" fds ${fds})
104        set(fds ${fds})
105
106        # Here the 'fds' variable contains the list of filter names
107        #message("fds = ${fds}")
108
109        # Step 2:  Generate the file which refernces all the descriptors
110        set(fn "${CMAKE_CURRENT_BINARY_DIR}/alldescs.h")
111        file(WRITE ${fn} "#include \"mediastreamer2/msfilter.h\"\n\n")
112        foreach(fd ${fds})
113          file(APPEND ${fn} "extern MSFilterDesc ${fd};\n")
114        endforeach(fd)
115        file(APPEND ${fn} "MSFilterDesc *ms_filter_descs[]={\n")
116        foreach(fd ${fds})
117          file(APPEND ${fn} "&${fd},\n")
118        endforeach(fd)
119        file(APPEND ${fn} "0\n};\n")
120endif()
121
122if(IPHONE)
123  add_definitions(-D__MACIOUNIT_ENABLED__)
124  set(MS_SRCS  ${MS_SRCS} msiounit.c)
125endif()
126
127configure_file("${CMAKE_CURRENT_SOURCE_DIR}/mediastreamer-config.h.cmake" "${CMAKE_CURRENT_BINARY_DIR}/mediastreamer-config.h")
128add_definitions(
129        -DHAVE_CONFIG_H
130        )
131
132include_directories(${mediastreamer_SOURCE_DIR}/include ${CMAKE_CURRENT_BINARY_DIR} ${ORTP_INCLUDE_DIRS})
133set(MEDIASTREAMER_INCLUDE_DIRS ${mediastreamer_SOURCE_DIR}/include CACHE STRING "mediastreamer2 include dir")
134
135add_library(mediastreamer SHARED ${MS_SRCS})
136if(NOT ANDROID)
137set_target_properties(mediastreamer PROPERTIES VERSION ${MEDIASTREAMER_VERSION_STRING} SOVERSION
138  ${MEDIASTREAMER_VERSION_STRING})
139endif()
140target_link_libraries(mediastreamer ${MS_LIBS} ${ORTP_LIBRARIES})
141set(MEDIASTREAMER_LIBRARIES mediastreamer CACHE STRING "mediastreamer2 libraries")
Note: See TracBrowser for help on using the repository browser.