Hi all,

As requested by Brad King I've written a small (ish?) design proposal
for #16633 [1]. I've written it as a reStructuredText document here [2].

I'll give a short summary here:

I wish to be able to have the CTestTestfile.cmake output files generated
at an alternative location. The primary reason is to create a separate
dir-tree from the build output dir containing no intermediate build
products (unlinked object files/static archives) to save on space for
parallel CI systems.

The two primary requirements I have for a solution to this are:
1. Generate files in the alternate location to allow ctest to be
   executed from that location
2. Runtime behaviour in ${CMAKE_BINARY_DIR} (build output dir)
   should stay equivalent to when this option isn't used
 - execution order may change, what gets executed must not

My design proposal addresses this as follows:
1. Add a new CTEST_OUTPUT_DIRECTORY test property
 - similar to the RUNTIME_OUTPUT_DIRECTORY target property
2. Change CTestTestfile.cmake generation to:
 a. Write its output to the new location specified in that test property
 b. At the "old" location write a "redirect" statement to the new
location (using "SUBDIRS(${CTEST_OUTPUT_DIRECTORY})").

More details are in [2], but this is the gist of it.

Do you think this design idea has merit, have any suggestions for
improvements?

[1]: https://gitlab.kitware.com/cmake/cmake/issues/16633
[2]: 
https://gitlab.kitware.com/muggenhor/cmake/blob/ctest-alt-dir/Help/ctest_alt_dir.rst

-- 
Met vriendelijke groet,
With kind regards,
Giel van Schijndel
--
"There are only two kinds of languages: the ones people complain about
 and the ones nobody uses."
  -- Bjarne Stroustrup

Attachment: signature.asc
Description: PGP signature

-- 

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:
http://public.kitware.com/mailman/listinfo/cmake-developers

Reply via email to