~s.jansen/+junk/gogglesmm

« back to all changes in this revision

Viewing changes to src/gap/CMakeLists.txt

  • Committer: Sander Jansen
  • Date: 2016-07-18 21:09:51 UTC
  • mfrom: (1.1.2)
  • Revision ID: s.jansen@gmail.com-20160718210951-pzq7qyvo6bfq7tfy
New upstream release.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
cmake_minimum_required(VERSION 3.4 FATAL_ERROR)
 
1
cmake_minimum_required(VERSION 3.3.1 FATAL_ERROR)
2
2
 
3
3
include(TestBigEndian)
4
4
include(CheckIncludeFiles)
5
 
include(FindEXPAT)
6
5
include(FeatureSummary)
7
6
 
8
 
project(GAP VERSION 1.0.14)
 
7
project(GAP VERSION 1.0.17)
9
8
 
10
9
 
11
10
set_package_properties(FOX PROPERTIES
67
66
                            PURPOSE "\toss output support"
68
67
                            TYPE OPTIONAL)
69
68
 
 
69
# Allow GAP to be build as a shared library.
 
70
if(MSVC)
 
71
  set(BUILD_GAP_SHARED_LIB ON CACHE BOOL "Build libgap as a shared library" FORCE)
 
72
else()
 
73
  set(BUILD_GAP_SHARED_LIB OFF CACHE BOOL "Build libgap as a shared library")
 
74
endif()
 
75
 
 
76
 
70
77
# Optional flags to turn on/off compilation of specific modules
71
78
if(UNIX)
72
79
  if(CMAKE_SYSTEM_NAME STREQUAL "Linux")
87
94
# libdir name to allow overriding to lib32 / lib64
88
95
set(CMAKE_INSTALL_LIBDIR "lib" CACHE STRING "Specify the name of the directory where libraries are meant to be installed")
89
96
 
 
97
 
 
98
# Make CMAKE_INSTALL_LIBDIR relative to CMAKE_INSTALL_PREFIX
 
99
if(IS_ABSOLUTE ${CMAKE_INSTALL_LIBDIR})
 
100
  set(CMAKE_INSTALL_FULL_LIBDIR ${CMAKE_INSTALL_LIBDIR})
 
101
  file(RELATIVE_PATH CMAKE_INSTALL_LIBDIR ${CMAKE_INSTALL_PREFIX} ${CMAKE_INSTALL_LIBDIR})
 
102
else()
 
103
  set(CMAKE_INSTALL_FULL_LIBDIR ${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR})
 
104
endif()
 
105
 
 
106
 
90
107
# Update whenever ABI changes
91
108
set(GAP_SOVERSION_CURRENT 0)    # Increase whenever an interface has been added, removed or changed.
92
109
set(GAP_SOVERSION_REVISION 0)   # Always increase the revision value. Reset to 0 when Current changes.
133
150
# Check for libmad
134
151
check_include_files(mad.h HAVE_MAD_H)
135
152
if (HAVE_MAD_H)
136
 
   set(LIBMAD_HEADERS_FOUND TRUE)
137
 
endif (HAVE_MAD_H)
138
 
 
139
 
if (LIBMAD_HEADERS_FOUND)
140
 
   find_library(MAD_LIBRARIES NAMES mad )
141
 
endif (LIBMAD_HEADERS_FOUND)
142
 
if (MAD_LIBRARIES)
143
 
   set(MAD_FOUND TRUE)
 
153
  find_library(MAD_LIBRARIES NAMES mad )
 
154
  if (MAD_LIBRARIES)
 
155
    set(MAD_FOUND TRUE)
 
156
  endif()
144
157
endif()
145
158
 
146
159
# Check for faad
147
160
check_include_files(faad.h HAVE_FAAD_H)
148
161
if (HAVE_FAAD_H)
149
 
   set(LIBFAAD_HEADERS_FOUND TRUE)
150
 
endif (HAVE_FAAD_H)
151
 
 
152
 
if (LIBFAAD_HEADERS_FOUND)
153
 
   find_library(FAAD_LIBRARIES NAMES faad )
154
 
endif (LIBFAAD_HEADERS_FOUND)
155
 
if (FAAD_LIBRARIES)
156
 
   set(FAAD_FOUND TRUE)
 
162
  find_library(FAAD_LIBRARIES NAMES faad )
 
163
  if (FAAD_LIBRARIES)
 
164
    set(FAAD_FOUND TRUE)
 
165
  endif()
157
166
endif()
158
167
 
159
168
 
160
169
include_directories(${CMAKE_CURRENT_SOURCE_DIR}/include ${FOX_INCLUDE_DIRS} ${EXPAT_INCLUDE_DIRS} ${SAMPLERATE_INCLUDE_DIRS})
161
170
 
 
171
 
162
172
set(SOURCES ap_app_queue.cpp
163
173
            ap_buffer.cpp
164
174
            ap_buffer_io.cpp
188
198
            ap_xml_parser.cpp
189
199
            )
190
200
 
 
201
 
191
202
set(HEADERS ap_buffer.h
192
203
            ap_config.h
193
204
            ap_connect.h
213
224
            ap_wait_io.h
214
225
            )
215
226
 
 
227
 
