summaryrefslogtreecommitdiff
path: root/cmake/Modules
diff options
context:
space:
mode:
Diffstat (limited to 'cmake/Modules')
-rw-r--r--cmake/Modules/FindEGL.cmake2
-rw-r--r--cmake/Modules/FindFLAC.cmake18
-rw-r--r--cmake/Modules/FindFreetype.cmake158
-rw-r--r--cmake/Modules/FindGLES.cmake2
-rw-r--r--cmake/Modules/FindGLEW.cmake65
-rw-r--r--cmake/Modules/FindSFML.cmake47
-rw-r--r--cmake/Modules/FindSndfile.cmake28
-rw-r--r--cmake/Modules/FindUDev.cmake4
-rw-r--r--cmake/Modules/FindVorbis.cmake24
-rw-r--r--cmake/Modules/FindXCB.cmake97
10 files changed, 328 insertions, 117 deletions
diff --git a/cmake/Modules/FindEGL.cmake b/cmake/Modules/FindEGL.cmake
index be9eda0..cde632a 100644
--- a/cmake/Modules/FindEGL.cmake
+++ b/cmake/Modules/FindEGL.cmake
@@ -9,6 +9,6 @@
find_path(EGL_INCLUDE_DIR EGL/egl.h)
find_library(EGL_LIBRARY NAMES EGL)
-
+
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(EGL DEFAULT_MSG EGL_LIBRARY EGL_INCLUDE_DIR)
diff --git a/cmake/Modules/FindFLAC.cmake b/cmake/Modules/FindFLAC.cmake
new file mode 100644
index 0000000..e820cf9
--- /dev/null
+++ b/cmake/Modules/FindFLAC.cmake
@@ -0,0 +1,18 @@
+#
+# Try to find FLAC libraries and include paths.
+# Once done this will define
+#
+# FLAC_FOUND
+# FLAC_INCLUDE_DIR
+# FLAC_LIBRARY
+#
+
+find_path(FLAC_INCLUDE_DIR FLAC/all.h)
+find_path(FLAC_INCLUDE_DIR FLAC/stream_decoder.h)
+
+find_library(FLAC_LIBRARY NAMES FLAC)
+
+include(FindPackageHandleStandardArgs)
+find_package_handle_standard_args(FLAC DEFAULT_MSG FLAC_LIBRARY FLAC_INCLUDE_DIR)
+
+mark_as_advanced(FLAC_INCLUDE_DIR FLAC_LIBRARY)
diff --git a/cmake/Modules/FindFreetype.cmake b/cmake/Modules/FindFreetype.cmake
new file mode 100644
index 0000000..6e3f3f7
--- /dev/null
+++ b/cmake/Modules/FindFreetype.cmake
@@ -0,0 +1,158 @@
+#.rst:
+# FindFreetype
+# ------------
+#
+# Locate FreeType library
+#
+# This module defines
+#
+# ::
+#
+# FREETYPE_LIBRARIES, the library to link against
+# FREETYPE_FOUND, if false, do not try to link to FREETYPE
+# FREETYPE_INCLUDE_DIRS, where to find headers.
+# FREETYPE_VERSION_STRING, the version of freetype found (since CMake 2.8.8)
+# This is the concatenation of the paths:
+# FREETYPE_INCLUDE_DIR_ft2build
+# FREETYPE_INCLUDE_DIR_freetype2
+#
+#
+#
+# $FREETYPE_DIR is an environment variable that would correspond to the
+# ./configure --prefix=$FREETYPE_DIR used in building FREETYPE.
+
+#=============================================================================
+# Copyright 2007-2009 Kitware, Inc.
+#
+# Distributed under the OSI-approved BSD License (the "License");
+# see accompanying file Copyright.txt for details.
+#
+# This software is distributed WITHOUT ANY WARRANTY; without even the
+# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+# See the License for more information.
+#=============================================================================
+# (To distribute this file outside of CMake, substitute the full
+# License text for the above reference.)
+
+# Created by Eric Wing.
+# Modifications by Alexander Neundorf.
+# This file has been renamed to "FindFreetype.cmake" instead of the correct
+# "FindFreeType.cmake" in order to be compatible with the one from KDE4, Alex.
+
+# Ugh, FreeType seems to use some #include trickery which
+# makes this harder than it should be. It looks like they
+# put ft2build.h in a common/easier-to-find location which
+# then contains a #include to a more specific header in a
+# more specific location (#include <freetype/config/ftheader.h>).
+# Then from there, they need to set a bunch of #define's
+# so you can do something like:
+# #include FT_FREETYPE_H
+# Unfortunately, using CMake's mechanisms like include_directories()
+# wants explicit full paths and this trickery doesn't work too well.
+# I'm going to attempt to cut out the middleman and hope
+# everything still works.
+find_path(
+ FREETYPE_INCLUDE_DIR_ft2build
+ ft2build.h
+ HINTS
+ ENV FREETYPE_DIR
+ PATHS
+ /usr/X11R6
+ /usr/local/X11R6
+ /usr/local/X11
+ /usr/freeware
+ ENV GTKMM_BASEPATH
+ [HKEY_CURRENT_USER\\SOFTWARE\\gtkmm\\2.4;Path]
+ [HKEY_LOCAL_MACHINE\\SOFTWARE\\gtkmm\\2.4;Path]
+ PATH_SUFFIXES
+ include/freetype2
+ include
+ freetype2
+)
+
+find_path(
+ FREETYPE_INCLUDE_DIR_freetype2
+ NAMES
+ freetype/config/ftheader.h
+ config/ftheader.h
+ HINTS
+ ENV FREETYPE_DIR
+ PATHS
+ /usr/X11R6
+ /usr/local/X11R6
+ /usr/local/X11
+ /usr/freeware
+ ENV GTKMM_BASEPATH
+ [HKEY_CURRENT_USER\\SOFTWARE\\gtkmm\\2.4;Path]
+ [HKEY_LOCAL_MACHINE\\SOFTWARE\\gtkmm\\2.4;Path]
+ PATH_SUFFIXES
+ include/freetype2
+ include
+ freetype2
+)
+
+find_library(FREETYPE_LIBRARY
+ NAMES
+ freetype
+ libfreetype
+ freetype219
+ HINTS
+ ENV FREETYPE_DIR
+ PATHS
+ /usr/X11R6
+ /usr/local/X11R6
+ /usr/local/X11
+ /usr/freeware
+ ENV GTKMM_BASEPATH
+ [HKEY_CURRENT_USER\\SOFTWARE\\gtkmm\\2.4;Path]
+ [HKEY_LOCAL_MACHINE\\SOFTWARE\\gtkmm\\2.4;Path]
+ PATH_SUFFIXES
+ lib
+)
+
+# set the user variables
+if(FREETYPE_INCLUDE_DIR_ft2build AND FREETYPE_INCLUDE_DIR_freetype2)
+ set(FREETYPE_INCLUDE_DIRS "${FREETYPE_INCLUDE_DIR_ft2build};${FREETYPE_INCLUDE_DIR_freetype2}")
+ list(REMOVE_DUPLICATES FREETYPE_INCLUDE_DIRS)
+endif()
+set(FREETYPE_LIBRARIES "${FREETYPE_LIBRARY}")
+
+if(EXISTS "${FREETYPE_INCLUDE_DIR_freetype2}/freetype/freetype.h")
+ set(FREETYPE_H "${FREETYPE_INCLUDE_DIR_freetype2}/freetype/freetype.h")
+elseif(EXISTS "${FREETYPE_INCLUDE_DIR_freetype2}/freetype.h")
+ set(FREETYPE_H "${FREETYPE_INCLUDE_DIR_freetype2}/freetype.h")
+endif()
+
+if(FREETYPE_INCLUDE_DIR_freetype2 AND FREETYPE_H)
+ file(STRINGS "${FREETYPE_H}" freetype_version_str
+ REGEX "^#[\t ]*define[\t ]+FREETYPE_(MAJOR|MINOR|PATCH)[\t ]+[0-9]+$")
+
+ unset(FREETYPE_VERSION_STRING)
+ foreach(VPART MAJOR MINOR PATCH)
+ foreach(VLINE ${freetype_version_str})
+ if(VLINE MATCHES "^#[\t ]*define[\t ]+FREETYPE_${VPART}[\t ]+([0-9]+)$")
+ set(FREETYPE_VERSION_PART "${CMAKE_MATCH_1}")
+ if(FREETYPE_VERSION_STRING)
+ set(FREETYPE_VERSION_STRING "${FREETYPE_VERSION_STRING}.${FREETYPE_VERSION_PART}")
+ else()
+ set(FREETYPE_VERSION_STRING "${FREETYPE_VERSION_PART}")
+ endif()
+ unset(FREETYPE_VERSION_PART)
+ endif()
+ endforeach()
+ endforeach()
+endif()
+
+
+# set FREETYPE_FOUND to TRUE if all listed variables are TRUE
+if(FREETYPE_LIBRARY AND FREETYPE_INCLUDE_DIRS AND FREETYPE_VERSION_STRING)
+ set(FREETYPE_FOUND TRUE)
+else()
+ set(FREETYPE_FOUND FALSE)
+endif()
+
+mark_as_advanced(
+ FREETYPE_LIBRARY
+ FREETYPE_INCLUDE_DIR_freetype2
+ FREETYPE_INCLUDE_DIR_ft2build
+)
diff --git a/cmake/Modules/FindGLES.cmake b/cmake/Modules/FindGLES.cmake
index 948e9bf..f34f2cd 100644
--- a/cmake/Modules/FindGLES.cmake
+++ b/cmake/Modules/FindGLES.cmake
@@ -9,6 +9,6 @@
find_path(GLES_INCLUDE_DIR GLES/gl.h)
find_library(GLES_LIBRARY NAMES GLESv1_CM)
-
+
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(GLES DEFAULT_MSG GLES_LIBRARY GLES_INCLUDE_DIR)
diff --git a/cmake/Modules/FindGLEW.cmake b/cmake/Modules/FindGLEW.cmake
deleted file mode 100644
index 17c3c39..0000000
--- a/cmake/Modules/FindGLEW.cmake
+++ /dev/null
@@ -1,65 +0,0 @@
-#
-# Try to find GLEW library and include path.
-# Once done this will define
-#
-# GLEW_FOUND
-# GLEW_INCLUDE_PATH
-# GLEW_LIBRARY
-#
-
-IF (WIN32)
- FIND_PATH( GLEW_INCLUDE_PATH GL/glew.h
- $ENV{PROGRAMFILES}/GLEW/include
- ${GLEW_ROOT_DIR}/include
- DOC "The directory where GL/glew.h resides")
-
- IF (NV_SYSTEM_PROCESSOR STREQUAL "AMD64")
- FIND_LIBRARY( GLEW_LIBRARY
- NAMES glew64 glew64s
- PATHS
- $ENV{PROGRAMFILES}/GLEW/lib
- ${PROJECT_SOURCE_DIR}/src/nvgl/glew/bin
- ${PROJECT_SOURCE_DIR}/src/nvgl/glew/lib
- DOC "The GLEW library (64-bit)"
- )
- ELSE(NV_SYSTEM_PROCESSOR STREQUAL "AMD64")
- FIND_LIBRARY( GLEW_LIBRARY
- NAMES glew GLEW glew32 glew32s
- PATHS
- $ENV{PROGRAMFILES}/GLEW/lib
- ${PROJECT_SOURCE_DIR}/src/nvgl/glew/bin
- ${PROJECT_SOURCE_DIR}/src/nvgl/glew/lib
- DOC "The GLEW library"
- )
- ENDIF(NV_SYSTEM_PROCESSOR STREQUAL "AMD64")
-ELSE (WIN32)
- FIND_PATH( GLEW_INCLUDE_PATH GL/glew.h
- /usr/include
- /usr/local/include
- /sw/include
- /opt/local/include
- ${GLEW_ROOT_DIR}/include
- DOC "The directory where GL/glew.h resides")
-
- FIND_LIBRARY( GLEW_LIBRARY
- NAMES GLEW glew
- PATHS
- /usr/lib64
- /usr/lib
- /usr/local/lib64
- /usr/local/lib
- /sw/lib
- /opt/local/lib
- ${GLEW_ROOT_DIR}/lib
- DOC "The GLEW library")
-ENDIF (WIN32)
-
-SET(GLEW_FOUND "NO")
-IF (GLEW_INCLUDE_PATH AND GLEW_LIBRARY)
- SET(GLEW_LIBRARIES ${GLEW_LIBRARY})
- SET(GLEW_FOUND "YES")
-ENDIF (GLEW_INCLUDE_PATH AND GLEW_LIBRARY)
-
-
-include(FindPackageHandleStandardArgs)
-find_package_handle_standard_args(GLEW DEFAULT_MSG GLEW_LIBRARY GLEW_INCLUDE_PATH)
diff --git a/cmake/Modules/FindSFML.cmake b/cmake/Modules/FindSFML.cmake
index 93e94e5..48873ef 100644
--- a/cmake/Modules/FindSFML.cmake
+++ b/cmake/Modules/FindSFML.cmake
@@ -181,7 +181,7 @@ foreach(FIND_SFML_COMPONENT ${SFML_FIND_COMPONENTS})
if (SFML_${FIND_SFML_COMPONENT_UPPER}_LIBRARY_DEBUG OR SFML_${FIND_SFML_COMPONENT_UPPER}_LIBRARY_RELEASE)
# library found
set(SFML_${FIND_SFML_COMPONENT_UPPER}_FOUND TRUE)
-
+
# if both are found, set SFML_XXX_LIBRARY to contain both
if (SFML_${FIND_SFML_COMPONENT_UPPER}_LIBRARY_DEBUG AND SFML_${FIND_SFML_COMPONENT_UPPER}_LIBRARY_RELEASE)
set(SFML_${FIND_SFML_COMPONENT_UPPER}_LIBRARY debug ${SFML_${FIND_SFML_COMPONENT_UPPER}_LIBRARY_DEBUG}
@@ -240,7 +240,8 @@ if(SFML_STATIC_LIBRARIES)
# macro that searches for a 3rd-party library
macro(find_sfml_dependency output friendlyname)
- find_library(${output} NAMES ${ARGN} PATHS ${FIND_SFML_PATHS} PATH_SUFFIXES lib)
+ # No lookup in environment variables (PATH on Windows), as they may contain wrong library versions
+ find_library(${output} NAMES ${ARGN} PATHS ${FIND_SFML_PATHS} PATH_SUFFIXES lib NO_SYSTEM_ENVIRONMENT_PATH)
if(${${output}} STREQUAL "${output}-NOTFOUND")
unset(output)
set(FIND_SFML_DEPENDENCIES_NOTFOUND "${FIND_SFML_DEPENDENCIES_NOTFOUND} ${friendlyname}")
@@ -256,7 +257,7 @@ if(SFML_STATIC_LIBRARIES)
set(SFML_SYSTEM_DEPENDENCIES "pthread")
endif()
if(FIND_SFML_OS_LINUX)
- set(SFML_SYSTEM_DEPENDENCIES "rt")
+ set(SFML_SYSTEM_DEPENDENCIES ${SFML_SYSTEM_DEPENDENCIES} "rt")
endif()
if(FIND_SFML_OS_WINDOWS)
set(SFML_SYSTEM_DEPENDENCIES "winmm")
@@ -280,22 +281,25 @@ if(SFML_STATIC_LIBRARIES)
if(NOT ${FIND_SFML_WINDOW_COMPONENT} EQUAL -1)
# find libraries
- if(FIND_SFML_OS_LINUX)
+ if(FIND_SFML_OS_LINUX OR FIND_SFML_OS_FREEBSD)
find_sfml_dependency(X11_LIBRARY "X11" X11)
- find_sfml_dependency(XRANDR_LIBRARY "Xrandr" Xrandr)
- find_sfml_dependency(UDEV_LIBRARIES "UDev" udev)
+ find_sfml_dependency(LIBXCB_LIBRARIES "XCB" xcb libxcb)
+ find_sfml_dependency(X11_XCB_LIBRARY "X11-xcb" X11-xcb libX11-xcb)
+ find_sfml_dependency(XCB_RANDR_LIBRARY "xcb-randr" xcb-randr libxcb-randr)
+ find_sfml_dependency(XCB_IMAGE_LIBRARY "xcb-image" xcb-image libxcb-image)
+ endif()
+
+ if(FIND_SFML_OS_LINUX)
+ find_sfml_dependency(UDEV_LIBRARIES "UDev" udev libudev)
endif()
# update the list
if(FIND_SFML_OS_WINDOWS)
set(SFML_WINDOW_DEPENDENCIES ${SFML_WINDOW_DEPENDENCIES} "opengl32" "winmm" "gdi32")
- elseif(FIND_SFML_OS_LINUX OR FIND_SFML_OS_FREEBSD)
- set(SFML_WINDOW_DEPENDENCIES ${SFML_WINDOW_DEPENDENCIES} "GL" ${X11_LIBRARY} ${XRANDR_LIBRARY})
- if(FIND_SFML_OS_FREEBSD)
- set(SFML_WINDOW_DEPENDENCIES ${SFML_WINDOW_DEPENDENCIES} "usbhid")
- else()
- set(SFML_WINDOW_DEPENDENCIES ${SFML_WINDOW_DEPENDENCIES} ${UDEV_LIBRARIES})
- endif()
+ elseif(FIND_SFML_OS_LINUX)
+ set(SFML_WINDOW_DEPENDENCIES ${SFML_WINDOW_DEPENDENCIES} "GL" ${X11_LIBRARY} ${LIBXCB_LIBRARIES} ${X11_XCB_LIBRARY} ${XCB_RANDR_LIBRARY} ${XCB_IMAGE_LIBRARY} ${UDEV_LIBRARIES})
+ elseif(FIND_SFML_OS_FREEBSD)
+ set(SFML_WINDOW_DEPENDENCIES ${SFML_WINDOW_DEPENDENCIES} "GL" ${X11_LIBRARY} ${LIBXCB_LIBRARIES} ${X11_XCB_LIBRARY} ${XCB_RANDR_LIBRARY} ${XCB_IMAGE_LIBRARY} "usbhid")
elseif(FIND_SFML_OS_MACOSX)
set(SFML_WINDOW_DEPENDENCIES ${SFML_WINDOW_DEPENDENCIES} "-framework OpenGL -framework Foundation -framework AppKit -framework IOKit -framework Carbon")
endif()
@@ -305,14 +309,13 @@ if(SFML_STATIC_LIBRARIES)
# sfml-graphics
list(FIND SFML_FIND_COMPONENTS "graphics" FIND_SFML_GRAPHICS_COMPONENT)
if(NOT ${FIND_SFML_GRAPHICS_COMPONENT} EQUAL -1)
-
+
# find libraries
find_sfml_dependency(FREETYPE_LIBRARY "FreeType" freetype)
- find_sfml_dependency(GLEW_LIBRARY "GLEW" glew GLEW glew32 glew32s glew64 glew64s)
find_sfml_dependency(JPEG_LIBRARY "libjpeg" jpeg)
# update the list
- set(SFML_GRAPHICS_DEPENDENCIES ${FREETYPE_LIBRARY} ${GLEW_LIBRARY} ${JPEG_LIBRARY})
+ set(SFML_GRAPHICS_DEPENDENCIES ${FREETYPE_LIBRARY} ${JPEG_LIBRARY})
set(SFML_DEPENDENCIES ${SFML_GRAPHICS_DEPENDENCIES} ${SFML_DEPENDENCIES})
endif()
@@ -322,11 +325,15 @@ if(SFML_STATIC_LIBRARIES)
# find libraries
find_sfml_dependency(OPENAL_LIBRARY "OpenAL" openal openal32)
- find_sfml_dependency(SNDFILE_LIBRARY "libsndfile" sndfile)
+ find_sfml_dependency(OGG_LIBRARY "Ogg" ogg)
+ find_sfml_dependency(VORBIS_LIBRARY "Vorbis" vorbis)
+ find_sfml_dependency(VORBISFILE_LIBRARY "VorbisFile" vorbisfile)
+ find_sfml_dependency(VORBISENC_LIBRARY "VorbisEnc" vorbisenc)
+ find_sfml_dependency(FLAC_LIBRARY "FLAC" flac)
# update the list
- set(SFML_AUDIO_DEPENDENCIES ${OPENAL_LIBRARY} ${SNDFILE_LIBRARY})
- set(SFML_DEPENDENCIES ${SFML_AUDIO_DEPENDENCIES} ${SFML_DEPENDENCIES})
+ set(SFML_AUDIO_DEPENDENCIES ${OPENAL_LIBRARY} ${FLAC_LIBRARY} ${VORBISENC_LIBRARY} ${VORBISFILE_LIBRARY} ${VORBIS_LIBRARY} ${OGG_LIBRARY})
+ set(SFML_DEPENDENCIES ${SFML_DEPENDENCIES} ${SFML_AUDIO_DEPENDENCIES})
endif()
endif()
@@ -354,6 +361,6 @@ if (NOT SFML_FOUND)
endif()
# handle success
-if(SFML_FOUND)
+if(SFML_FOUND AND NOT SFML_FIND_QUIETLY)
message(STATUS "Found SFML ${SFML_VERSION_MAJOR}.${SFML_VERSION_MINOR}.${SFML_VERSION_PATCH} in ${SFML_INCLUDE_DIR}")
endif()
diff --git a/cmake/Modules/FindSndfile.cmake b/cmake/Modules/FindSndfile.cmake
deleted file mode 100644
index ac8a635..0000000
--- a/cmake/Modules/FindSndfile.cmake
+++ /dev/null
@@ -1,28 +0,0 @@
-# - Find sndfile
-# Find the native sndfile includes and libraries
-#
-# SNDFILE_INCLUDE_DIR - where to find sndfile.h, etc.
-# SNDFILE_LIBRARIES - List of libraries when using libsndfile.
-# SNDFILE_FOUND - True if libsndfile found.
-
-if(SNDFILE_INCLUDE_DIR)
- # Already in cache, be silent
- set(SNDFILE_FIND_QUIETLY TRUE)
-endif(SNDFILE_INCLUDE_DIR)
-
-find_path(SNDFILE_INCLUDE_DIR sndfile.h)
-
-find_library(SNDFILE_LIBRARY NAMES sndfile sndfile-1)
-
-# Handle the QUIETLY and REQUIRED arguments and set SNDFILE_FOUND to TRUE if
-# all listed variables are TRUE.
-include(FindPackageHandleStandardArgs)
-find_package_handle_standard_args(SNDFILE DEFAULT_MSG SNDFILE_LIBRARY SNDFILE_INCLUDE_DIR)
-
-if(SNDFILE_FOUND)
- set(SNDFILE_LIBRARIES ${SNDFILE_LIBRARY})
-else(SNDFILE_FOUND)
- set(SNDFILE_LIBRARIES)
-endif(SNDFILE_FOUND)
-
-mark_as_advanced(SNDFILE_INCLUDE_DIR SNDFILE_LIBRARY)
diff --git a/cmake/Modules/FindUDev.cmake b/cmake/Modules/FindUDev.cmake
index e3c6e70..9ae3cf8 100644
--- a/cmake/Modules/FindUDev.cmake
+++ b/cmake/Modules/FindUDev.cmake
@@ -29,9 +29,9 @@ IF (UDEV_LIBRARIES AND UDEV_INCLUDE_DIR)
execute_process(COMMAND pkg-config --atleast-version=143 libudev RESULT_VARIABLE UDEV_STABLE)
# retvale is 0 of the condition is "true" so we need to negate the value...
if (UDEV_STABLE)
- set(UDEV_STABLE 0)
+ set(UDEV_STABLE 0)
else (UDEV_STABLE)
- set(UDEV_STABLE 1)
+ set(UDEV_STABLE 1)
endif (UDEV_STABLE)
message(STATUS "libudev stable: ${UDEV_STABLE}")
ENDIF (UDEV_LIBRARIES AND UDEV_INCLUDE_DIR)
diff --git a/cmake/Modules/FindVorbis.cmake b/cmake/Modules/FindVorbis.cmake
new file mode 100644
index 0000000..645bba7
--- /dev/null
+++ b/cmake/Modules/FindVorbis.cmake
@@ -0,0 +1,24 @@
+#
+# Try to find Ogg/Vorbis libraries and include paths.
+# Once done this will define
+#
+# VORBIS_FOUND
+# VORBIS_INCLUDE_DIRS
+# VORBIS_LIBRARIES
+#
+
+find_path(OGG_INCLUDE_DIR ogg/ogg.h)
+find_path(VORBIS_INCLUDE_DIR vorbis/vorbisfile.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)
+
+include(FindPackageHandleStandardArgs)
+find_package_handle_standard_args(VORBIS DEFAULT_MSG VORBIS_LIBRARY VORBISFILE_LIBRARY VORBISENC_LIBRARY OGG_LIBRARY VORBIS_INCLUDE_DIR OGG_INCLUDE_DIR)
+
+set(VORBIS_INCLUDE_DIRS ${OGG_INCLUDE_DIR} ${VORBIS_INCLUDE_DIR})
+set(VORBIS_LIBRARIES ${VORBISENC_LIBRARY} ${VORBISFILE_LIBRARY} ${VORBIS_LIBRARY} ${OGG_LIBRARY})
+
+mark_as_advanced(OGG_INCLUDE_DIR VORBIS_INCLUDE_DIR OGG_LIBRARY VORBIS_LIBRARY VORBISFILE_LIBRARY VORBISENC_LIBRARY)
diff --git a/cmake/Modules/FindXCB.cmake b/cmake/Modules/FindXCB.cmake
new file mode 100644
index 0000000..d691461
--- /dev/null
+++ b/cmake/Modules/FindXCB.cmake
@@ -0,0 +1,97 @@
+# Try to find libxcb
+#
+#
+# Once done this will define:
+# LIBXCB_FOUND - True if xcb was found
+# LIBXCB_INCLUDE_DIRS - Directories containing the headers
+# LIBXCB_LIBRARIES - List of libraries to link to
+#
+# Also for each requested component:
+# LIBXCB_${UPPER_COMPONENT_NAME}_FOUND
+# LIBXCB_${UPPER_COMPONENT_NAME}_INCLUDE_DIRS
+# LIBXCB_${UPPER_COMPONENT_NAME}_LIBRARIES
+
+include(FindPackageHandleStandardArgs)
+
+IF(NOT WIN32)
+ IF(LIBXCB_LIBRARIES AND LIBXCB_INCLUDE_DIR)
+ set(XCB_FIND_QUIETLY TRUE)
+ ENDIF()
+
+ # Find xcb
+ FIND_PATH(LIBXCB_INCLUDE_DIR xcb/xcb.h)
+ FIND_LIBRARY(LIBXCB_LIBRARY NAMES xcb libxcb)
+
+ # Add xcb info to LIBXCB_LIBRARIES and LIBXCB_INCLUDE_DIRS
+ SET(LIBXCB_LIBRARIES ${LIBXCB_LIBRARY})
+ SET(LIBXCB_INCLUDE_DIRS ${LIBXCB_INCLUDE_DIR})
+
+ find_package_handle_standard_args(LIBXCB DEFAULT_MSG
+ LIBXCB_LIBRARY LIBXCB_INCLUDE_DIR)
+
+ mark_as_advanced(LIBXCB_LIBRARY LIBXCB_INCLUDE_DIR)
+
+ # Check whether we should search for XLIB_XCB
+ set(FIND_XLIB_XCB FALSE)
+ FOREACH(XCB_COMPONENT ${XCB_FIND_COMPONENTS})
+ # Generate upper string of the component name
+ string(TOUPPER ${XCB_COMPONENT} XCB_COMPONENT_UPPER)
+
+ IF(${XCB_COMPONENT_UPPER} MATCHES "XLIB_XCB")
+ set(FIND_XLIB_XCB TRUE)
+ ELSE()
+ # XCB_COMPONENTS is generated to be a copy of XCB_FIND_COMPONENTS
+ # without XLIB_XCB (for later component search)
+ set(XCB_COMPONENTS ${XCB_COMPONENTS} ${XCB_COMPONENT})
+ ENDIF()
+ ENDFOREACH()
+
+ # Find XLIB_XCB if requested
+ IF(FIND_XLIB_XCB)
+ FIND_PATH(XLIB_XCB_INCLUDE_DIR X11/Xlib-xcb.h)
+ FIND_LIBRARY(XLIB_XCB_LIBRARY NAMES X11-xcb libX11-xcb)
+
+ SET(XLIB_XCB_LIBRARIES ${XLIB_XCB_LIBRARY})
+ SET(XLIB_XCB_INCLUDE_DIRS ${XLIB_XCB_INCLUDE_DIR})
+
+ find_package_handle_standard_args(XLIB_XCB DEFAULT_MSG
+ XLIB_XCB_LIBRARY LIBXCB_INCLUDE_DIR)
+
+ mark_as_advanced(XLIB_XCB_LIBRARY XLIB_XCB_INCLUDE_DIR)
+
+ # Add xlib_xcb info to LIBXCB_LIBRARIES and LIBXCB_INCLUDE_DIRS
+ set(LIBXCB_LIBRARIES ${LIBXCB_LIBRARIES} ${XLIB_XCB_LIBRARIES})
+ set(LIBXCB_INCLUDE_DIRS ${LIBXCB_INCLUDE_DIRS} ${XLIB_XCB_INCLUDE_DIR})
+
+ if(NOT XLIB_XCB_FOUND)
+ message(FATAL_ERROR "XlibXcb library not found")
+ endif()
+ ELSE()
+ # Add component name to the component list
+ set(${XCB_COMPONENTS} ${XCB_FIND_COMPONENTS})
+ ENDIF()
+
+ # Loop through requested xcb components (does not contain xlib_xcb)
+ FOREACH(XCB_COMPONENT ${XCB_COMPONENTS})
+ # Generate lower and upper string of the component name
+ string(TOLOWER ${XCB_COMPONENT} XCB_COMPONENT_LOWER)
+ string(TOUPPER ${XCB_COMPONENT} XCB_COMPONENT_UPPER)
+
+ # Find the specific component
+ FIND_LIBRARY(LIBXCB_${XCB_COMPONENT_UPPER}_LIBRARY
+ NAMES libxcb-${XCB_COMPONENT_LOWER} xcb-${XCB_COMPONENT_LOWER})
+
+ find_package_handle_standard_args(LIBXCB_${XCB_COMPONENT_UPPER} DEFAULT_MSG
+ LIBXCB_${XCB_COMPONENT_UPPER}_LIBRARY LIBXCB_INCLUDE_DIR)
+
+ mark_as_advanced(LIBXCB_${XCB_COMPONENT_UPPER}_LIBRARY)
+
+ # Append the component's library path to LIBXCB_LIBRARIES
+ set(LIBXCB_LIBRARIES ${LIBXCB_LIBRARIES} ${LIBXCB_${XCB_COMPONENT_UPPER}_LIBRARY})
+
+ if(NOT LIBXCB_${XCB_COMPONENT_UPPER}_FOUND)
+ message(FATAL_ERROR "xcb-${XCB_COMPONENT_LOWER} not found")
+ endif()
+ ENDFOREACH()
+
+endif()