#include
#include
#include
#include
#define CLI11_HAS_FILESYSTEM 0
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#ifdef HAVE_BUILD_TO_WASM
#include
#endif
#ifdef HAVE_LFORTRAN_RAPIDJSON
#include
#include
#include
#endif
extern std::string lcompilers_unique_ID;
namespace {
using LCompilers::endswith;
using LCompilers::CompilerOptions;
using LCompilers::LPython::parse_python_file;
enum class Backend {
llvm, cpp, c, x86, wasm, wasm_x86, wasm_x64, python
};
std::string remove_extension(const std::string& filename) {
size_t lastdot = filename.find_last_of(".");
if (lastdot == std::string::npos) return filename;
return filename.substr(0, lastdot);
}
std::string remove_path(const std::string& filename) {
size_t lastslash = filename.find_last_of("/");
if (lastslash == std::string::npos) return filename;
return filename.substr(lastslash+1);
}
std::string get_kokkos_dir()
{
char *env_p = std::getenv("LFORTRAN_KOKKOS_DIR");
if (env_p) return env_p;
std::cerr