enlight added inline comments.

================
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}>)
----------------
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.


Repository:
  rL LLVM

http://reviews.llvm.org/D13234



_______________________________________________
lldb-commits mailing list
lldb-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to