OpenTimelineIO / raven

Raven - OpenTimelineIO Viewer Application
Apache License 2.0
73 stars 14 forks source link

Trying to install it on Fedora #9

Closed waldirio closed 1 year ago

waldirio commented 1 year ago

Hello folks, I'm facing some issues when trying to install it on fedora. Let me share some info.

Initially, I got this

(otio-p37) [wpinheir@ironman build]$ cmake ..
-- Checking for module 'gtk+-3.0'
--   Package 'gtk+-3.0', required by 'virtual:world', not found
CMake Error at /usr/share/cmake/Modules/FindPkgConfig.cmake:607 (message):
  A required package was not found
Call Stack (most recent call first):
  /usr/share/cmake/Modules/FindPkgConfig.cmake:829 (_pkg_check_modules_internal)
  libs/CMakeLists.txt:6 (pkg_check_modules)

-- Configuring incomplete, errors occurred!
See also "/home/wpinheir/code/raven/build/CMakeFiles/CMakeOutput.log".

Then after some time, I returned and once I was very excited to see this working, I tried all the steps below, in order to see this working on linux.

Checking the default path for include

# gcc -xc -E -v -
Using built-in specs.
COLLECT_GCC=gcc
OFFLOAD_TARGET_NAMES=nvptx-none
OFFLOAD_TARGET_DEFAULT=1
Target: x86_64-redhat-linux
Configured with: ../configure --enable-bootstrap --enable-languages=c,c++,fortran,objc,obj-c++,ada,go,d,lto --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-shared --enable-threads=posix --enable-checking=release --enable-multilib --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-linker-build-id --with-gcc-major-version-only --enable-libstdcxx-backtrace --with-linker-hash-style=gnu --enable-plugin --enable-initfini-array --with-isl=/builddir/build/BUILD/gcc-12.2.1-20221121/obj-x86_64-redhat-linux/isl-install --enable-offload-targets=nvptx-none --without-cuda-driver --enable-offload-defaulted --enable-gnu-indirect-function --enable-cet --with-tune=generic --with-arch_32=i686 --build=x86_64-redhat-linux --with-build-config=bootstrap-lto --enable-link-serialization=1
Thread model: posix
Supported LTO compression algorithms: zlib zstd
gcc version 12.2.1 20221121 (Red Hat 12.2.1-4) (GCC) 
COLLECT_GCC_OPTIONS='-E' '-v' '-mtune=generic' '-march=x86-64'
 /usr/libexec/gcc/x86_64-redhat-linux/12/cc1 -E -quiet -v - -mtune=generic -march=x86-64 -dumpbase -
ignoring nonexistent directory "/usr/lib/gcc/x86_64-redhat-linux/12/include-fixed"
ignoring nonexistent directory "/usr/lib/gcc/x86_64-redhat-linux/12/../../../../x86_64-redhat-linux/include"
#include "..." search starts here:
#include <...> search starts here:
 /usr/lib/gcc/x86_64-redhat-linux/12/include
 /usr/local/include
 /usr/include
End of search list.

Edit "libs/CMakeLists.txt"

From

if(UNIX AND NOT APPLE AND NOT EMSCRIPTEN)
    find_package(PkgConfig REQUIRED)
    pkg_check_modules(GTK3 REQUIRED gtk+-3.0)
endif()

To

if(UNIX AND NOT APPLE AND NOT EMSCRIPTEN)
    find_package(PkgConfig REQUIRED)
#    pkg_check_modules(GTK3 REQUIRED gtk+-3.0)
endif()

Note. This was complaining about gtk package, but as you can see below, I have already.

# rpm -qa | grep ^gtk
gtk-update-icon-cache-3.24.36-1.fc37.x86_64
gtk4-4.8.3-1.fc37.x86_64
gtkmm3.0-3.24.7-2.fc37.x86_64
gtk-vnc2-1.3.0-5.fc37.x86_64
gtksourceview4-4.8.3-3.fc37.x86_64
gtkspell3-3.0.10-15.fc37.x86_64
gtksourceview5-5.6.1-2.fc37.x86_64
gtk2-2.24.33-10.fc37.x86_64
gtkmm2.4-2.24.5-15.fc37.x86_64
gtksourceview3-3.24.11-8.fc37.x86_64
gtk3-3.24.37-1.fc37.x86_64
gtk3-devel-3.24.37-1.fc37.x86_64

