# Description: Build configuration for the GeoDMA Classification Module
#
#  Author: Raian Vargas Maretto <raian@dpi.inpe.br>
#          Thales Sehn Korting <tkorting@dpi.inpe.br>
#          Emiliano Ferreira Castejon <castejon@dpi.inpe.br>
#

# Includes
include_directories(${Boost_INCLUDE_DIRS})
include_directories(${terralib_INCLUDE_DIRS})
include_directories(${C50_INCLUDE_DIR})

#Set include directories location
#include_directories(${GEODMA_SRC_DIR}/geodmalib/featureextraction
#                    ${GEODMA_SRC_DIR}/geodmalib/common
#)
include_directories(${GEODMA_SRC_DIR})

if(WIN32)
  add_definitions(-DGDMACLDLL)
endif()

# Source and Header files
file(GLOB GEODMA_CL_SRCS ${GEODMA_SRC_DIR}/geodmalib/classification/*.cpp)
file(GLOB GEODMA_CL_HDRS ${GEODMA_SRC_DIR}/geodmalib/classification/*.hpp)
file(GLOB GEODMA_CL_SRCS_DT ${GEODMA_SRC_DIR}/geodmalib/classification/decision_trees/*.cpp)
file(GLOB GEODMA_CL_HDRS_DT ${GEODMA_SRC_DIR}/geodmalib/classification/decision_trees/*.hpp)

# Creating source groups for IDEs
source_group("Source Files"  FILES ${GEODMA_CL_SRCS})
source_group("Header Files"  FILES ${GEODMA_CL_HDRS})
source_group("Source Files\\decision_trees"  FILES ${GEODMA_CL_SRCS_DT})
source_group("Header Files\\decision_trees"  FILES ${GEODMA_CL_HDRS_DT})

# Setting Dependencies
set(GEODMA_CL_LIB_DEPENDENCIES ${CMAKE_THREAD_LIBS_INIT}
                               geodma_mod_common
                               geodma_mod_featextraction
                               geodma_mod_datamanager
                               terralib_mod_classification
                               terralib_mod_common
                               ${C50_LIBRARIES}
)

add_library(geodma_mod_classification SHARED ${GEODMA_CL_SRCS}
                                             ${GEODMA_CL_HDRS}
                                             ${GEODMA_CL_SRCS_DT}
                                             ${GEODMA_CL_HDRS_DT}
)

target_link_libraries(geodma_mod_classification ${GEODMA_CL_LIB_DEPENDENCIES})

# set_property(TARGET geodma_mod_classification PROPERTY DEBUG_POSTFIX _d)

if(GEODMA_SOURCE_VERIFY_ENABLED)
    add_style_check_target(geodma_mod_classification
        "${GEODMA_CL_SRCS};${GEODMA_CL_HDRS};${GEODMA_CL_SRCS_DT};${GEODMA_CL_HDRS_DT}")
endif()

set_target_properties(geodma_mod_classification
                      PROPERTIES VERSION ${GEODMA_VERSION_MAJOR}.${GEODMA_VERSION_MINOR}
                                 SOVERSION ${GEODMA_VERSION_MAJOR}.${GEODMA_VERSION_MINOR})
                                 #INSTALL_NAME_DIR "@executable_path/../lib")

if(NOT GEODMA_TRACK_3RDPARTY_DEPENDENCIES_ENABLED)

    install(TARGETS geodma_mod_classification
            EXPORT geodma-targets
            RUNTIME DESTINATION ${GEODMA_DESTINATION_RUNTIME} COMPONENT runtime
            LIBRARY DESTINATION ${GEODMA_DESTINATION_LIBRARY} COMPONENT runtime
            ARCHIVE DESTINATION ${GEODMA_DESTINATION_ARCHIVE} COMPONENT runtime)
endif()

install(FILES ${GEODMA_CL_HDRS}
        DESTINATION ${GEODMA_DESTINATION_HEADERS}/geodma/classification
        COMPONENT devel)

install(FILES ${GEODMA_CL_HDRS_DT}
        DESTINATION ${GEODMA_DESTINATION_HEADERS}/geodma/classification/decision_trees
        COMPONENT devel)

export(TARGETS geodma_mod_classification APPEND FILE ${CMAKE_BINARY_DIR}/geodma-exports.cmake)
