Eric Noulard wrote:

When ones do cross compile for the host + one or several target a lighter
"add_superbuild" API could be design. I'll try to think about it more
thoroughly and do some proposal. Ideally we shouldn't need to provide many
parameters beside the toolchain and a way to specify "the host build".

I guess putting the host-build location in the toolchain file could be one way to just get it done. In case one has multiple builds that should share one host build then just set an absolute location, and if you don't it will be below your
normal build directory.

There are just 2 things that scare me a bit off: we surely want a way to break that into smaller pieces so we can introduce it over multiple releases, maybe even as a tech-preview so we can break things if we see that we have not taken a bigger usecase in account, and I currently don't see the points to slice that up.

And we really, really want a .cmake_no_freaking_in_source_build_under_any_circumstances or however we gonna call it, and we need that first. There has been wasted enough time with in-source builds, missing cleanups and all the weird side effects in our industry for decades, and sadly CMake hasn't stopped that nonsense entirely. There are still projects out there that can only build this way because they do some assumptions on where to pick up files, but for something that will end up mixed cross/host build this
will never under any circumstances going to work.

I wonder if we can't just add it as extra argument to cmake_minimum_required(), in a way that you _have_ to specify ALLOW_IN_SOURCE_BUILD explicitely if you require a version newer than say 3.14, so anyone that is not explicitely requesting this to work will automagically end up in a "clean" setup. Of course we need to make sure that no file is written by CMake until that line is parsed (or any other command is encountered). Or simply do something similar when using toolchain files, which CMake can detect before
even start parsing the main CMakeLists.txt.

Eike
--

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-developers

Reply via email to