Skip to content

Commit 5e65a2b

Browse files
committed
Fix CI #284: eigen export, test fixes, remove MnaStep
WinStatic: - Replace local 'eigen' INTERFACE target with Eigen3::Eigen globally - Export Qt shader resource targets for static builds (disp) Test fixes: - test_bids_coordinate_system: serialize transform matrix in writeJson() - test_crossval_covariance: update deprecated mne.pick_types() API - test_dsp_infomax: fix super-Gaussian nonlinearity (-2 -> -1) - test_inv_cmne: use matDspmData in no-model fallback - test_mna_graph_execution: add connectivity and type mismatch validation - test_mne_browse_data: fix off-by-one in annotation duration - test_sts_cov_estimators: use Toeplitz-structured test data Refactoring: - Remove MnaStep (redundant with MnaNode) - MnaProject::pipeline now stores QList<MnaNode> directly - Update .mna example file to MnaNode JSON format - mne_inverse_pipeline uses MnaGraph + MnaGraphExecutor - Disable auto-fix workflow (workflow_dispatch only)
1 parent c042464 commit 5e65a2b

File tree

311 files changed

+577
-761
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

311 files changed

+577
-761
lines changed

.github/workflows/auto-fix-build.yml

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,13 @@
99

1010
name: Auto-Fix Build Failures
1111

12+
# NOTE: Disabled until CI is stable. Uncomment the 'on:' trigger to re-enable.
13+
# on:
14+
# workflow_run:
15+
# workflows: ["Staging"]
16+
# types: [completed]
1217
on:
13-
workflow_run:
14-
workflows: ["Staging"]
15-
types: [completed]
18+
workflow_dispatch: # manual-only for now
1619

1720
permissions:
1821
contents: read

resources/examples/mna_inverse_dspm.mna

