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