summaryrefslogtreecommitdiff
path: root/plugins/dfsound/CMakeLists.txt
blob: 7935a87f3a8a6ba032cb9682aaa05ba68d6068cb (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
message(STATUS "* Configuring DFSound")

include(GlibCompileResourcesSupport)

set(SND_BACKEND "sdl" CACHE STRING "Sound backend to use.")
set_property(CACHE SND_BACKEND PROPERTY STRINGS oss alsa pulse sdl openal null)

#deps

find_package(GLib REQUIRED)
if(NOT GLib_FOUND)
    message(FATAL_ERROR "GLIB2 library not found")
endif(NOT GLib_FOUND)
include_directories(${GLib_INCLUDE_DIRS})

find_package(GTK3 REQUIRED)
if(NOT GTK3_FOUND)
    message(FATAL_ERROR "GTK3 library not found")
endif(NOT GTK3_FOUND)
include_directories(${GTK3_INCLUDE_DIRS})
set(GTK_LIBRARIES ${GTK3_LIBRARY} ${GDK3_LIBRARY} ${GDKPixbuf_LIBRARY} ${Pango_LIBRARY} ${Cairo_LIBRARY} ${GObject_LIBRARY} ${GLib_LIBRARY} ${GIO_LIBRARY})


if (${SND_BACKEND} STREQUAL "oss")
  find_package(OSS REQUIRED)
  include_directories(${OSS_INCLUDE_DIR})
  add_definitions(-DUSEOSS=1)

elseif (${SND_BACKEND} STREQUAL "alsa")
  find_package(ALSA REQUIRED)
  include_directories(${ALSA_INCLUDE_DIRS})
  add_definitions(-DUSEALSA=1)

elseif (${SND_BACKEND} STREQUAL "pulse")
  find_package(PulseAudio REQUIRED)
  include_directories(${PULSEAUDIO_INCLUDE_DIR})
  add_definitions(-DUSEPULSEAUDIO=1)

elseif (${SND_BACKEND} STREQUAL "sdl")
  find_package(SDL2)
  if(NOT SDL2_FOUND)
    find_package(SDL)
      if(NOT SDL_FOUND)
          message(FATAL_ERROR "SDL or SDL2 library not found")
      else(NOT SDL_FOUND)
          message(STATUS "Using SDL")
          include_directories(${SDL_INCLUDE_DIR})
      endif(NOT SDL_FOUND)
  else(NOT SDL2_FOUND)
      set(USE_SDL2 1)
      message(STATUS "Using SDL2")
      include_directories(${SDL2_INCLUDE_DIR})
  endif(NOT SDL2_FOUND)
  add_definitions(-DUSESDL=1)

elseif (${SND_BACKEND} STREQUAL "openal")
  find_package(OpenAL REQUIRED)
  include_directories(${OPENAL_INCLUDE_DIR})
  add_definitions(-DUSEOPENAL=1)
elseif (${SND_BACKEND} STREQUAL "null")
  add_definitions(-DUSENULL=1)

endif()

find_package(Threads REQUIRED)

#defs
add_definitions(-DLOCALE_DIR="${CMAKE_INSTALL_FULL_DATAROOTDIR}/locale/" -DPSEMU_DATA_DIR="${CMAKE_INSTALL_FULL_DATAROOTDIR}/psemu" -DDEF_PLUGIN_DIR="${CMAKE_INSTALL_FULL_LIBDIR}/games/psemu")

#sources
set(PLUGIN_SRCS
    adsr.c
    cfg.c
    dma.c
    externals.c
    freeze.c
    registers.c
    reverb.c
    spu.c
    xa.c
)

set(GUI_SRCS
    spucfg-0.1df/main.c
)


#resources
set(RESOURCE_LIST
    ${CMAKE_CURRENT_SOURCE_DIR}/spucfg-0.1df/dfsound.ui
)


compile_gresources(RESOURCE_FILE
                   XML_OUT
                   TYPE EMBED_C
                   PREFIX /org/pcsxr/dfsound
                   SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/spucfg-0.1df
                   RESOURCES ${RESOURCE_LIST})

add_custom_target(dfsound_resource DEPENDS ${RESOURCE_FILE})

include_directories(${CMAKE_SOURCE_DIR}/libpcsxcore)

if (${SND_BACKEND} STREQUAL "oss")
    add_library(DFSound MODULE ${PLUGIN_SRCS} oss.c)

elseif (${SND_BACKEND} STREQUAL "alsa")
    add_library(DFSound MODULE ${PLUGIN_SRCS} alsa.c)
    target_link_libraries(DFSound ${ALSA_LIBRARIES} ${CMAKE_THREAD_LIBS_INIT})

elseif (${SND_BACKEND} STREQUAL "pulse")
    add_library(DFSound MODULE ${PLUGIN_SRCS} pulseaudio.c)
    target_link_libraries(DFSound ${PULSEAUDIO_LIBRARY} ${CMAKE_THREAD_LIBS_INIT})

elseif (${SND_BACKEND} STREQUAL "sdl")
    add_library(DFSound MODULE ${PLUGIN_SRCS} sdl.c)
    target_link_libraries(DFSound ${SDL_LIBRARY} ${SDL2_LIBRARY} ${CMAKE_THREAD_LIBS_INIT})

elseif (${SND_BACKEND} STREQUAL "openal")
    add_library(DFSound MODULE ${PLUGIN_SRCS} openal.c)
    target_link_libraries(DFSound ${OPENAL_LIBRARY} ${CMAKE_THREAD_LIBS_INIT})

elseif (${SND_BACKEND} STREQUAL "null")
    add_library(DFSound MODULE ${PLUGIN_SRCS} nullsnd.c)

endif()


add_executable(cfgDFSound ${GUI_SRCS} ${RESOURCE_FILE})
add_dependencies(cfgDFSound dfsound_resource)
target_link_libraries(cfgDFSound ${GTK_LIBRARIES})

install(TARGETS DFSound LIBRARY DESTINATION ${CMAKE_INSTALL_FULL_LIBDIR}/games/psemu)
install(TARGETS cfgDFSound RUNTIME DESTINATION ${CMAKE_INSTALL_FULL_LIBDIR}/games/psemu)