Removing obsolete tests
[svc.git] / CMakeLists.txt
blob2827027c074f1bd6f818c8928d518df17c23767a
1 cmake_minimum_required(VERSION 2.8)
3 PROJECT(SVC C)
4 IF("${AUDIO_API}" STREQUAL "")
5         SET(AUDIO_API "portaudio")
6 ENDIF("${AUDIO_API}" STREQUAL "")
8 SET(ENV_CFLAGS $ENV{CFLAGS})
9 IF(NOT CFLAGS)
10         SET(CFLAGS ${ENV_CFLAGS})
11 ENDIF(NOT CFLAGS)
13 SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -g -std=c89 -Wall ${CFLAGS} -D_XOPEN_SOURCE=501L")
15 # tell where to look for additional cmake modules
16 SET(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake/")
18 OPTION(BUILD_SHARED     "Build libsvc as a shared library" OFF)
19 OPTION(BUILD_ENET_SVC   "Build SVC ENet client/server" OFF)
20 OPTION(BUILD_TESTS      "Build libsvc tests" OFF)
21 OPTION(BUILD_P2P        "Build libsvc P2P simple client" ON)
23 OPTION(BUILD_SVCD       "Build SVC daemon" ON)
24 OPTION(BUILD_SVCDC      "Build SVC daemon cli controller" ON)
25 OPTION(BUILD_SVCC       "Build SVC client" ON)
26 OPTION(BUILD_SVCCC      "Build SVC client cli controller" ON)
29 FIND_PACKAGE(Celt REQUIRED)
30 FIND_PACKAGE(ENet REQUIRED)
31 FIND_PACKAGE(PortAudio REQUIRED)
33 FIND_PACKAGE(Jack REQUIRED)
34 #FIND_PACKAGE(OSS REQUIRED)
35 IF(NOT CMAKE_HOST_WIN32)
36         # those scripts will fail on windows
37         FIND_PACKAGE(ALSA REQUIRED)
38 ENDIF(NOT CMAKE_HOST_WIN32)
40 # correct pthread to use
41 IF(CMAKE_HOST_WIN32)
42         find_library(PTHREAD_WIN32 pthreadGC2)
43         IF(NOT PTHREAD_WIN32)
44                 MESSAGE(FATAL_ERROR "Win32 SVC needs pthread-win32")
45         ENDIF(NOT PTHREAD_WIN32)
46         
47         SET(PTHREAD_LIB "${PTHREAD_WIN32}")
48 ELSE(CMAKE_HOST_WIN32)
49         SET(PTHREAD_LIB "pthread")
50 ENDIF(CMAKE_HOST_WIN32)
53 # check if ENet SVC client and server should be built
54 IF(BUILD_ENET_SVC)
55         
56         MESSAGE(STATUS "SVC ENet client/server enabled")
57         IF(NOT ENET_LIBRARIES)
58                 MESSAGE(FATAL_ERROR "Can't build  SVC ENet client/server without ENet")
59         ENDIF(NOT ENET_LIBRARIES)
60         
61 ELSE(BUILD_ENET_SVC)
62         
63         MESSAGE(STATUS "SVC ENet client/server disabled.")
64         
65 ENDIF(BUILD_ENET_SVC)
69 # Select AUDIO API
70 IF("${AUDIO_API}" STREQUAL "portaudio")
71         MESSAGE(STATUS "Using PortAudio backend")
72         
73         IF(NOT PORTAUDIO_LIBRARIES)
74                 MESSAGE(FATAL_ERROR "Can't use PortAudio backend, libraries not found.")
75         ENDIF(NOT PORTAUDIO_LIBRARIES)
76         
77         SET(AUDIOAPI_LIBRARIES ${PORTAUDIO_LIBRARIES})
78 ELSEIF("${AUDIO_API}" STREQUAL "jack")
79         MESSAGE(STATUS "Using Jack backend")
80         
81         IF(NOT JACK_LIBRARIES)
82                 MESSAGE(FATAL_ERROR "Can't use Jack backed, libraries not found.")
83         ENDIF(NOT JACK_LIBRARIES)
84         
85         SET(AUDIOAPI_LIBRARIES ${JACK_LIBRARIES})
86 ELSEIF("${AUDIO_API}" STREQUAL "oss")
87         MESSAGE(STATUS "Using OSS backend")
89         IF(OSS_INCLUDES)
90                 MESSAGE(STATUS "OSS_INCLUDES is '${OSS_INCLUDES}'")
91         ELSE(OSS_INCLUDES)
92                 MESSAGE(STATUS "-DOSS_INCLUDES missing, using default include path")
93         ENDIF(OSS_INCLUDES)
94         
95         SET(AUDIOAPI_LIBRARIES "")
96 ELSEIF("${AUDIO_API}" STREQUAL "alsa")
97         MESSAGE(STATUS "Using ALSA backend")
98         
99         IF(NOT ALSA_LIBRARIES)
100                 MESSAGE(FATAL_ERROR "Can't use ALSA backed, libraries not found.")
101         ENDIF(NOT ALSA_LIBRARIES)
102         
103         SET(AUDIOAPI_LIBRARIES ${ALSA_LIBRARIES})
104 ELSEIF("${AUDIO_API}" STREQUAL "dummy")
105         MESSAGE(STATUS "Using dummy backend")
106 ELSE("${AUDIO_API}" STREQUAL "portaudio")
107         
108         MESSAGE(FATAL_ERROR "Unknown AUDIO_API [${AUDIO_API}]")
109         
110 ENDIF("${AUDIO_API}" STREQUAL "portaudio")
114 INCLUDE_DIRECTORIES(
115         src/common
116         src/libsvc
117 # FIXME: this is only for SVC[D/DC/C/CC] targets!
118         src/network/svc/common
119 #       ${ENET_INCLUDE_DIR}
120 #       ${CELT_INCLUDE_DIR}
121 #       ${PORTAUDIO_INCLUDE_DIR}
122         ${OSS_INCLUDES}
125 # select build type
126 IF(BUILD_SHARED)
127         MESSAGE(STATUS "Building shared libsvc")
128         SET(LIBSVC_TYPE SHARED)
129 ELSE(BUILD_SHARED)
130         MESSAGE(STATUS "Building static libsvc")
131         SET(LIBSVC_TYPE STATIC)
132 ENDIF(BUILD_SHARED)
134 # build libsvc
135 ADD_LIBRARY(svc ${LIBSVC_TYPE}
136         src/libsvc/packet_queue.c
137         src/libsvc/audio.c
138         src/libsvc/audio_api_${AUDIO_API}.c
139         src/libsvc/packet_cage.c
140         src/common/thread.c
141         src/libsvc/libsvc.c
142         src/libsvc/libsvc_incoming.c
143         src/libsvc/codec.c
144         src/libsvc/network_packet.c
147 # Build SVC main daemon
148 IF(BUILD_SVCD)
149         MESSAGE(STATUS "Main SVC daemon build enabled.")
150         ADD_EXECUTABLE(svcd
151                 src/network/svc/server/main.c
152                 src/network/svc/server/peer.c
153                 src/network/svc/common/net.c
154                 src/common/dstr.c
155                 src/common/dstrutils.c
156         )
157         
158         TARGET_LINK_LIBRARIES(svcd
159                 svc     
160         )
161 ELSE(BUILD_SVCD)
162         MESSAGE(STATUS "Main SVC daemon build disabled.")
163 ENDIF(BUILD_SVCD)
165 # Build SVC P2P simple client
166 IF(BUILD_P2P)
167         MESSAGE(STATUS "Simple P2P client enabled.")
168         ADD_EXECUTABLE(svcp2p
169                 src/network/svcp2p/main.c
170                 src/common/thread.c
171         )
172         TARGET_LINK_LIBRARIES(svcp2p
173                 svc
174                 ${AUDIOAPI_LIBRARIES}
175                 ${CELT_LIBRARIES}
176                 ${PTHREAD_LIB}
177         )
178 ELSE(BUILD_P2P)
179         MESSAGE(STATUS "Simple P2P client disabled.")
180 ENDIF(BUILD_P2P)
183 # Build SVC ENet client and server
184 IF(BUILD_ENET_SVC)
185         ADD_EXECUTABLE(svceclient
186                 src/network/svcenet/client/main.c
187         )
188         TARGET_LINK_LIBRARIES(svceclient
189                 svc
190                 ${ENET_LIBRARIES}
191                 ${AUDIOAPI_LIBRARIES}
192                 ${CELT_LIBRARIES}
193                 ${PTHREAD_LIB}
194         )
196         ADD_EXECUTABLE(svceserver
197                 src/network/svcenet/server/main.c
198                 src/common/dstr.c
199         )
200         TARGET_LINK_LIBRARIES(svceserver
201                 ${ENET_LIBRARIES}
202                 ${PTHREAD_LIB}
203         )
204 ENDIF(BUILD_ENET_SVC)
207 # Build tests
208 IF(BUILD_TESTS)
209         
210         MESSAGE(STATUS "Tests enabled.")
211         
212         ADD_EXECUTABLE(test_threads
213                 src/tests/test_threads.c
214                 src/common/thread.c
215         )
216         TARGET_LINK_LIBRARIES(test_threads
217                 ${PTHREAD_LIB}
218         )
221         ADD_EXECUTABLE(test_audio_api
222                 src/tests/test_audio_api.c
223                 src/libsvc/audio.c
224                 src/libsvc/audio_api_${AUDIO_API}.c
225                 src/common/thread.c
226         )
227         TARGET_LINK_LIBRARIES(test_audio_api
228                 ${AUDIOAPI_LIBRARIES}
229                 ${CELT_LIBRARIES}
230                 ${PTHREAD_LIB}
231         )
234         ADD_EXECUTABLE(test_libsvc
235                 src/tests/test_libsvc.c
236                 src/libsvc/packet_queue.c
237                 src/libsvc/audio.c
238                 src/libsvc/audio_api_${AUDIO_API}.c
239                 src/libsvc/packet_cage.c
240                 src/common/thread.c
241                 src/libsvc/libsvc.c
242                 src/libsvc/libsvc_incoming.c
243                 src/libsvc/codec.c
244                 src/libsvc/network_packet.c
245         )
246         TARGET_LINK_LIBRARIES(test_libsvc
247                 ${AUDIOAPI_LIBRARIES}
248                 ${CELT_LIBRARIES}
249                 ${PTHREAD_LIB}
250         )
251         
252         
253         ADD_EXECUTABLE(test_dstr
254                 src/tests/test_dstr.c
255                 src/common/dstr.c
256                 src/tests/tests_utils.c
257         )
258         
259         ADD_EXECUTABLE(test_dstrutils
260                 src/tests/test_dstrutils.c
261                 src/common/dstrutils.c
262                 src/common/dstr.c
263                 src/tests/tests_utils.c
264         )
265         
266 ELSE(BUILD_TESTS)
267         
268         MESSAGE(STATUS "Tests disabled.")
269         
270 ENDIF(BUILD_TESTS)
272 SET_SOURCE_FILES_PROPERTIES(src/libsvc/audio_api_oss.c
273         PROPERTIES COMPILE_FLAGS "${CMAKE_C_FLAGS} -std=c99 -Wextra")