HomePhabricator
New Echo dependency and build environment changes

I've just pushed some changes that will require a few simple updates.

New dependencies

  • tmxparser - A TMX file parser. TMX files are tile map files exported from the Tiled.
  • tinyxml2 - Required by tmxparser.

tmxparser isn't available in the Ubuntu repositories by default so I've updated edepbuild to build it along with tinyxml2 as well.

You will need to clone Restricted Repository if you haven't already, if you have then make sure it is up to date. Make sure your environment is set up correctly. I recommend running SetupEcho.sh from Restricted Repository as it automates the installation.

Get any missing dependencies by running

./getdependencies.sh

Or go to https://www.emblem.net.au/ed and download the specific ones you want. Extract the archives to the X folder.

Now, to make sure you have the dependencies built do the following:

cd $ECHO_ENGINE_DEPENDENCIES_DIR
./edepbuild linux
#If you're building for android do this too
./edepbuild android

The scripts have been updated to build what you need. If you don't want to trigger a rebuild of all dependencies you can build just what you need:

./edepbuild platform tinyxml2
./edepbuild platform tmxparser

Those are the new dependencies that have been added. tmxparser does depend on zlib, but on Linux it should be on your system already. And the NDK includes zlib for Android.

Echo project changes

There are a few changes that you need to make to update your project files. If your project isn't very big and doesn't have a lot of files to add, you could just use the Echo NetBeans project wizard to create a fresh project for you then setup your files and resources again. Otherwise, follow the table below:

Configuration changes

ConfigurationSettingChangeReason
Release and DebugC++ Compiler -> Include directoriesAdd ${ECHO_ENGINE_DEPENDENCIES_DIR}/opt/linux/includeLinux builds require tmxparser which is built to the specified directory.
ReleaseLinker -> Additional Library DirectoriesChange: ${ECHO_ENGINE_INSTALL_DIR}/dist/Release/${CND_PLATFORM} to ${ECHO_ENGINE_INSTALL_DIR}/dist/${CND_CONF}/${CND_PLATFORM}Making it more generic and easier to edit multiple configurations at once.
DebugLinker -> Additional Library DirectoriesChange: ${ECHO_ENGINE_INSTALL_DIR}/dist/Debug/${CND_PLATFORM} to ${ECHO_ENGINE_INSTALL_DIR}/dist/${CND_CONF}/${CND_PLATFORM}Making it more generic and easier to edit multiple configurations at once.
Release and DebugLinker -> Additional Library DirectoriesAdd: ${ECHO_ENGINE_DEPENDENCIES_DIR}/opt/linux/libNew libraries are found here.
Release and DebugLinker -> LibrariesAdd: -ltmxparser -ltinyxml2 after -lecho3Adding the new libraries include during linking
Android_9Archiver -> OutputChange: ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/libyourapplication.a to ${CND_DISTDIR}/${CND_CONF}/libyourapplication.a then remove the folders dist/Android_9/Android_9-Linux and build/Android_9/Android_9-Linux to clean up.Remove the platform component. Changes between NetBeans versions modified CND_PLATFORM which broke the Android build scripts. This modification along with the next fix this issue.

File changes

FileChangeReason
Android_9 Makefile updatetargets/Android/jni/Android.mkFind and remove Android_9-Linux-x86/ from the two pathsSee previous change above.

Repository changes

.hgignore previously ignored nbproject/private/*. Remove this pattern from the ignore list and add nbproject/private/configurations.xml to your repository. Ignore other files though: i.e.:

*nbproject/private/private.xml
*nbproject/private/*.properties

Including nbproject/private/configurations.xml allows you to check in the run settings which we are making portable between systems so it isn't a problem.

Here is a list of run settings that your project should have:

ConfigurationRun commandRun directory
Debug"${OUTPUT_PATH}"
Release"${OUTPUT_PATH}"
Android_9./InstallAndRun.sh./targets/Android/
Wiirun.sh "${OUTPUT_PATH}"./targets/Wii

I think that covers everything. The latest template bundled with the latest project wizard will also automate the Android target files when you first try and run from NetBeans..

Written by 0xseantasker on Oct 6 2015, 8:17 PM.
User
Projects
  • Restricted Project
Subscribers
None

Event Timeline