Skip to content

Commit 4347486

Browse files
merge origin/master
2 parents 5fe2c9a + 661335e commit 4347486

9 files changed

Lines changed: 386 additions & 321 deletions

File tree

CMakePresets.json

Lines changed: 236 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,236 @@
1+
{
2+
"version": 2,
3+
"configurePresets": [
4+
{
5+
"name": "windows-ninja-x64-debug",
6+
"binaryDir": "${sourceDir}/build",
7+
"generator": "Ninja Multi-Config",
8+
"cacheVariables": {
9+
"CMAKE_CXX_COMPILER": "cl.exe",
10+
"CMAKE_BUILD_TYPE": "Debug",
11+
"BOOST_INCLUDEDIR": "$env{BOOST}",
12+
"BOOST_LIBRARYDIR": "$env{BOOST_LIB64}",
13+
"ORE": "$env{ORE}",
14+
"ORE_BUILD": "$env{ORE_BUILD}",
15+
"QL_BUILD_EXAMPLES": false,
16+
"QL_BUILD_TEST_SUITE": false,
17+
"QL_BUILD_BENCHMARK": false,
18+
"MSVC_LINK_DYNAMIC_RUNTIME": true,
19+
"MSVC_WHOLE_PROGRAM_OPTIMIZATION": false,
20+
"QL_ENABLE_SESSIONS": true,
21+
"ORE_BUILD_DOC": true,
22+
"OREPLUS_LICENSE": false,
23+
"CMAKE_TOOLCHAIN_FILE": "$env{VCPKG_ROOT}/scripts/buildsystems/vcpkg.cmake"
24+
},
25+
"architecture": {
26+
"value": "x64",
27+
"strategy": "external"
28+
},
29+
"vendor": {
30+
"microsoft.com/VisualStudioSettings/CMake/1.0": {
31+
"intelliSenseMode": "windows-msvc-x64",
32+
"hostOS": [
33+
"Windows"
34+
]
35+
}
36+
}
37+
},
38+
{
39+
"name": "windows-ninja-x64-relWithDebInfo",
40+
"binaryDir": "${sourceDir}/build",
41+
"generator": "Ninja Multi-Config",
42+
"cacheVariables": {
43+
"CMAKE_CXX_COMPILER": "cl.exe",
44+
"CMAKE_BUILD_TYPE": "RelWithDebInfo",
45+
"BOOST_INCLUDEDIR": "$env{BOOST}",
46+
"BOOST_LIBRARYDIR": "$env{BOOST_LIB64}",
47+
"ORE": "$env{ORE}",
48+
"ORE_BUILD": "$env{ORE_BUILD}",
49+
"QL_BUILD_EXAMPLES": false,
50+
"QL_BUILD_TEST_SUITE": false,
51+
"QL_BUILD_BENCHMARK": false,
52+
"MSVC_LINK_DYNAMIC_RUNTIME": true,
53+
"MSVC_WHOLE_PROGRAM_OPTIMIZATION": true,
54+
"QL_ENABLE_SESSIONS": true,
55+
"ORE_BUILD_DOC": true,
56+
"OREPLUS_LICENSE": false,
57+
"CMAKE_TOOLCHAIN_FILE": "$env{VCPKG_ROOT}/scripts/buildsystems/vcpkg.cmake"
58+
},
59+
"architecture": {
60+
"value": "x64",
61+
"strategy": "external"
62+
},
63+
"vendor": {
64+
"microsoft.com/VisualStudioSettings/CMake/1.0": {
65+
"intelliSenseMode": "windows-msvc-x64",
66+
"hostOS": [
67+
"Windows"
68+
]
69+
}
70+
}
71+
},
72+
{
73+
"name": "windows-ninja-x64-release",
74+
"binaryDir": "${sourceDir}/build",
75+
"generator": "Ninja Multi-Config",
76+
"cacheVariables": {
77+
"CMAKE_CXX_COMPILER": "cl.exe",
78+
"CMAKE_BUILD_TYPE": "Release",
79+
"BOOST_INCLUDEDIR": "$env{BOOST}",
80+
"BOOST_LIBRARYDIR": "$env{BOOST_LIB64}",
81+
"ORE": "$env{ORE}",
82+
"ORE_BUILD": "$env{ORE_BUILD}",
83+
"QL_BUILD_EXAMPLES": false,
84+
"QL_BUILD_TEST_SUITE": false,
85+
"QL_BUILD_BENCHMARK": false,
86+
"MSVC_LINK_DYNAMIC_RUNTIME": true,
87+
"MSVC_WHOLE_PROGRAM_OPTIMIZATION": true,
88+
"QL_ENABLE_SESSIONS": true,
89+
"ORE_BUILD_DOC": true,
90+
"OREPLUS_LICENSE": false,
91+
"CMAKE_TOOLCHAIN_FILE": "$env{VCPKG_ROOT}/scripts/buildsystems/vcpkg.cmake"
92+
},
93+
"architecture": {
94+
"value": "x64",
95+
"strategy": "external"
96+
},
97+
"vendor": {
98+
"microsoft.com/VisualStudioSettings/CMake/1.0": {
99+
"intelliSenseMode": "windows-msvc-x64",
100+
"hostOS": [
101+
"Windows"
102+
]
103+
}
104+
}
105+
},
106+
{
107+
"name": "windows-msvc-x64",
108+
"binaryDir": "${sourceDir}/build",
109+
"generator": "Visual Studio 17 2022",
110+
"cacheVariables": {
111+
"BOOST_INCLUDEDIR": "$env{BOOST}",
112+
"BOOST_LIBRARYDIR": "$env{BOOST_LIB64}",
113+
"ORE": "$env{ORE}",
114+
"ORE_BUILD": "$env{ORE_BUILD}",
115+
"QL_BUILD_EXAMPLES": false,
116+
"QL_BUILD_TEST_SUITE": false,
117+
"QL_BUILD_BENCHMARK": false,
118+
"MSVC_LINK_DYNAMIC_RUNTIME": true,
119+
"MSVC_WHOLE_PROGRAM_OPTIMIZATION": false,
120+
"QL_ENABLE_SESSIONS": true,
121+
"ORE_BUILD_DOC": true,
122+
"OREPLUS_LICENSE": false,
123+
"CMAKE_TOOLCHAIN_FILE": "$env{VCPKG_ROOT}/scripts/buildsystems/vcpkg.cmake"
124+
},
125+
"architecture": {
126+
"value": "x64",
127+
"strategy": "set"
128+
},
129+
"vendor": {
130+
"microsoft.com/VisualStudioSettings/CMake/1.0": {
131+
"intelliSenseMode": "windows-msvc-x64",
132+
"hostOS": [
133+
"Windows"
134+
]
135+
}
136+
}
137+
},
138+
{
139+
"name": "windows-msvc-x64-static",
140+
"binaryDir": "${sourceDir}/build",
141+
"generator": "Visual Studio 17 2022",
142+
"cacheVariables": {
143+
"BOOST_INCLUDEDIR": "$env{BOOST}",
144+
"BOOST_LIBRARYDIR": "$env{BOOST_LIB64}",
145+
"ORE": "$env{ORE}",
146+
"ORE_BUILD": "$env{ORE_BUILD}",
147+
"QL_BUILD_EXAMPLES": false,
148+
"QL_BUILD_TEST_SUITE": false,
149+
"QL_BUILD_BENCHMARK": false,
150+
"MSVC_LINK_DYNAMIC_RUNTIME": false,
151+
"MSVC_WHOLE_PROGRAM_OPTIMIZATION": true,
152+
"QL_ENABLE_SESSIONS": true,
153+
"ORE_BUILD_DOC": true,
154+
"OREPLUS_LICENSE": false,
155+
"CMAKE_TOOLCHAIN_FILE": "$env{VCPKG_ROOT}/scripts/buildsystems/vcpkg.cmake"
156+
},
157+
"architecture": {
158+
"value": "x64",
159+
"strategy": "set"
160+
},
161+
"vendor": {
162+
"microsoft.com/VisualStudioSettings/CMake/1.0": {
163+
"intelliSenseMode": "windows-msvc-x64",
164+
"hostOS": [
165+
"Windows"
166+
]
167+
}
168+
}
169+
}
170+
],
171+
"buildPresets": [
172+
{
173+
"name": "windows-ninja-x64-release",
174+
"configurePreset": "windows-ninja-x64-release",
175+
"configuration": "Release"
176+
},
177+
{
178+
"name": "windows-ninja-x64-relWithDebInfo",
179+
"configurePreset": "windows-ninja-x64-relWithDebInfo",
180+
"configuration": "RelWithDebInfo"
181+
},
182+
{
183+
"name": "windows-ninja-x64-debug",
184+
"configurePreset": "windows-ninja-x64-debug",
185+
"configuration": "Debug"
186+
},
187+
{
188+
"name": "windows-msvc-x64-release",
189+
"configurePreset": "windows-msvc-x64",
190+
"configuration": "Release",
191+
"nativeToolOptions": [
192+
"-m"
193+
]
194+
},
195+
{
196+
"name": "windows-msvc-x64-relWithDebInfo",
197+
"configurePreset": "windows-msvc-x64",
198+
"configuration": "RelWithDebInfo",
199+
"nativeToolOptions": [
200+
"-m"
201+
]
202+
},
203+
{
204+
"name": "windows-msvc-x64-debug",
205+
"configurePreset": "windows-msvc-x64",
206+
"configuration": "Debug",
207+
"nativeToolOptions": [
208+
"-m"
209+
]
210+
},
211+
{
212+
"name": "windows-msvc-x64-static-release",
213+
"configurePreset": "windows-msvc-x64-static",
214+
"configuration": "Release",
215+
"nativeToolOptions": [
216+
"-m"
217+
]
218+
},
219+
{
220+
"name": "windows-msvc-x64-static-relWithDebInfo",
221+
"configurePreset": "windows-msvc-x64-static",
222+
"configuration": "RelWithDebInfo",
223+
"nativeToolOptions": [
224+
"-m"
225+
]
226+
},
227+
{
228+
"name": "windows-msvc-x64-static-debug",
229+
"configurePreset": "windows-msvc-x64-static",
230+
"configuration": "Debug",
231+
"nativeToolOptions": [
232+
"-m"
233+
]
234+
}
235+
]
236+
}

