package("mongo-c-driver")

    set_homepage("http://mongoc.org/")
    set_description("The MongoDB C Driver.")
    set_license("Apache-2.0")

    add_urls("https://github.com/mongodb/mongo-c-driver/archive/$(version).zip",
             "https://github.com/mongodb/mongo-c-driver.git")
    add_versions("1.20.1", "3a856e1c40b02fc5160cb7b39594d654f3076eeb671829b867971e7d35ed497c")
    add_versions("1.19.0", "3e545964ee82ee60afe4213852208e6174297b19d6b837eca3c711af34a4b107")

    add_deps("cmake")
    if is_plat("macosx", "linux") then
        add_deps("openssl")
    end

    add_includedirs("include/libbson-1.0")
    add_includedirs("include/libmongoc-1.0")

    on_install("windows", "linux", "macosx", function (package)
        local configs = {"-DENABLE_AUTOMATIC_INIT_AND_CLEANUP=OFF",
                        "-DENABLE_ICU=OFF",
                        "-DENABLE_TESTS=OFF",
                        "-DENABLE_EXAMPLES=OFF"}
        if package:is_plat("windows") then 
            table.insert(configs, "-DENABLE_EXTRA_ALIGNMENT=0")    
        end
        table.insert(configs, "-DBUILD_VERSION=" .. package:version())
        table.insert(configs, "-DCMAKE_BUILD_TYPE=" .. (package:debug() and "Debug" or "RelWithDebInfo"))
        table.insert(configs, "-DENABLE_STATIC=" .. (package:config("shared") and "OFF" or "BUILD_ONLY"))
        table.insert(configs, "-DENABLE_STATIC_BUILD=" .. (package:config("shared") and "OFF" or "BUILD_ONLY"))
        import("package.tools.cmake").install(package, configs)
    end)

    on_test(function (package)
        assert(package:has_cfuncs("mongoc_init", {includes = "mongoc/mongoc.h"}))
    end)