Open dirkcgrunwald opened 2 years ago
A single repo would be preferable as long as it avoids very custom/specific items (we generally want the repo to be general use for broader applicability). If you submit the PR, I'm likely going to sit on it for a bit. I'm in the process of updating some of the code in this repo. The model itself is staying the same (with the exception of an expansion of the 'mode of propagation' enum). The main changes will be around MATLAB support, Python support, and cmake for cross-platform building. Some of these are already committed to existing branches, others are still residing on my local machine.
So feel free to submit your PR. My plan will be to finish the work I'm doing locally, then take a look at your PR and diff the two.
I'll leave this issue open for tracking until the above work has been completed.
I'll send the PR - I've already added cmake support & the software builds for windows, linux & macos through the cmake configuration (although the default build produces static rather than shared libraries). The output of that is at https://github.com/dirkcgrunwald/itm/actions/runs/3606488765.
If you like, I could go ahead and finish out the process to run regression tests for each platform and to produce a "release" through github that would then provide libraries & itmtool binaries as you currently do for Windows at https://github.com/NTIA/itm/releases/tag/v1.4
I haven't done done the 'release' part for a project before but have found examples. Good to know about the python interface, I had contemplated doing that too.
Do you have any of the build files for the Mac? I am interested in using this model on a Mac but don't quite follow the structure for building in the Mac environment. You indicate above that you have created a branch and added cMake files. I did not find that. Can you point me to them? Or, if you have not committed, do you have a build env for the Mac?
I am working on a "propagation model as a service" that will include the ITM model. As part of that, I need to build the ITM library in the Linux docker container.
To that end, I have forked the repo and added CMakefile support to build the library ( https://github.com/dirkcgrunwald/itm/tree/PR_cmake ). That support builds static and shared libraries for both Linux and MacOS (haven't tried under windows). There were some minor source code changes need (removing the use of windows specific paths such as "..\include\itm.h" and I will need to modify the VS project to add -Iinclude as needed but I need to set up a windows dev environment.
I was also planning on build a linux/macos version of the CLI interface, mainly to allow regression testing. From a cursory look this morning, most of the code in win32/ITMDrvr should be able to be cross platform with some windows-specific stuff (e.g. the DLL lookups).