From 2b8be4ae401153dad5448c3d5903692f5757aecd Mon Sep 17 00:00:00 2001 From: Neal Gompa Date: Tue, 11 May 2010 19:42:14 -0500 Subject: [PATCH] Added in support for the CMake module for searching for and configuring to use libvorbisfile and libogg --- CMakeLists.txt | 6 +- cmake/Modules/FindOggVorbis.cmake | 91 +++++++++++++++++++++++++++++++ 2 files changed, 96 insertions(+), 1 deletion(-) create mode 100644 cmake/Modules/FindOggVorbis.cmake diff --git a/CMakeLists.txt b/CMakeLists.txt index c87964e..ca13013 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -2,6 +2,7 @@ project(lugaru) cmake_minimum_required(VERSION 2.6) +set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake/Modules/") find_package(OpenAL REQUIRED) find_package(BZip2 REQUIRED) find_package(PNG REQUIRED) @@ -10,6 +11,7 @@ find_package(ZLIB REQUIRED) find_package(OpenGL REQUIRED) find_package(GLU REQUIRED) find_package(SDL REQUIRED) +find_package(OggVorbis REQUIRED) include_directories( ${OPENAL_INCLUDES} @@ -20,8 +22,10 @@ include_directories( ${OPENGL_INCLUDE_DIR} ${GLU_INCLUDE_DIR} ${SDL_INCLUDE_DIR} + ${VORBISFILE_INCLUDE_DIR} + ${OGG_INCLUDE_DIR} ${CMAKE_SOURCE_DIR}/Source) -set(LUGARU_LIBS ${OPENAL_LIBRARY} ${PNG_LIBRARY} ${JPEG_LIBRARY} ${BZIP2_LIBRARIES} ${ZLIB_LIBRARIES} ${SDL_LIBRARY} ${GLU_LIBRARY} ${OPENGL_LIBRARY} -lvorbisfile -logg) +set(LUGARU_LIBS ${OPENAL_LIBRARY} ${PNG_LIBRARY} ${JPEG_LIBRARY} ${BZIP2_LIBRARIES} ${ZLIB_LIBRARIES} ${SDL_LIBRARY} ${GLU_LIBRARY} ${OPENGL_LIBRARY} ${VORBISFILE_LIBS} ${OGG_LIBS}) add_subdirectory(Source) diff --git a/cmake/Modules/FindOggVorbis.cmake b/cmake/Modules/FindOggVorbis.cmake new file mode 100644 index 0000000..0ca1867 --- /dev/null +++ b/cmake/Modules/FindOggVorbis.cmake @@ -0,0 +1,91 @@ +# - Try to find the OggVorbis libraries +# Once done this will define +# +# OGGVORBIS_FOUND - system has OggVorbis +# OGGVORBIS_VERSION - set either to 1 or 2 +# OGGVORBIS_INCLUDE_DIR - the OggVorbis include directory +# OGGVORBIS_LIBRARIES - The libraries needed to use OggVorbis +# OGG_LIBRARY - The Ogg library +# VORBIS_LIBRARY - The Vorbis library +# VORBISFILE_LIBRARY - The VorbisFile library +# VORBISENC_LIBRARY - The VorbisEnc library + +# Copyright (c) 2006, Richard Laerkaeng, +# +# Redistribution and use is allowed according to the terms of the BSD license. +# For details see the accompanying COPYING-CMAKE-SCRIPTS file. + + +include (CheckLibraryExists) + +find_path(VORBIS_INCLUDE_DIR vorbis/vorbisfile.h) +find_path(OGG_INCLUDE_DIR ogg/ogg.h) + +find_library(OGG_LIBRARY NAMES ogg) +find_library(VORBIS_LIBRARY NAMES vorbis) +find_library(VORBISFILE_LIBRARY NAMES vorbisfile) +find_library(VORBISENC_LIBRARY NAMES vorbisenc) + +mark_as_advanced(VORBIS_INCLUDE_DIR OGG_INCLUDE_DIR + OGG_LIBRARY VORBIS_LIBRARY VORBISFILE_LIBRARY VORBISENC_LIBRARY) + + +if (VORBIS_INCLUDE_DIR AND VORBIS_LIBRARY AND VORBISFILE_LIBRARY AND VORBISENC_LIBRARY) + set(OGGVORBIS_FOUND TRUE) + + set(OGGVORBIS_LIBRARIES ${OGG_LIBRARY} ${VORBIS_LIBRARY} ${VORBISFILE_LIBRARY} ${VORBISENC_LIBRARY}) + + set(_CMAKE_REQUIRED_LIBRARIES_TMP ${CMAKE_REQUIRED_LIBRARIES}) + set(CMAKE_REQUIRED_LIBRARIES ${CMAKE_REQUIRED_LIBRARIES} ${OGGVORBIS_LIBRARIES}) + check_library_exists(vorbis vorbis_bitrate_addblock "" HAVE_LIBVORBISENC2) + set(CMAKE_REQUIRED_LIBRARIES ${_CMAKE_REQUIRED_LIBRARIES_TMP}) + + if (HAVE_LIBVORBISENC2) + set (OGGVORBIS_VERSION 2) + else (HAVE_LIBVORBISENC2) + set (OGGVORBIS_VERSION 1) + endif (HAVE_LIBVORBISENC2) + +else (VORBIS_INCLUDE_DIR AND VORBIS_LIBRARY AND VORBISFILE_LIBRARY AND VORBISENC_LIBRARY) + set (OGGVORBIS_VERSION) + set(OGGVORBIS_FOUND FALSE) +endif (VORBIS_INCLUDE_DIR AND VORBIS_LIBRARY AND VORBISFILE_LIBRARY AND VORBISENC_LIBRARY) + + +if (OGGVORBIS_FOUND) + if (NOT OggVorbis_FIND_QUIETLY) + message(STATUS "Found OggVorbis: ${OGGVORBIS_LIBRARIES}") + endif (NOT OggVorbis_FIND_QUIETLY) +else (OGGVORBIS_FOUND) + if (OggVorbis_FIND_REQUIRED) + message(FATAL_ERROR "Could NOT find OggVorbis libraries") + endif (OggVorbis_FIND_REQUIRED) + if (NOT OggVorbis_FIND_QUITELY) + message(STATUS "Could NOT find OggVorbis libraries") + endif (NOT OggVorbis_FIND_QUITELY) +endif (OGGVORBIS_FOUND) + +check_include_files(vorbis/vorbisfile.h HAVE_VORBISFILE_H) +check_library_exists(ogg ogg_page_version "" HAVE_LIBOGG) +check_library_exists(vorbis vorbis_info_init "" HAVE_LIBVORBIS) +check_library_exists(vorbisfile ov_open "" HAVE_LIBVORBISFILE) +check_library_exists(vorbisenc vorbis_info_clear "" HAVE_LIBVORBISENC) +check_library_exists(vorbis vorbis_bitrate_addblock "" HAVE_LIBVORBISENC2) + +if (HAVE_LIBOGG AND HAVE_VORBISFILE_H AND HAVE_LIBVORBIS AND HAVE_LIBVORBISFILE AND HAVE_LIBVORBISENC) + message(STATUS "Ogg/Vorbis found") + set (VORBIS_LIBS "-lvorbis -logg") + set (OGG_LIBS "-logg") + set (VORBISFILE_LIBS "-lvorbisfile") + set (VORBISENC_LIBS "-lvorbisenc") + set (OGGVORBIS_FOUND TRUE) + if (HAVE_LIBVORBISENC2) + set (HAVE_VORBIS 2) + else (HAVE_LIBVORBISENC2) + set (HAVE_VORBIS 1) + endif (HAVE_LIBVORBISENC2) +else (HAVE_LIBOGG AND HAVE_VORBISFILE_H AND HAVE_LIBVORBIS AND HAVE_LIBVORBISFILE AND HAVE_LIBVORBISENC) + message(STATUS "Ogg/Vorbis not found") +endif (HAVE_LIBOGG AND HAVE_VORBISFILE_H AND HAVE_LIBVORBIS AND HAVE_LIBVORBISFILE AND HAVE_LIBVORBISENC) + + -- 2.39.2