From a8142b882ff10a40c3bccc52c5c33f56d1fe3d07 Mon Sep 17 00:00:00 2001 From: Mohamed Gaber Date: Mon, 22 Jun 2026 18:24:23 +0300 Subject: [PATCH] CMake: integrate backward-cpp --- CMakeLists.txt | 2 +- cmake/SilimateConfig.cmake | 2 ++ silimate-shell.nix | 29 +++++++++++------------------ 3 files changed, 14 insertions(+), 19 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 77a7ec023..718b56e35 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -45,7 +45,7 @@ set(YOSYS_ABC_EXECUTABLE "" CACHE FILEPATH option(YOSYS_WITHOUT_ABC "Disable ABC support (not recommended)" OFF) option(YOSYS_WITHOUT_ZLIB "Disable zlib integration" OFF) option(YOSYS_WITHOUT_LIBFFI "Disable libffi integration" OFF) -option(YOSYS_WITHOUT_READLINE "Disable readline integration" OFF) +option(YOSYS_WITHOUT_READLINE "Disable readline integration" ON) option(YOSYS_WITHOUT_EDITLINE "Disable editline integration" OFF) option(YOSYS_WITHOUT_TCL "Disable Tcl integration" OFF) option(YOSYS_WITH_PYTHON "Enable Python integration" OFF) diff --git a/cmake/SilimateConfig.cmake b/cmake/SilimateConfig.cmake index cb3370433..0458d4664 100644 --- a/cmake/SilimateConfig.cmake +++ b/cmake/SilimateConfig.cmake @@ -7,3 +7,5 @@ set(YOSYS_VERIFIC_DIR ${PROJECT_SOURCE_DIR}/verific) set(YOSYS_WITH_PYTHON ON CACHE BOOL "" FORCE) add_library(verific INTERFACE) +add_subdirectory(${PROJECT_SOURCE_DIR}/libs/backward-cpp) +link_libraries(backward) diff --git a/silimate-shell.nix b/silimate-shell.nix index 0afe477db..beef60ae6 100644 --- a/silimate-shell.nix +++ b/silimate-shell.nix @@ -1,20 +1,5 @@ { pkgs ? import {} }: - let libs = pkgs.libs; - binutils = pkgs.binutils; - gnu-ar = pkgs.stdenvNoCC.mkDerivation { - # match homebrew name - pname = "gnu-ar"; - inherit (binutils) version; - - buildInputs = [ binutils ]; - - phases = ["installPhase"]; - - installPhase = '' - mkdir -p $out/bin - ln -s ${binutils}/bin/ar $out/bin/gar - ''; - }; + let lib = pkgs.lib; in pkgs.mkShell { buildInputs = with pkgs; [ @@ -37,7 +22,6 @@ pkgs.mkShell { gperf autoconf libdwarf # provides libdwarf.so - libelf # provides libelf.a doxygen cudd zlib @@ -52,5 +36,14 @@ pkgs.mkShell { ]; CMAKE_CXX_COMPILER_LAUNCHER = "ccache"; - cmakeFlags = [ "-DCMAKE_C_COMPILER=clang" "-DCMAKE_CXX_COMPILER=clang++" "-DCMAKE_BUILD_TYPE=Debug" "-DCMAKE_CXX_FLAGS=-O0" "-DYOSYS_WITH_PYTHON:BOOL=ON" ]; + cmakeFlags = with pkgs; [ + "-DCMAKE_C_COMPILER=clang" + "-DCMAKE_CXX_COMPILER=clang++" + "-DCMAKE_BUILD_TYPE=Debug" + "-DCMAKE_CXX_FLAGS=-O0" + "-DYOSYS_WITH_PYTHON:BOOL=ON" + "-DLIBDWARF_INCLUDE_DIR=${lib.getInclude libdwarf}/include" + ] ++ lib.optionals stdenv.isLinux [ + "-DLIBDW_LIBRARY=${lib.getLib elfutils}/lib/libdw.so" + ]; }