#========================================================================
# -*- mode: cmake -*-
#------------------------------------------------------------------------
#------------------------------------------------------------------------
# Establish search path for macros
#------------------------------------------------------------------------
list(INSERT CMAKE_MODULE_PATH 0 "${CMAKE_SOURCE_DIR}/Modules")

cmake_minimum_required(VERSION 3.12...4.0)

set( PACKAGE_NAME ldas-tools-cmake )
set( PACKAGE_VERSION 1.4.2 )
set( planguages C CXX )

set(
  PACKAGE_DESCRIPTION
  "This is a collection of CMake functions specific to the LDAS Tools Suite"
  )
set( PACKAGE_DESCRIPTION_LONG
  "This collection of cmake macros was developed as part of the LDAS Tools Suite to have consistency across all of the packages"
  )

set( PACKAGE_BUG_REPORT_URL "https://git.ligo.org/ldastools/LDAS_Tools/issues"
  CACHE INTERNAL "URL of where to submit problems" )
set( PACKAGE_HOMEPAGE_URL https://git.ligo.org/computing/ldastools/LDAS_Tools
  CACHE INTERNAL "Homepage URL for Project" )

set( BOOST_MINIMUM_VERSION 1.67 )
# Read from environment variable (set by GitLab CI via project.yml)
if(DEFINED ENV{IGWN_CMAKE_VERSION})
    set( IGWN_CMAKE_VERSION $ENV{IGWN_CMAKE_VERSION} )
else()
    set( IGWN_CMAKE_VERSION 1.10.0 )  # Fallback for local builds
endif()

#------------------------------------------------------------------------
#
#------------------------------------------------------------------------

project( ${PACKAGE_NAME}
  VERSION ${PACKAGE_VERSION}
  DESCRIPTION "${PACKAGE_DESCRIPTION}"
  LANGUAGES ${planguages}
)

#------------------------------------------------------------------------
# Find the larger collection of macros
#------------------------------------------------------------------------

include( GNUInstallDirs )

if ( NOT DEFINED IGWN_CMAKE_MODULE_DIRS )
  set(IGWN_CMAKE_MODULE_DIRS "")
  foreach(_igwn_prefix
      ${CMAKE_PREFIX_PATH}
      ${CMAKE_INSTALL_PREFIX}
      /usr
      /usr/local
      /opt/local)
    list(APPEND IGWN_CMAKE_MODULE_DIRS
      "${_igwn_prefix}/${CMAKE_INSTALL_DATADIR}/igwn-cmake/cmake/Modules")
  endforeach()
  list(APPEND IGWN_CMAKE_MODULE_DIRS
    ${CMAKE_INSTALL_FULL_DATADIR}/igwn-cmake/cmake/Modules)
  list(REMOVE_DUPLICATES IGWN_CMAKE_MODULE_DIRS)
endif( )

message( "CMAKE_INSTALL_PREFIX: ${CMAKE_INSTALL_PREFIX}" )
message( "CMAKE_INSTALL_FULL_DATADIR: ${CMAKE_INSTALL_FULL_DATADIR}" )
message( "IGWN_CMAKE_MODULE_DIRS: ${IGWN_CMAKE_MODULE_DIRS}" )
find_package(
  IGWNCMake ${IGWN_CMAKE_VERSION}
  CONFIG
  REQUIRED
  HINTS ${IGWN_CMAKE_MODULE_DIRS}
  PATHS ${IGWN_CMAKE_MODULE_DIRS}
  )

#------------------------------------------------------------------------
# Preload common packages
#------------------------------------------------------------------------

include( CTest )
include( IGWNCMakeInstallDirs )
include( LDASToolsInstallDirs )
include( Autotools/Autotools )
include( Autotools/Archive/Archive )
include( Autotools/ArchiveX/ArchiveX )

#========================================================================
# Configure PROJECT
#------------------------------------------------------------------------

cm_prereq(3.12)
cm_init(
  ${PACKAGE_NAME}
  "${PACKAGE_VERSION}"
  ${PACKAGE_BUG_REPORT_URL}
  ${PACKAGE_NAME}
  ${PACKAGE_HOMEPAGE_URL}
  LANGUAGES ${planguages}
  DESCRIPTION "${PACKAGE_DESCRIPTION}"
  LONG_DESCRIPTION "${PACKAGE_DESCRIPTION_LONG}"
  )

#========================================================================
# Traverse the tree
#------------------------------------------------------------------------

add_subdirectory(config)
add_subdirectory(Modules)
add_subdirectory(test)
#add_subdirectory(doc)

#========================================================================
# Prepare for testing
#------------------------------------------------------------------------

include(CTest)
enable_testing( )

#========================================================================
# Prepare the distribution
#------------------------------------------------------------------------

cx_cpack( MACPORTS_CATEGORY devel )
