Skip to content

Commit 191e426

Browse files
authored
Fix backward integration (#3677)
* Add tests to make sure blame works * Add libdw and libbfd in coverage CI
1 parent 76621ad commit 191e426

5 files changed

Lines changed: 27 additions & 10 deletions

File tree

.github/workflows/coverage.yml

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,8 +49,11 @@ jobs:
4949

5050
- name: Install apt packages
5151
run: |
52-
sudo apt-get install xfonts-100dpi build-essential doxygen lcov libboost-all-dev libopenmpi-dev libmpich-dev libx11-dev libxcomposite-dev mpich openmpi-bin gpg ninja-build flex bison libfl-dev
52+
sudo apt-get update
53+
sudo apt-get install -y xfonts-100dpi build-essential doxygen lcov libboost-all-dev libopenmpi-dev libmpich-dev libx11-dev libxcomposite-dev mpich openmpi-bin gpg ninja-build flex bison libfl-dev libdw-dev binutils-dev
5354
shell: bash
55+
env:
56+
DEBIAN_FRONTEND: noninteractive
5457

5558
- name: Install a new ccache
5659
run: |

CMakeLists.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -479,6 +479,8 @@ endif()
479479
if(NRN_ENABLE_BACKTRACE)
480480
set(NRN_USE_BACKWARD 1)
481481
nrn_add_external_project(backward)
482+
list(APPEND CMAKE_PREFIX_PATH ${PROJECT_SOURCE_DIR}/external/backward)
483+
find_package(Backward REQUIRED)
482484
else()
483485
set(NRN_USE_BACKWARD 0)
484486
endif()

src/nmodl/utils/CMakeLists.txt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ set_property(TARGET util PROPERTY POSITION_INDEPENDENT_CODE ON)
1717
target_link_libraries(util PUBLIC fmt::fmt nlohmann_json::nlohmann_json spdlog::spdlog)
1818

1919
if(NRN_ENABLE_BACKTRACE)
20-
add_backward(util)
20+
target_link_libraries(util PRIVATE Backward::Backward)
21+
target_include_directories(util PRIVATE ${PROJECT_SOURCE_DIR}/external/backward)
2122
target_compile_definitions(util PUBLIC NRN_USE_BACKWARD=1)
2223
endif()

src/nrniv/CMakeLists.txt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -462,7 +462,8 @@ set_property(TARGET nrniv_lib PROPERTY OUTPUT_NAME nrniv)
462462
# Link with backward-cpp if enabled
463463
# =============================================================================
464464
if(NRN_USE_BACKWARD)
465-
add_backward(nrniv_lib)
465+
target_link_libraries(nrniv_lib Backward::Backward)
466+
target_include_directories(nrniv_lib PRIVATE ${PROJECT_SOURCE_DIR}/external/backward)
466467
endif()
467468

468469
# =============================================================================

test/nmodl/transpiler/integration/CMakeLists.txt

Lines changed: 17 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -11,16 +11,26 @@ file(GLOB modfiles CONFIGURE_DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/mod/*.mod")
1111
foreach(modfile ${modfiles})
1212
get_filename_component(modfile_name "${modfile}" NAME)
1313
add_test(NAME ${modfile_name} COMMAND $<TARGET_FILE:nmodl> ${modfile})
14+
if(NRN_ENABLE_BACKTRACE)
15+
add_test(NAME ${modfile_name}_with_blame COMMAND $<TARGET_FILE:nmodl> ${modfile} blame --line 2)
16+
endif()
1417
if(WIN32)
1518
set(NMODL_TEST_PYTHONPATH "${PROJECT_BINARY_DIR}/lib;$ENV{PYTHONPATH}")
1619
else()
1720
set(NMODL_TEST_PYTHONPATH "${PROJECT_BINARY_DIR}/lib:$ENV{PYTHONPATH}")
1821
endif()
19-
set_tests_properties(
20-
${modfile_name}
21-
PROPERTIES
22-
ENVIRONMENT
23-
"PYTHONPATH=${NMODL_TEST_PYTHONPATH};NMODL_PYLIB=${PYTHON_LIBRARY};NMODLHOME=${CMAKE_BINARY_DIR}"
24-
)
25-
cpp_cc_configure_sanitizers(TEST ${modfile_name})
22+
if(NRN_ENABLE_BACKTRACE)
23+
set(tests ${modfile_name} ${modfile_name}_with_blame)
24+
else()
25+
set(tests ${modfile_name})
26+
endif()
27+
foreach(test IN LISTS tests)
28+
set_tests_properties(
29+
${test}
30+
PROPERTIES
31+
ENVIRONMENT
32+
"PYTHONPATH=${NMODL_TEST_PYTHONPATH};NMODL_PYLIB=${PYTHON_LIBRARY};NMODLHOME=${CMAKE_BINARY_DIR}"
33+
)
34+
cpp_cc_configure_sanitizers(TEST ${test})
35+
endforeach()
2636
endforeach()

0 commit comments

Comments
 (0)