From ae45a486a3fcd96b6411a5fc9fb40ecf4490931d Mon Sep 17 00:00:00 2001 From: Martin Beseda <martin.beseda@vsb.cz> Date: Sun, 3 Feb 2019 01:36:43 +0100 Subject: [PATCH] FIX: Fixed download of outer dependencies by CMake --- CMakeLists.txt | 42 +++++++++++------------------- DownloadBoost.cmake | 7 ++++- clean.sh | 1 + src/ErrorFunction/ErrorFunctions.h | 1 - src/tests/ErrorFunctions_test.cpp | 14 +++++----- src/tests/ParticleSwarm_test.cpp | 14 +++++----- src/tests/Particle_test.cpp | 29 ++++++++++----------- 7 files changed, 50 insertions(+), 58 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 95951e39..52cdc9fc 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -78,13 +78,13 @@ endif() message("Detecting available cores count...") include(ProcessorCount) ProcessorCount(N_CORES) -if(n_cores GREATER 1) +if(N_CORES GREATER 1) math(EXPR N_CORES "${N_CORES}-1") - message("Build will be performed on ${N_CORES} cores.") set(CTEST_BUILD_FLAGS -j${N_CORES}) set(ENV{N_CORES} ${N_CORES}) set(ctest_test_args ${ctest_test_args} PARALLEL_LEVEL ${N_CORES}) endif() +message("Build will be performed on ${N_CORES} cores.") #-------------------------# # Find external libraries # @@ -118,31 +118,19 @@ elseif(NOT Boost_FOUND) message(FATAL_ERROR "Boost was not found! Set variables BOOST_LIBRARYDIR and BOOST_INCLUDEDIR manually or set ALLOW_DEPENDENCIES_DOWNLOAD to ON to allow automatic download and compilation of Boost.") endif() -#find_package(Exprtk) -# -#if(NOT EXPRTK_FOUND AND ALLOW_DEPENDENCIES_DOWNLOAD) -# message("Exprt will be downloaded and compiled locally in 'external_dependencies' folder.") -# include(DownloadExprtk) -#endif() -# -#find_package(Turtle) -# -#if(NOT TURTLE_FOUND AND ALLOW_DEPENDENCIES_DOWNLOAD) -# message("Turtle will be downloaded and compiled locally in 'external_dependencies folder.") -# include(DownloadTurtle) -#endif() -# -# -#set(Boost_USE_MULTITHREADED ON) -#set(Boost_DEBUG OFF) -# -# -# -#find_package(exprtk) -#message("EXPRTK_INCLUDE_DIRS: ${EXPRTK_INCLUDE_DIRS}") -# -#find_package(Turtle) -#message("TURTLE_INCLUDE_DIR: ${TURTLE_INCLUDE_DIR}") +find_package(Exprtk) + +if(NOT EXPRTK_FOUND AND ALLOW_DEPENDENCIES_DOWNLOAD) + message("Exprt will be downloaded and compiled locally in 'external_dependencies' folder.") + include(DownloadExprtk) +endif() + +find_package(Turtle) + +if(NOT TURTLE_FOUND AND ALLOW_DEPENDENCIES_DOWNLOAD) + message("Turtle will be downloaded and compiled locally in 'external_dependencies folder.") + include(DownloadTurtle) +endif() #---------------# # Set variables # diff --git a/DownloadBoost.cmake b/DownloadBoost.cmake index fd4704d8..832d0273 100644 --- a/DownloadBoost.cmake +++ b/DownloadBoost.cmake @@ -20,7 +20,12 @@ FetchContent_Declare( libs/predef libs/move libs/io libs/iterator libs/detail libs/spirit libs/optional libs/function libs/type_index libs/bind - libs/container_hash libs/array + libs/container_hash libs/array libs/test + libs/timer libs/exception libs/algorithm + libs/range libs/numeric libs/format + libs/lexical_cast libs/concept_check + libs/container libs/math libs/function_types + libs/typeof ) set(FETCHCONTENT_QUIET FALSE) diff --git a/clean.sh b/clean.sh index 008a291a..3a0e8d6f 100755 --- a/clean.sh +++ b/clean.sh @@ -10,3 +10,4 @@ rm -f CMakeCache.txt rm -f cmake_install.cmake src/cmake_install.cmake rm -rf CMakeFiles src/CMakeFiles src/examples/CMakeFiles src/tests/CMakeFiles rm -rf external_dependencies/* +rm -rf _deps diff --git a/src/ErrorFunction/ErrorFunctions.h b/src/ErrorFunction/ErrorFunctions.h index b6143064..3699ca5d 100644 --- a/src/ErrorFunction/ErrorFunctions.h +++ b/src/ErrorFunction/ErrorFunctions.h @@ -140,7 +140,6 @@ namespace lib4neuro { bool denormalize_data = true, bool verbose = false) = 0; - protected: /** diff --git a/src/tests/ErrorFunctions_test.cpp b/src/tests/ErrorFunctions_test.cpp index d0849efa..ef3210b7 100644 --- a/src/tests/ErrorFunctions_test.cpp +++ b/src/tests/ErrorFunctions_test.cpp @@ -50,7 +50,7 @@ MOCK_BASE_CLASS(mock_network, lib4neuro::NeuralNetwork) MOCK_BASE_CLASS(mock_error_fun, ErrorFunction) { - MOCK_METHOD(eval, 1) + MOCK_METHOD(eval, 3) MOCK_METHOD(get_dimension, 0) MOCK_METHOD(calculate_error_gradient, 4) MOCK_METHOD(get_parameters, 0) @@ -58,12 +58,12 @@ MOCK_BASE_CLASS(mock_error_fun, ErrorFunction) MOCK_METHOD(get_network_instance, 0) MOCK_METHOD(divide_data_train_test, 1) MOCK_METHOD(return_full_data_set_for_training, 0) - MOCK_METHOD(eval_on_test_data, 1, double(std::vector<double>*), id1) - MOCK_METHOD(eval_on_test_data, 2, double(std::string, std::vector<double>*), id2) - MOCK_METHOD(eval_on_test_data, 2, double(std::ofstream*, std::vector<double>*), id3) - MOCK_METHOD(eval_on_data_set, 2, double(DataSet*, std::vector<double>*), id4) - MOCK_METHOD(eval_on_data_set, 3, double(DataSet*, std::string, std::vector<double>*), id5) - MOCK_METHOD(eval_on_data_set, 3, double(DataSet*, std::ofstream*, std::vector<double>*), id6) + MOCK_METHOD(eval_on_test_data, 2, double(std::vector<double>*, bool), id1) + MOCK_METHOD(eval_on_test_data, 3, double(std::string, std::vector<double>*, bool), id2) + MOCK_METHOD(eval_on_test_data, 3, double(std::ofstream*, std::vector<double>*, bool), id3) + MOCK_METHOD(eval_on_data_set, 3, double(DataSet*, std::vector<double>*, bool), id4) + MOCK_METHOD(eval_on_data_set, 4, double(DataSet*, std::string, std::vector<double>*, bool), id5) + MOCK_METHOD(eval_on_data_set, 5, double(DataSet*, std::ofstream*, std::vector<double>*, bool, bool), id6) }; MOCK_BASE_CLASS(mock_dataSet, lib4neuro::DataSet) diff --git a/src/tests/ParticleSwarm_test.cpp b/src/tests/ParticleSwarm_test.cpp index 18116cf8..134d2d6d 100644 --- a/src/tests/ParticleSwarm_test.cpp +++ b/src/tests/ParticleSwarm_test.cpp @@ -31,7 +31,7 @@ using namespace lib4neuro; MOCK_BASE_CLASS(mock_Error, ErrorFunction) { - MOCK_METHOD(eval, 1) + MOCK_METHOD(eval, 3) MOCK_METHOD(get_dimension, 0) MOCK_METHOD(calculate_error_gradient, 4) MOCK_METHOD(get_parameters, 0) @@ -39,12 +39,12 @@ MOCK_BASE_CLASS(mock_Error, ErrorFunction) MOCK_METHOD(get_network_instance, 0) MOCK_METHOD(divide_data_train_test, 1) MOCK_METHOD(return_full_data_set_for_training, 0) - MOCK_METHOD(eval_on_test_data, 1, double(std::vector<double>*), id1) - MOCK_METHOD(eval_on_test_data, 2, double(std::string, std::vector<double>*), id2) - MOCK_METHOD(eval_on_test_data, 2, double(std::ofstream*, std::vector<double>*), id3) - MOCK_METHOD(eval_on_data_set, 2, double(DataSet*, std::vector<double>*), id4) - MOCK_METHOD(eval_on_data_set, 3, double(DataSet*, std::string, std::vector<double>*), id5) - MOCK_METHOD(eval_on_data_set, 3, double(DataSet*, std::ofstream*, std::vector<double>*), id6) + MOCK_METHOD(eval_on_test_data, 2, double(std::vector<double>*, bool), id1) + MOCK_METHOD(eval_on_test_data, 3, double(std::string, std::vector<double>*, bool), id2) + MOCK_METHOD(eval_on_test_data, 3, double(std::ofstream*, std::vector<double>*, bool), id3) + MOCK_METHOD(eval_on_data_set, 3, double(DataSet*, std::vector<double>*, bool), id4) + MOCK_METHOD(eval_on_data_set, 4, double(DataSet*, std::string, std::vector<double>*, bool), id5) + MOCK_METHOD(eval_on_data_set, 5, double(DataSet*, std::ofstream*, std::vector<double>*, bool, bool), id6) }; /** diff --git a/src/tests/Particle_test.cpp b/src/tests/Particle_test.cpp index 0405bec0..f7c85a54 100644 --- a/src/tests/Particle_test.cpp +++ b/src/tests/Particle_test.cpp @@ -30,22 +30,21 @@ using namespace lib4neuro; MOCK_BASE_CLASS(mock_Error, ErrorFunction) { - MOCK_METHOD(eval, 1) - MOCK_METHOD(get_dimension, 0) - MOCK_METHOD(calculate_error_gradient, 4) - MOCK_METHOD(get_parameters, 0) - MOCK_METHOD(get_dataset, 0) - MOCK_METHOD(get_network_instance, 0) - MOCK_METHOD(divide_data_train_test, 1) - MOCK_METHOD(return_full_data_set_for_training, 0) - MOCK_METHOD(eval_on_test_data, 1, double(std::vector<double>*), id1) - MOCK_METHOD(eval_on_test_data, 2, double(std::string, std::vector<double>*), id2) - MOCK_METHOD(eval_on_test_data, 2, double(std::ofstream*, std::vector<double>*), id3) - MOCK_METHOD(eval_on_data_set, 2, double(DataSet*, std::vector<double>*), id4) - MOCK_METHOD(eval_on_data_set, 3, double(DataSet*, std::string, std::vector<double>*), id5) - MOCK_METHOD(eval_on_data_set, 3, double(DataSet*, std::ofstream*, std::vector<double>*), id6) + MOCK_METHOD(eval, 3) + MOCK_METHOD(get_dimension, 0) + MOCK_METHOD(calculate_error_gradient, 4) + MOCK_METHOD(get_parameters, 0) + MOCK_METHOD(get_dataset, 0) + MOCK_METHOD(get_network_instance, 0) + MOCK_METHOD(divide_data_train_test, 1) + MOCK_METHOD(return_full_data_set_for_training, 0) + MOCK_METHOD(eval_on_test_data, 2, double(std::vector<double>*, bool), id1) + MOCK_METHOD(eval_on_test_data, 3, double(std::string, std::vector<double>*, bool), id2) + MOCK_METHOD(eval_on_test_data, 3, double(std::ofstream*, std::vector<double>*, bool), id3) + MOCK_METHOD(eval_on_data_set, 3, double(DataSet*, std::vector<double>*, bool), id4) + MOCK_METHOD(eval_on_data_set, 4, double(DataSet*, std::string, std::vector<double>*, bool), id5) + MOCK_METHOD(eval_on_data_set, 5, double(DataSet*, std::ofstream*, std::vector<double>*, bool, bool), id6) }; - /** * Boost testing suite for testing ParticleSwarm.h * TODO -- GitLab