First commit
This commit is contained in:
63
CMakeLists.txt
Normal file
63
CMakeLists.txt
Normal file
@@ -0,0 +1,63 @@
|
||||
cmake_minimum_required(VERSION 3.30.0)
|
||||
project(SVMClassifier VERSION 0.1.0 LANGUAGES C CXX)
|
||||
|
||||
project(SVMClassifier
|
||||
VERSION 1.0.0
|
||||
DESCRIPTION "SVM Classifer using libsvm and liblinear"
|
||||
HOMEPAGE_URL "https://gitea.rmontanana.es/rmontanana/SVMClassifier"
|
||||
LANGUAGES CXX
|
||||
)
|
||||
|
||||
# Global CMake variables
|
||||
# ----------------------
|
||||
set(CMAKE_CXX_STANDARD 20)
|
||||
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
||||
set(CMAKE_CXX_EXTENSIONS OFF)
|
||||
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} -Ofast")
|
||||
set(CMAKE_CXX_FLAGS_DEBUG " ${CMAKE_CXX_FLAGS} -fprofile-arcs -ftest-coverage -O0 -g")
|
||||
|
||||
# Testing is disabled by default
|
||||
option(BUILD_TESTING "Build tests" OFF)
|
||||
|
||||
if (CMAKE_BUILD_TYPE STREQUAL "Debug")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra -Wpedantic -O0")
|
||||
else()
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra -Wpedantic -O2")
|
||||
endif()
|
||||
|
||||
find_package(Torch CONFIG REQUIRED)
|
||||
find_package(nlohmann_json CONFIG REQUIRED)
|
||||
|
||||
# if testing is enabled then load catch2
|
||||
if (BUILD_TESTING)
|
||||
enable_testing()
|
||||
include(CTest)
|
||||
find_package(Catch2 REQUIRED)
|
||||
target_link_libraries(SVMClassifier PRIVATE Catch2::Catch2)
|
||||
add_executable(SVMClassifierTests tests.cpp)
|
||||
target_link_libraries(SVMClassifierTests PRIVATE Catch2::Catch2)
|
||||
add_test(NAME SVMClassifierTests COMMAND SVMClassifierTests)
|
||||
endif()
|
||||
|
||||
add_executable(SVMClassifier
|
||||
src/SVMDataConverter.cpp
|
||||
src/SVMClassifier.cpp
|
||||
libsvm-3.36/svm.cpp
|
||||
main.cpp)
|
||||
|
||||
target_include_directories(SVMClassifier PRIVATE
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/src
|
||||
${TORCH_INCLUDE_DIRS}
|
||||
liblinear-2.49/
|
||||
libsvm-3.36/
|
||||
)
|
||||
find_library(LIBLINEAR_LIBRARY NAMES liblinear.so.6 PATHS /home/rmontanana/Code/SVMClassifier/liblinear-2.49)
|
||||
link_directories(/home/rmontanana/Code/SVMClassifier/liblinear-2.49)
|
||||
target_link_libraries(SVMClassifier PRIVATE
|
||||
${TORCH_LIBRARIES}
|
||||
${LIBLINEAR_LIBRARY}
|
||||
nlohmann_json::nlohmann_json
|
||||
)
|
Reference in New Issue
Block a user