Orx - Portable Game Engine
Welcome, Guest
Please Login or Register.    Lost Password?
Help request: mercurial, bitbucket and buildbot
(1 viewing) 1 Guest
Go to bottom
TOPIC: Help request: mercurial, bitbucket and buildbot
#5204
iarwain
Administrator
Posts: 3107
graph
User Offline Click here to see the profile of this user
Gender: Male Orx - Portable Game Engine Location: Montreal
Help request: mercurial, bitbucket and buildbot 4 Years, 7 Months ago Karma: 71
Hi all!

I finally finished migrating orx from svn/sourceforge.net to hg/bitbucket.org.

I will only be working on the new mercurial repository as of now. The repository is at bitbucket.org/orx/orx, or, if you'd rather have an URL that's maybe easier to remember, you can use code.orx-project.org/orx

Scroll has been hosted on the same account for the past few weeks and I believe this will make external proposition/patches easier to integrate.

I suggest only cloning the default branch (aka trunk) (hg clone -b default ...) as all the historical branches might add quite some traffic for nothing otherwise.

Now, I'll need to update the whole site/forum/wiki to point to the new place and that's where I'd love to have some help from the community.

I've changed the link on the main page to go to bitbucket. I haven't changed the download link yet but that will come in the future.

Actually the future in this case means whenever I get a continuous integration ready for orx, probably using buildbot. I'll setup the master on my own private server at home that should be available 24/7, but I'll need some slaves, even if they're only available from time to time.

I will be providing slaves for doxygen, msvs2008, codelite, mac os (x86/x64) x and iOS builds myself (with quite some downtime), but I'll need some slaves for msvs2010, linux x86/x64 and Android.

The more slaves, the better, this way we should have access to build regularly, including API doxygen doc.

No more 1.5 years between releases anymore!

Now that sounds pretty neat on paper but I have almost no clue on how to setup a buildbot nor how to compile most of the versions from the command line. If anybody wants to help with that, please let me know!

Thanks in advance!

Cheers!
 
Logged Logged
 
Want to follow orx's development? Go subscribe to the orx-dev group at: https://groups.google.com/forum/?fromgroups#!forum/orx-dev
  The administrator has disabled public write access.
#5205
lydesik
Moderator
Posts: 150
graphgraph
User Offline Click here to see the profile of this user
Re:Help request: mercurial, bitbucket and buildbot 4 Years, 7 Months ago Karma: 4
nice move

about android, currently orx is compiled when the application is compiled.

