diff --git a/resources/BUILD.txt b/resources/BUILD.txt index dfb93b7d5..4057b110a 100644 --- a/resources/BUILD.txt +++ b/resources/BUILD.txt @@ -1,8 +1,18 @@ CMake >= 2.8.11 CMake is required as it is used to generate the Makefiles or Projects/Solutions required to build StoRM. + Compiler: + A C++11 compliant compiler is required to build StoRM. It is tested and known to work with the following compilers: + - GCC 4.9.1 + - Clang 3.5.0 + - Microsoft Visual Studio 2013 + + Other versions or compilers might work, but are not tested. + + The following Compilers are known NOT to work: Microsoft Visual Studio versions older than 2013, GCC versions 4.7 and older. + Prerequisites: - Boost >= 1.54 + Boost >= 1.56 Build using the Boost Build system, for x64 use "bjam address-model=64" or "bjam.exe address-model=64 --build-type=complete" You may use --toolset to specify the compiler, for ex. msvc-10.0, intel11.1, etc Doxygen @@ -26,10 +36,25 @@ Prerequisites: to remove components only available under UNIX. Optional: - Gurobi >= 5.5.0 + Gurobi >= 5.6.2 Specify the path to the gurobi root dir using -DGUROBI_ROOT=/your/path/to/gurobi Z3 >= 4.3.2 Specify the path to the z3 root dir using -DZ3_ROOT=/your/path/to/z3 +MathSAT >= 5.2.11 + Specify the path to the mathsat root dir using -DMSAT_ROOT=/your/path/to/mathsat +MPIR >= 2.7.0 + MSVC only and only if linked with MathSAT + Specify the path to the gmp-include directory -DGMP_INCLUDE_DIR=/your/path/to/mathsat + Specify the path to the mpir.lib directory -DGMP_MPIR_LIBRARY=/your/path/to/mpir.lib + Specify the path to the mpirxx.lib directory -DGMP_MPIRXX_LIBRARY=/your/path/to/mpirxx.lib +GMP + clang and gcc only and inly if linked with MathSAT +CUDA Toolkit >= 6.5 + Specify the path to the cuda toolkit root dir using -DCUDA_ROOT=/your/path/to/cuda +CUSP >= 0.4.0 + Only of built with CUDA Toolkit + CUSP is included in the StoRM Sources as a git-submodule unter /resources/3rdparty/cusplibrary + It is recommended to make an out-of-source build, meaning that the folder in which CMake generates its Cache, Makefiles and output files should not be the Project Root nor its Source Directory. A typical build layout is to create a folder "build" in the project root alongside the CMakeLists.txt file, change into this folder and execute "cmake .." as this will leave all source files untouched diff --git a/test/functional/storm-functional-tests.cpp b/test/functional/storm-functional-tests.cpp index 648fe8df0..30709a39d 100644 --- a/test/functional/storm-functional-tests.cpp +++ b/test/functional/storm-functional-tests.cpp @@ -1,4 +1,6 @@ #include +#include +#include #include "gtest/gtest.h" #include "log4cplus/logger.h" @@ -38,5 +40,45 @@ int main(int argc, char* argv[]) { int result = RUN_ALL_TESTS(); logger.closeNestedAppenders(); + + std::list untestedModules; +#ifndef STORM_HAVE_GUROBI + untestedModules.push_back("Gurobi"); +#endif +#ifndef STORM_HAVE_CUDA + untestedModules.push_back("CUDA"); +#endif +#ifndef STORM_HAVE_GLPK + untestedModules.push_back("GLPK"); +#endif +#ifndef STORM_HAVE_Z3 + untestedModules.push_back("Z3"); +#endif +#ifndef STORM_HAVE_MSAT + untestedModules.push_back("MathSAT"); +#endif +#ifndef STORM_HAVE_INTELTBB + untestedModules.push_back("Intel TBB"); +#endif + + if (result == 0) { + if (untestedModules.empty()) { + std::cout << std::endl << "ALL TESTS PASSED!" << std::endl; + } else{ + std::cout << std::endl << "StoRM was built without the following optional dependencies: "; + auto iter = untestedModules.begin(); + while (iter != untestedModules.end()) { + std::cout << *iter; + ++iter; + if (iter != untestedModules.end()) { + std::cout << ", "; + } + } + std::cout << std::endl << "Functionality using that modules could not be tested." << std::endl << std::endl << "TESTS PASSED!" << std::endl; + } + } else{ + std::cout << std::endl << "TESTS FAILED!" << std::endl; + } + return result; }