Commit Graph

370 Commits (ac652ac7f30938aa31f4eccfd1576e2b863fb56b)

Author SHA1 Message Date
nick black 9cf2925f47
prepare NotcursesCoreConfig.cmake #1301 4 years ago
nick black bb3f9c1836
move c++ POCs into src/pocpp 4 years ago
nick black c1ea096d31
set CMAKE_LINK_WHAT_YOU_USE to ON #1300 4 years ago
nick black 05193af667
remove extraneous USE_MULTIMEDIA check #1300 4 years ago
nick black 1631818784
rename notcurses-view to ncplayer #1299 4 years ago
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.
4 years ago
nick black 3ecdde74d0
v2.1.5 4 years ago
nick black 09dcda0253
README: give DragonFly BSD some love #1121 4 years ago
nick black d4aef247ea
Fixes for DragonFly BSD from Weitian LI #1121 4 years ago
nick black 8283adc28f
Introduce src/compat/ for all bins
I've created the new files src/compat/compat.{hc}. These
are available to all binaries by adding src to the include
directories, and src/compat/compat.c to the sources. Several
functions are implemented here which one or more target
operating systems are missing, right now all related to time.
This includes clock_nanosleep(), which is missing on OS X and
DragonFly BSD. Eliminate the other three definitions of
timespec_to_ns() and friends. Standardize on NANOSECS_IN_SEC
rather than the more opaque GIG. Progress on #1121.
4 years ago
nick black 68b340e3c8
ncdirect: prep readline for use #1120 4 years ago
nick black e617acecc7
v2.1.4 4 years ago
nick black 70b74a749b
v2.1.3 4 years ago
nick black 55d563b646
v2.1.2 4 years ago
nick black d6d5757b1d
v2.1.1 4 years ago
nick black 6edafd1f84
v2.1.0 4 years ago
nick black 8497ee1877
v2.0.12 4 years ago
nick black eb485cda21
v2.0.11 4 years ago
nick black 361a253aea
v2.0.10 4 years ago
nick black cc5f9f0cb7
cmake: run notcurses-tester first among tests 4 years ago
nick black f3688f44fb
CMake: add demo target 4 years ago
nick black 8083b46e3b
v2.0.9 4 years ago
nick black de3944b114 ncls getopt skeleton #693 4 years ago
nick black c2671b6fef
data model: every plane gets an egcpool 4 years ago
nick black 3f9d87f5e6 include data model on web page 4 years ago
nick black 465a0ffbcb Improve handling of dot->graph documentation
Remove the pre-rendered model.png, a generated output. Add a
dot target to CMake, predicated on USE_DOXYGEN (since we have
REQUIRED dot in our Doxygen spec). Generate the png in the
output path. Rename stacks to piles in model.dot.
4 years ago
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.
4 years ago
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 2a45620cd6
v2.0.8 4 years ago
nick black b7ea4e2359
run sgr-full and sgr-direct in test suite #1138 4 years ago
nick black 73b2f1bf19
v2.0.7 4 years ago
nick black acdcf9e41f
v2.0.6 4 years ago
nick black 537caa2173
v2.0.5 4 years ago
Nick Black 47cc9f9ecd
Initial easybook chapter (#1129)
* some mdbook #785

* more chapter 1
4 years ago
nick black 1328fc7cf8
drop -V argument from CTest 4 years ago
nick black 1051210679
pandoc: don't use smart extension 4 years ago
nick black 7622cefc3a
v2.0.4 4 years ago
nick black 0d31a03be9
v2.0.3 4 years ago
nick black a221ba2865
notcurses-static doesn't need an SOVERSION 4 years ago
nick black 8189d21709
v2.0.2 4 years ago
nick black a4546c86e3
v2.0.1 4 years ago
nick black 65974aeb0b
v2.0.0 4 years ago
nick black da1b8d1d53
install version.h #1054 4 years ago
nick black 8c9611d085
v1.7.6 4 years ago
nick black 20a49d053d
v1.7.5 4 years ago
nick black 8d347d14bb
move ncreel to PoCs, don't install #1033 4 years ago
nick black f02263e977
v1.7.4 4 years ago
nick black 4459efa216
v1.7.3 4 years ago
nick black bc097a5674
v1.7.2 4 years ago
nick black 1f59eef9d8
CMake: no need to link notcurses-view against libav 4 years ago
nick black 70f062aff5
v1.7.1 4 years ago
nick black 64fe8f6c07
v1.7.0 4 years ago
nick black 247706068e cmake: remove 4 c++ build options that aren't widely supported 4 years ago
nick black c93243fd54
v1.6.20 4 years ago
nick black a3f5ba2e5c
cmake: better use of feature_summary 4 years ago
nick black af46b2aab6
CMake: don't run PoC tests with USE_POC=off 4 years ago
nick black 4d7941f1b9
CMake: add USE_POC to control building poc binaries 4 years ago
nick black e1863317a3
CMake: conform to cmake capitalization conventions 4 years ago
nick black cbcc19de0e CMake: same as it ever was 4 years ago
nick black a413fb8bc9 notcurses->Notcurses for CMake module 4 years ago
nick black e92b7fd6ea
v1.6.19 4 years ago
nick black 6526e58c00
v1.6.18.4 4 years ago
nick black 6ea73e6e45
v1.6.18.3 4 years ago
nick black 550c02d8ac
v1.6.18.2 4 years ago
nick black d11d8175d0
v1.6.18.1 4 years ago
nick black 6d7f9eb501
v1.6.18 4 years ago
nick black af80914efe
add libunistring unit tests #906 4 years ago
nick black 026b94969d cffi heap allocations are zero-initialized #942 4 years ago
nick black 4ebf8f748c
v1.6.16 4 years ago
nick black 49ae79341d
v1.6.15 4 years ago
nick black dc99d56ac1
v1.6.14 4 years ago
nick black e897de3700
v1.6.13 4 years ago
nick black aebf2cdb9c
CMake: restore 3.14.0+ requirements 4 years ago
nick black 52103af364
Cell: overlap RGB and palette indices #884 4 years ago
nick black 9704f5cbe7
v1.6.12 4 years ago
nick black 48615b8b3d
CMake: missed a word in title =] :D 4 years ago
Nick Black 11d6a4eb89
New reel layout algorithm #818 (#870)
New reel layout algorithm based on trimming and sifting. Fixes the original issue of #818, though I'm not marking that bug fixed until I've resolved the little issues remaining with this one.
Back off CMake version dependency, see if we can get by with 3.11.4 for EPEL8 #851
Simplify tablet drawing tremendously by separating tablet border and data planes. Callbacks no longer need worry about the borders; they can simply fill the plane they're handed. #833
Improve notcurses_debug() a bit
Add ncplane_new_named() and friends to expose plane naming to the user.
Add internal ncplane_genocide() to kill a plane and all its bound descendents
New industrial-strength ncreel unit testing
notcurses-ncreel now accepts -ln for log level n
Add ncplane_parent() and ncplane_parent_const()
4 years ago
nick black 4f5be0b100
tests: treat TERM=unknown like unset TERM #865 4 years ago
nick black fa76f5a432
v1.6.11 4 years ago
nick black 8cfd1677c4
v1.6.10 4 years ago
nick black 77e04c63c5
CMake: only run PoC tests if TERM is set 4 years ago
nick black 92d365da19
CMake: kill duplicate doctest REQUIRED 4 years ago
nick black d126c71dd6
v1.6.9 4 years ago
nick black f8c16ceb79
v1.6.8 4 years ago
nick black 4f8673b0e9
v1.6.7 4 years ago
nick black 71db3dbe61 CMake: unset HAVE_UNISTRING_H cache to force search 4 years ago
nick black 0bd73e2f1f
CMake: drop dirgb from test suite due to excess output 4 years ago
nick black 604747c8f2 notcurses_puttext: use libunistring for wordbreaking #772 4 years ago
nick black 255b404842
ncplane_puttext(): start long words early
If we're fed a word that in and of itself is wider than
the text layout area, and it is not the first word on the
row on which it starts, go ahead and start it there, as
opposed to breaking the line. #720

Also, remove sgr from test suite, as it's not a notcurses
application.
4 years ago
nick black 759e001ca6
CMake: sgr isn't a notcurses app; don't run it as a test 4 years ago
nick black dd4d4817d1
CMake: run tests in serial #812 4 years ago
nick black 42b0be7f3a
Run PoC tests even without doctest #811
Add back the USE_DOCTEST CMake option, but make it conditional
upon BUILD_TESTING. If BUILD_TESTING is provided without
USE_DOCTEST, we build and run the PoC tests, just not
notcurses-tester. If neither is defined, no tests are available
(the PoC binaries are still built). If both are defined, build
the PoCs plus notcurses-tester, and run them all in make test.
4 years ago
nick black 17f1323c20
v1.6.6 4 years ago
nick black 2a4e728de6
CMake: don't install notcurses-pydemo 4 years ago
nick black 308b49da5a
v1.6.5 4 years ago
nick black b2e924319b
v1.6.4 4 years ago
nick black a4ee5bd9c7
v1.6.3 4 years ago
nick black 330b1612d4
CMake: fix up linux pkgconfig install path 4 years ago
nick black 3f544a4ed1
v1.6.2 4 years ago
nick black 62f6896715
CMake: remove python stuff; it'll be built externally 4 years ago