Releases: madmongo1/sanity
Release Version 1.0
Sanity Version 1.0
Bringing some sanity to cross-platform builds with CMake
Welcome to Sanity! Sanity makes CMake easy to use, by generating dependencies to commonly used libraries, automatically fetching and building the source from the vendor and then including them into your CMake C++ Project.
Current Supported Libraries
amqpcpp
AMQP-CPP is a C++ library for communicating with a RabbitMQ message broker. The library can be used to parse incoming data from a RabbitMQ server, and to generate frames that can be sent to a RabbitMQ server.
Unlike all other AMQP libraries, this AMQP-CPP library does not make a connection to RabbitMQ by itself, nor does it create sockets and/or performs IO operations. As a user of this library, you first need to set up a socket connection to RabbitMQ by yourself, and implement a certain interface that you pass to the AMQP-CPP library and that the library will use for IO operations.
asio
asio is a cross-platform C++ library for network and low-level I/O programming that provides developers with a consistent asynchronous model using a modern C++ approach.
boost
Boost provides free portable peer-reviewed C++ libraries. The emphasis is on portable libraries which work well with the C++ Standard Library.
curl
curl is used in command lines or scripts to transfer data. It is also used in cars, television sets, routers, printers, audio equipment, mobile phones, tablets, settop boxes, media players and is the internet transfer backbone for thousands of software applications affecting billions of humans daily.
devil
Developer's Image Library (DevIL) is a programmer's library to develop applications with very powerful image loading capabilities, yet is easy for a developer to learn and use.
gtest
Google C++ Testing Framework helps you write better C++ tests. No matter whether you work on Linux, Windows, or a Mac, if you write C++ code, Google Test can help you.
icu
ICU is a mature, widely used set of C/C++ and Java libraries providing Unicode and Globalization support for software applications. ICU is widely portable and gives applications the same results on all platforms and between C/C++ and Java software.
jpeg
This package contains C software to implement JPEG image encoding, decoding,
and transcoding. JPEG is a standardized compression method for full-color
and grayscale images.
lcms
Little CMS intends to be an OPEN SOURCE small-footprint color management engine, with special focus on accuracy and performance. It uses the International Color Consortium standard (ICC), which is the modern standard when regarding to color management.
ldns
The goal of ldns is to simplify DNS programming, it supports recent RFCs like the DNSSEC documents, and allows developers to easily create software conforming to current RFCs, and experimental software for current Internet Drafts. A secondary benefit of using ldns is speed; ldns is written in C it should be a lot faster than Perl.
libmng
MNG, pronounced "ming", is the animation-brother of PNG, also known as Portable Network Graphics and pronounced "ping"
mysql
MySQL is an open-source relational database management system (RDBMS).
mysqlcppcon
MySQL Connector/C++ is one of the latest connectors for MySQL, developed by Sun Microsystems. The MySQL connector for C++ provides an object-oriented application programming interface (API) and a database driver for connecting C++ applications to the MySQL Server.
openssl
OpenSSL is an open source project that provides a robust, commercial-grade, and full-featured toolkit for the Transport Layer Security (TLS) and Secure Sockets Layer (SSL) protocols. It is also a general-purpose cryptography library.
protobuf
Protocol Buffers (a.k.a., protobuf) are Google's language-neutral, platform-neutral, extensible mechanism for serializing structured data.
sdl
Simple DirectMedia Layer is a cross-platform development library designed to provide low level access to audio, keyboard, mouse, joystick, and graphics hardware via OpenGL and Direct3D. It is used by video playback software, emulators, and popular games including Valve's award winning catalog and many Humble Bundle games.
tiff
A primary goal of TIFF is to provide a rich environment within which applications
can exchange image data. This richness is required to take advantage of the
varying capabilities of scanners and other imaging devices.
Usage
- Pull the latest version of sanity into your source tree, if using git, simply add it as a submodule.
- Include sanity into your CMakeLists.txt file
include (sanity/cmake/sanity.cmake)
Then to add gtest and boost for example, simply add the following and you're done.
sanity_require(LIBRARY boost VERSION any)
sanity_require(LIBRARY gtest VERSION any)
Sanity will grab the source, build the libraries, and include it into your projects.