diff --git a/CMakeLists.txt b/CMakeLists.txt index 30e120d..4b2270b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -16,7 +16,6 @@ set(CMAKE_EXPORT_COMPILE_COMMANDS ON) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${TORCH_CXX_FLAGS}") SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pthread") set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -O3") -set(CMAKE_CXX_FLAGS_DEBUG " ${CMAKE_CXX_FLAGS} -fprofile-arcs -ftest-coverage -O0 -g") # Options # ------- @@ -60,31 +59,17 @@ endif() # External libraries - dependencies of Platform # --------------------------------------------- - -# find_library(XLSXWRITER_LIB NAMES libxlsxwriter.dylib libxlsxwriter.so PATHS ${Platform_SOURCE_DIR}/lib/libxlsxwriter/lib) -# find_path(XLSXWRITER_INCLUDE_DIR xlsxwriter.h) -# find_library(XLSXWRITER_LIBRARY xlsxwriter) -# message("XLSXWRITER_INCLUDE_DIR=${XLSXWRITER_INCLUDE_DIR}") -# message("XLSXWRITER_LIBRARY=${XLSXWRITER_LIBRARY}") -# Conan dependencies find_package(nlohmann_json CONFIG REQUIRED) -find_package(Catch2 CONFIG REQUIRED) find_package(argparse CONFIG REQUIRED) find_package(Torch CONFIG REQUIRED) find_package(arff-files CONFIG REQUIRED) find_package(fimdlp CONFIG REQUIRED) find_package(folding CONFIG REQUIRED) find_package(bayesnet CONFIG REQUIRED) +find_package(pyclassifiers CONFIG REQUIRED) find_package(libxlsxwriter CONFIG REQUIRED) - find_package(Boost REQUIRED COMPONENTS python) -# PyClassifiers -find_library(PyClassifiers NAMES libPyClassifiers PyClassifiers libPyClassifiers.a PATHS ${Platform_SOURCE_DIR}/../lib/lib REQUIRED) -find_path(PyClassifiers_INCLUDE_DIRS REQUIRED NAMES pyclassifiers PATHS ${Platform_SOURCE_DIR}/../lib/include) -message(STATUS "PyClassifiers=${PyClassifiers}") -message(STATUS "PyClassifiers_INCLUDE_DIRS=${PyClassifiers_INCLUDE_DIRS}") - # Subdirectories # -------------- ## Configure test data path @@ -98,15 +83,16 @@ file(GLOB Platform_SOURCES CONFIGURE_DEPENDS ${Platform_SOURCE_DIR}/src/*.cpp) # Testing # ------- if (ENABLE_TESTING) - enable_testing() - set(CODE_COVERAGE ON) MESSAGE("Testing enabled") - # Catch2 is already found above via Conan + set(CMAKE_CXX_FLAGS_DEBUG " ${CMAKE_CXX_FLAGS} -fprofile-arcs -ftest-coverage -O0 -g") + enable_testing() + find_package(Catch2 CONFIG REQUIRED) + set(CODE_COVERAGE ON) include(CTest) add_subdirectory(tests) endif (ENABLE_TESTING) if (CODE_COVERAGE) - include(CodeCoverage) MESSAGE("Code coverage enabled") + include(CodeCoverage) SET(GCC_COVERAGE_LINK_FLAGS " ${GCC_COVERAGE_LINK_FLAGS} -lgcov --coverage") endif (CODE_COVERAGE) diff --git a/conanfile.py b/conanfile.py index 3d77cf3..b770a88 100644 --- a/conanfile.py +++ b/conanfile.py @@ -21,6 +21,7 @@ class PlatformConan(ConanFile): self.requires("fimdlp/2.1.0") self.requires("arff-files/1.2.0") self.requires("bayesnet/1.2.0") + self.requires("pyclassifiers/1.0.3") self.requires("libxlsxwriter/1.2.2") def build_requirements(self): diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index c631371..f3302ce 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -1,10 +1,7 @@ include_directories( - ## Libs ${Python3_INCLUDE_DIRS} ${MPI_CXX_INCLUDE_DIRS} ${CMAKE_BINARY_DIR}/configured_files/include - ${PyClassifiers_INCLUDE_DIRS} - ## Platform ${Platform_SOURCE_DIR}/src ) @@ -21,7 +18,7 @@ add_executable( experimental_clfs/DecisionTree.cpp experimental_clfs/AdaBoost.cpp ) -target_link_libraries(b_best Boost::boost "${PyClassifiers}" bayesnet::bayesnet argparse::argparse fimdlp::fimdlp ${Python3_LIBRARIES} torch::torch Boost::python Boost::numpy libxlsxwriter::libxlsxwriter) +target_link_libraries(b_best Boost::boost pyclassifiers::pyclassifiers bayesnet::bayesnet argparse::argparse fimdlp::fimdlp ${Python3_LIBRARIES} torch::torch Boost::python Boost::numpy libxlsxwriter::libxlsxwriter) # b_grid set(grid_sources GridSearch.cpp GridData.cpp GridExperiment.cpp GridBase.cpp ) @@ -36,7 +33,7 @@ add_executable(b_grid commands/b_grid.cpp ${grid_sources} experimental_clfs/DecisionTree.cpp experimental_clfs/AdaBoost.cpp ) -target_link_libraries(b_grid ${MPI_CXX_LIBRARIES} "${PyClassifiers}" bayesnet::bayesnet argparse::argparse fimdlp::fimdlp ${Python3_LIBRARIES} torch::torch Boost::python Boost::numpy) +target_link_libraries(b_grid ${MPI_CXX_LIBRARIES} pyclassifiers::pyclassifiers bayesnet::bayesnet argparse::argparse fimdlp::fimdlp ${Python3_LIBRARIES} torch::torch Boost::python Boost::numpy) # b_list add_executable(b_list commands/b_list.cpp @@ -49,7 +46,7 @@ add_executable(b_list commands/b_list.cpp experimental_clfs/DecisionTree.cpp experimental_clfs/AdaBoost.cpp ) -target_link_libraries(b_list "${PyClassifiers}" bayesnet::bayesnet argparse::argparse fimdlp::fimdlp ${Python3_LIBRARIES} torch::torch Boost::python Boost::numpy libxlsxwriter::libxlsxwriter) +target_link_libraries(b_list pyclassifiers::pyclassifiers bayesnet::bayesnet argparse::argparse fimdlp::fimdlp ${Python3_LIBRARIES} torch::torch Boost::python Boost::numpy libxlsxwriter::libxlsxwriter) # b_main set(main_sources Experiment.cpp Models.cpp HyperParameters.cpp Scores.cpp ArgumentsExperiment.cpp) @@ -64,7 +61,7 @@ add_executable(b_main commands/b_main.cpp ${main_sources} experimental_clfs/DecisionTree.cpp experimental_clfs/AdaBoost.cpp ) -target_link_libraries(b_main PRIVATE nlohmann_json::nlohmann_json "${PyClassifiers}" bayesnet::bayesnet argparse::argparse fimdlp::fimdlp ${Python3_LIBRARIES} torch::torch Boost::python Boost::numpy) +target_link_libraries(b_main PRIVATE nlohmann_json::nlohmann_json pyclassifiers::pyclassifiers bayesnet::bayesnet argparse::argparse fimdlp::fimdlp ${Python3_LIBRARIES} torch::torch Boost::python Boost::numpy) # b_manage set(manage_sources ManageScreen.cpp OptionsMenu.cpp ResultsManager.cpp) diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index 18317bb..021086a 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -2,14 +2,7 @@ if(ENABLE_TESTING) set(TEST_PLATFORM "unit_tests_platform") include_directories( ${Platform_SOURCE_DIR}/src - ${Platform_SOURCE_DIR}/lib/argparse/include - ${Platform_SOURCE_DIR}/lib/mdlp/src - ${Platform_SOURCE_DIR}/lib/Files - ${Platform_SOURCE_DIR}/lib/json/include - ${Platform_SOURCE_DIR}/lib/folding ${CMAKE_BINARY_DIR}/configured_files/include - ${PyClassifiers_INCLUDE_DIRS} - ${Bayesnet_INCLUDE_DIRS} ) set(TEST_SOURCES_PLATFORM TestUtils.cpp TestPlatform.cpp TestResult.cpp TestScores.cpp TestDecisionTree.cpp TestAdaBoost.cpp @@ -19,6 +12,7 @@ if(ENABLE_TESTING) ${Platform_SOURCE_DIR}/src/experimental_clfs/AdaBoost.cpp ) add_executable(${TEST_PLATFORM} ${TEST_SOURCES_PLATFORM}) - target_link_libraries(${TEST_PLATFORM} PUBLIC "${TORCH_LIBRARIES}" fimdlp Catch2::Catch2WithMain bayesnet) + target_link_libraries(${TEST_PLATFORM} PUBLIC + torch::torch fimdlp:fimdlp Catch2::Catch2WithMain bayesnet::bayesnet pyclassifiers::pyclassifiers) add_test(NAME ${TEST_PLATFORM} COMMAND ${TEST_PLATFORM}) endif(ENABLE_TESTING)