[CMake] Generate ${BUILD_MODE}/llvm-lit for each ${CMAKE_CONFIGURATION_TYPES}.
authorNAKAMURA Takumi <geek4civic@gmail.com>
Mon, 30 Dec 2013 07:02:12 +0000 (07:02 +0000)
committerNAKAMURA Takumi <geek4civic@gmail.com>
Mon, 30 Dec 2013 07:02:12 +0000 (07:02 +0000)
llvm-lit can be invoked;

  $ Release/bin/llvm-lit

instead of;

  $ bin/llvm-lit --param buid_mode=Release

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@198206 91177308-0d34-0410-b5e6-96231b3b80d8

utils/llvm-lit/CMakeLists.txt
utils/llvm-lit/llvm-lit.in

index 585753427ac4b59a16582141ab9c721a6a33468f..4b10354cfdeabaee6f6a33487981053ae6507c69 100644 (file)
@@ -2,8 +2,20 @@ if (WIN32 AND NOT CYGWIN)
   # llvm-lit needs suffix.py for multiprocess to find a main module.
   set(suffix .py)
 endif ()
+set(llvm_lit_path ${LLVM_RUNTIME_OUTPUT_INTDIR}/llvm-lit${suffix})
 
-configure_file(
-  llvm-lit.in
-  ${LLVM_TOOLS_BINARY_DIR}/llvm-lit${suffix}
-  )
+if(NOT "${CMAKE_CFG_INTDIR}" STREQUAL ".")
+  foreach(BUILD_MODE ${CMAKE_CONFIGURATION_TYPES})
+    string(REPLACE ${CMAKE_CFG_INTDIR} ${BUILD_MODE} bi ${llvm_lit_path})
+    configure_file(
+      llvm-lit.in
+      ${bi}
+      )
+  endforeach()
+else()
+  set(BUILD_MODE .)
+  configure_file(
+    llvm-lit.in
+    ${llvm_lit_path}
+    )
+endif()
index 4c836c88d935d450c699675e8d9f07e26d51feb3..6ee12185a3bf4b3df1854f19917abf10f6d995d3 100755 (executable)
@@ -13,7 +13,7 @@ sys.path.insert(0, os.path.join(llvm_source_root, 'utils', 'lit'))
 # Set up some builtin parameters, so that by default the LLVM test suite
 # configuration file knows how to find the object tree.
 builtin_parameters = {
-    'build_mode' : "@CMAKE_CFG_INTDIR@",
+    'build_mode' : "@BUILD_MODE@",
     'llvm_site_config' : os.path.join(llvm_obj_root, 'test', 'lit.site.cfg'),
     'llvm_unit_site_config' : os.path.join(llvm_obj_root, 'test', 'Unit',
                                            'lit.site.cfg')