Since I now know how to both run OS X on PC and compile Spring using MinGW / Cmake, I'm going to try my hand at pushing out a compilation of Springlobby and Spring 0.80 for mass OS X distribution. Before I get started, is there anything major in the source that would need to be changed that a relative noob like me would not be able to do? Anything with Springlobby?
i can not help you with your question, but as you know how to compile it ... Please try to make the redlink on the top of this page blue: http://springrts.com/wiki/Engine_Development maybe copy over from the linux page, for a better start.
Provided you get the dependencies right and use cmake, SpringLobby should compile just fine. If it doesn't we've introduced something mac incompatible in the last two months which would be easy to fix. We have very little up-to-date info documented on our wiki, please add whatever obstacles or solutions you may come across: http://springlobby.info/wiki/springlobby/MacOS
there are couple branches with mac fixes, i've helped zeuchs to build spring on mac ( altough i have no mac myself ), poke me in the lobby and i'll try to give you an hand
building 0.80 rls of spring and I got this far (with a bit of modification)
Code:
Linking CXX executable ../spring Undefined symbols: "_MacMessageBox", referenced from: ErrorMessageBox(char const*, char const*, unsigned int)in errorhandler.cpp.o "float3::NORMALIZE_EPS", referenced from: __ZN6float313NORMALIZE_EPSE$non_lazy_ptr in Camera.cpp.o __ZN6float313NORMALIZE_EPSE$non_lazy_ptr in CameraHandler.cpp.o __ZN6float313NORMALIZE_EPSE$non_lazy_ptr in Game.cpp.o __ZN6float313NORMALIZE_EPSE$non_lazy_ptr in GameHelper.cpp.o __ZN6float313NORMALIZE_EPSE$non_lazy_ptr in SelectedUnitsAI.cpp.o __ZN6float313NORMALIZE_EPSE$non_lazy_ptr in FPSController.cpp.o __ZN6float313NORMALIZE_EPSE$non_lazy_ptr in FreeController.cpp.o __ZN6float313NORMALIZE_EPSE$non_lazy_ptr in OrbitController.cpp.o __ZN6float313NORMALIZE_EPSE$non_lazy_ptr in OverheadController.cpp.o __ZN6float313NORMALIZE_EPSE$non_lazy_ptr in OverviewController.cpp.o __ZN6float313NORMALIZE_EPSE$non_lazy_ptr in RotOverheadController.cpp.o __ZN6float313NORMALIZE_EPSE$non_lazy_ptr in SmoothController.cpp.o __ZN6float313NORMALIZE_EPSE$non_lazy_ptr in TWController.cpp.o __ZN6float313NORMALIZE_EPSE$non_lazy_ptr in AirScript.cpp.o __ZN6float313NORMALIZE_EPSE$non_lazy_ptr in GuiHandler.cpp.o __ZN6float313NORMALIZE_EPSE$non_lazy_ptr in MouseHandler.cpp.o __ZN6float313NORMALIZE_EPSE$non_lazy_ptr in SelectionKeyHandler.cpp.o __ZN6float313NORMALIZE_EPSE$non_lazy_ptr in LuaSyncedCtrl.cpp.o __ZN6float313NORMALIZE_EPSE$non_lazy_ptr in BasicMapDamage.cpp.o __ZN6float313NORMALIZE_EPSE$non_lazy_ptr in Ground.cpp.o __ZN6float313NORMALIZE_EPSE$non_lazy_ptr in MapInfo.cpp.o __ZN6float313NORMALIZE_EPSE$non_lazy_ptr in ReadMap.cpp.o __ZN6float313NORMALIZE_EPSE$non_lazy_ptr in Frustum.cpp.o __ZN6float313NORMALIZE_EPSE$non_lazy_ptr in Sm3GroundDrawer.cpp.o __ZN6float313NORMALIZE_EPSE$non_lazy_ptr in Lightcalc.cpp.o __ZN6float313NORMALIZE_EPSE$non_lazy_ptr in QuadRenderData.cpp.o __ZN6float313NORMALIZE_EPSE$non_lazy_ptr in Terrain.cpp.o __ZN6float313NORMALIZE_EPSE$non_lazy_ptr in TerrainTexture.cpp.o __ZN6float313NORMALIZE_EPSE$non_lazy_ptr in TerrainUtil.cpp.o __ZN6float313NORMALIZE_EPSE$non_lazy_ptr in Textures.cpp.o __ZN6float313NORMALIZE_EPSE$non_lazy_ptr in BFGroundDrawer.cpp.o __ZN6float313NORMALIZE_EPSE$non_lazy_ptr in SmfReadMap.cpp.o __ZN6float313NORMALIZE_EPSE$non_lazy_ptr in GroundFlash.cpp.o __ZN6float313NORMALIZE_EPSE$non_lazy_ptr in InMapDraw.cpp.o __ZN6float313NORMALIZE_EPSE$non_lazy_ptr in ShadowHandler.cpp.o __ZN6float313NORMALIZE_EPSE$non_lazy_ptr in AdvSky.cpp.o __ZN6float313NORMALIZE_EPSE$non_lazy_ptr in AdvTreeDrawer.cpp.o __ZN6float313NORMALIZE_EPSE$non_lazy_ptr in AdvTreeGenerator.cpp.o __ZN6float313NORMALIZE_EPSE$non_lazy_ptr in AdvWater.cpp.o __ZN6float313NORMALIZE_EPSE$non_lazy_ptr in BasicSky.cpp.o __ZN6float313NORMALIZE_EPSE$non_lazy_ptr in DynWater.cpp.o __ZN6float313NORMALIZE_EPSE$non_lazy_ptr in GrassDrawer.cpp.o __ZN6float313NORMALIZE_EPSE$non_lazy_ptr in 3DOParser.cpp.o __ZN6float313NORMALIZE_EPSE$non_lazy_ptr in s3oParser.cpp.o __ZN6float313NORMALIZE_EPSE$non_lazy_ptr in UnitDrawer.cpp.o __ZN6float313NORMALIZE_EPSE$non_lazy_ptr in Feature.cpp.o __ZN6float313NORMALIZE_EPSE$non_lazy_ptr in CollisionHandler.cpp.o __ZN6float313NORMALIZE_EPSE$non_lazy_ptr in GeometricObjects.cpp.o __ZN6float313NORMALIZE_EPSE$non_lazy_ptr in Wind.cpp.o __ZN6float313NORMALIZE_EPSE$non_lazy_ptr in AirMoveType.cpp.o __ZN6float313NORMALIZE_EPSE$non_lazy_ptr in GroundMoveType.cpp.o __ZN6float313NORMALIZE_EPSE$non_lazy_ptr in TAAirMoveType.cpp.o __ZN6float313NORMALIZE_EPSE$non_lazy_ptr in MoveMath.cpp.o __ZN6float313NORMALIZE_EPSE$non_lazy_ptr in ExplosionGenerator.cpp.o __ZN6float313NORMALIZE_EPSE$non_lazy_ptr in PieceProjectile.cpp.o __ZN6float313NORMALIZE_EPSE$non_lazy_ptr in ProjectileHandler.cpp.o __ZN6float313NORMALIZE_EPSE$non_lazy_ptr in BeamLaserProjectile.cpp.o __ZN6float313NORMALIZE_EPSE$non_lazy_ptr in EmgProjectile.cpp.o __ZN6float313NORMALIZE_EPSE$non_lazy_ptr in ExplosiveProjectile.cpp.o __ZN6float313NORMALIZE_EPSE$non_lazy_ptr in FlameProjectile.cpp.o __ZN6float313NORMALIZE_EPSE$non_lazy_ptr in LargeBeamLaserProjectile.cpp.o __ZN6float313NORMALIZE_EPSE$non_lazy_ptr in LaserProjectile.cpp.o __ZN6float313NORMALIZE_EPSE$non_lazy_ptr in LightningProjectile.cpp.o __ZN6float313NORMALIZE_EPSE$non_lazy_ptr in MissileProjectile.cpp.o __ZN6float313NORMALIZE_EPSE$non_lazy_ptr in StarburstProjectile.cpp.o __ZN6float313NORMALIZE_EPSE$non_lazy_ptr in TorpedoProjectile.cpp.o __ZN6float313NORMALIZE_EPSE$non_lazy_ptr in WeaponProjectile.cpp.o __ZN6float313NORMALIZE_EPSE$non_lazy_ptr in BitmapMuzzleFlame.cpp.o __ZN6float313NORMALIZE_EPSE$non_lazy_ptr in ExploSpikeProjectile.cpp.o __ZN6float313NORMALIZE_EPSE$non_lazy_ptr in GenericParticleProjectile.cpp.o __ZN6float313NORMALIZE_EPSE$non_lazy_ptr in GeoSquareProjectile.cpp.o __ZN6float313NORMALIZE_EPSE$non_lazy_ptr in GeoThermSmokeProjectile.cpp.o __ZN6float313NORMALIZE_EPSE$non_lazy_ptr in RepulseGfx.cpp.o __ZN6float313NORMALIZE_EPSE$non_lazy_ptr in SimpleParticleSystem.cpp.o __ZN6float313NORMALIZE_EPSE$non_lazy_ptr in SmokeTrailProjectile.cpp.o __ZN6float313NORMALIZE_EPSE$non_lazy_ptr in Unit.cpp.o __ZN6float313NORMALIZE_EPSE$non_lazy_ptr in UnitDefHandler.cpp.o __ZN6float313NORMALIZE_EPSE$non_lazy_ptr in UnitTracker.cpp.o __ZN6float313NORMALIZE_EPSE$non_lazy_ptr in UnitScript.cpp.o __ZN6float313NORMALIZE_EPSE$non_lazy_ptr in BuilderCAI.cpp.o __ZN6float313NORMALIZE_EPSE$non_lazy_ptr in MobileCAI.cpp.o __ZN6float313NORMALIZE_EPSE$non_lazy_ptr in TransportCAI.cpp.o __ZN6float313NORMALIZE_EPSE$non_lazy_ptr in Builder.cpp.o __ZN6float313NORMALIZE_EPSE$non_lazy_ptr in BeamLaser.cpp.o __ZN6float313NORMALIZE_EPSE$non_lazy_ptr in bombdropper.cpp.o __ZN6float313NORMALIZE_EPSE$non_lazy_ptr in Cannon.cpp.o __ZN6float313NORMALIZE_EPSE$non_lazy_ptr in DGunWeapon.cpp.o __ZN6float313NORMALIZE_EPSE$non_lazy_ptr in EmgCannon.cpp.o __ZN6float313NORMALIZE_EPSE$non_lazy_ptr in FlameThrower.cpp.o __ZN6float313NORMALIZE_EPSE$non_lazy_ptr in LaserCannon.cpp.o __ZN6float313NORMALIZE_EPSE$non_lazy_ptr in LightningCannon.cpp.o __ZN6float313NORMALIZE_EPSE$non_lazy_ptr in MeleeWeapon.cpp.o __ZN6float313NORMALIZE_EPSE$non_lazy_ptr in MissileLauncher.cpp.o __ZN6float313NORMALIZE_EPSE$non_lazy_ptr in PlasmaRepulser.cpp.o __ZN6float313NORMALIZE_EPSE$non_lazy_ptr in Rifle.cpp.o __ZN6float313NORMALIZE_EPSE$non_lazy_ptr in StarburstLauncher.cpp.o __ZN6float313NORMALIZE_EPSE$non_lazy_ptr in TorpedoLauncher.cpp.o __ZN6float313NORMALIZE_EPSE$non_lazy_ptr in Weapon.cpp.o __ZN6float313NORMALIZE_EPSE$non_lazy_ptr in Matrix44f.cpp.o __ZN6float313NORMALIZE_EPSE$non_lazy_ptr in EngineOutHandler.cpp.o "float3::CMP_EPS", referenced from: __ZN6float37CMP_EPSE$non_lazy_ptr in GameHelper.cpp.o __ZN6float37CMP_EPSE$non_lazy_ptr in OrbitController.cpp.o __ZN6float37CMP_EPSE$non_lazy_ptr in s3oParser.cpp.o __ZN6float37CMP_EPSE$non_lazy_ptr in Feature.cpp.o __ZN6float37CMP_EPSE$non_lazy_ptr in CollisionVolume.cpp.o __ZN6float37CMP_EPSE$non_lazy_ptr in AirMoveType.cpp.o __ZN6float37CMP_EPSE$non_lazy_ptr in GroundMoveType.cpp.o __ZN6float37CMP_EPSE$non_lazy_ptr in ScriptMoveType.cpp.o __ZN6float37CMP_EPSE$non_lazy_ptr in TAAirMoveType.cpp.o __ZN6float37CMP_EPSE$non_lazy_ptr in PathManager.cpp.o __ZN6float37CMP_EPSE$non_lazy_ptr in LaserProjectile.cpp.o __ZN6float37CMP_EPSE$non_lazy_ptr in MissileProjectile.cpp.o __ZN6float37CMP_EPSE$non_lazy_ptr in BuilderCAI.cpp.o __ZN6float37CMP_EPSE$non_lazy_ptr in MobileCAI.cpp.o __ZN6float37CMP_EPSE$non_lazy_ptr in PlasmaRepulser.cpp.o __ZN6float37CMP_EPSE$non_lazy_ptr in Weapon.cpp.o "CSound::CSound()", referenced from: CPreGame::CPreGame(ClientSetup const*)in PreGame.cpp.o CPreGame::CPreGame(ClientSetup const*)in PreGame.cpp.o ld: symbol(s) not found collect2: ld returned 1 exit status make[2]: *** [spring] Error 1 make[1]: *** [rts/CMakeFiles/spring.dir/all] Error 2 make: *** [all] Error 2
any idea what could be causing this?
I think I might call it a day, this is frying my brain haha
there are mac specific branches to allow building spring on mac don't start from the release or you'll have to basically recreate all the fixes yourself, one of the branches is in my github repo
However, now mainwindow.cpp is throwing out heaps of build errors
It's only one error I see. The problem seems to be you have a wxWidgets build of the 2.6 series, but you need 2.8.x (where 2.8.10 ist latest).
I have downloaded and compiled and linked all the 2.8.10 libraries, unless there is a version of wxwidgets this thing is picking up that is pre-installed in leopard?
I've got some free time coming up, so I'll pump some hours in. There won't be much left to change to get it to compile I imagine. :)
Joined: 10 May 2009, 07:16 Location: Sapporo, Japan
Now with the Spring 0.80 released, I'm thinking about building it for Mac, too. I had been trying to build a mac binary months before (cf. the last few pages of http://springrts.com/phpbb/viewtopic.php?f=12&t=8819).
Though the branch is not updated for months, you should be able to compile this branch if you have proper libraries installed. Libraries required: boost, DevIL, freetype, glew, and SDL Because I submited many unnecesary commits to the branch, I was about to leave it and to make a new branch from 0.80.2 for Mac - until I found this forum. Regrettably, my skills may be not great enough to have general release done, so I hope you will do it beautifully. Call me if there's anything I can help.
We need more OS X fixes rolled into main. The idea of maintaining OS X support as a separate branch is imo not healthy because all work is discarded everytime a new spring release is made, and theres no incentive to do proper fixes because its not going in the main branch and its safe to do a shoddy fix and update ti later
The idea of maintaining OS X support as a separate branch is imo not healthy because all work is discarded everytime a new spring release is made
no, git branches are not like svn branches, takes much more than a couple commits to break them
EDIT: if it's not clear, i am all for merging it in master once it's ready, just that there is no rush needed, especially when it has high potential to screw stuff in other platforms
also... yokosou, what you hsoudl do is rebasing your branch on current master in interactive mode. this lets you delete commits on hte go, and you will end up with the usefull commts on top of current master. you dont have to start something clean/new from scratch.. you can also edit commits wiht this method (the messages and the changes in the files).
Users browsing this forum: No registered users and 1 guest
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot post attachments in this forum