install gtk3-devel created some symlinks

# ln -s /usr/include/gtk-3.0/gtk /usr/include/gtk
# ln -s /usr/include/gtk-3.0/gdk /usr/include/gdk
# ln -s /usr/include/glib-2.0/glib.h /usr/include/
# ln -s /usr/include/glib-2.0/glib/ /usr/include/glib
# ln -s /usr/lib64/glib-2.0/include/glibconfig.h /usr/include/glibconfig.h
# ln -s /usr/include/glib-2.0/gio/ /usr/include/gio
# ln -s /usr/include/glib-2.0/glib-object.h /usr/include/
# ln -s /usr/include/glib-2.0/gobject /usr/include/gobject
# ln -s /usr/include/glib-2.0/gmodule.h /usr/include
# ln -s /usr/include/pango-1.0/pango /usr/include/pango
# for b in $(ls /usr/include/harfbuzz/hb-*); do echo - $b; ln -s $b /usr/include; done
# for b in $(ls /usr/include/cairo/*.h); do echo - $b; ln -s $b /usr/include; done
# ln -s /usr/include/gdk-pixbuf-2.0/gdk-pixbuf/ /usr/include/gdk-pixbuf
# ln -s /usr/include/atk-1.0/atk/ /usr/include/atk

the cmake passed a lot of dependencies issues and now, I'm stuck here.

