cmake_minimum_required(VERSION 3.14)

project(CSG-EB
   DESCRIPTION  "Parser for CSG files to define Embedded Boundaries"
   HOMEPAGE_URL "https://mfix.netl.doe.gov/gitlab/exa/csg-eb"
   LANGUAGES    CXX
   )

set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_EXTENSIONS OFF)

if(NOT EXISTS "${CMAKE_BINARY_DIR}/conan.cmake")
   message(STATUS "Downloading conan.cmake from https://github.com/conan-io/cmake-conan")
   file(DOWNLOAD "https://raw.githubusercontent.com/conan-io/cmake-conan/v0.16.1/conan.cmake"
      "${CMAKE_BINARY_DIR}/conan.cmake"
      EXPECTED_HASH SHA256=396e16d0f5eabdc6a14afddbcfff62a54a7ee75c6da23f32f7a31bc85db23484
      TLS_VERIFY ON)
endif()

include(${CMAKE_BINARY_DIR}/conan.cmake)

if(CONAN_SETTINGS)
   set(settings ${CONAN_SETTINGS})
else()
   conan_cmake_autodetect(settings)
endif()


find_program(CONAN_FOUND conan)
if(NOT CONAN_FOUND)
   message(WARNING "
   Did not find conan in PATH. Recommend installing with 'pip install conan'.
   Will try downloading Conan with PMM <https://github.com/vector-of-bool/pmm>")
   include(pmm.cmake)
   pmm(CONAN)
endif()

conan_cmake_configure(REQUIRES
   catch2/2.13.7
   GENERATORS cmake_find_package)

conan_cmake_install(PATH_OR_REFERENCE ${CMAKE_CURRENT_BINARY_DIR}/conanfile.txt
   BUILD missing
   SETTINGS ${settings})

conan_cmake_configure(REQUIRES
   csg-eb/0.1@exa/stable
   GENERATORS cmake_find_package)

conan_add_remote(
   NAME mfix-gitlab
   INDEX 1
   URL https://mfix.netl.doe.gov/gitlab/api/v4/projects/292/packages/conan
   VERIFY_SSL True
)

conan_cmake_install(PATH_OR_REFERENCE ${CMAKE_CURRENT_BINARY_DIR}/conanfile.txt
   BUILD missing
   SETTINGS ${settings})

list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_BINARY_DIR})
list(APPEND CMAKE_PREFIX_PATH ${CMAKE_CURRENT_BINARY_DIR})
list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR})
list(APPEND CMAKE_PREFIX_PATH ${CMAKE_CURRENT_SOURCE_DIR})

find_package(Catch2 REQUIRED)
find_package(csg-eb REQUIRED)
