mirror of
https://github.com/badaix/snapcast.git
synced 2025-04-29 10:17:16 +02:00
CMake works on MacOS
This commit is contained in:
parent
0bdf6b73cd
commit
2299e20cfc
5 changed files with 115 additions and 37 deletions
59
.travis.yml
59
.travis.yml
|
@ -3,33 +3,70 @@ dist: trusty
|
|||
sudo: required
|
||||
group: deprecated-2017Q4
|
||||
|
||||
compiler:
|
||||
- gcc
|
||||
matrix:
|
||||
include:
|
||||
# build on ubuntu
|
||||
- os: linux
|
||||
sudo: required
|
||||
compiler: gcc
|
||||
env:
|
||||
- MATRIX_EVAL="CC=gcc-4.9 && CXX=g++-4.9"
|
||||
addons:
|
||||
apt:
|
||||
sources:
|
||||
- ubuntu-toolchain-r-test
|
||||
packages:
|
||||
- g++-4.9 libasound2-dev libvorbisidec-dev libvorbis-dev libflac-dev alsa-utils libavahi-client-dev avahi-daemon
|
||||
env:
|
||||
- MATRIX_EVAL="CC=gcc-4.9 && CXX=g++-4.9"
|
||||
|
||||
- os: linux
|
||||
addons:
|
||||
apt:
|
||||
sources:
|
||||
- ubuntu-toolchain-r-test
|
||||
packages:
|
||||
- g++-5 libasound2-dev libvorbisidec-dev libvorbis-dev libflac-dev alsa-utils libavahi-client-dev avahi-daemon
|
||||
env:
|
||||
- MATRIX_EVAL="CC=gcc-5 && CXX=g++-5"
|
||||
|
||||
- os: linux
|
||||
addons:
|
||||
apt:
|
||||
sources:
|
||||
- ubuntu-toolchain-r-test
|
||||
packages:
|
||||
- g++-6 libasound2-dev libvorbisidec-dev libvorbis-dev libflac-dev alsa-utils libavahi-client-dev avahi-daemon
|
||||
env:
|
||||
- MATRIX_EVAL="CC=gcc-6 && CXX=g++-6"
|
||||
|
||||
- os: linux
|
||||
addons:
|
||||
apt:
|
||||
sources:
|
||||
- ubuntu-toolchain-r-test
|
||||
packages:
|
||||
- g++-7 libasound2-dev libvorbisidec-dev libvorbis-dev libflac-dev alsa-utils libavahi-client-dev avahi-daemon
|
||||
env:
|
||||
- MATRIX_EVAL="CC=gcc-7 && CXX=g++-7"
|
||||
|
||||
# build on osx
|
||||
- os: osx
|
||||
osx_image: xcode9.1
|
||||
env:
|
||||
- MATRIX_EVAL="brew update && brew install flac libvorbis"
|
||||
allow_failures:
|
||||
|
||||
- os: osx
|
||||
osx_image: xcode8
|
||||
env:
|
||||
- MATRIX_EVAL="brew update && brew install flac libvorbis"
|
||||
|
||||
before_install:
|
||||
- eval "${MATRIX_EVAL}"
|
||||
|
||||
script:
|
||||
- if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then BUILD_PARAMS="TARGET=MACOS" ; fi
|
||||
- make $BUILD_PARAMS
|
||||
- sudo make installclient $BUILD_PARAMS
|
||||
- sudo make installserver $BUILD_PARAMS
|
||||
- mkdir build
|
||||
- cd build
|
||||
- cmake ../externals/aixlog && make && sudo make install
|
||||
- rm -rf *
|
||||
- cmake ../externals/jsonrpcpp && make && sudo make install
|
||||
- rm -rf *
|
||||
- cmake ../externals/popl && make && sudo make install
|
||||
- rm -rf *
|
||||
- cmake .. && make && sudo make install
|
||||
|
|
|
@ -13,6 +13,10 @@ if (NOT BUILD_SHARED_LIBS AND NOT BUILD_STATIC_LIBS)
|
|||
"must be set to ON to build")
|
||||
endif()
|
||||
|
||||
if (${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
|
||||
set(MACOSX TRUE)
|
||||
endif()
|
||||
|
||||
# Configure paths
|
||||
if(NOT DEFINED CMAKE_INSTALL_BINDIR)
|
||||
SET(CMAKE_INSTALL_BINDIR bin CACHE
|
||||
|
@ -28,7 +32,7 @@ if(NOT DEFINED CMAKE_INSTALL_INCLUDEDIR)
|
|||
PATH "Output directory for header files")
|
||||
endif()
|
||||
|
||||
include_directories(${CMAKE_SOURCE_DIR})
|
||||
include_directories("${CMAKE_SOURCE_DIR}" "${CMAKE_SOURCE_DIR}/externals/asio/asio/include")
|
||||
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake/")
|
||||
add_definitions(-DVERSION="${PROJECT_VERSION}")
|
||||
|
||||
|
@ -53,8 +57,8 @@ include(CMakePushCheckState)
|
|||
include(CheckIncludeFileCXX)
|
||||
|
||||
cmake_push_check_state()
|
||||
set(CMAKE_REQUIRED_DEFINITIONS "-DASIO_STANDALONE")
|
||||
check_include_file_cxx(asio.hpp HAS_ASIO_HPP -pthread)
|
||||
set (CMAKE_REQUIRED_INCLUDES "${CMAKE_REQUIRED_INCLUDES} ${CMAKE_SOURCE_DIR}/externals/asio/asio/include")
|
||||
check_include_file_cxx(asio.hpp HAS_ASIO_HPP "-pthread -DASIO_STANDALONE -std=c++11")
|
||||
cmake_pop_check_state()
|
||||
if(HAS_ASIO_HPP)
|
||||
add_definitions("-DHAS_ASIO_HPP -DASIO_STANDALONE")
|
||||
|
@ -62,22 +66,32 @@ else()
|
|||
message(FATAL_ERROR "Need to have asio installed")
|
||||
endif()
|
||||
|
||||
check_include_file_cxx(popl.hpp HAS_POPL_HPP)
|
||||
check_include_file_cxx(popl.hpp HAS_POPL_HPP -std=c++11)
|
||||
if(HAS_POPL_HPP)
|
||||
add_definitions("-DHAS_POPL_HPP")
|
||||
else()
|
||||
message(FATAL_ERROR "Need to have popl installed")
|
||||
endif()
|
||||
|
||||
pkg_search_module(ALSA REQUIRED alsa)
|
||||
if (ALSA_FOUND)
|
||||
add_definitions(-DHAS_ALSA)
|
||||
endif (ALSA_FOUND)
|
||||
if(MACOSX)
|
||||
set(BONJOUR_FOUND true)
|
||||
# pkg_search_module(BONJOUR REQUIRED bonjour)
|
||||
if (BONJOUR_FOUND)
|
||||
add_definitions(-DHAS_BONJOUR)
|
||||
endif (BONJOUR_FOUND)
|
||||
|
||||
pkg_search_module(AVAHI REQUIRED avahi-client)
|
||||
if (AVAHI_FOUND)
|
||||
add_definitions(-DFREEBSD -DHAS_DAEMON)
|
||||
else()
|
||||
pkg_search_module(ALSA REQUIRED alsa)
|
||||
if (ALSA_FOUND)
|
||||
add_definitions(-DHAS_ALSA)
|
||||
endif (ALSA_FOUND)
|
||||
|
||||
pkg_search_module(AVAHI REQUIRED avahi-client)
|
||||
if (AVAHI_FOUND)
|
||||
add_definitions(-DHAS_AVAHI)
|
||||
endif (AVAHI_FOUND)
|
||||
endif (AVAHI_FOUND)
|
||||
endif()
|
||||
|
||||
pkg_search_module(FLAC flac)
|
||||
if (FLAC_FOUND)
|
||||
|
@ -109,6 +123,7 @@ if (JSONRPCPP_FOUND)
|
|||
add_definitions("-DHAS_JSONRPCPP")
|
||||
endif()
|
||||
|
||||
|
||||
add_subdirectory(common)
|
||||
add_subdirectory(message)
|
||||
add_subdirectory(server)
|
||||
|
|
|
@ -14,15 +14,35 @@ set(CLIENT_INCLUDE
|
|||
${ASIO_INCLUDE_DIRS}
|
||||
${POPL_INCLUDE_DIRS})
|
||||
|
||||
# ALSA
|
||||
list(APPEND CLIENT_SOURCES player/alsaPlayer.cpp)
|
||||
list(APPEND CLIENT_LIBRARIES ${ALSA_LIBRARIES})
|
||||
list(APPEND CLIENT_INCLUDE ${ALSA_INCLUDE_DIRS})
|
||||
|
||||
# Avahi
|
||||
list(APPEND CLIENT_SOURCES browseZeroConf/browseAvahi.cpp)
|
||||
list(APPEND CLIENT_LIBRARIES ${AVAHI_LIBRARIES})
|
||||
list(APPEND CLIENT_INCLUDE ${AVAHI_INCLUDE_DIRS})
|
||||
if(MACOSX)
|
||||
# Bonjour
|
||||
if (BONJOUR_FOUND)
|
||||
list(APPEND CLIENT_SOURCES browseZeroConf/browseBonjour.cpp)
|
||||
endif (BONJOUR_FOUND)
|
||||
|
||||
# CoreAudio
|
||||
add_definitions(-DHAS_COREAUDIO)
|
||||
list(APPEND CLIENT_SOURCES player/coreAudioPlayer.cpp)
|
||||
find_library(COREAUDIO_LIB CoreAudio)
|
||||
find_library(COREFOUNDATION_LIB CoreFoundation)
|
||||
find_library(AUDIOTOOLBOX_LIB AudioToolbox)
|
||||
list(APPEND CLIENT_LIBRARIES ${COREAUDIO_LIB} ${COREFOUNDATION_LIB} ${AUDIOTOOLBOX_LIB})
|
||||
else()
|
||||
# Avahi
|
||||
if (AVAHI_FOUND)
|
||||
list(APPEND CLIENT_SOURCES browseZeroConf/browseAvahi.cpp)
|
||||
list(APPEND CLIENT_LIBRARIES ${AVAHI_LIBRARIES})
|
||||
list(APPEND CLIENT_INCLUDE ${AVAHI_INCLUDE_DIRS})
|
||||
endif (AVAHI_FOUND)
|
||||
|
||||
# ALSA
|
||||
if (ALSA_FOUND)
|
||||
list(APPEND CLIENT_SOURCES player/alsaPlayer.cpp)
|
||||
list(APPEND CLIENT_LIBRARIES ${ALSA_LIBRARIES})
|
||||
list(APPEND CLIENT_INCLUDE ${ALSA_INCLUDE_DIRS})
|
||||
endif (ALSA_FOUND)
|
||||
endif (MACOSX)
|
||||
|
||||
# if OGG then tremor or vorbis
|
||||
if (OGG_FOUND)
|
||||
|
@ -46,8 +66,6 @@ if (FLAC_FOUND)
|
|||
list(APPEND CLIENT_INCLUDE ${FLAC_INCLUDE_DIRS})
|
||||
endif (FLAC_FOUND)
|
||||
|
||||
add_definitions(-DHAS_DAEMON)
|
||||
|
||||
include_directories(${CLIENT_INCLUDE})
|
||||
add_executable(snapclient ${CLIENT_SOURCES})
|
||||
target_link_libraries(snapclient ${CLIENT_LIBRARIES})
|
||||
|
|
2
externals/aixlog
vendored
2
externals/aixlog
vendored
|
@ -1 +1 @@
|
|||
Subproject commit d4e8ab4f1fe0e44d8246b37c349f566b356636f6
|
||||
Subproject commit 96b8b80ed48a45fb8785739b8433b7835cdf7c01
|
|
@ -29,9 +29,17 @@ set(SERVER_INCLUDE
|
|||
${FLAC_INCLUDE_DIRS})
|
||||
|
||||
# Avahi
|
||||
list(APPEND SERVER_SOURCES publishZeroConf/publishAvahi.cpp)
|
||||
list(APPEND SERVER_LIBRARIES ${AVAHI_LIBRARIES})
|
||||
list(APPEND SERVER_INCLUDE ${AVAHI_INCLUDE_DIRS})
|
||||
if (AVAHI_FOUND)
|
||||
list(APPEND SERVER_SOURCES publishZeroConf/publishAvahi.cpp)
|
||||
list(APPEND SERVER_LIBRARIES ${AVAHI_LIBRARIES})
|
||||
list(APPEND SERVER_INCLUDE ${AVAHI_INCLUDE_DIRS})
|
||||
endif (AVAHI_FOUND)
|
||||
|
||||
if (BONJOUR_FOUND)
|
||||
list(APPEND SERVER_SOURCES publishZeroConf/publishBonjour.cpp)
|
||||
# list(APPEND SERVER_LIBRARIES ${BONJOUR_LIBRARIES})
|
||||
# list(APPEND SERVER_INCLUDE ${BONJOUR_INCLUDE_DIRS})
|
||||
endif (BONJOUR_FOUND)
|
||||
|
||||
if (OGG_FOUND AND VORBIS_FOUND AND VORBISENC_FOUND)
|
||||
list(APPEND SERVER_SOURCES encoder/oggEncoder.cpp)
|
||||
|
|
Loading…
Add table
Reference in a new issue