Jump to content

Switching to stormlib


Guest theluda_

Recommended Posts

Greetings,

as many of you know, we have been using libmpq all these years, to read and extract data from the World of Warcraft game client. Sadly, libmpq is not actively maintained anymore, thus we have been looking for an alternative and luckily there is one: stormlib.

I am currently preparing stormlib for integration to the various mangos on https://github.com/TheLuda/stormlib.

stormlib will only include CMake based building and no more predumped build files for Windows, Linux, and Mac OS. Thus I would like to ask the community to test building from my repository to iron out any build issues before the library hits our repositories.

stormlib will be used in the map, vmap, and movement map extraction process, instead of the old libmpq version. This will also add the ability to read and write to Cataclysm MPQ archives for our upcoming cataclysm branch.

A nice addition also would be smpq, which is basically an archiving utility tailored towards MPQ archives using stormlib as its' backend. With it you can peek into archives, and read or modify them, too. It does support patch archives, and a few other goodies, too.

Link to comment
Share on other sites

Why change something that is working?

Because we need stormlib for Cataclysm and later, and maintaining to MPQ libraries across all branches would be a waste of time. Besides stormlib is well-grounded in the StarCraft mod scene and comes with quite nifty docs.

With this implementation, remove win project files completely and use cmake for win?

We will soon drop all generated build files from the repositories. I will need a few Windows test piglets though to test my changes to our CMake build files to ensure all working smoothly.

Link to comment
Share on other sites

We will soon drop all generated build files from the repositories. I will need a few Windows test piglets though to test my changes to our CMake build files to ensure all working smoothly.

I'll volunteer for that, I have an excess of hardware and vm space to bring up and tear down pretty much any OS you can point me a download to. I was going to dry run build and installs for the main OSes anyhow to update the Wiki how-to's.

Link to comment
Share on other sites

Let's here the results then. I just pushed and tagged both stormlib 8.10 and 8.20 to the repository.

If you stumble across any issues, let's hear them. I want to make the README as awesome as can be so that installation of stormlib will be flawless.

Link to comment
Share on other sites

You can have very usable VS projects generated by CMake. If what you saw sucked, it's most likely because the other of the CMake definitions sucked, too. And honestly, the mangos CMake definitions work, but they are not sufficient, and are not as clean and well written as I want them to be.

Link to comment
Share on other sites

Maybe main problem with cmake at windows platform si attempting emulate old VS projects structure and way work.

I start use recently (last year) cmake as main project preparing tool for my personal problems (from start creating project) and it generate good projects for windows and unix cases (mingw tested) without too many windows/unix specific hacks.

Current cmake code for mangos created as mimic old VS projects, and this can be main problem.

Link to comment
Share on other sites

CMake generated project files are good enough if you only want to build mangos but they are BS if you want to develop.

They work fine, and you do not have to changed them all the time, unless you are dealing with a lot of files that are not included in mangos.

All that is lacking in structure is a matter of adding definitions and groups in the CMake definitions.

Link to comment
Share on other sites

VS not cross platform. If you develop in VS you actually don't need CMake. So this is problem for those who develop in VS :)

Strange comment... mangos is cross platform project and some developers use VS as main development tool for coding when work at it.

How this related to platform independence of project itself and platfrom dependence VS. Return to original note meaning: current cmake generated VS project have some problems for VS based debuging for developers. If this can be avoid it will be nice and resolve need in pre-created VS projects in repo.

Link to comment
Share on other sites

I'm just wondering why there was never any poll for this (or something alike)?

With even (former) devs mentioning their disfavor, it's weird that it's an incoming change no matter what, no?

When it's main purpose is to make cataclysm possible, i personally am not in favor for it either.

Link to comment
Share on other sites

Don't mixup :)

This discussion here is typical bikeshed discussion..

No one really want's to focus on differences between stormlib and the lib we currently use.

But something as unimportant as a build system - especially when possible to feed with personal likes or dislike - is a much easier point to discuss :)

Well, we will switch to storm-lib, and will continue to support direct VC project files.

This topic is mostly about testing luda's progress in swithing to stormlib with VC project files (as there are many different possible combinataions that require checking)

Could those having issues with the CMake generated files on Window be a bit more explicit about what is not working? I would really like to fix those issues so that CMake is valuable for all target platforms.

For me I think "nothing" worked is a very good state of describing the problems.

I don't remember what exactly I tried when testing (after all this was a year ago), but the results were really bad..

Also I think SD2 integration was quite tough with cmake (at least not work with the simple cmake-patch to include sd2)

A small constructive note @ theLuda

In view of dynamic vmaps Reamer proposed a change in vmaps. Such change will require a new MAP_MAGIC_VERSION, and hence a rebuild of maps, vmaps and mmaps.

I think we should time to switch to stormlib with implementing liquid extraction commits as in https://github.com/LumenWoW/mangos/commits/dynVmaps

(or something we consider better)

So that ppl don't have to reextract and rebuild too often!

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. Privacy Policy Terms of Use