CMake works on MacOS

This commit is contained in:
badaix 2018-02-10 17:34:07 +01:00
parent 0bdf6b73cd
commit 2299e20cfc
5 changed files with 115 additions and 37 deletions

View file

@ -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

View file

@ -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(-DHAS_AVAHI)
endif (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()
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)

View file

@ -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

@ -1 +1 @@
Subproject commit d4e8ab4f1fe0e44d8246b37c349f566b356636f6
Subproject commit 96b8b80ed48a45fb8785739b8433b7835cdf7c01

View file

@ -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)