Important Note: See Roadmap.
Have you ever come to realize that you're gonna need a bigger boat?
When inspiration strikes, or a deadline looms, build environments are usually not at the top of your priority list. But anyone who ever worked with a well fleshed-out environment will tell you how comfortable and enabling that is.
JAWS is a suggestion, a configuration base that you might fork as starting point for a software project of yours, then adapt to your own needs. While primarily aimed at C++, it also supports C or Java sources, and should be easily adaptable to many other programming languages.
It is based on the CMake build system, and includes preconfigured setups for many popular and useful tools and libraries, like Boost, Valgrind, ICU, Doxygen, Javadoc, AStyle, and LaTeX, as well as a couple of little tools and snippets added by the author of JAWS.
All code is provided under Creative Commons CC0 (Public Domain Dedication) unless otherwise stated in the source. See COPYING.txt for details.
As you are fully expected to modify JAWS to your specific requirements, JAWS itself is not “versioned”. Instead, you are urged to use the latest source snapshot, which is available via anonymous SVN or from GitHub, and possibly merge new additions into your setup as required.
Note: The SVN repository was migrated 2020-12-28. You will need to
svn relocate your working copy.
CMakeLists.txtcontaining only simple
set()configurations, and a
JAWS.cmakemodule hiding the “CMake magic” from casual view.
ctest -S CTestScript.cmake,Debug).
ctest -S CTestScript.cmake,Continuouswhich will only run if the repository has received source updates).
javadocbuild targets to generate source documentation.
checktool to assert portable character set usage in filenames and sources, and maximum filename length.
gui_examplethat gets compiled when you configure
JAWS_latex_documents_NOINSTALLtarget support for documents that are not to be installed. Fixed handling of missing LaTeX environment. Removed support for pre-1.47.1 Boost. Added some first lines for
GenerateExportHeader– Windows DLL support coming later. Added support for listing header files in MSVC.
FindICU.cmakeinto a generic module so anybody can write Find Modules as simple as this one.
JAWSInit.cmaketo make the “MyProject” → <projectname> transition easier.
CTestScript.cmaketo make JAWS work on git repositories.
WARNING: As of now, git will wipe any local changes not yet pushed. While borderline acceptable for Nightly and Continuous builds, this is a weapon of mass source destruction for Experimental builds. I will fix this, soon hopefully, but for now tread carefully.
CMake has evolved, and some of the approaches in JAWS are now considered obsolete. And unfortunately, due to a work transfer I no longer use JAWS-based builds 9-to-5, so I have little opportunity to actually experiment with and test the setup. It is provided as-is, with no promises on further updates.