UNPKG

chrome-devtools-frontend

Version:
159 lines (138 loc) 5.84 kB
# Copyright 2023 The Chromium Authors. All rights reserved. # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. set(DEV_RESOURCES TestDriver.js DevToolsPluginForTests.html index.html ) set(EXTENSION_RESOURCES DevToolsPlugin.html ExtensionOptions.html ) foreach(EXTENSION_RESOURCE IN LISTS EXTENSION_RESOURCES DEV_RESOURCES) copy_file(${EXTENSION_RESOURCE} ${EXTENSION_RESOURCE}) endforeach(EXTENSION_RESOURCE) configure_file(manifest.json.in manifest.json @ONLY) set(EXTENSION_BUNDLE_ENTRYPOINTS DevToolsPluginHost.js DevToolsPluginWorkerMain.js ExtensionOptions.js ) if (NOT CMAKE_BUILD_TYPE STREQUAL "Release") set(EXTENSION_BUNDLE_SOURCEMAP TRUE) else() set(EXTENSION_BUNDLE_SOURCEMAP FALSE) endif() set(EXTENSION_BUNDLE_FORMAT "es") set(EXTENSION_BUNDLED_SOURCES) foreach(entrypoint IN LISTS EXTENSION_BUNDLE_ENTRYPOINTS) get_filename_component(NAME_WE ${entrypoint} NAME_WE) list(APPEND EXTENSION_BUNDLED_SOURCES ${CMAKE_CURRENT_BINARY_DIR}/${NAME_WE}.bundle.js) endforeach() configure_file(rollup.config.in.js rollup.config.in.js @ONLY) file(GENERATE OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/rollup.config.js INPUT ${CMAKE_CURRENT_BINARY_DIR}/rollup.config.in.js) add_custom_command( OUTPUT ${EXTENSION_BUNDLED_SOURCES} COMMAND ${CMAKE_COMMAND} ARGS -E env NODE_PATH=${PROJECT_SOURCE_DIR}/node_modules:${DEVTOOLS_SOURCE_DIR}/node_modules python3 ${DEVTOOLS_SOURCE_DIR}/third_party/node/node.py --output ${DEVTOOLS_SOURCE_DIR}/node_modules/.bin/rollup -c --failAfterWarnings WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} MAIN_DEPENDENCY ${CMAKE_CURRENT_BINARY_DIR}/rollup.config.js DEPENDS ${TS_COMPILER_OUTPUTS} ) add_custom_target(Bundles DEPENDS ${EXTENSION_BUNDLED_SOURCES}) add_executable(SymbolsBackend SymbolsBackend.cc) target_link_libraries(SymbolsBackend PUBLIC DWARFSymbols) target_include_directories(SymbolsBackend PUBLIC ${PROJECT_SOURCE_DIR}/third_party/emscripten/system/include) target_link_libraries(SymbolsBackend PRIVATE -sMAXIMUM_MEMORY=4GB) target_link_libraries(SymbolsBackend PRIVATE -sALLOW_MEMORY_GROWTH=1) target_link_libraries(SymbolsBackend PRIVATE -sMODULARIZE=1) target_link_libraries(SymbolsBackend PRIVATE -s'EXPORT_NAME=createSymbolsBackend') target_link_libraries(SymbolsBackend PRIVATE -s'EXTRA_EXPORTED_RUNTIME_METHODS=[\"FS\"]') target_link_libraries(SymbolsBackend PRIVATE -sERROR_ON_UNDEFINED_SYMBOLS=0) target_link_libraries(SymbolsBackend PRIVATE --bind) target_link_libraries(SymbolsBackend PRIVATE --no-heap-copy) target_link_libraries(SymbolsBackend PRIVATE -sSEPARATE_DWARF_URL=SymbolsBackend.wasm.debug.wasm) target_link_libraries(SymbolsBackend PRIVATE -sWASM_BIGINT -sDYNAMIC_EXECUTION=0 ) if (CXX_DEBUGGING_USE_SANITIZERS) target_link_libraries(SymbolsBackend PRIVATE -sINITIAL_MEMORY=1073741824 -fsanitize=address,undefined ) endif() if (NOT CMAKE_BUILD_TYPE STREQUAL "Release") target_link_libraries(SymbolsBackend PRIVATE -sERROR_ON_WASM_CHANGES_AFTER_LINK -sREVERSE_DEPS=all -sASSERTIONS=1 ) else() target_link_libraries(SymbolsBackend PRIVATE -sASSERTIONS=0) endif() target_link_libraries(SymbolsBackend PRIVATE -s'ENVIRONMENT=web,worker') target_link_libraries(SymbolsBackend PRIVATE -s'EXPORT_ES6=1') add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/SymbolsBackend.wasm.debug.wasm.dwp COMMAND ${LLVM_DWP} ARGS -e ${CMAKE_CURRENT_BINARY_DIR}/SymbolsBackend.wasm.debug.wasm -o ${CMAKE_CURRENT_BINARY_DIR}/SymbolsBackend.wasm.debug.wasm.dwp WORKING_DIRECTORY ${PROJECT_BINARY_DIR} DEPENDS SymbolsBackend) option(CXX_DEBUGGING_DWO_ONLY "Do not build dwp when using split dwarf" OFF) if(CXX_DEBUGGING_USE_SPLIT_DWARF) if(CXX_DEBUGGING_DWO_ONLY) if(EXISTS ${CMAKE_CURRENT_BINARY_DIR}/SymbolsBackend.wasm.debug.wasm.dwp) message(WARNING "File ${CMAKE_CURRENT_BINARY_DIR}/SymbolsBackend.wasm.debug.wasm.dwp exists from a previous build and will likely be used when debugging. This is probably not what you want.") endif() file(CREATE_LINK ${PROJECT_BINARY_DIR}/src ${CMAKE_CURRENT_BINARY_DIR}/src SYMBOLIC) file(CREATE_LINK ${PROJECT_BINARY_DIR}/lib ${CMAKE_CURRENT_BINARY_DIR}/lib SYMBOLIC) file(CREATE_LINK ${PROJECT_BINARY_DIR}/third_party ${CMAKE_CURRENT_BINARY_DIR}/third_party SYMBOLIC) else() add_custom_target(DevToolsPluginDwp ALL DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/SymbolsBackend.wasm.debug.wasm.dwp) endif() endif() set(CXX_DEBUGGING_ARCHIVE "${PROJECT_BINARY_DIR}/cxx_debugging_extension-${CMAKE_PROJECT_VERSION}.zip") set(CXX_DEBUGGING_INPUTS ${EXTENSION_BUNDLED_SOURCES} ${CMAKE_CURRENT_BINARY_DIR}/manifest.json $<TARGET_FILE:SymbolsBackend>) foreach(RESOURCE IN LISTS EXTENSION_RESOURCES) list(APPEND CXX_DEBUGGING_INPUTS ${CMAKE_CURRENT_BINARY_DIR}/${RESOURCE}) endforeach() set(CXX_DEBUGGING_DIST_FILES ${CXX_DEBUGGING_INPUTS} ${CMAKE_CURRENT_BINARY_DIR}/SymbolsBackend.wasm ) add_custom_command(OUTPUT "${CXX_DEBUGGING_ARCHIVE}" COMMAND ${CMAKE_COMMAND} -E tar "cf" "${CXX_DEBUGGING_ARCHIVE}" --format=zip -- ${CXX_DEBUGGING_DIST_FILES} WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} DEPENDS ${CXX_DEBUGGING_INPUTS} Bundles COMMENT "Zipping to ${CXX_DEBUGGING_ARCHIVE}.") if(CMAKE_BUILD_TYPE STREQUAL "Release") add_custom_target(DevToolsPlugin ALL DEPENDS ${CXX_DEBUGGING_ARCHIVE} ${DEV_RESOURCES}) else() add_custom_target(DevToolsPlugin ALL DEPENDS ${CXX_DEBUGGING_INPUTS} ${DEV_RESOURCES}) endif() add_custom_command(TARGET DevToolsPlugin POST_BUILD COMMAND ${CMAKE_COMMAND} -E make_directory ${CXX_DEBUGGING_GEN_DIR} COMMAND ${CMAKE_COMMAND} -E copy ${CXX_DEBUGGING_DIST_FILES} ${CXX_DEBUGGING_GEN_DIR} ) set(EXTENSION_BUNDLED_SOURCES ${EXTENSION_BUNDLED_SOURCES} PARENT_SCOPE)