Coder Social home page Coder Social logo

enzo1982 / smooth Goto Github PK

View Code? Open in Web Editor NEW
27.0 10.0 11.0 27.23 MB

The smooth Class Library

Home Page: http://www.smooth-project.org/

License: Artistic License 2.0

Makefile 0.21% C++ 47.78% Objective-C++ 0.31% C 48.47% Objective-C 0.01% JavaScript 1.59% Python 0.09% Assembly 1.52% SWIG 0.02%
c-plus-plus class-library windows linux unix macos freebsd multi-platform

smooth's Introduction

The smooth Class Library

Build Status Last commit License

smooth is an object oriented C++ class library for Windows, macOS, Linux and most Unix-like operating systems. It provides basic functionality and platform support for applications and libraries.

Features provided by smooth include:

  • user interface API with various widgets
  • simple to use multithreading API
  • file and network IO interface
  • completely transparent Unicode and software internationalization support
  • a libxml2 based XML parser

Installation

The following packages must be installed in order to compile smooth:

  • libbz2 / libbzip2 development package
  • libcurl development package
  • libfribidi development package
  • libgtk+3.0 development package
  • libjpeg development package
  • libxml2 development package

After installing these prerequisites, run make followed by sudo make install to compile and install smooth.

License

smooth is Free Software and is made available under the terms of "The Artistic License, Version 2.0".


The official smooth homepage: http://www.smooth-project.org/

[email protected],
Robert Kausch

smooth's People

Contributors

enzo1982 avatar patriccollu avatar xilizax avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

smooth's Issues

Compile fails, shows up with file not found error

I tried compiling this from the source code, but I can't compile it because whenever I try to run the make command, I get this error:
g++ -I"/home/cadendurden/smooth/classes/backends/xlib"/../../../include -fvisibility=hidden -fPIC -pthread -DSMOOTH_DLL -c backendxlib.cpp -o backendxlib.o
backendxlib.cpp:11:10: fatal error: gtk/gtk.h: No such file or directory
11 | #include <gtk/gtk.h>
| ^~~~~~~~~~~

System Specs If Needed:
System Name: Dell Latitude D630
RAM: 2GB DDR2
WiFi Card: Broadcom BCM4311
Operating System: Debian Sid (Originally Debian 12 Bookworm)

Bug: REVISION variable not up to date in Makefile-options

This is kind-of the same issue like in BoCA: enzo1982/BoCA#8

In https://github.com/enzo1982/smooth/blob/master/Makefile-options, the REVISION is set to 0, although the latest shipped version is 0.9.6.

This is probably not an issue for most people, but it leads to incorrect file names for libraries which is a (small) problem for people packaging smooth (I am doing this for macports).

I think it should be set to 7, assuming the upcoming version is 0.9.7.

GetApplicationDirectory() code is not up-to-date with modern FreeBSD

Currently, GetApplicationDirectory() works by calling procstat -b <pid> and getting the third field of the line matching the <pid>. The problem is that modern FreeBSD versions return four fields:

% procstat -b $$
  PID COMM                OSREL PATH
42096 tcsh              1300132 /bin/tcsh

So print $3 should really be print $4. Another thing is that filtering the PID line could be avoided if procstat is called with -h (suppress header) switch.

Ideally, however, is not to spawn and chain any processes and read their output with popen(), but ask the system with sysctl() call for the KERN_PROC_PATHNAME as described here.

Build failure against Glib 2.68.3

Builds fine against Glib version 2.66.8, but fails against 2.68.3 with the following errors:

In file included from fontcairo.cpp:20:
In file included from /usr/local/include/pango-1.0/pango/pangocairo.h:25:
In file included from /usr/local/include/pango-1.0/pango/pango.h:25:
In file included from /usr/local/include/pango-1.0/pango/pango-attributes.h:25:
In file included from /usr/local/include/pango-1.0/pango/pango-font.h:25:
In file included from /usr/local/include/pango-1.0/pango/pango-coverage.h:25:
In file included from /usr/local/include/glib-2.0/glib-object.h:22:
In file included from /usr/local/include/glib-2.0/gobject/gbinding.h:28:
In file included from /usr/local/include/glib-2.0/glib.h:32:
In file included from /usr/local/include/glib-2.0/glib/gasyncqueue.h:32:
In file included from /usr/local/include/glib-2.0/glib/gthread.h:32:
In file included from /usr/local/include/glib-2.0/glib/gatomic.h:31:
/usr/include/c++/v1/type_traits:517:57: error: reference to 'std' is ambiguous
/usr/include/c++/v1/type_traits:517:81: error: use of template template parameter '_Templ' requires template arguments
using _IsValidExpansion _LIBCPP_NODEBUG_TYPE = decltype(std::__sfinae_test_impl<_Templ, _Args...>(0));
...
/usr/include/c++/v1/type_traits:1404:27: error: '_Tp' does not refer to a value
decltype(_VSTD::__declval<_Tp>(0))
...
/usr/include/c++/v1/type_traits:2563:66: error: '_Tp1' does not refer to a value
        typename __is_destructible_apply<decltype(_VSTD::declval<_Tp1&>().~_Tp1(
))>::type

Wayland support

Wayland support would be really nice, since I'm using a Wayland compositor half the time, which currently runs all Xwayland apps at a fixed scale of 1.0, regardless of the scale factor of the current display.

As a result of the current design, it ignores the GDK_SCALE environment variable I try to pass a value of 1 to, and scales the app to 2.0 according to the factor of my primary display, resulting in the app being too large on both displays.

I am using Arch Linux, and running wayfire-git, self built with several patches which would not affect this particular bug.

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.