mirror of
https://github.com/hyperion-project/hyperion.ng.git
synced 2023-10-10 13:36:59 +02:00
Fix OSX Bundling (#1465)
* Fix OSX Bundling * Fix OSX Bundling - Refined * editorial updates * Update change log * Update version references * Update Link * Test * Pass ENABLE_EFFECTENGINE to install code, correct output messages
This commit is contained in:
parent
2ac8f30bb1
commit
ec71772f98
67
CHANGELOG.md
67
CHANGELOG.md
@ -6,55 +6,72 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
||||
|
||||
## [Unreleased](https://github.com/hyperion-project/hyperion.ng/compare/2.0.12...HEAD)
|
||||
|
||||
### Breaking
|
||||
|
||||
### Added
|
||||
|
||||
- Allow to build a "light" version of Hyperion, i.e. no grabbers, or services like flat-/proto buffers, boblight, CEC
|
||||
- Allow to restart Hyperion via Systray
|
||||
- LED-Device: Support retry attempts enabling devices, e.g. to open devices after network or a device itself got available (#1302)
|
||||
(Fixes that devices got "stuck", if initial open failed e.g. for WLED, Hue)
|
||||
- LED-Devices: New UDP-DDP (Distributed Display Protocol) device to overcome the 490 LEDs limitation of UDP-RAW
|
||||
- LED Matrix Layout - Support vertical cabling direction (#1420)
|
||||
- Support additional Yeelight models
|
||||
- LED-Devices: Show warning, if get properties failed (Network devices: indication that network device is not reachable)
|
||||
- hyperion-remote: Show image filename in UI for images sent
|
||||
- mDNS support for all platforms inkl. Windows (#740)
|
||||
- LED-Devices mDNS discovery support and ease of configuration (Cololight, Nanoleaf, Philips-Hue, WLED, Yeelight); removes the need to configure IP-Address, as address is resolved automatically.
|
||||
- Forwarder: mDNS discovery support and ease of configuration of other Hyperion instances
|
||||
- Grabber: mDNS discovery for standalone grabbers
|
||||
- Grabber: Dynamic loading of the Dispmanx Grabber (#1418)
|
||||
- Flatbuffer/Protobuf are now able to receive RGBA data
|
||||
- Added the instance number as part of the logline (#910). In the UI Log the instance is presented as a readable name.
|
||||
- New language: Japanese
|
||||
|
||||
##### LED-Devices
|
||||
- Support retry attempts enabling devices, e.g. to open devices after network or a device itself got available (#1302). Fixes that devices got "stuck", if initial open failed e.g. for WLED, Hue
|
||||
- New UDP-DDP (Distributed Display Protocol) device to overcome the 490 LEDs limitation of UDP-RAW
|
||||
- mDNS discovery support and ease of configuration (Cololight, Nanoleaf, Philips-Hue, WLED, Yeelight); removes the need to configure IP-Address, as address is resolved automatically.
|
||||
- Allow to disable switching LEDs on during startup (#1390)
|
||||
- Support additional Yeelight models
|
||||
- Show warning, if get properties failed (Network devices: indication that network device is not reachable)
|
||||
- LED Layout Classic: Support keystone correction via draggable corner LEDs
|
||||
- LED Layout Matrix: Support vertical cabling direction (#1420)
|
||||
|
||||
### Changed
|
||||
|
||||
- Colors Smoothing is started in pause mode to save resources, when Hyperion starts with no active source
|
||||
- Color Smoothing is started in pause mode to save resources, when Hyperion starts with no active source
|
||||
- Boblight: Support multiple Boblight clients with different priorities
|
||||
- UI: LED Preview has been given a touch of Ambilight.
|
||||
- UI: Allow configuration of a Boblight server per LED-instance
|
||||
- UI: LED Layout - Removed limitations on indention
|
||||
- mDNS Publisher :Aligned Hyperion mDNS names to general conventions and simplified namings
|
||||
- UI: Log output and LED preview window can be maximized
|
||||
- mDNS Publisher: Aligned Hyperion mDNS names to general conventions and simplified naming
|
||||
|
||||
##### LED-Devices
|
||||
- Refactored Philips Hue wizard and LED-Device
|
||||
- LED-Devices: WLED's default streaming protocol is now UDP-DDP. More than 490 LEDs are supported now (requires minimum WLED 0.11.0). UDP-RAW is still supported in parallel (via expert settings).
|
||||
- WLED's default streaming protocol is now UDP-DDP. More than 490 LEDs are supported now (requires minimum WLED 0.11.0). UDP-RAW is still supported in parallel (via expert settings).
|
||||
- Present all serial/TTY devices during discovery in expert mode; no filtering on existing vendor-identifier (Adalight serial USB does not show up in GUI #1458)
|
||||
|
||||
### Fixed
|
||||
|
||||
- UI: Ensure all configuration and system info response are there before reloading the page (#1430)
|
||||
- UI: Show all previous log lines in the Log UI (was only working for Debug before)
|
||||
- UI: Remote control: Treat duration=0 as endless
|
||||
- UI: Stop Web-Browser capture when user triggers other activities
|
||||
- Effects: Fix image URL in Matrix effect
|
||||
- Effects: Fix that start effect is stuck on UI
|
||||
- Fixes that the Led-Device output flow was interrupted, by an enabling API request on an already enabled device (#967
|
||||
- Effects: Fixed that effect specific smoothing setup was not applied when effect is started from available- or effects under configuration
|
||||
- Qt-Grabber: Fixed position handling of multiple monitors (#1320, #1403)
|
||||
- Standalone grabbers: Improved fps help/error text, fixed default address and port, fixed auto discovery of Hyperion server in hyperion-remote
|
||||
- hyperion-remote: Show image filename in UI for images sent
|
||||
- Reworked PriorityMuxer and Subscriptions
|
||||
- PriorityMuxer: Fix crash when running fore- and background effect in parallel during start-up
|
||||
- Update Priority, if first LED changes for COLOR update (to reflect color correctly in UI)
|
||||
- Start JSON and WebServer only, if Hyperion's instance 0 is available
|
||||
- Treat http headers case insensitive (RFC 2616)
|
||||
- Fixed: Signal detection does not switch off all instances (#1281)
|
||||
- Do not kill application on SIGILL-signal (#1435)
|
||||
- Fixed Qt version override, e.g. set via QTDIR
|
||||
- Update jsonschema and checkschema to allow checking hyperion.config.json.default on Windows
|
||||
|
||||
##### LED-Devices
|
||||
- Fixes that the Led-Device output flow was interrupted, by an enabling API request on an already enabled device (#967)
|
||||
- Yeelight - Workaround: Ignore error when setting music mode = off, but the music-mode is already off (#1372)
|
||||
- Fixed: Hue Entertainment mode does not resume after no signal (#930)
|
||||
- Standalone grabbers: Improved fps help/error text, fixed default address and port, fixed auto discovery of Hyperion server in hyperion-remote
|
||||
- Fixed Qt version override, e.g. set via QTDIR
|
||||
- Remote control UI: Treat duration=0 as endless
|
||||
- Stop Web-Browser capture when user triggers other activities
|
||||
- Treat http headers case insensitive (RFC 2616)
|
||||
- Qt-Grabber: Fixed position handling of multiple monitors (#1320, #1403)
|
||||
- Fixed: Signal detection does not switch off all instances (#1281)
|
||||
- Reworked PriorityMuxer and Sub-scriptions
|
||||
- Do not kill application on SIGILL-signal (#1435)
|
||||
- Start JSON and WebServer only, if Hyperion's instance 0 is available
|
||||
|
||||
## Removed
|
||||
- UI Removed sessions (of other Hyperions)
|
||||
- UI: Removed sessions (of other Hyperions)
|
||||
- Replaced existing AVAHI/Bonjour code by QMdnsEngine
|
||||
|
||||
## [2.0.12](https://github.com/hyperion-project/hyperion.ng/releases/tag/2.0.12) - 2021-11-20
|
||||
|
@ -338,16 +338,16 @@ message(STATUS "Services options:")
|
||||
addIndent(" - ")
|
||||
|
||||
option(ENABLE_EFFECTENGINE "Enable Effect-Engine" ${DEFAULT_EFFECTENGINE})
|
||||
message(STATUS "ENABLE_EFFECTENGINE = " ${ENABLE_EFFECTENGINE})
|
||||
message(STATUS "ENABLE_EFFECTENGINE = ${ENABLE_EFFECTENGINE}")
|
||||
|
||||
option(ENABLE_EXPERIMENTAL "Compile experimental features" ${DEFAULT_EXPERIMENTAL})
|
||||
message(STATUS "ENABLE_EXPERIMENTAL = ${ENABLE_EXPERIMENTAL}")
|
||||
|
||||
option(ENABLE_MDNS "Enable mDNS (aka Zeroconf)" ${DEFAULT_MDNS})
|
||||
message(STATUS "ENABLE_MDNS = " ${ENABLE_MDNS})
|
||||
message(STATUS "ENABLE_MDNS = ${ENABLE_MDNS}")
|
||||
|
||||
option(ENABLE_REMOTE_CTL "Enable Hyperion remote control" ${DEFAULT_REMOTE_CTL})
|
||||
message(STATUS "ENABLE_REMOTE_CTL = " ${ENABLE_REMOTE_CTL})
|
||||
message(STATUS "ENABLE_REMOTE_CTL = ${ENABLE_REMOTE_CTL}")
|
||||
|
||||
removeIndent()
|
||||
|
||||
|
@ -60,7 +60,7 @@ Released and unreleased changes at [CHANGELOG.md](CHANGELOG.md)
|
||||
See [CompileHowto.md](doc/development/CompileHowto.md).
|
||||
|
||||
## Installation
|
||||
See [Documentation](#documentation) or at [Installation.md](Installation.md).
|
||||
See [Documentation](https://docs.hyperion-project.org/en/user/Installation.html) or at [Installation.md](Installation.md).
|
||||
|
||||
## Download
|
||||
Releases available from the [Hyperion release page](https://github.com/hyperion-project/hyperion.ng/releases)
|
||||
|
@ -9,47 +9,76 @@ macro(DeployMacOS TARGET)
|
||||
OUTPUT_STRIP_TRAILING_WHITESPACE
|
||||
)
|
||||
|
||||
install(CODE "set(TARGET_FILE \"${TARGET_FILE}\") \n set(TARGET_BUNDLE_NAME \"${TARGET}.app\") \n set(PLUGIN_DIR \"${QT_PLUGIN_DIR}\") \n set(BUILD_DIR \"${CMAKE_BINARY_DIR}\")" COMPONENT "Hyperion")
|
||||
install(CODE "set(TARGET_FILE \"${TARGET_FILE}\")" COMPONENT "Hyperion")
|
||||
install(CODE "set(TARGET_BUNDLE_NAME \"${TARGET}.app\")" COMPONENT "Hyperion")
|
||||
install(CODE "set(PLUGIN_DIR \"${QT_PLUGIN_DIR}\")" COMPONENT "Hyperion")
|
||||
install(CODE "set(BUILD_DIR \"${CMAKE_BINARY_DIR}\")" COMPONENT "Hyperion")
|
||||
install(CODE "set(ENABLE_EFFECTENGINE \"${ENABLE_EFFECTENGINE}\")" COMPONENT "Hyperion")
|
||||
|
||||
install(CODE [[
|
||||
|
||||
file(GET_RUNTIME_DEPENDENCIES
|
||||
EXECUTABLES ${TARGET_FILE}
|
||||
RESOLVED_DEPENDENCIES_VAR resolved_deps
|
||||
UNRESOLVED_DEPENDENCIES_VAR unresolved_deps
|
||||
PRE_INCLUDE_REGEXES ".dylib"
|
||||
PRE_EXCLUDE_REGEXES ".*"
|
||||
)
|
||||
|
||||
foreach(dependency ${resolved_deps})
|
||||
string(FIND ${dependency} "dylib" _index)
|
||||
if (${_index} GREATER -1)
|
||||
file(INSTALL
|
||||
FILES "${dependency}"
|
||||
DESTINATION "${CMAKE_INSTALL_PREFIX}/${TARGET_BUNDLE_NAME}/Contents/Frameworks"
|
||||
TYPE SHARED_LIBRARY
|
||||
)
|
||||
else()
|
||||
file(INSTALL
|
||||
FILES "${dependency}"
|
||||
DESTINATION "${CMAKE_INSTALL_PREFIX}/${TARGET_BUNDLE_NAME}/Contents/lib"
|
||||
TYPE SHARED_LIBRARY
|
||||
)
|
||||
endif()
|
||||
endforeach()
|
||||
|
||||
list(LENGTH unresolved_deps unresolved_length)
|
||||
if("${unresolved_length}" GREATER 0)
|
||||
message(WARNING "The following unresolved dependencies were discovered: ${unresolved_deps}")
|
||||
MESSAGE("The following unresolved dependencies were discovered: ${unresolved_deps}")
|
||||
endif()
|
||||
|
||||
foreach(PLUGIN "platforms" "sqldrivers" "imageformats")
|
||||
if(EXISTS ${PLUGIN_DIR}/${PLUGIN})
|
||||
file(GLOB files "${PLUGIN_DIR}/${PLUGIN}/*")
|
||||
foreach(file ${files})
|
||||
get_filename_component(plugin ${file} NAME)
|
||||
list(APPEND QT_PLUGINS "${CMAKE_INSTALL_PREFIX}/${TARGET_BUNDLE_NAME}/Contents/plugins/${PLUGIN}/${plugin}")
|
||||
file(GET_RUNTIME_DEPENDENCIES
|
||||
EXECUTABLES ${file}
|
||||
RESOLVED_DEPENDENCIES_VAR PLUGINS
|
||||
UNRESOLVED_DEPENDENCIES_VAR unresolved_deps
|
||||
)
|
||||
|
||||
foreach(DEPENDENCY ${PLUGINS})
|
||||
file(INSTALL
|
||||
DESTINATION "${CMAKE_INSTALL_PREFIX}/${TARGET_BUNDLE_NAME}/Contents/lib"
|
||||
TYPE SHARED_LIBRARY
|
||||
FILES ${DEPENDENCY}
|
||||
)
|
||||
endforeach()
|
||||
|
||||
get_filename_component(singleQtLib ${file} NAME)
|
||||
list(APPEND QT_PLUGINS "${CMAKE_INSTALL_PREFIX}/${TARGET_BUNDLE_NAME}/Contents/plugins/${PLUGIN}/${singleQtLib}")
|
||||
file(INSTALL
|
||||
FILES ${file}
|
||||
DESTINATION "${CMAKE_INSTALL_PREFIX}/${TARGET_BUNDLE_NAME}/Contents/plugins/${PLUGIN}"
|
||||
TYPE SHARED_LIBRARY
|
||||
)
|
||||
|
||||
endforeach()
|
||||
endif()
|
||||
endforeach()
|
||||
|
||||
if(ENABLE_EFFECTENGINE)
|
||||
include(BundleUtilities)
|
||||
fixup_bundle("${CMAKE_INSTALL_PREFIX}/${TARGET_BUNDLE_NAME}" "${QT_PLUGINS}" "" IGNORE_ITEM "python;python3;Python;Python3;.Python;.Python3")
|
||||
fixup_bundle("${CMAKE_INSTALL_PREFIX}/${TARGET_BUNDLE_NAME}" "${QT_PLUGINS}" "${CMAKE_INSTALL_PREFIX}/${TARGET_BUNDLE_NAME}/Contents/lib" IGNORE_ITEM "python;python3;Python;Python3;.Python;.Python3")
|
||||
|
||||
if(ENABLE_EFFECTENGINE)
|
||||
|
||||
# Detect the Python version and modules directory
|
||||
find_package(Python3 3.5 REQUIRED)
|
||||
@ -59,6 +88,9 @@ macro(DeployMacOS TARGET)
|
||||
OUTPUT_STRIP_TRAILING_WHITESPACE
|
||||
)
|
||||
|
||||
MESSAGE("Add Python ${Python3_VERSION_MAJOR}.${Python3_VERSION_MINOR} to bundle")
|
||||
MESSAGE("PYTHON_MODULES_DIR: ${PYTHON_MODULES_DIR}")
|
||||
|
||||
# Copy Python modules to '/../Frameworks/Python.framework/Versions/Current/lib/PythonMAJOR.MINOR' and ignore the unnecessary stuff listed below
|
||||
if (PYTHON_MODULES_DIR)
|
||||
set(PYTHON_VERSION_MAJOR_MINOR "${Python3_VERSION_MAJOR}.${Python3_VERSION_MINOR}")
|
||||
@ -77,6 +109,10 @@ macro(DeployMacOS TARGET)
|
||||
)
|
||||
endif(PYTHON_MODULES_DIR)
|
||||
endif(ENABLE_EFFECTENGINE)
|
||||
|
||||
file(REMOVE_RECURSE "${CMAKE_INSTALL_PREFIX}/${TARGET_BUNDLE_NAME}/Contents/lib")
|
||||
file(REMOVE_RECURSE "${CMAKE_INSTALL_PREFIX}/share")
|
||||
|
||||
]] COMPONENT "Hyperion")
|
||||
|
||||
else()
|
||||
|
@ -132,16 +132,16 @@ brew install qt5 python3 cmake libusb doxygen
|
||||
We assume a 64bit Windows 10. Install the following;
|
||||
- [Git](https://git-scm.com/downloads) (Check: Add to PATH)
|
||||
- [CMake (Windows win64-x64 installer)](https://cmake.org/download/) (Check: Add to PATH)
|
||||
- [Visual Studio 2019 Build Tools](https://go.microsoft.com/fwlink/?linkid=840931) ([direct link](https://aka.ms/vs/16/release/vs_buildtools.exe))
|
||||
- Select C++ Buildtools
|
||||
- On the right, just select `MSVC v142 VS 2019 C++ x64/x86-Buildtools` and latest `Windows 10 SDK`. Everything else is not needed.
|
||||
- [Visual Studio 2022 Community Edition](https://visualstudio.microsoft.com/downloads/#visual-studio-community-2022)
|
||||
- Select 'Desktop development with C++'
|
||||
- On the right, just select `MSVC v143 VS 2022 C++ x64/x86-Buildtools` and latest `Windows 10 SDK`. Everything else is not needed.
|
||||
- [Win64 OpenSSL v1.1.1k](https://slproweb.com/products/Win32OpenSSL.html) ([direct link](https://slproweb.com/download/Win64OpenSSL-1_1_1k.exe))
|
||||
- [Python 3 (Windows x86-64 executable installer)](https://www.python.org/downloads/windows/) (Check: Add to PATH and Debug Symbols)
|
||||
- Open a console window and execute `pip install aqtinstall`.
|
||||
- Now we can download Qt to _C:\Qt_ `mkdir c:\Qt && aqt install -O c:\Qt 5.15.0 windows desktop win64_msvc2019_64`
|
||||
- Now we can download Qt to _C:\Qt_ `mkdir c:\Qt && aqt install -O c:\Qt 5.15.2 windows desktop win64_msvc2019_64`
|
||||
- QT6.2 requires the [Vulkan SDK](https://vulkan.lunarg.com/sdk/home) to be installed
|
||||
- [libjpeg-turbo SDK for Visual C++](https://sourceforge.net/projects/libjpeg-turbo/files/)
|
||||
- Download the latest 64bit installer (currently `libjpeg-turbo-2.1.0-vc64.exe`) and install to its default location `C:\libjpeg-turbo64`.
|
||||
- Download the latest 64bit installer (currently `libjpeg-turbo-2.1.3-vc64.exe`) and install to its default location `C:\libjpeg-turbo64`.
|
||||
|
||||
### Optional:
|
||||
- For DirectX9 grabber:
|
||||
@ -181,14 +181,14 @@ bin/hyperiond
|
||||
|
||||
In case you would like to build with a dedicated Qt version, Either supply ``QTDIR`` as ``-DQTDIR=<path>`` to cmake or set and environment variable ``QTDIR`` pointing to the Qt installation.
|
||||
|
||||
On Windows MSVC2019 set it via the CMakeSettings.json:
|
||||
On Windows MSVC2022 set it via the CMakeSettings.json:
|
||||
```posh
|
||||
"configurations": [
|
||||
{
|
||||
...
|
||||
"environments": [
|
||||
{
|
||||
"QTDIR": "C:/Qt/6.2.0/msvc2019_64/"
|
||||
"QTDIR": "C:/Qt/6.2.2/msvc2019_64/"
|
||||
}
|
||||
]
|
||||
},
|
||||
@ -241,8 +241,8 @@ Platform should be auto detected and refer to windows, you can also force window
|
||||
|
||||
```posh
|
||||
# You might need to setup MSVC env first
|
||||
call "C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Auxiliary\Build\vcvars64.bat"
|
||||
cmake -DPLATFORM=windows -G "Visual Studio 16 2019" ..
|
||||
call "C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Auxiliary\Build\vcvars64.bat"
|
||||
cmake -DPLATFORM=windows -G "Visual Studio 17 2022" ..
|
||||
```
|
||||
|
||||
**Run make to build Hyperion:**
|
||||
@ -261,7 +261,7 @@ On Windows run:
|
||||
```posh
|
||||
cmake --build . --config Release -- -maxcpucount
|
||||
```
|
||||
Maintainer: To build installer, install [NSIS](https://nsis.sourceforge.io/Main_Page) and set env `VCINSTALLDIR="C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC"`
|
||||
Maintainer: To build installer, install [NSIS](https://nsis.sourceforge.io/Main_Page) and set env `VCINSTALLDIR="C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC"`
|
||||
|
||||
**Install hyperion into your system:**
|
||||
Copy all necessary files to ``/usr/local/share/hyperion``
|
||||
|
Loading…
Reference in New Issue
Block a user