X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;f=org.simantics.fmil.core%2FREADME.md;h=d5ef5ef3e96eb7fe124f73e8874115e644322618;hb=87cc423aefd98832c6c8d0979afc21551f8ceca3;hp=46d611bc2dfbc26885112a40718d7a3807b01413;hpb=a19f5279b32973dfc28ae084a8b7d20ae6aaac97;p=simantics%2Ffmil.git diff --git a/org.simantics.fmil.core/README.md b/org.simantics.fmil.core/README.md index 46d611b..d5ef5ef 100644 --- a/org.simantics.fmil.core/README.md +++ b/org.simantics.fmil.core/README.md @@ -1,11 +1,61 @@ # How to build FMUSimulator and FMILibrary -CMake GUI for generating Visual Studio project files from FMILibrary sources +## Base FMILibrary + +To build the Visual Studio Solution files you need CMake. +CMake is also used to build the base native FMILibrary. + +Note: +This is not usually needed, you can use the existing build. Remember to manually delete CMakeCache and CMakeFiles from FMILibrary/build/expatex/-folder -NOTE: +Follow the instructions provided by the Linux Dockerfile and linuxbuild.sh. + +On Windows the library must be manually downloaded and unzipped to the *native* directory. +The build can then be performed by executing the batch file *./windowsbuild.bat* in the same directory. + +The build steps are: +1. Download the desired FMILibrary source .zip from https://jmodelica.org/fmil/FMILibrary-2.0.3-src.zip +2. Unzip the package to the *native* directory. +3. Open terminal with development tools configured + * Visual Studio: Use the *"Developer Command Prompt for VS 2017"* start menu entry +4. Execute build script + * Linux: `docker build -f Dockerfile -t fmilibrary:build .`, then `docker run -v /path/to/org.simantics.fmil.linux64/libraries:/output fmilibrary:build` + * Windows: `cd native`, then `windowsbuild.bat` + +Automated steps: +1. Replace *fmi_util.c* file under *"/src/Util/src/FMI/fmi_util.c"* with contents of *fmi_util.c.txt*, located +under */native/FMUSimulator/fmi_util.c.txt*. +2. Change directory to where you want to build the output +3. Run cmake from command-line and provide as the first argument the path to where you unzipped sources in step 2 +Optional) To make a debug version, add -DFMILIB_ENABLE_LOG_LEVEL_DEBUG=ON before the path to source + * Windows: Specify build tools and target architecture with + * `cmake -G "Visual Studio 15"` (32-bit) or + * `cmake -G "Visual Studio 15 Win64"` (64-bit) +4. Use the generated makefiles/project files to perform the build + * Linux: In both debug and normal case, run "make" and "make install test" to verify the installation + * Windows: Execute the command `msbuild FMILibrary.sln /p:Configuration= /p:Platform=` + +If the build succeeded, you should have .dll files which you can now copy to your win32 or win64 org.simantics.fmil.* projects. +Specifically: +fmu1_dll_cs.dll, fmu1_dll_me.dll, fmu2_dll_cs.dll, fmu2_dll_me.sll and fmilib_shared.dll +Copy the corresponding "Debug" build files to the sub-directoryn "Debug" in the projects. + +### Windows-build with Visual Studio + +On Windows, cmake needs to be run separately for 32-bit and 64-bit builds. See the Windows batch file *update_fmilibrary.bat*, which performs both automatically. + +### Building on linux When building the libfmilib_shared.so, we need to replace fmi_util.c file under "/src/Util/src/FMI/fmi_util.c" with contents of fmi_util.c.txt, located under /native/FMUSimulator/fmi_util.c.txt. The Dockerfile already does this so if you build the libfmilib_shared.so with that, then you needn't worry about this. - \ No newline at end of file + +## FMUSimulator + +When you have the Visual Studio files: +Build from command-line our FMUSimulator.dll + +1) Open a terminal +2) Navigate to org.simantics.fmil.core/native/FMUSimulator +3) Run "msbuild.exe"