##
# Conan Wranger
# Integrate Conan when needed, don't bother when it's not
##

if ( FGGL_CONAN )
    if ( CONAN_EXPORTED )
        include(${CMAKE_BINARY_DIR}/conanbuildinfo.cmake)
        conan_basic_setup()
    else()
        list(APPEND CMAKE_MODULE_PATH ${CMAKE_BINARY_DIR})
        list(APPEND CMAKE_PREFIX_PATH ${CMAKE_BINARY_DIR})

        # download conan if not available
        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/master/conan.cmake"
                    "${CMAKE_BINARY_DIR}/conan.cmake")
        endif()

        # download and enable dependencies
        include(${CMAKE_BINARY_DIR}/conan.cmake)
        conan_cmake_configure(
                REQUIRES
                    opengl/system
                    openal/1.21.1
                    assimp/5.2.2
                    glfw/3.3.7
                    glad/0.1.35
                    glm/0.9.9.8
                    spdlog/1.10.0
                    freetype/2.11.1
                    bullet3/3.22a
                    yaml-cpp/0.7.0
                    GENERATORS
                    cmake_find_package
                    cmake_find_package_multi
                OPTIONS
                    glfw:shared=True
                    glad:gl_profile=core
                    glad:gl_version=4.5
                    glad:extensions="GL_ARB_get_program_binary,GL_ARB_shading_language_include"
                BASIC_SETUP
        )

        if ( CMAKE_CONFIGURATION_TYPES )
            foreach(TYPE ${CMAKE_CONFIGURATION_TYPES})
                conan_cmake_autodetect( settings BUILD_TYPE ${TYPE} )
                conan_cmake_install(
                        PATH_OR_REFERENCE .
                        BUILD missing
                        SETTINGS ${settings}
                )
            endforeach()
        else()
            conan_cmake_autodetect( settings BUILD_TYPE ${TYPE} )
            conan_cmake_install(
                    PATH_OR_REFERENCE .
                    BUILD missing
                    SETTINGS ${settings}
            )
        endif()
    endif()

endif()