question

Upvotes
Accepted
5 0 0 2

Build EMA 2.0.3.L2 with Visual Studio 2019

I need to compile EMA 2.0.3.L2 on Windows because we use an extra "Debug" build with _ITERATOR_DEBUG_LEVEL=1 , which is not compatible with the Debug build that Refinitiv provides. Before making any changes to the build process to make this new Debug library, I tried to build the existing libraries. I followed the instructions in Section 5 CMake of the RTSDK_C_Installation_Guide.pdf, running the following command to generate the VS solution and project files:

cmake -H. -Bbuild -G "Visual Studio 16 2019" -A x64 -DBUILD_UNIT_TESTS=OFF -DBUILD_EMA_DOXYGEN=OFF -DBUILD_EMA_EXAMPLES=OFF -DBUILD_EMA_PERFTOOLS=OFF -DBUILD_EMA_TRAINING=OFF -DBUILD_EMA_UNIT_TESTS=OFF -DBUILD_ETA_APPLICATIONS=OFF -DBUILD_ETA_DOXYGEN=OFF -DBUILD_ETA_EXAMPLES=OFF -DBUILD_ETA_PERFTOOLS=OFF -DBUILD_ETA_TRAINING=OFF -DBUILD_ETA_UNIT_TESTS=OFF -DBUILD_32_BIT_ETA=OFF -DBUILD_RTSDK-BINARYPACK=OFF

I opened the rtsdk.sln file in the "build" directory that the above command created, and built the solution (selecting the Build / Build Solution menu option). I expected the library files to be built, but none were.

The following text was shown in the output:

1>------ Build started: Project: ZERO_CHECK, Configuration: Release_MD x64 ------
1>Checking Build System
2>------ Skipped Build: Project: ALL_BUILD, Configuration: Release_MD x64 ------
2>Project not selected to build for this solution configuration 
========== Build: 1 succeeded, 0 failed, 0 up-to-date, 1 skipped ==========

Any ideas why no build was done? This is the first time I have built Refinitiv libraries, so I'm probably making a basic mistake.

visual-studiobuild
icon clock
10 |1500

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

Upvote
Accepted
56k 145 45 65

@Tony Marshall

Please add -DRTSDK_OPT_BUILD_ETA_EMA_LIBRARIES=ON and -DBUILD_EMA_LIBRARY=ON.

With these options, you see the libema and librssl projects in the rtsdk solution file.

1635741712955.png


1635741712955.png (14.9 KiB)
icon clock
10 |1500

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

Upvotes
32.2k 40 11 19

Hello @Tony Marshall ,

Some of the libraries are part of binary pack. So "-DBUILD_RTSDK-BINARYPACK=OFF " is probably what's getting in the way of building them.

Thinking further, that for your development and testing, you may wish to have on hand doxygen docs, examples, potentially perftools, EMA and ETA. So you may wish to just leave "-DBUILD_UNIT_TESTS=OFF " and remove the other switches after it, to obtain the complete SDK build from source code, if you have the space, it should be roughly 1.5G in total.

icon clock
10 |1500

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

Upvotes
5 0 0 2

Thanks for the reply. I added -DRTSDK_OPT_BUILD_ETA_EMA_LIBRARIES=ON and -DBUILD_EMA_LIBRARY=ON and it did as you said. I then open the rtsdk.sln in VS and built the solution. It reported the following error:

10>C:\rtsdk\2.0.3.L2\Cpp-C\Ema\Src\Access\Ema.rc(9): fatal error RC1015: cannot open include file 'afxres.h'.
10>Done building project "libema_shared.vcxproj" -- FAILED.

Do you know why it failed?

icon clock
10 |1500

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

@Tony Marshall

I may relate to the MFC library, as mentioned in this thread.