IndieLibX





IndieLibX
To get started you can try ./install.sh on linuxes and on OSX:
cd $HOME
chmod a+x ./install.sh
./install.sh
./install.sh installs (tested on 32-bit Ubuntu 16.04 and 64-bit Debian 8.4) all the compiled libraries from the IndieLibX_AllLibs_LNX32.zip or IndieLibX_AllLibs_LNX64.zip or IndieLibX_AllLibs_OSX.zip or IndieLibX_AllLibs_NDK.zip or IndieLibX_AllLibs_iOS.zip or IndieLibX_AllLibs_WIN64.zip packages.
If this does not work install.sh compiles and links all the libraries from scratch.
Compilation may take considerable amount of time particularly in 32-bit linuxes.
Compilation is faster in 64-bit linuxes.
Or alternatively:
The old commandline version of installation.
The nmake is the preferred build tool for the Windows.
The make is the preferred build tool for the iOS and OSX.
Place folders IndieLibX and IndieLib_resources to same folder.
On linuxes and Darwin the folders are:
$HOME/IndieLibX and $HOME/IndieLibX_resources
On windows the folders are:
C:\\IndieLibX and C:\\IndieLibX_resources
The iOS (Documents/IndieLibX_resources) and NDK (/mnt/sdcard/IndieLibX_resources) build system places automatically the resource folder and the builded application to the application bundle.
For a NDK build two console windows are needed:
On first console window:
cd $HOME/IndieLibX
#android create avd -n Android4.4 -t 1
make emulator => starts an emulator instance and writes log messages from application to $HOME/IndieLibX/NDK.log
On second console window:
cd $HOME/IndieLibX
./make.sh Test NDK => NDK short test build.
./make.sh SampleApps NDK => Some NDK samples.
./make.sh TerrainApps NDK => Some 3D terrain NDK samples.
./make.sh IndieLibApps NDK => NDK full IndieLibX build.
The NDK solutions are now built without compilation errors. More about SimpleTexture on NDK is documented in SimpleTexture_on_NDK.


$HOME/IndieLibX/Libraries/SDL2-2.0.5/android-project/jni/Application.mk:
APP_ABI := armeabi mips x86 # works in the emulator
APP_ABI := x86 # does not work in the emulator
./make.sh Test iOS => iOS short test build.
./make.sh SampleApps iOS => Some iOS samples.
./make.sh TerrainApps iOS => Some 3D terrain iOS samples.
./make.sh IndieLibApps iOS => iOS full IndieLibX.
After resetting mac back to factory settings and reinstalling Xcode I was able to compile and run GLEssentials sample in OSX and iOS simulator.
The iOS solutions are now built without compilation errors. More about SimpleTexture on iOS is documented in SimpleTexture_on_iOS.

./make.sh Test => LNX/OSX short test build.
./make.sh SampleApps => Some LNX/OSX samples.
./make.sh TerrainApps => Some 3D terrain LNX/OSX samples.
./make.sh IndieLibApps => LNX/OSX full IndieLibX.
./run.sh => test script for the desktop projects
./make.sh => Removes temporary files.
Windows build:
cd C:\\IndieLibX
Make.bat Test => a short test build.
Make.bat SampleApps => Some samples.
Make.bat TerrainApps => Some terrain samples.
Make.bat IndieLibApps => a full IndieLibX build.
run.bat => test script for the desktop projects
Additionally you can try script programming with SWIG and python:
cd $HOME/IndieLibX/scripting
make all
./test.sh: combines various builds and tests to a single script:
1: Test, SampleApps, TerrainApps and IndieLibApps solutions are build and tested.
2: IndieLibX python scripts are tested.
3: Test solution for NDK or iOS (linux/OSX-platforms respectively) is built.
cd $HOME/IndieLibX
./make.sh AllLibs
sudo cp $HOME/IndieLibX/lib/*.a /usr/local/lib/.
./make.sh
./test.sh => Builds and tests all important solutions.
$HOME/IndieLibX/Libraries/STX/src/Image3.cpp:
The STX library is built without SDL_INIT_EVENTTHREAD in SDL_Init function call. Otherwise _totally strange_ things can start to happen!
SDL_Init(SDL_INIT_TIMER|
SDL_INIT_AUDIO|
//SDL_INIT_EVENTTHREAD|
SDL_INIT_JOYSTICK|
SDL_INIT_VIDEO);
$HOME/IndieLibX/Libraries/aras-p-hlsl2glslfork-de4cd58/README.md:
* On Windows, the hlsl2glsl library is built with `_HAS_ITERATOR_DEBUGGING=0,_SECURE_SCL=0` defines, which affect MSVC's STL behavior. If this does not match defines in your application, _totally strange_ things can start to happen!
Note that if you managed to build the static libraries (Linux, OSX, Windows, android and iPhoneSimulator builds)
you can speed up the future build times by copying the built static libraries to a special library folder.
Build system will then use the static libraries in the special folder in linking phase instead of building them from scratch.
On linux or OSX: sudo cp $HOME/IndieLibX/lib/*.a /usr/local/lib/.
On Windows: copy C:\\IndieLibX\\lib\\*.lib %USERPROFILE%\\Documents\\lib
For NDK: cp $HOME/IndieLibX/Libraries/MVC/NDK/build/$(mainphoneproject)/obj/local/armeabi/*.a $HOME/android-ndk-r9d/platforms/android-19/arch-arm/usr/lib/.
For iPhoneSimulator: cp -fr $HOME/IndieLibX/lib/*.framework $HOME/lib/iPhoneSimulator/.