Warning, /graphics/kseexpr/README.md is written in an unsupported language. File is not indexed.

0001 # KSeExpr - An embeddable expression evaluation engine
0002 
0003 This repository hosts the fork of [Disney Animation's SeExpr expression 
0004 library](https://wdas.github.io/SeExpr), that is used in [Krita](https://invent.kde.org/graphics/krita).
0005 
0006 This fork was created as part of the GSoC 2020 project, [Dynamic Fill 
0007 Layers in Krita using SeExpr](https://summerofcode.withgoogle.com/archive/2020/projects/6233717216903168/),
0008 to enable the provision of fixes and translations needed to embed 
0009 SeExpr into the Krita painting suite.
0010 
0011 **WARNING**: This version is not ABI-compatible with projects using upstream SeExpr. Use it at your own discretion.
0012 
0013 ## Super impatient CMake building and installing guide
0014 
0015 Prerequisites:
0016 
0017 * A C++ compiler supporting **at least** the C++14 standard
0018 * CMake >= 3.8.0
0019 * Qt >= 5.9
0020 
0021 ```bash
0022 $ mkdir kseexpr
0023 $ cd kseexpr
0024 $ git clone https://invent.kde.org/graphics/seexpr.git src
0025 $ mkdir build
0026 $ cd build
0027 $ cmake ../src
0028 $ cmake --build . --target install
0029 ```
0030 
0031 ## The full package
0032 
0033 If you want optional stuff (not used in Krita):
0034 * Ninja
0035 * For building the parser, otherwise specify `-DUSE_PREGENERATED_FILES=OFF`:
0036   * bison
0037   * flex
0038 * For LLVM support, otherwise specify `-DENABLE_LLVM_BACKEND=OFF`:
0039   * LLVM >= 3.8.0
0040 * For building the documentation, otherwise specify `-DBUILD_DOC=OFF`:
0041   * doxygen
0042 * For building the tests, otherwise specify `-DBUILD_TESTS=OFF`:
0043   * gtest
0044 * For building the translations (if you have a release tarball, you can disable it with `-DBUILD_TRANSLATIONS=OFF`):
0045   * ECM >= 5.64
0046 
0047 Then, on your shell, issue the following commands:
0048 
0049 ```bash
0050 $ mkdir kseexpr
0051 $ cd kseexpr
0052 $ git clone https://invent.kde.org/graphics/seexpr.git src
0053 $ mkdir build
0054 $ cd build
0055 $ cmake ../src
0056 $ cmake --build . --target install
0057 ```
0058 
0059 You can try the test application asciiGraph which is a simple
0060 function grapher... e.g.
0061 ```bash
0062 ./asciiGraph "x^3-8*x"
0063 ```
0064 
0065 ## Getting started
0066 
0067 Examining the demo applications in `src/demos` is a great way to see
0068 some usage examples of the library. The basic strategy is to subclass
0069 the `Expression` class and implement the methods that describe what
0070 extra functions and variables your expression evaluation will need.
0071 
0072 ## Documentation
0073 
0074 We (the Krita team) provided a set of tutorials, an adapted Quick Reference, and
0075 other docs at [the Krita manual](https://docs.krita.org/en/tutorials/seexpr.html).
0076 
0077 The original Doxygen-based documentation provided by Disney is at:
0078 - <http://wdas.github.io/SeExpr/doxygen/>
0079 - <http://wdas.github.io/SeExpr/doxygen/v1> (for older documentation)
0080 
0081 ## Source code overview
0082 
0083 ```
0084 cmake/       CMake boilerplate and macros
0085 generated/   Pregenerated parser files
0086 LICENSES/    SPDX licenses
0087 packaging/   Krita packaging scripts
0088 po/          (only on release tarballs) Translations supplied by the KDE i18n team
0089 src/
0090   build/     CMake helper macros
0091   demos/     Demo Applications
0092   doc/       Doxygen generation
0093   KSeExpr/   Library code
0094   KSeExprUI/ User Interface components for editing
0095   tests/     Regression Tests
0096   utils/     Various example tools
0097 ```
0098 
0099 ## License
0100 
0101 KSeExpr is made available subject to the terms of the [GNU General Public License v3.0 or later](LICENSES/GPL-3.0-or-later.txt).
0102 
0103 It is based on code from SeExpr, which is (C) Disney Enterprises, Inc. and made available under the Apache 2.0 License with section 6 rewrite. Please see the [LICENSE](LICENSES/LicenseRef-Apache-2.0.txt) for more details.
0104 
0105 The translation loader is a modified version of the one provided by k18n under the [BSD 3-Clause "New" or "Revised" License](LICENSES/BSD-3-Clause.txt).
0106 
0107 The `crack_atof` function by Tian Bo (in Utils.cpp) is licensed under the [MIT](LICENSES/MIT.txt).
0108 
0109 The packaging scripts are made available under the [BSD 3-Clause "New" or "Revised" License](LICENSES/BSD-3-Clause.txt).
0110 
0111 ## Original SeExpr Developers
0112 
0113  * David Aguilar
0114  * Janet Berlin
0115  * Brent Burley
0116  * Lawrence Chai
0117  * Noah Kagan
0118  * Jared Reisweber
0119  * Andrew Selle
0120  * Dan Teece
0121  * Tom Thompson
0122 
0123 Walt Disney Animation Studios