JamPlus 0.2 Released
JamPlus 0.2 has been released
New features for 0.2:
- Visual Studio 2005 and 2008 solution and vcproj files.
Documentation:
- In some manner, every JamPlus feature is documented (we hope).
Jam Executable:
- Fixed a 'don't know how to make' bug when trying to create the subdirectory . (period)
- Fixed an MD5 network cache issue in filecache_fillvalues. Reported by Jan van Valburg.
- Fixed the -T command line option which, in turn, fixed the -t command line option.
- Added the MightNotUpdate flag to work as a single target alternate to Needs.
- Fixed directory file pattern match for $(dir/:W).
- Fixed variable expansion modifier issues when extra colons are present.
- Altered the way the :I= and :X= variable expansion modifiers work to better fit the documentation.
- Addded the :T variable expansion modifier to expand to the bound name.
- For the :W modifier, grab the files earlier in the variable expansion.
- Only compile a given regular expression once. This existed in the original version of the header scanning code but not the HDRPIPE version.
- Optimized retrieval of directories from the timestamp() code. This results in a very limited number of file queries for directories that cannot possibly exist. See OPT_TIMESTAMP_EXTENDED_PARENT_CHECK_EXT.
- Fixed path delimiter in pathunix.c.
- Made UseMD5Callback a built-in rule, instead of having it sit in the Jambase.
- Removed the need to compile and link against the LuaPlus library when the Lua support was turned on.
- Added Subst rule, based on Lua's string.gsub.
- Added CppCompileOptions.
- Bug fix for multiple passes.
Jambase:
- Re-added basic MinGW support, accessible by setting the COMPILER variable to mingw.
- SubIncluding a given Jamfile only happens once.
- Exits when an incorrect platform or configuration is specified.
- Added OutputPostfix, OutputPostfixClear, and OutputSuffix.
- For Visual Studio 2005, made the Microsoft .NET SDK include and library paths available.
- WINDOWS was not a side-by-side define with WIN32. Fixed.
- Attempt to load a Jamrules-style file called .jamrules.
- Fix import library dependencies for DLLs.
- Allow an additional optional SubDir parameter denoting a 'target' in the grist. LOCATE_SOURCE, LOCATE_TARGET, and SOURCE_GRIST all append it.
- IncludeModule: Modules can only be included once.
- Added ReferenceDirectories for .NET references.
- Added BatchCompileGroupSize. The default batch compilation group size is unlimited.
- Fixed precompiled header support to allow precompiled header .cpp files with relative paths attached to the name. Uses the BINDING to control the output location.
- Assign LINK_TARGET variable to the TARGET when setting up an executable or shared library link, so later post-build steps can get access to the binary without a complex look up.
- Library's OPTIONS now accepts 'noexportlib'.
- Re-added ObjectCFlags and rule_ObjectC++Flags "ObjectC++Flags".
- Added rule_FGristDirectories "FGristDirectories" rule.
- Lump rule handles .cxx.
- PrecompiledHeader rule accepts a shortened version where the .cpp and .h are determined by a single parameter.
- Optimization - Don't scan inside .lib files, since the .obj files are present by default.
- Major C/C++ compilation optimizations.
- Fix support for .c precompiled headers.
- Add CRuntimeType to change between statically linked and dynamically linked C runtimes for Visual C++.
- Remove VC5 support, since I have no way of testing it.
- Change grists to be project level and not subdirectory level.
- LINKDIRECTORIES was set up wrong and put in the global variable list. This is corrected now, and the initial LINKDIRECTORIES is assigned to *.
- Moved DEFINES down with the platform they represent.
- Change <dir> grist to <!dir!>.
- Minor clean up for calculation of MSVCNT and MSVCNT_PATH.
- Moved the MSVCNT_PATH first in the PATH.
- Get rid of top-level dependencies that don't mean anything.
- Removed unused script and targets.
Jam Modules:
- MFC module: Removed automatic ATL and MFC include and library paths. IncludeModule MFC to access the paths and apply ATL/MFC support to a target.
- DirectX module: Removed automatic DirectX include and library paths and added DirectX module. IncludeModule DirectX to apply DirectX support to a target.
- wxWidgets module: Minor fix when generating the target name.
- wxWidgets module: Added contrib libraries support. Only supports stc for now.
- DotNet module: Add StrongName rule.
- CopyDirectory and CopyFile modules: When generating a workspace that uses CopyDirectory and CopyFile, files would get copied. Both rules now guard against that during workspace generation.
JamToWorkspace:
- For the source Jamfile path, handle the case where Jamfile.jam is not specified.
- When a project is specified as existing in a workspace but has not been defined, pop up an error message instead of crashing.
- Handle quotes inside the preprocessor defines.
- Fix JamToWorkspace conversion when the target name is implicit and specified through ActiveProject.
Samples:
- Make the batch maxtargets sample a little more clear.
- helloworld test that is slightly more complicated than the helloworld sample app.
- Add md5test.jam in tests/md5/.
- Add tests/expand/expandtests.jam.
- Very simple generatedheader test added.
- tests/source_and_jamfiles_separate example added.
- Batch file in samples/sharedlib/ to create a CodeBlocks MinGW project.
- Lua parsing phase examples in tests/lua/testluaparser.jam and tests/lua/testluaparser.jam.lua
- Added tutorial 02-helloworld-static.
- Useful output in the filecache_luamd5callback test.
- tests/compile_outputastree/ - Fix obj/ output location.
- Add .fx compilation sample.
Comments