#ifndef ANDROIDTOOLS_H_
#define ANDROIDTOOLS_H_
-#include <set>
+#include <cstdint>
#include <msp/fs/path.h>
#include "toolchain.h"
protected:
Builder &builder;
Msp::FS::Path root;
- std::set<unsigned> supported_api_levels;
+ /* Needs refactoring if API levels go over 63. At present rate this will
+ take decades to occur. */
+ uint64_t supported_api_levels;
- AndroidDevKit(Builder &, const std::string &);
+ AndroidDevKit(Builder &, const std::string &, const Msp::FS::Path & = Msp::FS::Path());
~AndroidDevKit() { }
public:
const Msp::FS::Path &get_root_dir() const { return root; }
- const std::set<unsigned> &get_supported_api_levels() const { return supported_api_levels; }
+ uint64_t get_supported_api_levels() const { return supported_api_levels; }
void select_api_level(unsigned);
protected:
virtual void init_api_level(unsigned) = 0;
private:
void find_build_tools_dir();
- virtual void init_api_level(unsigned);
+ void init_api_level(unsigned) override;
public:
const Msp::FS::Path &get_build_tools_dir() const { return build_tools_dir; }
private:
const Architecture &architecture;
Msp::FS::Path bin_dir;
+ Msp::FS::Path common_sysroot;
Msp::FS::Path platform_sysroot;
public:
- AndroidNdk(Builder &, const Architecture &);
-
+ AndroidNdk(Builder &, const Architecture &, const AndroidSdk &);
private:
+ static Msp::FS::Path create_default_path(const AndroidSdk &);
+
void find_toolchain_dir();
- virtual void init_api_level(unsigned);
+ void init_api_level(unsigned) override;
public:
const Msp::FS::Path &get_bin_dir() const { return bin_dir; }
+ const Msp::FS::Path &get_common_sysroot() const { return common_sysroot; }
const Msp::FS::Path &get_platform_sysroot() const { return platform_sysroot; }
};