Fix some linkage issues with the cmake build system.

Also X11 is required on *nix systems.
GTK2 is required for building the wxWidgets builds on *nix systems.
Added a check for pulseaudio.


git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6334 8ced0084-cf51-0410-be5f-012b33b47a6e
This commit is contained in:
Glenn Rice 2010-11-03 04:13:36 +00:00
parent 95d9cb3a0f
commit 381f92b151
2 changed files with 36 additions and 15 deletions

View File

@ -13,7 +13,7 @@ set(DOLPHIN_LICENSE_DIR ${DOLPHIN_BIN_DIR})
include(FindSubversion OPTIONAL) # for revision info include(FindSubversion OPTIONAL) # for revision info
if(Subversion_FOUND) if(Subversion_FOUND)
Subversion_WC_INFO(. DOLPHIN) # defines DOLPHIN_WC_REVISION Subversion_WC_INFO(${PROJECT_SOURCE_DIR} DOLPHIN) # defines DOLPHIN_WC_REVISION
endif() endif()
include(FindPkgConfig REQUIRED) # TODO: Make this optional or even implement our own package detection include(FindPkgConfig REQUIRED) # TODO: Make this optional or even implement our own package detection
@ -63,11 +63,13 @@ endif(UNIX)
include(FindOpenGL REQUIRED) include(FindOpenGL REQUIRED)
include(FindALSA OPTIONAL) include(FindALSA OPTIONAL)
include(FindGTK2 OPTIONAL) # TODO: Or REQUIRED?
include(FindOpenAL OPTIONAL) include(FindOpenAL OPTIONAL)
include(FindwxWidgets OPTIONAL) include(FindwxWidgets OPTIONAL)
include(FindX11 OPTIONAL) # TODO: Or REQUIRED on UNIX? if(UNIX)
include(FindX11 REQUIRED)
endif(UNIX)
pkg_search_module(PULSEAUDIO libpulse)
pkg_search_module(AO ao) pkg_search_module(AO ao)
pkg_search_module(BLUEZ bluez) pkg_search_module(BLUEZ bluez)
@ -100,12 +102,14 @@ endif(BLUEZ_FOUND)
include_directories(${OPENGL_INCLUDE_DIR}) include_directories(${OPENGL_INCLUDE_DIR})
if(GTK2_FOUND) if(PULSEAUDIO_FOUND)
include_directories(${GTK2_INCLUDE_DIRS}) add_definitions(-DHAVE_PULSEAUDIO=1)
message("GTK 2 found") # TODO: What is this needed for actually? include_directories(${PULSEAUDIO_INCLUDE_DIR})
message("PulseAudio found, enabling PulseAudio sound backend")
else() else()
message("GTK 2 NOT found") add_definitions(-DHAVE_PULSEAUDIO=0)
endif(GTK2_FOUND) message("PulseAudio NOT found, disabling PulseAudio sound backend")
endif(PULSEAUDIO_FOUND)
if(OPENAL_FOUND) if(OPENAL_FOUND)
add_definitions(-DHAVE_OPENAL=1) add_definitions(-DHAVE_OPENAL=1)
@ -119,6 +123,17 @@ endif(OPENAL_FOUND)
if(wxWidgets_FOUND) if(wxWidgets_FOUND)
add_definitions(-DHAVE_WX=1) add_definitions(-DHAVE_WX=1)
include(${wxWidgets_USE_FILE}) include(${wxWidgets_USE_FILE})
if(UNIX)
pkg_search_module(GTK2 REQUIRED gtk+-2.0)
if(GTK2_FOUND)
include_directories(${GTK2_INCLUDE_DIRS})
message("GTK 2 found")
else(GTK2_FOUND)
message("GTK 2 NOT found")
endif(GTK2_FOUND)
endif(UNIX)
message("wxWidgets found, enabling GUI build") message("wxWidgets found, enabling GUI build")
else(wxWidgets_FOUND) else(wxWidgets_FOUND)
add_definitions(-DHAVE_WX=0) add_definitions(-DHAVE_WX=0)
@ -128,7 +143,7 @@ endif(wxWidgets_FOUND)
if(X11_FOUND) if(X11_FOUND)
add_definitions(-DHAVE_X11=1) add_definitions(-DHAVE_X11=1)
include_directories(${X11_INCLUDE_DIR}) include_directories(${X11_INCLUDE_DIR})
message("X11 found") # TODO: What is this needed for actually? message("X11 found")
else() else()
add_definitions(-DHAVE_X11=0) add_definitions(-DHAVE_X11=0)
message("X11 NOT found") message("X11 NOT found")
@ -176,7 +191,7 @@ include_directories(Externals/LZO)
include(FindSDL OPTIONAL) include(FindSDL OPTIONAL)
if(SDL_FOUND) if(SDL_FOUND)
include_directories(SLD_INCLUDE_DIR) include_directories(SDL_INCLUDE_DIR)
else(SDL_FOUND) else(SDL_FOUND)
# TODO: No CMakeLists.txt there, yet... # TODO: No CMakeLists.txt there, yet...
add_subdirectory(Externals/SDL) add_subdirectory(Externals/SDL)
@ -220,16 +235,16 @@ add_subdirectory(Source)
######################################## ########################################
# copy over the Data folder ... TODO: Don't copy .svn dirs! # copy over the Data folder ... TODO: Don't copy .svn dirs!
# #
file(COPY Data/user DESTINATION ${DOLPHIN_USER_DIR}) file(COPY Data/User DESTINATION ${DOLPHIN_USER_DIR})
file(COPY Data/sys DESTINATION ${DOLPHIN_SYS_DIR}) file(COPY Data/Sys DESTINATION ${DOLPHIN_SYS_DIR})
file(COPY Data/license.txt DESTINATION ${DOLPHIN_LICENSE_DIR}) file(COPY Data/license.txt DESTINATION ${DOLPHIN_LICENSE_DIR})
######################################## ########################################
# Install and CPack information # Install and CPack information
# #
install(DIRECTORY Data/user DESTINATION share/dolphin-emu) install(DIRECTORY Data/User DESTINATION share/dolphin-emu)
install(DIRECTORY Data/sys DESTINATION share/dolphin-emu) install(DIRECTORY Data/Sys DESTINATION share/dolphin-emu)
install(FILES Data/license.txt DESTINATION share/dolphin-emu) install(FILES Data/license.txt DESTINATION share/dolphin-emu)
# TODO: Move childrens's install commands here? # TODO: Move childrens's install commands here?