$ cmake --build .
[ 22%] Built target glfw
[ 23%] Building C object libs/CMakeFiles/nativefiledialog.dir/nativefiledialog/src/nfd_gtk.c.o
[ 24%] Linking C static library libnativefiledialog.a
[ 25%] Built target nativefiledialog
[ 25%] Building CXX object libs/CMakeFiles/IMGUI.dir/imgui/imgui_demo.cpp.o
[ 26%] Building CXX object libs/CMakeFiles/IMGUI.dir/imgui/imgui_draw.cpp.o
[ 27%] Building CXX object libs/CMakeFiles/IMGUI.dir/imgui/imgui_tables.cpp.o
[ 28%] Building CXX object libs/CMakeFiles/IMGUI.dir/imgui/imgui_widgets.cpp.o
[ 29%] Building CXX object libs/CMakeFiles/IMGUI.dir/imgui/imgui.cpp.o
[ 30%] Building CXX object libs/CMakeFiles/IMGUI.dir/implot/implot.cpp.o
[ 31%] Building CXX object libs/CMakeFiles/IMGUI.dir/implot/implot_demo.cpp.o
[ 32%] Building CXX object libs/CMakeFiles/IMGUI.dir/implot/implot_items.cpp.o
[ 33%] Building CXX object libs/CMakeFiles/IMGUI.dir/ImGuiColorTextEdit/TextEditor.cpp.o
[ 34%] Building CXX object libs/CMakeFiles/IMGUI.dir/imgui/backends/imgui_impl_glfw.cpp.o
[ 35%] Building CXX object libs/CMakeFiles/IMGUI.dir/imgui/backends/imgui_impl_opengl3.cpp.o
[ 36%] Building C object libs/CMakeFiles/IMGUI.dir/gl3w/GL/gl3w.c.o
[ 37%] Linking CXX static library libIMGUI.a
[ 37%] Built target IMGUI
[ 38%] Building CXX object libs/CMakeFiles/binary_to_compressed_c.dir/imgui/misc/fonts/binary_to_compressed_c.cpp.o
[ 39%] Linking CXX executable binary_to_compressed_c
[ 39%] Built target binary_to_compressed_c
[ 39%] Building CXX object libs/opentimelineio/src/deps/Imath/src/Imath/CMakeFiles/Imath.dir/half.cpp.o
[ 40%] Building CXX object libs/opentimelineio/src/deps/Imath/src/Imath/CMakeFiles/Imath.dir/ImathColorAlgo.cpp.o
[ 41%] Building CXX object libs/opentimelineio/src/deps/Imath/src/Imath/CMakeFiles/Imath.dir/ImathFun.cpp.o
[ 42%] Building CXX object libs/opentimelineio/src/deps/Imath/src/Imath/CMakeFiles/Imath.dir/ImathMatrixAlgo.cpp.o
[ 43%] Building CXX object libs/opentimelineio/src/deps/Imath/src/Imath/CMakeFiles/Imath.dir/ImathRandom.cpp.o
[ 44%] Linking CXX static library libImath-3_2.a
[ 44%] Built target Imath
[ 45%] Building CXX object libs/opentimelineio/src/opentime/CMakeFiles/opentime.dir/errorStatus.cpp.o
[ 46%] Building CXX object libs/opentimelineio/src/opentime/CMakeFiles/opentime.dir/rationalTime.cpp.o
[ 47%] Linking CXX static library libopentime.a
[ 47%] Built target opentime
[ 48%] Building CXX object libs/opentimelineio/src/opentimelineio/CMakeFiles/opentimelineio.dir/clip.cpp.o
[ 49%] Building CXX object libs/opentimelineio/src/opentimelineio/CMakeFiles/opentimelineio.dir/composable.cpp.o
[ 50%] Building CXX object libs/opentimelineio/src/opentimelineio/CMakeFiles/opentimelineio.dir/composition.cpp.o
[ 50%] Building CXX object libs/opentimelineio/src/opentimelineio/CMakeFiles/opentimelineio.dir/deserialization.cpp.o
[ 51%] Building CXX object libs/opentimelineio/src/opentimelineio/CMakeFiles/opentimelineio.dir/effect.cpp.o
[ 52%] Building CXX object libs/opentimelineio/src/opentimelineio/CMakeFiles/opentimelineio.dir/errorStatus.cpp.o
[ 53%] Building CXX object libs/opentimelineio/src/opentimelineio/CMakeFiles/opentimelineio.dir/externalReference.cpp.o
[ 54%] Building CXX object libs/opentimelineio/src/opentimelineio/CMakeFiles/opentimelineio.dir/freezeFrame.cpp.o
[ 55%] Building CXX object libs/opentimelineio/src/opentimelineio/CMakeFiles/opentimelineio.dir/gap.cpp.o
[ 56%] Building CXX object libs/opentimelineio/src/opentimelineio/CMakeFiles/opentimelineio.dir/generatorReference.cpp.o
[ 57%] Building CXX object libs/opentimelineio/src/opentimelineio/CMakeFiles/opentimelineio.dir/imageSequenceReference.cpp.o
[ 58%] Building CXX object libs/opentimelineio/src/opentimelineio/CMakeFiles/opentimelineio.dir/item.cpp.o
[ 59%] Building CXX object libs/opentimelineio/src/opentimelineio/CMakeFiles/opentimelineio.dir/linearTimeWarp.cpp.o
[ 60%] Building CXX object libs/opentimelineio/src/opentimelineio/CMakeFiles/opentimelineio.dir/marker.cpp.o
[ 61%] Building CXX object libs/opentimelineio/src/opentimelineio/CMakeFiles/opentimelineio.dir/mediaReference.cpp.o
[ 62%] Building CXX object libs/opentimelineio/src/opentimelineio/CMakeFiles/opentimelineio.dir/missingReference.cpp.o
[ 62%] Building CXX object libs/opentimelineio/src/opentimelineio/CMakeFiles/opentimelineio.dir/safely_typed_any.cpp.o
[ 63%] Building CXX object libs/opentimelineio/src/opentimelineio/CMakeFiles/opentimelineio.dir/serializableCollection.cpp.o
[ 64%] Building CXX object libs/opentimelineio/src/opentimelineio/CMakeFiles/opentimelineio.dir/serializableObject.cpp.o
[ 65%] Building CXX object libs/opentimelineio/src/opentimelineio/CMakeFiles/opentimelineio.dir/serializableObjectWithMetadata.cpp.o
[ 66%] Building CXX object libs/opentimelineio/src/opentimelineio/CMakeFiles/opentimelineio.dir/serialization.cpp.o
[ 67%] Building CXX object libs/opentimelineio/src/opentimelineio/CMakeFiles/opentimelineio.dir/stack.cpp.o
[ 68%] Building CXX object libs/opentimelineio/src/opentimelineio/CMakeFiles/opentimelineio.dir/stackAlgorithm.cpp.o
[ 69%] Building CXX object libs/opentimelineio/src/opentimelineio/CMakeFiles/opentimelineio.dir/stringUtils.cpp.o
[ 70%] Building CXX object libs/opentimelineio/src/opentimelineio/CMakeFiles/opentimelineio.dir/timeEffect.cpp.o
[ 71%] Building CXX object libs/opentimelineio/src/opentimelineio/CMakeFiles/opentimelineio.dir/timeline.cpp.o
[ 72%] Building CXX object libs/opentimelineio/src/opentimelineio/CMakeFiles/opentimelineio.dir/track.cpp.o
[ 73%] Building CXX object libs/opentimelineio/src/opentimelineio/CMakeFiles/opentimelineio.dir/trackAlgorithm.cpp.o
[ 74%] Building CXX object libs/opentimelineio/src/opentimelineio/CMakeFiles/opentimelineio.dir/transition.cpp.o
[ 75%] Building CXX object libs/opentimelineio/src/opentimelineio/CMakeFiles/opentimelineio.dir/typeRegistry.cpp.o
[ 75%] Building CXX object libs/opentimelineio/src/opentimelineio/CMakeFiles/opentimelineio.dir/unknownSchema.cpp.o
[ 76%] Building CXX object libs/opentimelineio/src/opentimelineio/CMakeFiles/opentimelineio.dir/CORE_VERSION_MAP.cpp.o
[ 77%] Linking CXX static library libopentimelineio.a
[ 77%] Built target opentimelineio
[ 78%] Embedding font...
[ 79%] Building CXX object CMakeFiles/raven.dir/app.cpp.o
[ 80%] Building CXX object CMakeFiles/raven.dir/editing.cpp.o
[ 81%] Building CXX object CMakeFiles/raven.dir/inspector.cpp.o
[ 82%] Building CXX object CMakeFiles/raven.dir/timeline.cpp.o
[ 83%] Building CXX object CMakeFiles/raven.dir/widgets.cpp.o
[ 84%] Building CXX object CMakeFiles/raven.dir/main_glfw.cpp.o
[ 85%] Linking CXX executable raven
/usr/bin/ld: libs/libnativefiledialog.a(nfd_gtk.c.o): in function `AddFiltersToDialog':
nfd_gtk.c:(.text+0x129): undefined reference to `gtk_file_filter_new'
/usr/bin/ld: nfd_gtk.c:(.text+0x152): undefined reference to `gtk_file_filter_set_name'
/usr/bin/ld: nfd_gtk.c:(.text+0x157): undefined reference to `gtk_file_chooser_get_type'
/usr/bin/ld: nfd_gtk.c:(.text+0x165): undefined reference to `g_type_check_instance_cast'
/usr/bin/ld: nfd_gtk.c:(.text+0x170): undefined reference to `gtk_file_chooser_add_filter'
/usr/bin/ld: nfd_gtk.c:(.text+0x186): undefined reference to `gtk_file_filter_new'
/usr/bin/ld: nfd_gtk.c:(.text+0x218): undefined reference to `gtk_file_filter_add_pattern'
/usr/bin/ld: nfd_gtk.c:(.text+0x251): undefined reference to `gtk_file_filter_new'
/usr/bin/ld: nfd_gtk.c:(.text+0x261): undefined reference to `gtk_file_filter_set_name'
/usr/bin/ld: nfd_gtk.c:(.text+0x26e): undefined reference to `gtk_file_filter_add_pattern'
/usr/bin/ld: nfd_gtk.c:(.text+0x279): undefined reference to `g_type_check_instance_cast'
/usr/bin/ld: nfd_gtk.c:(.text+0x284): undefined reference to `gtk_file_chooser_add_filter'
/usr/bin/ld: libs/libnativefiledialog.a(nfd_gtk.c.o): in function `NFD_OpenDialog':
nfd_gtk.c:(.text+0x2a8): undefined reference to `gtk_init_check'
/usr/bin/ld: nfd_gtk.c:(.text+0x2d5): undefined reference to `gtk_file_chooser_dialog_new'
/usr/bin/ld: nfd_gtk.c:(.text+0x2f4): undefined reference to `gtk_dialog_get_type'
/usr/bin/ld: nfd_gtk.c:(.text+0x304): undefined reference to `g_type_check_instance_cast'
/usr/bin/ld: nfd_gtk.c:(.text+0x30c): undefined reference to `gtk_dialog_run'
/usr/bin/ld: nfd_gtk.c:(.text+0x321): undefined reference to `gtk_main_iteration'
/usr/bin/ld: nfd_gtk.c:(.text+0x326): undefined reference to `gtk_events_pending'
/usr/bin/ld: nfd_gtk.c:(.text+0x332): undefined reference to `gtk_widget_destroy'
/usr/bin/ld: nfd_gtk.c:(.text+0x341): undefined reference to `gtk_main_iteration'
/usr/bin/ld: nfd_gtk.c:(.text+0x346): undefined reference to `gtk_events_pending'
/usr/bin/ld: nfd_gtk.c:(.text+0x361): undefined reference to `gtk_file_chooser_get_type'
/usr/bin/ld: nfd_gtk.c:(.text+0x36c): undefined reference to `g_type_check_instance_cast'
/usr/bin/ld: nfd_gtk.c:(.text+0x377): undefined reference to `gtk_file_chooser_set_current_folder'
/usr/bin/ld: nfd_gtk.c:(.text+0x391): undefined reference to `gtk_file_chooser_get_type'
/usr/bin/ld: nfd_gtk.c:(.text+0x39c): undefined reference to `g_type_check_instance_cast'
/usr/bin/ld: nfd_gtk.c:(.text+0x3a4): undefined reference to `gtk_file_chooser_get_filename'
/usr/bin/ld: nfd_gtk.c:(.text+0x3dc): undefined reference to `g_free'
/usr/bin/ld: nfd_gtk.c:(.text+0x3eb): undefined reference to `g_free'
/usr/bin/ld: nfd_gtk.c:(.text+0x3f5): undefined reference to `gtk_widget_destroy'
/usr/bin/ld: libs/libnativefiledialog.a(nfd_gtk.c.o): in function `NFD_OpenDialogMultiple':
nfd_gtk.c:(.text+0x41c): undefined reference to `gtk_init_check'
/usr/bin/ld: nfd_gtk.c:(.text+0x449): undefined reference to `gtk_file_chooser_dialog_new'
/usr/bin/ld: nfd_gtk.c:(.text+0x451): undefined reference to `gtk_file_chooser_get_type'
/usr/bin/ld: nfd_gtk.c:(.text+0x45f): undefined reference to `g_type_check_instance_cast'
/usr/bin/ld: nfd_gtk.c:(.text+0x46c): undefined reference to `gtk_file_chooser_set_select_multiple'
/usr/bin/ld: nfd_gtk.c:(.text+0x48a): undefined reference to `gtk_dialog_get_type'
/usr/bin/ld: nfd_gtk.c:(.text+0x49b): undefined reference to `g_type_check_instance_cast'
/usr/bin/ld: nfd_gtk.c:(.text+0x4a3): undefined reference to `gtk_dialog_run'
/usr/bin/ld: nfd_gtk.c:(.text+0x4b1): undefined reference to `gtk_main_iteration'
/usr/bin/ld: nfd_gtk.c:(.text+0x4b6): undefined reference to `gtk_events_pending'
/usr/bin/ld: nfd_gtk.c:(.text+0x4c2): undefined reference to `gtk_widget_destroy'
/usr/bin/ld: nfd_gtk.c:(.text+0x4d1): undefined reference to `gtk_main_iteration'
/usr/bin/ld: nfd_gtk.c:(.text+0x4d6): undefined reference to `gtk_events_pending'
/usr/bin/ld: nfd_gtk.c:(.text+0x4f7): undefined reference to `g_type_check_instance_cast'
/usr/bin/ld: nfd_gtk.c:(.text+0x502): undefined reference to `gtk_file_chooser_set_current_folder'
/usr/bin/ld: nfd_gtk.c:(.text+0x527): undefined reference to `g_type_check_instance_cast'
/usr/bin/ld: nfd_gtk.c:(.text+0x52f): undefined reference to `gtk_file_chooser_get_filenames'
/usr/bin/ld: nfd_gtk.c:(.text+0x53f): undefined reference to `g_slist_length'
/usr/bin/ld: nfd_gtk.c:(.text+0x5d8): undefined reference to `g_free'
/usr/bin/ld: nfd_gtk.c:(.text+0x607): undefined reference to `g_slist_free'
/usr/bin/ld: nfd_gtk.c:(.text+0x614): undefined reference to `gtk_widget_destroy'
/usr/bin/ld: libs/libnativefiledialog.a(nfd_gtk.c.o): in function `NFD_SaveDialog':
nfd_gtk.c:(.text+0x646): undefined reference to `gtk_init_check'
/usr/bin/ld: nfd_gtk.c:(.text+0x676): undefined reference to `gtk_file_chooser_dialog_new'
/usr/bin/ld: nfd_gtk.c:(.text+0x67e): undefined reference to `gtk_file_chooser_get_type'
/usr/bin/ld: nfd_gtk.c:(.text+0x68c): undefined reference to `g_type_check_instance_cast'
/usr/bin/ld: nfd_gtk.c:(.text+0x699): undefined reference to `gtk_file_chooser_set_do_overwrite_confirmation'
/usr/bin/ld: nfd_gtk.c:(.text+0x6b6): undefined reference to `gtk_dialog_get_type'
/usr/bin/ld: nfd_gtk.c:(.text+0x6c6): undefined reference to `g_type_check_instance_cast'
/usr/bin/ld: nfd_gtk.c:(.text+0x6ce): undefined reference to `gtk_dialog_run'
/usr/bin/ld: nfd_gtk.c:(.text+0x6e1): undefined reference to `gtk_main_iteration'
/usr/bin/ld: nfd_gtk.c:(.text+0x6e6): undefined reference to `gtk_events_pending'
/usr/bin/ld: nfd_gtk.c:(.text+0x6f2): undefined reference to `gtk_widget_destroy'
/usr/bin/ld: nfd_gtk.c:(.text+0x701): undefined reference to `gtk_main_iteration'
/usr/bin/ld: nfd_gtk.c:(.text+0x706): undefined reference to `gtk_events_pending'
/usr/bin/ld: nfd_gtk.c:(.text+0x727): undefined reference to `g_type_check_instance_cast'
/usr/bin/ld: nfd_gtk.c:(.text+0x732): undefined reference to `gtk_file_chooser_set_current_folder'
/usr/bin/ld: nfd_gtk.c:(.text+0x757): undefined reference to `g_type_check_instance_cast'
/usr/bin/ld: nfd_gtk.c:(.text+0x75f): undefined reference to `gtk_file_chooser_get_filename'
/usr/bin/ld: nfd_gtk.c:(.text+0x797): undefined reference to `g_free'
/usr/bin/ld: nfd_gtk.c:(.text+0x7a6): undefined reference to `g_free'
/usr/bin/ld: nfd_gtk.c:(.text+0x7b0): undefined reference to `gtk_widget_destroy'
/usr/bin/ld: libs/libnativefiledialog.a(nfd_gtk.c.o): in function `NFD_PickFolder':
nfd_gtk.c:(.text+0x7d5): undefined reference to `gtk_init_check'
/usr/bin/ld: nfd_gtk.c:(.text+0x805): undefined reference to `gtk_file_chooser_dialog_new'
/usr/bin/ld: nfd_gtk.c:(.text+0x80d): undefined reference to `gtk_file_chooser_get_type'
/usr/bin/ld: nfd_gtk.c:(.text+0x81b): undefined reference to `g_type_check_instance_cast'
/usr/bin/ld: nfd_gtk.c:(.text+0x828): undefined reference to `gtk_file_chooser_set_do_overwrite_confirmation'
/usr/bin/ld: nfd_gtk.c:(.text+0x839): undefined reference to `gtk_dialog_get_type'
/usr/bin/ld: nfd_gtk.c:(.text+0x849): undefined reference to `g_type_check_instance_cast'
/usr/bin/ld: nfd_gtk.c:(.text+0x851): undefined reference to `gtk_dialog_run'
/usr/bin/ld: nfd_gtk.c:(.text+0x861): undefined reference to `gtk_main_iteration'
/usr/bin/ld: nfd_gtk.c:(.text+0x866): undefined reference to `gtk_events_pending'
/usr/bin/ld: nfd_gtk.c:(.text+0x872): undefined reference to `gtk_widget_destroy'
/usr/bin/ld: nfd_gtk.c:(.text+0x881): undefined reference to `gtk_main_iteration'
/usr/bin/ld: nfd_gtk.c:(.text+0x886): undefined reference to `gtk_events_pending'
/usr/bin/ld: nfd_gtk.c:(.text+0x8a7): undefined reference to `g_type_check_instance_cast'
/usr/bin/ld: nfd_gtk.c:(.text+0x8b2): undefined reference to `gtk_file_chooser_set_current_folder'
/usr/bin/ld: nfd_gtk.c:(.text+0x8d7): undefined reference to `g_type_check_instance_cast'
/usr/bin/ld: nfd_gtk.c:(.text+0x8df): undefined reference to `gtk_file_chooser_get_filename'
/usr/bin/ld: nfd_gtk.c:(.text+0x917): undefined reference to `g_free'
/usr/bin/ld: nfd_gtk.c:(.text+0x926): undefined reference to `g_free'
/usr/bin/ld: nfd_gtk.c:(.text+0x930): undefined reference to `gtk_widget_destroy'
collect2: error: ld returned 1 exit status
gmake[2]: *** [CMakeFiles/raven.dir/build.make:191: raven] Error 1
gmake[1]: *** [CMakeFiles/Makefile2:316: CMakeFiles/raven.dir/all] Error 2
gmake: *** [Makefile:136: all] Error 2

Ps.: I was trying to add the path in some files, better than creating a lot of symlinks, but none of them worked.

Any help will be very welcome.

Thank you Waldirio

waldirio commented 1 year ago

Also, once there is a lot of dependencies, I believe to be interesting create a binary of this package.

In general, in my python projects, I use pyinstaller and this will create a binary file, I believe you can compile it and turn it available via releases. It will be very convenient.

Thank you Waldirio

JeanChristopheMorinPerso commented 1 year ago

You get the undefined reference errors because you commented out pkg_check_modules(GTK3.... at least that's what I think the error is.

As for why pkg_check_modules(GTK3 doesn't work, I don't know. Is it possible that you ran cmake and then you installed the gtk3 headers after and then re-ran cmake again without clearing the cmake cache?

waldirio commented 1 year ago

hello @JeanChristopheMorinPerso

Thank you for the insight, removing the comment and rerunning cmake --build . was enough to build the binary with no issues.

I got some additional issues, for example, when maximizing the screen, everything changed to gray (the content of the window), but I believe this is another issue.

Yea, I believe we can archive this issue, or if you guys would like to keep this a little bit more simple for linux users, I believe we can check the best way to install it, including the requirements.

Btw, is this package already available via pip? like we are doing with opentimelineio? I believe this will resolve this problem easily.

Thank you! Waldirio

jminor commented 1 year ago

I'm glad to hear you got it up and running.

I have updated the build instructions in https://github.com/OpenTimelineIO/raven/pull/10 to make the dependencies more clear.

I don't think pip is the right way to install raven by itself since it is not a Python package, however we do hope to replace otioview with raven once it is feature complete, and at that time it might make sense to bundle raven into the opentimelineio package.