added FindSndFile cmake module to replace inline checks.
authorCampbell Barton <ideasman42@gmail.com>
Sat, 18 Jun 2011 12:12:19 +0000 (12:12 +0000)
committerCampbell Barton <ideasman42@gmail.com>
Sat, 18 Jun 2011 12:12:19 +0000 (12:12 +0000)
CMakeLists.txt
build_files/cmake/Modules/FindOpenEXR.cmake
build_files/cmake/Modules/FindSndFile.cmake [new file with mode: 0644]
build_files/cmake/macros.cmake
intern/audaspace/CMakeLists.txt

index 4cd775a222beff219f8e2abdfe38747c2cb01794..91fe2aa0f7f3ed62c910c494daae2e93348a7e53 100644 (file)
@@ -283,10 +283,10 @@ if(UNIX AND NOT APPLE)
        endif()
 
        if(WITH_CODEC_SNDFILE)
-               set(SNDFILE /usr)
-               set(SNDFILE_INC ${SNDFILE}/include)
-               set(SNDFILE_LIB sndfile)
-               set(SNDFILE_LIBPATH ${SNDFILE}/lib)
+               find_package(SndFile)
+               if(NOT SNDFILE_FOUND)
+                       set(WITH_CODEC_SNDFILE OFF)
+               endif()
        endif()
 
        if(WITH_INTERNATIONAL)
@@ -518,9 +518,9 @@ elseif(WIN32)
 
        if(WITH_CODEC_SNDFILE)
                set(SNDFILE ${LIBDIR}/sndfile)
-               set(SNDFILE_INC ${SNDFILE}/include)
-               set(SNDFILE_LIB libsndfile-1)
-               set(SNDFILE_LIBPATH ${SNDFILE}/lib)
+               set(SNDFILE_INCLUDE_DIRS ${SNDFILE}/include)
+               set(SNDFILE_LIBRARIES libsndfile-1)
+               set(SNDFILE_LIBPATH ${SNDFILE}/lib) # TODO, deprecate
        endif()
 
        if(WITH_SDL)
@@ -831,9 +831,9 @@ elseif(APPLE)
 
        if(WITH_CODEC_SNDFILE)
                set(SNDFILE ${LIBDIR}/sndfile)
-               set(SNDFILE_INC ${SNDFILE}/include)
-               set(SNDFILE_LIB sndfile FLAC ogg vorbis vorbisenc)
-               set(SNDFILE_LIBPATH ${SNDFILE}/lib ${FFMPEG}/lib)
+               set(SNDFILE_INCLUDE_DIRS ${SNDFILE}/include)
+               set(SNDFILE_LIBRARIES sndfile FLAC ogg vorbis vorbisenc)
+               set(SNDFILE_LIBPATH ${SNDFILE}/lib ${FFMPEG}/lib)  # TODO, deprecate
        endif()
 
        set(PYTHON_VERSION 3.2)
index 9a1169733481662678e4ae3e99358786ca60c1ac..0d4610bd9269f0b18b96f042ced68b868bed2c0d 100644 (file)
@@ -79,7 +79,7 @@ FIND_PACKAGE_HANDLE_STANDARD_ARGS(OpenEXR  DEFAULT_MSG
 IF(OPENEXR_FOUND)
   SET(OPENEXR_LIBRARIES ${_openexr_LIBRARIES})
   SET(OPENEXR_INCLUDE_DIRS ${OPENEXR_INCLUDE_DIR})
-ENDIF(OPENEXR_FOUND)
+ENDIF()
 
 MARK_AS_ADVANCED(OPENEXR_INCLUDE_DIR)
 FOREACH(COMPONENT ${_openexr_FIND_COMPONENTS})
diff --git a/build_files/cmake/Modules/FindSndFile.cmake b/build_files/cmake/Modules/FindSndFile.cmake
new file mode 100644 (file)
index 0000000..e4c8d9f
--- /dev/null
@@ -0,0 +1,64 @@
+# - Find SndFile library
+# Find the native SndFile includes and library
+# This module defines
+#  SNDFILE_INCLUDE_DIRS, where to find ImfXdr.h, etc. Set when
+#                        SNDFILE_INCLUDE_DIR is found.
+#  SNDFILE_LIBRARIES, libraries to link against to use SndFile.
+#  SNDFILE_ROOT_DIR, The base directory to search for SndFile.
+#                    This can also be an environment variable.
+#  SNDFILE_FOUND, If false, do not try to use SndFile.
+#
+# also defined, but not for general use are
+#  SNDFILE_LIBRARY, where to find the SndFile library.
+
+#=============================================================================
+# Copyright 2002-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.)
+
+# If SNDFILE_ROOT_DIR was defined in the environment, use it.
+IF(NOT SNDFILE_ROOT_DIR AND NOT $ENV{SNDFILE_ROOT_DIR} STREQUAL "")
+  SET(SNDFILE_ROOT_DIR $ENV{SNDFILE_ROOT_DIR})
+ENDIF()
+
+SET(_sndfile_SEARCH_DIRS
+  ${SNDFILE_ROOT_DIR}
+  /usr/local
+  /sw # Fink
+  /opt/local # DarwinPorts
+  /opt/csw # Blastwave
+)
+
+FIND_PATH(SNDFILE_INCLUDE_DIR sndfile.h
+  HINTS
+    ${_sndfile_SEARCH_DIRS}
+  PATH_SUFFIXES
+    include
+)
+
+FIND_LIBRARY(SNDFILE_LIBRARY NAMES "sndfile"
+  HINTS ${_sndfile_SEARCH_DIRS}
+  PATH_SUFFIXES lib64 lib
+  )
+
+# 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})
+  SET(SNDFILE_INCLUDE_DIRS ${SNDFILE_INCLUDE_DIR})
+ENDIF(SNDFILE_FOUND)
+
+MARK_AS_ADVANCED(SNDFILE_INCLUDE_DIR)
+MARK_AS_ADVANCED(SNDFILE_LIBRARY)
index 9b19ed331622307e594ce3146d3540eee064241e..b0b777f936a7cceca54d66a6dc038e3411f3dc8c 100644 (file)
@@ -200,7 +200,7 @@ macro(setup_liblinks
                target_link_libraries(${target} ${JACK_LIB})
        endif()
        if(WITH_CODEC_SNDFILE)
-               target_link_libraries(${target} ${SNDFILE_LIB})
+               target_link_libraries(${target} ${SNDFILE_LIBRARIES})
        endif()
        if(WITH_SAMPLERATE)
                target_link_libraries(${target} ${LIBSAMPLERATE_LIB})
index b7a0b06d4911738642838d573a6ecb93d90386c5..e2356256af5d188b7a97e1f92cf83e35f942a81c 100644 (file)
@@ -206,7 +206,7 @@ endif()
 if(WITH_CODEC_SNDFILE)
        add_definitions(-DWITH_SNDFILE)
        list(APPEND INC sndfile)
-       list(APPEND INC_SYS ${SNDFILE_INC})
+       list(APPEND INC_SYS ${SNDFILE_INCLUDE_DIRS})
        list(APPEND SRC
                sndfile/AUD_SndFileFactory.cpp
                sndfile/AUD_SndFileReader.cpp