brintos

brintos / llvm-project-archived public Read only

0
0
Text · 4.2 KiB · 23d9d49 Raw
103 lines · plain
1message(STATUS "LLDB.framework: build path is '${LLDB_FRAMEWORK_ABSOLUTE_BUILD_DIR}'")2message(STATUS "LLDB.framework: install path is '${LLDB_FRAMEWORK_INSTALL_DIR}'")3message(STATUS "LLDB.framework: resources subdirectory is 'Versions/${LLDB_FRAMEWORK_VERSION}/Resources'")4 5# Configure liblldb as a framework bundle6if(NOT APPLE_EMBEDDED)7  set_target_properties(liblldb PROPERTIES8    FRAMEWORK ON9    FRAMEWORK_VERSION ${LLDB_FRAMEWORK_VERSION}10 11    OUTPUT_NAME LLDB12    VERSION ${LLDB_VERSION}13    LIBRARY_OUTPUT_DIRECTORY ${LLDB_FRAMEWORK_ABSOLUTE_BUILD_DIR}14 15    # Compatibility version16    SOVERSION "1.0.0"17 18    MACOSX_FRAMEWORK_IDENTIFIER com.apple.LLDB.framework19    MACOSX_FRAMEWORK_BUNDLE_VERSION ${LLDB_VERSION}20    MACOSX_FRAMEWORK_SHORT_VERSION_STRING ${LLDB_VERSION}21    MACOSX_FRAMEWORK_INFO_PLIST ${LLDB_SOURCE_DIR}/resources/LLDB-Info.plist.in22  )23else()24  set_target_properties(liblldb PROPERTIES25    FRAMEWORK ON26    FRAMEWORK_VERSION ${LLDB_FRAMEWORK_VERSION}27 28    # Note: iOS doesn't specify version, as the framework layout is flat.29    OUTPUT_NAME LLDB30    LIBRARY_OUTPUT_DIRECTORY ${LLDB_FRAMEWORK_ABSOLUTE_BUILD_DIR}31 32    MACOSX_FRAMEWORK_IDENTIFIER com.apple.LLDB.framework33    MACOSX_FRAMEWORK_BUNDLE_VERSION ${LLDB_VERSION}34    MACOSX_FRAMEWORK_SHORT_VERSION_STRING ${LLDB_VERSION}35    MACOSX_FRAMEWORK_INFO_PLIST ${LLDB_SOURCE_DIR}/resources/LLDB-Info.plist.in36  )37endif()38 39# Used in llvm_add_library() to set default output directories for multi-config40# generators. Overwrite to account for special framework output directory.41set_output_directory(liblldb42  BINARY_DIR ${LLDB_FRAMEWORK_ABSOLUTE_BUILD_DIR}43  LIBRARY_DIR ${LLDB_FRAMEWORK_ABSOLUTE_BUILD_DIR}44)45 46lldb_add_post_install_steps_darwin(liblldb ${LLDB_FRAMEWORK_INSTALL_DIR})47 48# Affects the layout of the framework bundle (default is macOS layout).49if(APPLE_EMBEDDED)50  set_target_properties(liblldb PROPERTIES51    XCODE_ATTRIBUTE_IPHONEOS_DEPLOYMENT_TARGET "${IPHONEOS_DEPLOYMENT_TARGET}")52else()53  set_target_properties(liblldb PROPERTIES54    XCODE_ATTRIBUTE_MACOSX_DEPLOYMENT_TARGET "${MACOSX_DEPLOYMENT_TARGET}")55endif()56 57# Add -Wdocumentation parameter58set(CMAKE_XCODE_ATTRIBUTE_CLANG_WARN_DOCUMENTATION_COMMENTS "YES")59 60# On iOS, there is no versioned framework layout. Skip this symlink step.61if(NOT APPLE_EMBEDDED)62  # Apart from this one, CMake creates all required symlinks in the framework bundle.63  add_custom_command(TARGET liblldb POST_BUILD64    COMMAND ${CMAKE_COMMAND} -E create_symlink65            Versions/Current/Headers66            ${LLDB_FRAMEWORK_ABSOLUTE_BUILD_DIR}/LLDB.framework/Headers67    COMMENT "LLDB.framework: create Headers symlink"68  )69endif()70 71# Wrap output in a target, so lldb-framework can depend on it.72add_custom_target(liblldb-resource-headers DEPENDS lldb-sbapi-dwarf-enums ${lldb_staged_headers})73set_target_properties(liblldb-resource-headers PROPERTIES FOLDER "LLDB/Resources")74# We're taking the header files from where they've been staged in the build directory's include folder,75# so create a dependency on the build step that creates that directory.76add_dependencies(liblldb-resource-headers liblldb-header-staging)77add_dependencies(liblldb liblldb-resource-headers)78 79# Copy vendor-specific headers from clang (without staging).80if(NOT APPLE_EMBEDDED)81  if (TARGET clang-resource-headers)82    add_dependencies(liblldb clang-resource-headers)83    set(clang_resource_headers_dir $<TARGET_PROPERTY:clang-resource-headers,INTERFACE_INCLUDE_DIRECTORIES>)84  else()85    set(clang_resource_headers_dir ${LLDB_EXTERNAL_CLANG_RESOURCE_DIR}/include)86    if(NOT EXISTS ${clang_resource_headers_dir})87      message(WARNING "Expected directory for clang-resource headers not found: ${clang_resource_headers_dir}")88    endif()89  endif()90 91  add_custom_command(TARGET liblldb POST_BUILD92    COMMAND ${CMAKE_COMMAND} -E copy_directory93            ${clang_resource_headers_dir}94            $<TARGET_FILE_DIR:liblldb>/Resources/Clang/include95    COMMENT "LLDB.framework: copy clang vendor-specific headers"96  )97endif()98 99# Add an rpath pointing to the directory where LLDB.framework is installed.100# This allows frameworks (relying on @rpath) to be installed in the same folder and found at runtime.101set_property(TARGET liblldb APPEND PROPERTY INSTALL_RPATH102  "@loader_path/../../../")103