You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Browse filesBrowse the repository at this point in the historyBrowse files
authored
Windows 11 support: ifx compiler, hardened SDK/path detection, and cross-platform fixes (#26)
* Windows: support ifx build and update README
* Update Eigen download URL and ignore buildOO
* Update Windows setup docs and harden oneAPI/CUDA path detection
* Harden SDK path detection for ifx (IntelLLVM) and Windows build types
- HDF5: fix Windows HDF5_DIR path and add cmake/hdf5 fallback
- JsonFortran/bspline-fortran: detect IntelLLVM compiler (ifx) as 'intelllvm' FC_NAME, add cross-variant fallback paths and intel alias
- nlopt: use BUILD_TYPE-suffixed path on Windows with fallback to legacy unsuffixed path
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
---------
Co-authored-by: Johan Westraadt <westraadt.1@osu.edu>
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
| Windows 11| Visual Studio 2022 | Intel oneAPI `ifx`| Validated on this branch|
30
+
| Linux (Ubuntu 16.x, CentOS 7.x) | GCC 7.x and above, Clang 3.8 and greater | GNU Fortran 6.3.5 20160904 or newer| Legacy instructions|
30
31
31
32
\*\*macOS Note: If you are installing Intel Fortran try to install into a location **other** then /opt/intel which is the default. Try /opt/intel_sw instead.
32
33
33
34
## Git Locations ##
34
35
35
-
Git verison 2.x is required.
36
+
Git version 2.x is required.
36
37
37
38
| Operating System | Notes |
38
39
|------------------|--------------|
@@ -47,7 +48,7 @@ Git verison 2.x is required.
47
48
| HDF5 | 1.12.2 | Compiled from Source |
48
49
| CLFortran | 0.0.1 | Compiled from Source on GitHub |
| Intel MKL |oneAPI install | Uses the MKL installation that ships with Intel oneAPI on Windows|
51
52
| Json-Fortran | 4.2.1 | Compiled from source on GitHub |
52
53
| Eigen | 3.3.5 | Compiled from Source |
53
54
| Qt 5 | 5.12.4 | Precompiled Binaries from [www.qt.io](http://download.qt.io)|
@@ -75,34 +76,59 @@ Git verison 2.x is required.
75
76
76
77
## Windows Instructions ##
77
78
78
-
*Currently ONLY NMake files are supported. Visual Studio support is being looked at*
79
+
> "All hope abandon ye who enter here..."
79
80
80
-
1. Install your compiler tools
81
-
2. Install CMake on your system
82
-
3. Install a Fortran compiler on your system
83
-
4. Install Git on your system
84
-
5. Create the following Directories:
85
-
+ C:/Users/[USERNAME]/EMsoftOO_SDK
86
-
+ C:/Users/[USERNAME]/EMsoft-Dev
87
-
6. Open a command prompt and invoke the following commands
81
+
Toolchain installation behavior can vary across compiler, CUDA, CMake, and IDE versions, and package layouts may differ between systems. As a result, additional post-install configuration is often required; in practice, a disciplined, agentic workflow (iterative validation, environment checks, and targeted reconfiguration) is necessary for reliable setup.
82
+
83
+
This branch is currently validated on Windows with the `NMake Makefiles` generator, Visual Studio 2022 Community, and Intel oneAPI `ifx` (tested with Visual Studio 2022 17.14.x, oneAPI 2025.3.1, CUDA 12.9.1, and the Visual Studio 2022 bundled CMake 3.31.x).
84
+
85
+
### Toolchain Installation ###
86
+
87
+
1. Install Visual Studio 2022 Community 17.14.x with the Desktop development with C++ workload.
7.The initial run of CMake is going to take **REALLY** long time because it will be downloading the full Qt 5.x installer which is about 3~4 GB in size. On macOS systems it then must verify the .dmg, mount it and run the installer (which verifies the .app). Go get coffee. Compiling (the 'make -j' part) should not take that long, only about 5 minutes or so.
125
+
7.To generate a Debug SDK, use a different build directory and switch `-DCMAKE_BUILD_TYPE=Debug`.
103
126
104
-
**NOTE**: there is currently a known issue where the Qt 5.x installer will NOT actually run during the Linux cmake process. If the user does *NOT* want to build the GUI application then this is fine. If the user does want to build the GUI application then they will need to install Qt 5.x themselves. The download will be at /path/to/EMsoft_SDK/superbuild/Qt/download
127
+
### Notes ###
105
128
106
-
The developer can use CMakeGui if they would like instead of the command lines. The only required variable are the path to where you want the EMsoft_SDK folder and the build type (Debug or Release)
129
+
+`-DINSTALL_QT5=OFF` builds the command-line dependency stack only. Set `-DINSTALL_QT5=ON` if you also want Qt 5 and EBSDLib.
130
+
+ Enabling Qt will trigger a very large Qt download during the first configure.
131
+
+ If CUDA is installed in a non-default location, set `-DNVIDIA_CUDA_DIR=<path>` and `-DNVIDIA_CUDA_DEV_VERSION=12.9`.
132
+
+ The developer can also use CMake GUI. The required variables are `EMsoftOO_SDK` and `CMAKE_BUILD_TYPE`.
107
133
108
134
Once the SDK builds correctly, no errors are reported on the command line, then the developer can proceed to clone and build EMsoft itself.
message(FATAL_ERROR"NVIDIA CUDA version must be at least ${MIN_CUDA_VERSION} (got ${NVIDIA_CUDA_DEV_VERSION})")
34
-
endif()
31
+
set(NVIDIA_CUDA_DEV_VERSION ""CACHESTRING"CUDA developer version to use (for example: 12.9). Leave empty to auto-detect the latest installed version.")
set(NVIDIA_CUDA_DEV_VERSION "${_detected_cuda_version}"CACHESTRING"CUDA developer version to use (for example: 12.9). Leave empty to auto-detect the latest installed version."FORCE)
56
+
if(NOT"${NVIDIA_CUDA_DEV_VERSION}"STREQUAL"")
57
+
message(STATUS"NVIDIA CUDA Install: Auto-detected version ${NVIDIA_CUDA_DEV_VERSION}")
58
+
endif()
59
+
endif()
60
+
61
+
if("${NVIDIA_CUDA_DEV_VERSION}"STREQUAL"")
62
+
message(STATUS"No compatible CUDA installation was detected (minimum required: ${MIN_CUDA_VERSION}).")
63
+
message(STATUS"Install CUDA from https://developer.nvidia.com/cuda-downloads")
64
+
message(STATUS"or disable CLFortran with -DBUILD_CLFortran=OFF")
65
+
message(FATAL_ERROR"NVIDIA CUDA is not installed or not detected")
0 commit comments