Lines changed: 46 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -8,67 +8,87 @@
88
"pipeline": [
99
{
1010
"id": "load_raw",
11-
"tool": "load_fiff_raw",
12-
"toolVersion": "2.2.0",
13-
"parameters": {
11+
"op_type": "load_fiff_raw",
12+
"tool_version": "2.2.0",
13+
"attributes": {
1414
"raw_path": "${TEST_DATA}/MEG/sample/sample_audvis_trunc_raw.fif"
1515
},
1616
"inputs": [],
17-
"outputs": ["raw_data", "info"]
17+
"outputs": [
18+
{"name": "raw_data", "data_kind": "matrix", "direction": "output"},
19+
{"name": "info", "data_kind": "matrix", "direction": "output"}
20+
]
1821
},
1922
{
2023
"id": "load_evoked",
21-
"tool": "load_fiff_evoked",
22-
"toolVersion": "2.2.0",
23-
"parameters": {
24+
"op_type": "load_fiff_evoked",
25+
"tool_version": "2.2.0",
26+
"attributes": {
2427
"evoked_path": "${TEST_DATA}/MEG/sample/sample_audvis-ave.fif",
2528
"setno": 0
2629
},
2730
"inputs": [],
28-
"outputs": ["evoked"]
31+
"outputs": [
32+
{"name": "evoked", "data_kind": "matrix", "direction": "output"}
33+
]
2934
},
3035
{
3136
"id": "load_cov",
32-
"tool": "load_fiff_cov",
33-
"toolVersion": "2.2.0",
34-
"parameters": {
37+
"op_type": "load_fiff_cov",
38+
"tool_version": "2.2.0",
39+
"attributes": {
3540
"cov_path": "${TEST_DATA}/MEG/sample/sample_audvis-cov.fif"
3641
},
3742
"inputs": [],
38-
"outputs": ["noise_cov"]
43+
"outputs": [
44+
{"name": "noise_cov", "data_kind": "matrix", "direction": "output"}
45+
]
3946
},
4047
{
4148
"id": "load_fwd",
42-
"tool": "load_forward",
43-
"toolVersion": "2.2.0",
44-
"parameters": {
49+
"op_type": "load_forward",
50+
"tool_version": "2.2.0",
51+
"attributes": {
4552
"fwd_path": "${TEST_DATA}/Result/ref-sample_audvis-meg-eeg-oct-6-fwd.fif"
4653
},
4754
"inputs": [],
48-
"outputs": ["forward"]
55+
"outputs": [
56+
{"name": "forward", "data_kind": "matrix", "direction": "output"}
57+
]
4958
},
5059
{
5160
"id": "make_inv",
52-
"tool": "make_inverse_operator",
53-
"toolVersion": "2.2.0",
54-
"parameters": {
61+
"op_type": "make_inverse_operator",
62+
"tool_version": "2.2.0",
63+
"attributes": {
5564
"loose": 0.2,
5665
"depth": 0.8
5766
},
58-
"inputs": ["load_raw::info", "load_fwd::forward", "load_cov::noise_cov"],
59-
"outputs": ["inverse_operator"]
67+
"inputs": [
68+
{"name": "info", "data_kind": "matrix", "direction": "input", "source_node": "load_raw", "source_port": "info"},
69+
{"name": "forward", "data_kind": "matrix", "direction": "input", "source_node": "load_fwd", "source_port": "forward"},
70+
{"name": "noise_cov", "data_kind": "matrix", "direction": "input", "source_node": "load_cov", "source_port": "noise_cov"}
71+
],
72+
"outputs": [
73+
{"name": "inverse_operator", "data_kind": "matrix", "direction": "output"}
74+
]
6075
},
6176
{
6277
"id": "apply_dspm",
63-
"tool": "apply_inverse",
64-
"toolVersion": "2.2.0",
65-
"parameters": {
78+
"op_type": "apply_inverse",
79+
"tool_version": "2.2.0",
80+
"attributes": {
6681
"method": "dSPM",
6782
"snr": 3.0,
6883
"pick_normal": false
6984
},
70-
"inputs": ["make_inv::inverse_operator", "load_evoked::evoked"],
71-
"outputs": ["source_estimate"]
85+
"inputs": [
86+
{"name": "inverse_operator", "data_kind": "matrix", "direction": "input", "source_node": "make_inv", "source_port": "inverse_operator"},
87+
{"name": "evoked", "data_kind": "matrix", "direction": "input", "source_node": "load_evoked", "source_port": "evoked"}
88+
],
89+
"outputs": [
90+
{"name": "source_estimate", "data_kind": "matrix", "direction": "output"}
91+
]
7292
}
7393
]
7494
}

src/CMakeLists.txt

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ option(NO_IPC "Build project with no interprocess communication features (shared
3636

3737
option(WASM "Setup build for wasm" OFF)
3838

39-
option(USE_FFTW "Use fftw backend for eigen" OFF)
39+
option(USE_FFTW "Use fftw backend for Eigen3::Eigen" OFF)
4040

4141
option(USE_ONNXRUNTIME "Enable ONNX Runtime backend for the ml library" ON)
4242

@@ -214,20 +214,15 @@ endif()
214214
## Eigen dependency
215215

216216
set(MNE_CPP_EIGEN_VERSION "5.0.1" CACHE STRING "Preferred Eigen package version for MNE-CPP.")
217-
set(MNE_CPP_PREBUILT_EIGEN_DIR "${PROJECT_SOURCE_DIR}/external/eigen"
217+
set(MNE_CPP_PREBUILT_EIGEN_DIR "${PROJECT_SOURCE_DIR}/external/Eigen3::Eigen"
218218
CACHE PATH "Location of a prebuilt Eigen package prepared by the init scripts or CI helpers.")
219219

220220
find_package(Eigen3 ${MNE_CPP_EIGEN_VERSION} QUIET NO_MODULE
221221
HINTS
222222
"${MNE_CPP_PREBUILT_EIGEN_DIR}"
223-
"${PROJECT_SOURCE_DIR}/external/eigen-${MNE_CPP_EIGEN_VERSION}-install")
223+
"${PROJECT_SOURCE_DIR}/external/Eigen3::Eigen-${MNE_CPP_EIGEN_VERSION}-install")
224224

225225
if(TARGET Eigen3::Eigen)
226-
if(NOT TARGET eigen)
227-
add_library(eigen INTERFACE)
228-
target_link_libraries(eigen INTERFACE Eigen3::Eigen)
229-
endif()
230-
231226
if(DEFINED Eigen3_DIR AND NOT Eigen3_DIR STREQUAL "")
232227
get_filename_component(MNE_CPP_EIGEN_PACKAGE_ROOT "${Eigen3_DIR}/../../.." ABSOLUTE)
233228
message(STATUS "[MNE-CPP] Using Eigen package from ${MNE_CPP_EIGEN_PACKAGE_ROOT}")

src/applications/mne_analyze/libs/anShared/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,7 @@ set(MNE_LIBS_REQUIRED
9494
target_link_libraries(${PROJECT_NAME} PRIVATE
9595
${QT_REQUIRED_COMPONENT_LIBS}
9696
${MNE_LIBS_REQUIRED}
97-
eigen
97+
Eigen3::Eigen
9898
${FFTW_LIBS})
9999

100100
target_compile_definitions(${PROJECT_NAME}

src/applications/mne_analyze/libs/events/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ set(MNE_LIBS_REQUIRED
7878
target_link_libraries(${PROJECT_NAME} PRIVATE
7979
${QT_REQUIRED_COMPONENT_LIBS}
8080
${MNE_LIBS_REQUIRED}
81-
eigen
81+
Eigen3::Eigen
8282
)
8383

8484
target_compile_definitions(${PROJECT_NAME} PRIVATE MNE_EVENTS_LIBRARY MNE_GIT_HASH_SHORT="${MNE_GIT_HASH_SHORT}" MNE_GIT_HASH_LONG="${MNE_GIT_HASH_LONG}")

src/applications/mne_analyze/mne_analyze/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ endif()
5353
target_link_libraries(${PROJECT_NAME} PRIVATE
5454
${QT_REQUIRED_COMPONENT_LIBS}
5555
${MNE_LIBS_REQUIRED}
56-
eigen
56+
Eigen3::Eigen
5757
anShared
5858
)
5959

src/applications/mne_analyze/plugins/averaging/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ set(MNE_LIBS_REQUIRED
6767
target_link_libraries(${PROJECT_NAME} PRIVATE
6868
${QT_REQUIRED_COMPONENT_LIBS}
6969
${MNE_LIBS_REQUIRED}
70-
eigen
70+
Eigen3::Eigen
7171
anShared
7272
${FFTW_LIBS})
7373

src/applications/mne_analyze/plugins/channelselection/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ set(MNE_LIBS_REQUIRED
6666
target_link_libraries(${PROJECT_NAME} PRIVATE
6767
${QT_REQUIRED_COMPONENT_LIBS}
6868
${MNE_LIBS_REQUIRED}
69-
eigen
69+
Eigen3::Eigen
7070
anShared
7171
${FFTW_LIBS})
7272

src/applications/mne_analyze/plugins/controlmanager/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ endif()
6969
target_link_libraries(${PROJECT_NAME} PRIVATE
7070
${QT_REQUIRED_COMPONENT_LIBS}
7171
${MNE_LIBS_REQUIRED}
72-
eigen
72+
Eigen3::Eigen
7373
anShared
7474
${FFTW_LIBS})
7575

src/applications/mne_analyze/plugins/coregistration/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ set(MNE_LIBS_REQUIRED
6565
target_link_libraries(${PROJECT_NAME} PRIVATE
6666
${QT_REQUIRED_COMPONENT_LIBS}
6767
${MNE_LIBS_REQUIRED}
68-
eigen
68+
Eigen3::Eigen
6969
anShared
7070
${FFTW_LIBS})
7171

0 commit comments

Comments
 (0)