Commit Graph

202 Commits

Author SHA1 Message Date
nick black
a5244632da
NotcursesConfig.cmake: list -lnotcurses-core #1301 2021-01-19 08:35:24 -05:00
Nick Black
9112185657
Split up notcurses/notcurses-core (#1297)
Extract `libnotcurses-core` from `libnotcurses`. The former contains everything except multimedia code. The latter contains multimedia stuff (a wrapper around FFmpeg or OIIO). If built with `-DUSE_MULTIMEDIA=none`, there will not be any `libnotcurses.so` generated. `libnotcurses.so` uses library constructors/destructors to insert its implementation into the `ncvisual` stack at runtime. Users linking `-lnotcurses` will get the full implementation; users linking `-lnotcurses-core` only will get the stack less multimedia code.

The upshot of this is that someone can compile/install only `libnotcurses-core`, and a program linked against it will work just fine. This eliminates the need to install the full (large) dependency stack of the multimedia code unless necessary. This will hopefully be useful for e.g. installers etc. Closes #339.
2021-01-18 14:10:04 -05:00
nick black
c4f61c528d
ncneofetch: center neologo #1260 2021-01-12 00:33:03 -05:00
nick black
aab28aadb4
ncneofetch: hook up ncart logos #1260 2021-01-11 23:46:56 -05:00
nick black
8acc6ea412
neofetch-ripper: escape backslashes correctly in logo text #1260 2021-01-10 16:47:01 -05:00
nick black
250d50134e
neofetch-ripper: build usable C code 2021-01-10 16:39:11 -05:00
nick black
b5bace8aa1
neofetch-ripper: don't emit duplicates #1260 2021-01-10 16:18:11 -05:00
nick black
1a597f2a50
neofetch-ripper: fix alignment 2021-01-10 10:08:14 -05:00
nick black
818e0941d6
ncneofetch: preserve Dylan Araps's copyright 2021-01-10 10:00:40 -05:00
nick black
d85aba798f
add neofetch-ripper #1260 2021-01-10 09:40:19 -05:00
joseLuís
b6fcd2783d tools: update funtion-summary.sh & generated data 2020-12-27 19:59:33 +01:00
joseLuís
1b5880c5d9 rust: use sh for the rust doc build script 2020-12-09 17:21:25 +01:00
joseLuís
a60a82ded9 rust: new script to update docs on release #1125 2020-12-09 17:10:45 +01:00
nick black
e60a7aa463
add stat for notcurses_refresh() 2020-12-06 13:45:35 -05:00
nick black
3f9d87f5e6 include data model on web page 2020-11-28 20:45:16 -05:00
Marek Habersack
9135663529 [CMake] Restore old way of importing Notcurses into a cmake project
Partially reverts: c5c9432ac0
Context: https://github.com/dankamongmen/notcurses/pull/1146

The above commit implemented the much more convenient way of finding and
using a package from CMake, however it broke compatibility with the way
id had been before, which defined various `Notcurses_*` variables.

Revert the `Notcurses` component to the old way and add support for
`Notcurses++` in the same fashion.

Perhaps one day we should think of implementing `find_package` support
by way of a module, which should make it possible to have the cake and
eat the cake. One day.
2020-11-28 19:54:21 -05:00
Marek Habersack
c5c9432ac0 [Misc] A hodgepodge of tiny changes
CMake:
  Simplify cmake target+version config generation and make it actually
  work.  With the changes it is now possible to detect and use
  `Notcurses` in the following way:

     find_package(Notcurses REQUIRED)
     ...
     target_link_libraries(myapp PRIVATE notcurses::notcurses)

  Also, added the same CMake configuration for `Notcurses++`, to be used
  in the following way:

     find_package(Notcurses REQUIRED
     find_package(Notcurses++ REQUIRED)
     ...
     target_link_libraries(myapp PRIVATE notcurses++::notcurses++)

Docs:
  `notcurses_cell(3)`: `cell_styles_{on,off} -> cell_{on,off}_styles`
  and `cell_load_simple` -> `cell_load_char`

C++ API:
  * Plane: added constructors taking `ncplane_options const&` instead of
    the multitude of individual parameters
  * Plane: drop `struct` when `ncplane_options` is used.
  * Plane: added `strdup` (`cell_strdup`)
  * Plane: added `extract` (`cell_extract`)
2020-11-28 17:46:23 -05:00
nick black
e3b2c91999
add NOTCURSES_VERSION_COMPARABLE #1131 2020-11-27 16:13:44 -05:00
joseLuís
58c3d66c15 rust: add ncpile funcs & upd function-summary
- add functions ncpile_create, ncpile_render, ncpile_rasterize
- add new script tools/blame-nick.sh
- upd script tools/function-summary.sh and the generated data
- upd bindgen version
2020-11-26 13:31:04 +01:00
nick black
7b3c391643 Add more version-related defines (#1131)
Add NOTCURSES_VERNUM_* as integer preprocessor definitions of
the four version components. Add NOTCURSES_VERNUM_ORDERED as
a 32-bit totally comparable integer. Preserve the definitions
of NOTCURSES_VERSION_*, defining them in terms of VERNUMs.
Don't use TWEAK in version, since it usually isn't defined.
2020-11-24 04:19:47 -05:00
nick black
15892627db
update tools/release.sh for new python path 2020-11-22 01:47:09 -05:00
nick black
0097d76ab4
deal by hand with github-release filename changes 2020-11-22 00:24:48 -05:00
nick black
874026829e
release: note githubrelease dependency 2020-11-21 23:43:41 -05:00
joseLuís
446d2179d6 update function-summary.sh stats; remove oldest stats 2020-11-03 20:03:04 +01:00
nick black
da1b8d1d53
install version.h #1054 2020-10-10 20:53:45 -04:00
nick black
68dbfeafc8
add version unit test #1054 2020-10-10 20:33:23 -04:00
nick black
b809d5c7c5
s/USE_MULTIMEDIA/NOTCURSES_USE_MULTIMEDIA/g #1054 2020-10-10 19:37:01 -04:00
nick black
4360f3bec8
release: upload doc package to github #981 2020-10-08 17:44:54 -04:00
joseLuís
38314d5e76 update function-summary.sh stats 2020-09-22 14:08:32 +02:00
nick black
dd4b97e06e
drone: use 2020-08-31a builders 2020-08-31 22:28:58 -04:00
nick black
c834e2a78d
cell_simple_p(): fix for htole() #979 2020-08-31 14:36:46 -04:00
nick black
e1863317a3
CMake: conform to cmake capitalization conventions 2020-08-29 18:38:28 -04:00
nick black
fd9ff4ebe6 CMake: same as it ever was 2020-08-29 18:24:45 -04:00
nick black
a413fb8bc9 notcurses->Notcurses for CMake module 2020-08-29 18:24:45 -04:00
nick black
589c088b64
debrelease.sh: push it out 2020-08-27 15:45:31 -04:00
nick black
1b8706ab73
release.sh: use new webserv path 2020-08-25 18:23:13 -04:00
joseLuís
78a863790a improve function-summary.sh, encapsulate, tidy up 2020-08-26 00:08:31 +02:00
nick black
02f59d25c2
release.sh: clean up tarball signature 2020-08-23 22:35:28 -04:00
nick black
026b94969d cffi heap allocations are zero-initialized #942 2020-08-23 22:27:50 -04:00
joseLuís
f24bdd8249 function-stats-output/ 2020-08-24 00:48:37 +02:00
Nick Black
73dc0a7d69
Zoo 2, electric boogaloo (#939)
* Reimplement the widget zoo demo. The previous PoC
  was a multithreaded monster with behavior dependent
  on screen geometry. Replace it with a single thread state
  machine. Closes #936.
* Support titles for ncplot. Adds title to the ncplot_options
  struct, which may be NULL. Closes #941 .
* Properly color ncplot according to maxchannels and
  minchannels. Closes #940
* Add tools/function-table.sh script for generating public API list.
2020-08-23 12:44:53 -04:00
joseLuís
80c66d5d7a tools/function-stats.sh (see #905) 2020-08-23 18:03:50 +02:00
nick black
7f561e8571
tools/function-table.sh #905 2020-08-23 09:07:40 -04:00
nick black
fbfc47f729 release.sh: install+uninstall 2020-08-23 07:46:12 -04:00
nick black
5d1adda150
python: notcurses.py needs stylemask, not attrword 2020-08-16 10:21:40 -04:00
nick black
9e6e884a49
release.sh: correctly switch directory to python 2020-08-16 10:07:10 -04:00
nick black
ddcb5ca60c
release.sh: only one level of rust 2020-08-16 08:55:38 -04:00
nick black
e897de3700
v1.6.13 2020-08-16 08:54:22 -04:00
nick black
490f517bd9
tools/release.sh: reflect rust unification #883 2020-08-12 10:47:46 -04:00
nick black
1ada631e94 purge rust/notcurses 2020-08-12 08:42:22 -04:00
nick black
7fc761296f
release: fix twine syntax 2020-08-03 02:52:27 -04:00
nick black
9443b2f316
release: supply -s -udankamongmen to twine 2020-08-01 17:58:42 -04:00
nick black
f5f9808d80 install notcurses-pydemo.1 as part of python #836 2020-07-29 09:37:35 -04:00
nick black
dc1ddaf204
release: FIXME on debrelease.sh github-asset call 2020-07-26 23:50:28 -04:00
nick black
d59ff71a6c
remove cell_noforeground_p() from python 2020-07-26 22:07:15 -04:00
nick black
19207ffcdd
release: automate debian build 2020-07-26 21:39:46 -04:00
nick black
1564475cb5
release: combine github-asset into github-release 2020-07-26 21:32:24 -04:00
nick black
92fb1647bc
release: remove remote docs before replacement 2020-07-26 21:25:34 -04:00
nick black
54d0420161
tools/release: automate release process #826 2020-07-26 21:21:06 -04:00
nick black
3ef1a3a07d
add notcurses_version_components() 2020-07-09 02:17:55 -04:00
nick black
fd83cc8639
mojibake: add all unicode 13 emoji via CLDR order #770 2020-07-05 10:34:07 -04:00
nick black
419dc1efb6
remove APKBUILD, it's been submitted to Alpine 2020-06-28 22:13:09 -04:00
nick black
5815a65fb5
ncsubproc: properly catch exit on non-pidfd path
When we don't have a pidfd available on which to poll(2) (this
is true of Linux pre-5.3, and FreeBSD), we can't rely on a
child death breaking our poll loop. Instead, in this case launch
a second thread, which just sits on a blocking waitpid(2). If
it gets an exit, it calls the completion callback, triggering
the teardown. Closes #728, and ought lets us run the test suite
on FreeBSD.
2020-06-28 05:56:38 -04:00
nick black
ee690c12df
add APKBUILD for Alpine Linux 2020-06-25 01:42:04 -04:00
nick black
84ae45ef39
remove all libsixel crap #200 2020-06-05 04:19:56 -04:00
Nick Black
ebcba82d4b
Fully general ncvisual layer (#647)
This represents an essentially complete rewrite of ncvisual and associated code. It had two major goals:

Improve the ncvisual API based off lessons learned, pursuant to the upcoming API freeze. In particular, I wanted to:

decouple ncvisuals from ncplanes. It should be possible to render a ncvisual to multiple planes, with different scaling each time. It should be possible to create an ncvisual without a plane, etc.
normalize the various ways of constructing an ncvisual -- file, memory, plane, etc.
Support multiple blitters, from 7-bit ASCII to Sixel. This required writing the blitters in several cases, and they're not yet in their final implementations (but the API is fine)
I have not yet unified Plots and Visuals, and might not, given that the Plot code works fine. We could at this point implement Plots in terms of Visuals, though -- the blitter backend range has been unified. Sixel is not yet implemented, though it is listed.

There is a new POC tool, blitter. It renders its arguments using all possible blitter+scaling combinations. Another new POC, resize, displays its argument, then resizes it to the screen size and displays that, explicitly making use of ncvisual_resize() rather than a scaling parameter to ncvisual_render().

This also eliminates some memory leaks and bugs we were seeing in trunk, and brings in Sixel scaffolding.

The C++ wrapper will also need patching back up; I cut most of it down while wrestling with this crap, urk.

Closes #638, #562, and #622.
2020-05-28 21:16:58 -04:00
Nick Black
478ebadd64 Revert "Change DSO versioning scheme"
This reverts commit 51205551f5.
2020-05-28 17:31:22 -04:00
Marek Habersack
51205551f5 Change DSO versioning scheme
This commit introduces the same shared library versioning scheme as used
by the SDL library.  The advantage is that different versions of
notcurses can be installed alongside each other (which is not an
unlikely scenario, as SDL itself certifies) and that, if the versioning
protocol is followed, any change to ABI will produce a DSO whose name
will not break any applications linked against any previous version.
2020-05-28 15:15:53 -04:00
nick black
32d3ae91c8
v1.4.2.3 2020-05-17 09:01:53 -04:00
nick black
3e4e16f516
sign tags in release.sh 2020-05-17 08:12:26 -04:00
nick black
38e67abd9d
v1.4.2 2020-05-17 07:29:10 -04:00
nick black
5a46aee74b
release.sh: NEWS not CHANGELOG 2020-05-10 21:38:46 -04:00
nick black
76d29ac4cc
Export notcurses_LIBRARIES in CMake 2020-05-09 05:51:00 -04:00
nick black
4460d8fc59
release.sh: clean up downloaded tarball 2020-05-07 01:51:25 -04:00
nick black
52428b9f27
release.sh: search for OLDVERSION following sed 2020-05-07 01:37:52 -04:00
nick black
ab2a57df1f
move notcurses spec to fedora packaging repo 2020-04-30 16:09:59 -04:00
nick black
92ea6bac6f
fedora: blank line between changelog entries in specfile 2020-04-28 23:56:57 -04:00
nick black
4bee994c36
fedora: own /usr/share/notcurses 2020-04-28 23:14:52 -04:00
nick black
5072cbdf33
fedora: explicitly set 0755 on notcurses.py 2020-04-28 23:12:15 -04:00
nick black
663eb73485
fedora: move binaries/data into notcurses-utils #548 2020-04-28 22:37:29 -04:00
nick black
18242d74a4
fedora: update DFSG GPG signature URI 2020-04-26 21:56:23 -04:00
nick black
05753bd91a
v1.3.3 2020-04-26 21:25:23 -04:00
nick black
1d2bd97c3d
fedora: correct data target directory, sheesh 2020-04-25 19:31:51 -04:00
nick black
c129eb1680
fedora: fix up -data description 2020-04-25 19:22:53 -04:00
nick black
f0e4a98277
fedora: install noarch data rpm 2020-04-25 19:12:18 -04:00
nick black
008c28f172
fedora changelog 2020-04-25 18:32:40 -04:00
nick black
33eaaffd1f
fedora: install notcurses-view 2020-04-25 18:31:19 -04:00
nick black
10ddebe730
fedora: use dfsg signature file 2020-04-25 18:17:18 -04:00
nick black
2e449addad
fedora: use DFSG_BUILD=on 2020-04-25 17:49:50 -04:00
nick black
fefd044005
Fedora: new upstream version 2020-04-25 17:46:13 -04:00
nick black
544cd61394
fedora: correct signature path 2020-04-25 17:44:09 -04:00
nick black
3ae860df04
fedora: install USAGE.md and OTHERS.md 2020-04-25 17:35:21 -04:00
nick black
045149b0ac
use nick-black.com in specfile, save a 301 2020-04-25 16:55:15 -04:00
Nick Black
9a075ae5d0
Support image decoding with OpenImageIO #453 (#534)
* fedora: dep on OpenImageIO, and use it
* fedora: dep on libqrcodegen-devel
* fedora: BuildRequires OpenEXR-devel
* tight check on USE_MULTIMEDIA
* CMake: enable notcurses-view for ffmpeg OR oiio
* notcurses-view: don't reach into libav
* oiio: ncvisual_render() #453
* oiio: need our own properly-offset ncvisual_plane()
* `visual` poc: accept optional command line argument
* oiio: work for 3-channel images #453
* oiio: destroy ncvisual's plane if we own it #453
* notcurses_visual.3: s/FFmpeg/multimedia/g
2020-04-25 15:52:23 -04:00
nick black
851dc0bb9a Take back fedora release version 2020-04-24 12:20:13 -04:00
nick black
ddfa62db70 get USE_MULTIMEDIA differentiated 2020-04-24 04:17:56 -04:00
nick black
d81b3ef0cf start factoring out FFMpeg for OIIO plug #453 2020-04-24 04:17:56 -04:00
nick black
ee21f4e9ed
fedora: use DFSG source tarball 2020-04-21 05:36:13 -04:00
nick black
7791eec65e
fedora: update spec for review feedback 2020-04-21 05:12:11 -04:00
Nick Black
fe8034b5e0
ncfdplane, fileroller PoC, ncfdplane unit tests, qrcodes #24 #514 (#524)
* first draft of ncsubproc spec
* qrcode first draft #24
* demo: add qrcode demo skeleton, entries #24
* qrcode demo #24
* fedora python build changes from @dcantrell
* ncplane_qrcode() works #24
* add some flash to the qrcode demo #24
* drone: use newest builders
* fix up rgb PoC
* drop jungle demo to 100Hz target
* add fd.c
* ncfd skeletons
* more ncfdplane #514
* ncfdp i/o loop
* ncfp: improve uinit test, write core
* firm up ncfdplane #514
* fileroller PoC #514
* ncplane: allow '\n' in stream when scrolling #523
2020-04-20 23:26:41 -04:00