• Home
  • History
  • Annotate
Name Date Size #Lines LOC

..03-May-2022-

TS/H03-May-2022-6,3374,832

lobster/H02-Aug-2019-47,97738,190

osx/H03-May-2022-888866

src/H07-May-2022-9,7378,246

treesheets/H03-May-2022-541510

.clang-formatH A D02-Aug-2019625 2524

.gitignoreH A D02-Aug-2019406 3225

.travis.ymlH A D02-Aug-20192.2 KiB8776

README.mdH A D02-Aug-20194.7 KiB8666

TS_installer.nsiH A D02-Aug-20192.8 KiB11277

README.md

1Welcome to the source distribution of TreeSheets!
2=================================================
3
4This contains all the files needed to build TreeSheets for various platforms.
5If instead you just want to USE TreeSheets, you may be better off with the binaries available on http://strlen.com/treesheets/
6
7TreeSheets has been licensed under the ZLIB license (see ZLIB_LICENSE.txt).
8
9[![Build Status](https://travis-ci.org/aardappel/treesheets.svg?branch=master)](https://travis-ci.org/aardappel/treesheets)
10
11`src` contains all source code. The code is dense, terse, and with few comments, typical for a codebase that was never
12intended to be used by more than one person (me). On the positive side, you'll find the code very small and simple,
13with all functionality easy to find and only in one place (no copy pasting or over-engineering). Enjoy.
14
15`TS` is the folder that contains all user-facing files, typically the build process results in an executable to be put
16in the root of this folder, and distributing to users is then a matter of giving them this folder.
17
18`TODO.txt` is the random notes I kept on ideas of myself and others on what future features could be added.
19
20
21Building:
22---------
23Note that YOU are responsible to know how to use compilers and C++, the hints below are all the help I will give you:
24
25All Platforms:
26
27- TreeSheets requires wxWidgets 3.1 or better.
28  Preferrably the last public release, or bleeding edge from https://github.com/wxWidgets/wxWidgets.git if you're
29  adventurous.
30
31Windows:
32
33- Make sure your `wxWidgets` folder sits parallel to the `src` folder, that way the TreeSheets project will pick
34  it up without further modifications
35- (If from git): Copy `include\wx\msw\setup0.h` to `include\wx\msw\setup.h`
36- Inside `wxWidgets/build/msw`, open `wx_vc14.sln` with Visual Studio 2017.
37- Select all projects in the solution explorer, and go to properties:
38  - Set configuration to debug, and C/C++ -> Code Generation -> Runtime library
39    to Multithreaded Debug
40  - Set configuration to release, and C/C++ -> Code Generation -> Runtime library
41    to Multithreaded
42- Build solution in both Debug and Release
43  (if fails, may have to build again)
44- Close the wxWidgets solution
45- "treesheets" contains the Visual Studio 2015 files for treesheets, open the .sln.
46  If you've done the above correctly, TreeSheets will now compile and pick up
47  the wxWidgets libraries.
48- To distribute, build an installer with `TS_installer.nsi` (requires nsis.sourceforge.net)
49
50Linux:
51
52- Using the version of  wxWidgets from https://github.com/wxWidgets/wxWidgets.git
53  - Follow the instructions to build there, but add `--enable-unicode` and
54   `--disabled-shared` to the `configure` step.
55- Build with `cmake -DCMAKE_BUILD_TYPE=Release .` or similar. Note that you must
56  currently use an "in tree" build, since TreeSheets will look for its files
57  relative to the binary.
58- There is also a `src/Makefile`, this is deprecated.
59
60OSX:
61
62- Build wxWidgets as follows (inside the wxWidgets dir):
63  - `mkdir build_osx`
64  - `cd build_osx`
65  - `../configure --enable-unicode --enable-optimize=-O2 --disable-shared --without-libtiff --with-osx_cocoa CXXFLAGS="-stdlib=libc++" LDFLAGS="-stdlib=libc++" OBJCXXFLAGS="-stdlib=libc++" --with-macosx-sdk=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk --with-macosx-version-min=10.7 --disable-mediactrl CC=clang CXX=clang++`
66  - `make -j8`
67  - `sudo make install`
68- use the XCode project in `osx/TreeSheets` to build treesheets. put the resulting
69  .app together with the files from the `TS` folder in `osx/TreeSheetsBeta` to distribute.
70  Note to use the "Archive" operation to create a release executable.
71
72Contributing:
73-------------
74I welcome contributions, especially in the form of neatly prepared pull requests. The main thing to keep in mind when
75contributing is to keep as close as you can to both the format and the spirit of the existing code, even if it goes
76against the grain of how you program normally. That means not only using the same formatting and naming conventions
77(which should be easy), but the same non-redundant style of code (no under-engineering, e.g. copy pasting,
78and no over engineering, e.g. needless abstractions).
79
80Also be economic in terms of features: treesheets tries to accomplish a lot with few features, additional user
81interface elements (even menu items) have a cost, and features that are only useful for very few people should
82probably not be in the master branch. Needless to say, performance is important too. When in doubt, ask me :)
83
84Try to keep your pull requests small (don't bundle unrelated changes) and make sure you've done extensive testing
85before you submit, preferrably on multiple platforms.
86