floooh / oryol

A small, portable and extensible C++ 3D coding framework
MIT License
2k stars 200 forks source link

Vagrant system unable to build: Relative path for build incorrect #88

Closed melloneneina closed 9 years ago

melloneneina commented 9 years ago

I am facing problems trying to build Oryol inside VM using Vagrant. I am sharing the Oryol folder using 'nfs' system and using the commented lines in the Vagrantfile, however whenever I load the Oryol and try to use

_./oryol make TARGETNAME (any of the available targets)

It gives me an error which says

/usr/bin/python: can't open file '/home/mellon/Projects/Oryol-git/oryol/generators/generator.py': [Errno 2] No such file or directory

I reckon that it should actually go to the path 'home/vagrant/Projects/Oryol-git/oryol/generators/generator.py' on the Vagrant-VM. Can you please tell me if my guess is correct? I am sure that the folder is shared correctly because I am able to run the precompiled (compiled on Host machine) PNaCl programs from oryol/bin/pnacl using Python HTTP server inside Chrome on Host machine.

floooh commented 9 years ago

Ok, first: I haven't tested the vagrant config for a while, so may be some things are currently broken.

But your problem looks like the build is using cmake build files from oryol/build/xxx which have been created on the host side (not from within the VM).

From the oryol-directory in the VM, try this:

> ./oryol select ...
[selects the build config you want to build in the VM]
> ./oryol clean
[this deletes any left-over cmake build files from this config under oryol/build, which I think is the problem]
> ./oryol update
[this creates the cmake build files from within the VM environment]
> ./oryol make TARGET_NAME
[...this should hopefully work now]
floooh commented 9 years ago

I just pushed a fix which moves the build directories under oryol/build one level deeper under a host-platform directory (e.g. before: build/pnacl-make-release is now build/osx/pnacl-make-release or build/linux/pnacl-make-release), this will prevent build file collisions if the oryol directory is shared in a VM.

I also updated the vagrant file to enable the shared directory again, and added the missing dev packages to the puppet recipe.

melloneneina commented 9 years ago

Thank you very much for your reply, both the solutions you mentioned above work flawlessly, and now I am able to build Targets on VM using command line, although I have one more query on the similar lines. I want to use QtCreator inside the VM and hence I tried to do following modification to your Vagrantfile,

config.vm.provider "virtualbox" do |v| v.memory = 2048 v.cpus = 2 v.gui = true end

It does open a GUI, however it gives me following error [I have attached a screenshot] Failed to start session screenshot from 2014-11-03 23 10 37

Could you please tell me a way to enable GUI for the VM?

floooh commented 9 years ago

I never worked with Vagrant GUI sessions, sorry. For Linux development work I'm mostly using a manually setup VirtualBox VM running Linux Mint and QtCreator as IDE (you can simply install the packages listed in oryol/vagrant/manifests/default.pp to compile oryol). Getting OpenGL apps running in VirtualBox can be tricky though (depending on VirtualBox version, GPU and Linux distro).