OREAnalytics-SWIG/Python/CMakeLists.txt

Lines changed: 18 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,11 @@ project(OREAnalytics-Python)
88

99
option(ORE_USE_ZLIB "Use compression for boost::iostreams" OFF)
1010

11-
include(${PROJECT_SOURCE_DIR}/../../cmake/commonSettings.cmake)
11+
if(NOT DEFINED ${ORE_BUILD})
12+
SET(ORE_BUILD ${ORE}/build)
13+
endif()
14+
15+
include(${ORE}/cmake/commonSettings.cmake)
1216

1317
# Append /bigobj to compiler flags on Windows for this target
1418
if (MSVC)
@@ -28,8 +32,7 @@ endif()
2832
get_library_name("OREAnalytics" OREA_LIB_NAME)
2933
get_library_name("OREData" ORED_LIB_NAME)
3034
get_library_name("QuantExt" QLE_LIB_NAME)
31-
get_library_name("QuantLib" QL_LIB_NAME)
32-
configure_msvc_runtime()
35+
set_ql_library_name()
3336

3437
# To build the module, we moreover need Boost, Swig, Python
3538
set(BOOST_COMPONENT_LIST serialization date_time regex filesystem system timer thread)
@@ -54,37 +57,20 @@ include_directories(${PROJECT_SOURCE_DIR}/../SWIG)
5457
include_directories(${PROJECT_SOURCE_DIR}/../../QuantLib-SWIG/SWIG)
5558
include_directories(${PROJECT_SOURCE_DIR}/../../QuantExt-SWIG/SWIG)
5659
include_directories(${PROJECT_SOURCE_DIR}/../../OREData-SWIG/SWIG)
57-
include_directories(${ORE}/build/QuantLib)
58-
include_directories(${ORE}/../build/ore/QuantLib)
60+
include_directories(${ORE_BUILD}/QuantLib)
5961
include_directories(${ORE}/QuantLib)
6062
include_directories(${ORE}/QuantExt)
6163
include_directories(${ORE}/OREData)
6264
include_directories(${ORE}/OREAnalytics)
63-
include_directories(${ORE}/build/ore/QuantLib)
64-
include_directories(${ORE}/ore/QuantLib)
65-
include_directories(${ORE}/ore/QuantExt)
66-
include_directories(${ORE}/ore/OREData)
67-
include_directories(${ORE}/ore/OREAnalytics)
6865
include_directories(${Boost_INCLUDE_DIRS})
6966
include_directories(${Python_INCLUDE_DIRS})
7067

