zturner accepted this revision.
zturner added a comment.
This revision is now accepted and ready to land.
If the above if / else is equivalent, I prefer if you change it to that before
comitting. If not, feel free to commit as is.
================
Comment at: cmake/modules/LLDBConfig.cmake:61
@@ +60,3 @@
+ # below, otherwise CMake will replace the whitespace with a semicolon in
some contexts (which would stuff things up).
+ set (PYTHON_EXECUTABLE
$<$<CONFIG:Debug>:${PYTHON_DEBUG_EXE}>$<$<NOT:$<CONFIG:Debug>>:${PYTHON_RELEASE_EXE}>)
+ set (PYTHON_LIBRARY
$<$<CONFIG:Debug>:${PYTHON_DEBUG_LIB}>$<$<NOT:$<CONFIG:Debug>>:${PYTHON_RELEASE_LIB}>)
----------------
enlight wrote:
> zturner wrote:
> > This line is hard to parse mentally, and I'm not sure I've seen this kind
> > of nested generator expression. I trust you when you say it's right, but
> > can you explain what this does?
> Sure thing.
>
> # `$<CONFIG:Debug>` evaluates to `1` when the `Debug` configuration is
> being generated, or `0` in all other cases.
> # `$<$<CONFIG:Debug>:${PYTHON_DEBUG_EXE}>` expands to `${PYTHON_DEBUG_EXE}`
> when the `Debug` configuration is being generated, or nothing (literally) in
> all other cases.
> # `$<$<NOT:$<CONFIG:Debug>>:${PYTHON_RELEASE_EXE}>` expands to
> `${PYTHON_RELEASE_EXE}` when any configuration other than `Debug` is being
> generated, or nothing in all other cases.
>
> Since the conditionals in 2 & 3 are mutually exclusive, and a conditional
> expression that evaluates to `0` yields no value at all, it's possible to
> concatenate them to obtain a single value. This value will be
> `${PYTHON_DEBUG_EXE}` when generating the Debug configuration, or
> `${PYTHON_RELEASE_EXE}` when generating any other configuration.
Ahh, I understand. Is it equivalent to write this:
if ($<CONFIG:Debug> == 1)
set(PYTHON_EXECUTABLE ${PYTHON_DEBUG_EXE})
else()
set(PYTHON_EXECUTABLE ${PYTHON_RELEASE_EXE})
endif()
? If so, I kind of prefer this way, if nothing else so that other people will
be able to understand it in the future if they go to edit this code.
Repository:
rL LLVM
http://reviews.llvm.org/D13234
_______________________________________________
lldb-commits mailing list
[email protected]
http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits