Acties:
  • 0 Henk 'm!

  • LauPro
  • Registratie: Augustus 2001
  • Laatst online: 02-10 15:26

LauPro

Prof Mierenneuke®

Topicstarter
Steeds meer begin ik ervan overtuigd te raken dat CMake een harde faal is. De syntax is behoorlijk ouderwets en nodeloos redundant:
CMake:
1
2
3
4
5
if(DEFINED MONOLITHIC)
 message(STATUS "Building monolithic version")
else(DEFINED MONOLITHIC)
 message(STATUS "Building modular version")
endif(DEFINED MONOLITHIC)
Cleaner zou zijn:
code:
1
2
3
4
5
if(DEFINED DOIP_MONOLITHIC){
 message(STATUS "Building monolithic version")
}else{
 message(STATUS "Building modular version")
}
En dan het liefst zonder het geschreeuw, sommige developers schrijven ook alle functies en commando's in hoofdletters...




Anyway, ik zit met het probleem dat ik een build directory wil gebruiken. Echter kom ik er maar niet achter hoe je dit doet.

Ik heb een project met verschillende modules e.d. en zou graag willen dat alle binaries in 1 grote dit komen. Ik heb al lopen pielen met CMAKE_BINARY_DIR maar de binaries worden nog steeds in de originele mappen gezet. Wat kan het zijn? De build files zelfs zijn vrij lang en niet zo interessant, ik heb het gevoel dat er ergens iets ingesteld moet worden.

Inkoopacties - HENK terug! - Megabit
It is a war here, so be a general!


Acties:
  • 0 Henk 'm!

  • xos
  • Registratie: Januari 2002
  • Laatst online: 12-09 12:41

xos

Ik weet niet of je probleem al is opgelost ik zag je topic pas net. Volgens mij wil je EXECUTABLE_OUTPUT_PATH en LIBRARY_OUTPUT_PATH gebruiken.

code:
1
2
set(EXECUTABLE_OUTPUT_PATH ${PROJECT_BINARY_DIR})
set(LIBRARY_OUTPUT_PATH ${PROJECT_BINARY_DIR})


Je binaries/libraries worden nu in de root van je build tree geplaatst. Volgens mij werkt dit zowel met in source als out of source builds. Ik gebruik het voor out of source builds en daar werkt het prima. CMake vind ik overigens een prima tool afgezien van cdash wat imho echt een draak van een applicatie is.

Acties:
  • 0 Henk 'm!

  • LauPro
  • Registratie: Augustus 2001
  • Laatst online: 02-10 15:26

LauPro

Prof Mierenneuke®

Topicstarter
Dank, ik was er inmiddels uitgekomen. Er is een optie in KDevelop waarmee je het kan doen, moet even uitzoeken welk commando dat dan precies is.

Inkoopacties - HENK terug! - Megabit
It is a war here, so be a general!