Skip to content

Commit ec71772

Browse files
authored
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
1 parent 2ac8f30 commit ec71772

File tree

5 files changed

+146
-93
lines changed

5 files changed

+146
-93
lines changed

CHANGELOG.md

Lines changed: 40 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -6,55 +6,72 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
66

77
## [Unreleased](https://github.com/hyperion-project/hyperion.ng/compare/2.0.12...HEAD)
88

9-
### Breaking
10-
119
### Added
1210

1311
- Allow to build a "light" version of Hyperion, i.e. no grabbers, or services like flat-/proto buffers, boblight, CEC
1412
- Allow to restart Hyperion via Systray
15-
- LED-Device: Support retry attempts enabling devices, e.g. to open devices after network or a device itself got available (#1302)
16-
(Fixes that devices got "stuck", if initial open failed e.g. for WLED, Hue)
17-
- LED-Devices: New UDP-DDP (Distributed Display Protocol) device to overcome the 490 LEDs limitation of UDP-RAW
18-
- LED Matrix Layout - Support vertical cabling direction (#1420)
19-
- Support additional Yeelight models
20-
- LED-Devices: Show warning, if get properties failed (Network devices: indication that network device is not reachable)
21-
- hyperion-remote: Show image filename in UI for images sent
2213
- mDNS support for all platforms inkl. Windows (#740)
23-
- 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.
2414
- Forwarder: mDNS discovery support and ease of configuration of other Hyperion instances
2515
- Grabber: mDNS discovery for standalone grabbers
16+
- Grabber: Dynamic loading of the Dispmanx Grabber (#1418)
17+
- Flatbuffer/Protobuf are now able to receive RGBA data
18+
- Added the instance number as part of the logline (#910). In the UI Log the instance is presented as a readable name.
2619
- New language: Japanese
2720

21+
##### LED-Devices
22+
- 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
23+
- New UDP-DDP (Distributed Display Protocol) device to overcome the 490 LEDs limitation of UDP-RAW
24+
- 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.
25+
- Allow to disable switching LEDs on during startup (#1390)
26+
- Support additional Yeelight models
27+
- Show warning, if get properties failed (Network devices: indication that network device is not reachable)
28+
- LED Layout Classic: Support keystone correction via draggable corner LEDs
29+
- LED Layout Matrix: Support vertical cabling direction (#1420)
30+
2831
### Changed
2932

30-
- Colors Smoothing is started in pause mode to save resources, when Hyperion starts with no active source
33+
- Color Smoothing is started in pause mode to save resources, when Hyperion starts with no active source
3134
- Boblight: Support multiple Boblight clients with different priorities
35+
- UI: LED Preview has been given a touch of Ambilight.
3236
- UI: Allow configuration of a Boblight server per LED-instance
3337
- UI: LED Layout - Removed limitations on indention
34-
- mDNS Publisher :Aligned Hyperion mDNS names to general conventions and simplified namings
38+
- UI: Log output and LED preview window can be maximized
39+
- mDNS Publisher: Aligned Hyperion mDNS names to general conventions and simplified naming
40+
41+
##### LED-Devices
3542
- Refactored Philips Hue wizard and LED-Device
36-
- 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).
43+
- 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).
44+
- 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)
3745

3846
### Fixed
3947

48+
- UI: Ensure all configuration and system info response are there before reloading the page (#1430)
49+
- UI: Show all previous log lines in the Log UI (was only working for Debug before)
50+
- UI: Remote control: Treat duration=0 as endless
51+
- UI: Stop Web-Browser capture when user triggers other activities
4052
- Effects: Fix image URL in Matrix effect
4153
- Effects: Fix that start effect is stuck on UI
42-
- Fixes that the Led-Device output flow was interrupted, by an enabling API request on an already enabled device (#967
43-
- Yeelight - Workaround: Ignore error when setting music mode = off, but the music-mode is already off (#1372)
44-
- Fixed: Hue Entertainment mode does not resume after no signal (#930)
54+
- Effects: Fixed that effect specific smoothing setup was not applied when effect is started from available- or effects under configuration
55+
- Qt-Grabber: Fixed position handling of multiple monitors (#1320, #1403)
4556
- Standalone grabbers: Improved fps help/error text, fixed default address and port, fixed auto discovery of Hyperion server in hyperion-remote
46-
- Fixed Qt version override, e.g. set via QTDIR
47-
- Remote control UI: Treat duration=0 as endless
48-
- Stop Web-Browser capture when user triggers other activities
57+
- hyperion-remote: Show image filename in UI for images sent
58+
- Reworked PriorityMuxer and Subscriptions
59+
- PriorityMuxer: Fix crash when running fore- and background effect in parallel during start-up
60+
- Update Priority, if first LED changes for COLOR update (to reflect color correctly in UI)
61+
- Start JSON and WebServer only, if Hyperion's instance 0 is available
4962
- Treat http headers case insensitive (RFC 2616)
50-
- Qt-Grabber: Fixed position handling of multiple monitors (#1320, #1403)
5163
- Fixed: Signal detection does not switch off all instances (#1281)
52-
- Reworked PriorityMuxer and Sub-scriptions
5364
- Do not kill application on SIGILL-signal (#1435)
54-
- Start JSON and WebServer only, if Hyperion's instance 0 is available
65+
- Fixed Qt version override, e.g. set via QTDIR
66+
- Update jsonschema and checkschema to allow checking hyperion.config.json.default on Windows
67+
68+
##### LED-Devices
69+
- Fixes that the Led-Device output flow was interrupted, by an enabling API request on an already enabled device (#967)
70+
- Yeelight - Workaround: Ignore error when setting music mode = off, but the music-mode is already off (#1372)
71+
- Fixed: Hue Entertainment mode does not resume after no signal (#930)
5572

5673
## Removed
57-
- UI Removed sessions (of other Hyperions)
74+
- UI: Removed sessions (of other Hyperions)
5875
- Replaced existing AVAHI/Bonjour code by QMdnsEngine
5976

6077
## [2.0.12](https://github.com/hyperion-project/hyperion.ng/releases/tag/2.0.12) - 2021-11-20

CMakeLists.txt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -338,16 +338,16 @@ message(STATUS "Services options:")
338338
addIndent(" - ")
339339

340340
option(ENABLE_EFFECTENGINE "Enable Effect-Engine" ${DEFAULT_EFFECTENGINE})
341-
message(STATUS "ENABLE_EFFECTENGINE = " ${ENABLE_EFFECTENGINE})
341+
message(STATUS "ENABLE_EFFECTENGINE = ${ENABLE_EFFECTENGINE}")
342342

343343
option(ENABLE_EXPERIMENTAL "Compile experimental features" ${DEFAULT_EXPERIMENTAL})
344344
message(STATUS "ENABLE_EXPERIMENTAL = ${ENABLE_EXPERIMENTAL}")
345345

346346
option(ENABLE_MDNS "Enable mDNS (aka Zeroconf)" ${DEFAULT_MDNS})
347-
message(STATUS "ENABLE_MDNS = " ${ENABLE_MDNS})
347+
message(STATUS "ENABLE_MDNS = ${ENABLE_MDNS}")
348348

349349
option(ENABLE_REMOTE_CTL "Enable Hyperion remote control" ${DEFAULT_REMOTE_CTL})
350-
message(STATUS "ENABLE_REMOTE_CTL = " ${ENABLE_REMOTE_CTL})
350+
message(STATUS "ENABLE_REMOTE_CTL = ${ENABLE_REMOTE_CTL}")
351351

352352
removeIndent()
353353

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ Released and unreleased changes at [CHANGELOG.md](CHANGELOG.md)
6060
See [CompileHowto.md](doc/development/CompileHowto.md).
6161

6262
## Installation
63-
See [Documentation](#documentation) or at [Installation.md](Installation.md).
63+
See [Documentation](https://docs.hyperion-project.org/en/user/Installation.html) or at [Installation.md](Installation.md).
6464

6565
## Download
6666
Releases available from the [Hyperion release page](https://github.com/hyperion-project/hyperion.ng/releases)

cmake/Dependencies.cmake

Lines changed: 92 additions & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -9,74 +9,110 @@ macro(DeployMacOS TARGET)
99
OUTPUT_STRIP_TRAILING_WHITESPACE
1010
)
1111

12-
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")
12+
install(CODE "set(TARGET_FILE \"${TARGET_FILE}\")" COMPONENT "Hyperion")
13+
install(CODE "set(TARGET_BUNDLE_NAME \"${TARGET}.app\")" COMPONENT "Hyperion")
14+
install(CODE "set(PLUGIN_DIR \"${QT_PLUGIN_DIR}\")" COMPONENT "Hyperion")
15+
install(CODE "set(BUILD_DIR \"${CMAKE_BINARY_DIR}\")" COMPONENT "Hyperion")
16+
install(CODE "set(ENABLE_EFFECTENGINE \"${ENABLE_EFFECTENGINE}\")" COMPONENT "Hyperion")
17+
1318
install(CODE [[
14-
file(GET_RUNTIME_DEPENDENCIES
15-
EXECUTABLES ${TARGET_FILE}
16-
RESOLVED_DEPENDENCIES_VAR resolved_deps
17-
UNRESOLVED_DEPENDENCIES_VAR unresolved_deps
18-
PRE_INCLUDE_REGEXES ".dylib"
19-
PRE_EXCLUDE_REGEXES ".*"
20-
)
2119

22-
foreach(dependency ${resolved_deps})
23-
file(INSTALL
24-
FILES "${dependency}"
25-
DESTINATION "${CMAKE_INSTALL_PREFIX}/${TARGET_BUNDLE_NAME}/Contents/Frameworks"
26-
TYPE SHARED_LIBRARY
20+
file(GET_RUNTIME_DEPENDENCIES
21+
EXECUTABLES ${TARGET_FILE}
22+
RESOLVED_DEPENDENCIES_VAR resolved_deps
23+
UNRESOLVED_DEPENDENCIES_VAR unresolved_deps
2724
)
28-
endforeach()
29-
30-
list(LENGTH unresolved_deps unresolved_length)
31-
if("${unresolved_length}" GREATER 0)
32-
message(WARNING "The following unresolved dependencies were discovered: ${unresolved_deps}")
33-
endif()
3425

35-
foreach(PLUGIN "platforms" "sqldrivers" "imageformats")
36-
if(EXISTS ${PLUGIN_DIR}/${PLUGIN})
37-
file(GLOB files "${PLUGIN_DIR}/${PLUGIN}/*")
38-
foreach(file ${files})
39-
get_filename_component(plugin ${file} NAME)
40-
list(APPEND QT_PLUGINS "${CMAKE_INSTALL_PREFIX}/${TARGET_BUNDLE_NAME}/Contents/plugins/${PLUGIN}/${plugin}")
26+
foreach(dependency ${resolved_deps})
27+
string(FIND ${dependency} "dylib" _index)
28+
if (${_index} GREATER -1)
4129
file(INSTALL
42-
FILES ${file}
43-
DESTINATION "${CMAKE_INSTALL_PREFIX}/${TARGET_BUNDLE_NAME}/Contents/plugins/${PLUGIN}"
30+
FILES "${dependency}"
31+
DESTINATION "${CMAKE_INSTALL_PREFIX}/${TARGET_BUNDLE_NAME}/Contents/Frameworks"
4432
TYPE SHARED_LIBRARY
4533
)
46-
endforeach()
34+
else()
35+
file(INSTALL
36+
FILES "${dependency}"
37+
DESTINATION "${CMAKE_INSTALL_PREFIX}/${TARGET_BUNDLE_NAME}/Contents/lib"
38+
TYPE SHARED_LIBRARY
39+
)
40+
endif()
41+
endforeach()
42+
43+
list(LENGTH unresolved_deps unresolved_length)
44+
if("${unresolved_length}" GREATER 0)
45+
MESSAGE("The following unresolved dependencies were discovered: ${unresolved_deps}")
4746
endif()
48-
endforeach()
4947

50-
if(ENABLE_EFFECTENGINE)
51-
include(BundleUtilities)
52-
fixup_bundle("${CMAKE_INSTALL_PREFIX}/${TARGET_BUNDLE_NAME}" "${QT_PLUGINS}" "" IGNORE_ITEM "python;python3;Python;Python3;.Python;.Python3")
48+
foreach(PLUGIN "platforms" "sqldrivers" "imageformats")
49+
if(EXISTS ${PLUGIN_DIR}/${PLUGIN})
50+
file(GLOB files "${PLUGIN_DIR}/${PLUGIN}/*")
51+
foreach(file ${files})
52+
file(GET_RUNTIME_DEPENDENCIES
53+
EXECUTABLES ${file}
54+
RESOLVED_DEPENDENCIES_VAR PLUGINS
55+
UNRESOLVED_DEPENDENCIES_VAR unresolved_deps
56+
)
57+
58+
foreach(DEPENDENCY ${PLUGINS})
59+
file(INSTALL
60+
DESTINATION "${CMAKE_INSTALL_PREFIX}/${TARGET_BUNDLE_NAME}/Contents/lib"
61+
TYPE SHARED_LIBRARY
62+
FILES ${DEPENDENCY}
63+
)
64+
endforeach()
65+
66+
get_filename_component(singleQtLib ${file} NAME)
67+
list(APPEND QT_PLUGINS "${CMAKE_INSTALL_PREFIX}/${TARGET_BUNDLE_NAME}/Contents/plugins/${PLUGIN}/${singleQtLib}")
68+
file(INSTALL
69+
FILES ${file}
70+
DESTINATION "${CMAKE_INSTALL_PREFIX}/${TARGET_BUNDLE_NAME}/Contents/plugins/${PLUGIN}"
71+
TYPE SHARED_LIBRARY
72+
)
5373

54-
# Detect the Python version and modules directory
55-
find_package(Python3 3.5 REQUIRED)
56-
execute_process(
57-
COMMAND ${Python3_EXECUTABLE} -c "from distutils.sysconfig import get_python_lib; print(get_python_lib(standard_lib=True))"
58-
OUTPUT_VARIABLE PYTHON_MODULES_DIR
59-
OUTPUT_STRIP_TRAILING_WHITESPACE
60-
)
74+
endforeach()
75+
endif()
76+
endforeach()
77+
78+
include(BundleUtilities)
79+
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")
6180

62-
# Copy Python modules to '/../Frameworks/Python.framework/Versions/Current/lib/PythonMAJOR.MINOR' and ignore the unnecessary stuff listed below
63-
if (PYTHON_MODULES_DIR)
64-
set(PYTHON_VERSION_MAJOR_MINOR "${Python3_VERSION_MAJOR}.${Python3_VERSION_MINOR}")
65-
file(
66-
COPY ${PYTHON_MODULES_DIR}/
67-
DESTINATION "${CMAKE_INSTALL_PREFIX}/${TARGET_BUNDLE_NAME}/Contents/Frameworks/Python.framework/Versions/Current/lib/python${PYTHON_VERSION_MAJOR_MINOR}"
68-
PATTERN "*.pyc" EXCLUDE # compiled bytecodes
69-
PATTERN "__pycache__" EXCLUDE # any cache
70-
PATTERN "config-${PYTHON_VERSION_MAJOR_MINOR}*" EXCLUDE # static libs
71-
PATTERN "lib2to3" EXCLUDE # automated Python 2 to 3 code translation
72-
PATTERN "tkinter" EXCLUDE # Tk interface
73-
PATTERN "turtledemo" EXCLUDE # Tk demo folder
74-
PATTERN "turtle.py" EXCLUDE # Tk demo file
75-
PATTERN "test" EXCLUDE # unittest module
76-
PATTERN "sitecustomize.py" EXCLUDE # site-specific configs
81+
if(ENABLE_EFFECTENGINE)
82+
83+
# Detect the Python version and modules directory
84+
find_package(Python3 3.5 REQUIRED)
85+
execute_process(
86+
COMMAND ${Python3_EXECUTABLE} -c "from distutils.sysconfig import get_python_lib; print(get_python_lib(standard_lib=True))"
87+
OUTPUT_VARIABLE PYTHON_MODULES_DIR
88+
OUTPUT_STRIP_TRAILING_WHITESPACE
7789
)
78-
endif(PYTHON_MODULES_DIR)
79-
endif(ENABLE_EFFECTENGINE)
90+
91+
MESSAGE("Add Python ${Python3_VERSION_MAJOR}.${Python3_VERSION_MINOR} to bundle")
92+
MESSAGE("PYTHON_MODULES_DIR: ${PYTHON_MODULES_DIR}")
93+
94+
# Copy Python modules to '/../Frameworks/Python.framework/Versions/Current/lib/PythonMAJOR.MINOR' and ignore the unnecessary stuff listed below
95+
if (PYTHON_MODULES_DIR)
96+
set(PYTHON_VERSION_MAJOR_MINOR "${Python3_VERSION_MAJOR}.${Python3_VERSION_MINOR}")
97+
file(
98+
COPY ${PYTHON_MODULES_DIR}/
99+
DESTINATION "${CMAKE_INSTALL_PREFIX}/${TARGET_BUNDLE_NAME}/Contents/Frameworks/Python.framework/Versions/Current/lib/python${PYTHON_VERSION_MAJOR_MINOR}"
100+
PATTERN "*.pyc" EXCLUDE # compiled bytecodes
101+
PATTERN "__pycache__" EXCLUDE # any cache
102+
PATTERN "config-${PYTHON_VERSION_MAJOR_MINOR}*" EXCLUDE # static libs
103+
PATTERN "lib2to3" EXCLUDE # automated Python 2 to 3 code translation
104+
PATTERN "tkinter" EXCLUDE # Tk interface
105+
PATTERN "turtledemo" EXCLUDE # Tk demo folder
106+
PATTERN "turtle.py" EXCLUDE # Tk demo file
107+
PATTERN "test" EXCLUDE # unittest module
108+
PATTERN "sitecustomize.py" EXCLUDE # site-specific configs
109+
)
110+
endif(PYTHON_MODULES_DIR)
111+
endif(ENABLE_EFFECTENGINE)
112+
113+
file(REMOVE_RECURSE "${CMAKE_INSTALL_PREFIX}/${TARGET_BUNDLE_NAME}/Contents/lib")
114+
file(REMOVE_RECURSE "${CMAKE_INSTALL_PREFIX}/share")
115+
80116
]] COMPONENT "Hyperion")
81117

82118
else()

doc/development/CompileHowto.md

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -132,16 +132,16 @@ brew install qt5 python3 cmake libusb doxygen
132132
We assume a 64bit Windows 10. Install the following;
133133
- [Git](https://git-scm.com/downloads) (Check: Add to PATH)
134134
- [CMake (Windows win64-x64 installer)](https://cmake.org/download/) (Check: Add to PATH)
135-
- [Visual Studio 2019 Build Tools](https://go.microsoft.com/fwlink/?linkid=840931) ([direct link](https://aka.ms/vs/16/release/vs_buildtools.exe))
136-
- Select C++ Buildtools
137-
- On the right, just select `MSVC v142 VS 2019 C++ x64/x86-Buildtools` and latest `Windows 10 SDK`. Everything else is not needed.
135+
- [Visual Studio 2022 Community Edition](https://visualstudio.microsoft.com/downloads/#visual-studio-community-2022)
136+
- Select 'Desktop development with C++'
137+
- On the right, just select `MSVC v143 VS 2022 C++ x64/x86-Buildtools` and latest `Windows 10 SDK`. Everything else is not needed.
138138
- [Win64 OpenSSL v1.1.1k](https://slproweb.com/products/Win32OpenSSL.html) ([direct link](https://slproweb.com/download/Win64OpenSSL-1_1_1k.exe))
139139
- [Python 3 (Windows x86-64 executable installer)](https://www.python.org/downloads/windows/) (Check: Add to PATH and Debug Symbols)
140140
- Open a console window and execute `pip install aqtinstall`.
141-
- Now we can download Qt to _C:\Qt_ `mkdir c:\Qt && aqt install -O c:\Qt 5.15.0 windows desktop win64_msvc2019_64`
141+
- Now we can download Qt to _C:\Qt_ `mkdir c:\Qt && aqt install -O c:\Qt 5.15.2 windows desktop win64_msvc2019_64`
142142
- QT6.2 requires the [Vulkan SDK](https://vulkan.lunarg.com/sdk/home) to be installed
143143
- [libjpeg-turbo SDK for Visual C++](https://sourceforge.net/projects/libjpeg-turbo/files/)
144-
- Download the latest 64bit installer (currently `libjpeg-turbo-2.1.0-vc64.exe`) and install to its default location `C:\libjpeg-turbo64`.
144+
- Download the latest 64bit installer (currently `libjpeg-turbo-2.1.3-vc64.exe`) and install to its default location `C:\libjpeg-turbo64`.
145145

146146
### Optional:
147147
- For DirectX9 grabber:
@@ -181,14 +181,14 @@ bin/hyperiond
181181

182182
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.
183183

184-
On Windows MSVC2019 set it via the CMakeSettings.json:
184+
On Windows MSVC2022 set it via the CMakeSettings.json:
185185
```posh
186186
"configurations": [
187187
{
188188
...
189189
"environments": [
190190
{
191-
"QTDIR": "C:/Qt/6.2.0/msvc2019_64/"
191+
"QTDIR": "C:/Qt/6.2.2/msvc2019_64/"
192192
}
193193
]
194194
},
@@ -241,8 +241,8 @@ Platform should be auto detected and refer to windows, you can also force window
241241

242242
```posh
243243
# You might need to setup MSVC env first
244-
call "C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Auxiliary\Build\vcvars64.bat"
245-
cmake -DPLATFORM=windows -G "Visual Studio 16 2019" ..
244+
call "C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Auxiliary\Build\vcvars64.bat"
245+
cmake -DPLATFORM=windows -G "Visual Studio 17 2022" ..
246246
```
247247

248248
**Run make to build Hyperion:**
@@ -261,7 +261,7 @@ On Windows run:
261261
```posh
262262
cmake --build . --config Release -- -maxcpucount
263263
```
264-
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"`
264+
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"`
265265

266266
**Install hyperion into your system:**
267267
Copy all necessary files to ``/usr/local/share/hyperion``

0 commit comments

Comments
 (0)