7168
# Add to the list of link directories
7269
link_directories(${Python_LIBRARY_DIRS})
73-
add_link_directory_if_exists(${ORE}/QuantLib/build/ql)
74-
add_link_directory_if_exists(${ORE}/build/QuantLib/ql)
75-
add_link_directory_if_exists(${ORE}/build/QuantExt/qle)
76-
add_link_directory_if_exists(${ORE}/build/OREData/ored)
77-
add_link_directory_if_exists(${ORE}/build/OREAnalytics/orea)
78-
add_link_directory_if_exists(${ORE}/ore/QuantLib/build/ql)
79-
add_link_directory_if_exists(${ORE}/build/ore/QuantLib/ql)
80-
add_link_directory_if_exists(${ORE}/build/ore/QuantExt/qle)
81-
add_link_directory_if_exists(${ORE}/build/ore/OREData/ored)
82-
add_link_directory_if_exists(${ORE}/build/ore/OREAnalytics/orea)
83-
84-
add_link_directory_if_exists(${ORE}/../build/ore/QuantLib/ql)
85-
add_link_directory_if_exists(${ORE}/../build/ore/QuantExt/qle)
86-
add_link_directory_if_exists(${ORE}/../build/ore/OREData/ored)
87-
add_link_directory_if_exists(${ORE}/../build/ore/OREAnalytics/orea)
70+
add_link_directory_if_exists(${ORE_BUILD}/QuantLib/ql)
71+
add_link_directory_if_exists(${ORE_BUILD}/QuantExt/qle)
72+
add_link_directory_if_exists(${ORE_BUILD}/OREData/ored)
73+
add_link_directory_if_exists(${ORE_BUILD}/OREAnalytics/orea)
8874

