The ENABLE_BOX2D/ENABLE_CHIPMUNK defines were previously
hardcoded in the Makefiles. Now you get chipmunk by default
on both platforms and can enble Box2D by setting USE_BOX2D in
your environment.
Also remove erroneous -D__CC_PLATFORM_FILEUTILS_CPP__ and
-D__CC_PLATFORM_IMAGE_CPP__ from linux Makefiles. These should
never be defined globally like this.
Compiling on linux causes the error "array subscript is above array
bounds [-Werror=array-bounds]". This commit adds boundary checking
using the constant defining the maximum number of items in the "nuke" array.
Signed-off-by: Roger Zanoni <roger.zanoni@openbossa.org>
The code seems to look wrong (and it sure is) however in real-world
applications it might not be that eays to tell who has ownership of the object,
especially if weak references are involved.
Some CCLog message contained trailing newlines which
made the logs hard to read on many platforms. The solution
here is to stip trailing newlines on those platforms, and also
to remove the newlines from the existing log messages.
This is a helper method that removes all observers with a particular
target. It can be used in destuctors to ensure no observers trigger
callbacks on objects that no longer exist.
Also, a few other linux build system improvements:
- Add linux build of SimpleGame
- Update multi-platform templates to use new common
build system.
- Remove redundant main.h files.
This change makes several fundamental improvements to the linux
build system:
- Remove duplication: a lot of the common make logic is now in
a central shared makefile: cocos2dx/proj.linux/cocos2dx.mk
- Quiet by default: unless you specify V=1 on the commandline
the output is now very clean and quiet.
- Dependencies: gcc's automatic dependancy generation is now
used (-MMD). This means that if you change a header file
then all the object that depend on it now get rebuilt.
- Don't store objects in the source tree: previously object
files were stored alongside the sources, which meant that
debug and release object clobbered each other which leads
to confusion and lots of unnecessary rebuilding.Q
- Library dependencies: each binary now depends on the libraries
it links aginst. This means that if the cocos2dx library
changes then all examples will get re-linked.
- Top level Makefile: there is now a top level Makefile that
can be shared/used by any platform the uses make as the
build system (for example NaCl). Everything can be built
by simply running 'make' at the top level. e.g:
make DEBUG=1
make DEBUG=1 clean