I probably can change that to build orx as a static lib.
and provide a slave to build the thing (if bandwidth requirement aren't too high)

about cloning only the default branch, unfortunately, that's not how mercurials is working.

when you clone a repositoy, you can't clone a part of it, you allways clone the whole repository including all branches.

if you want to split branches from the main repository, you need to create forks in differents repositories.

Forks works like branches (more or less)
If repo A is the main, and repo B is a 'forked-branch', you can pull changes from A into B, and chanes from B into A (when work on B is finish)
 
Logged Logged
 
Last Edit: 2012/09/18 08:59 By lydesik.
  The administrator has disabled public write access.
#5364
epoulsen
Expert Boarder
Posts: 93
graphgraph
User Offline Click here to see the profile of this user
Gender: Male epoulsen2 Location: Southern California Birthday: 10/05
Re:Help request: mercurial, bitbucket and buildbot 4 Years, 6 Months ago Karma: 0
I have no experience with buildbot, but:

I think codelite generates makefiles for it's own use, and I've used those makefiles successfully from the commandline.

I can provide a Linux 32 and a Linux 64 (Both Ubuntu 12.04 LTS) as slaves.
 
Logged Logged
  The administrator has disabled public write access.
#5365
iarwain
Administrator
Posts: 3107
graph
User Offline Click here to see the profile of this user
Gender: Male Orx - Portable Game Engine Location: Montreal
Re:Help request: mercurial, bitbucket and buildbot 4 Years, 6 Months ago Karma: 71
Yes, unfortunately it generates a different set of makefiles per configuration, which is pretty annoying.

There's another post in this forum about supporting PreMake to generate all the project/make files, by AlgoJerVIA.

Unfortunately 7 months later I haven't been able to look at his work as I've been crunching for 6 months straight at work and had a lot going on in my personal life too. I guess now it's time to get back on it, as a prerequisite of the whole buildbot integration.

I just can't get motivated, I hate writing this kind of scripts.
 
Logged Logged
 
Want to follow orx's development? Go subscribe to the orx-dev group at: https://groups.google.com/forum/?fromgroups#!forum/orx-dev
  The administrator has disabled public write access.
#5381
4babce
Junior Boarder
Posts: 20
graphgraph
User Offline Click here to see the profile of this user
Re:Help request: mercurial, bitbucket and buildbot 4 Years, 6 Months ago Karma: 2
I had a look at AlgoJerVIA's premake file, and started messing around with it. I must say, it's not a bad system, and it's kind of fun having a programming language at your disposal.

Anyway, playing around with it, I seem to have gotten it working well on Linux (both with make and codelite) for all applicable build types. The exception being that the plugins themselves are not currently compiled, but plugin builds still compile for the library itself.

I think I found a way to get embedded and static builds with Xcode, but it requires testing:
I implemented (hopefully) a command line argument
--build-type which can be set to dynamic or static for Xcode builds. eg: --build-type=static

Of course, I have no clue what compiler/linker options are needed for Xcode, so the resultant solution wouldn't be compileable anyways in the current state.

If someone wants to tell me a few things, I will hack at it further.
Specifically:
-What plugins should be built for what platforms/architectures?
-What compile/linker options/flags etc... are needed for non linux platforms (win-msvc, win-mingw, osx)
-As above, what libraries do I need to link against?
-Are the iOS and Android builds even pre-compilable (Lydesik mentions that Android is always built with the app) If so, what settings are needed?
File Attachment:
File Name: premake4.txt
File Size: 10840
 
Logged Logged
  The administrator has disabled public write access.
#5383
lydesik
Moderator
Posts: 150
graphgraph
User Offline Click here to see the profile of this user
Re:Help request: mercurial, bitbucket and buildbot 4 Years, 6 Months ago Karma: 4
I'll change the way orx is build on android soon...

but dont't worry about it since it's all custom Makefile fragments for the android ndk-build script, I'pretty sure it wont fit with premake.

I'll integrate it with buildbot and provide the slaves.
(I still need to investigate on this and how to package this stuff)
 
Logged Logged
  The administrator has disabled public write access.
#5384
iarwain
Administrator
Posts: 3107
graph
User Offline Click here to see the profile of this user
Gender: Male Orx - Portable Game Engine Location: Montreal
Re:Help request: mercurial, bitbucket and buildbot 4 Years, 6 Months ago Karma: 71
Thanks for your help, 4babce, it's much appreciated!

For now, I think we can focus on the embedded versions only. That will also motivate me to rewrite all the tutorials that are not using that version.

I'll check the different compiler options, hopefully tonight, and will post them here, same for the linker/external libraries.

The iOS build is precompilable, and it actually requires an extra step after compilation to merge all the versions (iPhone, iPad, arm6, arm7, ...) in one universal binary file, using the lipo tool.

I won't be able to check your work myself before this week end at best, unfortunately, but I'll provide you with all the info in the meantime.

Thanks again for your help!
 
Logged Logged
 
Want to follow orx's development? Go subscribe to the orx-dev group at: https://groups.google.com/forum/?fromgroups#!forum/orx-dev
  The administrator has disabled public write access.
#5388
iarwain
Administrator
Posts: 3107
graph
User Offline Click here to see the profile of this user
Gender: Male Orx - Portable Game Engine Location: Montreal
Re:Help request: mercurial, bitbucket and buildbot 4 Years, 5 Months ago Karma: 71
Sorry, fell asleep before reaching the computer last night. Will try harder tonight...
 
Logged Logged
 
Want to follow orx's development? Go subscribe to the orx-dev group at: https://groups.google.com/forum/?fromgroups#!forum/orx-dev
  The administrator has disabled public write access.
#5396
iarwain
Administrator
Posts: 3107
graph
User Offline Click here to see the profile of this user
Gender: Male Orx - Portable Game Engine Location: Montreal
Re:Help request: mercurial, bitbucket and buildbot 4 Years, 5 Months ago Karma: 71
Ok, here are some info I gathered. Let me know if you have any questions or need any other info.
I haven't had the opportunity to look into XCode (OS X/iOS) unfortunately.

Code:

VS
==

 - orxLIB (dynamic):
  . include directories: ..\..\..\..\include;..\..\..\..\..\extern\dlmalloc;..\..\..\..\..\extern\SDL-1.2.14\include;..\..\..\..\..\extern\glfw-2.7\include;..\..\..\..\..\extern\Box2D_2.1.3\include;..\..\..\..\..\extern\SOIL\include;..\..\..\..\..\extern\OpenAL-soft\include;..\..\..\..\..\extern\libsndfile-1.0.22\include;..\..\..\..\..\extern\stb_vorbis
  . link directories: ..\..\..\..\..\extern\SDL-1.2.14\lib\vc20XX;..\..\..\..\..\extern\glfw-2.7\lib\vc20XX;..\..\..\..\..\extern\Box2D_2.1.3\lib\msvs20XX;..\..\..\..\..\extern\SOIL\lib\msvs20XX;..\..\..\..\..\extern\OpenAL-soft\lib\vc20XX;..\..\..\..\..\extern\libsndfile-1.0.22\lib\vc20XX
  . preprocessor: __orxEMBEDDED__;AL_LIBTYPE_STATIC
  . link libraries: box2d(d).lib SDL.lib GLFW.lib OpenAL32.lib libsndfile.lib SOIL.lib OpenGL32.lib winmm.lib
  . import library: ..\..\..\..\lib\dynamic\orxd.lib
  . Runtime library: 0/1 (ie. no DLL, all static)
  . Use C++ compiler
- orx (static):
  . Uses the link values from above


Codelite
========

 - orxLIB (dynamic):
  . include directories: same as VS
  . link directories: ../../../../extern/glfw-2.7/lib/mingw ../../../../extern/SDL-1.2.14/lib/mingw ../../../../extern/SOIL/lib/mingw ../../../../extern/OpenAL-soft/lib/mingw ../../../../extern/libsndfile-1.0.22/lib/mingw ../../../../extern/Box2D_2.1.3/lib/mingw
  . link libraries: glfw sndfile openal32 SOIL SDL Box2D(d) winmm
  . extra link flags: -static -Wl,--out-implib=../../../lib/dynamic/liborx(d|p).a

 - orx (static):
  . same as for VS, uses link properties from orxLIB (dynamic)

 - plugins:
  . extra link flags (static): -fPIC -Wl,--enable-auto-import
  . extra link flags (dynamic): -fPIC

 
Logged Logged
 
Want to follow orx's development? Go subscribe to the orx-dev group at: https://groups.google.com/forum/?fromgroups#!forum/orx-dev
  The administrator has disabled public write access.
#5398
4babce
Junior Boarder
Posts: 20
graphgraph
User Offline Click here to see the profile of this user
Re:Help request: mercurial, bitbucket and buildbot 4 Years, 5 Months ago Karma: 2
Thank you Iarwain. The script should be able to spit out compile-able Visual Studio and Codelite solutions now. Only one way to know for sure:

Would any Windows users care to test?

Just grab the premake4 file attached, rename it to premake4.lua and put it in the orx/code/build directory. Make sure premake4 is installed and run it to create the projects.

The command is: premake4 vs2010

You can use vs2008, vs2005, or codelite instead of vs2010.

Also, you need to run it from inside the orx/code/build directory.

If it explodes in your face, come back here and yell at me.
File Attachment:
File Name: premake4-ce42b8b04f48d74abca33b30a62516c3.txt
File Size: 13249
 
Logged Logged
  The administrator has disabled public write access.
#5399
4babce
Junior Boarder
Posts: 20
graphgraph
User Offline Click here to see the profile of this user
Re:Help request: mercurial, bitbucket and buildbot 4 Years, 5 Months ago Karma: 2
I think I misspelled a library in that previous version. If it doesn't work with VS, this one might work better.
File Attachment:
File Name: premake4-54821d1b7ae6a73509d25bfe1361df97.txt
File Size: 13452
 
Logged Logged
  The administrator has disabled public write access.
#5403
iarwain
Administrator
Posts: 3107
graph
User Offline Click here to see the profile of this user
Gender: Male Orx - Portable Game Engine Location: Montreal
Re:Help request: mercurial, bitbucket and buildbot 4 Years, 5 Months ago Karma: 71
Thanks!

I'll give it a try tomorrow night. Would you rather have a write access to orx instead of posting the file here?
Another option would be to fork orx and create some pull requests.
 
Logged Logged
 
Want to follow orx's development? Go subscribe to the orx-dev group at: https://groups.google.com/forum/?fromgroups#!forum/orx-dev
  The administrator has disabled public write access.
#5410
4babce
Junior Boarder
Posts: 20
graphgraph
User Offline Click here to see the profile of this user
Re:Help request: mercurial, bitbucket and buildbot 4 Years, 5 Months ago Karma: 2
I suppose that would be a better storage space. Don't give me write access though. I forked orx, and sent a pull request, though I don't know if you want this version in the main, as opposed to waiting until the script is complete and tested.
 
Logged Logged
  The administrator has disabled public write access.
#5411
iarwain
Administrator
Posts: 3107
graph
User Offline Click here to see the profile of this user
Gender: Male Orx - Portable Game Engine Location: Montreal
Re:Help request: mercurial, bitbucket and buildbot 4 Years, 5 Months ago Karma: 71
No need for a branch as we're not yet using premake to generate any file: while the system is not online you can make changes in the default branch as much as you want.
I'll remove orx.premake too.
 
Logged Logged
 
Want to follow orx's development? Go subscribe to the orx-dev group at: https://groups.google.com/forum/?fromgroups#!forum/orx-dev
  The administrator has disabled public write access.
#5422
faistoiplaisir
Moderator
Posts: 119
graphgraph
User Offline Click here to see the profile of this user
Re:Help request: mercurial, bitbucket and buildbot 4 Years, 5 Months ago Karma: 4
Hi,

I recently want to try SublimeTex and remove VS, so I need to compile orx on Windows using another compiler. I just installed MinGW and tried to create a Makefile to compil orxLIB. I asked some questions to Iarwain and he talked to me about that post.

I have downloaded premake, read really quickly its documentation, ran it in the build directory with the command premak4 gmake. It's magic and really nice, it works and compile find (I have tested orxLIB compilation). Really nice idea to use this tool!

But, I have a problem at link, external libraries are not found, I suppose it's normal because I haven't compil them (ld cannot find -lBox2D for example).

It's planned to create a premake file for external library? Or maybe I missed something?
 
Logged Logged
  The administrator has disabled public write access.
#5425
faistoiplaisir
Moderator
Posts: 119
graphgraph
User Offline Click here to see the profile of this user
Re:Help request: mercurial, bitbucket and buildbot 4 Years, 5 Months ago Karma: 4
Hi again !

I find some mingw library in the extern directory. There's nothing to build them, but the library exist, don't know how

(EDIT: I'm stupid, I know how, using codelite on windows ... but I don't have it)

So I did some little change in the premake4.lua and now I have a orx.dll (not tested yet).

I replace some "codelite" to "gmake":

1/ line 369 : to enable all extern mingw library in the library path
2/ line 468 : to enable sndfile to be linked

With that, mingw32-make orxLIB seems to work.

So, I suppose there's not a lot to do to enable gmake on windows without hacking the premake file like me

4babce, good job, really appreciate, thanks !
 
Logged Logged
 
Last Edit: 2012/11/03 09:35 By faistoiplaisir.
  The administrator has disabled public write access.
#5427
4babce
Junior Boarder
Posts: 20
graphgraph
User Offline Click here to see the profile of this user
Re:Help request: mercurial, bitbucket and buildbot 4 Years, 5 Months ago Karma: 2
Thank you Faistoiplaisir, for testing and debugging the windows builds!
I have made the required changes, so gmake should build properly on windows now.
And, yes, hopefully the extern dependancies will be automatically built in the future, but for the time being they should be pre-compiled for you.
 
Logged Logged
  The administrator has disabled public write access.
#5428
faistoiplaisir
Moderator
Posts: 119
graphgraph
User Offline Click here to see the profile of this user
Re:Help request: mercurial, bitbucket and buildbot 4 Years, 5 Months ago Karma: 4
You're welcome

Your modification works! Thanks!

I will post here some little remarks when I will found some mistake about premake.

For example, I saw that building the debug configuration for orx build orx.exe instead of orxd.exe.
 
Logged Logged
  The administrator has disabled public write access.
#5446
iarwain
Administrator
Posts: 3107
graph
User Offline Click here to see the profile of this user
Gender: Male Orx - Portable Game Engine Location: Montreal
Re:Help request: mercurial, bitbucket and buildbot 4 Years, 5 Months ago Karma: 71
Hey there!

I finally got the time to give it a try, however I ran into some troubles.

When I run premake4 vs2010 (or any configuration, really), I get an error about "invalid flags". It'll actually stop at the first "flags" found in the script, no matter its value. Any idea?

PS: Using Premake 4.4-beta4 on windows.
 
Logged Logged
 
Last Edit: 2012/11/08 03:07 By iarwain.
 
Want to follow orx's development? Go subscribe to the orx-dev group at: https://groups.google.com/forum/?fromgroups#!forum/orx-dev
  The administrator has disabled public write access.
#5447
iarwain
Administrator
Posts: 3107
graph
User Offline Click here to see the profile of this user
Gender: Male Orx - Portable Game Engine Location: Montreal
Re:Help request: mercurial, bitbucket and buildbot 4 Years, 5 Months ago Karma: 71
Meh, nevermind: works fine with premake 4.3
 
Logged Logged
 
Want to follow orx's development? Go subscribe to the orx-dev group at: https://groups.google.com/forum/?fromgroups#!forum/orx-dev
  The administrator has disabled public write access.
Go to top