cmake_minimum_required(VERSION 3.11.4)

enable_language(C CXX)

# "iris" can be a standalone project or a part of the big "sigmet" project,
# in which case common.cmake might be included already
if (NOT COMMON_INCLUDED)
  include(${CMAKE_CURRENT_SOURCE_DIR}/shared/common.cmake)
  include(${CMAKE_CURRENT_SOURCE_DIR}/shared/ProjectInfo.cmake)
  include(${CMAKE_CURRENT_SOURCE_DIR}/shared/VersionInfo.cmake)
  include(${CMAKE_CURRENT_SOURCE_DIR}/shared/CreatePackageIris.cmake)
  include(${CMAKE_CURRENT_SOURCE_DIR}/shared/EnableCCache.cmake)
  include(${CMAKE_CURRENT_SOURCE_DIR}/shared/Uninstall.cmake)
  include(${CMAKE_CURRENT_SOURCE_DIR}/shared/InstallSymlink.cmake)
endif (NOT COMMON_INCLUDED)

enable_nls()

if (DEFINED BASE_SOURCE_DIR)
  message("The \"base\" source is available in \"iris\" tree.")
  message("Adding ${BASE_SOURCE_DIR} to include path.")
  include_directories(${BASE_SOURCE_DIR}/include)
else (DEFINED BASE_SOURCE_DIR)
  message("The \"base\" source is not available in \"iris\" tree.")
  message("Adding ${IRIS_INCLUDE} to include path.")
  include_directories(${IRIS_INCLUDE})
  message("Adding ${IRIS_LIB} to lib path.")
  link_directories(${IRIS_LIB})
endif (DEFINED BASE_SOURCE_DIR)
  
project(vaisala-wr-iris)

set(PROJECT_DESCRIPTION "Vaisala Weather Radar Iris")

# to use GNU standard installation directories
include(GNUInstallDirs)

ProjectInfo_Print()
ProjectInfo_AddDefinitions()
VersionInfo_Get()
VersionInfo_Print()
EnableCCache()
CreatePackage()
if (NOT COMMON_ROOT)
  Uninstall()
endif (NOT COMMON_ROOT)

# Install the license
install(
  FILES ${CMAKE_CURRENT_SOURCE_DIR}/shared/LICENSE
  DESTINATION "/usr/share/doc/vaisala"
  COMPONENT base )

include_directories(${CMAKE_CURRENT_SOURCE_DIR}/include)

add_subdirectory(convert_lib)
add_subdirectory(out_lib)
add_subdirectory(prodsup_lib)
add_subdirectory(ribbon_lib)
add_subdirectory(share_lib)
add_subdirectory(archive)
add_subdirectory(output)
add_subdirectory(custom)
add_subdirectory(examiners)
add_subdirectory(examples)
add_subdirectory(include)
add_subdirectory(ingest)
add_subdirectory(ingfio)
add_subdirectory(input)
add_subdirectory(misc)
add_subdirectory(network)
add_subdirectory(product)
add_subdirectory(reingest)
add_subdirectory(ribbuild)
add_subdirectory(server)
add_subdirectory(siris)
add_subdirectory(sserver)
add_subdirectory(tdwr)
add_subdirectory(watchdog)
add_subdirectory(window)
add_subdirectory(xuif)
