Support mulaw buffer formats
[alure.git] / CMakeLists.txt
blob60d57103ad5549467d6e06c06023e542cde29ac2
1 cmake_minimum_required(VERSION 2.6)
2 project(alure)
4 set(CMAKE_MODULE_PATH "${alure_SOURCE_DIR}/cmake")
6 include(CheckCXXCompilerFlag)
8 find_package(OpenAL REQUIRED)
10 include_directories(${alure_SOURCE_DIR}/include/AL ${alure_BINARY_DIR} ${OPENAL_INCLUDE_DIR})
12 check_cxx_compiler_flag(-std=c++11 HAVE_STD_CXX11)
13 if(HAVE_STD_CXX11)
14     set(CMAKE_CXX_FLAGS "-std=c++11 ${CMAKE_CXX_FLAGS}")
15 endif()
17 check_cxx_compiler_flag(-Wall HAVE_WALL_SWITCH)
18 if(HAVE_WALL_SWITCH)
19     set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall")
20 endif()
21 check_cxx_compiler_flag(-Wextra HAVE_WEXTRA_SWITCH)
22 if(HAVE_WEXTRA_SWITCH)
23     set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wextra")
24 endif()
26 set(alure_srcs src/devicemanager.cpp
27                src/device.cpp
28                src/context.cpp
29                src/buffer.cpp
30                src/source.cpp
32 set(alure_libs ${OPENAL_LIBRARY})
34 find_package(SndFile)
35 if(SNDFILE_FOUND)
36     include_directories(${SNDFILE_INCLUDE_DIRS})
37     set(alure_libs ${alure_libs} ${SNDFILE_LIBRARIES})
38     set(alure_srcs ${alure_srcs} src/decoders/sndfile1.cpp)
39     set(HAVE_LIBSNDFILE 1)
40 endif()
43 CONFIGURE_FILE(
44     "${alure_SOURCE_DIR}/config.h.in"
45     "${alure_BINARY_DIR}/config.h")
48 add_library(alure2 SHARED ${alure_srcs})
49 target_link_libraries(alure2 ${alure_libs})
51 add_library(alure2_s STATIC ${alure_srcs})
52 set_property(TARGET alure2_s APPEND PROPERTY COMPILE_DEFINITIONS ALURE_STATIC_LIB)
55 add_executable(alure-enum examples/alure-enum.cpp)
56 target_link_libraries(alure-enum alure2)
58 add_executable(alure-play examples/alure-play.cpp)
59 target_link_libraries(alure-play alure2)
61 add_executable(alure-stream examples/alure-stream.cpp)
62 target_link_libraries(alure-stream alure2)
65 if(NOT DEFINED LIB_SUFFIX)
66     set(LIB_SUFFIX "")
67 endif()
69 install(TARGETS alure2 alure2_s
70         RUNTIME DESTINATION bin
71         LIBRARY DESTINATION "lib${LIB_SUFFIX}"
72         ARCHIVE DESTINATION "lib${LIB_SUFFIX}"