8975
# Tell SWIG to compile in C++ mode
9076
set_source_files_properties(${PROJECT_SOURCE_DIR}/../SWIG/oreanalytics.i PROPERTIES CPLUSPLUS ON)
@@ -103,6 +89,7 @@ set_source_files_properties(${PROJECT_SOURCE_DIR}/../SWIG/oreanalytics.i PROPERT
10389
set(TEMP_CMAKE_DEBUG_POSTFIX ${CMAKE_DEBUG_POSTFIX})
10490
unset(CMAKE_DEBUG_POSTFIX)
10591
swig_add_library(ORE TYPE MODULE LANGUAGE python SOURCES ${PROJECT_SOURCE_DIR}/../SWIG/oreanalytics.i)
92+
10693
set(CMAKE_DEBUG_POSTFIX ${TEMP_CMAKE_DEBUG_POSTFIX})
10794

10895
# Add all libraries to link with
@@ -120,3 +107,9 @@ endif()
120107
if(NOT MSVC)
121108
target_link_libraries(ORE ${Python_LIBRARIES})
122109
endif()
110+
111+
if (MSVC)
112+
get_target_property(target_options ORE COMPILE_OPTIONS)
113+
list(REMOVE_ITEM target_options "/we4189")
114+
set_property(TARGET ORE PROPERTY COMPILE_OPTIONS ${target_options})
115+
endif()

OREAnalytics-SWIG/Python/setup.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -144,7 +144,7 @@ def finalize_options(self):
144144
self.include_dirs.append(self.validate_path(os.path.join(ORE_DIR, 'OREAnalytics')))
145145

146146
# ADD LIBRARY DIRECTORIES
147-
147+
148148
target = "Release"
149149

150150
if self.debug:
@@ -268,7 +268,7 @@ def finalize_options(self):
268268
]
269269

270270
setup(name = "open-source-risk-engine",
271-
version = "1.8.10.1",
271+
version = "1.8.10",
272272
description = "Python bindings for the OREAnalytics library",
273273
long_description = """
274274
OREAnalytics (http://opensourcerisk.org/) is a C++ library for financial quantitative

OREAnalytics-SWIG/SWIG/orea_app.i

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -137,7 +137,13 @@ public:
137137
// const std::map<std::pair<RiskFactorKey, RiskFactorKey>, Real>& covarianceData();
138138
// TODO: API for setting a sensitivity stream
139139
// const boost::shared_ptr<SensitivityStream>& sensitivityStream();
140-
// Setters for exposure simulation
140+
// Setters for exposure simulation
141+
void setSimmVersion(const std::string& s);
142+
void setCrifFromBuffer(const std::string& csvBuffer,
143+
char eol = '\n', char delim = ',', char quoteChar = '\0', char escapeChar = '\\');
144+
void setSimmCalculationCurrency(const std::string& s);
145+
void setSimmResultCurrency(const std::string& s);
146+
void setSimmReportingCurrency(const std::string& s);
141147
void setAmc(bool b);
142148
void setAmcTradeTypes(const std::string& s); // todo: parse to set<string>
143149
void setExposureBaseCurrency(const std::string& s);
@@ -217,11 +223,18 @@ public:
217223
void setKvaTheirPdFloor(Real r);
218224
void setKvaOurCvaRiskWeight(Real r);
219225
void setKvaTheirCvaRiskWeight(Real r);
226+
// Setters for Credit Simulation
227+
void setCreditMigrationAnalytic(bool b);
228+
void setCreditMigrationDistributionGrid(const std::vector<Real>& grid);
229+
void setCreditMigrationTimeSteps(const std::vector<Size>& ts);
230+
void setCreditSimulationParametersFromFile(const std::string& fileName);
231+
void setCreditSimulationParametersFromBuffer(const std::string& xml);
232+
void setCreditMigrationOutputFiles(const std::string& s);
220233
// Setters for cashflow npv and dynamic backtesting
221234
void setCashflowHorizon(const std::string& s);
222-
void setPortfolioFilterDate(const std::string& s);
235+
void setPortfolioFilterDate(const std::string& s);
223236
// Set list of analytics that shall be run
224-
void setAnalytics(const std::string& s);
237+
void setAnalytics(const std::string& s);
225238
void insertAnalytic(const std::string& s);
226239
};
227240

0 commit comments

Comments
 (0)