Files
cantata/web/CMakeLists.txt
Craig Drummond 605af484f7 Initial import of *VERY* incomplete, and not fully functional Cantata
webapp. Mainly used to test SQLite backend for storing MPD db.
2015-06-01 22:57:49 +01:00

73 lines
3.6 KiB
CMake

PROJECT(cantata-web)
cmake_minimum_required(VERSION 2.6)
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_SOURCE_DIR}/../cmake)
set(CPACK_PACKAGE_DESCRIPTION_FILE "${CMAKE_CURRENT_SOURCE_DIR}/README")
set(CPACK_GENERATOR "DEB;RPM;TBZ2")
set(DEBIAN_PACKAGE_DESCRIPTION "Web Client for MPD")
set(CPACK_SOURCE_GENERATOR "TBZ2")
set(CPACK_PACKAGE_VERSION_MAJOR "0")
set(CPACK_PACKAGE_VERSION_MINOR "0")
set(CPACK_PACKAGE_VERSION_PATCH "1")
set(CPACK_PACKAGE_VERSION_SPIN "") # Use ".$number" - e.g. ".1"
set(CPACK_PACKAGE_CONTACT "Craig Drummond <craig.p.drummond@gmail.com>")
set(CANTATA_WEB_VERSION "${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}")
set(CANTATA_WEB_VERSION_FULL "${CANTATA_WEB_VERSION}.${CPACK_PACKAGE_VERSION_PATCH}")
set(CANTATA_WEB_VERSION_WITH_SPIN "${CANTATA_WEB_VERSION_FULL}${CPACK_PACKAGE_VERSION_SPIN}")
set(CPACK_SOURCE_PACKAGE_FILE_NAME "${CMAKE_PROJECT_NAME}-${CANTATA_WEB_VERSION_WITH_SPIN}")
set(CPACK_PACKAGE_FILE_NAME "${CMAKE_PROJECT_NAME}-${CANTATA_WEB_VERSION_WITH_SPIN}")
set(CPACK_SOURCE_IGNORE_FILES "/.svn/;CMakeLists.txt.user")
include(CPack)
find_package(Qt5Core REQUIRED)
find_package(Qt5Sql REQUIRED)
find_package(Qt5Network REQUIRED)
find_package(Qt5Concurrent REQUIRED)
find_package(Qt5WebSockets REQUIRED)
set(QTCORELIBS ${Qt5Core_LIBRARIES})
set(QTNETWORKLIBS ${Qt5Network_LIBRARIES})
set(QTLIBS ${QTCORELIBS} ${QTNETWORKLIBS} ${Qt5Concurrent_LIBRARIES})
set(QTINCLUDES ${Qt5Widgets_INCLUDE_DIRS} ${Qt5Network_INCLUDE_DIRS} ${Qt5Core_INCLUDE_DIRS} ${Qt5Concurrent_INCLUDE_DIRS} ${Qt5Sql_INCLUDE_DIRS} ${Qt5WebSockets_INCLUDE_DIRS})
if (Qt5_POSITION_INDEPENDENT_CODE)
SET(CMAKE_POSITION_INDEPENDENT_CODE ON)
endif(Qt5_POSITION_INDEPENDENT_CODE)
set(ENABLE_STREAMS OFF)
set(ENABLE_QT5 ON)
set(ENABLE_WEB ON)
#find_package(Sqlite REQUIRED)
add_definitions(${Qt5Network_DEFINITIONS} ${Qt5Concurrent_DEFINITIONS} ${Qt5Sql_DEFINITIONS} ${Qt5WebSockets_DEFINITIONS} ${SQLITE_DEFINITIONS} -DCANTATA_WEB)
include_directories(${CMAKE_SOURCE_DIR} ${CMAKE_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR}
${QTINCLUDES} ${SQLITE_INCLUDE_DIR} ${CMAKE_SOURCE_DIR}/..)
set(CANTATA_WEB_SRCS ${CANTATA_WEB_SRCS}
app/main.cpp app/application.cpp app/httpserver.cpp app/apihandler.cpp app/libraryapi.cpp app/playlistsapi.cpp
app/playqueueapi.cpp app/streamsapi.cpp app/coversapi.cpp app/statusapi.cpp
../db/librarydb.cpp ../db/mpdlibrarydb.cpp
../mpd-interface/mpdconnection.cpp ../mpd-interface/mpdparseutils.cpp
../mpd-interface/song.cpp ../mpd-interface/cuefile.cpp
../streams/streamfetcher.cpp
../network/networkaccessmanager.cpp ../network/networkproxyfactory.cpp
../models/streamsmodel.cpp)
set(CANTATA_WEB_MOC_HDRS ${CANTATA_CORE_MOC_HDRS}
app/application.h app/apihandler.h app/libraryapi.h app/playlistsapi.h app/playqueueapi.h app/streamsapi.h app/statusapi.h
../db/librarydb.h ../db/mpdlibrarydb.h
../mpd-interface/mpdconnection.h
../streams/streamfetcher.h
../network/networkaccessmanager.h)
configure_file(config.h.cmake ${CMAKE_BINARY_DIR}/config.h)
configure_file(${PROJECT_NAME}.conf.cmake ${CMAKE_BINARY_DIR}/${PROJECT_NAME}.conf)
add_definitions(-DQT_NO_DEBUG_OUTPUT)
add_subdirectory(../support ${CMAKE_BINARY_DIR}/support)
add_subdirectory(http)
QT5_WRAP_CPP(CANTATA_WEB_MOC_SRCS ${CANTATA_WEB_MOC_HDRS})
ADD_EXECUTABLE(${PROJECT_NAME} ${CANTATA_WEB_SRCS} ${CANTATA_WEB_MOC_SRCS})
target_link_libraries(${PROJECT_NAME} support-core httpserver ${QTLIBS} ${Qt5Sql_LIBRARIES} ${Qt5WebSockets_LIBRARIES} ${SQLITE_LIBRARIES})
install(TARGETS ${PROJECT_NAME} RUNTIME DESTINATION bin LIBRARY DESTINATION lib ARCHIVE DESTINATION lib)