On 2019-03-28 02:24-0000 Scott Bloom wrote:

Note, Im running from inside visual studio...  I do realize for a makefile 
based system, I can run make install from inside the executable's build 
directory

From: CMake <cmake-boun...@cmake.org> On Behalf Of Scott Bloom
Sent: Wednesday, March 27, 2019 7:23 PM
To: cmake@cmake.org
Subject: [CMake] Install without building unittests

I asked this a couple of years ago, and the answer was "no"...

If you run tests, it doesn't automatically build tests...  So why does an 
install?

I would never release something into the wild with out running the tests...

But, for developer builds, were we need to install all the packages in order to 
run the applications, sometimes I just want to test the GUI which requires an 
install of the core application into the correct location, without building the 
1500+ (yes 1500) unittests, which can take 15-20 minutes to build on their 
own...

Is there anyway to break the dependency??

The "install" target depends on the "all" target, and the "all" target
depends on everything built with "add_executable".  And I and
presumably many other users of CMake would not be happy if the CMake
developers decided to change these fundamental characteristics of
CMake.  However, I think you can straightforwardly achieve exactly
what you want to do as follows:

option(BUILD_UNIT_TESTS "Build unit tests?" OFF)
if(BUILD_UNIT_TESTS)
.... loop over add_executable for your various unit tests
endif(BUILD_UNIT_TESTS)

Of course, it is not as simple as that, and likely your builds of unit tests 
are scattered
all over your build system, but the point is to protect all use of 
"add_executable" for
those tests with an if block as above.  Then you specify -DBUILD_UNIT_TESTS=ON 
cmake option
if you actually do want to build your unit tests, but otherwise the default is 
not to build them
(just like you apparently want).

We have used a similar option over the years with the CMake-based build system 
for PLplot
(in our case whether to build our standard examples in the build tree so we can 
test there in
addition to our normal build and test of those examples in the installed 
examples tree).
That method has worked well for us, and I think it would work well for your 
needs also.

Alan
__________________________
Alan W. Irwin

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 via email to