216
228
set(PUBLIC_HEADERS include/ap.h
217
229
                   include/ap_app_queue.h
218
230
                   include/ap_buffer_base.h
244
256
add_feature_info(mad MAD_FOUND "MPEG audio decoder")
245
257
add_feature_info(faad FAAD_FOUND "MPEG-4 and MPEG-2 AAC decoder")
246
258
 
 
259
# Link to FOX during shared library build
 
260
if (BUILD_GAP_SHARED_LIB)
 
261
  LIST(APPEND LIBRARIES ${FOX_LIBRARIES})
 
262
endif()
247
263
 
248
264
if (FLAC_FOUND)
249
265
  LIST(APPEND PLUGIN_SOURCES plugins/ap_flac_plugin.cpp)
257
273
  set(HAVE_TREMOR_PLUGIN 1)
258
274
  add_feature_info(tremor ON "Vorbis Decoder")
259
275
  add_feature_info(vorbis OFF "Vorbis Decoder")
260
 
 
261
276
endif()
262
277
 
263
278
if (VORBIS_FOUND AND OGG_FOUND AND NOT WITH_TREMOR)
307
322
 
308
323
add_library(gap_plugins OBJECT ${PLUGIN_SOURCES})
309
324
target_include_directories(gap_plugins BEFORE PRIVATE ${PROJECT_SOURCE_DIR})
310
 
if(BUILD_SHARED_LIBS)
 
325
if(BUILD_GAP_SHARED_LIB)
311
326
  set_property(TARGET gap_plugins PROPERTY POSITION_INDEPENDENT_CODE TRUE)
312
327
endif()
313
328
 
315
330
# Wav File output
316
331
add_library(gap_wav MODULE plugins/ap_wavout_plugin.cpp)
317
332
target_include_directories(gap_wav BEFORE PRIVATE ${PROJECT_SOURCE_DIR})
318
 
install(TARGETS gap_wav LIBRARY DESTINATION lib/gogglesmm)
 
333
install(TARGETS gap_wav LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}/gogglesmm)
319
334
 
320
335
 
321
336
# Depend on symbols in main executable
332
347
    add_library(gap_alsa MODULE plugins/ap_alsa_plugin.cpp)
333
348
    target_link_libraries(gap_alsa ${ALSA_LIBRARIES})
334
349
    target_include_directories(gap_alsa BEFORE PRIVATE ${PROJECT_SOURCE_DIR})
335
 
    install(TARGETS gap_alsa LIBRARY DESTINATION lib/gogglesmm)
 
350
    install(TARGETS gap_alsa LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}/gogglesmm)
336
351
    set(HAVE_ALSA_PLUGIN 1)
337
352
    add_feature_info(alsa ON "Advanced Linux Sound Architecture")
338
353
  endif()
342
357
    add_library(gap_pulse MODULE plugins/ap_pulse_plugin.cpp)
343
358
    target_link_libraries(gap_pulse ${PULSE_LIBRARIES})
344
359
    target_include_directories(gap_pulse BEFORE PRIVATE ${PROJECT_SOURCE_DIR})
345
 
    install(TARGETS gap_pulse LIBRARY DESTINATION lib/gogglesmm)
 
360
    install(TARGETS gap_pulse LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}/gogglesmm)
346
361
    set(HAVE_PULSE_PLUGIN 1)
347
362
    add_feature_info(pulse ON "PulseAudio")
348
363
  endif()
363
378
    add_library(gap_oss MODULE plugins/ap_oss_plugin.cpp)
364
379
    target_compile_options(gap_oss PRIVATE -idirafter /usr/include/sys)
365
380
    target_include_directories(gap_oss BEFORE PRIVATE ${PROJECT_SOURCE_DIR})
366
 
    install(TARGETS gap_oss LIBRARY DESTINATION lib/gogglesmm)
 
381
    install(TARGETS gap_oss LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}/gogglesmm)
367
382
    set(HAVE_OSS_PLUGIN 1)
368
383
    add_feature_info(oss ON "OSS Output")
369
384
endif()
370
385
 
371
386
 
372
 
set(AP_PLUGIN_PATH ${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}/gogglesmm)
373
 
 
 
387
set(AP_PLUGIN_PATH ${CMAKE_INSTALL_FULL_LIBDIR}/gogglesmm)
374
388
 
375
389
configure_file(ap_config.h.in ${CMAKE_CURRENT_SOURCE_DIR}/ap_config.h)
376
390
 
377
 
add_library(gap ${SOURCES} ${HEADERS} ${PUBLIC_HEADERS} $<TARGET_OBJECTS:gap_plugins>)
 
391
# Gap Library
 
392
if(BUILD_GAP_SHARED_LIB)
 
393
  add_library(gap SHARED ${SOURCES} ${HEADERS} ${PUBLIC_HEADERS} $<TARGET_OBJECTS:gap_plugins>)
 
394
else()
 
395
  add_library(gap STATIC ${SOURCES} ${HEADERS} ${PUBLIC_HEADERS} $<TARGET_OBJECTS:gap_plugins>)
 
396
endif()
 
397
 
378
398
target_link_libraries(gap ${LIBRARIES})
379
 
 
380
 
 
381
399
set_target_properties(gap PROPERTIES ENABLE_EXPORTS 1)
382
 
 
383
400
target_include_directories(gap INTERFACE ${CMAKE_CURRENT_SOURCE_DIR}/include)
384
401
 
385
 
if(BUILD_SHARED_LIBS)
 
402
if(BUILD_GAP_SHARED_LIB)
386
403
  #set_target_properties(gap PROPERTIES VERSION ${GAP_VERSION} SOVERSION ${GAP_SOVERSION})
387
404
  install(TARGETS gap LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR})
388
405
  install(FILES include/ap.h
391
408
                include/ap_buffer_io.h
392
409
                include/ap_common.h
393
410
                include/ap_device.h
394
 
                include/ap_dsp.h
395
411
                include/ap_event.h
396
412
                include/ap_event_queue.h
397
413
                include/ap_http.h