Skip to content
Snippets Groups Projects
CMakeLists.txt 3.63 KiB
Newer Older
  • Learn to ignore specific revisions
  •     set(LIB_TYPE "STATIC")
        if (DEPENDENCIES_LINK_TYPE STREQUAL "shared")
            set(LIB_TYPE "SHARED")
        endif ()
    
                exprtk_wrap
    
                PRIVATE
                ${EXPRTK_INCLUDE_DIR}
                ${Boost_INCLUDE_DIRS}
                ${SRC_DIR}
        )
    
        target_link_libraries(
                exprtk_wrap
    
                PRIVATE
                ${Boost_LIBRARIES}
    
        add_library(
                lib4neuro
    
                ${LIB_TYPE}
    
                Neuron/Neuron.cpp
                Neuron/NeuronBinary.cpp
                Neuron/NeuronConstant.cpp
                Neuron/NeuronLinear.cpp
                Neuron/NeuronLogistic.cpp
                Network/NeuralNetwork.cpp
                Network/NeuralNetworkSum.cpp
                NetConnection/ConnectionFunctionGeneral.cpp
                NetConnection/ConnectionFunctionIdentity.cpp
    
                LearningMethods/LearningMethods.cpp
    
                LearningMethods/ParticleSwarm.cpp
                LearningMethods/GradientDescent.cpp
    
                LearningMethods/LevenbergMarquardt.cpp
    
                DataSet/DataSet.cpp
                ErrorFunction/ErrorFunctions.cpp
                Solvers/DESolver.cpp
                CSVReader/CSVReader.cpp
                CrossValidator/CrossValidator.cpp
                NormalizationStrategy/NormalizationStrategy.cpp
    
    Michal Kravcenko's avatar
    Michal Kravcenko committed
                LearningMethods/GradientDescentSingleItem.cpp
                LearningMethods/LearningSequence.cpp
    
                LearningMethods/KalmanFilter.cpp
    
        # FileSystem C++ library - has to be linked manually in GCC-8
    
        set(CXX_FILESYSTEM_LIB "")
        if (CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
            set(CXX_FILESYSTEM_LIB "stdc++fs")
        endif ()
    
    Martin Beseda's avatar
    Martin Beseda committed
        # Detect Threading library
        set(THREADS_PREFER_PTHREAD_FLAG ON)
        find_package(Threads REQUIRED)
    
    
    Martin Beseda's avatar
    Martin Beseda committed
        # GFortran linking
        set(GFORT "")
    
        target_link_libraries(
    
            lib4neuro
    
    Martin Beseda's avatar
    Martin Beseda committed
                exprtk_wrap
                Threads::Threads
                ${Boost_LIBRARIES}
                ${CXX_FILESYSTEM_LIB}
                ${OpenBLAS_LIBRARIES}
                ${BLAS_LIBRARIES}
                ${LAPACK_LIBRARIES}
    
    Martin Beseda's avatar
    Martin Beseda committed
                ${GFORT}
    
            lib4neuro
    
            PUBLIC
            ${ROOT_DIR}/include
    
            PRIVATE
            ${EXPRTK_INCLUDE_DIR}
            ${SRC_DIR}
            ${Boost_INCLUDE_DIRS}
    
            ${ARMADILLO_INCLUDE_DIR}
    
            lib4neuro
    
            PROPERTIES
            ARCHIVE_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/lib"
            LIBRARY_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/lib"
            RUNTIME_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/bin"
    
        set(PREFIX "")
    
        #    if(WIN32)
        #        set(PREFIX "lib")
        #    endif()
        if (WIN32 AND "${DEPENDENCIES_LINK_TYPE}" STREQUAL "shared")
            add_library(${PREFIX}boost_unit_test STATIC boost_test_lib_dummy.cpp)
        elseif ("${DEPENDENCIES_LINK_TYPE}" STREQUAL "static")
            add_library(${PREFIX}boost_unit_test STATIC boost_test_lib_dummy.cpp)
        elseif ("${DEPENDENCIES_LINK_TYPE}" STREQUAL "shared")
    
    Martin Beseda's avatar
    Martin Beseda committed
            add_library(${PREFIX}boost_unit_test SHARED boost_test_lib_dummy.cpp)
    
    
        target_include_directories(
    
            ${PREFIX}boost_unit_test
    
            PRIVATE
            ${Boost_INCLUDE_DIRS}
    
    Martin Beseda's avatar
    Martin Beseda committed
    if ("${BUILD_TESTS}" STREQUAL "yes")
        add_subdirectory(tests unit-tests)
    endif ()
    
    if ("${BUILD_EXAMPLES}" STREQUAL "yes")
        add_subdirectory(examples examples)
    endif ()