c# Source Example Missing files

Hi,
opening src\csharp\PulseCSharp.sln
I am getting missing files from “bind” folder.

How can I proceed?
JRD

Pulse is a native C++ based library, you will not be able to use the C# API without building

You will still need to build the source code to generate the C# Pulse.dll
This build will also build the missing bind directory

I have a couple of prebuilt C# dlls for windows here:
https://data.kitware.com/#collection/59849c788d777f7d33e9c084/folder/5da739b0d35580e6dc9e9c79

I downloaded the dlls and added a reference to Pulse c# Project
But still not compiling
What do I do wrongly?

You added the Pulse.dll to the project that makes the Pulse.dll

If you don’t want to build the source code, remove the Pulse project from the solution
And add the Pulse.dll and Google.Protobuf.dll to the HowTo project as references

gotcha!!!
And If I would build the Pulse.dll?
:grinning:

Building up the C# infrastructure is a bit complicated and undocumented…

  1. Build the C++ per the directions in the ReadMe
  2. Build the Google Protobuf C# library
    • Open and Buld the builds\pulse-engine\External\protobuf\src\csharp\src\Google.Protobuf.sln
    • You will get a few dll’s in the builds\pulse-engine\External\protobuf\src\csharp\src\Google.Protobuf\bin\Release directory
    • I usually add the Release\net45\Google.Protobuf.dll to my PulseCSharp.sln

Now the Pulse project in PulseCSharp.sln should build, as well as the HowTo

At some point, I will look into automating step 2 into the C++ build

I am trying to compile the C++
Here what I did
1)
image

  1. I got this error.

    Any hint?

What branch are you on?

That function is defined in this file
https://gitlab.kitware.com/physiology/engine/-/blob/master/cmake/utilities/AddLibrary.cmake#L12

Can you post the full log output from the cmake gui?

My fault. I did not point to the root directory but to the one containing cpp code.
Fixed that, it worked!!
I will continue tomorrow. Meanwhile thank you very much with your great support

Hi,
I was able to build the managed Pulse.dll following above steps
thanks a lot

Hello.
I am back on exploring Pulse. I updated from Git, go trought the compile process and I noted few differences.
What should I check?

I selected CSHARP_API and DOWNLOAD_BASE Code
I generated the project, and I was able to open usign VS, but I am getting a compile error?

Any hint?
Best Regards,

Looks like everything built fine
It looks like the error occured when the build script was downloading the basline data files

The MSVC Output tab/window is more informative than the Error summary tab
You can open it with View->Output

You can select all and paste into a text file, or post it here
But I believe everything has built, just not downloaded…

1 Like

Here we are (from latest OK point)
It seems Java sdk is required, doesn’t it?

