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