C++ projects in OG-Language


#1

I am working with the 0.9.0 release and it seems that the C++ projects in the OG-Language project do not build out-of-the box as libraries fudge-c and log4cxx are missing. What is the best place to get the required libraries ? Is there documentation for Service, ServiceRunner, Connector, Util ?

Thanks


#2

I don’t think we actually released anything in the open source section of 0.9.0 that uses OG-Language, so it may not have been tested in a stand-alone configuration as it’s primarily support for our R and Excel modules. The R module will be released as part of the 1.0.0 package. I’ve asked Andrew Griffin, one of our developers who has done most of the OG-Language work to follow up with you tomorrow anyway.


#3

There is not currently any formal documentation for the components within OG-Language as they may be subject to change until we have finalised the release of our R integration component which depends on this library. As part of the 1.0.0 release an overview of Service, ServiceRunner, Connector and Util will be available on our docs site along with the generated C++ documentation.

To build OG-Language within a Linux environment, the log4cxx and apr components can be obtained from the Apache website or through your operating system’s package manager (e.g. yum on a Fedora system) and the Fudge library can be built using a source download from github (Vrai/Fudge-C). We are currently in the process of updating the RPM and source tarballs available on the fudgemsg.org website for this library to 0.3 (http://jira.fudgemsg.org/browse/FRC-12) as I have had reports of the 0.2 RPM not containing all of the functionality required.

Building OG-Language from a Windows environment with Visual Studio should use pre-built i386 or x64 binaries available from the OpenGamma ivy repository. If ant fails at the resolve stage on Windows, please can you post the output so that we can remedy this. To build from within Visual Studio, you will need to run a command line build first to unpack the ivy artifacts into local include and lib folders.

If these libraries are available and the project does not build, please can you post the full output from the “ant publish-local” command in the OG-Language directory so that we may investigate and correct any issues.

As Jim says, we have not yet released any components that depend on OG-Language so the failure messages caused by missing libraries should not prevent you building and testing the OpenGamma platform. If the build does not complete because of these missing libraries, please can you post the output from an “ant publish-all-local” from the OG-Platform directory so that we may correct this.


#4

Just as a bit of additional background, the actual purpose of OG-Language is to support languages that require binary/native-code level of integration and perhaps lack support for things like messaging subsystems the low-level bit-manipulation necessary for something like a Fudge message decoder. Our .NET integration currently relies purely on REST calls and messaging rather than taking this approach.


#5

Thanks Jim and Andrew.

Is R integration going to be commercial or open source ?

I am on Windows and started working with the master branch of OG-Platform. E.g. if I run ant from the OG-Language project and add the following lines to the build.properties file

cpptask.ok=true
cpp.environment=msvc

I get the following output (had to trim it due to a length limitation)

run-msbuild:
[mkdir] Created dir: c:\devapps\OpenGamma\OG-Platform\projects\OG-Language\build\DebugWin32
[exec] Microsoft ® Build Engine Version 4.0.30319.1
[exec] [Microsoft .NET Framework, Version 4.0.30319.1]
[exec] Copyright © Microsoft Corporation 2007. All rights reserved.
[exec]
[exec] Build started 1/12/2012 4:13:22 PM.
[exec] 1>Project “c:\devapps\OpenGamma\OG-Platform\projects\OG-Language\Util\Util.vcxproj” on node 1 (default
targets).
[exec] 1>PrepareForBuild:
[exec] Creating directory “DebugWin32”.
[exec] InitializeBuildStatus:
[exec] Creating “DebugWin32\Util.unsuccessfulbuild” because “AlwaysCreate” was specified.
[exec] ClCompile:
[exec] C:\Program Files\Microsoft Visual Studio 10.0\VC\bin\CL.exe /c /I"c:\devapps\OpenGamma\OG-Platform\
projects\OG-Language\Util\…\\lib\include" /ZI /nologo /W3 /WX- /MP /Od /Oy- /D _UNICODE /D UNICODE /Gm- /EHsc /RTC1 /MD
d /GS /fp:precise /Zc:wchar_t /Zc:forScope /Yc"StdAfx.h" /Fp"DebugWin32\Util.pch" /Fo"DebugWin32\" /Fd"c:\devapps\OpenG
amma\OG-Platform\projects\OG-Language\Util\…\build\DebugWin32\\Util.pdb" /Gd /TP /analyze- /errorReport:queue stdafx.cp
p
[exec] stdafx.cpp
[exec] 1>c:\devapps\opengamma\og-platform\projects\og-language\util\stdafx.h(37): fatal error C1083: Cannot op
en include file: ‘fudge/fudge.h’: No such file or directory [c:\devapps\OpenGamma\OG-Platform\projects\OG-Language\Util\
Util.vcxproj]
[exec] 1>Done Building Project “c:\devapps\OpenGamma\OG-Platform\projects\OG-Language\Util\Util.vcxproj” (defa
ult targets) – FAILED.
[exec]
[exec] Build FAILED.
[exec]
[exec] “c:\devapps\OpenGamma\OG-Platform\projects\OG-Language\Util\Util.vcxproj” (default target) (1) ->
[exec] (ClCompile target) ->
[exec] c:\devapps\opengamma\og-platform\projects\og-language\util\stdafx.h(37): fatal error C1083: Cannot
open include file: ‘fudge/fudge.h’: No such file or directory [c:\devapps\OpenGamma\OG-Platform\projects\OG-Language\Uti
l\Util.vcxproj]
[exec]
[exec] 0 Warning(s)
[exec] 1 Error(s)
[exec]
[exec] Time Elapsed 00:00:04.83

BUILD FAILED
c:\devapps\OpenGamma\OG-Platform\projects\OG-Language\build-suffix.xml:160: The following error occurred while executing
this line:
c:\devapps\OpenGamma\OG-Platform\projects\OG-Language\build-msvc.xml:69: The following error occurred while executing th
is line:
c:\devapps\OpenGamma\OG-Platform\projects\OG-Language\build-msvc.xml:40: The following error occurred while executing th
is line:
c:\devapps\OpenGamma\OG-Platform\projects\OG-Language\build-msvc.xml:30: The following error occurred while executing th
is line:
c:\devapps\OpenGamma\OG-Platform\projects\OG-Language\build-msvc.xml:18: exec returned: 1

Total time: 27 seconds


#6

It’s going to be open source. Because of the complexity of installing the R module and relevant support parts, we’re going to offer a full installer download. One possible downside of that is that we’ve had to use a commercial installer program (AdvancedInstaller) to build that, so you won’t be able to build the easy to use installer from the open source code if you modify it without a copy. However, we’re happy to help anyone who needs to do a manual installation. I’ll get Andrew, who leads the R integration project, to take a look at the errors you’re getting above and get back to you.


#7

It looks like the cause of the error is happening earlier on in the build when the dependencies are resolved/retrieved by ivy and unpacked to create local header files and binaries that the code is linked against (e.g. Fudge, apr, and log4cxx). Please can you post the original untrimmed script output via gist.github.com so that I can confirm whether this is the case or not and resolve the issue.


#8

Thanks Jim and Andrew. I added a gist with the build output at https://gist.github.com/1711169

Note that this is with the dev/stable branch