INTO-CPS-Association / unifmu

A universal mechanism for implementing Functional Mock-up Units (FMUs) in various languages
41 stars 4 forks source link

Add macos support #13

Closed rudi closed 3 years ago

rudi commented 3 years ago

Is the source code for the packaged unifmu.so / unifmu.dll library available? I could try to compile a version for macos.

clegaard commented 3 years ago

That would be great.

It's written in rust and is stored in the wrapper directory. You will need to install the Rust toolchain.

Once you are done with this you should be able to build it using (this simply invokes cargo build):

python build.py --update-wrapper

I have attempted to set up the paths in the python scripts to the correct value for macOS, to account for binary conventions, but I may have missed something.

If you want to we can arrange a meeting one of the coming days to get you started :)

rudi commented 3 years ago

Thanks for the response! I'd overlooked the source in the wrapper directory. python build.py --update-wrapper produced tool/unifmu/resources/common/unifmu_binaries/darwin64/unifmu.dylib, which looks ok. I'll try to get a simple FMU running and will report back.

clegaard commented 3 years ago

Try running the unit tests, using the following:

python build.py --update-wrapper --export-examples --test-c

This will export an FMU and run a test suite against it. You may have to change the load_symbol and load_library function such that they load the dylib.

rudi commented 3 years ago

I think resources/backends.toml is missing entries for the darwin files; unifmu generate does not copy the darwin library from the resources directory otherwise.

rudi commented 3 years ago

Try running the unit tests, using the following:

python build.py --update-wrapper --export-examples --test-c

This will export an FMU and run a test suite against it. You may have to change the load_symbol and load_library function such that they load the dylib.

Looks ok:

INFO:/Users/rudi/Source/into-cps/unifmu/build.py:running C integration tests
INFO:/Users/rudi/Source/into-cps/unifmu/build.py:C integration tests successful