* implement make install
set CMAKE_INSTALL_PREFIX e.g. to /opt to install to /opt/hyperion
set ENABLE_SYSTEM_INSTALL to ON to activate installation
after compiling use
make install
or
make install/strip
(for performance/size optimized binaries - compile in Release to get best performance)

* cleanup cmake files
use
cmake -DINSTALL_PREFIX=/opt/hyperion ..
to install all files to hyperion or
cmake -DINSTALL_PREFIX=/usr/
to install to usr. install folders are linux standard. bin go to bin folder and additionals (effects) go to share/hyperion

* add uninstall target - be patient with that, this will remove files from your system
install service files to share/hyperion - if you want to use them you have to make a symlink to your location of service files

* optimize build release script
install service files into hyperion share folder (services not activated, this must be done by distribution package script)
initial support of cmake option -DPLATFORM= option. This selects platform specific cmake flags. no need for -DENABLE_... options (unless you want some special things)
automatic detect for apple build

* update submodule

* fix cmake error when no platform is given

* initial support for deb,rpm and tgz packages - no usefull content atm!

* make packeages contain usefull stuff

* add license
make packes more functional. package specific install missing yet

* implement debian postinstall

* disable rpm generation until it has a working state

* add hypercon compat

* add posibility for multiple config files. first one found is taken

* remove hyperion comaptlayer
services is not started automaticly

* rework debian postinstall:
- remove /opt compatibility complety. This makes more trouble as it is usefull
- when hyperiond already started, restart it
- cleanup

* add deb package dependencies

* wipe out last support for /opt installation

* change default effect path in config to /usr

* revert service files and config files

* remove last occurences of ENABLE_PROTOBUF
fix cmake warnings and make it ready for cmake 3
fix refactoring of hyperiond.cpp creates no objects for network services


Former-commit-id: 56e3e0d1014999b2555418c7b5a2898ac29fb5f1
This commit is contained in:
redPanther 2016-06-04 19:26:34 +02:00 committed by brindosch
parent e8207cfe31
commit f2e9193987
7 changed files with 98 additions and 107 deletions

View File

@ -4,7 +4,9 @@ project(hyperion)
# define the minimum cmake version (as required by cmake) # define the minimum cmake version (as required by cmake)
cmake_minimum_required(VERSION 2.8) cmake_minimum_required(VERSION 2.8)
#set(CMAKE_TOOLCHAIN_FILE /opt/raspberrypi/Toolchain-RaspberryPi.cmake) IF ( POLICY CMP0026 )
CMAKE_POLICY( SET CMP0026 OLD )
ENDIF()
SET ( DEFAULT_AMLOGIC OFF ) SET ( DEFAULT_AMLOGIC OFF )
@ -55,8 +57,6 @@ message(STATUS "ENABLE_FB = " ${ENABLE_FB})
option(ENABLE_OSX "Enable the osx grabber" ${DEFAULT_OSX} ) option(ENABLE_OSX "Enable the osx grabber" ${DEFAULT_OSX} )
message(STATUS "ENABLE_OSX = " ${ENABLE_OSX}) message(STATUS "ENABLE_OSX = " ${ENABLE_OSX})
set(ENABLE_PROTOBUF ON)
option(ENABLE_SPIDEV "Enable the SPIDEV device" ${DEFAULT_SPIDEV} ) option(ENABLE_SPIDEV "Enable the SPIDEV device" ${DEFAULT_SPIDEV} )
message(STATUS "ENABLE_SPIDEV = " ${ENABLE_SPIDEV}) message(STATUS "ENABLE_SPIDEV = " ${ENABLE_SPIDEV})

View File

@ -18,9 +18,6 @@
// Define to enable the spi-device // Define to enable the spi-device
#cmakedefine ENABLE_TINKERFORGE #cmakedefine ENABLE_TINKERFORGE
// Define to enable PROTOBUF server
#cmakedefine ENABLE_PROTOBUF
// Define to enable the framebuffer grabber // Define to enable the framebuffer grabber
#cmakedefine ENABLE_FB #cmakedefine ENABLE_FB

View File

@ -202,7 +202,7 @@ macro (QT4_ADD_RESOURCES outfiles )
# let's make a configured file and add it as a dependency so cmake is run # let's make a configured file and add it as a dependency so cmake is run
# again when dependencies need to be recomputed. # again when dependencies need to be recomputed.
QT4_MAKE_OUTPUT_FILE("${infile}" "" "qrc.depends" out_depends) QT4_MAKE_OUTPUT_FILE("${infile}" "" "qrc.depends" out_depends)
configure_file("${infile}" "${out_depends}" COPY_ONLY) configure_file("${infile}" "${out_depends}" COPYONLY)
else() else()
# The .qrc file does not exist (yet). Let's add a dependency and hope # The .qrc file does not exist (yet). Let's add a dependency and hope
# that it will be generated later # that it will be generated later

View File

