mirror of
https://github.com/SuperBFG7/ympd
synced 2025-01-15 03:35:48 +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_MINOR "2")
|
||||
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_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)
|
||||
|
||||
find_package(LibMPDClient REQUIRED)
|
||||
@ -21,43 +26,47 @@ include(CheckCSourceCompiles)
|
||||
set(CMAKE_C_FLAGS "-std=gnu99 -Wall")
|
||||
set(CMAKE_C_FLAGS_DEBUG "-ggdb -pedantic")
|
||||
if(WITH_IPV6)
|
||||
set_property(DIRECTORY APPEND PROPERTY COMPILE_DEFINITIONS NS_ENABLE_IPV6)
|
||||
set_property(DIRECTORY APPEND PROPERTY COMPILE_DEFINITIONS NS_ENABLE_IPV6)
|
||||
endif()
|
||||
|
||||
file(GLOB RESOURCES
|
||||
RELATIVE ${PROJECT_SOURCE_DIR}
|
||||
htdocs/js/*
|
||||
htdocs/assets/*
|
||||
htdocs/css/*.min.css
|
||||
htdocs/fonts/*
|
||||
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}
|
||||
RELATIVE ${PROJECT_SOURCE_DIR}
|
||||
htdocs/js/*
|
||||
htdocs/assets/*
|
||||
htdocs/css/*.min.css
|
||||
htdocs/fonts/*
|
||||
htdocs/index.html
|
||||
)
|
||||
|
||||
set(SOURCES
|
||||
src/ympd.c
|
||||
src/http_server.c
|
||||
src/mpd_client.c
|
||||
src/mongoose.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})
|
||||
target_link_libraries(ympd ${LIBMPDCLIENT_LIBRARY} ${CMAKE_THREAD_LIBS_INIT})
|
||||
|
||||
install(TARGETS ympd DESTINATION bin)
|
||||
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_MINOR ${CPACK_PACKAGE_VERSION_MINOR}
|
||||
#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_DYNAMIC_SERVING
|
||||
#cmakedefine WITH_DYNAMIC_ASSETS
|
||||
#endif
|
||||
|
||||
|
@ -51,7 +51,7 @@ static int server_callback(struct mg_connection *c, enum mg_event ev) {
|
||||
else
|
||||
return MG_TRUE;
|
||||
} else
|
||||
#ifdef WITH_DYNAMIC_SERVING
|
||||
#ifdef WITH_DYNAMIC_ASSETS
|
||||
return MG_FALSE;
|
||||
#else
|
||||
return callback_http(c);
|
||||
@ -73,7 +73,7 @@ int main(int argc, char **argv)
|
||||
|
||||
atexit(bye);
|
||||
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);
|
||||
#endif
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user