View Issue Details

IDProjectCategoryView StatusLast Update
0000940Spring engineGeneralpublic2008-05-25 15:04
Reportersombriks Assigned ToAuswaschbar  
PrioritynormalSeverityfeatureReproducibilityN/A
Status resolvedResolutionfixed 
Fixed in Version0.76b1+svn 
Summary0000940: add CMake as another build option
DescriptionScons is an unusual build system and even doing a good work its hits me in the brain every time that i try to understand the overall build process.

Long time ago one said something about move to CMake, and these days i've read some papers about that build option... and it seems good to work!

it's able to generate from a single CMakeLists.txt a good buildscript and also solve dependencies using a good subset of ready to use macros (the .cmake files) while create your own macros are a easy task.

If any other are inclined to try something on this way, please tell me, i would like some explanations about build process in order to try to write some .cmake files and enable some sugar in order to create CMakeLists.txt using FIND_PACKAGE macros.
Additional Informationsome links, to support my wish, ;)

http://www.google.com.br/search?q=cmake+tutorial&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:en-US:official&client=firefox-a
http://www.cmake.org/Wiki/CMake_HowToFindInstalledSoftware

a more critic link showing what cmake can and what cmake can't do:
http://www.remlab.net/op/cmake.shtml

TagsNo tags attached.
Attached Files
build_with_cmake.patch (Attachment missing)
build_with_cmake_tobi.patch (Attachment missing)
Checked infolog.txt for Errors

Activities

Auswaschbar

2008-05-19 10:48

reporter   ~0002293

Last edited: 2008-05-19 12:12

I wrote a cmake script which can compile spring.

Here are some features:
- it only needs the /rts/ subdirectory, so you don't need to checkout whole trunk
- it supports out-of-source builds, so you can use one source tree to compile with different settings (debug, release, USE_MMGR etc.)
- its tested on linux-native, linux-mingw, and windows-mingw
- only 150 lines of code (with comments)

I will upload it here later
edit: here it is, please try it and post the results

imbaczek

2008-05-19 20:26

reporter   ~0002294

No cross-compilation
    There is no documented support for cross-compilation. This is scheduled for a future release.

this basically means a no-go... unless it can be worked around.

Auswaschbar

2008-05-19 21:33

reporter   ~0002295

CMake 2.6 was released before a week or so. Cross compilation works, and the generated executable works fine with wine.

tvo

2008-05-20 22:20

reporter   ~0002301

I have halfway working cmake files too (also with some Find*, rts/lib stuff compilable separately, and maybe somewhat more, don't exactly remember.)

Doesn't sync yet with release though I think, didn't add much compile flags yet.

sombriks

2008-05-21 00:29

reporter   ~0002302

:)

don't forget guys that no one there are talking about wipe out other build system support, since CMake is just simpler in some cases but lacks some useful options.

there are some .cmake modules, which can be used directly or as base for another module in order to simplify the dependencies tracking process. Also the cmake wiki
(http://www.cmake.org/Wiki/Main_Page) have nice tutorials, seems to be the best resource about CMake.

i'm working so much now (not even to play Spring i have time, :/) but that weekend i will try to compile the rts using some cmake features.

tvo

2008-05-24 22:47

reporter   ~0002311

I added what I have, some differences I noticed already while skimming through Auswaschbar's version are:

- I started big with making Find* stuff too; not sure that was a really good idea after all.
- it's not working with current trunk, probably because of the file list in it (I didn't use that AUX_ thing)
- I've way too much code :-)

For the rest it also only needs /rts/, supports out of source builds and IIRC I tested it on linux-native and linux-mingw, but not windows-mingw yet (probably doesn't work on it)

Auswaschbar

2008-05-25 15:04

reporter   ~0002312

Cmake-files were added in 5940.

Issue History

Date Modified Username Field Change
2008-05-19 07:38 sombriks New Issue
2008-05-19 10:48 Auswaschbar Note Added: 0002293
2008-05-19 12:10 Auswaschbar File Added: build_with_cmake.patch
2008-05-19 12:11 Auswaschbar Note Edited: 0002293
2008-05-19 12:12 Auswaschbar Note Edited: 0002293
2008-05-19 20:26 imbaczek Note Added: 0002294
2008-05-19 21:33 Auswaschbar Note Added: 0002295
2008-05-20 22:20 tvo Note Added: 0002301
2008-05-21 00:29 sombriks Note Added: 0002302
2008-05-24 22:40 tvo File Added: build_with_cmake_tobi.patch
2008-05-24 22:47 tvo Note Added: 0002311
2008-05-25 15:04 Auswaschbar Status new => resolved
2008-05-25 15:04 Auswaschbar Fixed in Version => 0.76b1+svn
2008-05-25 15:04 Auswaschbar Resolution open => fixed
2008-05-25 15:04 Auswaschbar Assigned To => Auswaschbar
2008-05-25 15:04 Auswaschbar Note Added: 0002312