From 95d5ebbb7d2938ebd8cb8821a707ca01feacb6b1 Mon Sep 17 00:00:00 2001 From: David_Korzeniewski Date: Wed, 25 Feb 2015 15:15:56 +0100 Subject: [PATCH 1/2] Updated build instructions with list of tested compilers and some new dependencies, but it still looks partially outdated. Former-commit-id: 1931f71cf904e8e5bc1c4286a46105162c9056f3 --- resources/BUILD.txt | 29 +++++++++++++++++++++++++++-- 1 file changed, 27 insertions(+), 2 deletions(-) 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 From 7d2d1cac55d3e152395a676801cbba8451b072b1 Mon Sep 17 00:00:00 2001 From: David_Korzeniewski Date: Wed, 25 Feb 2015 15:18:40 +0100 Subject: [PATCH 2/2] Functional Testing Suite now prints a note if not all optional dependencies were included in the build. Former-commit-id: 36974ebb66bcb2f224c93eab1f2d2b5448e43543 --- test/functional/storm-functional-tests.cpp | 42 ++++++++++++++++++++++ 1 file changed, 42 insertions(+) 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; }