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 [[https://srv7.svn-repos.de/dev34/main/jaws/trunk | anonymous SVN]], and possibly merge new additions into your setup as required.
Checking out the latest version to a directory named “jaws”:
svn co https://srv7.svn-repos.de/dev34/main/jaws/trunk jaws
CMakeLists.txtcontaining only simple
set()configurations, and a
JAWS.cmakemodule hiding the “CMake magic” from casual view.
FindICU.cmakefor locating and using the International Components for Unicode.
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.
loggerunit providing basic, extensible logging facilities for C++, including the ability to switch logging on or off for given units or classes at runtime.
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.
These are features that will be added to JAWS in the future:
Feedback, patches, bug reports etc. please to email@example.com.