@ -11,7 +11,6 @@ if(ENABLE_WS281XPWM)
external/rpi_ws281x/rpihw.c) external/rpi_ws281x/rpihw.c)
endif(ENABLE_WS281XPWM) endif(ENABLE_WS281XPWM)
if(ENABLE_PROTOBUF)
set(BUILD_SHARED_LIBS OFF CACHE BOOL "Build shared protobuf library") set(BUILD_SHARED_LIBS OFF CACHE BOOL "Build shared protobuf library")
add_subdirectory(external/protobuf) add_subdirectory(external/protobuf)
@ -107,4 +106,3 @@ if(ENABLE_PROTOBUF)
set(${SRCS} ${${SRCS}} PARENT_SCOPE) set(${SRCS} ${${SRCS}} PARENT_SCOPE)
set(${HDRS} ${${HDRS}} PARENT_SCOPE) set(${HDRS} ${${HDRS}} PARENT_SCOPE)
endfunction() endfunction()
endif()

View File

@ -7,9 +7,7 @@ add_subdirectory(hyperion)
add_subdirectory(blackborder) add_subdirectory(blackborder)
add_subdirectory(jsonserver) add_subdirectory(jsonserver)
if (ENABLE_PROTOBUF)
add_subdirectory(protoserver) add_subdirectory(protoserver)
endif ()
if (ENABLE_ZEROCONF) if (ENABLE_ZEROCONF)
add_subdirectory(bonjour) add_subdirectory(bonjour)

View File

@ -9,6 +9,7 @@ target_link_libraries(hyperiond
effectengine effectengine
jsonserver jsonserver
boblightserver boblightserver
protoserver
) )
if (ENABLE_DISPMANX) if (ENABLE_DISPMANX)
@ -31,10 +32,6 @@ if (ENABLE_AMLOGIC)
target_link_libraries(hyperiond amlogic-grabber) target_link_libraries(hyperiond amlogic-grabber)
endif () endif ()
if (ENABLE_PROTOBUF)
target_link_libraries(hyperiond protoserver)
endif ()
if (ENABLE_ZEROCONF) if (ENABLE_ZEROCONF)
target_link_libraries(hyperiond bonjour) target_link_libraries(hyperiond bonjour)
endif() endif()

View File

@ -186,7 +186,7 @@ void startXBMCVideoChecker(const Json::Value &config, XBMCVideoChecker* xbmcVide
} }
} }
void startNetworkServices(const Json::Value &config, Hyperion &hyperion, JsonServer* jsonServer, ProtoServer* protoServer, BoblightServer* boblightServer) void startNetworkServices(const Json::Value &config, Hyperion &hyperion, JsonServer* &jsonServer, ProtoServer* &protoServer, BoblightServer* &boblightServer)
{ {
// Create Json server if configuration is present // Create Json server if configuration is present
if (config.isMember("jsonServer")) if (config.isMember("jsonServer"))
@ -194,6 +194,7 @@ void startNetworkServices(const Json::Value &config, Hyperion &hyperion, JsonSer
const Json::Value & jsonServerConfig = config["jsonServer"]; const Json::Value & jsonServerConfig = config["jsonServer"];
jsonServer = new JsonServer(&hyperion, jsonServerConfig["port"].asUInt()); jsonServer = new JsonServer(&hyperion, jsonServerConfig["port"].asUInt());
std::cout << "INFO: Json server created and started on port " << jsonServer->getPort() << std::endl; std::cout << "INFO: Json server created and started on port " << jsonServer->getPort() << std::endl;
#ifdef ENABLE_ZEROCONF #ifdef ENABLE_ZEROCONF
const Json::Value & deviceConfig = config["device"]; const Json::Value & deviceConfig = config["device"];
const std::string deviceName = deviceConfig.get("name", "").asString(); const std::string deviceName = deviceConfig.get("name", "").asString();
@ -215,6 +216,7 @@ void startNetworkServices(const Json::Value &config, Hyperion &hyperion, JsonSer
const Json::Value & protoServerConfig = config["protoServer"]; const Json::Value & protoServerConfig = config["protoServer"];
protoServer = new ProtoServer(&hyperion, protoServerConfig["port"].asUInt() ); protoServer = new ProtoServer(&hyperion, protoServerConfig["port"].asUInt() );
std::cout << "INFO: Proto server created and started on port " << protoServer->getPort() << std::endl; std::cout << "INFO: Proto server created and started on port " << protoServer->getPort() << std::endl;
#ifdef ENABLE_ZEROCONF #ifdef ENABLE_ZEROCONF
const Json::Value & deviceConfig = config["device"]; const Json::Value & deviceConfig = config["device"];
const std::string deviceName = deviceConfig.get("name", "").asString(); const std::string deviceName = deviceConfig.get("name", "").asString();
@ -472,7 +474,6 @@ int main(int argc, char** argv)
BoblightServer * boblightServer = nullptr; BoblightServer * boblightServer = nullptr;
startNetworkServices(config, hyperion, jsonServer, protoServer, boblightServer); startNetworkServices(config, hyperion, jsonServer, protoServer, boblightServer);
// ---- grabber ----- // ---- grabber -----
#ifdef ENABLE_DISPMANX #ifdef ENABLE_DISPMANX