cmake_minimum_required(VERSION 3.13)
project(nds-index-utilities VERSION 0.0.0)

set(CMAKE_CXX_STANDARD 14)

include(FindThreads)
include(FindPkgConfig)
include(FindZLIB)
include(GNUInstallDirs)

pkg_check_modules(FrameCPP REQUIRED
        IMPORTED_TARGET GLOBAL
        framecpp>2.6)

add_subdirectory(gds)
add_subdirectory(sends)

add_executable(nds_build_channel_list build-channel-list.cc)
target_link_libraries(nds_build_channel_list PRIVATE sends PkgConfig::FrameCPP)

add_executable(nds_build_source_list build_source_list.cc)

add_executable(nds_chan_search ChanSearch.cc chan_config.cc)
target_link_libraries(nds_chan_search PRIVATE sends PkgConfig::FrameCPP)

add_executable(nds_channel_merge channel_merge.cc)
target_link_libraries(nds_channel_merge PRIVATE sends)

# variables for the .in file expansions
set(SHELL /bin/bash)
set(prefix "${CMAKE_INSTALL_PREFIX}")
set(exec_prefix "${CMAKE_INSTALL_PREFIX}")
set(bindir "${prefix}/bin")
set(libdir "${prefix}/lib")
set(datadir "${prefix}/share/nds_index_utilities")
if ("${CMAKE_INSTALL_PREFIX}" STREQUAL "/usr")
    set(sysconfdir "/${CMAKE_INSTALL_SYSCONFDIR}")
else()
    set(sysconfdir "${CMAKE_INSTALL_FULL_SYSCONFDIR}")
endif ("${CMAKE_INSTALL_PREFIX}" STREQUAL "/usr")

set(datarootdir "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_DATAROOTDIR}")
set(datadir "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_DATADIR}/${CMAKE_PROJECT_NAME}")
set(PACKAGE_STRING "${PROJECT_NAME}")
set(PACKAGE_VERSION "${PROJECT_VERSION}")

install(TARGETS
        nds_build_channel_list
        nds_build_source_list
        nds_chan_search
        nds_channel_merge
        RUNTIME)
configure_file(nds_group_auth.in
        ${CMAKE_CURRENT_BINARY_DIR}/nds_group_auth
        @ONLY)
configure_file(nds_build_channel_history.in
        ${CMAKE_CURRENT_BINARY_DIR}/nds_build_channel_history
        @ONLY)
configure_file(nds_nightly.in
        ${CMAKE_CURRENT_BINARY_DIR}/nds_nightly
        @ONLY)
configure_file(nds_nightly_with_restart.in
        ${CMAKE_CURRENT_BINARY_DIR}/nds_nightly_with_restart
        @ONLY)
configure_file(nds_patch_history.in
        ${CMAKE_CURRENT_BINARY_DIR}/nds_patch_history
        @ONLY)
configure_file(nds_sourcery.in
        ${CMAKE_CURRENT_BINARY_DIR}/nds_sourcery
        @ONLY)
configure_file(nds_setup_wizard.in
        ${CMAKE_CURRENT_BINARY_DIR}/nds_setup_wizard
        @ONLY)
configure_file(nds_setup_wizard_monolithic.in
        ${CMAKE_CURRENT_BINARY_DIR}/nds_setup_wizard_monolithic
        @ONLY)
install(PROGRAMS
        nds_add_frame_type
        nds_deactivate
        nds_deprecate
        nds_prune_files
        nds_ldap_group.py
        ${CMAKE_CURRENT_BINARY_DIR}/nds_group_auth
        ${CMAKE_CURRENT_BINARY_DIR}/nds_build_channel_history
        ${CMAKE_CURRENT_BINARY_DIR}/nds_nightly
        ${CMAKE_CURRENT_BINARY_DIR}/nds_nightly_with_restart
        ${CMAKE_CURRENT_BINARY_DIR}/nds_patch_history
        ${CMAKE_CURRENT_BINARY_DIR}/nds_sourcery
        ${CMAKE_CURRENT_BINARY_DIR}/nds_setup_wizard
        ${CMAKE_CURRENT_BINARY_DIR}/nds_setup_wizard_monolithic
        TYPE BIN)
install(PROGRAMS
        nds_ldap_group.py
        check_restart_monolithic.py
        DESTINATION "${datadir}")

