C++ Compilation Made Easy
Be the first to post a text review of iCompile. Rate and review a project by clicking thumbs up or thumbs down in the right column.
iCompile is a zero configuration build system for C++ projects under OS X, Linux, and other unix-like operating systems. It can compile most projects without a Makefile or other configuration file, making it ideal for students and hobbyists. The new release supports expanded rules for linking 3rd party libraries, Doxygen integration, and templates for common project types.
TODO: * Test sibling library dependency checking (in the presence of the cache) * Make "project name" a variable for ice.txt files * Update ice.txt and manual.html documentation * Explicit dependencies (uses) * When a library dependency is added, re-check to see if that makes something else out of date * When compiling an up-to-date library, only print "X.lib is up to date" * When a dependency fails to build, stop the compilation process * Check dependencies before building docs/data so that the output for each icompile module is grouped together (right now libraries build after documentation and before the binary.) See buildBinary() * Test universal binary support for OS X * Extract icns automatically for --deploy on OS X 0.5.7 * support for the Box2D library * tuned --opt defaults for performance on gcc for "most recent" machines: Linux: -ffast-math -O3 -mtune=native -march=pentium4 -msse2 -fpmath=sse -finline-limit=1100 OS X: -ffast-math -O3 -mtune=native -march=core2,ppc -finline-limit=1100 0.5.6 * icons are now added to the binary on OS X * can link against dylib files contained in data-files on OS X * uses install_name_tool on OS X when dylibs are in data-files * support for fmod, ffmpeg, and irrklang * gdb command file now correctly placed inside tmp directory * temp dir parent removed if empty on icompile --clean * fixed ics-stats.csv formatting * icompile can now be launched from within the 'source' subdirectory * sibling dependencies now properly handle absolute build and temp paths * sibling libraries now cached correctly 0.5.5 * Removed '-' between compiler and version number * Now requires Python 2.4 (for Popen) * Uses as many threads as available processors for compilation * Dependency information is cached (with verification) between executions * Cache retains discovered linker settings * Fix: dependencies are correctly checked for sibling libraries on incremental builds * --doc no longer builds the binary as well 0.5.4 * Added .git to the list of ignored directories * Added linking for IOKit library on OS X * Write out ice-stats.csv history for graphing purposes * Added comment line count to statistics output * Added --deploy that creates .tar.gz for Linux and .dmg with a bundle for OS X * Bundles contain all required frameworks * OS X Intel machines now build universal binaries * Added FMOD link instructions * Library and include paths can now contain spaces * Made OpenGL not depend on X11 on OS X 0.5.3 * Added Apple OpenGL (AGL) framework linking * Changed g++ nicknaming to better match gcc-latest and other patterns * Print line count at the end of the program * Updaged G3D starter files 0.5.2 * --template flag for GUI front ends * --info flag, for use with GUI front ends * build clean now obeys .icompile build/temp paths * Ignore directories named 'test' or 'tests' * Ignore (emacs) files of the form .#* * Fixed a bug where several ignored filetypes were still being compiled * Don't print data files section if data files are up to date * Complain if illegal --config file is specified * Added library rule for ANN.h (http://www.cs.umd.edu/~mount/ANN/) 0.5.1 * Use the platform name instead of "install" for the distribution directory * Remove the platform name from the library build directory * Added --config option for changing user configuration file 0.5.0 * Optionally generate starter files for a new project when run in an empty directory * Expand ~/ and ~user/ in ice.txt paths * Warn about ice.txt files from previous versions of icompile that appear to be obsolete. * Other iCompile projects that are dependencies can be up to two directories up the file system tree * Dependencies that are iCompile projects are automatically built when out of date * Dependency libraries do not have to have ice.txt files anymore * "compileroptions" and "linkeroptions" now always include the ones generated by icompile for simplicity (incompatible change) * Always store temp files in a subdirectory of tempdir named after the project (allows a global temp dir) 0.4.6 * Support for FreeBSD * Added 'builddir' option in the global ice.txt section * Added 'tempdir' option in the global ice.txt section * Reduced initial disk access when processing ice.txt * Four verbosity levels now available through the --verbosity flag * Changed default temp directory to .ice-tmp/ * Versioned (e.g., libSDL-1.1.a) libraries are now automatically detected * Projects can now depend on one another. See the 'uses:' line in ice.txt * Automatic dependency determination for sibling projects * Support for OS X frameworks * build subdirectories now include platform and compiler name * When building a library, include/ and include/projectname are automatically on the include list * Removed double slashes that previously printed when copying datafiles * Object file arguments to the linker now passed through a text file (helps with huge projects on certain shells) * Fixed several bugs in the library topological sort logic including an off-by-one and an unstable sort in the presence of libraries without dependencies * Added i, ii, m, mm, mi, mii to the list of legal C extensions (m versions only on OS X) 0.4.5 * Added '^.' and '^#' to the file ignore list * Added '.svn' to the ignore list * Compiler options under --verbose now show all options * removed xmmintrin.h triggering -msse2 * Added color support for OS X via xterm-color * -fasm-blocks now default on OS X 0.4.4 * Changed 'docfiles' to 'doc-files' to match Javadoc 1.4 * Changed 'datafiles' to 'data-files' * Changed '_build' to BUILDDIR = 'build' * Changed 'distrib' to DISTRIBDIR = 'install' * Libraries now compile into sub-directories * Added /usr/X11R6/lib to library path by default * Platform name is added to install lib directory name when building libs 0.4.3 * Added X11 linking * Recognize latest g++ version without a dash in the name * Add -msse2 flag if xmmintrin.h is in the dependency list 0.4.2 * Removed '-fno-finite-math-only' because it is not supported by g++3.2 * More clearly documented .icompile in the manual * Added ice.txt and .icompile as dependencies of every file 0.4.1 * Qt support (untested) * wxWindows/wxWidgets support. Automatically calls wx-config * $(shell cmds...) format allowed in ice.txt and .icompile 0.4.0 * Tracks recursive dependencies of static libraries * Topologically sorts libraries based on interdependencies 0.3.1 * Made .icompile quiet settings actually work * Dependency information only prints in verbose mode * Swapped link order as a poor-man's topological sort. 0.3.0 * Added --quiet mode * Changed special directory names to _build, datafiles, and docfiles * Added include * Added ice.txt file-- prevents you from accidentally running iCompile in the wrong directory. Prints especially dire warnings when you attempt to run in your home directory. * Detects shared and static libraries from project directory name * Rewrote manual from scratch * Added folder icons to manual * Configuration can be controlled through ice.txt file instead of environment variables * Added user-configurable exclude variable in ice.txt * Launch Python with /usr/bin/env instead of /usr/bin/python * Added ~/.icompile master configuration file 0.2.3 * Added .icompile-temp to exclude dirs 0.2.2 * 'old' is ignored as a directory name * Dirnames printed by --help are from global variables * --verbose prints out all header files from the dependency check * Dependencies are now parsed correctly even in --verbose mode * Slashes on deep recursive paths now correct * C files in excluded directories no longer compiled 0.2.1 * Removed --fno-math-errno from --opt settings because it crashed g++ on occasion * Updated manual.html * Don't descend into subdirectories of excluded directories during copying 0.2.0 * Public release of 0.1.29 0.1.29 * default colors are more likely to be visible on both light and dark backgrounds * beeps when compilation finishes * temp dir is now '.icompile-temp' * icompile --help no longer writes cache * Building messages indicate where the executable is being written (i.e. distrib/) 0.1.28 * glu.h and the symbol "gluBuild2DMipmaps" trigger -lGLU * color printing 0.1.27 * --gdb flag runs the program under gdb * doesn't descend into tmp directories for compilation or copying 0.1.26 * doesn't descend into CVS, Debug, Release, graveyard, distrib doxygen, temp, res, or docres directories for compilation. * prepends './' to the executable name when running it (in case the user doesn't have '.' in their PATH) 0.1.25 * support for .C files 0.1.24 * copyIfNewer does nothing on non-existent source * changed link argument order to avoid warnings * Subdirectories of res now copied correctly ([ 885870 ] distribCVS issue) 0.1.23 * icompile --clean no longer tries to write a cache * icompile --clean no longer deletes entire distrib dir 0.1.22 * Environment warnings only printed once every two days * Added change log
Be the first person to add a text review.
Copyright © 2009 Geeknet, Inc. All rights reserved. Terms of Use
Thanks for your rating!
Would you also like to write a review?