Mirror of https://github.com/leanprover/lean2 in case it ever disappears
Find a file
Soonho Kong 974b99b424 Update CTestCustom.cmake.in
Exclude "threads" test from valgrind targets
[skip ci]
2013-09-04 16:41:04 -07:00
examples/lean Add another example 2013-09-04 05:40:28 -07:00
script Update .travis.yml and .travis.osx.yml 2013-08-20 02:01:46 -07:00
src Update CTestCustom.cmake.in 2013-09-04 16:41:04 -07:00
tests/lean Improve elaborator error messages 2013-09-04 16:36:58 -07:00
.gitignore Add more tests 2013-08-31 18:46:18 -07:00
.travis.osx.yml Update .travis.osx.yml 2013-09-04 16:17:36 -07:00
.travis.windows.yml Supress gcc warnings on OS X 2013-09-04 04:46:38 -07:00
.travis.yml Put LEANREPO variable in .travis.yml to check the blessed repository inside of travis-ci. 2013-09-04 16:02:15 -07:00
LICENSE Add LICENSE file 2013-07-15 18:55:48 -07:00
README.md Update README.md 2013-09-04 14:21:08 -07:00

Build Status Ubuntu 12.04 LTS 64bit, g++-4.8 | clang++-3.3

Build Status Mac OS X 10.8.2, g++-4.9

Build Status Windows, x86_64-w64-mingw32-g++-4.8.1

[Result of Build/UnitTest/Coverage/Dynamic Analysis]

Requirements

Install Packages on Ubuntu 12.04 LTS

Instructions for installing gperftools on Ubuntu

sudo add-apt-repository ppa:agent-8131/ppa
sudo apt-get update
sudo apt-get dist-upgrade
sudo apt-get install libgoogle-perftools-dev

Instructions for installing gcc-4.8 (C++11 compatible) on Ubuntu

sudo add-apt-repository ppa:ubuntu-toolchain-r/test -y
sudo update-alternatives --remove-all gcc
sudo update-alternatives --remove-all g++
sudo apt-get update
sudo apt-get install g++-4.8 -y
sudo apt-get upgrade -y && sudo apt-get dist-upgrade -y

Instructions for installing clang-3.3 (C++11 compatible) on Ubuntu

sudo add-apt-repository ppa:h-rayflood/llvm
sudo apt-get update
sudo apt-get dist-upgrade
sudo apt-get install clang-3.3 clang-3.3-doc

Note that you still need to have g++-4.8's C++ runtime library to support some C++11 features that we are using.

You can specify the C++ compiler to use by using -DCMAKE_CXX_COMPILER option. For example

cmake -DCMAKE_BUILD_TYPE=DEBUG -DCMAKE_CXX_COMPILER=clang++-3.3 ../../src

Install Packages on Fedora 19

Instructions for installing git, cmake, mpfr, gmp, gperftools on Fedora

sudo yum install -y git cmake mpfr-devel gmp-devel gperftools-devel

Instructions for installing gcc-4.8 (C++11 compatible) on Fedora

sudo yum install -y gcc-c++

Instructions for installing clang-3.3 (C++11 compatible) on Fedora

sudo yum install -y clang-devel

Install Packages on OS X 10.8

We assume that you are using homebrew, "The missing package manager for OS X".

Instructions for installing gperftools on OS X 10.8

$ brew install gperftools

Instructions for installing gcc-4.8 (C++11 compatible) on OS X 10.8

$ brew tap homebrew/versions
$ brew install gcc48

Instructions for installing clang-3.3 (C++11 compatible) on OS X 10.8

$ brew install llvm --with-clang --with-asan

Install Packages on Cygwin

Just run cygwin setup.exe (http://cygwin.com/install.html) and make sure that you have installed g++ 4.8.1 (or greater), cmake, gmp and libmpfr. We have tested Lean using Cygwin for 64-bit versions of Windows.

Build Instructions

Using CMake + Make

Instructions for DEBUG build

mkdir -p build/debug
cd build/debug
cmake -DCMAKE_BUILD_TYPE=DEBUG ../../src
make

Instructions for RELEASE build

mkdir -p build/release
cd build/release
cmake -DCMAKE_BUILD_TYPE=RELEASE ../../src
make

Using CMake + Ninja

CMake 2.8.11 supports Ninja build system using -G option. Some people report that using Ninja can reduce the build time, esp when a build is incremental.

Instructions for DEBUG build

mkdir -p build/debug
cd build/debug
cmake -DCMAKE_BUILD_TYPE=DEBUG -G Ninja ../../src
ninja

Instructions for RELEASE build

mkdir -p build/release
cd build/release
cmake -DCMAKE_BUILD_TYPE=RELEASE -G Ninja ../../src
ninja

Instructions for Testing and Measuring Code Coverage

To measure code coverage, compile TESTCOV build using g++:

mkdir -p build/testcov
cd build/testcov
cmake -DCMAKE_BUILD_TYPE=TESTCOV -DCMAKE_CXX_COMPILER=g++-4.8 -G Ninja ../../src
ninja

and run test cases:

ctest

and collect coverage data using lcov and gcov:

lcov -c -b ../../src -d . -o cov.info --no-external --gcov-tool gcov-4.8

and generate HTML output:

genhtml cov.info --output-directory lcov

Note: make sure that the version of gcov matches with the one of g++. Also try to use the latest lcov if you have a problem with the existing one.

Instructions for Building Doxygen Documentation

doxygen src/Doxyfile