Toon posts:

CMake build dir

Pagina: 1
Acties:

  • LauPro
  • Registratie: Augustus 2001
  • Laatst online: 07-06 11:04

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:
  • 0Henk 'm!

  • xos
  • Registratie: Januari 2002
  • Laatst online: 30-05 16:01
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.

  • LauPro
  • Registratie: Augustus 2001
  • Laatst online: 07-06 11:04

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!



Tweakers maakt gebruik van cookies

Tweakers plaatst functionele en analytische cookies voor het functioneren van de website en het verbeteren van de website-ervaring. Deze cookies zijn noodzakelijk. Om op Tweakers relevantere advertenties te tonen en om ingesloten content van derden te tonen (bijvoorbeeld video's), vragen we je toestemming. Via ingesloten content kunnen derde partijen diensten leveren en verbeteren, bezoekersstatistieken bijhouden, gepersonaliseerde content tonen, gerichte advertenties tonen en gebruikersprofielen opbouwen. Hiervoor worden apparaatgegevens, IP-adres, geolocatie en surfgedrag vastgelegd.

Meer informatie vind je in ons cookiebeleid.

Sluiten

Toestemming beheren

Hieronder kun je per doeleinde of partij toestemming geven of intrekken. Meer informatie vind je in ons cookiebeleid.

Functioneel en analytisch

Deze cookies zijn noodzakelijk voor het functioneren van de website en het verbeteren van de website-ervaring. Klik op het informatie-icoon voor meer informatie. Meer details

janee

    Relevantere advertenties

    Dit beperkt het aantal keer dat dezelfde advertentie getoond wordt (frequency capping) en maakt het mogelijk om binnen Tweakers contextuele advertenties te tonen op basis van pagina's die je hebt bezocht. Meer details

    Tweakers genereert een willekeurige unieke code als identifier. Deze data wordt niet gedeeld met adverteerders of andere derde partijen en je kunt niet buiten Tweakers gevolgd worden. Indien je bent ingelogd, wordt deze identifier gekoppeld aan je account. Indien je niet bent ingelogd, wordt deze identifier gekoppeld aan je sessie die maximaal 4 maanden actief blijft. Je kunt deze toestemming te allen tijde intrekken.

    Ingesloten content van derden

    Deze cookies kunnen door derde partijen geplaatst worden via ingesloten content. Klik op het informatie-icoon voor meer informatie over de verwerkingsdoeleinden. Meer details

    janee