Commit Graph

236 Commits (master)

Author SHA1 Message Date
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`)
4 years ago
nick black e3b2c91999
add NOTCURSES_VERSION_COMPARABLE #1131 4 years ago
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
4 years ago
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.
4 years ago
nick black 15892627db
update tools/release.sh for new python path 4 years ago
nick black 0097d76ab4
deal by hand with github-release filename changes 4 years ago
nick black 874026829e
release: note githubrelease dependency 4 years ago
joseLuís 446d2179d6 update function-summary.sh stats; remove oldest stats 4 years ago
nick black da1b8d1d53
install version.h #1054 4 years ago
nick black 68dbfeafc8
add version unit test #1054 4 years ago
nick black b809d5c7c5
s/USE_MULTIMEDIA/NOTCURSES_USE_MULTIMEDIA/g #1054 4 years ago
nick black 4360f3bec8
release: upload doc package to github #981 4 years ago
joseLuís 38314d5e76 update function-summary.sh stats 4 years ago
nick black dd4b97e06e
drone: use 2020-08-31a builders 4 years ago
nick black c834e2a78d
cell_simple_p(): fix for htole() #979 4 years ago
nick black e1863317a3
CMake: conform to cmake capitalization conventions 4 years ago
nick black fd9ff4ebe6 CMake: same as it ever was 4 years ago
nick black a413fb8bc9 notcurses->Notcurses for CMake module 4 years ago
nick black 589c088b64
debrelease.sh: push it out 4 years ago
nick black 1b8706ab73
release.sh: use new webserv path 4 years ago
joseLuís 78a863790a improve function-summary.sh, encapsulate, tidy up 4 years ago
nick black 02f59d25c2
release.sh: clean up tarball signature 4 years ago
nick black 026b94969d cffi heap allocations are zero-initialized #942 4 years ago
joseLuís f24bdd8249 function-stats-output/ 4 years ago
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.
4 years ago
joseLuís 80c66d5d7a tools/function-stats.sh (see #905) 4 years ago
nick black 7f561e8571
tools/function-table.sh #905 4 years ago
nick black fbfc47f729 release.sh: install+uninstall 4 years ago
nick black 5d1adda150
python: notcurses.py needs stylemask, not attrword 4 years ago
nick black 9e6e884a49
release.sh: correctly switch directory to python 4 years ago
nick black ddcb5ca60c
release.sh: only one level of rust 4 years ago
nick black e897de3700
v1.6.13 4 years ago
nick black 490f517bd9
tools/release.sh: reflect rust unification #883 4 years ago
nick black 1ada631e94 purge rust/notcurses 4 years ago
nick black 7fc761296f
release: fix twine syntax 4 years ago
nick black 9443b2f316
release: supply -s -udankamongmen to twine 4 years ago
nick black f5f9808d80 install notcurses-pydemo.1 as part of python #836 4 years ago
nick black dc1ddaf204
release: FIXME on debrelease.sh github-asset call 4 years ago
nick black d59ff71a6c
remove cell_noforeground_p() from python 4 years ago
nick black 19207ffcdd
release: automate debian build 4 years ago
nick black 1564475cb5
release: combine github-asset into github-release 4 years ago
nick black 92fb1647bc
release: remove remote docs before replacement 4 years ago
nick black 54d0420161
tools/release: automate release process #826 4 years ago
nick black 3ef1a3a07d
add notcurses_version_components() 4 years ago
nick black fd83cc8639
mojibake: add all unicode 13 emoji via CLDR order #770 4 years ago
nick black 419dc1efb6
remove APKBUILD, it's been submitted to Alpine 4 years ago
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.
4 years ago
nick black ee690c12df
add APKBUILD for Alpine Linux 4 years ago
nick black 84ae45ef39
remove all libsixel crap #200 4 years ago
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.
4 years ago
Nick Black 478ebadd64 Revert "Change DSO versioning scheme"
This reverts commit 51205551f5.
4 years ago
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.
4 years ago
nick black 32d3ae91c8
v1.4.2.3 4 years ago
nick black 3e4e16f516
sign tags in release.sh 4 years ago
nick black 38e67abd9d
v1.4.2 4 years ago
nick black 5a46aee74b
release.sh: NEWS not CHANGELOG 4 years ago
nick black 76d29ac4cc
Export notcurses_LIBRARIES in CMake 4 years ago
nick black 4460d8fc59
release.sh: clean up downloaded tarball 4 years ago
nick black 52428b9f27
release.sh: search for OLDVERSION following sed 4 years ago
nick black ab2a57df1f
move notcurses spec to fedora packaging repo 4 years ago
nick black 92ea6bac6f
fedora: blank line between changelog entries in specfile 4 years ago
nick black 4bee994c36
fedora: own /usr/share/notcurses 4 years ago
nick black 5072cbdf33
fedora: explicitly set 0755 on notcurses.py 4 years ago
nick black 663eb73485
fedora: move binaries/data into notcurses-utils #548 4 years ago
nick black 18242d74a4
fedora: update DFSG GPG signature URI 4 years ago
nick black 05753bd91a
v1.3.3 4 years ago
nick black 1d2bd97c3d
fedora: correct data target directory, sheesh 4 years ago
nick black c129eb1680
fedora: fix up -data description 4 years ago
nick black f0e4a98277
fedora: install noarch data rpm 4 years ago
nick black 008c28f172
fedora changelog 4 years ago
nick black 33eaaffd1f
fedora: install notcurses-view 4 years ago
nick black 10ddebe730
fedora: use dfsg signature file 4 years ago
nick black 2e449addad
fedora: use DFSG_BUILD=on 4 years ago
nick black fefd044005
Fedora: new upstream version 4 years ago
nick black 544cd61394
fedora: correct signature path 4 years ago
nick black 3ae860df04
fedora: install USAGE.md and OTHERS.md 4 years ago
nick black 045149b0ac
use nick-black.com in specfile, save a 301 4 years ago
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
4 years ago
nick black 851dc0bb9a Take back fedora release version 4 years ago
nick black ddfa62db70 get USE_MULTIMEDIA differentiated 4 years ago
nick black d81b3ef0cf start factoring out FFMpeg for OIIO plug #453 4 years ago
nick black ee21f4e9ed
fedora: use DFSG source tarball 4 years ago
nick black 7791eec65e
fedora: update spec for review feedback 4 years ago
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
4 years ago
nick black 23e8126b17
fedora python build changes from @dcantrell 4 years ago
nick black 1dad2c6b50
v1.3.2 4 years ago
nick black 4ce208931c
little release script 4 years ago
nick black e00ef4aca9
prep for 1.3.1 4 years ago
Nick Black 50e0870432 Revert "Prevent -I/usr/usr/include in the pkg-config files."
This reverts commit d294dc7dc9.
4 years ago
David Cantrell d294dc7dc9 Prevent -I/usr/usr/include in the pkg-config files. 4 years ago
nick black d6ba4b35a6
fedora: don't provoke 'installed but unpackaged' bah 4 years ago
nick black d1360e891b
fedora: don't install notcurses-view man page 4 years ago
nick black 43fafb1a61
fedora: don't install notcurses-tester man page 4 years ago
nick black 86e225dc4c prep for 1.3.0 #460 4 years ago
nick black 55195b8ed0 fedora: use python_sitearch, install all python #462 4 years ago
nick black 9c9011c4cd fedora: really fix python #462 4 years ago
nick black e222f213af
fedora: see if we can't apply the arch fix 4 years ago
nick black 2c4f17bc65
keep a copy of our arch PKGBUILD 4 years ago
nick black 24a9343b0b
prep for 1.2.9 4 years ago
nick black bd226960d9
fedoraspec: just list header directories 4 years ago
nick black 4a56b7935f
rpmspec: s/srcname/name/g 4 years ago
nick black 5008f3513f
rpmspec: strip quotation marks 4 years ago
nick black c6494382d9
Fedora specfile: list directories, use wildcards 4 years ago
nick black 8fdf3d393a
Fedora specfile: Incorporate A Iwicki's feedback
Split out the python demo and wrappers into their own package,
python3-notcurses. Make an archful dependency for the devel
package to the main library. Comment up test disabling.
4 years ago
nick black 606cea4897
fedora: add egg-info to spec file #462 4 years ago
nick black edf1bddea3
fedora: move binaries and S1 man pages to main rpm #467 4 years ago
nick black 69b716f7f8 prep for 1.2.8 4 years ago
nick black 9577c4afa0
fedora: add ncpp include files to package 4 years ago
nick black 0ecd69ce26
fedora: fix specfile notcurses-tetris.1.gz path 4 years ago
nick black 9a202b558e
remove colloquy from specfile, README 4 years ago
nick black c4f4e60b88
fedora: fix path for package signature 4 years ago
nick black f28ccce12d
s/direct color/TrueColor/g 4 years ago
nick black 89809d5b59 prep for 1.2.7 4 years ago
David Cantrell 6123b789dd Change notcurses.spec to follow Fedora Packaging Policy
More or less.  Here's a list of things I changed:
* Single line BuildRequires which is more of a convention than a
  requirement.
* Drop make from BuildRequires.  That's one we do actually provide.
* Use pkgconfig(ncurses) to get the ncurses-devel BuildRequires.
* Add a 'devel' subject and move development files there.
* Add a 'static' package for the .a libraries which is common
  for other packages that provide static libraries.
* Add doc files using %doc
* -DUSE_TEST=off -> -DUSE_TESTS=off
* Use %autosetup in %setup which covers adding patches in the future
  for downstream packaging.
* Use path macros in %files
* Correct the date format in the %changelog entry
* Use the 1.2.6 release as an example

Things that could use more consideration:
* The release artifacts don't match what GitHub provides.  Their
  automated download link gives you notcurses-1.2.6.tar.gz but the URL
  calls it v1.2.6.tar.gz.
* There is no signature file uploaded.
* notcurses-tester and notcurses-viewer do not build.
* Should the demo programs go in the main package or devel.  I felt
  devel was more appropriate.
* Should the packaging be further refined to split out the C++ runtime
  and static libraries to separate subpackages?

I did some local test runs using mock.  I ran the SRPM through rpmlint
which would happen when the package is submitted for inclusion.

For the download archive and signature, I create new release posts on
my github projects and create a separate tarball and sign that and
upload them there.  It is separate from the GitHub automated
make-me-a-tarball download link.  That might be what you're planning
on doing.
4 years ago
nick black 9cc185e98a
fedora: USE_TESTS in specfile, not USE_TEST, ugh 4 years ago
nick black b9462bcda6
drop notcurses-keyplot from specfile 4 years ago
Nick Black c2a645e9af
Rust wrapper work (#454)
* packaging: s/libtinfo/Terminfo/g
* rust: add stddim_yx()
* rust: check for valid init in unit tests
* rust: serialize up tests
* constify notcurses_term_dim_yx()
* rust: add dim wrappers
* remove notcurses_resize() from public API #367
* call notcurses_resize() from notcurses_refresh() #367
4 years ago
Nick Black d66549d362
Prep for Fedora packaging (#452)
* jungle demo should be available outside of DFSG builds
* libav: blitters don't need FFMpeg
* CMake: threads independent of ffmpeg
* CMake: add USE_TESTS option to disable tests #450
* tetris: work without ffmpeg
* fedora: flesh out specfile #328
* menu poc: don't use ffmpeg at all
* compile PoCs with binary/include
* multiselect PoC: work without ffmpeg
4 years ago
nick black 3f493691d0
Debian: pass USE_PYTHON=off to cmake #363 4 years ago
nick black 3483f019e3
NOTCURSES_SHARE: purely a C thing now #363 4 years ago
Nick Black e6637e81cc
Prep for serious rusting #101 (#354)
* CMake: add USE_PANDOC, USE_DOXYGEN options #101
* README: mention rust
* start integrating rust into build #101
* CMake: add USE_NETWORK option for cargo
* Debian: build-dep on doxygen
* rust: colloquy checks in Cargo.lock
* extract NCKEY defines into their own include
* colloquy: use clap to parse CLI args
* CMake: unify option namespace
* Python: update include path
* Rust: fix up --frozen workings for -DUSE_NETWORK=off
* CMake: abstract out colloquy a little
* Sync direct.hh to the New Way
4 years ago
nick black 124004c87c add nplane_polyfill_yx() #340 4 years ago
nick black 36440ee278
python: sync ncselector declarations 4 years ago
nick black d8c42d4d1e
ncmenu_selected() fills in an ncinput #333 4 years ago
nick black 013e453e70
sync up setup.py 4 years ago
nick black 53df21b977
python: run sdist in build process 4 years ago
nick black 64e5840d34 Debian: pass -DDFSG_BUILD to CMake #316 4 years ago
Marek Habersack 75a90461dd Add C++ bindings 4 years ago
nick black 1be4025289
CMake: true fix for #208, use NOTCURSES_SHARE 4 years ago
nick black a170e4334a
cmake: write install prefix #208 4 years ago
nick black fabbb96cb5
pull weird whitespace from pkgconfig input 4 years ago
nick black cb2bf16a73 support building sans ffmpeg #153 5 years ago
nick black 17d7d8a8c5
release guide 5 years ago
nick black 0c8f54d728 test video 5 years ago
nick black f20e8fde4b add notcurses_image_open() #23 5 years ago
nick black 70df86ba17
version string, notcurses_version() 5 years ago