[llvm-dev] [CMake] Re-configuring Debug and Release builds

David Greene via llvm-dev llvm-dev at lists.llvm.org
Fri Mar 8 13:17:42 PST 2019


<paul.robinson at sony.com> writes:

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

https://llvm.org/docs/CMake.html#cmake-caches seems to imply that -D
options should override cache values, but it doesn't for
CMAKE_BUILD_TYPE.

                               -David


More information about the llvm-dev mailing list