Educational software for young children.
MyABCs is a simple alphabet game. It has two modes with multiple categories.
Press one of the icons at the top of the window to select a category.
Categories:
While an image is displayed on the screen, press the spacebar to hear the pronunciation of the object & an associated sound effect if available.
- CMake https://cmake.org/
- pkg-config https://www.freedesktop.org/wiki/Software/pkg-config/
- wxWidgets 3.1+ https://wxwidgets.org/
- wxSVG http://wxsvg.sourceforge.net/
- SDL2 https://libsdl.org/
- SDL2_mixer https://www.libsdl.org/projects/SDL_mixer/
- PThreads Linux: Check your package manager for a library
- implementation.
- Windows: If your compiler does not have an
- implementation you can download Pthreads-w32.
- The MSYS2 & MinGW-w64 projects also supply a
- more-actively developed version known as
- winpthreads.
See CMake Manual for in-depth details on how to use CMake from the command line.
To configure with default options execute: cmake path/to/source
After configuration is complete run any of the following:
cmake --build ./
(compile)cmake --build ./ --target install
or cmake --install
(compile & install)To get a detailed list of available CMake configuration options run cmake -LA path/to/source
.
The following are the main options that can be configured using the -D
switch:
PORTABLE=OFF
.Portable configuration using MP3 audio:
cmake -DAUDIO_FORMAT=mp3 -DCMAKE_INSTALL_PREFIX="$(pwd)/install" path/to/source
Portable configuration using non-system libraries:
cmake -DUSE_BUNDLED=ON -DCMAKE_INSTALL_PREFIX="$(pwd)/install" path/to/source
Non-portable configuration:
cmake -DPORTABLE=OFF path/to/source
Non-portable configuration with a custom data directory:
cmake -DPORTABLE=OFF -DDATAROOT="/home/username/myabcs" path/to/source
CMake also offers a GUI frontend for generating the Makefiles. For more information, see this page.
make
make install
(on Windows this puts all files into “build/stage/myabcs” directory)make pack
If you want to compile & use the bundled static libraries, execute the following
from the source folder:
$ make build-libs
$ make USE_BUNDLED=1
Make command usage:
- Targets:
- help Show this help information.
- all (default) Compile & link executable.
- install Install or stage files for release.
- stage Same as install.
- uninstall Remove files from system or stage directory.
- pack Zip contentns of stage directory into archive
- for release.
- build-libs Compile bundled libraries.
- Environment variables:
- STATIC Define to create static build (note: SDL
- libraries are still linked dynamically).
- WXVERSION Use a version of wxWidgets other than the default.
- EXTRA_LIBS Use this variable to manually link to libraries
- (example: EXTRA_LIBS="-lpng -lz"). This should only
- be used if linker errors are encountered.
- REL_SUFFIX Appends text to filename of release archive when
- "make pack" is called.
- BUILD_LIBS Only build specified bundled libs with build-libs target.
- USE_BUNDLED Set to non-zero to link to bundled libs. Only works if
- libraries previously built with build-libs target called.
- WXCONFIG Use a custom wx-config
- SDLCONFIG Use a custom sdl2-config
I don’t know
I am not familiar with Apple’s Xcode environment, but I understand that it
comes with GNU GCC & possibly Clang. The instructions above should work here as
well.
The source includes a shell script for compiling internal libraries. From the top-level of the source directory, it is invoked like this:
./libraries/build.sh <build_string>
The <build_string>
parameter symbolizes the platform on which the app/libraries are being built. This parameter is set automatically if invoked from the Makefile with the make
command (functionality may be removed in future versions):
make build-libs
You can also specify which libraries to build using the BUILD_LIBS
variable:
BUILD_LIBS="wxWidgets wxSVG SDL2 SDL2_mixer" ./libraries/build.sh <build_string>
# or
make build-libs BUILD_LIBS="wxWidgets wxSVG SDL2 SDL2_mixer"
If the BUILD_LIBS
variable is not used, the script will build the wxWidgets, wxSVG, SDL2, SDL2_mixer libraries & any required dependencies.
The script will attempt to download the sources for each library, compile, & install them under the directory libraries/libprefix-<build_string>
. Compiling against & linking to these libraries will take priority when building with one of the following methods.
cmake -DUSE_BUNDLED=ON
make USE_BUNDLED=1
For configuration & build settings of individual libraries, see the libraries/CONFIG directory.
NOTE: In the future, the shell script may be replaced with another type of script for multi-platform use