From 6d341cdf6991e073e81efc741d483a9f5705af82 Mon Sep 17 00:00:00 2001 From: Andrew Karpow Date: Wed, 8 Jan 2014 02:22:05 +0100 Subject: [PATCH] update CMakeLists.txt, add compiletime generated config --- CMakeLists.txt | 55 ++++++++++++++++++++++++++++++++----------------- src/config.h.in | 11 ++++++++++ 2 files changed, 47 insertions(+), 19 deletions(-) create mode 100644 src/config.h.in diff --git a/CMakeLists.txt b/CMakeLists.txt index 8fce450..b0656c2 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,23 +1,39 @@ cmake_minimum_required(VERSION 2.6) project (ympd) - -set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "MPD web client based on Websockets and +set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${PROJECT_SOURCE_DIR}/cmake/") +set(CPACK_PACKAGE_VERSION_MAJOR "1") +set(CPACK_PACKAGE_VERSION_MINOR "0") +set(CPACK_PACKAGE_VERSION_PATCH "4") +set(CPACK_GENERATOR "DEB;RPM;TGZ") +set(CPACK_SOURCE_GENERATOR "TBZ2") +set(DEBIAN_PACKAGE_SECTION "web") +set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "MPD web client based on Websockets and Bootstrap") -set(CPACK_PACKAGE_VENDOR "Andrew Karpow ") +set(CPACK_PACKAGE_CONTACT "Andrew Karpow ") set(CPACK_DEBIAN_PACKAGE_MAINTAINER "andy@ndyk.de") -set(CPACK_PACKAGE_VERSION_MAJOR "0") -set(CPACK_PACKAGE_VERSION_MINOR "1") -set(CPACK_PACKAGE_VERSION_PATCH "2") -set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${PROJECT_SOURCE_DIR}/cmake/") +set(CPACK_DEBIAN_PACKAGE_DEPENDS "libssl1.0.0,libmpdclient2") +set(CPACK_SOURCE_PACKAGE_FILE_NAME + "${PROJECT_NAME}-${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}") + +option(WITH_STATIC_WEBSOCKETS "Build with static libwebsockets library" OFF) -find_package(LibWebSockets REQUIRED) find_package(LibMPDClient REQUIRED) +find_package(LibWebSockets REQUIRED) +if(WITH_STATIC_WEBSOCKETS) + find_package(OpenSSL REQUIRED) + find_package(ZLIB REQUIRED) +endif() + +configure_file(${PROJECT_SOURCE_DIR}/src/config.h.in + ${PROJECT_BINARY_DIR}/config.h) +include_directories(${PROJECT_BINARY_DIR}) + include(CheckCSourceCompiles) include(CPack) -set(CMAKE_C_FLAGS_DEBRELEASE "-Wall -O2 -DNDEBUG -pipe") -set(CMAKE_C_FLAGS_DEBUG "-Wall -ggdb") +set(CMAKE_C_FLAGS "-std=gnu99 -Wall") +set(CMAKE_C_FLAGS_DEBUG "-ggdb -pedantic") set(SOURCES src/ympd.c @@ -26,9 +42,17 @@ set(SOURCES ) add_executable(ympd ${SOURCES}) -add_definitions(-DDATADIR="${CMAKE_INSTALL_PREFIX}/share/${PROJECT_NAME}") -target_link_libraries(ympd ${LIBMPDCLIENT_LIBRARY} ${LIBWEBSOCKETS_LIBRARIES}) +# TODO: use generator expressions introduced to CMake 2.8.12, too fresh yet +if(WITH_STATIC_WEBSOCKETS) + find_library(LIBWEBSOCKETS_LIBRARY_STATIC libwebsockets.a) + target_link_libraries(ympd ${LIBMPDCLIENT_LIBRARY} + ${LIBWEBSOCKETS_LIBRARY_STATIC} ${OPENSSL_LIBRARIES} ${ZLIB_LIBRARIES}) +else() + target_link_libraries(ympd ${LIBMPDCLIENT_LIBRARY} + ${LIBWEBSOCKETS_LIBRARIES}) +endif() + install(TARGETS ympd DESTINATION bin) install(DIRECTORY htdocs DESTINATION share/${PROJECT_NAME}) @@ -38,10 +62,3 @@ install(FILES contrib/init.debian DESTINATION /etc/init.d install(FILES contrib/default.debian DESTINATION /etc/default/${PROJECT_NAME} CONFIGURATIONS debrelease RENAME ${PROJECT_NAME}) -if(CMAKE_BUILD_TYPE STREQUAL "debrelease") - set(CPACK_BINARY_DEB "ON") - set(CPACK_BINARY_STGZ "OFF") - set(CPACK_BINARY_TGZ "OFF") - set(CPACK_BINARY_TZ "OFF") -endif() - diff --git a/src/config.h.in b/src/config.h.in new file mode 100644 index 0000000..4bb4939 --- /dev/null +++ b/src/config.h.in @@ -0,0 +1,11 @@ +#ifndef __CONFIG_H__ +#define __CONFIG_H__ + +#define YMPD_VERSION_MAJOR ${CPACK_PACKAGE_VERSION_MAJOR} +#define YMPD_VERSION_MINOR ${CPACK_PACKAGE_VERSION_MINOR} +#define YMPD_VERSION_PATCH ${CPACK_PACKAGE_VERSION_PATCH} +#define DATADIR "${CMAKE_INSTALL_PREFIX}/share/${PROJECT_NAME}" +#define LOCAL_RESOURCE_PATH DATADIR"/htdocs" + +#endif + -- 2.20.1