aboutsummaryrefslogtreecommitdiff
path: root/llvm/utils/llvm-lit/CMakeLists.txt
blob: 8ee8e98541ce452841fb07df381b9438ffe40440 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
get_property(LLVM_LIT_CONFIG_FILES GLOBAL PROPERTY LLVM_LIT_CONFIG_FILES)
list(LENGTH LLVM_LIT_CONFIG_FILES file_len)
math(EXPR file_last "${file_len} - 1")

get_llvm_lit_path(LIT_BASE_DIR LIT_FILE_NAME)

set(LLVM_SOURCE_DIR ${LLVM_MAIN_SRC_DIR})

# LLVM_LIT_CONFIG_FILES contains interleaved main config (in the source tree)
# and site config (in the build tree) pairs. Make them relative to
# llvm-lit and then convert them to map_config() calls.
if("${CMAKE_CFG_INTDIR}" STREQUAL ".")
  make_paths_relative(
    LLVM_LIT_CONFIG_FILES "${LIT_BASE_DIR}" "${LLVM_LIT_CONFIG_FILES}")
  make_paths_relative(
    LLVM_SOURCE_DIR "${LIT_BASE_DIR}" "${LLVM_SOURCE_DIR}")
endif()

set(LLVM_LIT_CONFIG_MAP "${LLVM_LIT_PATH_FUNCTION}\n")
if (${file_last} GREATER -1)
  foreach(i RANGE 0 ${file_last} 2)
    list(GET LLVM_LIT_CONFIG_FILES ${i} main_config)
    math(EXPR i1 "${i} + 1")
    list(GET LLVM_LIT_CONFIG_FILES ${i1} site_out)
    set(map "map_config(path(r'${main_config}'), path(r'${site_out}'))")
    set(LLVM_LIT_CONFIG_MAP "${LLVM_LIT_CONFIG_MAP}\n${map}")
  endforeach()
endif()

if(NOT "${CMAKE_CFG_INTDIR}" STREQUAL ".")
  foreach(BUILD_MODE ${CMAKE_CONFIGURATION_TYPES})
    string(REPLACE ${CMAKE_CFG_INTDIR} ${BUILD_MODE} bi ${LIT_BASE_DIR})
    set(bi "${bi}/${LIT_FILE_NAME}")
    configure_file(
      llvm-lit.in
      ${bi}
      )
    if (WIN32)
      string(REPLACE ${CMAKE_CFG_INTDIR} ${BUILD_MODE} bi_dir ${LIT_BASE_DIR})
      configure_file(
        llvm-lit.cmd.in
        ${bi_dir}/llvm-lit.cmd
        @ONLY
        NEWLINE_STYLE DOS)
    endif()
  endforeach()
else()
  set(BUILD_MODE .)
  configure_file(
    llvm-lit.in
    ${LIT_BASE_DIR}/${LIT_FILE_NAME}
    )
  if (WIN32)
    configure_file(
      llvm-lit.cmd.in
      ${LIT_BASE_DIR}/llvm-lit.cmd
      @ONLY
      NEWLINE_STYLE DOS)
  endif()  
endif()