12 Warning(s)
4> 0 Error(s)
4>
4>Time Elapsed 00:00:03.39
4>CMake Error at C:/Programming/cmake-3.22.2-windows-x86_64/share/cmake-3.22/Modules/FindPackageHandleStandardArgs.cmake:230 (message):
4> Could NOT find Java (missing: Java_JAVA_EXECUTABLE Java_JAR_EXECUTABLE
4> Java_JAVAC_EXECUTABLE Java_JAVAH_EXECUTABLE Java_JAVADOC_EXECUTABLE)
4>Call Stack (most recent call first):
4> C:/Programming/cmake-3.22.2-windows-x86_64/share/cmake-3.22/Modules/FindPackageHandleStandardArgs.cmake:594 (_FPHSA_FAILURE_MESSAGE)
4> C:/Programming/cmake-3.22.2-windows-x86_64/share/cmake-3.22/Modules/FindJava.cmake:336 (find_package_handle_standard_args)
4> src/java/CMakeLists.txt:5 (find_package)
4>
4>
4>-- Configuring incomplete, errors occurred!
4>See also “C:/Programming/builds/pulse-engine/Innerbuild/CMakeFiles/CMakeOutput.log”.
4>See also “C:/Programming/builds/pulse-engine/Innerbuild/CMakeFiles/CMakeError.log”.
4>C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\Microsoft.CppCommon.targets(241,5): error MSB8066: Custom build for ‘C:\Programming\builds\pulse-engine\CMakeFiles\b9f8d5bd7a85de00dc14217f6f119058\Pulse-mkdir.rule;C:\Programming\builds\pulse-engine\CMakeFiles\b9f8d5bd7a85de00dc14217f6f119058\Pulse-download.rule;C:\Programming\builds\pulse-engine\CMakeFiles\b9f8d5bd7a85de00dc14217f6f119058\Pulse-update.rule;C:\Programming\builds\pulse-engine\CMakeFiles\b9f8d5bd7a85de00dc14217f6f119058\Pulse-patch.rule;C:\Programming\builds\pulse-engine\CMakeFiles\b9f8d5bd7a85de00dc14217f6f119058\Pulse-configure.rule;C:\Programming\builds\pulse-engine\CMakeFiles\b9f8d5bd7a85de00dc14217f6f119058\Pulse-build.rule;C:\Programming\builds\pulse-engine\CMakeFiles\b9f8d5bd7a85de00dc14217f6f119058\Pulse-install.rule;C:\Programming\builds\pulse-engine\CMakeFiles\bca2fbce489a9dacc2a1899c466a05b6\Pulse-complete.rule;C:\Programming\builds\pulse-engine\CMakeFiles\beea2071a4f256d18aa725bea4521f50\Pulse.rule;C:\Programming\Pulse\engine\cmake\external\CMakeLists.txt’ exited with code 1.
4>Done building project “Pulse.vcxproj” – FAILED.
5>------ Build started: Project: PulseData, Configuration: Release x64 ------
5>Building Custom Rule C:/Programming/Pulse/engine/cmake/external/CMakeLists.txt
5>EXEC : CMake error : Error processing file: run.cmake
5>C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\Microsoft.CppCommon.targets(155,5): error MSB3073: The command “setlocal
5>C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\Microsoft.CppCommon.targets(155,5): error MSB3073: cd C:\Programming\builds\pulse-engine\install\bin
5>C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\Microsoft.CppCommon.targets(155,5): error MSB3073: if %errorlevel% neq 0 goto :cmEnd
5>C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\Microsoft.CppCommon.targets(155,5): error MSB3073: C:
5>C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\Microsoft.CppCommon.targets(155,5): error MSB3073: if %errorlevel% neq 0 goto :cmEnd
5>C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\Microsoft.CppCommon.targets(155,5): error MSB3073: C:\Programming\cmake-3.22.2-windows-x86_64\bin\cmake.exe -DTYPE:STRING=genData -P run.cmake
5>C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\Microsoft.CppCommon.targets(155,5): error MSB3073: if %errorlevel% neq 0 goto :cmEnd
5>C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\Microsoft.CppCommon.targets(155,5): error MSB3073: :cmEnd
5>C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\Microsoft.CppCommon.targets(155,5): error MSB3073: endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone
5>C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\Microsoft.CppCommon.targets(155,5): error MSB3073: :cmErrorLevel
5>C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\Microsoft.CppCommon.targets(155,5): error MSB3073: exit /b %1
5>C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\Microsoft.CppCommon.targets(155,5): error MSB3073: :cmDone
5>C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\Microsoft.CppCommon.targets(155,5): error MSB3073: if %errorlevel% neq 0 goto :VCEnd
5>C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\Microsoft.CppCommon.targets(155,5): error MSB3073: setlocal
5>C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\Microsoft.CppCommon.targets(155,5): error MSB3073: cd C:\Programming\builds\pulse-engine\install\bin
5>C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\Microsoft.CppCommon.targets(155,5): error MSB3073: if %errorlevel% neq 0 goto :cmEnd
5>C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\Microsoft.CppCommon.targets(155,5): error MSB3073: C:
5>C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\Microsoft.CppCommon.targets(155,5): error MSB3073: if %errorlevel% neq 0 goto :cmEnd
5>C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\Microsoft.CppCommon.targets(155,5): error MSB3073: C:\Programming\cmake-3.22.2-windows-x86_64\bin\cmake.exe -DTYPE:STRING=genStates -P run.cmake
5>C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\Microsoft.CppCommon.targets(155,5): error MSB3073: if %errorlevel% neq 0 goto :cmEnd
5>C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\Microsoft.CppCommon.targets(155,5): error MSB3073: :cmEnd
5>C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\Microsoft.CppCommon.targets(155,5): error MSB3073: endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone
5>C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\Microsoft.CppCommon.targets(155,5): error MSB3073: :cmErrorLevel
5>C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\Microsoft.CppCommon.targets(155,5): error MSB3073: exit /b %1
5>C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\Microsoft.CppCommon.targets(155,5): error MSB3073: :cmDone
5>C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\Microsoft.CppCommon.targets(155,5): error MSB3073: if %errorlevel% neq 0 goto :VCEnd
5>C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\Microsoft.CppCommon.targets(155,5): error MSB3073: setlocal
5>C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\Microsoft.CppCommon.targets(155,5): error MSB3073: cd C:\Programming\builds\pulse-engine\install\bin
5>C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\Microsoft.CppCommon.targets(155,5): error MSB3073: if %errorlevel% neq 0 goto :cmEnd
5>C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\Microsoft.CppCommon.targets(155,5): error MSB3073: C:
5>C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\Microsoft.CppCommon.targets(155,5): error MSB3073: if %errorlevel% neq 0 goto :cmEnd
5>C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\Microsoft.CppCommon.targets(155,5): error MSB3073: C:\Programming\cmake-3.22.2-windows-x86_64\bin\cmake.exe -DTYPE:STRING=updateBaselines -P run.cmake
5>C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\Microsoft.CppCommon.targets(155,5): error MSB3073: if %errorlevel% neq 0 goto :cmEnd
5>C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\Microsoft.CppCommon.targets(155,5): error MSB3073: :cmEnd
5>C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\Microsoft.CppCommon.targets(155,5): error MSB3073: endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone
5>C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\Microsoft.CppCommon.targets(155,5): error MSB3073: :cmErrorLevel
5>C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\Microsoft.CppCommon.targets(155,5): error MSB3073: exit /b %1
5>C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\Microsoft.CppCommon.targets(155,5): error MSB3073: :cmDone
5>C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\Microsoft.CppCommon.targets(155,5): error MSB3073: if %errorlevel% neq 0 goto :VCEnd
5>C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\Microsoft.CppCommon.targets(155,5): error MSB3073: :VCEnd” exited with code 1.
5>Done building project “PulseData.vcxproj” – FAILED.
6>------ Skipped Build: Project: ALL_BUILD, Configuration: Release x64 ------
6>Project not selected to build for this solution configuration
========== Build: 3 succeeded, 2 failed, 0 up-to-date, 1 skipped ==========

Yeah, this is an Issue with missing the JAVA SDK
Pulse has quite a lot of infrastructural tooling written in Java
In particular, utilitis to

  • Generating input json files for Pulse
  • Generating state files for our HowTo examples
  • V&V testing suite is written in Java

You do not need to build/use these
You can turn these off by unchecking the Pulse_JAVA_API CMake option

It really depends on what you are doing with Pulse
If you are just wanting to build for use in C#, you can turn this off.

At the end of our build, we call the Java utility to generate a set of state files that you can quickly load
Most of our HowTo examples, load one of these states.
Without Java in the build, these states will not be generated

Installing a JDK is not too bad
https://gitlab.kitware.com/physiology/engine/-/tree/master#java-jdk

But if you don’t want to, I can work with you to get you a set of datafile for the branch you pulled
This will allow you to generate your own states

1 Like

I installed Amazon Corretto. And it worked

GREAT!
Keep us posted if you have any other integration troubles/questions

1 Like