oyvindln / vhs-decode

Software defined VHS decoder - Fork (maybe temporary) of the ld-decode Laserdisc rf decoder
GNU General Public License v3.0
1.12k stars 43 forks source link

Mac OS M1 Sierra installation #99

Closed captainjack64 closed 1 year ago

captainjack64 commented 1 year ago

Has anyone managed to get vhs-decode and its companions installed on Mac OS? I spent about a day trying to get it going but failed miserably.

The main sticking point seems to be Qt5 libraries and its dependencies. Here are some logs:

$ cmake .. -DCMAKE_BUILD_TYPE=Release
-- The C compiler identification is AppleClang 14.0.0.14000029
-- The CXX compiler identification is AppleClang 14.0.0.14000029
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Qt Version: 5.15.10
-- Found PkgConfig: /opt/homebrew/bin/pkg-config (found version "0.29.2")
-- Checking for module 'Qt5Qwt6'
--   No package 'Qt5Qwt6' found
-- Found Qwt: /opt/homebrew/lib/qwt.framework (6.2.0)
-- Checking for module 'fftw3'
--   Found fftw3, version 3.3.10
-- Checking for modules 'libavcodec;libavformat;libavutil'
--   Found libavcodec, version 60.3.100
--   Found libavformat, version 60.3.100
--   Found libavutil, version 58.2.100
-- Found Python3: /opt/homebrew/Frameworks/Python.framework/Versions/3.11/bin/python3.11 (found suitable version "3.11.4", minimum required is "3.6") found components: Interpreter
-- Configuring done
-- Generating done

Then make -j4

[ 88%] Building CXX object tools/ld-analyse/CMakeFiles/ld-analyse.dir/busydialog.cpp.o
In file included from /Users/alex/Documents/HackTV Stuff/GitHub-HackTV/vhs-decode/build2/tools/ld-analyse/ld-analyse_autogen/mocs_compilation.cpp:2:
/Users/alex/Documents/HackTV Stuff/GitHub-HackTV/vhs-decode/build2/tools/ld-analyse/ld-analyse_autogen/EWIEGA46WW/moc_aboutdialog.cpp:16:2: error: "This file was generated using the moc from 5.15.10. It"
#error "This file was generated using the moc from 5.15.10. It"
 ^
/Users/alex/Documents/HackTV Stuff/GitHub-HackTV/vhs-decode/build2/tools/ld-analyse/ld-analyse_autogen/EWIEGA46WW/moc_aboutdialog.cpp:17:2: error: "cannot be used with the include files from this version of Qt."
#error "cannot be used with the include files from this version of Qt."
 ^
/Users/alex/Documents/HackTV Stuff/GitHub-HackTV/vhs-decode/build2/tools/ld-analyse/ld-analyse_autogen/EWIEGA46WW/moc_aboutdialog.cpp:18:2: error: "(The moc has changed too much.)"
#error "(The moc has changed too much.)"
 ^
/Users/alex/Documents/HackTV Stuff/GitHub-HackTV/vhs-decode/build2/tools/ld-analyse/ld-analyse_autogen/EWIEGA46WW/moc_aboutdialog.cpp:35:1: error: use of undeclared identifier 'Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET'
QT_MOC_LITERAL(0, 0, 11) // "AboutDialog"
^
/Users/alex/Documents/HackTV Stuff/GitHub-HackTV/vhs-decode/build2/tools/ld-analyse/ld-analyse_autogen/EWIEGA46WW/moc_aboutdialog.cpp:29:5: note: expanded from macro 'QT_MOC_LITERAL'
    Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \
    ^
/Users/alex/Documents/HackTV Stuff/GitHub-HackTV/vhs-decode/build2/tools/ld-analyse/ld-analyse_autogen/EWIEGA46WW/moc_aboutdialog.cpp:66:1: error: unknown type name 'QT_INIT_METAOBJECT'
QT_INIT_METAOBJECT const QMetaObject AboutDialog::staticMetaObject = { {
^
/Users/alex/Documents/HackTV Stuff/GitHub-HackTV/vhs-decode/build2/tools/ld-analyse/ld-analyse_autogen/EWIEGA46WW/moc_aboutdialog.cpp:66:37: error: expected ';' after top level declarator
QT_INIT_METAOBJECT const QMetaObject AboutDialog::staticMetaObject = { {
                                    ^
                                    ;
In file included from /Users/alex/Documents/HackTV Stuff/GitHub-HackTV/vhs-decode/build2/tools/ld-analyse/ld-analyse_autogen/mocs_compilation.cpp:3:
In file included from /Users/alex/Documents/HackTV Stuff/GitHub-HackTV/vhs-decode/build2/tools/ld-analyse/ld-analyse_autogen/EWIEGA46WW/moc_blacksnranalysisdialog.cpp:10:
In file included from /Users/alex/Documents/HackTV Stuff/GitHub-HackTV/vhs-decode/build2/tools/ld-analyse/ld-analyse_autogen/EWIEGA46WW/../../../../../tools/ld-analyse/blacksnranalysisdialog.h:35:
In file included from /opt/homebrew/lib/qwt.framework/Headers/qwt_plot_curve.h:14:
In file included from /opt/homebrew/lib/qwt.framework/Headers/qwt_plot_seriesitem.h:15:
In file included from /opt/homebrew/lib/qwt.framework/Headers/qwt_series_store.h:14:
In file included from /opt/homebrew/lib/qwt.framework/Headers/qwt_series_data.h:14:
In file included from /opt/homebrew/lib/qwt.framework/Headers/qwt_samples.h:16:
/opt/homebrew/opt/qt@5/lib/QtCore.framework/Headers/qvector.h:63:7: error: redefinition of 'QVector' as different kind of symbol
class QVector
      ^
/opt/homebrew/lib/QtCore.framework/Headers/qcontainerfwd.h:32:22: note: previous definition is here
template<typename T> using QVector = QList<T>;

There are other errors as well of similar ilk.

I have tried various installation options for Qt with homebrew and macports and a lot of Googling but the above errors aren't going away.

Any pointers?

harrypm commented 1 year ago

A few users have installed vhs-decode/ld-decode on the Discord we also have now got a MacOS (Arm) build for the Domes Day Dupicator.

Though decoders are yet to have self contained binarys made, i've been waiting for things to get in order then it will be added to the docs.

captainjack64 commented 1 year ago

Ah thanks! I'll jump on Discord and have a nosey. I am mostly interested in cvbs-decode rather than from FM-based sources (video heads or LD).

captainjack64 commented 1 year ago

Just to follow up, this command helped me build the packages finally:

cmake .. -DCMAKE_BUILD_TYPE=Release -DUSE_QT_VERSION=5 -DQT_DIR=/opt/homebrew/opt/qt@5/lib/cmake/Qt5 -DQt5_DIR=/opt/homebrew/opt/qt@5/lib/cmake/Qt5 -DQWT_INCLUDE_DIR=/opt/homebrew/opt/qwt-qt5/lib/qwt.framework/Headers -DQWT_LIBRARY=/opt/homebrew/opt/qwt-qt5/lib/qwt.framework

harrypm commented 1 year ago

Just to note, I added the MacOS page so i'll close this and refrance to it if future issues arise.