"separate build directory and run cmake from there.")
endif("${CMAKE_SOURCE_DIR}" STREQUAL "${CMAKE_BINARY_DIR}")
+# Set local module path.
+list(APPEND CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake")
+
project(FreeDV)
#
#
if(NOT USE_STATIC_PORTAUDIO)
message(STATUS "Looking for portaudio...")
- find_library(PORTAUDIO_LIBS NAMES libportaudio-2.dll portaudio HINTS /usr/local/lib/portaudio2)
- find_path(PORTAUDIO_INCLUDE_DIR portaudio.h HINTS /usr/local/include/portaudio2)
- message(STATUS " portaudio library: ${PORTAUDIO_LIBS}")
- message(STATUS " portaudio headers: ${PORTAUDIO_INCLUDE_DIR}")
- if(PORTAUDIO_LIBS AND PORTAUDIO_INCLUDE_DIR)
- list(APPEND FREEDV_LINK_LIBS ${PORTAUDIO_LIBS})
- include_directories(${PORTAUDIO_INCLUDE_DIR})
- else(PORTAUDIO_LIBS AND PORTAUDIO_INCLUDE_DIR)
- message(FATAL_ERROR "portaudio library not found.
-On Linux systems try installing:
- portaudio-devel (RPM based systems)
- libportaudio-dev (DEB based systems)
-On Windows it's easiest to use the cmake option: USE_STATIC_PORTAUDIO"
- )
- endif(PORTAUDIO_LIBS AND PORTAUDIO_INCLUDE_DIR)
+find_package(Portaudio REQUIRED)
+if(PORTAUDIO_FOUND AND ${PORTAUDIO_VERSION} EQUAL 19)
+ list(APPEND FREEDV_LINK_LIBRARIES ${PORTAUDIO_LIBRARIES})
+ include_directories(${PORTAUDIO_INCLUDE_DIRS})
+else()
+ message(WARNING "Portaudio versions other than 19 are known to have issues. You have been warned!")
+endif()
+# find_library(PORTAUDIO_LIBS NAMES libportaudio-2.dll portaudio HINTS /usr/local/lib/portaudio2)
+# find_path(PORTAUDIO_INCLUDE_DIR portaudio.h HINTS /usr/local/include/portaudio2)
+# message(STATUS " portaudio library: ${PORTAUDIO_LIBS}")
+# message(STATUS " portaudio headers: ${PORTAUDIO_INCLUDE_DIR}")
+# if(PORTAUDIO_LIBS AND PORTAUDIO_INCLUDE_DIR)
+# list(APPEND FREEDV_LINK_LIBS ${PORTAUDIO_LIBS})
+# include_directories(${PORTAUDIO_INCLUDE_DIR})
+# else(PORTAUDIO_LIBS AND PORTAUDIO_INCLUDE_DIR)
+# message(FATAL_ERROR "portaudio library not found.
+#On Linux systems try installing:
+# portaudio-devel (RPM based systems)
+# libportaudio-dev (DEB based systems)
+#On Windows it's easiest to use the cmake option: USE_STATIC_PORTAUDIO"
+# )
+# endif(PORTAUDIO_LIBS AND PORTAUDIO_INCLUDE_DIR)
else(NOT USE_STATIC_PORTAUDIO)
message(STATUS "Will attempt static build of portaudio.")
include(cmake/BuildPortaudio.cmake)
endif(NOT USE_STATIC_PORTAUDIO)
# Do we need this?
-find_library(PORTAUDIOCPP portaudiocpp)
-if(PORTAUDIOCPP)
- message(STATUS "portaudiocpp library: ${PORTAUDIOCPP}")
- list(APPEND FREEDV_LINK_LIBS ${PORTAUDIOCPP})
-endif(PORTAUDIOCPP)
+#find_library(PORTAUDIOCPP portaudiocpp)
+#if(PORTAUDIOCPP)
+# message(STATUS "portaudiocpp library: ${PORTAUDIOCPP}")
+# list(APPEND FREEDV_LINK_LIBS ${PORTAUDIOCPP})
+#endif(PORTAUDIOCPP)
#
# Hamlib library
--- /dev/null
+# - Try to find Portaudio
+# Once done this will define
+#
+# PORTAUDIO_FOUND - system has Portaudio
+# PORTAUDIO_INCLUDE_DIRS - the Portaudio include directory
+# PORTAUDIO_LIBRARIES - Link these to use Portaudio
+# PORTAUDIO_DEFINITIONS - Compiler switches required for using Portaudio
+# PORTAUDIO_VERSION - Portaudio version
+#
+# Copyright (c) 2006 Andreas Schneider <mail@cynapses.org>
+#
+# Redistribution and use is allowed according to the terms of the New BSD license.
+# For details see the accompanying COPYING-CMAKE-SCRIPTS file.
+#
+
+
+if (PORTAUDIO_LIBRARIES AND PORTAUDIO_INCLUDE_DIRS)
+ # in cache already
+ set(PORTAUDIO_FOUND TRUE)
+else (PORTAUDIO_LIBRARIES AND PORTAUDIO_INCLUDE_DIRS)
+ if (NOT WIN32)
+ include(FindPkgConfig)
+ pkg_check_modules(PORTAUDIO2 portaudio-2.0)
+ endif (NOT WIN32)
+
+ if (PORTAUDIO2_FOUND)
+ set(PORTAUDIO_INCLUDE_DIRS
+ ${PORTAUDIO2_INCLUDE_DIRS}
+ )
+ if (${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
+ set(PORTAUDIO_LIBRARIES "${PORTAUDIO2_LIBRARY_DIRS}/lib${PORTAUDIO2_LIBRARIES}.dylib")
+ else (${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
+ set(PORTAUDIO_LIBRARIES
+ ${PORTAUDIO2_LIBRARIES}
+ )
+ endif (${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
+ set(PORTAUDIO_VERSION
+ 19
+ )
+ set(PORTAUDIO_FOUND TRUE)
+ else (PORTAUDIO2_FOUND)
+ find_path(PORTAUDIO_INCLUDE_DIR
+ NAMES
+ portaudio.h
+ PATHS
+ /usr/include
+ /usr/local/include
+ /opt/local/include
+ /sw/include
+ )
+
+ find_library(PORTAUDIO_LIBRARY
+ NAMES
+ portaudio
+ PATHS
+ /usr/lib
+ /usr/local/lib
+ /opt/local/lib
+ /sw/lib
+ )
+
+ find_path(PORTAUDIO_LIBRARY_DIR
+ NAMES
+ portaudio
+ PATHS
+ /usr/lib
+ /usr/local/lib
+ /opt/local/lib
+ /sw/lib
+ )
+
+ set(PORTAUDIO_INCLUDE_DIRS
+ ${PORTAUDIO_INCLUDE_DIR}
+ )
+ set(PORTAUDIO_LIBRARIES
+ ${PORTAUDIO_LIBRARY}
+ )
+
+ set(PORTAUDIO_LIBRARY_DIRS
+ ${PORTAUDIO_LIBRARY_DIR}
+ )
+
+ set(PORTAUDIO_VERSION
+ 18
+ )
+
+ if (PORTAUDIO_INCLUDE_DIRS AND PORTAUDIO_LIBRARIES)
+ set(PORTAUDIO_FOUND TRUE)
+ endif (PORTAUDIO_INCLUDE_DIRS AND PORTAUDIO_LIBRARIES)
+
+ if (PORTAUDIO_FOUND)
+ if (NOT Portaudio_FIND_QUIETLY)
+ message(STATUS "Found Portaudio: ${PORTAUDIO_LIBRARIES}")
+ endif (NOT Portaudio_FIND_QUIETLY)
+ else (PORTAUDIO_FOUND)
+ if (Portaudio_FIND_REQUIRED)
+ message(FATAL_ERROR "Could not find Portaudio")
+ endif (Portaudio_FIND_REQUIRED)
+ endif (PORTAUDIO_FOUND)
+ endif (PORTAUDIO2_FOUND)
+
+
+ # show the PORTAUDIO_INCLUDE_DIRS and PORTAUDIO_LIBRARIES variables only in the advanced view
+ mark_as_advanced(PORTAUDIO_INCLUDE_DIRS PORTAUDIO_LIBRARIES)
+
+endif (PORTAUDIO_LIBRARIES AND PORTAUDIO_INCLUDE_DIRS)
+