pcsxr/plugins/dfsound/CMakeLists.txt
Stelios Tsampas a93c5c5420 * Fix CMake to include PGXP sources. Import updated translations.
Includes some small fixes on CMake, such as prettier status messages,
    host and target arch detection (taken from PCSX2), and various other
    small errors.
2017-07-31 17:09:40 +03:00

136 lines
3.9 KiB
CMake

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)