@@ -2,6 +2,17 @@ cmake_minimum_required(VERSION 3.10)
22
33project (NEXT)
44
5+ # ============================
6+ # Detect compiler environment
7+ # ============================
8+ if (MINGW)
9+ message (STATUS "Detected MinGW GCC — using MinGW settings" )
10+ set (USING_MINGW TRUE )
11+ elseif (MSVC )
12+ message (STATUS "Detected MSVC — using MSVC settings" )
13+ set (USING_MSVC TRUE )
14+ endif ()
15+
516# ============================
617# Output directories
718# ============================
@@ -66,21 +77,24 @@ else()
6677 message (STATUS "OpenMP not found — building in single-threaded mode." )
6778endif ()
6879
69- if (WIN32 AND MSVC AND DEFINED ENV{HDF5_DIR})
80+ # ============================
81+ # HDF5 detection
82+ # ============================
83+
84+ # MSVC: use vcpkg or prebuilt binaries
85+ if (USING_MSVC AND DEFINED ENV{HDF5_DIR})
7086 set (HDF5_ROOT "$ENV{HDF5_DIR} " )
7187 set (CMAKE_PREFIX_PATH "${HDF5_ROOT} ;${CMAKE_PREFIX_PATH } " )
7288endif ()
7389
74- # ============================
75- # HDF5 (raw C API)
76- # ============================
90+ if (USING_MINGW)
91+ # MSYS2 MinGW installs HDF5 here
92+ set (CMAKE_PREFIX_PATH "C:/tools/msys64/mingw64" )
93+ message (STATUS "Using MSYS2 MinGW HDF5 path: ${CMAKE_PREFIX_PATH } " )
94+ endif ()
95+
7796find_package (HDF5 REQUIRED COMPONENTS C HL )
7897
79- if (HDF5_FOUND)
80- message (STATUS "HDF5 detected — enabling snapshot loader." )
81- include_directories (${HDF5_INCLUDE_DIRS} )
82- target_link_libraries (next PRIVATE ${HDF5_LIBRARIES} )
83- else ()
84- message (FATAL_ERROR "HDF5 not found — please install libhdf5-dev or equivalent." )
85- endif ()
98+ include_directories (${HDF5_INCLUDE_DIRS} )
99+ target_link_libraries (next PRIVATE ${HDF5_LIBRARIES} )
86100
0 commit comments