JamPlus 0.2 Released

JamPlus 0.2 has been released
Added by Joshua Jensen about 9 years ago

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

Added by Aaronc Gray 13 days ago

I truly cherish perusing this sort of articles. I don't have a clue, however I adore it. The straightforwardness of your writing encourages me to peruse increasingly and to attempt it by writing myself. It was crystal clear, continue sharing. Go for this cheap essay writing service to having a wonderful assistant in writing and even you can get the guidelines too.