alloy-sandbox running on osx (ivm only).
This commit is contained in:
parent
93285acf7b
commit
7ae303dfa2
|
@ -22,6 +22,17 @@ and set the 'Command' to `$(SolutionDir)$(TargetPath)` and the
|
||||||
'Working Directory' to `$(SolutionDir)..\..`. You can specify flags and
|
'Working Directory' to `$(SolutionDir)..\..`. You can specify flags and
|
||||||
the file to run in the 'Command Arguments' field (or use `--flagfile=flags.txt`).
|
the file to run in the 'Command Arguments' field (or use `--flagfile=flags.txt`).
|
||||||
|
|
||||||
|
### OSX
|
||||||
|
|
||||||
|
* Mac OSX 10.9+
|
||||||
|
* Xcode 5.1+
|
||||||
|
|
||||||
|
#### Debugging
|
||||||
|
|
||||||
|
Choose `Product > Scheme > Edit Scheme`. For xenia-run, alloy-sandbox, and the
|
||||||
|
other executables select the Run action on the left and set
|
||||||
|
`Options > Working Directory` to your root xenia/ git path.
|
||||||
|
|
||||||
## xenia-build
|
## xenia-build
|
||||||
|
|
||||||
A simple build script is included to manage basic tasks such as building
|
A simple build script is included to manage basic tasks such as building
|
||||||
|
|
|
@ -10,6 +10,7 @@
|
||||||
#include <alloy/runtime/raw_module.h>
|
#include <alloy/runtime/raw_module.h>
|
||||||
|
|
||||||
#include <poly/platform.h>
|
#include <poly/platform.h>
|
||||||
|
#include <poly/string.h>
|
||||||
|
|
||||||
namespace alloy {
|
namespace alloy {
|
||||||
namespace runtime {
|
namespace runtime {
|
||||||
|
@ -19,8 +20,9 @@ RawModule::RawModule(Runtime* runtime)
|
||||||
|
|
||||||
RawModule::~RawModule() {}
|
RawModule::~RawModule() {}
|
||||||
|
|
||||||
int RawModule::LoadFile(uint64_t base_address, const std::string& path) {
|
int RawModule::LoadFile(uint64_t base_address, const std::wstring& path) {
|
||||||
FILE* file = fopen(path.c_str(), "rb");
|
auto fixed_path = poly::to_string(poly::fix_path_separators(path));
|
||||||
|
FILE* file = fopen(fixed_path.c_str(), "rb");
|
||||||
fseek(file, 0, SEEK_END);
|
fseek(file, 0, SEEK_END);
|
||||||
size_t file_length = ftell(file);
|
size_t file_length = ftell(file);
|
||||||
fseek(file, 0, SEEK_SET);
|
fseek(file, 0, SEEK_SET);
|
||||||
|
@ -37,11 +39,11 @@ int RawModule::LoadFile(uint64_t base_address, const std::string& path) {
|
||||||
fclose(file);
|
fclose(file);
|
||||||
|
|
||||||
// Setup debug info.
|
// Setup debug info.
|
||||||
auto last_slash = path.find_last_of(poly::path_separator);
|
auto last_slash = fixed_path.find_last_of(poly::path_separator);
|
||||||
if (last_slash != std::string::npos) {
|
if (last_slash != std::string::npos) {
|
||||||
name_ = path.substr(last_slash + 1);
|
name_ = fixed_path.substr(last_slash + 1);
|
||||||
} else {
|
} else {
|
||||||
name_ = path;
|
name_ = fixed_path;
|
||||||
}
|
}
|
||||||
// TODO(benvanik): debug info
|
// TODO(benvanik): debug info
|
||||||
|
|
||||||
|
|
|
@ -22,7 +22,7 @@ class RawModule : public Module {
|
||||||
RawModule(Runtime* runtime);
|
RawModule(Runtime* runtime);
|
||||||
~RawModule() override;
|
~RawModule() override;
|
||||||
|
|
||||||
int LoadFile(uint64_t base_address, const std::string& path);
|
int LoadFile(uint64_t base_address, const std::wstring& path);
|
||||||
|
|
||||||
const std::string& name() const override { return name_; }
|
const std::string& name() const override { return name_; }
|
||||||
|
|
||||||
|
|
|
@ -94,7 +94,7 @@ int main(std::vector<std::wstring>& args) {
|
||||||
runtime->Initialize(std::move(frontend), std::move(backend));
|
runtime->Initialize(std::move(frontend), std::move(backend));
|
||||||
|
|
||||||
auto module = std::make_unique<alloy::runtime::RawModule>(runtime.get());
|
auto module = std::make_unique<alloy::runtime::RawModule>(runtime.get());
|
||||||
module->LoadFile(0x00001000, "test\\codegen\\instr_add.bin");
|
module->LoadFile(0x00001000, L"test\\codegen\\instr_add.bin");
|
||||||
runtime->AddModule(std::move(module));
|
runtime->AddModule(std::move(module));
|
||||||
|
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue