karabo.cpp 2.21.4__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (482) hide show
  1. karabo_cpp-2.21.4/CMakeLists.txt +34 -0
  2. karabo_cpp-2.21.4/PKG-INFO +67 -0
  3. karabo_cpp-2.21.4/README.md +49 -0
  4. karabo_cpp-2.21.4/dist/karabo_cpp-2.21.4-cp312-cp312-manylinux_2_28_x86_64.whl +0 -0
  5. karabo_cpp-2.21.4/extern/build.sh +278 -0
  6. karabo_cpp-2.21.4/extern/builder_path_replace.py +341 -0
  7. karabo_cpp-2.21.4/extern/conanfile-bootstrap.txt +17 -0
  8. karabo_cpp-2.21.4/extern/conanfile-centos.txt +12 -0
  9. karabo_cpp-2.21.4/extern/conanfile.txt +73 -0
  10. karabo_cpp-2.21.4/extern/conanprofile.karabo +20 -0
  11. karabo_cpp-2.21.4/extern/karabo_deployer.py +18 -0
  12. karabo_cpp-2.21.4/extern/relocate_deps.sh +87 -0
  13. karabo_cpp-2.21.4/extern/requirements-0.txt +11 -0
  14. karabo_cpp-2.21.4/extern/requirements-1.txt +58 -0
  15. karabo_cpp-2.21.4/extern/requirements-pre.txt +9 -0
  16. karabo_cpp-2.21.4/extern/resources/daemontools/CMakeLists.txt +129 -0
  17. karabo_cpp-2.21.4/extern/resources/daemontools/conanfile.py +33 -0
  18. karabo_cpp-2.21.4/extern/resources/log4cpp/conanfile.py +52 -0
  19. karabo_cpp-2.21.4/extern/resources/log4cpp/replace_namespace.sh +60 -0
  20. karabo_cpp-2.21.4/extern/resources/nss/conandata.yml +40 -0
  21. karabo_cpp-2.21.4/extern/resources/nss/conanfile.py +210 -0
  22. karabo_cpp-2.21.4/mod_extern_conanfile.txt +65 -0
  23. karabo_cpp-2.21.4/prepare_extern.py +97 -0
  24. karabo_cpp-2.21.4/pyproject.toml +132 -0
  25. karabo_cpp-2.21.4/pyproject.toml.template +134 -0
  26. karabo_cpp-2.21.4/python/src/karabind/__init__.py +4 -0
  27. karabo_cpp-2.21.4/python/src/shims/__init__.py +0 -0
  28. karabo_cpp-2.21.4/python/src/shims/entrypoints.py +30 -0
  29. karabo_cpp-2.21.4/set_lsb_release_info.sh +50 -0
  30. karabo_cpp-2.21.4/src/CMakeLists.txt +203 -0
  31. karabo_cpp-2.21.4/src/brokerMessageLogger/CMakeLists.txt +48 -0
  32. karabo_cpp-2.21.4/src/brokerMessageLogger/brokerMessageLogger.cc +194 -0
  33. karabo_cpp-2.21.4/src/cmake/code-coverage.cmake +748 -0
  34. karabo_cpp-2.21.4/src/cmake/cxx-options.cmake +21 -0
  35. karabo_cpp-2.21.4/src/cmake/import_karabo_lib.cmake +93 -0
  36. karabo_cpp-2.21.4/src/cmake/karabo-lib-target-name.cmake +20 -0
  37. karabo_cpp-2.21.4/src/deviceServer/CMakeLists.txt +63 -0
  38. karabo_cpp-2.21.4/src/deviceServer/deviceServer.cc +102 -0
  39. karabo_cpp-2.21.4/src/karabind/CMakeLists.txt +108 -0
  40. karabo_cpp-2.21.4/src/karabind/ConfigurationTestClasses.cc +29 -0
  41. karabo_cpp-2.21.4/src/karabind/ConfigurationTestClasses.hh +947 -0
  42. karabo_cpp-2.21.4/src/karabind/FromNumpy.cc +66 -0
  43. karabo_cpp-2.21.4/src/karabind/FromNumpy.hh +63 -0
  44. karabo_cpp-2.21.4/src/karabind/HandlerWrap.cc +94 -0
  45. karabo_cpp-2.21.4/src/karabind/HandlerWrap.hh +255 -0
  46. karabo_cpp-2.21.4/src/karabind/PyCoreDeviceClient.cc +903 -0
  47. karabo_cpp-2.21.4/src/karabind/PyCoreLockWrap.cc +51 -0
  48. karabo_cpp-2.21.4/src/karabind/PyCoreLockWrap.hh +53 -0
  49. karabo_cpp-2.21.4/src/karabind/PyIoFileTools.cc +293 -0
  50. karabo_cpp-2.21.4/src/karabind/PyLogLogger.cc +103 -0
  51. karabo_cpp-2.21.4/src/karabind/PyNetConnectionChannel.cc +370 -0
  52. karabo_cpp-2.21.4/src/karabind/PyNetEventLoop.cc +89 -0
  53. karabo_cpp-2.21.4/src/karabind/PyTypes.hh +302 -0
  54. karabo_cpp-2.21.4/src/karabind/PyUtilAlarmElement.cc +88 -0
  55. karabo_cpp-2.21.4/src/karabind/PyUtilClassInfo.cc +40 -0
  56. karabo_cpp-2.21.4/src/karabind/PyUtilDateTimeString.cc +62 -0
  57. karabo_cpp-2.21.4/src/karabind/PyUtilDims.cc +86 -0
  58. karabo_cpp-2.21.4/src/karabind/PyUtilEpochstamp.cc +117 -0
  59. karabo_cpp-2.21.4/src/karabind/PyUtilException.cc +66 -0
  60. karabo_cpp-2.21.4/src/karabind/PyUtilHash.cc +980 -0
  61. karabo_cpp-2.21.4/src/karabind/PyUtilHashAttributes.cc +203 -0
  62. karabo_cpp-2.21.4/src/karabind/PyUtilHashNode.cc +153 -0
  63. karabo_cpp-2.21.4/src/karabind/PyUtilJsonToHashParser.cc +29 -0
  64. karabo_cpp-2.21.4/src/karabind/PyUtilNDArray.cc +29 -0
  65. karabo_cpp-2.21.4/src/karabind/PyUtilRollingWindowStatistics.cc +42 -0
  66. karabo_cpp-2.21.4/src/karabind/PyUtilSchema.cc +1210 -0
  67. karabo_cpp-2.21.4/src/karabind/PyUtilSchemaChoiceElement.cc +149 -0
  68. karabo_cpp-2.21.4/src/karabind/PyUtilSchemaElement.cc +302 -0
  69. karabo_cpp-2.21.4/src/karabind/PyUtilSchemaElement.hh +413 -0
  70. karabo_cpp-2.21.4/src/karabind/PyUtilSchemaListElement.cc +162 -0
  71. karabo_cpp-2.21.4/src/karabind/PyUtilSchemaNodeElement.cc +250 -0
  72. karabo_cpp-2.21.4/src/karabind/PyUtilSchemaOverwriteElement.cc +216 -0
  73. karabo_cpp-2.21.4/src/karabind/PyUtilSchemaTableElement.cc +151 -0
  74. karabo_cpp-2.21.4/src/karabind/PyUtilSchemaValidator.cc +74 -0
  75. karabo_cpp-2.21.4/src/karabind/PyUtilStateElement.cc +86 -0
  76. karabo_cpp-2.21.4/src/karabind/PyUtilTimeDuration.cc +113 -0
  77. karabo_cpp-2.21.4/src/karabind/PyUtilTimestamp.cc +65 -0
  78. karabo_cpp-2.21.4/src/karabind/PyUtilTrainstamp.cc +46 -0
  79. karabo_cpp-2.21.4/src/karabind/PyUtilTypesReferenceType.cc +84 -0
  80. karabo_cpp-2.21.4/src/karabind/PyXmsImageDataElement.cc +370 -0
  81. karabo_cpp-2.21.4/src/karabind/PyXmsInputOutputChannel.cc +502 -0
  82. karabo_cpp-2.21.4/src/karabind/PyXmsSignalSlotable.cc +895 -0
  83. karabo_cpp-2.21.4/src/karabind/PyXmsSlotElement.cc +130 -0
  84. karabo_cpp-2.21.4/src/karabind/PythonFactoryMacros.hh +91 -0
  85. karabo_cpp-2.21.4/src/karabind/ToNumpy.hh +57 -0
  86. karabo_cpp-2.21.4/src/karabind/Wrapper.cc +1070 -0
  87. karabo_cpp-2.21.4/src/karabind/Wrapper.hh +305 -0
  88. karabo_cpp-2.21.4/src/karabind/karabind.cc +127 -0
  89. karabo_cpp-2.21.4/src/karabind/karabind_test.cc +156 -0
  90. karabo_cpp-2.21.4/src/karabind/stubs/__init__.pyi +18 -0
  91. karabo_cpp-2.21.4/src/karabind/stubs/py.typed +15 -0
  92. karabo_cpp-2.21.4/src/karabo/CMakeLists.txt +246 -0
  93. karabo_cpp-2.21.4/src/karabo/cmake/activateKarabo.in +38 -0
  94. karabo_cpp-2.21.4/src/karabo/cmake/karaboPackageDependencies-GNU-Linux-x86.pc.in +13 -0
  95. karabo_cpp-2.21.4/src/karabo/core/BaseFsm.hh +73 -0
  96. karabo_cpp-2.21.4/src/karabo/core/CameraFsm.hh +222 -0
  97. karabo_cpp-2.21.4/src/karabo/core/Device.hh +2262 -0
  98. karabo_cpp-2.21.4/src/karabo/core/DeviceClient.cc +2315 -0
  99. karabo_cpp-2.21.4/src/karabo/core/DeviceClient.hh +1616 -0
  100. karabo_cpp-2.21.4/src/karabo/core/DeviceServer.cc +778 -0
  101. karabo_cpp-2.21.4/src/karabo/core/DeviceServer.hh +255 -0
  102. karabo_cpp-2.21.4/src/karabo/core/FsmBaseState.cc +41 -0
  103. karabo_cpp-2.21.4/src/karabo/core/FsmBaseState.hh +170 -0
  104. karabo_cpp-2.21.4/src/karabo/core/FsmMacros.hh +1511 -0
  105. karabo_cpp-2.21.4/src/karabo/core/InstanceChangeThrottler.cc +328 -0
  106. karabo_cpp-2.21.4/src/karabo/core/InstanceChangeThrottler.hh +237 -0
  107. karabo_cpp-2.21.4/src/karabo/core/Lock.cc +125 -0
  108. karabo_cpp-2.21.4/src/karabo/core/Lock.hh +119 -0
  109. karabo_cpp-2.21.4/src/karabo/core/NoFsm.hh +75 -0
  110. karabo_cpp-2.21.4/src/karabo/core/OkErrorFsm.hh +128 -0
  111. karabo_cpp-2.21.4/src/karabo/core/Runner.cc +434 -0
  112. karabo_cpp-2.21.4/src/karabo/core/Runner.hh +86 -0
  113. karabo_cpp-2.21.4/src/karabo/core/StartStopFsm.hh +169 -0
  114. karabo_cpp-2.21.4/src/karabo/core/StartStopInterface.hh +106 -0
  115. karabo_cpp-2.21.4/src/karabo/core/Worker.hh +388 -0
  116. karabo_cpp-2.21.4/src/karabo/core.hpp +38 -0
  117. karabo_cpp-2.21.4/src/karabo/devices/DataLogReader.cc +115 -0
  118. karabo_cpp-2.21.4/src/karabo/devices/DataLogReader.hh +139 -0
  119. karabo_cpp-2.21.4/src/karabo/devices/DataLogger.cc +652 -0
  120. karabo_cpp-2.21.4/src/karabo/devices/DataLogger.hh +262 -0
  121. karabo_cpp-2.21.4/src/karabo/devices/DataLoggerManager.cc +1606 -0
  122. karabo_cpp-2.21.4/src/karabo/devices/DataLoggerManager.hh +305 -0
  123. karabo_cpp-2.21.4/src/karabo/devices/FileDataLogger.cc +516 -0
  124. karabo_cpp-2.21.4/src/karabo/devices/FileDataLogger.hh +100 -0
  125. karabo_cpp-2.21.4/src/karabo/devices/FileLogReader.cc +1050 -0
  126. karabo_cpp-2.21.4/src/karabo/devices/FileLogReader.hh +208 -0
  127. karabo_cpp-2.21.4/src/karabo/devices/GuiServerDevice.cc +3349 -0
  128. karabo_cpp-2.21.4/src/karabo/devices/GuiServerDevice.hh +1340 -0
  129. karabo_cpp-2.21.4/src/karabo/devices/GuiServerTemporarySessionManager.cc +156 -0
  130. karabo_cpp-2.21.4/src/karabo/devices/GuiServerTemporarySessionManager.hh +189 -0
  131. karabo_cpp-2.21.4/src/karabo/devices/InfluxDataLogger.cc +1059 -0
  132. karabo_cpp-2.21.4/src/karabo/devices/InfluxDataLogger.hh +225 -0
  133. karabo_cpp-2.21.4/src/karabo/devices/InfluxLogReader.cc +1267 -0
  134. karabo_cpp-2.21.4/src/karabo/devices/InfluxLogReader.hh +297 -0
  135. karabo_cpp-2.21.4/src/karabo/devices/PropertyTest.cc +1267 -0
  136. karabo_cpp-2.21.4/src/karabo/devices/PropertyTest.hh +139 -0
  137. karabo_cpp-2.21.4/src/karabo/io/AbstractInput.hh +206 -0
  138. karabo_cpp-2.21.4/src/karabo/io/AbstractOutput.hh +99 -0
  139. karabo_cpp-2.21.4/src/karabo/io/BinaryFileInput.cc +32 -0
  140. karabo_cpp-2.21.4/src/karabo/io/BinaryFileInput.hh +148 -0
  141. karabo_cpp-2.21.4/src/karabo/io/BinaryFileOutput.cc +32 -0
  142. karabo_cpp-2.21.4/src/karabo/io/BinaryFileOutput.hh +162 -0
  143. karabo_cpp-2.21.4/src/karabo/io/BinarySerializer.hh +217 -0
  144. karabo_cpp-2.21.4/src/karabo/io/BufferSet.cc +263 -0
  145. karabo_cpp-2.21.4/src/karabo/io/BufferSet.hh +277 -0
  146. karabo_cpp-2.21.4/src/karabo/io/CppInputHandler.cc +28 -0
  147. karabo_cpp-2.21.4/src/karabo/io/CppInputHandler.hh +79 -0
  148. karabo_cpp-2.21.4/src/karabo/io/FileTools.cc +30 -0
  149. karabo_cpp-2.21.4/src/karabo/io/FileTools.hh +174 -0
  150. karabo_cpp-2.21.4/src/karabo/io/HashBinaryFileInput.cc +23 -0
  151. karabo_cpp-2.21.4/src/karabo/io/HashBinaryFileOutput.cc +23 -0
  152. karabo_cpp-2.21.4/src/karabo/io/HashBinarySerializer.cc +898 -0
  153. karabo_cpp-2.21.4/src/karabo/io/HashBinarySerializer.hh +302 -0
  154. karabo_cpp-2.21.4/src/karabo/io/HashInput.cc +23 -0
  155. karabo_cpp-2.21.4/src/karabo/io/HashOutput.cc +23 -0
  156. karabo_cpp-2.21.4/src/karabo/io/HashTextFileInput.cc +23 -0
  157. karabo_cpp-2.21.4/src/karabo/io/HashTextFileOutput.cc +23 -0
  158. karabo_cpp-2.21.4/src/karabo/io/HashXmlSerializer.cc +516 -0
  159. karabo_cpp-2.21.4/src/karabo/io/HashXmlSerializer.hh +143 -0
  160. karabo_cpp-2.21.4/src/karabo/io/Input.hh +68 -0
  161. karabo_cpp-2.21.4/src/karabo/io/InputElement.hh +99 -0
  162. karabo_cpp-2.21.4/src/karabo/io/InputHandler.hh +68 -0
  163. karabo_cpp-2.21.4/src/karabo/io/Output.hh +96 -0
  164. karabo_cpp-2.21.4/src/karabo/io/OutputElement.hh +112 -0
  165. karabo_cpp-2.21.4/src/karabo/io/OutputHandler.hh +43 -0
  166. karabo_cpp-2.21.4/src/karabo/io/SchemaBinaryFileInput.cc +23 -0
  167. karabo_cpp-2.21.4/src/karabo/io/SchemaBinaryFileOutput.cc +23 -0
  168. karabo_cpp-2.21.4/src/karabo/io/SchemaBinarySerializer.cc +80 -0
  169. karabo_cpp-2.21.4/src/karabo/io/SchemaBinarySerializer.hh +73 -0
  170. karabo_cpp-2.21.4/src/karabo/io/SchemaInput.cc +23 -0
  171. karabo_cpp-2.21.4/src/karabo/io/SchemaOutput.cc +23 -0
  172. karabo_cpp-2.21.4/src/karabo/io/SchemaTextFileInput.cc +23 -0
  173. karabo_cpp-2.21.4/src/karabo/io/SchemaTextFileOutput.cc +23 -0
  174. karabo_cpp-2.21.4/src/karabo/io/SchemaXmlSerializer.cc +68 -0
  175. karabo_cpp-2.21.4/src/karabo/io/SchemaXmlSerializer.hh +63 -0
  176. karabo_cpp-2.21.4/src/karabo/io/TextFileInput.cc +30 -0
  177. karabo_cpp-2.21.4/src/karabo/io/TextFileInput.hh +142 -0
  178. karabo_cpp-2.21.4/src/karabo/io/TextFileOutput.cc +32 -0
  179. karabo_cpp-2.21.4/src/karabo/io/TextFileOutput.hh +161 -0
  180. karabo_cpp-2.21.4/src/karabo/io/TextSerializer.hh +167 -0
  181. karabo_cpp-2.21.4/src/karabo/io/ioProfiler.hh +78 -0
  182. karabo_cpp-2.21.4/src/karabo/io.hpp +36 -0
  183. karabo_cpp-2.21.4/src/karabo/karabo.hpp +43 -0
  184. karabo_cpp-2.21.4/src/karabo/log/Logger.cc +619 -0
  185. karabo_cpp-2.21.4/src/karabo/log/Logger.hh +410 -0
  186. karabo_cpp-2.21.4/src/karabo/log/LoggerStream.hh +37 -0
  187. karabo_cpp-2.21.4/src/karabo/log/utils.cc +61 -0
  188. karabo_cpp-2.21.4/src/karabo/log/utils.hh +16 -0
  189. karabo_cpp-2.21.4/src/karabo/log.hpp +29 -0
  190. karabo_cpp-2.21.4/src/karabo/net/AmqpBroker.cc +490 -0
  191. karabo_cpp-2.21.4/src/karabo/net/AmqpBroker.hh +209 -0
  192. karabo_cpp-2.21.4/src/karabo/net/AmqpClient.cc +878 -0
  193. karabo_cpp-2.21.4/src/karabo/net/AmqpClient.hh +243 -0
  194. karabo_cpp-2.21.4/src/karabo/net/AmqpConnection.cc +537 -0
  195. karabo_cpp-2.21.4/src/karabo/net/AmqpConnection.hh +331 -0
  196. karabo_cpp-2.21.4/src/karabo/net/AmqpHashClient.cc +112 -0
  197. karabo_cpp-2.21.4/src/karabo/net/AmqpHashClient.hh +141 -0
  198. karabo_cpp-2.21.4/src/karabo/net/AmqpUtils.cc +91 -0
  199. karabo_cpp-2.21.4/src/karabo/net/AmqpUtils.hh +80 -0
  200. karabo_cpp-2.21.4/src/karabo/net/Broker.cc +131 -0
  201. karabo_cpp-2.21.4/src/karabo/net/Broker.hh +246 -0
  202. karabo_cpp-2.21.4/src/karabo/net/Channel.hh +778 -0
  203. karabo_cpp-2.21.4/src/karabo/net/Connection.cc +59 -0
  204. karabo_cpp-2.21.4/src/karabo/net/Connection.hh +121 -0
  205. karabo_cpp-2.21.4/src/karabo/net/EventLoop.cc +314 -0
  206. karabo_cpp-2.21.4/src/karabo/net/EventLoop.hh +206 -0
  207. karabo_cpp-2.21.4/src/karabo/net/HttpClient.cc +141 -0
  208. karabo_cpp-2.21.4/src/karabo/net/HttpClient.hh +73 -0
  209. karabo_cpp-2.21.4/src/karabo/net/HttpCommon.hh +57 -0
  210. karabo_cpp-2.21.4/src/karabo/net/HttpRequestRunner.cc +156 -0
  211. karabo_cpp-2.21.4/src/karabo/net/HttpRequestRunner.hh +73 -0
  212. karabo_cpp-2.21.4/src/karabo/net/HttpResponse.cc +154 -0
  213. karabo_cpp-2.21.4/src/karabo/net/HttpResponse.hh +89 -0
  214. karabo_cpp-2.21.4/src/karabo/net/HttpsRequestRunner.cc +175 -0
  215. karabo_cpp-2.21.4/src/karabo/net/HttpsRequestRunner.hh +78 -0
  216. karabo_cpp-2.21.4/src/karabo/net/InfluxDbClient.cc +764 -0
  217. karabo_cpp-2.21.4/src/karabo/net/InfluxDbClient.hh +324 -0
  218. karabo_cpp-2.21.4/src/karabo/net/InfluxDbClientUtils.cc +74 -0
  219. karabo_cpp-2.21.4/src/karabo/net/InfluxDbClientUtils.hh +49 -0
  220. karabo_cpp-2.21.4/src/karabo/net/NetworkInterface.cc +260 -0
  221. karabo_cpp-2.21.4/src/karabo/net/NetworkInterface.hh +84 -0
  222. karabo_cpp-2.21.4/src/karabo/net/Queues.hh +330 -0
  223. karabo_cpp-2.21.4/src/karabo/net/Strand.cc +179 -0
  224. karabo_cpp-2.21.4/src/karabo/net/Strand.hh +183 -0
  225. karabo_cpp-2.21.4/src/karabo/net/TcpChannel.cc +1730 -0
  226. karabo_cpp-2.21.4/src/karabo/net/TcpChannel.hh +619 -0
  227. karabo_cpp-2.21.4/src/karabo/net/TcpConnection.cc +361 -0
  228. karabo_cpp-2.21.4/src/karabo/net/TcpConnection.hh +126 -0
  229. karabo_cpp-2.21.4/src/karabo/net/UserAuthClient.cc +83 -0
  230. karabo_cpp-2.21.4/src/karabo/net/UserAuthClient.hh +76 -0
  231. karabo_cpp-2.21.4/src/karabo/net/utils.cc +187 -0
  232. karabo_cpp-2.21.4/src/karabo/net/utils.hh +93 -0
  233. karabo_cpp-2.21.4/src/karabo/net.hpp +35 -0
  234. karabo_cpp-2.21.4/src/karabo/tests/BrokerUtils.cc +100 -0
  235. karabo_cpp-2.21.4/src/karabo/tests/BrokerUtils.hh +35 -0
  236. karabo_cpp-2.21.4/src/karabo/tests/CMakeLists.txt +199 -0
  237. karabo_cpp-2.21.4/src/karabo/tests/WaitUtils.cc +36 -0
  238. karabo_cpp-2.21.4/src/karabo/tests/WaitUtils.hh +39 -0
  239. karabo_cpp-2.21.4/src/karabo/tests/core/DeviceClient_Test.cc +741 -0
  240. karabo_cpp-2.21.4/src/karabo/tests/core/DeviceClient_Test.hh +75 -0
  241. karabo_cpp-2.21.4/src/karabo/tests/core/InstanceChangeThrottler_Test.cc +661 -0
  242. karabo_cpp-2.21.4/src/karabo/tests/core/InstanceChangeThrottler_Test.hh +199 -0
  243. karabo_cpp-2.21.4/src/karabo/tests/core/Runner_Test.cc +179 -0
  244. karabo_cpp-2.21.4/src/karabo/tests/core/Runner_Test.hh +69 -0
  245. karabo_cpp-2.21.4/src/karabo/tests/core/testJsonToHashParsing.cc +89 -0
  246. karabo_cpp-2.21.4/src/karabo/tests/io/BufferSet_Test.cc +113 -0
  247. karabo_cpp-2.21.4/src/karabo/tests/io/BufferSet_Test.hh +45 -0
  248. karabo_cpp-2.21.4/src/karabo/tests/io/FileInputOutput_Test.cc +581 -0
  249. karabo_cpp-2.21.4/src/karabo/tests/io/FileInputOutput_Test.hh +78 -0
  250. karabo_cpp-2.21.4/src/karabo/tests/io/HashBinarySerializer_Test.cc +701 -0
  251. karabo_cpp-2.21.4/src/karabo/tests/io/HashBinarySerializer_Test.hh +60 -0
  252. karabo_cpp-2.21.4/src/karabo/tests/io/HashXmlSerializer_Test.cc +292 -0
  253. karabo_cpp-2.21.4/src/karabo/tests/io/HashXmlSerializer_Test.hh +63 -0
  254. karabo_cpp-2.21.4/src/karabo/tests/io/SchemaSerializer_Test.cc +324 -0
  255. karabo_cpp-2.21.4/src/karabo/tests/io/SchemaSerializer_Test.hh +49 -0
  256. karabo_cpp-2.21.4/src/karabo/tests/io/TestPathSetup.hh +37 -0
  257. karabo_cpp-2.21.4/src/karabo/tests/io/resources/.directory +5 -0
  258. karabo_cpp-2.21.4/src/karabo/tests/io/resources/etalonXML_readonly.xml +84 -0
  259. karabo_cpp-2.21.4/src/karabo/tests/io/resources/etalonXSD_readonly.xsd +111 -0
  260. karabo_cpp-2.21.4/src/karabo/tests/io/resources/expectedParamsTextFile.xsd +111 -0
  261. karabo_cpp-2.21.4/src/karabo/tests/io/resources/newTestXml.xml +84 -0
  262. karabo_cpp-2.21.4/src/karabo/tests/io/resources/testSchemaFile_readonly.xsd +242 -0
  263. karabo_cpp-2.21.4/src/karabo/tests/io/resources/xmlForReading_readonly.xml +72 -0
  264. karabo_cpp-2.21.4/src/karabo/tests/log/Logger_Test.cc +202 -0
  265. karabo_cpp-2.21.4/src/karabo/tests/log/Logger_Test.hh +88 -0
  266. karabo_cpp-2.21.4/src/karabo/tests/net/Amqp_Test.cc +1114 -0
  267. karabo_cpp-2.21.4/src/karabo/tests/net/Amqp_Test.hh +66 -0
  268. karabo_cpp-2.21.4/src/karabo/tests/net/Broker_Test.cc +751 -0
  269. karabo_cpp-2.21.4/src/karabo/tests/net/Broker_Test.hh +77 -0
  270. karabo_cpp-2.21.4/src/karabo/tests/net/EventLoop_Test.cc +264 -0
  271. karabo_cpp-2.21.4/src/karabo/tests/net/EventLoop_Test.hh +59 -0
  272. karabo_cpp-2.21.4/src/karabo/tests/net/HttpClient_Test.cc +73 -0
  273. karabo_cpp-2.21.4/src/karabo/tests/net/HttpClient_Test.hh +44 -0
  274. karabo_cpp-2.21.4/src/karabo/tests/net/InfluxDbClient_Test.cc +89 -0
  275. karabo_cpp-2.21.4/src/karabo/tests/net/InfluxDbClient_Test.hh +48 -0
  276. karabo_cpp-2.21.4/src/karabo/tests/net/MQTcpNetworking.cc +230 -0
  277. karabo_cpp-2.21.4/src/karabo/tests/net/MQTcpNetworking.hh +96 -0
  278. karabo_cpp-2.21.4/src/karabo/tests/net/NetworkInterface_Test.cc +105 -0
  279. karabo_cpp-2.21.4/src/karabo/tests/net/NetworkInterface_Test.hh +52 -0
  280. karabo_cpp-2.21.4/src/karabo/tests/net/ParseUrl_Test.cc +132 -0
  281. karabo_cpp-2.21.4/src/karabo/tests/net/ParseUrl_Test.hh +48 -0
  282. karabo_cpp-2.21.4/src/karabo/tests/net/ReadAsyncStringUntil_Test.cc +190 -0
  283. karabo_cpp-2.21.4/src/karabo/tests/net/ReadAsyncStringUntil_Test.hh +45 -0
  284. karabo_cpp-2.21.4/src/karabo/tests/net/Strand_Test.cc +249 -0
  285. karabo_cpp-2.21.4/src/karabo/tests/net/Strand_Test.hh +60 -0
  286. karabo_cpp-2.21.4/src/karabo/tests/net/TcpNetworking_Test.cc +1365 -0
  287. karabo_cpp-2.21.4/src/karabo/tests/net/TcpNetworking_Test.hh +76 -0
  288. karabo_cpp-2.21.4/src/karabo/tests/testRunner.cc +26 -0
  289. karabo_cpp-2.21.4/src/karabo/tests/testRunner.hh +78 -0
  290. karabo_cpp-2.21.4/src/karabo/tests/testRunnerNoLoop.cc +23 -0
  291. karabo_cpp-2.21.4/src/karabo/tests/util/AlarmCondition_Test.cc +85 -0
  292. karabo_cpp-2.21.4/src/karabo/tests/util/AlarmCondition_Test.hh +57 -0
  293. karabo_cpp-2.21.4/src/karabo/tests/util/Base64_Test.cc +89 -0
  294. karabo_cpp-2.21.4/src/karabo/tests/util/Base64_Test.hh +47 -0
  295. karabo_cpp-2.21.4/src/karabo/tests/util/ByteSwap_Test.cc +59 -0
  296. karabo_cpp-2.21.4/src/karabo/tests/util/ByteSwap_Test.hh +49 -0
  297. karabo_cpp-2.21.4/src/karabo/tests/util/ClassInfo_Test.cc +56 -0
  298. karabo_cpp-2.21.4/src/karabo/tests/util/ClassInfo_Test.hh +39 -0
  299. karabo_cpp-2.21.4/src/karabo/tests/util/ConfigurationTestClasses.cc +33 -0
  300. karabo_cpp-2.21.4/src/karabo/tests/util/ConfigurationTestClasses.hh +746 -0
  301. karabo_cpp-2.21.4/src/karabo/tests/util/Configurator_Test.cc +410 -0
  302. karabo_cpp-2.21.4/src/karabo/tests/util/Configurator_Test.hh +92 -0
  303. karabo_cpp-2.21.4/src/karabo/tests/util/DataLogUtils_Test.cc +261 -0
  304. karabo_cpp-2.21.4/src/karabo/tests/util/DataLogUtils_Test.hh +71 -0
  305. karabo_cpp-2.21.4/src/karabo/tests/util/DateTimeString_Test.cc +1140 -0
  306. karabo_cpp-2.21.4/src/karabo/tests/util/DateTimeString_Test.hh +70 -0
  307. karabo_cpp-2.21.4/src/karabo/tests/util/Dims_Test.cc +142 -0
  308. karabo_cpp-2.21.4/src/karabo/tests/util/Dims_Test.hh +47 -0
  309. karabo_cpp-2.21.4/src/karabo/tests/util/Epochstamp_Test.cc +519 -0
  310. karabo_cpp-2.21.4/src/karabo/tests/util/Epochstamp_Test.hh +70 -0
  311. karabo_cpp-2.21.4/src/karabo/tests/util/Exception_Test.cc +391 -0
  312. karabo_cpp-2.21.4/src/karabo/tests/util/Exception_Test.hh +48 -0
  313. karabo_cpp-2.21.4/src/karabo/tests/util/Factory_Test.cc +164 -0
  314. karabo_cpp-2.21.4/src/karabo/tests/util/Factory_Test.hh +101 -0
  315. karabo_cpp-2.21.4/src/karabo/tests/util/HashFilter_Test.cc +807 -0
  316. karabo_cpp-2.21.4/src/karabo/tests/util/HashFilter_Test.hh +59 -0
  317. karabo_cpp-2.21.4/src/karabo/tests/util/Hash_Test.cc +2875 -0
  318. karabo_cpp-2.21.4/src/karabo/tests/util/Hash_Test.hh +89 -0
  319. karabo_cpp-2.21.4/src/karabo/tests/util/MetaTools_Test.cc +176 -0
  320. karabo_cpp-2.21.4/src/karabo/tests/util/MetaTools_Test.hh +198 -0
  321. karabo_cpp-2.21.4/src/karabo/tests/util/NDArray_Test.cc +190 -0
  322. karabo_cpp-2.21.4/src/karabo/tests/util/NDArray_Test.hh +51 -0
  323. karabo_cpp-2.21.4/src/karabo/tests/util/Schema_Test.cc +2472 -0
  324. karabo_cpp-2.21.4/src/karabo/tests/util/Schema_Test.hh +217 -0
  325. karabo_cpp-2.21.4/src/karabo/tests/util/Serializable_Test.cc +80 -0
  326. karabo_cpp-2.21.4/src/karabo/tests/util/Serializable_Test.h +57 -0
  327. karabo_cpp-2.21.4/src/karabo/tests/util/States_Test.cc +348 -0
  328. karabo_cpp-2.21.4/src/karabo/tests/util/States_Test.hh +82 -0
  329. karabo_cpp-2.21.4/src/karabo/tests/util/StatisticalEvaluator_Test.cc +374 -0
  330. karabo_cpp-2.21.4/src/karabo/tests/util/StatisticalEvaluator_Test.hh +73 -0
  331. karabo_cpp-2.21.4/src/karabo/tests/util/StringTools_Test.cc +411 -0
  332. karabo_cpp-2.21.4/src/karabo/tests/util/StringTools_Test.hh +51 -0
  333. karabo_cpp-2.21.4/src/karabo/tests/util/TimeClasses_Test.cc +551 -0
  334. karabo_cpp-2.21.4/src/karabo/tests/util/TimeClasses_Test.hh +61 -0
  335. karabo_cpp-2.21.4/src/karabo/tests/util/Types_Test.cc +266 -0
  336. karabo_cpp-2.21.4/src/karabo/tests/util/Types_Test.hh +57 -0
  337. karabo_cpp-2.21.4/src/karabo/tests/util/Validator_Test.cc +1428 -0
  338. karabo_cpp-2.21.4/src/karabo/tests/util/Validator_Test.hh +134 -0
  339. karabo_cpp-2.21.4/src/karabo/tests/util/Version_Test.cc +163 -0
  340. karabo_cpp-2.21.4/src/karabo/tests/util/Version_Test.hh +49 -0
  341. karabo_cpp-2.21.4/src/karabo/tests/xms/ImageData_Test.cc +257 -0
  342. karabo_cpp-2.21.4/src/karabo/tests/xms/ImageData_Test.hh +53 -0
  343. karabo_cpp-2.21.4/src/karabo/tests/xms/InputOutputChannel_Test.cc +1013 -0
  344. karabo_cpp-2.21.4/src/karabo/tests/xms/InputOutputChannel_Test.hh +87 -0
  345. karabo_cpp-2.21.4/src/karabo/tests/xms/Memory_Test.cc +81 -0
  346. karabo_cpp-2.21.4/src/karabo/tests/xms/Memory_Test.hh +52 -0
  347. karabo_cpp-2.21.4/src/karabo/tests/xms/SignalSlotable_Test.cc +1641 -0
  348. karabo_cpp-2.21.4/src/karabo/tests/xms/SignalSlotable_Test.hh +108 -0
  349. karabo_cpp-2.21.4/src/karabo/tests/xms/Signal_Test.cc +72 -0
  350. karabo_cpp-2.21.4/src/karabo/tests/xms/Signal_Test.hh +46 -0
  351. karabo_cpp-2.21.4/src/karabo/tests/xms/Slot_Test.cc +108 -0
  352. karabo_cpp-2.21.4/src/karabo/tests/xms/Slot_Test.hh +41 -0
  353. karabo_cpp-2.21.4/src/karabo/util/AlarmConditionElement.cc +67 -0
  354. karabo_cpp-2.21.4/src/karabo/util/AlarmConditionElement.hh +63 -0
  355. karabo_cpp-2.21.4/src/karabo/util/AlarmConditions.cc +153 -0
  356. karabo_cpp-2.21.4/src/karabo/util/AlarmConditions.hh +175 -0
  357. karabo_cpp-2.21.4/src/karabo/util/ArrayTools.hh +59 -0
  358. karabo_cpp-2.21.4/src/karabo/util/Base64.cc +143 -0
  359. karabo_cpp-2.21.4/src/karabo/util/Base64.hh +50 -0
  360. karabo_cpp-2.21.4/src/karabo/util/ByteArrayElement.hh +65 -0
  361. karabo_cpp-2.21.4/src/karabo/util/ByteSwap.cc +79 -0
  362. karabo_cpp-2.21.4/src/karabo/util/ByteSwap.hh +48 -0
  363. karabo_cpp-2.21.4/src/karabo/util/ChoiceElement.hh +190 -0
  364. karabo_cpp-2.21.4/src/karabo/util/ClassInfo.cc +156 -0
  365. karabo_cpp-2.21.4/src/karabo/util/ClassInfo.hh +106 -0
  366. karabo_cpp-2.21.4/src/karabo/util/Configurator.hh +748 -0
  367. karabo_cpp-2.21.4/src/karabo/util/CustomNodeElement.hh +325 -0
  368. karabo_cpp-2.21.4/src/karabo/util/DataLogUtils.cc +245 -0
  369. karabo_cpp-2.21.4/src/karabo/util/DataLogUtils.hh +187 -0
  370. karabo_cpp-2.21.4/src/karabo/util/DateTimeString.cc +348 -0
  371. karabo_cpp-2.21.4/src/karabo/util/DateTimeString.hh +259 -0
  372. karabo_cpp-2.21.4/src/karabo/util/Dims.hh +200 -0
  373. karabo_cpp-2.21.4/src/karabo/util/Element.hh +1050 -0
  374. karabo_cpp-2.21.4/src/karabo/util/Epochstamp.cc +316 -0
  375. karabo_cpp-2.21.4/src/karabo/util/Epochstamp.hh +407 -0
  376. karabo_cpp-2.21.4/src/karabo/util/Exception.cc +271 -0
  377. karabo_cpp-2.21.4/src/karabo/util/Exception.hh +549 -0
  378. karabo_cpp-2.21.4/src/karabo/util/Factory.hh +256 -0
  379. karabo_cpp-2.21.4/src/karabo/util/FromInt.cc +94 -0
  380. karabo_cpp-2.21.4/src/karabo/util/FromInt.hh +68 -0
  381. karabo_cpp-2.21.4/src/karabo/util/FromLiteral.cc +95 -0
  382. karabo_cpp-2.21.4/src/karabo/util/FromLiteral.hh +68 -0
  383. karabo_cpp-2.21.4/src/karabo/util/FromType.hh +60 -0
  384. karabo_cpp-2.21.4/src/karabo/util/FromTypeInfo.cc +81 -0
  385. karabo_cpp-2.21.4/src/karabo/util/FromTypeInfo.hh +68 -0
  386. karabo_cpp-2.21.4/src/karabo/util/GenericElement.hh +261 -0
  387. karabo_cpp-2.21.4/src/karabo/util/Hash.cc +1095 -0
  388. karabo_cpp-2.21.4/src/karabo/util/Hash.hh +1228 -0
  389. karabo_cpp-2.21.4/src/karabo/util/HashFilter.cc +211 -0
  390. karabo_cpp-2.21.4/src/karabo/util/HashFilter.hh +86 -0
  391. karabo_cpp-2.21.4/src/karabo/util/JsonToHashParser.cc +142 -0
  392. karabo_cpp-2.21.4/src/karabo/util/JsonToHashParser.hh +70 -0
  393. karabo_cpp-2.21.4/src/karabo/util/LeafElement.hh +626 -0
  394. karabo_cpp-2.21.4/src/karabo/util/ListElement.hh +205 -0
  395. karabo_cpp-2.21.4/src/karabo/util/MetaTools.hh +275 -0
  396. karabo_cpp-2.21.4/src/karabo/util/NDArray.cc +206 -0
  397. karabo_cpp-2.21.4/src/karabo/util/NDArray.hh +372 -0
  398. karabo_cpp-2.21.4/src/karabo/util/NodeElement.hh +157 -0
  399. karabo_cpp-2.21.4/src/karabo/util/OrderedMap.hh +783 -0
  400. karabo_cpp-2.21.4/src/karabo/util/OverwriteElement.cc +459 -0
  401. karabo_cpp-2.21.4/src/karabo/util/OverwriteElement.hh +695 -0
  402. karabo_cpp-2.21.4/src/karabo/util/PackParameters.hh +119 -0
  403. karabo_cpp-2.21.4/src/karabo/util/PathElement.hh +130 -0
  404. karabo_cpp-2.21.4/src/karabo/util/PluginLoader.cc +180 -0
  405. karabo_cpp-2.21.4/src/karabo/util/PluginLoader.hh +83 -0
  406. karabo_cpp-2.21.4/src/karabo/util/RollingWindowStatistics.cc +93 -0
  407. karabo_cpp-2.21.4/src/karabo/util/RollingWindowStatistics.hh +98 -0
  408. karabo_cpp-2.21.4/src/karabo/util/Schema.cc +1399 -0
  409. karabo_cpp-2.21.4/src/karabo/util/Schema.hh +1875 -0
  410. karabo_cpp-2.21.4/src/karabo/util/SimpleElement.hh +335 -0
  411. karabo_cpp-2.21.4/src/karabo/util/StackTrace.cc +98 -0
  412. karabo_cpp-2.21.4/src/karabo/util/StackTrace.hh +58 -0
  413. karabo_cpp-2.21.4/src/karabo/util/State.cc +295 -0
  414. karabo_cpp-2.21.4/src/karabo/util/State.hh +221 -0
  415. karabo_cpp-2.21.4/src/karabo/util/StateElement.cc +158 -0
  416. karabo_cpp-2.21.4/src/karabo/util/StateElement.hh +105 -0
  417. karabo_cpp-2.21.4/src/karabo/util/StateSignifier.cc +264 -0
  418. karabo_cpp-2.21.4/src/karabo/util/StateSignifier.hh +128 -0
  419. karabo_cpp-2.21.4/src/karabo/util/StringTools.cc +181 -0
  420. karabo_cpp-2.21.4/src/karabo/util/StringTools.hh +880 -0
  421. karabo_cpp-2.21.4/src/karabo/util/TableElement.cc +328 -0
  422. karabo_cpp-2.21.4/src/karabo/util/TableElement.hh +397 -0
  423. karabo_cpp-2.21.4/src/karabo/util/TimeDuration.cc +302 -0
  424. karabo_cpp-2.21.4/src/karabo/util/TimeDuration.hh +366 -0
  425. karabo_cpp-2.21.4/src/karabo/util/TimePeriod.cc +114 -0
  426. karabo_cpp-2.21.4/src/karabo/util/TimePeriod.hh +119 -0
  427. karabo_cpp-2.21.4/src/karabo/util/TimeProfiler.cc +255 -0
  428. karabo_cpp-2.21.4/src/karabo/util/TimeProfiler.hh +155 -0
  429. karabo_cpp-2.21.4/src/karabo/util/Timestamp.cc +98 -0
  430. karabo_cpp-2.21.4/src/karabo/util/Timestamp.hh +184 -0
  431. karabo_cpp-2.21.4/src/karabo/util/ToCppString.hh +102 -0
  432. karabo_cpp-2.21.4/src/karabo/util/ToLiteral.hh +103 -0
  433. karabo_cpp-2.21.4/src/karabo/util/ToSize.hh +61 -0
  434. karabo_cpp-2.21.4/src/karabo/util/ToType.hh +130 -0
  435. karabo_cpp-2.21.4/src/karabo/util/Trainstamp.cc +79 -0
  436. karabo_cpp-2.21.4/src/karabo/util/Trainstamp.hh +89 -0
  437. karabo_cpp-2.21.4/src/karabo/util/Types.hh +571 -0
  438. karabo_cpp-2.21.4/src/karabo/util/Units.hh +323 -0
  439. karabo_cpp-2.21.4/src/karabo/util/Validator.cc +1056 -0
  440. karabo_cpp-2.21.4/src/karabo/util/Validator.hh +237 -0
  441. karabo_cpp-2.21.4/src/karabo/util/VectorElement.hh +148 -0
  442. karabo_cpp-2.21.4/src/karabo/util/Version.cc +197 -0
  443. karabo_cpp-2.21.4/src/karabo/util/Version.hh +123 -0
  444. karabo_cpp-2.21.4/src/karabo/util/VersionMacros.in +9 -0
  445. karabo_cpp-2.21.4/src/karabo/util/karaboDll.hh +82 -0
  446. karabo_cpp-2.21.4/src/karabo/util.hpp +65 -0
  447. karabo_cpp-2.21.4/src/karabo/xms/ImageData.cc +442 -0
  448. karabo_cpp-2.21.4/src/karabo/xms/ImageData.hh +313 -0
  449. karabo_cpp-2.21.4/src/karabo/xms/InputChannel.cc +979 -0
  450. karabo_cpp-2.21.4/src/karabo/xms/InputChannel.hh +483 -0
  451. karabo_cpp-2.21.4/src/karabo/xms/Memory.cc +258 -0
  452. karabo_cpp-2.21.4/src/karabo/xms/Memory.hh +227 -0
  453. karabo_cpp-2.21.4/src/karabo/xms/OutputChannel.cc +1511 -0
  454. karabo_cpp-2.21.4/src/karabo/xms/OutputChannel.hh +667 -0
  455. karabo_cpp-2.21.4/src/karabo/xms/Signal.cc +177 -0
  456. karabo_cpp-2.21.4/src/karabo/xms/Signal.hh +174 -0
  457. karabo_cpp-2.21.4/src/karabo/xms/SignalSlotable.cc +3170 -0
  458. karabo_cpp-2.21.4/src/karabo/xms/SignalSlotable.hh +1464 -0
  459. karabo_cpp-2.21.4/src/karabo/xms/Slot.cc +107 -0
  460. karabo_cpp-2.21.4/src/karabo/xms/Slot.hh +115 -0
  461. karabo_cpp-2.21.4/src/karabo/xms/SlotElement.hh +161 -0
  462. karabo_cpp-2.21.4/src/karabo/xms/Statics.cc +35 -0
  463. karabo_cpp-2.21.4/src/karabo/xms/Statics.hh +73 -0
  464. karabo_cpp-2.21.4/src/karabo/xms.hpp +32 -0
  465. karabo_cpp-2.21.4/src/tools/brokerRates/CMakeLists.txt +49 -0
  466. karabo_cpp-2.21.4/src/tools/brokerRates/brokerRates.cpp +642 -0
  467. karabo_cpp-2.21.4/src/tools/dataLoggerIndex/CMakeLists.txt +72 -0
  468. karabo_cpp-2.21.4/src/tools/dataLoggerIndex/idxBuild.cc +432 -0
  469. karabo_cpp-2.21.4/src/tools/dataLoggerIndex/idxView.cc +75 -0
  470. karabo_cpp-2.21.4/src/tools/scripts/activate.tmpl +168 -0
  471. karabo_cpp-2.21.4/src/tools/scripts/karabo-inspectbrokertopic +110 -0
  472. karabo_cpp-2.21.4/src/tools/scripts/karabo-monitorjmsbroker +40 -0
  473. karabo_cpp-2.21.4/src/tools/scripts/karabo-querybroker +51 -0
  474. karabo_cpp-2.21.4/src/tools/scripts/karabo-startinfluxdb +61 -0
  475. karabo_cpp-2.21.4/src/tools/scripts/karabo-startopenmq +38 -0
  476. karabo_cpp-2.21.4/src/tools/scripts/karabo-startprojectdb +67 -0
  477. karabo_cpp-2.21.4/src/tools/scripts/karabo-startrabbitmq +78 -0
  478. karabo_cpp-2.21.4/src/tools/scripts/karabo-stopbroker +23 -0
  479. karabo_cpp-2.21.4/src/tools/scripts/karabo-stopinfluxdb +29 -0
  480. karabo_cpp-2.21.4/src/tools/scripts/karabo-stopprojectdb +29 -0
  481. karabo_cpp-2.21.4/src/tools/scripts/karabo-stoprabbitmq +30 -0
  482. karabo_cpp-2.21.4/wheel_tests/test_console.py +21 -0
@@ -0,0 +1,34 @@
1
+ # This file is part of Karabo.
2
+ #
3
+ # http://www.karabo.eu
4
+ #
5
+ # Copyright (C) European XFEL GmbH Schenefeld. All rights reserved.
6
+ #
7
+ # Karabo is free software: you can redistribute it and/or modify it under
8
+ # the terms of the MPL-2 Mozilla Public License.
9
+ #
10
+ # You should have received a copy of the MPL-2 Public License along with
11
+ # Karabo. If not, see <https://www.mozilla.org/en-US/MPL/2.0/>.
12
+ #
13
+ # Karabo is distributed in the hope that it will be useful, but WITHOUT ANY
14
+ # WARRANTY; without even the implied warranty of MERCHANTABILITY or
15
+ # FITNESS FOR A PARTICULAR PURPOSE.
16
+
17
+ cmake_minimum_required(VERSION 3.15)
18
+
19
+ project(karabo-cpp-root-node)
20
+
21
+ if (BUILD_UNIT_TESTING OR BUILD_INTEGRATION_TESTING OR BUILD_LONG_RUN_TESTING)
22
+ # If any test is being built, an enable_testing is needed at the root.
23
+ # Otherwise the file CTestTestfile.cmake. required to guide ctest in
24
+ # finding the tests will not be generated.
25
+ enable_testing()
26
+ endif()
27
+
28
+ add_subdirectory(src)
29
+
30
+
31
+ install(DIRECTORY extern/build/lib/ DESTINATION extern/lib)
32
+ install(DIRECTORY extern/build/licenses/ DESTINATION extern/licenses)
33
+
34
+ set_target_properties(karabind PROPERTIES PREFIX "")
@@ -0,0 +1,67 @@
1
+ Metadata-Version: 2.4
2
+ Name: karabo.cpp
3
+ Version: 2.21.4
4
+ Summary: Karabo's C++ API and Python bindings thereof
5
+ Keywords: Karabo,SCADA,async,control system
6
+ Author-Email: European XFEL GmbH <opensource@xfel.eu>
7
+ Maintainer-Email: "S. Hauf" <steffen.hauf@xfel.eu>, "D. Goeries" <dennis.goeries@xfel.eu>
8
+ License-Expression: MPL-2.0
9
+ Classifier: Development Status :: 5 - Production/Stable
10
+ Classifier: Intended Audience :: Developers
11
+ Classifier: Intended Audience :: Science/Research
12
+ Project-URL: Homepage, https://github.com/European-XFEL/Karabo
13
+ Project-URL: Bug Reports, https://github.com/European-XFEL/Karabo/issues
14
+ Project-URL: Source, https://github.com/European-XFEL/Karabo
15
+ Requires-Python: ==3.12.*
16
+ Requires-Dist: karabo-native==2.21.4
17
+ Description-Content-Type: text/markdown
18
+
19
+ # Karabo SCADA Framework - C++ API and Service Devices
20
+ ![Karabo Badge](https://img.shields.io/badge/Karabo-C++-blue?style=social&logo=data%3Aimage%2Fpng%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAIRlWElmTU0AKgAAAAgABQESAAMAAAABAAEAAAEaAAUAAAABAAAASgEbAAUAAAABAAAAUgEoAAMAAAABAAIAAIdpAAQAAAABAAAAWgAAAAAAAABIAAAAAQAAAEgAAAABAAOgAQADAAAAAQABAACgAgAEAAAAAQAAABigAwAEAAAAAQAAABgAAAAAEQ8YrgAAAAlwSFlzAAALEwAACxMBAJqcGAAAAVlpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDYuMC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iPgogICAgICAgICA8dGlmZjpPcmllbnRhdGlvbj4xPC90aWZmOk9yaWVudGF0aW9uPgogICAgICA8L3JkZjpEZXNjcmlwdGlvbj4KICAgPC9yZGY6UkRGPgo8L3g6eG1wbWV0YT4KGV7hBwAAB4lJREFUSA1tVQlwU9cVPX%2FXZmuxZcuSjWyMwQaDsUvLWmo7bEOHLSnETckQBgITWpO2CSmTlqnatEyazNCWpmEZYEpCS7DLpA3FbVPWTAIJ2GZfHNsgL1iWZGuz9S19Sf%2F1fWfSYdpeaeZ96f13l3PPuY%2FZsuWA0CfdZlFWhsDR22pb28EUHrOT2yt2jcrJpWlVcqWUaFEqMcDprTXQm10RNtF%2FNdfQ%2BeLiN0bvPXZk%2FLHW4%2BH1NhvH%2FPeG9vvNG4PGHXd99p3Xji%2FfZn3j93ZrHkZVFhkIAKMDUkGVVSJsJg00%2B585v73i%2BT0vS6PDCYur56mV1YE6hqE7X5gWwFD5zafdtvKaCpImlUl5pJIjqFCM5pLcRMi41%2FV6anIR9W0ATz8cVDDQjsehen1Qfte3WdfElaIkPqSOESZgMFt6ddlZDxgl0clmZXfwjUdOt930DRUakTFF%2FX6M%2BANIyTLUTAZ9LEfez%2FmRUC%2BnhVyavMAQEOpbSbHwj4H9LAHd5VA0Q4LtiFA4IEoOnSA4THbH10IZgqlmmlUKnFU0ZJv0AqvqbHZic5dkFDlOg4wwylic%2B2Uwxey8F4FFL8GpE5EhBB1yAoiNAkYd5hZO5MrLdCqnN6YFSa%2BC40k6EmIu3HnI1q36Bs%2FHlNSVzjPnViS7vCn3E3Ml5%2FQqTjLbkFGSFAuCRckxxKNhhINBDA08wmg4jEpnAXKnToTRagMr6UEYhiWEsDq9Af23buLRgSO00GIms2JhiOd5od9sz8GN0wcYX0cvlr5qRv6kMqR1OgR6e8BxPLLyXLC4iuGunAllNEobTVvHsEiMxDD84C6sBQWw5ORgqNeLwJV2JGFSMd%2FNyWk1wDM879VlmSiyZaS8qhj%2F3H0YmDwFVfWVkD%2B9gs7rXrjnTYO1uAiumhqIhixEB%2FrRc%2FlT9LV7oUS8KJhZDZ%2FMAZ8HqZ8RTDQaSFDgkQIJsYIk9PCShBxE2Ps3OvHK7k349Y4VCN%2FroM79KJnsQs%2Blh7j%2Bp99AHh4Gy%2FNIRKPoPncMlmwB2TnFiJuy8NOty%2FDR1bew81db8SB%2BFVUuO1SWC%2FOEZfoLCp34BEXc6k215OUXnmVyzCY8tWoZdh9sxv6feFA%2Bax7utxKKzBey4UQBkjQXVjaDjuEUDr2yGasXzKTEiOE7y79OHnhfRbfNDYHjo2yByA2yBkMK65exP%2FvBc0SJjyIwOIgiuwVb1i4FapYg2toPkRaf0ZSlGQ2UR1Lo8N7Fih%2BuQVWxAx237%2BDa9Tuwm41YvmgB00ZFIzGIsjkWw7BKyDCsFhj0OlWWxzAYGEZz8wcoddjw7i82w4cgyqAgnc6M%2B%2BdYFn3K55Qo89CweB7I2Ag4UURl1XRkOAnJRBIOWiUYEmW%2FXzszSsXhAysgGhtRbTkWHD58AuXlZcjONmHJnBn49s5G3EE7skQeVAYQqTPAhKcbFqK6rAjuCS44CvIRDkUotQE5HmcHKa15UYyyFFciZFKPcOEmzXxIpWFRUuwET1mgqiosJj1qZ5QCdd9DfukkpKk%2BDDYb8jZvhSNLD53AYcAXxIWLn%2BHGjbuIyQly9szHTFlkCGlWiLJazVQovRp13953nPTSl1etXIre3gGEwxGwHAdWGxB5FjACLZuWQHUFSa8fz1Y7393thd8fRGGhA5%2B03sTfmvaj1JkHJZ2JjQeQVaZ3%2BdxKtPzlIHP67CUUuSdgWsUkdHY%2BBE%2FxNpuzKb3HQOh80pyDqHSuEiRSaToZeOTbbVi5vA7Fk0px7OSHNKQFyaRCURAj4wF4ke%2BP0D%2FMFJ9dLx4ll9pvw1lUiK%2FOqkJfIIQP%2FnERViFDhaMpmLKJBnFLPPZ7jqG55TyKSidCpYrfd%2BQ9nP%2FzvrTZOBWixQomkx6j8qNMXLvJSjuyUVb0fNh7LX300DlIFpYR9Abm5789ivfe8qBQpmp35cFI8U%2FEIuj61zlEHj3Ah6daESWjePfURfX4xfuZKdVzhOr1a%2BDIsb6zcIp5v9Z0eDwetrt4weZ4PL4r1NNTqFHurC%2BQxuG%2FU%2FBjQulXytHddg3T161BWX09Yo96cea1A8iblAcmMAp%2FuVuZv2Sh6HS5wMgjQ26XY9ubDU80a7413jEehqHswUFP68CxLlPWS4qiND43o9ouz6rBpUPvJLrbung6rHmGNlzDX1utJXYEuryqmOVQVjQ8qTMaKaOSoyfqqmq%2Bu2FRxTCwliOkibC0azRLoLGlRfLMcsrHNtS%2FJqrxqnhgcA8RhPi0b63W2adP4JP4OJGKyxqF6JdB%2BGGnwjmd6vzGdTo9q%2FrsJPHMH7Y3NGjOG%2Fe2SPQy1VRJxiHSAmhW6znPw%2B3lL2zcSG8UYP3bf52SFsQdY7K8yd%2FZhajPl6mor1Pl4SDpuXVLnDJ7NnKzjX%2BcnZ%2F%2F0vOr5vixtonzTAPn8axTtPP0jqCp%2FB9b29QkBu%2Fa1QueuvHhs%2BXk5ZpYOPpjJZV%2BkvISybE4DKoSKMrN3bbn2cUnx13s3St5QqEU7acG97hpAb58%2Ft%2BVbm450EqV9R89YcOJj%2BY37DvV%2BsLB90%2B1tHfatUNNTU3cXgrvl8609bFn7t8fxThrSai%2FQAAAAABJRU5ErkJggg%3D%3D)
21
+ ![PyPI - Version](https://img.shields.io/pypi/v/karabo-cpp)
22
+ ![PyPI - Python Version](https://img.shields.io/pypi/pyversions/karabo-cpp)
23
+ ![PyPI - License](https://img.shields.io/pypi/l/karabo-cpp)
24
+ ![PyPI - Wheel](https://img.shields.io/pypi/wheel/karabo-cpp)
25
+ ![GitHub language count](https://img.shields.io/github/languages/count/European-XFEL/Karabo)
26
+ ![GitHub top language](https://img.shields.io/github/languages/top/European-XFEL/Karabo)
27
+ ![GitHub contributors](https://img.shields.io/github/contributors/European-XFEL/Karabo)
28
+ ![GitHub commit activity](https://img.shields.io/github/commit-activity/m/European-XFEL/Karabo)
29
+ ![GitHub Repo stars](https://img.shields.io/github/stars/European-XFEL/Karabo)
30
+
31
+ This package exposes the C++ API and C++ Service devices of the Karabo
32
+ SCADA framework.
33
+
34
+ Please check https://pypi.org/project/Karabo/ for an overview of Karabo's components
35
+ and ways to install the full system.
36
+
37
+ # Supported Operating Systems
38
+
39
+ The OS are tested are:
40
+
41
+ > Almalinux 8/9
42
+ > Ubuntu 20.04/22.04 LTS
43
+ > RedHat 9
44
+
45
+ A source distribution is provided, but may lead to compilation failures on systems not
46
+ supported through the binary wheel packages as well. If compilation fails, please
47
+ install Karabo as indicated in the source repository at https://github.com/European-XFEL/Karabo
48
+
49
+ # Installation
50
+
51
+ To install run
52
+
53
+ ```bash
54
+ pip install karabo.cpp
55
+ ```
56
+
57
+ or use the `full` or `cpp` options when installing the `karabo` package:
58
+
59
+ ```bash
60
+ pip install karabo[full]
61
+ pip install karabo[cpp]
62
+ ```
63
+
64
+ # C++ Device Development
65
+
66
+ The recommended way of developing Karabo C++ devices is to build a self-contained Karabo
67
+ environment following the instructions at https://github.com/European-XFEL/Karabo.
@@ -0,0 +1,49 @@
1
+ # Karabo SCADA Framework - C++ API and Service Devices
2
+ ![Karabo Badge](https://img.shields.io/badge/Karabo-C++-blue?style=social&logo=data%3Aimage%2Fpng%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAIRlWElmTU0AKgAAAAgABQESAAMAAAABAAEAAAEaAAUAAAABAAAASgEbAAUAAAABAAAAUgEoAAMAAAABAAIAAIdpAAQAAAABAAAAWgAAAAAAAABIAAAAAQAAAEgAAAABAAOgAQADAAAAAQABAACgAgAEAAAAAQAAABigAwAEAAAAAQAAABgAAAAAEQ8YrgAAAAlwSFlzAAALEwAACxMBAJqcGAAAAVlpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDYuMC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iPgogICAgICAgICA8dGlmZjpPcmllbnRhdGlvbj4xPC90aWZmOk9yaWVudGF0aW9uPgogICAgICA8L3JkZjpEZXNjcmlwdGlvbj4KICAgPC9yZGY6UkRGPgo8L3g6eG1wbWV0YT4KGV7hBwAAB4lJREFUSA1tVQlwU9cVPX%2FXZmuxZcuSjWyMwQaDsUvLWmo7bEOHLSnETckQBgITWpO2CSmTlqnatEyazNCWpmEZYEpCS7DLpA3FbVPWTAIJ2GZfHNsgL1iWZGuz9S19Sf%2F1fWfSYdpeaeZ96f13l3PPuY%2FZsuWA0CfdZlFWhsDR22pb28EUHrOT2yt2jcrJpWlVcqWUaFEqMcDprTXQm10RNtF%2FNdfQ%2BeLiN0bvPXZk%2FLHW4%2BH1NhvH%2FPeG9vvNG4PGHXd99p3Xji%2FfZn3j93ZrHkZVFhkIAKMDUkGVVSJsJg00%2B585v73i%2BT0vS6PDCYur56mV1YE6hqE7X5gWwFD5zafdtvKaCpImlUl5pJIjqFCM5pLcRMi41%2FV6anIR9W0ATz8cVDDQjsehen1Qfte3WdfElaIkPqSOESZgMFt6ddlZDxgl0clmZXfwjUdOt930DRUakTFF%2FX6M%2BANIyTLUTAZ9LEfez%2FmRUC%2BnhVyavMAQEOpbSbHwj4H9LAHd5VA0Q4LtiFA4IEoOnSA4THbH10IZgqlmmlUKnFU0ZJv0AqvqbHZic5dkFDlOg4wwylic%2B2Uwxey8F4FFL8GpE5EhBB1yAoiNAkYd5hZO5MrLdCqnN6YFSa%2BC40k6EmIu3HnI1q36Bs%2FHlNSVzjPnViS7vCn3E3Ml5%2FQqTjLbkFGSFAuCRckxxKNhhINBDA08wmg4jEpnAXKnToTRagMr6UEYhiWEsDq9Af23buLRgSO00GIms2JhiOd5od9sz8GN0wcYX0cvlr5qRv6kMqR1OgR6e8BxPLLyXLC4iuGunAllNEobTVvHsEiMxDD84C6sBQWw5ORgqNeLwJV2JGFSMd%2FNyWk1wDM879VlmSiyZaS8qhj%2F3H0YmDwFVfWVkD%2B9gs7rXrjnTYO1uAiumhqIhixEB%2FrRc%2FlT9LV7oUS8KJhZDZ%2FMAZ8HqZ8RTDQaSFDgkQIJsYIk9PCShBxE2Ps3OvHK7k349Y4VCN%2FroM79KJnsQs%2Blh7j%2Bp99AHh4Gy%2FNIRKPoPncMlmwB2TnFiJuy8NOty%2FDR1bew81db8SB%2BFVUuO1SWC%2FOEZfoLCp34BEXc6k215OUXnmVyzCY8tWoZdh9sxv6feFA%2Bax7utxKKzBey4UQBkjQXVjaDjuEUDr2yGasXzKTEiOE7y79OHnhfRbfNDYHjo2yByA2yBkMK65exP%2FvBc0SJjyIwOIgiuwVb1i4FapYg2toPkRaf0ZSlGQ2UR1Lo8N7Fih%2BuQVWxAx237%2BDa9Tuwm41YvmgB00ZFIzGIsjkWw7BKyDCsFhj0OlWWxzAYGEZz8wcoddjw7i82w4cgyqAgnc6M%2B%2BdYFn3K55Qo89CweB7I2Ag4UURl1XRkOAnJRBIOWiUYEmW%2FXzszSsXhAysgGhtRbTkWHD58AuXlZcjONmHJnBn49s5G3EE7skQeVAYQqTPAhKcbFqK6rAjuCS44CvIRDkUotQE5HmcHKa15UYyyFFciZFKPcOEmzXxIpWFRUuwET1mgqiosJj1qZ5QCdd9DfukkpKk%2BDDYb8jZvhSNLD53AYcAXxIWLn%2BHGjbuIyQly9szHTFlkCGlWiLJazVQovRp13953nPTSl1etXIre3gGEwxGwHAdWGxB5FjACLZuWQHUFSa8fz1Y7393thd8fRGGhA5%2B03sTfmvaj1JkHJZ2JjQeQVaZ3%2BdxKtPzlIHP67CUUuSdgWsUkdHY%2BBE%2FxNpuzKb3HQOh80pyDqHSuEiRSaToZeOTbbVi5vA7Fk0px7OSHNKQFyaRCURAj4wF4ke%2BP0D%2FMFJ9dLx4ll9pvw1lUiK%2FOqkJfIIQP%2FnERViFDhaMpmLKJBnFLPPZ7jqG55TyKSidCpYrfd%2BQ9nP%2FzvrTZOBWixQomkx6j8qNMXLvJSjuyUVb0fNh7LX300DlIFpYR9Abm5789ivfe8qBQpmp35cFI8U%2FEIuj61zlEHj3Ah6daESWjePfURfX4xfuZKdVzhOr1a%2BDIsb6zcIp5v9Z0eDwetrt4weZ4PL4r1NNTqFHurC%2BQxuG%2FU%2FBjQulXytHddg3T161BWX09Yo96cea1A8iblAcmMAp%2FuVuZv2Sh6HS5wMgjQ26XY9ubDU80a7413jEehqHswUFP68CxLlPWS4qiND43o9ouz6rBpUPvJLrbung6rHmGNlzDX1utJXYEuryqmOVQVjQ8qTMaKaOSoyfqqmq%2Bu2FRxTCwliOkibC0azRLoLGlRfLMcsrHNtS%2FJqrxqnhgcA8RhPi0b63W2adP4JP4OJGKyxqF6JdB%2BGGnwjmd6vzGdTo9q%2FrsJPHMH7Y3NGjOG%2Fe2SPQy1VRJxiHSAmhW6znPw%2B3lL2zcSG8UYP3bf52SFsQdY7K8yd%2FZhajPl6mor1Pl4SDpuXVLnDJ7NnKzjX%2BcnZ%2F%2F0vOr5vixtonzTAPn8axTtPP0jqCp%2FB9b29QkBu%2Fa1QueuvHhs%2BXk5ZpYOPpjJZV%2BkvISybE4DKoSKMrN3bbn2cUnx13s3St5QqEU7acG97hpAb58%2Ft%2BVbm450EqV9R89YcOJj%2BY37DvV%2BsLB90%2B1tHfatUNNTU3cXgrvl8609bFn7t8fxThrSai%2FQAAAAABJRU5ErkJggg%3D%3D)
3
+ ![PyPI - Version](https://img.shields.io/pypi/v/karabo-cpp)
4
+ ![PyPI - Python Version](https://img.shields.io/pypi/pyversions/karabo-cpp)
5
+ ![PyPI - License](https://img.shields.io/pypi/l/karabo-cpp)
6
+ ![PyPI - Wheel](https://img.shields.io/pypi/wheel/karabo-cpp)
7
+ ![GitHub language count](https://img.shields.io/github/languages/count/European-XFEL/Karabo)
8
+ ![GitHub top language](https://img.shields.io/github/languages/top/European-XFEL/Karabo)
9
+ ![GitHub contributors](https://img.shields.io/github/contributors/European-XFEL/Karabo)
10
+ ![GitHub commit activity](https://img.shields.io/github/commit-activity/m/European-XFEL/Karabo)
11
+ ![GitHub Repo stars](https://img.shields.io/github/stars/European-XFEL/Karabo)
12
+
13
+ This package exposes the C++ API and C++ Service devices of the Karabo
14
+ SCADA framework.
15
+
16
+ Please check https://pypi.org/project/Karabo/ for an overview of Karabo's components
17
+ and ways to install the full system.
18
+
19
+ # Supported Operating Systems
20
+
21
+ The OS are tested are:
22
+
23
+ > Almalinux 8/9
24
+ > Ubuntu 20.04/22.04 LTS
25
+ > RedHat 9
26
+
27
+ A source distribution is provided, but may lead to compilation failures on systems not
28
+ supported through the binary wheel packages as well. If compilation fails, please
29
+ install Karabo as indicated in the source repository at https://github.com/European-XFEL/Karabo
30
+
31
+ # Installation
32
+
33
+ To install run
34
+
35
+ ```bash
36
+ pip install karabo.cpp
37
+ ```
38
+
39
+ or use the `full` or `cpp` options when installing the `karabo` package:
40
+
41
+ ```bash
42
+ pip install karabo[full]
43
+ pip install karabo[cpp]
44
+ ```
45
+
46
+ # C++ Device Development
47
+
48
+ The recommended way of developing Karabo C++ devices is to build a self-contained Karabo
49
+ environment following the instructions at https://github.com/European-XFEL/Karabo.
@@ -0,0 +1,278 @@
1
+ #!/bin/bash
2
+
3
+ ##############################################################################
4
+ # Packages that we know how to build
5
+
6
+ scriptDir=$(dirname $([[ $0 = /* ]] && echo "$0" || echo "$PWD/${0#./}"))
7
+ source "$scriptDir/../set_lsb_release_info.sh"
8
+
9
+ ##############################################################################
10
+ # Important constants
11
+
12
+ CONAN_RECIPE_CHANNEL=py312
13
+ LOG4CPP_VERSION=1.1.3
14
+ DAEMONTOOLS_VERSION=1.11-karabo3
15
+ NSS_VERSION=3.93
16
+
17
+ declare -A CONAN_MIRRORS=(
18
+ ["GNU_DOGADO"]="http://mirror.dogado.de/gnu/"
19
+ ["GNU_FAU"]="http://ftp.fau.de/gnu"
20
+ )
21
+
22
+ ##############################################################################
23
+ # Define a bunch of functions to be called later
24
+
25
+ check_for() {
26
+ which $1 &>/dev/null
27
+ if [ $? -ne 0 ]; then
28
+ return 1
29
+ fi
30
+
31
+ # Installed and ready!
32
+ return 0
33
+ }
34
+
35
+ get_abs_path() {
36
+ local parent_dir=$(dirname "$1")
37
+ local _basename=$(basename "$1")
38
+ case $_basename in
39
+ ..)
40
+ cd "$1"
41
+ local abs_path="$(pwd -P)"
42
+ ;;
43
+ *)
44
+ cd "$parent_dir"
45
+ local abs_path="$(pwd -P)"/"$_basename"
46
+ ;;
47
+ esac
48
+ cd - >/dev/null
49
+ echo "$abs_path"
50
+ }
51
+
52
+ checkReturnCode() {
53
+ ret_code=$?
54
+ if [ $ret_code != 0 ]; then
55
+ if [ -n "$1" ]; then
56
+ # if the output is present, print it in case of error
57
+ cat $1 >&1
58
+ # remove the temporary file before exiting
59
+ rm -f $1
60
+ # redirect the filedescriptor 3 to stdout as is tradition
61
+ exec 3>&1
62
+ fi
63
+ printf "Error : [%d] when executing command: '$cmnd'" $ret_code
64
+ exit $ret_code
65
+ fi
66
+ }
67
+
68
+ safeRunCommand() {
69
+ typeset cmnd="$*"
70
+ typeset ret_code
71
+
72
+ echo cmnd=$cmnd
73
+ eval $cmnd
74
+ checkReturnCode ""
75
+ }
76
+
77
+ safeRunCommandQuiet() {
78
+ local cmnd="$*"
79
+ local ret_code
80
+
81
+ tmp_output=$(mktemp)
82
+ echo cmnd=$cmnd
83
+ # redirect the stream with file descriptor 3 to the temporary file
84
+ exec 3>"$tmp_output"
85
+ # execute the command redirecting the output to 3
86
+ eval $cmnd >&3 2>&3
87
+ # `checkReturnCode` will print the output even in quiet mode.
88
+ checkReturnCode $tmp_output
89
+ # remove the temporary file to clean up
90
+ rm -f $tmp_output
91
+ # redirect the filedescriptor 3 to stdout as is tradition
92
+ exec 3>&1
93
+ }
94
+
95
+ add_conan_mirrors() {
96
+ # Setup mirrors for conan to look for
97
+ for mirror in "${!CONAN_MIRRORS[@]}"; do
98
+ mirror_url="${CONAN_MIRRORS[$mirror]}"
99
+ if conan remote list | grep -q "$mirror_url"; then
100
+ echo "Remote $mirror is already added."
101
+ else
102
+ echo "Adding remote $mirror with URL $mirror_url"
103
+ safeRunCommandQuiet conan remote add "$mirror" "$mirror_url"
104
+ fi
105
+ done
106
+ }
107
+
108
+ install_python() {
109
+ pushd $scriptDir
110
+
111
+ safeRunCommandQuiet "rm -rf $INSTALL_PREFIX/conan_toolchain"
112
+
113
+ # create default build profile
114
+ safeRunCommandQuiet "conan profile detect --force"
115
+
116
+ add_conan_mirrors
117
+ # configure prefix paths
118
+ local folder_opts="--deployer=karabo_deployer --deployer-folder=$INSTALL_PREFIX --output-folder=$INSTALL_PREFIX/conan_toolchain"
119
+ # build python if not found in conan cache
120
+ local build_opts="--build=missing"
121
+ # apply custom profile on top of default profile
122
+ local profile_opts="-pr:h=./conanprofile.karabo"
123
+ # always compile patchelf, b2, openssl from source (needed later), ensures linkage against correct GLIBC version symbols
124
+ # (Still needed after removal of opemq(c)?)
125
+ build_opts="$build_opts -o openssl/*:openssldir=/etc/ssl"
126
+ # install packages listed in the extern/conanfile-bootstrap.txt
127
+ if [[ $INSTALL_PREFIX == *"Ubuntu-20"* ]]; then
128
+ # Work around a failure for building the conan package "cpython/3.12.2"
129
+ # on Ubuntu 20. For an unknown reason the "configure" that ships with the
130
+ # cpython source package fails to check that the function "shm_open" is
131
+ # exported by "librt.so". The same "configure" works as expected on the
132
+ # same Ubuntu 20 system during a manual installation of cpython from source.
133
+ # Details at https://git.xfel.eu/Karabo/Framework/-/merge_requests/8551#note_467905
134
+ export POSIXSHMEM_LIBS="-lrt"
135
+ fi
136
+ safeRunCommandQuiet "conan install conanfile-bootstrap.txt $folder_opts $build_opts $profile_opts"
137
+
138
+ # ensure that python can always find its libpython.so
139
+ safeRunCommand "$INSTALL_PREFIX/bin/patchelf --force-rpath --set-rpath '\$ORIGIN/../lib' $INSTALL_PREFIX/bin/python3.12"
140
+
141
+ # use pip in INSTALL_PREFIX by calling python3 -m pip <args>
142
+ local pip_install_cmd="$INSTALL_PREFIX/bin/python3 -m pip install"
143
+
144
+ # install python requirements
145
+ # we do this in multiple stages, as pip has issues resolving a
146
+ # too complex dependency chain with many pinned versions.
147
+ safeRunCommandQuiet "$pip_install_cmd --force-reinstall -r requirements-pre.txt"
148
+ # important dependencies that many other packages will need
149
+ # (ie: numpy) are installed first
150
+ safeRunCommandQuiet "$pip_install_cmd -r requirements-0.txt"
151
+ # install everything else
152
+ safeRunCommandQuiet "$pip_install_cmd -r requirements-1.txt"
153
+
154
+ popd
155
+ }
156
+
157
+ install_from_deps() {
158
+ pushd $scriptDir
159
+
160
+ # create default build profile
161
+ safeRunCommandQuiet "$INSTALL_PREFIX/bin/conan profile detect --force"
162
+
163
+ add_conan_mirrors
164
+ # export local conan recipes (for packages where no public recipe exists
165
+ # we keep custom conan recipes in extern/resources/<pkg_name>)
166
+ safeRunCommandQuiet "$INSTALL_PREFIX/bin/conan export ./resources/daemontools/conanfile.py --name daemontools-encore --version $DAEMONTOOLS_VERSION --user karabo --channel $CONAN_RECIPE_CHANNEL"
167
+ safeRunCommandQuiet "$INSTALL_PREFIX/bin/conan export ./resources/nss/conanfile.py --name nss --version $NSS_VERSION --user karabo --channel $CONAN_RECIPE_CHANNEL"
168
+
169
+ # configure prefix paths
170
+ local folder_opts="--deployer=karabo_deployer --deployer-folder=$INSTALL_PREFIX --output-folder=$INSTALL_PREFIX/conan_toolchain"
171
+ # when should conan build from sources? missing means if no pre-compiled binary package exists
172
+ local build_opts="--build=missing"
173
+ # apply custom profile on top of default profile
174
+ local profile_opts="-pr:h=./conanprofile.karabo"
175
+
176
+ # always compile openssl from source (needed later), ensures linkage against correct GLIBC version symbols
177
+ # (Still needed after removal of openmq(c)?)
178
+ build_opts="$build_opts -o openssl/*:openssldir=/etc/ssl"
179
+
180
+ # install packages listed in the extern/conanfile.txt
181
+ safeRunCommandQuiet "$INSTALL_PREFIX/bin/conan install . $folder_opts $build_opts $profile_opts"
182
+ # fix read-only files installed by nss (to enable conan reinstalls)
183
+ safeRunCommandQuiet "chmod +w $INSTALL_PREFIX/include/*"
184
+
185
+ # fix rpaths
186
+ # Relocate the libraries/executables
187
+ safeRunCommand "find $INSTALL_PREFIX/lib -maxdepth 1 -name '*.so' -exec $INSTALL_PREFIX/bin/patchelf --force-rpath --set-rpath '\$ORIGIN/../lib' {} \;"
188
+ safeRunCommandQuiet "./relocate_deps.sh $INSTALL_PREFIX"
189
+
190
+ # for whatever reason conan does not reliably copy *.pc files from its root directory
191
+ # we do this here instead, and also capture any .pc files our from source builds created
192
+ # in the process.
193
+ safeRunCommandQuiet "mkdir -p $INSTALL_PREFIX/lib/pkgconfig/"
194
+ cp $INSTALL_PREFIX/conan_toolchain/*.pc $INSTALL_PREFIX/lib/pkgconfig/
195
+ # now fix occurences of prefixes such that packages can use the "--define-prefix" option
196
+ # of pkgconfig
197
+ sed -i 's|prefix=.*|prefix=\${KARABO}/extern|g' $INSTALL_PREFIX/lib/pkgconfig/*.pc
198
+ sed -i 's|libdir=.*|libdir=\${prefix}/lib|g' $INSTALL_PREFIX/lib/pkgconfig/*.pc
199
+ sed -i 's|includedir=.*|includedir=\${prefix}/include|g' $INSTALL_PREFIX/lib/pkgconfig/*.pc
200
+ sed -i 's|exec_prefix=.*|exec_prefix=\${prefix}|g' $INSTALL_PREFIX/lib/pkgconfig/*.pc
201
+
202
+ popd
203
+ }
204
+
205
+ usage() {
206
+ echo
207
+ echo "Build the Karabo Dependencies"
208
+ echo
209
+ echo "Usage: $0 [args] INSTALL_DIRECTORY CI|ALL"
210
+ echo " INSTALL_DIRECTORY : The directory where build artifacts are installed"
211
+ echo " CI|ALL : The type of build to perform"
212
+ echo "Arguments:"
213
+ echo " --package | -p : After building, make a tarball of the install directory"
214
+ echo " --quiet | -q : Suppress output of build commands"
215
+ echo
216
+ }
217
+
218
+ ##############################################################################
219
+ # We start executing here
220
+
221
+ # Parse command line args (anything starting with '-')
222
+ BUILD_PACKAGE="n"
223
+ QUIET=""
224
+ until [ ${1:0:1} != "-" ]; do
225
+ case $1 in
226
+ --package | -p)
227
+ BUILD_PACKAGE="y"
228
+ ;;
229
+ --quiet | -q)
230
+ QUIET="-q"
231
+ ;;
232
+ *)
233
+ echo "Unrecognized argument '$1'"
234
+ usage
235
+ exit 1
236
+ ;;
237
+ esac
238
+ shift
239
+ done
240
+
241
+ ##############################################################################
242
+ # (Following all the arguments preceded by '-' or '--')
243
+ # $1 INSTALL_PREFIX Installation prefix
244
+ # $2+ WHAT Which packages to build (symbolic or specific)
245
+ EXTERN_DIR=$(dirname $0)
246
+ INSTALL_PREFIX=$(get_abs_path $1)
247
+ TARGET_ARCH=$(uname -m)
248
+ WHAT=${@:2}
249
+ FORCE="n"
250
+
251
+ # Make sure conan is available
252
+ check_for conan
253
+ if [ $? -ne 0 ]; then
254
+ echo
255
+ echo
256
+ echo "!!! 'conan' command not found!"
257
+ echo "Please install 'conan' so that dependencies can be downloaded!"
258
+ echo
259
+ echo
260
+ # Give the user time to see the message
261
+ sleep 2
262
+ return 1
263
+ else
264
+ # Make aware of which conan is used
265
+ conan --version
266
+ fi
267
+
268
+ # python download and install to allow full bootstrap
269
+ # install framework python dependencies via pip
270
+ check_for $INSTALL_PREFIX/bin/python
271
+ if [ $? -ne 0 ]; then
272
+ install_python
273
+ fi
274
+
275
+ # install framework build dependencies via conan
276
+ install_from_deps
277
+
278
+ echo "### All external dependencies successfully installed/already present. ###"