3 ms·
What I find a big shortcoming from CMake is that it does not have support for building for multiple architectures at once. https://cmake.org/pipermail/cmake-de
by MrQuincle 8y ago
What I find a big shortcoming from CMake is that it does not have support for building for multiple architectures at once.
https://cmake.org/pipermail/cmake-developers/2014-September/022929.html https://cmake.org/pipermail/cmake-developers/2014-September/...
Quote: "The fundamental problem with supporting multiple architectures is
that pretty much all of CMake is designed to support one architecture
at a time. Modules/*, CMakeCache.txt, etc. are all built around only
finding, using, and building one artifact per library (OS X universal
binaries work with multiple architectures because they are still only
one file). I think even your "toolchain scope" approach would end
up being used in practice to wrap the entire CMakeLists.txt file."
- simonask 8y agoCMake replaces `configure` scripts. It would be difficult to imagine what multi-architecture support in a single build directory / command-line invocation would look like. Instead, what we do is to wrap calls to CMake in a script that makes choices about build directories, which flavours to build by default, which mobile SDKs exist, etc. When producing a release, we notably don't use this, because we are precisely interested in building for each architecture in parallel on different machines.
- MrQuincle 8y agoYes, for cross-compiling to targets with different configurations we also evoke CMake with lots of options. However, that you have to wrap calls to CMake in your scripts is quite ugly. Are those scripts cross-platform for starters? As soon as you start to write code to use CMake, this seem to defeat the purpose of a build generator.
- amrox 8y agoOpenCV includes a python script to build a framework for iOS. I agree, it’s not great.
- vetinari 8y ago> It would be difficult to imagine what multi-architecture support in a single build directory / command-line invocation would look like That's exactly what MacOS fat binaries are. Single binary contains sections for multiple architectures.