If I've configured a Release build, build it and then go back and re-run
cmake with -DCMAKE_BUILD_TYPE=Debug (and nothing else changed), almost
nothing gets rebuilt when I try to build. Is this expected? I know I
can edit CMakeCache.txt directly and trigger an essentially full
rebuild.
From: llvm-dev [mailto:llvm-dev-bounces@lists.llvm.org] On Behalf Of David
Greene via llvm-dev
Sent: Friday, March 08, 2019 10:49 AM
To: llvm-dev@lists.llvm.org
Subject: [llvm-dev] [CMake] Re-configuring Debug and Release builds
If I've configured a Release build, build it and then go back and re-run
cmake with -DCMAKE_BUILD_TYPE=Debug (and nothing else changed), almost
nothing gets rebuilt when I try to build. Is this expected? I know I
can edit CMakeCache.txt directly and trigger an essentially full
rebuild.
IME rerunning CMake with new options really does nothing; CMakeCache.txt
appears to override the command line, which is not intuitive but seems
to be how it actually works.
I would hope that this is not a choice made by the LLVM project but a
bug/feature of CMake itself. But I haven't ever had the energy to
pursue it.
--paulr
If I've configured a Release build, build it and then go back and re-run
cmake with -DCMAKE_BUILD_TYPE=Debug (and nothing else changed), almost
nothing gets rebuilt when I try to build. Is this expected? I know I
can edit CMakeCache.txt directly and trigger an essentially full
rebuild.
IME rerunning CMake with new options really does nothing; CMakeCache.txt
appears to override the command line, which is not intuitive but seems
to be how it actually works.
I thought so too at first, except changing LLVM_TARGETS_TO_BUILD when
re-running CMake does indeed cause any new targets to be built. So it
can't be the case that the cache overrides everything.
I would hope that this is not a choice made by the LLVM project but a
bug/feature of CMake itself. But I haven't ever had the energy to
pursue it.