/**
 * @file julia/generate_jl.cpp.in
 * @author Ryan Curtin
 *
 * This is a template file to call the PrintJL() function for a given binding.
 */
#define BINDING_TYPE BINDING_TYPE_JL
// Disable debug output.
#ifdef DEBUG
  #define HAD_DEBUG
  #undef DEBUG
#endif
#include <mlpack/core/util/log.hpp>
#ifdef HAD_DEBUG
  #undef HAD_DEBUG
  #define DEBUG
#endif

#include <mlpack/core.hpp>
#include <mlpack/core/util/mlpack_main.hpp>
#include <mlpack/bindings/julia/print_jl.hpp>

// This will include the ParamData options that are part of the program.
#include <${PROGRAM_MAIN_FILE}>

using namespace mlpack;
using namespace mlpack::bindings;
using namespace mlpack::bindings::julia;
using namespace std;
using namespace mlpack::util;

int main(int /* argc */, char** /* argv */)
{
  // All the parameters are registered, but stored, so restore them.
  // programName is defined in mlpack_main.hpp.
  CLI::RestoreSettings(programName);

  PrintJL(*CLI::GetSingleton().doc, "${NAME}", "${MLPACK_JL_LIB_SUFFIX}");
}
