]> git.saurik.com Git - wxWidgets.git/blame - docs/tech/tn0001.txt
Mention setting up file as default download on SF in release docs.
[wxWidgets.git] / docs / tech / tn0001.txt
CommitLineData
fc2171bd 1 How to add a new sample to wxWidgets.
d81a8f2e
VZ
2 =====================================
3
03bbd98b
GRG
4To add a new sample "foo" under directory "samples/foo" you need to do
5the following: (note that all this applies also to demos: just replace
6samples/ with demos/ where needed).
d81a8f2e 7
4d636bdf 81. Create the directory samples/foo locally and "svn add" it.
7ae238e5 9
4d636bdf 102. "svn add" the sample sources (usually based on minimal.cpp) as well.
7ae238e5
VZ
11
12 Note that unless your sample requires something special you shouldn't
13 add foo.rc, foo.ico, ... any more, please just reuse the generic sample.*
14 files in the samples subdirectory.
15
163. Create the makefiles:
17 a) modify samples/samples.bkl (just copy an existing line)
18 b) create foo.bkl (sed 's/minimal/foo/g' minimal.bkl > foo.bkl is usually
19 enough, but you may need to add more <wx-lib> lines if your sample uses
20 anything not in the core lib)
21 c) generate the makefiles for your sample using bakefile. For this you
22 need to:
23 (i) install bakefile (see http://bakefile.sf.net/)
24 (ii) run bakefile_gen in build/bakefiles which will regenerate all
25 makefiles which are not up to date
26
27 You may also use "bakefile_gen -b ../../samples/foo/foo.bkl" to
28 regenerate only the makefiles for this sample (path must be relative!)
29 or even add a "-f<compiler>" to generate just the makefiles for the given
518cdeac
VS
30 compiler (run 'bakefile --help' to get the list of possible values).
31 See Technote #16 for more information.
ff044749
VZ
32 d) currently samples/samples.dsw needs to be updated manually as it's not
33 generated by bakefile.
d81a8f2e 34
518cdeac 354. Modify configure.in Unix compilation:
d81a8f2e
VZ
36 a) if the sample should only be built if "wxUSE_FOO" is enabled, locate
37 the test for "wxUSE_FOO = yes" in configure.in and add a line
38 SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS foo" under it
39 b) if it should be always built, locate the line "if test $wxUSE_GUI = yes"
40 near the end of configure.in and modify the assignment to
41 SAMPLES_SUBDIRS to include "foo" (put in alphabetical order)
d81a8f2e 42
518cdeac 43 After this, regenerate configure from configure.in
03bbd98b
GRG
44 by running "autoconf" on a Unix system in the corresponding directory.
45
465. Add a short description of what the sample does and how does it work
fc2171bd 47 to the "samples overview" section in the wxWidgets manual. That section
73eca6fd
VZ
48 lives in docs/doxygen/mainpages/samples.h; look at the descriptions for
49 other samples, if you are not familiar with Doxygen.
03bbd98b 50
5c97688c
VZ
516. Add any non-standard sample's files to build/bakefiles/make_dist.mk (the
52 makefiles copies all bmp, cpp, h, ico, png, rc, xpm and makefiles by
ca152e4c
VS
53 default, you only need to update it if the sample uses some other files)
54 and run the ./update-manifests.sh script in distrib/scripts (don't forget
55 to check the changes to manifests/*.rsp files in).
21d93bce 56
03bbd98b 57=== EOF ===
d81a8f2e
VZ
58
59Author: VZ
60Version: $Id$