Multiple "projects" one directory

classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|

Multiple "projects" one directory

Scott Aron Bloom-2

I have a rather complicated Qt based project.

 

We are looking at rolling out a subset tool, and it will be significantly smaller in functionality.

 

For that mode, I would like to set a CMake variable LITEVERSION that builds the tool with -DLITEVERSION defined. 

however, one (or two) folders, the main executable (and possibly the main window folder), and I would like include into the tool with this turned on, and with it turned off

 

Is that possible?

 

Other times I have done this, I just have two build areas.. But 90% of this code base is the same, and will be built independent of the flag. So Id rather not build it twice

 

Scott


--

Powered by www.kitware.com

Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ

Kitware offers various services to support the CMake community. For more information on each offering, please visit:

CMake Support: http://cmake.org/cmake/help/support.html
CMake Consulting: http://cmake.org/cmake/help/consulting.html
CMake Training Courses: http://cmake.org/cmake/help/training.html

Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html

Follow this link to subscribe/unsubscribe:
https://cmake.org/mailman/listinfo/cmake
Reply | Threaded
Open this post in threaded view
|

Re: Multiple "projects" one directory

J Decker
You can solve this by treating those local projects as external projects; then they can be built with independant flags....

include( ExternalProject )

https://github.com/d3x0r/SACK/blob/master/CMakeLists.txt#L1769

ExternalProject_Add( ppc_portable
SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/makefiles/prog/ppc
BINARY_DIR ppc_portable
INSTALL_DIR ${CMAKE_INSTALL_PREFIX}
BUILD_ALWAYS 1
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX:PATH=<INSTALL_DIR>
......
.... (more args...) )
 
I find, because it's a local project; the build_always is kinda required, if you make changes to the sources it doesn't even check to see if it needs to build without BUILD_ALWAYS.


On Fri, Apr 27, 2018 at 3:06 PM, Scott Bloom <[hidden email]> wrote:

I have a rather complicated Qt based project.

 

We are looking at rolling out a subset tool, and it will be significantly smaller in functionality.

 

For that mode, I would like to set a CMake variable LITEVERSION that builds the tool with -DLITEVERSION defined. 

however, one (or two) folders, the main executable (and possibly the main window folder), and I would like include into the tool with this turned on, and with it turned off

 

Is that possible?

 

Other times I have done this, I just have two build areas.. But 90% of this code base is the same, and will be built independent of the flag. So Id rather not build it twice

 

Scott


--

Powered by www.kitware.com

Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ

Kitware offers various services to support the CMake community. For more information on each offering, please visit:

CMake Support: http://cmake.org/cmake/help/support.html
CMake Consulting: http://cmake.org/cmake/help/consulting.html
CMake Training Courses: http://cmake.org/cmake/help/training.html

Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html

Follow this link to subscribe/unsubscribe:
https://cmake.org/mailman/listinfo/cmake



--

Powered by www.kitware.com

Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ

Kitware offers various services to support the CMake community. For more information on each offering, please visit:

CMake Support: http://cmake.org/cmake/help/support.html
CMake Consulting: http://cmake.org/cmake/help/consulting.html
CMake Training Courses: http://cmake.org/cmake/help/training.html

Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html

Follow this link to subscribe/unsubscribe:
https://cmake.org/mailman/listinfo/cmake
Reply | Threaded
Open this post in threaded view
|

Re: Multiple "projects" one directory

Alan W. Irwin
In reply to this post by Scott Aron Bloom-2
On 2018-04-27 22:06-0000 Scott Bloom wrote:

> I have a rather complicated Qt based project.
>
> We are looking at rolling out a subset tool, and it will be significantly smaller in functionality.
>
> For that mode, I would like to set a CMake variable LITEVERSION that builds the tool with -DLITEVERSION defined.
>
> however, one (or two) folders, the main executable (and possibly the main window folder), and I would like include into the tool with this turned on, and with it turned off
>
> Is that possible?
>
> Other times I have done this, I just have two build areas.. But 90% of this code base is the same, and will be built independent of the flag. So Id rather not build it twice

Hi Scott:

My opinion is two build areas is actually the way to go.  Also, have
you considered using ccache?  With that software (see
<http://ccache.samba.org/>, rebuild costs tend to be negligible so
that two build areas which build largely the same code will not cost
that much more to build than one build area.

Alan
__________________________
Alan W. Irwin

Astronomical research affiliation with Department of Physics and Astronomy,
University of Victoria (astrowww.phys.uvic.ca).

Programming affiliations with the FreeEOS equation-of-state
implementation for stellar interiors (freeeos.sf.net); the Time
Ephemerides project (timeephem.sf.net); PLplot scientific plotting
software package (plplot.sf.net); the libLASi project
(unifont.org/lasi); the Loads of Linux Links project (loll.sf.net);
and the Linux Brochure Project (lbproject.sf.net).
__________________________

Linux-powered Science
__________________________
--

Powered by www.kitware.com

Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ

Kitware offers various services to support the CMake community. For more information on each offering, please visit:

CMake Support: http://cmake.org/cmake/help/support.html
CMake Consulting: http://cmake.org/cmake/help/consulting.html
CMake Training Courses: http://cmake.org/cmake/help/training.html

Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html

Follow this link to subscribe/unsubscribe:
https://cmake.org/mailman/listinfo/cmake
Reply | Threaded
Open this post in threaded view
|

Re: Multiple "projects" one directory

Scott Aron Bloom-2
Thanks I'll look into it. 



~~Scott


-------- Original message --------
From: "Alan W. Irwin" <[hidden email]>
Date: 4/28/18 01:07 (GMT-08:00)
To: Scott Bloom <[hidden email]>
Subject: Re: [CMake] Multiple "projects" one directory

On 2018-04-27 22:06-0000 Scott Bloom wrote:

> I have a rather complicated Qt based project.
>
> We are looking at rolling out a subset tool, and it will be significantly smaller in functionality.
>
> For that mode, I would like to set a CMake variable LITEVERSION that builds the tool with -DLITEVERSION defined.
>
> however, one (or two) folders, the main executable (and possibly the main window folder), and I would like include into the tool with this turned on, and with it turned off
>
> Is that possible?
>
> Other times I have done this, I just have two build areas.. But 90% of this code base is the same, and will be built independent of the flag. So Id rather not build it twice

Hi Scott:

My opinion is two build areas is actually the way to go.  Also, have
you considered using ccache?  With that software (see
<http://ccache.samba.org/>, rebuild costs tend to be negligible so
that two build areas which build largely the same code will not cost
that much more to build than one build area.

Alan
__________________________
Alan W. Irwin

Astronomical research affiliation with Department of Physics and Astronomy,
University of Victoria (astrowww.phys.uvic.ca).

Programming affiliations with the FreeEOS equation-of-state
implementation for stellar interiors (freeeos.sf.net); the Time
Ephemerides project (timeephem.sf.net); PLplot scientific plotting
software package (plplot.sf.net); the libLASi project
(unifont.org/lasi); the Loads of Linux Links project (loll.sf.net);
and the Linux Brochure Project (lbproject.sf.net).
__________________________

Linux-powered Science
__________________________

--

Powered by www.kitware.com

Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ

Kitware offers various services to support the CMake community. For more information on each offering, please visit:

CMake Support: http://cmake.org/cmake/help/support.html
CMake Consulting: http://cmake.org/cmake/help/consulting.html
CMake Training Courses: http://cmake.org/cmake/help/training.html

Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html

Follow this link to subscribe/unsubscribe:
https://cmake.org/mailman/listinfo/cmake