source: mediastreamer2/src/CMakeLists.txt @ 1078:6775146d7750

Last change on this file since 1078:6775146d7750 was 1078:6775146d7750, checked in by Nikita Kozlov <nikita@…>, 2 years ago

new log funcs for phapi

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