brintos

brintos / llvm-project-archived public Read only

0
0
Text · 3.5 KiB · f3f7501 Raw
105 lines · plain
1# Make lldb-dotest a custom target.2add_custom_target(lldb-dotest)3add_dependencies(lldb-dotest lldb-test-depends)4set_target_properties(lldb-dotest PROPERTIES FOLDER "LLDB/Utils")5 6get_property(LLDB_TEST_USER_ARGS GLOBAL PROPERTY LLDB_TEST_USER_ARGS_PROPERTY)7get_property(LLDB_TEST_COMMON_ARGS GLOBAL PROPERTY LLDB_TEST_COMMON_ARGS_PROPERTY)8set(LLDB_LIBS_DIR "${LLVM_LIBRARY_OUTPUT_INTDIR}")9 10llvm_canonicalize_cmake_booleans(11  LLDB_BUILD_INTEL_PT12  LLDB_HAS_LIBCXX13)14 15if ("libcxx" IN_LIST LLVM_ENABLE_RUNTIMES)16  set(LLDB_HAS_LIBCXX ON)17  if(LLVM_ENABLE_PER_TARGET_RUNTIME_DIR AND NOT APPLE)18    set(LIBCXX_TARGET_SUBDIR ${LLVM_DEFAULT_TARGET_TRIPLE})19    if(LIBCXX_LIBDIR_SUBDIR)20      string(APPEND LIBCXX_TARGET_SUBDIR /${LIBCXX_LIBDIR_SUBDIR})21    endif()22    cmake_path(NORMAL_PATH LIBCXX_TARGET_SUBDIR)23    set(LIBCXX_LIBRARY_DIR ${LLVM_LIBRARY_OUTPUT_INTDIR}/${LIBCXX_TARGET_SUBDIR})24    set(LIBCXX_GENERATED_INCLUDE_DIR "${LLVM_BINARY_DIR}/include/c++/v1")25    set(LIBCXX_GENERATED_INCLUDE_TARGET_DIR "${LLVM_BINARY_DIR}/include/${LIBCXX_TARGET_SUBDIR}/c++/v1")26  else()27    set(LIBCXX_LIBRARY_DIR ${CMAKE_BINARY_DIR}/lib${LIBCXX_LIBDIR_SUFFIX})28    set(LIBCXX_GENERATED_INCLUDE_DIR "${CMAKE_BINARY_DIR}/include/c++/v1")29  endif()30endif()31 32set(LLVM_TOOLS_DIR "${LLVM_TOOLS_BINARY_DIR}")33set(vars34  LLDB_TEST_COMMON_ARGS35  LLDB_TEST_USER_ARGS36  LLDB_SOURCE_DIR37  LLDB_FRAMEWORK_DIR38  LLDB_TEST_BUILD_DIRECTORY39  LLDB_TEST_EXECUTABLE40  LLDB_TEST_COMPILER41  LLDB_TEST_DSYMUTIL42  LLDB_TEST_MAKE43  LLDB_LIBS_DIR44  LLVM_TOOLS_DIR45  LIBCXX_LIBRARY_DIR46  LIBCXX_GENERATED_INCLUDE_DIR47  LIBCXX_GENERATED_INCLUDE_TARGET_DIR48  )49 50llvm_canonicalize_cmake_booleans(LLDB_HAS_LIBCXX)51 52# Generate lldb-dotest Python driver script for each build mode.53if(LLDB_BUILT_STANDALONE)54  set(config_types ".")55  if(CMAKE_CONFIGURATION_TYPES)56    set(config_types ${CMAKE_CONFIGURATION_TYPES})57  endif()58  foreach(config_type ${config_types})59    # In paths to our build-tree, replace CMAKE_CFG_INTDIR with our actual configuration names.60    string(REPLACE ${CMAKE_CFG_INTDIR} ${config_type} config_runtime_output_dir ${LLVM_RUNTIME_OUTPUT_INTDIR})61    foreach(var ${vars})62      string(REPLACE ${LLVM_RUNTIME_OUTPUT_INTDIR} ${config_runtime_output_dir} "${var}_CONFIGURED" "${${var}}")63    endforeach()64 65    # Remaining ones must be paths to the provided LLVM build-tree.66    if(${config_type} IN_LIST LLVM_CONFIGURATION_TYPES)67      # Multi-configuration generator like Xcode (with a matching config).68      foreach(var ${vars})69        string(REPLACE ${CMAKE_CFG_INTDIR} ${config_type} "${var}_CONFIGURED" "${${var}}")70      endforeach()71    else()72      # Single-configuration generator like Ninja.73      foreach(var ${vars})74        string(REPLACE ${CMAKE_CFG_INTDIR} "." "${var}_CONFIGURED" "${${var}}")75      endforeach()76    endif()77 78    configure_file(79      lldb-dotest.in80      ${config_runtime_output_dir}/lldb-dotest @ONLY81    )82  endforeach()83elseif(NOT "${CMAKE_CFG_INTDIR}" STREQUAL ".")84  foreach(LLVM_BUILD_MODE ${CMAKE_CONFIGURATION_TYPES})85    string(REPLACE ${CMAKE_CFG_INTDIR} ${LLVM_BUILD_MODE} LLDB_DOTEST_DIR ${LLVM_RUNTIME_OUTPUT_INTDIR})86    foreach(var ${vars})87      string(REPLACE ${CMAKE_CFG_INTDIR} ${LLVM_BUILD_MODE} "${var}_CONFIGURED" "${${var}}")88    endforeach()89 90    configure_file(91      lldb-dotest.in92      ${LLDB_DOTEST_DIR}/lldb-dotest93      )94  endforeach()95else()96  foreach(var ${vars})97    set("${var}_CONFIGURED" "${${var}}")98  endforeach()99 100  configure_file(101    lldb-dotest.in102    ${LLVM_RUNTIME_OUTPUT_INTDIR}/lldb-dotest103    )104endif()105