mirror of
https://github.com/SuperBFG7/ympd
synced 2025-01-15 11:45:49 +00:00
release build now installs assets to prefix
if build with dynamic assets
This commit is contained in:
parent
aeaac3ecc3
commit
e6e93a08c7
@ -5,9 +5,14 @@ set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${PROJECT_SOURCE_DIR}/cmake/")
|
|||||||
set(CPACK_PACKAGE_VERSION_MAJOR "1")
|
set(CPACK_PACKAGE_VERSION_MAJOR "1")
|
||||||
set(CPACK_PACKAGE_VERSION_MINOR "2")
|
set(CPACK_PACKAGE_VERSION_MINOR "2")
|
||||||
set(CPACK_PACKAGE_VERSION_PATCH "3")
|
set(CPACK_PACKAGE_VERSION_PATCH "3")
|
||||||
|
if(CMAKE_BUILD_TYPE MATCHES RELEASE)
|
||||||
|
set(ASSETS_PATH "${CMAKE_INSTALL_PREFIX}/share/${PROJECT_NAME}/htdocs")
|
||||||
|
else()
|
||||||
|
set(ASSETS_PATH "${PROJECT_SOURCE_DIR}/htdocs")
|
||||||
|
endif()
|
||||||
|
|
||||||
option(WITH_MPD_HOST_CHANGE "Let users of the web frontend change the MPD Host" ON)
|
option(WITH_MPD_HOST_CHANGE "Let users of the web frontend change the MPD Host" ON)
|
||||||
option(WITH_DYNAMIC_SERVING "Serve file of ./htdocs dynamically (development)" OFF)
|
option(WITH_DYNAMIC_ASSETS "Serve assets dynamically (e.g for development/packaging)" OFF)
|
||||||
option(WITH_IPV6 "enable IPv6 support" ON)
|
option(WITH_IPV6 "enable IPv6 support" ON)
|
||||||
|
|
||||||
find_package(LibMPDClient REQUIRED)
|
find_package(LibMPDClient REQUIRED)
|
||||||
@ -21,43 +26,47 @@ include(CheckCSourceCompiles)
|
|||||||
set(CMAKE_C_FLAGS "-std=gnu99 -Wall")
|
set(CMAKE_C_FLAGS "-std=gnu99 -Wall")
|
||||||
set(CMAKE_C_FLAGS_DEBUG "-ggdb -pedantic")
|
set(CMAKE_C_FLAGS_DEBUG "-ggdb -pedantic")
|
||||||
if(WITH_IPV6)
|
if(WITH_IPV6)
|
||||||
set_property(DIRECTORY APPEND PROPERTY COMPILE_DEFINITIONS NS_ENABLE_IPV6)
|
set_property(DIRECTORY APPEND PROPERTY COMPILE_DEFINITIONS NS_ENABLE_IPV6)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
file(GLOB RESOURCES
|
file(GLOB RESOURCES
|
||||||
RELATIVE ${PROJECT_SOURCE_DIR}
|
RELATIVE ${PROJECT_SOURCE_DIR}
|
||||||
htdocs/js/*
|
htdocs/js/*
|
||||||
htdocs/assets/*
|
htdocs/assets/*
|
||||||
htdocs/css/*.min.css
|
htdocs/css/*.min.css
|
||||||
htdocs/fonts/*
|
htdocs/fonts/*
|
||||||
htdocs/index.html
|
htdocs/index.html
|
||||||
)
|
|
||||||
|
|
||||||
if(CMAKE_CROSSCOMPILING)
|
|
||||||
set(MKDATA_EXE ${PROJECT_SOURCE_DIR}/htdocs/mkdata.pl)
|
|
||||||
else()
|
|
||||||
set(MKDATA_EXE $<TARGET_FILE:mkdata>)
|
|
||||||
set(MKDATA_TARGET mkdata)
|
|
||||||
add_executable(mkdata htdocs/mkdata.c)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
add_custom_command(OUTPUT ${PROJECT_BINARY_DIR}/assets.c
|
|
||||||
COMMAND ${MKDATA_EXE} ${RESOURCES} > ${PROJECT_BINARY_DIR}/assets.c
|
|
||||||
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
|
|
||||||
DEPENDS ${RESOURCES} ${MKDATA_TARGET}
|
|
||||||
)
|
)
|
||||||
|
|
||||||
set(SOURCES
|
set(SOURCES
|
||||||
src/ympd.c
|
src/ympd.c
|
||||||
src/http_server.c
|
|
||||||
src/mpd_client.c
|
src/mpd_client.c
|
||||||
src/mongoose.c
|
src/mongoose.c
|
||||||
src/json_encode.c
|
src/json_encode.c
|
||||||
assets.c
|
|
||||||
)
|
)
|
||||||
|
|
||||||
|
if(NOT WITH_DYNAMIC_ASSETS)
|
||||||
|
if(CMAKE_CROSSCOMPILING)
|
||||||
|
set(MKDATA_EXE ${PROJECT_SOURCE_DIR}/tools/mkdata.pl)
|
||||||
|
else()
|
||||||
|
set(MKDATA_EXE $<TARGET_FILE:mkdata>)
|
||||||
|
set(MKDATA_TARGET mkdata)
|
||||||
|
add_executable(mkdata tools/mkdata.c)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
add_custom_command(OUTPUT ${PROJECT_BINARY_DIR}/assets.c
|
||||||
|
COMMAND ${MKDATA_EXE} ${RESOURCES} > ${PROJECT_BINARY_DIR}/assets.c
|
||||||
|
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
|
||||||
|
DEPENDS ${RESOURCES} ${MKDATA_TARGET}
|
||||||
|
)
|
||||||
|
list(APPEND SOURCES src/http_server.c assets.c)
|
||||||
|
endif()
|
||||||
|
|
||||||
add_executable(ympd ${SOURCES})
|
add_executable(ympd ${SOURCES})
|
||||||
target_link_libraries(ympd ${LIBMPDCLIENT_LIBRARY} ${CMAKE_THREAD_LIBS_INIT})
|
target_link_libraries(ympd ${LIBMPDCLIENT_LIBRARY} ${CMAKE_THREAD_LIBS_INIT})
|
||||||
|
|
||||||
install(TARGETS ympd DESTINATION bin)
|
install(TARGETS ympd DESTINATION bin)
|
||||||
install(FILES ympd.1 DESTINATION ${CMAKE_INSTALL_PREFIX}/share/man/man1)
|
install(FILES ympd.1 DESTINATION ${CMAKE_INSTALL_PREFIX}/share/man/man1)
|
||||||
|
if(WITH_DYNAMIC_ASSETS)
|
||||||
|
install(DIRECTORY htdocs DESTINATION share/${PROJECT_NAME})
|
||||||
|
endif()
|
||||||
|
@ -22,8 +22,8 @@
|
|||||||
#define YMPD_VERSION_MAJOR ${CPACK_PACKAGE_VERSION_MAJOR}
|
#define YMPD_VERSION_MAJOR ${CPACK_PACKAGE_VERSION_MAJOR}
|
||||||
#define YMPD_VERSION_MINOR ${CPACK_PACKAGE_VERSION_MINOR}
|
#define YMPD_VERSION_MINOR ${CPACK_PACKAGE_VERSION_MINOR}
|
||||||
#define YMPD_VERSION_PATCH ${CPACK_PACKAGE_VERSION_PATCH}
|
#define YMPD_VERSION_PATCH ${CPACK_PACKAGE_VERSION_PATCH}
|
||||||
#define SRC_PATH "${PROJECT_SOURCE_DIR}/htdocs"
|
#define SRC_PATH "${ASSETS_PATH}"
|
||||||
#cmakedefine WITH_MPD_HOST_CHANGE
|
#cmakedefine WITH_MPD_HOST_CHANGE
|
||||||
#cmakedefine WITH_DYNAMIC_SERVING
|
#cmakedefine WITH_DYNAMIC_ASSETS
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -51,7 +51,7 @@ static int server_callback(struct mg_connection *c, enum mg_event ev) {
|
|||||||
else
|
else
|
||||||
return MG_TRUE;
|
return MG_TRUE;
|
||||||
} else
|
} else
|
||||||
#ifdef WITH_DYNAMIC_SERVING
|
#ifdef WITH_DYNAMIC_ASSETS
|
||||||
return MG_FALSE;
|
return MG_FALSE;
|
||||||
#else
|
#else
|
||||||
return callback_http(c);
|
return callback_http(c);
|
||||||
@ -73,7 +73,7 @@ int main(int argc, char **argv)
|
|||||||
|
|
||||||
atexit(bye);
|
atexit(bye);
|
||||||
error_msg = mg_set_option(server, "listening_port", "8080");
|
error_msg = mg_set_option(server, "listening_port", "8080");
|
||||||
#ifdef WITH_DYNAMIC_SERVING
|
#ifdef WITH_DYNAMIC_ASSETS
|
||||||
mg_set_option(server, "document_root", SRC_PATH);
|
mg_set_option(server, "document_root", SRC_PATH);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user