View File

@ -4,24 +4,29 @@ set(SRCS Src/AudioCommon.cpp
Src/WaveFile.cpp Src/WaveFile.cpp
Src/NullSoundStream.cpp) Src/NullSoundStream.cpp)
set(LIBS "")
if(APPLE) if(APPLE)
set(SRCS ${SRCS} Src/CoreAudioSoundStream.cpp) set(SRCS ${SRCS} Src/CoreAudioSoundStream.cpp)
else() else()
if(ALSA_FOUND) if(ALSA_FOUND)
set(SRCS ${SRCS} Src/AlsaSoundStream.cpp) set(SRCS ${SRCS} Src/AlsaSoundStream.cpp)
set(LIBS ${LIBS} ${ALSA_LIBRARIES})
endif(ALSA_FOUND) endif(ALSA_FOUND)
if(AO_FOUND) if(AO_FOUND)
set(SRCS ${SRCS} Src/AOSoundStream.cpp) set(SRCS ${SRCS} Src/AOSoundStream.cpp)
set(LIBS ${LIBS} ${AO_LIBRARIES})
endif(AO_FOUND) endif(AO_FOUND)
if(OPENAL_FOUND OR WIN32) if(OPENAL_FOUND OR WIN32)
set(SRCS ${SRCS} Src/OpenALSoundStream.cpp) set(SRCS ${SRCS} Src/OpenALStream.cpp)
set(LIBS ${LIBS} ${OPENAL_LIBRARIES})
endif(OPENAL_FOUND OR WIN32) endif(OPENAL_FOUND OR WIN32)
if(PULSEAUDIO_FOUND) if(PULSEAUDIO_FOUND)
set(SRCS ${SRCS} Src/PulseAudioStream.cpp) set(SRCS ${SRCS} Src/PulseAudioStream.cpp)
set(LIBS ${LIBS} ${PULSEAUDIO_LIBRARIES})
endif(PULSEAUDIO_FOUND) endif(PULSEAUDIO_FOUND)
if(WIN32) if(WIN32)
@ -30,3 +35,4 @@ else()
endif() endif()
add_library(audiocommon STATIC ${SRCS}) add_library(audiocommon STATIC ${SRCS})
target_link_libraries(audiocommon ${LIBS})