Skip to content
Snippets Groups Projects
CMakeLists.txt 2.24 KiB

if ("${BUILD_TESTS}" STREQUAL "yes")
	add_subdirectory(tests unit-tests)
endif ()

if ("${BUILD_EXAMPLES}" STREQUAL "yes")
	add_subdirectory(examples examples)
endif ()

if ("${BUILD_LIB}" STREQUAL "yes")
    add_library(
        exprtk_wrap

        SHARED

        General/ExprtkWrapper.cpp
        Exception/Exceptions.cpp
    )

    target_include_directories(
        exprtk_wrap

        PRIVATE
        	${EXPRTK_INCLUDE_DIR}
		${Boost_INCLUDE_DIRS}
    )

	target_link_libraries(
		exprtk_wrap

		PRIVATE
			${Boost_LIBRARIES}
	)

	add_library(lib4neuro SHARED
		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/ParticleSwarm.cpp
        LearningMethods/GradientDescent.cpp
		DataSet/DataSet.cpp
		ErrorFunction/ErrorFunctions.cpp
		Solvers/DESolver.cpp
		Exception/Exceptions.cpp
	)

    target_link_libraries(
        lib4neuro

        PRIVATE
            exprtk_wrap
            ${Boost_LIBRARIES}
    )

	target_include_directories(
        lib4neuro

        PUBLIC
            ${ROOT_DIR}/include

        PRIVATE
            ${EXPRTK_INCLUDE_DIR}
            ${SRC_DIR}
            ${Boost_INCLUDE_DIRS}
    )

    set_target_properties(
        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")
        add_library(${PREFIX}boost_unit_test SHARED boost_test_lib_dummy.cpp)
	endif()

    target_include_directories(
        ${PREFIX}boost_unit_test

        PRIVATE
            ${Boost_INCLUDE_DIRS}
    )

endif ()