
#  Copyright (C) 2008 National Institute For Space Research (INPE) - Brazil.
#
#  This file is part of the TerraLib - a Framework for building GIS enabled applications.
#
#  TerraLib is free software: you can redistribute it and/or modify
#  it under the terms of the GNU Lesser General Public License as published by
#  the Free Software Foundation, either version 3 of the License,
#  or (at your option) any later version.
#
#  TerraLib is distributed in the hope that it will be useful,
#  but WITHOUT ANY WARRANTY; without even the implied warranty of
#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
#  GNU Lesser General Public License for more details.
#
#  You should have received a copy of the GNU Lesser General Public License
#  along with TerraLib. See COPYING. If not, write to
#  TerraLib Team at <terralib-team@terralib.org>.
#
#
#  Description: TerraLib Core Runtime Module.
#
#  Author: Gilberto Ribeiro de Queiroz
#          Vinicius Campanha
#          Matheus Cavassan Zaglia
#

set(TERRALIB_CORE_DIR ${TERRALIB_ABSOLUTE_ROOT_DIR}/src/terralib/core)

include(${terralib_SOURCE_DIR}/terralib_conf.cmake)

file(GLOB TERRALIB_CORE_SRC_FILES ${TERRALIB_CORE_DIR}/*.cpp)
file(GLOB TERRALIB_CORE_HDR_FILES ${TERRALIB_CORE_DIR}/*.h)

file(GLOB TERRALIB_CORE_ENCODING_SRC_FILES ${TERRALIB_CORE_DIR}/encoding/*.cpp)
file(GLOB TERRALIB_CORE_ENCODING_HDR_FILES ${TERRALIB_CORE_DIR}/encoding/*.h)

file(GLOB TERRALIB_CORE_FILESYSTEM_SRC_FILES ${TERRALIB_CORE_DIR}/filesystem/*.cpp)
file(GLOB TERRALIB_CORE_FILESYSTEM_HDR_FILES ${TERRALIB_CORE_DIR}/filesystem/*.h)

file(GLOB TERRALIB_CORE_LIB_SRC_FILES ${TERRALIB_CORE_DIR}/lib/*.cpp)
file(GLOB TERRALIB_CORE_LIB_HDR_FILES ${TERRALIB_CORE_DIR}/lib/*.h)

file(GLOB TERRALIB_CORE_LOGGER_SRC_FILES ${TERRALIB_CORE_DIR}/logger/*.cpp)
file(GLOB TERRALIB_CORE_LOGGER_HDR_FILES ${TERRALIB_CORE_DIR}/logger/*.h)

file(GLOB TERRALIB_CORE_PLUGIN_SRC_FILES ${TERRALIB_CORE_DIR}/plugin/*.cpp)
file(GLOB TERRALIB_CORE_PLUGIN_HDR_FILES ${TERRALIB_CORE_DIR}/plugin/*.h)

file(GLOB TERRALIB_CORE_TRANSLATOR_SRC_FILES ${TERRALIB_CORE_DIR}/translator/*.cpp)
file(GLOB TERRALIB_CORE_TRANSLATOR_HDR_FILES ${TERRALIB_CORE_DIR}/translator/*.h)

file(GLOB TERRALIB_CORE_URI_SRC_FILES ${TERRALIB_CORE_DIR}/uri/*.cpp)
file(GLOB TERRALIB_CORE_URI_HDR_FILES ${TERRALIB_CORE_DIR}/uri/*.h)

file(GLOB TERRALIB_CORE_UTILS_SRC_FILES ${TERRALIB_CORE_DIR}/utils/*.cpp)
file(GLOB TERRALIB_CORE_UTILS_HDR_FILES ${TERRALIB_CORE_DIR}/utils/*.h)


source_group("Source Files"               FILES ${TERRALIB_CORE_SRC_FILES})
source_group("Header Files"               FILES ${TERRALIB_CORE_HDR_FILES})
source_group("Source Files\\encoding"     FILES ${TERRALIB_CORE_ENCODING_SRC_FILES})
source_group("Header Files\\encoding"     FILES ${TERRALIB_CORE_ENCODING_HDR_FILES})
source_group("Source Files\\filesystem"   FILES ${TERRALIB_CORE_FILESYSTEM_SRC_FILES})
source_group("Header Files\\filesystem"   FILES ${TERRALIB_CORE_FILESYSTEM_HDR_FILES})
source_group("Source Files\\lib"          FILES ${TERRALIB_CORE_LIB_SRC_FILES})
source_group("Header Files\\lib"          FILES ${TERRALIB_CORE_LIB_HDR_FILES})
source_group("Source Files\\logger"       FILES ${TERRALIB_CORE_LOGGER_SRC_FILES})
source_group("Header Files\\logger"       FILES ${TERRALIB_CORE_LOGGER_HDR_FILES})
source_group("Source Files\\plugin"       FILES ${TERRALIB_CORE_PLUGIN_SRC_FILES})
source_group("Header Files\\plugin"       FILES ${TERRALIB_CORE_PLUGIN_HDR_FILES})
source_group("Source Files\\translator"   FILES ${TERRALIB_CORE_TRANSLATOR_SRC_FILES})
source_group("Header Files\\translator"   FILES ${TERRALIB_CORE_TRANSLATOR_HDR_FILES})
source_group("Source Files\\uri"          FILES ${TERRALIB_CORE_URI_SRC_FILES})
source_group("Header Files\\uri"          FILES ${TERRALIB_CORE_URI_HDR_FILES})
source_group("Source Files\\utils"        FILES ${TERRALIB_CORE_UTILS_SRC_FILES})
source_group("Header Files\\utils"        FILES ${TERRALIB_CORE_UTILS_HDR_FILES})

TERRALIB_ADD_MODULE(TARGET terralib_mod_core
                    SOURCES ${TERRALIB_CORE_SRC_FILES} ${TERRALIB_CORE_HDR_FILES}
                            ${TERRALIB_CORE_ENCODING_SRC_FILES} ${TERRALIB_CORE_ENCODING_HDR_FILES}
                            ${TERRALIB_CORE_FILESYSTEM_SRC_FILES} ${TERRALIB_CORE_FILESYSTEM_HDR_FILES}
                            ${TERRALIB_CORE_LIB_SRC_FILES} ${TERRALIB_CORE_LIB_HDR_FILES}
                            ${TERRALIB_CORE_LOGGER_SRC_FILES} ${TERRALIB_CORE_LOGGER_HDR_FILES}
                            ${TERRALIB_CORE_PLUGIN_SRC_FILES} ${TERRALIB_CORE_PLUGIN_HDR_FILES}
                            ${TERRALIB_CORE_TRANSLATOR_SRC_FILES} ${TERRALIB_CORE_TRANSLATOR_HDR_FILES}
                            ${TERRALIB_CORE_URI_SRC_FILES} ${TERRALIB_CORE_URI_HDR_FILES}
                            ${TERRALIB_CORE_UTILS_SRC_FILES} ${TERRALIB_CORE_UTILS_HDR_FILES}
                    DEPENDENCIES ${Boost_LOCALE_LIBRARY}
                                 ${Boost_REGEX_LIBRARY}
                                 ${Boost_FILESYSTEM_LIBRARY}
                                 ${Boost_SYSTEM_LIBRARY}
                                 ${Boost_LOG_LIBRARY}
                                 ${Boost_LOG_SETUP_LIBRARY}
                                 ${Boost_THREAD_LIBRARY}
                                 ${CMAKE_DL_LIBS}
                    DEFINITIONS $<$<CXX_COMPILER_ID:MSVC>:TECOREDLL>
                                $<$<CXX_COMPILER_ID:MSVC>:BOOST_LOCALE_DYN_LINK>)

if(TERRALIB_LEAK_DETECTOR_ENABLED)
  target_link_libraries(terralib_mod_core PUBLIC ${VLD_LIBRARY})
endif()

if(TERRALIB_LEAK_DETECTOR_ENABLED)
  target_include_directories(terralib_mod_core PRIVATE ${VLD_INCLUDE_DIR})
endif()

TERRALIB_REGISTER_TRANSLATION("terralib_mod_core" "pt_BR"
                              "${TERRALIB_ABSOLUTE_ROOT_DIR}/share/terralib/translations"
                              "${CMAKE_BINARY_DIR}/share/terralib/translations")

                              
TERRALIB_CREATE_TRANSLATION("terralib_mod_core"
                            "TE_TR"
                            "TE_TR"
                            "pt_BR"
                            "${TERRALIB_ABSOLUTE_ROOT_DIR}/src/terralib/core/"
                            "${TERRALIB_ABSOLUTE_ROOT_DIR}/share/terralib/translations/")      
                          
TERRALIB_REGISTER_TRANSLATION("terralib_mod_core"
                              "pt_BR"
                              "${TERRALIB_ABSOLUTE_ROOT_DIR}/share/terralib/translations"
                              "${CMAKE_BINARY_DIR}/share/terralib/translations")                                 