X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/1cab5b8d99329d570bf67f021a89eefe20a0a7e5..89b3361ec25cf1e6d255b14c7633d8375646e4fb:/docs/tech/tn0001.txt diff --git a/docs/tech/tn0001.txt b/docs/tech/tn0001.txt index bd2f3b7af4..c08c11d0ac 100644 --- a/docs/tech/tn0001.txt +++ b/docs/tech/tn0001.txt @@ -1,42 +1,60 @@ - How to add a new sample to wxWindows. + How to add a new sample to wxWidgets. ===================================== -To add a new sample "foo" under directory "samples/foo" you need to -do the following: - -1. Create the directory samples/foo locally and "cvs add" it - -2. Put the sources, headers and foo.rc file in it and "cvs add" them too - (don't forget to use "-kb" switch for binary files) - -3. Create the makefiles for Windows compilers. There are several ways to do - it: - a) copy the makefiles from samples/minimal, replace all occurences of - minimal with foo - b) use makegen (sources are under utils/makegen) - c) use projgen - -4. Modify configure.in and samples/configure.in for Unix compilation: +To add a new sample "foo" under directory "samples/foo" you need to do +the following: (note that all this applies also to demos: just replace +samples/ with demos/ where needed). + +1. Create the directory samples/foo locally and "svn add" it. + +2. "svn add" the sample sources (usually based on minimal.cpp) as well. + + Note that unless your sample requires something special you shouldn't + add foo.rc, foo.ico, ... any more, please just reuse the generic sample.* + files in the samples subdirectory. + +3. Create the makefiles: + a) modify samples/samples.bkl (just copy an existing line) + b) create foo.bkl (sed 's/minimal/foo/g' minimal.bkl > foo.bkl is usually + enough, but you may need to add more lines if your sample uses + anything not in the core lib) + c) generate the makefiles for your sample using bakefile. For this you + need to: + (i) install bakefile (see http://bakefile.sf.net/) + (ii) run bakefile_gen in build/bakefiles which will regenerate all + makefiles which are not up to date + + You may also use "bakefile_gen -b ../../samples/foo/foo.bkl" to + regenerate only the makefiles for this sample (path must be relative!) + or even add a "-f" to generate just the makefiles for the given + compiler (run 'bakefile --help' to get the list of possible values). + See Technote #16 for more information. + d) currently samples/samples.dsw needs to be updated manually as it's not + generated by bakefile. + +4. Modify configure.in Unix compilation: a) if the sample should only be built if "wxUSE_FOO" is enabled, locate the test for "wxUSE_FOO = yes" in configure.in and add a line SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS foo" under it b) if it should be always built, locate the line "if test $wxUSE_GUI = yes" near the end of configure.in and modify the assignment to SAMPLES_SUBDIRS to include "foo" (put in alphabetical order) - c) add foo/Makefile to AC_OUTPUT in samples/configure.in - After this, regenerate configure and samples/configure from configure.in by - running "autoconf" on a Unix system in the corresponding directory. + After this, regenerate configure from configure.in + by running "autoconf" on a Unix system in the corresponding directory. -Author: VZ -Version: $Id$ +5. Add a short description of what the sample does and how does it work + to the "samples overview" section in the wxWidgets manual. That section + lives in docs/doxygen/mainpages/samples.h; look at the descriptions for + other samples, if you are not familiar with Doxygen. -$Log$ -Revision 1.1 2000/03/02 04:18:53 GRG -Renamed tech notes to tnxxxx.txt +6. Add any non-standard sample's files to build/bakefiles/make_dist.mk (the + makefiles copies all bmp, cpp, h, ico, png, rc, xpm and makefiles by + default, you only need to update it if the sample uses some other files) + and run the ./update-manifests.sh script in distrib/scripts (don't forget + to check the changes to manifests/*.rsp files in). -Revision 1.2 2000/03/01 19:24:07 VZ -added a note about where to find makegen +=== EOF === -Revision 1.1 2000/03/01 19:22:41 VZ -created 'how to add a sample' technote +Author: VZ +Version: $Id$