Git Product home page Git Product logo

basalt's People

Contributors

matzipan avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar

basalt's Issues

Too many make errors on basalt; building fails

Hello,

I'm trying to build Envoyer on Solus (Linux) but make keeps failing on basalt. This is the output:

[11:15:46] vistaus@solus /run/media/vistaus/MicroSD/Apps/envoyer/build (1) 
> cmake -DCMAKE_INSTALL_PREFIX=/usr ..
-- checking for a minimum Vala version of 0.11.0
--   found Vala, version 0.38.4
-- GSettings schemas will be installed locally.
-- GSettings shemas will be compiled.
-- GSettings schemas will be installed into /usr/share/glib-2.0/schemas/
-- Found icu4c
-- Found ctemplate
-- Found libetpan
-- Found tidy
-- Found uuid
-- Found libxml2
-- Found zlib
-- checking for a minimum Vala version of 0.23.2
--   found Vala, version 0.38.4
-- Checking for modules 'gtk+-3.0>=3.14;gee-0.8'
--   Found gtk+-3.0, version 3.22.26
--   Found gee-0.8, version 0.20.0
-- Configuring done
-- Generating done
-- Build files have been written to: /run/media/vistaus/MicroSD/Apps/envoyer/build
[11:15:59] vistaus@solus /run/media/vistaus/MicroSD/Apps/envoyer/build (0) 
> make -j3
src/CMakeFiles/com.github.matzipan.envoyer-webextension.dir/build.make:187: warning: overriding recipe for target 'src/IMessageViewerExtension.c'
src/CMakeFiles/com.github.matzipan.envoyer-webextension.dir/build.make:64: warning: ignoring old recipe for target 'src/IMessageViewerExtension.c'
src/CMakeFiles/com.github.matzipan.envoyer-webextension.dir/build.make:190: warning: overriding recipe for target 'src/config.c'
src/CMakeFiles/com.github.matzipan.envoyer-webextension.dir/build.make:70: warning: ignoring old recipe for target 'src/config.c'
make[2]: *** No rule to make target 'lib/basalt/lib/basalt.vapi', needed by 'src/.com.github.matzipan.envoyer.stamp'.  Stop.
make[1]: *** [CMakeFiles/Makefile2:367: src/CMakeFiles/com.github.matzipan.envoyer-webextension.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
[  1%] Generating .basalt.stamp
Scanning dependencies of target MailCore
[  1%] Building CXX object lib/mailcore2/src/CMakeFiles/MailCore.dir/core/basetypes/MCArray.cpp.o
[  1%] Building C object lib/mailcore2/src/CMakeFiles/MailCore.dir/core/basetypes/MCAssert.c.o
[  2%] Building CXX object lib/mailcore2/src/CMakeFiles/MailCore.dir/core/basetypes/MCAutoreleasePool.cpp.o
[  2%] Building C object lib/mailcore2/src/CMakeFiles/MailCore.dir/core/basetypes/MCBase64.c.o
[  3%] Building CXX object lib/mailcore2/src/CMakeFiles/MailCore.dir/core/basetypes/MCConnectionLoggerUtils.cpp.o
[  3%] Generating Widgets/Sidebar/SidebarParentRowModel.c, Widgets/Sidebar/SidebarHeaderModel.c, Widgets/Sidebar/SidebarExpandableRowModel.c, Widgets/Sidebar/SidebarRowModel.c, Widgets/Sidebar/SidebarHeader.c, Widgets/Sidebar/SidebarExpandableRow.c, Widgets/Sidebar/SidebarRow.c, Widgets/Sidebar/Sidebar.c, Widgets/Sidebar/SidebarStore.c, Widgets/Sidebar/IndicatorBar.c, Widgets/Sidebar/CustomPixbuf.c, Widgets/Sidebar/PixbuffableIcon.c, basalt.vapi, basalt.h, basalt_internal.h
[  3%] Building CXX object lib/mailcore2/src/CMakeFiles/MailCore.dir/core/basetypes/MCData.cpp.o
Scanning dependencies of target basalt
[  3%] Generating Widgets/Sidebar/SidebarParentRowModel.c, Widgets/Sidebar/SidebarHeaderModel.c, Widgets/Sidebar/SidebarExpandableRowModel.c, Widgets/Sidebar/SidebarRowModel.c, Widgets/Sidebar/SidebarHeader.c, Widgets/Sidebar/SidebarExpandableRow.c, Widgets/Sidebar/SidebarRow.c, Widgets/Sidebar/Sidebar.c, Widgets/Sidebar/SidebarStore.c, Widgets/Sidebar/IndicatorBar.c, Widgets/Sidebar/CustomPixbuf.c, Widgets/Sidebar/PixbuffableIcon.c, basalt.vapi, basalt.h, basalt_internal.h
[  3%] Building C object lib/basalt/lib/CMakeFiles/basalt.dir/Widgets/Sidebar/SidebarParentRowModel.c.o
[  4%] Building CXX object lib/mailcore2/src/CMakeFiles/MailCore.dir/core/basetypes/MCDataDecoderUtils.cpp.o
In file included from /run/media/vistaus/MicroSD/Apps/envoyer/lib/mailcore2/src/core/basetypes/MCString.h:7:0,
                 from /run/media/vistaus/MicroSD/Apps/envoyer/lib/mailcore2/src/core/basetypes/MCData.cpp:24:
/run/media/vistaus/MicroSD/Apps/envoyer/build/lib/mailcore2/src/include/MailCore/MCICUTypes.h:16:25: error: conflicting declaration 'typedef short unsigned int UChar'
 typedef __CHAR16_TYPE__ UChar;
                         ^~~~~
In file included from /usr/include/unicode/utypes.h:38:0,
                 from /usr/include/unicode/ucsdet.h:24,
                 from /run/media/vistaus/MicroSD/Apps/envoyer/lib/mailcore2/src/core/basetypes/MCData.cpp:15:
/usr/include/unicode/umachine.h:347:22: note: previous declaration as 'typedef char16_t UChar'
     typedef char16_t UChar;
                      ^~~~~
make[2]: *** [lib/mailcore2/src/CMakeFiles/MailCore.dir/build.make:183: lib/mailcore2/src/CMakeFiles/MailCore.dir/core/basetypes/MCData.cpp.o] Error 1
make[2]: *** Waiting for unfinished jobs....
[  5%] Building C object lib/basalt/lib/CMakeFiles/basalt.dir/Widgets/Sidebar/SidebarHeaderModel.c.o
[  5%] Building C object lib/basalt/lib/CMakeFiles/basalt.dir/Widgets/Sidebar/SidebarExpandableRowModel.c.o
make[1]: *** [CMakeFiles/Makefile2:128: lib/mailcore2/src/CMakeFiles/MailCore.dir/all] Error 2
[  6%] Building C object lib/basalt/lib/CMakeFiles/basalt.dir/Widgets/Sidebar/SidebarRowModel.c.o
[  6%] Building C object lib/basalt/lib/CMakeFiles/basalt.dir/Widgets/Sidebar/SidebarHeader.c.o
[  7%] Building C object lib/basalt/lib/CMakeFiles/basalt.dir/Widgets/Sidebar/SidebarExpandableRow.c.o
/run/media/vistaus/MicroSD/Apps/envoyer/build/lib/basalt/lib/Widgets/Sidebar/SidebarRowModel.c: In function 'basalt_widgets_sidebar_row_model_class_init':
/run/media/vistaus/MicroSD/Apps/envoyer/build/lib/basalt/lib/Widgets/Sidebar/SidebarRowModel.c:659:238: warning: implicit declaration of function 'gtk_menu_get_type'; did you mean 'g_menu_get_type'? [-Wimplicit-function-declaration]
  basalt_widgets_sidebar_row_model_signals[BASALT_WIDGETS_SIDEBAR_ROW_MODEL_POPUP_MENU_SIGNAL] = g_signal_new ("popup-menu", BASALT_WIDGETS_TYPE_SIDEBAR_ROW_MODEL, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_user_marshal_OBJECT__OBJECT, gtk_menu_get_type (), 1, BASALT_WIDGETS_TYPE_SIDEBAR_ROW_MODEL);
                                                                                                                                                                                                                                              ^~~~~~~~~~~~~~~~~
                                                                                                                                                                                                                                              g_menu_get_type
[  7%] Building C object lib/basalt/lib/CMakeFiles/basalt.dir/Widgets/Sidebar/SidebarRow.c.o
[  8%] Building C object lib/basalt/lib/CMakeFiles/basalt.dir/Widgets/Sidebar/Sidebar.c.o
[  8%] Building C object lib/basalt/lib/CMakeFiles/basalt.dir/Widgets/Sidebar/SidebarStore.c.o
/run/media/vistaus/MicroSD/Apps/envoyer/build/lib/basalt/lib/Widgets/Sidebar/Sidebar.c: In function 'basalt_widgets_sidebar_bind_model':
/run/media/vistaus/MicroSD/Apps/envoyer/build/lib/basalt/lib/Widgets/Sidebar/Sidebar.c:189:43: warning: passing argument 3 of 'gtk_list_box_bind_model' from incompatible pointer type [-Wincompatible-pointer-types]
  gtk_list_box_bind_model (_tmp0_, _tmp1_, _basalt_widgets_sidebar_walk_model_items_gtk_list_box_create_widget_func, g_object_ref (self), g_object_unref);
                                           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/gtk-3.0/gtk/gtk.h:136:0,
                 from /run/media/vistaus/MicroSD/Apps/envoyer/build/lib/basalt/lib/Widgets/Sidebar/Sidebar.c:13:
/usr/include/gtk-3.0/gtk/gtklistbox.h:310:16: note: expected 'GtkListBoxCreateWidgetFunc {aka struct _GtkWidget * (*)(void *, void *)}' but argument is of type 'GtkWidget * (*)(GObject *, void *) {aka struct _GtkWidget * (*)(struct _GObject *, void *)}'
 void           gtk_list_box_bind_model                   (GtkListBox                   *box,
                ^~~~~~~~~~~~~~~~~~~~~~~
/run/media/vistaus/MicroSD/Apps/envoyer/build/lib/basalt/lib/Widgets/Sidebar/SidebarStore.c: In function 'basalt_widgets_sidebar_store_g_list_model_interface_init':
/run/media/vistaus/MicroSD/Apps/envoyer/build/lib/basalt/lib/Widgets/Sidebar/SidebarStore.c:813:18: warning: assignment from incompatible pointer type [-Wincompatible-pointer-types]
  iface->get_item = (GObject* (*) (GListModel *, guint)) basalt_widgets_sidebar_store_real_get_item;
                  ^
/run/media/vistaus/MicroSD/Apps/envoyer/build/lib/basalt/lib/Widgets/Sidebar/SidebarRow.c: In function '__lambda10_':
/run/media/vistaus/MicroSD/Apps/envoyer/build/lib/basalt/lib/Widgets/Sidebar/SidebarRow.c:649:5: warning: 'gtk_menu_popup' is deprecated: Use '(gtk_menu_popup_at_widget, gtk_menu_popup_at_pointer, gtk_menu_popup_at_rect)' instead [-Wdeprecated-declarations]
     gtk_menu_popup (_tmp13_, NULL, NULL, _basalt_widgets_sidebar_row_menu_position_func_gtk_menu_position_func, g_object_ref (self), _tmp15_, _tmp17_);
     ^~~~~~~~~~~~~~
In file included from /usr/include/gtk-3.0/gtk/gtklabel.h:34:0,
                 from /usr/include/gtk-3.0/gtk/gtkaccellabel.h:35,
                 from /usr/include/gtk-3.0/gtk/gtk.h:33,
                 from /run/media/vistaus/MicroSD/Apps/envoyer/build/lib/basalt/lib/Widgets/Sidebar/SidebarRow.c:13:
/usr/include/gtk-3.0/gtk/gtkmenu.h:138:9: note: declared here
 void    gtk_menu_popup    (GtkMenu        *menu,
         ^~~~~~~~~~~~~~
[  9%] Building C object lib/basalt/lib/CMakeFiles/basalt.dir/Widgets/Sidebar/IndicatorBar.c.o
[  9%] Building C object lib/basalt/lib/CMakeFiles/basalt.dir/Widgets/Sidebar/CustomPixbuf.c.o
[ 10%] Building C object lib/basalt/lib/CMakeFiles/basalt.dir/Widgets/Sidebar/PixbuffableIcon.c.o
[ 10%] Linking C static library libbasalt.a
[ 10%] Built target basalt
make: *** [Makefile:130: all] Error 2
[11:16:05] vistaus@solus /run/media/vistaus/MicroSD/Apps/envoyer/build (2) 
> 

How to fix this?

Finish up the sidebar

  • Fix pixbuf with hidpi
  • Add scroll box
  • Custom context menus
  • Make it work with 0padding
  • Check symbolic expansion button on focused row is white
  • Move to separate component
  • Have a default model already binded to the sidebar and add wrapper methods so instead of personal.children.append just personal.add
  • Drag and drop https://blog.gtk.org/2017/04/23/drag-and-drop-in-lists/
  • Remember expansion state
  • Comments for valadocs
  • Write tests for store
.sidebar .row-label { padding-left: 0; }
.sidebar .icon GtkWidget { padding-right: 5px; }
.sidebar .list-row { padding-left: 0; padding-right: 0; }
.sidebar .list-row:selected .row-label { padding-top: 3px; padding-bottom: 3px; }
.sidebar .indicator-present .row-label { padding-bottom: 0px; padding-top: 2px; }
.sidebar .list-row:selected:focus .disclosure-button GtkImage { color: inherit; }

GraniteWidgetsIndicatorBar,
GraniteWidgetsIndicatorBar:selected,
GraniteWidgetsIndicatorBar:selected:focus {
    background-color: @base_color;
    border: 1px solid alpha (#000, 0.15);
    box-shadow: 0 1px 0 alpha (#fff, 0.25);
    border-radius: 2px;
}

GraniteWidgetsIndicatorBar.fill,
GraniteWidgetsIndicatorBar.fill:hover,
GraniteWidgetsIndicatorBar.fill:selected,
GraniteWidgetsIndicatorBar.fill:selected:focus {
    background-image: none;
    background-color: mix (@colorAccent, @base_color, 0.25);
}

GraniteWidgetsIndicatorBar.fill {
    border: none;
}

Simplify the statical linking stuff

Currently needed steps and paths:

And then add the following lines to your CMakeLists.txt file:

add_subdirectory (lib/basalt)
include_directories (${CMAKE_BINARY_DIR}/lib/basalt/lib)

And the following custom vapi to your vala_precompile:

${CMAKE_BINARY_DIR}/lib/basalt/lib/basalt.vapi

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.