mqt-core 3.2.1__cp313-cp313t-win_amd64.whl → 3.3.1__cp313-cp313t-win_amd64.whl

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.

Potentially problematic release.


This version of mqt-core might be problematic. Click here for more details.

Files changed (246) hide show
  1. mqt/core/__init__.py +3 -3
  2. mqt/core/_commands.py +2 -2
  3. mqt/core/_version.py +16 -3
  4. mqt/core/bin/mqt-core-algorithms.dll +0 -0
  5. mqt/core/bin/mqt-core-circuit-optimizer.dll +0 -0
  6. mqt/core/bin/mqt-core-dd.dll +0 -0
  7. mqt/core/bin/mqt-core-ds.dll +0 -0
  8. mqt/core/bin/mqt-core-fomac.dll +0 -0
  9. mqt/core/bin/mqt-core-ir.dll +0 -0
  10. mqt/core/bin/mqt-core-na-fomac.dll +0 -0
  11. mqt/core/bin/mqt-core-na.dll +0 -0
  12. mqt/core/bin/mqt-core-qasm.dll +0 -0
  13. mqt/core/bin/mqt-core-qdmi-driver.dll +0 -0
  14. mqt/core/bin/mqt-core-qdmi-na-device.dll +0 -0
  15. mqt/core/bin/mqt-core-zx.dll +0 -0
  16. mqt/core/dd.cp313t-win_amd64.pyd +0 -0
  17. mqt/core/dd.pyi +5 -7
  18. mqt/core/fomac.cp313t-win_amd64.pyd +0 -0
  19. mqt/core/fomac.pyi +125 -0
  20. mqt/core/include/mqt-core/circuit_optimizer/CircuitOptimizer.hpp +13 -0
  21. mqt/core/include/mqt-core/dd/CachedEdge.hpp +7 -0
  22. mqt/core/include/mqt-core/dd/Operations.hpp +12 -14
  23. mqt/core/include/mqt-core/fomac/FoMaC.hpp +568 -0
  24. mqt/core/include/mqt-core/ir/QuantumComputation.hpp +29 -28
  25. mqt/core/include/mqt-core/ir/operations/CompoundOperation.hpp +2 -0
  26. mqt/core/include/mqt-core/ir/operations/IfElseOperation.hpp +169 -0
  27. mqt/core/include/mqt-core/ir/operations/OpType.hpp +3 -0
  28. mqt/core/include/mqt-core/ir/operations/OpType.inc +2 -2
  29. mqt/core/include/mqt-core/ir/operations/Operation.hpp +3 -1
  30. mqt/core/include/mqt-core/ir/operations/StandardOperation.hpp +2 -0
  31. mqt/core/include/mqt-core/mqt_na_qdmi/device.h +602 -0
  32. mqt/core/include/mqt-core/mqt_na_qdmi/types.h +78 -0
  33. mqt/core/include/mqt-core/na/device/Device.hpp +410 -0
  34. mqt/core/include/mqt-core/na/device/DeviceMemberInitializers.hpp +724 -0
  35. mqt/core/include/mqt-core/na/device/Generator.hpp +447 -0
  36. mqt/core/include/mqt-core/na/fomac/Device.hpp +169 -0
  37. mqt/core/include/mqt-core/qdmi/Driver.hpp +431 -0
  38. mqt/core/include/nlohmann/adl_serializer.hpp +55 -0
  39. mqt/core/include/nlohmann/byte_container_with_subtype.hpp +103 -0
  40. mqt/core/include/nlohmann/detail/abi_macros.hpp +111 -0
  41. mqt/core/include/nlohmann/detail/conversions/from_json.hpp +577 -0
  42. mqt/core/include/nlohmann/detail/conversions/to_chars.hpp +1118 -0
  43. mqt/core/include/nlohmann/detail/conversions/to_json.hpp +479 -0
  44. mqt/core/include/nlohmann/detail/exceptions.hpp +291 -0
  45. mqt/core/include/nlohmann/detail/hash.hpp +129 -0
  46. mqt/core/include/nlohmann/detail/input/binary_reader.hpp +3068 -0
  47. mqt/core/include/nlohmann/detail/input/input_adapters.hpp +549 -0
  48. mqt/core/include/nlohmann/detail/input/json_sax.hpp +986 -0
  49. mqt/core/include/nlohmann/detail/input/lexer.hpp +1643 -0
  50. mqt/core/include/nlohmann/detail/input/parser.hpp +519 -0
  51. mqt/core/include/nlohmann/detail/input/position_t.hpp +37 -0
  52. mqt/core/include/nlohmann/detail/iterators/internal_iterator.hpp +35 -0
  53. mqt/core/include/nlohmann/detail/iterators/iter_impl.hpp +760 -0
  54. mqt/core/include/nlohmann/detail/iterators/iteration_proxy.hpp +235 -0
  55. mqt/core/include/nlohmann/detail/iterators/iterator_traits.hpp +61 -0
  56. mqt/core/include/nlohmann/detail/iterators/json_reverse_iterator.hpp +130 -0
  57. mqt/core/include/nlohmann/detail/iterators/primitive_iterator.hpp +132 -0
  58. mqt/core/include/nlohmann/detail/json_custom_base_class.hpp +39 -0
  59. mqt/core/include/nlohmann/detail/json_pointer.hpp +988 -0
  60. mqt/core/include/nlohmann/detail/json_ref.hpp +78 -0
  61. mqt/core/include/nlohmann/detail/macro_scope.hpp +595 -0
  62. mqt/core/include/nlohmann/detail/macro_unscope.hpp +46 -0
  63. mqt/core/include/nlohmann/detail/meta/call_std/begin.hpp +17 -0
  64. mqt/core/include/nlohmann/detail/meta/call_std/end.hpp +17 -0
  65. mqt/core/include/nlohmann/detail/meta/cpp_future.hpp +171 -0
  66. mqt/core/include/nlohmann/detail/meta/detected.hpp +70 -0
  67. mqt/core/include/nlohmann/detail/meta/identity_tag.hpp +21 -0
  68. mqt/core/include/nlohmann/detail/meta/is_sax.hpp +159 -0
  69. mqt/core/include/nlohmann/detail/meta/std_fs.hpp +29 -0
  70. mqt/core/include/nlohmann/detail/meta/type_traits.hpp +795 -0
  71. mqt/core/include/nlohmann/detail/meta/void_t.hpp +24 -0
  72. mqt/core/include/nlohmann/detail/output/binary_writer.hpp +1850 -0
  73. mqt/core/include/nlohmann/detail/output/output_adapters.hpp +147 -0
  74. mqt/core/include/nlohmann/detail/output/serializer.hpp +988 -0
  75. mqt/core/include/nlohmann/detail/string_concat.hpp +146 -0
  76. mqt/core/include/nlohmann/detail/string_escape.hpp +72 -0
  77. mqt/core/include/nlohmann/detail/string_utils.hpp +37 -0
  78. mqt/core/include/nlohmann/detail/value_t.hpp +118 -0
  79. mqt/core/include/nlohmann/json.hpp +5306 -0
  80. mqt/core/include/nlohmann/json_fwd.hpp +75 -0
  81. mqt/core/include/nlohmann/ordered_map.hpp +359 -0
  82. mqt/core/include/nlohmann/thirdparty/hedley/hedley.hpp +2045 -0
  83. mqt/core/include/nlohmann/thirdparty/hedley/hedley_undef.hpp +158 -0
  84. mqt/core/include/qdmi/qdmi/client.h +990 -0
  85. mqt/core/include/qdmi/qdmi/constants.h +1139 -0
  86. mqt/core/include/qdmi/qdmi/device.h +602 -0
  87. mqt/core/include/qdmi/qdmi/types.h +78 -0
  88. mqt/core/include/spdlog/async.h +99 -0
  89. mqt/core/include/spdlog/async_logger-inl.h +84 -0
  90. mqt/core/include/spdlog/async_logger.h +74 -0
  91. mqt/core/include/spdlog/cfg/argv.h +40 -0
  92. mqt/core/include/spdlog/cfg/env.h +36 -0
  93. mqt/core/include/spdlog/cfg/helpers-inl.h +107 -0
  94. mqt/core/include/spdlog/cfg/helpers.h +29 -0
  95. mqt/core/include/spdlog/common-inl.h +68 -0
  96. mqt/core/include/spdlog/common.h +406 -0
  97. mqt/core/include/spdlog/details/backtracer-inl.h +63 -0
  98. mqt/core/include/spdlog/details/backtracer.h +45 -0
  99. mqt/core/include/spdlog/details/circular_q.h +115 -0
  100. mqt/core/include/spdlog/details/console_globals.h +28 -0
  101. mqt/core/include/spdlog/details/file_helper-inl.h +153 -0
  102. mqt/core/include/spdlog/details/file_helper.h +61 -0
  103. mqt/core/include/spdlog/details/fmt_helper.h +141 -0
  104. mqt/core/include/spdlog/details/log_msg-inl.h +44 -0
  105. mqt/core/include/spdlog/details/log_msg.h +40 -0
  106. mqt/core/include/spdlog/details/log_msg_buffer-inl.h +54 -0
  107. mqt/core/include/spdlog/details/log_msg_buffer.h +32 -0
  108. mqt/core/include/spdlog/details/mpmc_blocking_q.h +177 -0
  109. mqt/core/include/spdlog/details/null_mutex.h +35 -0
  110. mqt/core/include/spdlog/details/os-inl.h +606 -0
  111. mqt/core/include/spdlog/details/os.h +127 -0
  112. mqt/core/include/spdlog/details/periodic_worker-inl.h +26 -0
  113. mqt/core/include/spdlog/details/periodic_worker.h +58 -0
  114. mqt/core/include/spdlog/details/registry-inl.h +270 -0
  115. mqt/core/include/spdlog/details/registry.h +131 -0
  116. mqt/core/include/spdlog/details/synchronous_factory.h +22 -0
  117. mqt/core/include/spdlog/details/tcp_client-windows.h +135 -0
  118. mqt/core/include/spdlog/details/tcp_client.h +127 -0
  119. mqt/core/include/spdlog/details/thread_pool-inl.h +126 -0
  120. mqt/core/include/spdlog/details/thread_pool.h +117 -0
  121. mqt/core/include/spdlog/details/udp_client-windows.h +98 -0
  122. mqt/core/include/spdlog/details/udp_client.h +81 -0
  123. mqt/core/include/spdlog/details/windows_include.h +11 -0
  124. mqt/core/include/spdlog/fmt/bin_to_hex.h +224 -0
  125. mqt/core/include/spdlog/fmt/bundled/args.h +220 -0
  126. mqt/core/include/spdlog/fmt/bundled/base.h +2989 -0
  127. mqt/core/include/spdlog/fmt/bundled/chrono.h +2330 -0
  128. mqt/core/include/spdlog/fmt/bundled/color.h +637 -0
  129. mqt/core/include/spdlog/fmt/bundled/compile.h +539 -0
  130. mqt/core/include/spdlog/fmt/bundled/core.h +5 -0
  131. mqt/core/include/spdlog/fmt/bundled/fmt.license.rst +27 -0
  132. mqt/core/include/spdlog/fmt/bundled/format-inl.h +1948 -0
  133. mqt/core/include/spdlog/fmt/bundled/format.h +4244 -0
  134. mqt/core/include/spdlog/fmt/bundled/os.h +427 -0
  135. mqt/core/include/spdlog/fmt/bundled/ostream.h +167 -0
  136. mqt/core/include/spdlog/fmt/bundled/printf.h +633 -0
  137. mqt/core/include/spdlog/fmt/bundled/ranges.h +850 -0
  138. mqt/core/include/spdlog/fmt/bundled/std.h +728 -0
  139. mqt/core/include/spdlog/fmt/bundled/xchar.h +369 -0
  140. mqt/core/include/spdlog/fmt/chrono.h +23 -0
  141. mqt/core/include/spdlog/fmt/compile.h +23 -0
  142. mqt/core/include/spdlog/fmt/fmt.h +30 -0
  143. mqt/core/include/spdlog/fmt/ostr.h +23 -0
  144. mqt/core/include/spdlog/fmt/ranges.h +23 -0
  145. mqt/core/include/spdlog/fmt/std.h +24 -0
  146. mqt/core/include/spdlog/fmt/xchar.h +23 -0
  147. mqt/core/include/spdlog/formatter.h +17 -0
  148. mqt/core/include/spdlog/fwd.h +18 -0
  149. mqt/core/include/spdlog/logger-inl.h +198 -0
  150. mqt/core/include/spdlog/logger.h +379 -0
  151. mqt/core/include/spdlog/mdc.h +52 -0
  152. mqt/core/include/spdlog/pattern_formatter-inl.h +1340 -0
  153. mqt/core/include/spdlog/pattern_formatter.h +118 -0
  154. mqt/core/include/spdlog/sinks/android_sink.h +137 -0
  155. mqt/core/include/spdlog/sinks/ansicolor_sink-inl.h +142 -0
  156. mqt/core/include/spdlog/sinks/ansicolor_sink.h +116 -0
  157. mqt/core/include/spdlog/sinks/base_sink-inl.h +59 -0
  158. mqt/core/include/spdlog/sinks/base_sink.h +51 -0
  159. mqt/core/include/spdlog/sinks/basic_file_sink-inl.h +48 -0
  160. mqt/core/include/spdlog/sinks/basic_file_sink.h +66 -0
  161. mqt/core/include/spdlog/sinks/callback_sink.h +56 -0
  162. mqt/core/include/spdlog/sinks/daily_file_sink.h +254 -0
  163. mqt/core/include/spdlog/sinks/dist_sink.h +81 -0
  164. mqt/core/include/spdlog/sinks/dup_filter_sink.h +91 -0
  165. mqt/core/include/spdlog/sinks/hourly_file_sink.h +193 -0
  166. mqt/core/include/spdlog/sinks/kafka_sink.h +119 -0
  167. mqt/core/include/spdlog/sinks/mongo_sink.h +108 -0
  168. mqt/core/include/spdlog/sinks/msvc_sink.h +68 -0
  169. mqt/core/include/spdlog/sinks/null_sink.h +41 -0
  170. mqt/core/include/spdlog/sinks/ostream_sink.h +43 -0
  171. mqt/core/include/spdlog/sinks/qt_sinks.h +304 -0
  172. mqt/core/include/spdlog/sinks/ringbuffer_sink.h +67 -0
  173. mqt/core/include/spdlog/sinks/rotating_file_sink-inl.h +179 -0
  174. mqt/core/include/spdlog/sinks/rotating_file_sink.h +93 -0
  175. mqt/core/include/spdlog/sinks/sink-inl.h +22 -0
  176. mqt/core/include/spdlog/sinks/sink.h +34 -0
  177. mqt/core/include/spdlog/sinks/stdout_color_sinks-inl.h +38 -0
  178. mqt/core/include/spdlog/sinks/stdout_color_sinks.h +49 -0
  179. mqt/core/include/spdlog/sinks/stdout_sinks-inl.h +127 -0
  180. mqt/core/include/spdlog/sinks/stdout_sinks.h +84 -0
  181. mqt/core/include/spdlog/sinks/syslog_sink.h +104 -0
  182. mqt/core/include/spdlog/sinks/systemd_sink.h +121 -0
  183. mqt/core/include/spdlog/sinks/tcp_sink.h +75 -0
  184. mqt/core/include/spdlog/sinks/udp_sink.h +69 -0
  185. mqt/core/include/spdlog/sinks/win_eventlog_sink.h +260 -0
  186. mqt/core/include/spdlog/sinks/wincolor_sink-inl.h +172 -0
  187. mqt/core/include/spdlog/sinks/wincolor_sink.h +82 -0
  188. mqt/core/include/spdlog/spdlog-inl.h +96 -0
  189. mqt/core/include/spdlog/spdlog.h +357 -0
  190. mqt/core/include/spdlog/stopwatch.h +66 -0
  191. mqt/core/include/spdlog/tweakme.h +148 -0
  192. mqt/core/include/spdlog/version.h +11 -0
  193. mqt/core/ir/__init__.pyi +83 -45
  194. mqt/core/ir/operations.pyi +40 -27
  195. mqt/core/ir.cp313t-win_amd64.pyd +0 -0
  196. mqt/core/lib/mqt-core-algorithms.lib +0 -0
  197. mqt/core/lib/mqt-core-circuit-optimizer.lib +0 -0
  198. mqt/core/lib/mqt-core-dd.lib +0 -0
  199. mqt/core/lib/mqt-core-ds.lib +0 -0
  200. mqt/core/lib/mqt-core-fomac.lib +0 -0
  201. mqt/core/lib/mqt-core-ir.lib +0 -0
  202. mqt/core/lib/mqt-core-na-fomac.lib +0 -0
  203. mqt/core/lib/mqt-core-na.lib +0 -0
  204. mqt/core/lib/mqt-core-qasm.lib +0 -0
  205. mqt/core/lib/mqt-core-qdmi-driver.lib +0 -0
  206. mqt/core/lib/mqt-core-qdmi-na-device-gen.lib +0 -0
  207. mqt/core/lib/mqt-core-qdmi-na-device.lib +0 -0
  208. mqt/core/lib/mqt-core-zx.lib +0 -0
  209. mqt/core/lib/pkgconfig/spdlog.pc +13 -0
  210. mqt/core/lib/spdlog.lib +0 -0
  211. mqt/core/na/__init__.py +12 -0
  212. mqt/core/na/fomac.cp313t-win_amd64.pyd +0 -0
  213. mqt/core/na/fomac.pyi +117 -0
  214. mqt/core/nlohmann_json.natvis +278 -0
  215. mqt/core/plugins/qiskit/mqt_to_qiskit.py +75 -11
  216. mqt/core/plugins/qiskit/qiskit_to_mqt.py +108 -5
  217. mqt/core/share/cmake/mqt-core/AddMQTPythonBinding.cmake +3 -0
  218. mqt/core/share/cmake/mqt-core/Cache.cmake +17 -16
  219. mqt/core/share/cmake/mqt-core/PackageAddTest.cmake +6 -0
  220. mqt/core/share/cmake/mqt-core/StandardProjectSettings.cmake +1 -1
  221. mqt/core/share/cmake/mqt-core/mqt-core-config-version.cmake +3 -3
  222. mqt/core/share/cmake/mqt-core/mqt-core-config.cmake +3 -0
  223. mqt/core/share/cmake/mqt-core/mqt-core-targets-release.cmake +51 -0
  224. mqt/core/share/cmake/mqt-core/mqt-core-targets.cmake +124 -3
  225. mqt/core/share/cmake/nlohmann_json/nlohmann_jsonConfig.cmake +15 -0
  226. mqt/core/share/cmake/nlohmann_json/nlohmann_jsonConfigVersion.cmake +20 -0
  227. mqt/core/share/cmake/nlohmann_json/nlohmann_jsonTargets.cmake +110 -0
  228. mqt/core/share/cmake/qdmi/Cache.cmake +44 -0
  229. mqt/core/share/cmake/qdmi/PrefixHandling.cmake +78 -0
  230. mqt/core/share/cmake/qdmi/prefix_defs.txt +26 -0
  231. mqt/core/share/cmake/qdmi/qdmi-config-version.cmake +85 -0
  232. mqt/core/share/cmake/qdmi/qdmi-config.cmake +42 -0
  233. mqt/core/share/cmake/qdmi/qdmi-targets.cmake +129 -0
  234. mqt/core/share/cmake/spdlog/spdlogConfig.cmake +44 -0
  235. mqt/core/share/cmake/spdlog/spdlogConfigTargets-release.cmake +19 -0
  236. mqt/core/share/cmake/spdlog/spdlogConfigTargets.cmake +121 -0
  237. mqt/core/share/cmake/spdlog/spdlogConfigVersion.cmake +65 -0
  238. mqt/core/share/pkgconfig/nlohmann_json.pc +7 -0
  239. mqt_core-3.3.1.dist-info/DELVEWHEEL +2 -0
  240. {mqt_core-3.2.1.dist-info → mqt_core-3.3.1.dist-info}/METADATA +74 -33
  241. {mqt_core-3.2.1.dist-info → mqt_core-3.3.1.dist-info}/RECORD +244 -50
  242. {mqt_core-3.2.1.dist-info → mqt_core-3.3.1.dist-info}/WHEEL +1 -1
  243. mqt/core/include/mqt-core/ir/operations/ClassicControlledOperation.hpp +0 -156
  244. mqt_core-3.2.1.dist-info/DELVEWHEEL +0 -2
  245. {mqt_core-3.2.1.dist-info → mqt_core-3.3.1.dist-info}/entry_points.txt +0 -0
  246. {mqt_core-3.2.1.dist-info → mqt_core-3.3.1.dist-info}/licenses/LICENSE.md +0 -0
@@ -11,22 +11,23 @@ if(NOT ENABLE_CACHE)
11
11
  return()
12
12
  endif()
13
13
 
14
- set(CACHE_OPTION_VALUES "ccache" "sccache")
15
- set(CACHE_OPTION
16
- "ccache"
17
- CACHE STRING "Compiler cache to use")
18
- set_property(CACHE CACHE_OPTION PROPERTY STRINGS ${CACHE_OPTION_VALUES})
19
- list(FIND CACHE_OPTION_VALUES ${CACHE_OPTION} CACHE_OPTION_INDEX)
20
- if(CACHE_OPTION_INDEX EQUAL -1)
21
- message(NOTICE
22
- "Unknown compiler cache '${CACHE_OPTION}'. Available options are: ${CACHE_OPTION_VALUES}")
23
- endif()
14
+ # Check for available cache programs, preferring sccache
15
+ find_program(SCCACHE_BINARY sccache)
16
+ find_program(CCACHE_BINARY ccache)
24
17
 
25
- find_program(CACHE_BINARY ${CACHE_OPTION})
26
- if(CACHE_BINARY)
27
- message(STATUS "Compiler cache '${CACHE_OPTION}' found and enabled")
28
- set(CMAKE_C_COMPILER_LAUNCHER ${CACHE_BINARY})
29
- set(CMAKE_CXX_COMPILER_LAUNCHER ${CACHE_BINARY})
18
+ if(SCCACHE_BINARY)
19
+ set(CACHE_OPTION "sccache")
20
+ set(CACHE_BINARY ${SCCACHE_BINARY})
21
+ message(STATUS "Compiler cache 'sccache' found and enabled")
22
+ elseif(CCACHE_BINARY)
23
+ set(CACHE_OPTION "ccache")
24
+ set(CACHE_BINARY ${CCACHE_BINARY})
25
+ message(STATUS "Compiler cache 'ccache' found and enabled")
30
26
  else()
31
- message(NOTICE "${CACHE_OPTION} is enabled but was not found. Not using it")
27
+ set(CACHE_OPTION_VALUES "ccache" "sccache")
28
+ message(NOTICE "No compiler cache found. Checked for: ${CACHE_OPTION_VALUES}")
29
+ return()
32
30
  endif()
31
+
32
+ set(CMAKE_C_COMPILER_LAUNCHER ${CACHE_BINARY})
33
+ set(CMAKE_CXX_COMPILER_LAUNCHER ${CACHE_BINARY})
@@ -20,6 +20,9 @@ macro(PACKAGE_ADD_TEST testname linklibs)
20
20
  WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
21
21
  PROPERTIES VS_DEBUGGER_WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}" DISCOVERY_TIMEOUT 60)
22
22
  set_target_properties(${testname} PROPERTIES FOLDER tests)
23
+
24
+ # Set c++ standard
25
+ target_compile_features(${testname} PRIVATE cxx_std_20)
23
26
  endif()
24
27
  endmacro()
25
28
 
@@ -36,5 +39,8 @@ macro(PACKAGE_ADD_TEST_WITH_WORKING_DIR testname linklibs test_working_directory
36
39
  WORKING_DIRECTORY ${test_working_directory}
37
40
  PROPERTIES VS_DEBUGGER_WORKING_DIRECTORY "${test_working_directory}" DISCOVERY_TIMEOUT 60)
38
41
  set_target_properties(${testname} PROPERTIES FOLDER tests)
42
+
43
+ # Set c++ standard
44
+ target_compile_features(${testname} PRIVATE cxx_std_20)
39
45
  endif()
40
46
  endmacro()
@@ -58,7 +58,7 @@ endif()
58
58
  if(DEPLOY)
59
59
  # set the macOS deployment target appropriately
60
60
  set(CMAKE_OSX_DEPLOYMENT_TARGET
61
- "10.15"
61
+ "11.0"
62
62
  CACHE STRING "" FORCE)
63
63
  endif()
64
64
 
@@ -10,13 +10,13 @@
10
10
  # The variable CVF_VERSION must be set before calling configure_file().
11
11
 
12
12
 
13
- set(PACKAGE_VERSION "3.2.1")
13
+ set(PACKAGE_VERSION "3.3.1")
14
14
 
15
15
  if(PACKAGE_VERSION VERSION_LESS PACKAGE_FIND_VERSION)
16
16
  set(PACKAGE_VERSION_COMPATIBLE FALSE)
17
17
  else()
18
18
 
19
- if("3.2.1" MATCHES "^([0-9]+)\\.([0-9]+)")
19
+ if("3.3.1" MATCHES "^([0-9]+)\\.([0-9]+)")
20
20
  set(CVF_VERSION_MAJOR "${CMAKE_MATCH_1}")
21
21
  set(CVF_VERSION_MINOR "${CMAKE_MATCH_2}")
22
22
 
@@ -27,7 +27,7 @@ else()
27
27
  string(REGEX REPLACE "^0+" "" CVF_VERSION_MINOR "${CVF_VERSION_MINOR}")
28
28
  endif()
29
29
  else()
30
- set(CVF_VERSION_MAJOR "3.2.1")
30
+ set(CVF_VERSION_MAJOR "3.3.1")
31
31
  set(CVF_VERSION_MINOR "")
32
32
  endif()
33
33
 
@@ -21,6 +21,9 @@ list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}")
21
21
 
22
22
  include(CMakeFindDependencyMacro)
23
23
  find_dependency(nlohmann_json)
24
+ find_dependency(spdlog)
25
+ find_dependency(qdmi)
26
+
24
27
  option(MQT_CORE_WITH_GMP "Library is configured to use GMP" OFF)
25
28
  if(MQT_CORE_WITH_GMP)
26
29
  find_dependency(GMP)
@@ -76,6 +76,36 @@ set_target_properties(MQT::CoreZX PROPERTIES
76
76
  list(APPEND _cmake_import_check_targets MQT::CoreZX )
77
77
  list(APPEND _cmake_import_check_files_for_MQT::CoreZX "${_IMPORT_PREFIX}/lib/mqt-core-zx.lib" "${_IMPORT_PREFIX}/bin/mqt-core-zx.dll" )
78
78
 
79
+ # Import target "MQT::CoreNaDeviceGen" for configuration "Release"
80
+ set_property(TARGET MQT::CoreNaDeviceGen APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE)
81
+ set_target_properties(MQT::CoreNaDeviceGen PROPERTIES
82
+ IMPORTED_LINK_INTERFACE_LANGUAGES_RELEASE "CXX"
83
+ IMPORTED_LOCATION_RELEASE "${_IMPORT_PREFIX}/lib/mqt-core-qdmi-na-device-gen.lib"
84
+ )
85
+
86
+ list(APPEND _cmake_import_check_targets MQT::CoreNaDeviceGen )
87
+ list(APPEND _cmake_import_check_files_for_MQT::CoreNaDeviceGen "${_IMPORT_PREFIX}/lib/mqt-core-qdmi-na-device-gen.lib" )
88
+
89
+ # Import target "MQT::CoreQDMINaDevice" for configuration "Release"
90
+ set_property(TARGET MQT::CoreQDMINaDevice APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE)
91
+ set_target_properties(MQT::CoreQDMINaDevice PROPERTIES
92
+ IMPORTED_IMPLIB_RELEASE "${_IMPORT_PREFIX}/lib/mqt-core-qdmi-na-device.lib"
93
+ IMPORTED_LOCATION_RELEASE "${_IMPORT_PREFIX}/bin/mqt-core-qdmi-na-device.dll"
94
+ )
95
+
96
+ list(APPEND _cmake_import_check_targets MQT::CoreQDMINaDevice )
97
+ list(APPEND _cmake_import_check_files_for_MQT::CoreQDMINaDevice "${_IMPORT_PREFIX}/lib/mqt-core-qdmi-na-device.lib" "${_IMPORT_PREFIX}/bin/mqt-core-qdmi-na-device.dll" )
98
+
99
+ # Import target "MQT::CoreNAFoMaC" for configuration "Release"
100
+ set_property(TARGET MQT::CoreNAFoMaC APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE)
101
+ set_target_properties(MQT::CoreNAFoMaC PROPERTIES
102
+ IMPORTED_IMPLIB_RELEASE "${_IMPORT_PREFIX}/lib/mqt-core-na-fomac.lib"
103
+ IMPORTED_LOCATION_RELEASE "${_IMPORT_PREFIX}/bin/mqt-core-na-fomac.dll"
104
+ )
105
+
106
+ list(APPEND _cmake_import_check_targets MQT::CoreNAFoMaC )
107
+ list(APPEND _cmake_import_check_files_for_MQT::CoreNAFoMaC "${_IMPORT_PREFIX}/lib/mqt-core-na-fomac.lib" "${_IMPORT_PREFIX}/bin/mqt-core-na-fomac.dll" )
108
+
79
109
  # Import target "MQT::CoreNA" for configuration "Release"
80
110
  set_property(TARGET MQT::CoreNA APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE)
81
111
  set_target_properties(MQT::CoreNA PROPERTIES
@@ -86,5 +116,26 @@ set_target_properties(MQT::CoreNA PROPERTIES
86
116
  list(APPEND _cmake_import_check_targets MQT::CoreNA )
87
117
  list(APPEND _cmake_import_check_files_for_MQT::CoreNA "${_IMPORT_PREFIX}/lib/mqt-core-na.lib" "${_IMPORT_PREFIX}/bin/mqt-core-na.dll" )
88
118
 
119
+ # Import target "MQT::CoreQDMIDriver" for configuration "Release"
120
+ set_property(TARGET MQT::CoreQDMIDriver APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE)
121
+ set_target_properties(MQT::CoreQDMIDriver PROPERTIES
122
+ IMPORTED_IMPLIB_RELEASE "${_IMPORT_PREFIX}/lib/mqt-core-qdmi-driver.lib"
123
+ IMPORTED_LINK_DEPENDENT_LIBRARIES_RELEASE "MQT::CoreQDMINaDevice"
124
+ IMPORTED_LOCATION_RELEASE "${_IMPORT_PREFIX}/bin/mqt-core-qdmi-driver.dll"
125
+ )
126
+
127
+ list(APPEND _cmake_import_check_targets MQT::CoreQDMIDriver )
128
+ list(APPEND _cmake_import_check_files_for_MQT::CoreQDMIDriver "${_IMPORT_PREFIX}/lib/mqt-core-qdmi-driver.lib" "${_IMPORT_PREFIX}/bin/mqt-core-qdmi-driver.dll" )
129
+
130
+ # Import target "MQT::CoreFoMaC" for configuration "Release"
131
+ set_property(TARGET MQT::CoreFoMaC APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE)
132
+ set_target_properties(MQT::CoreFoMaC PROPERTIES
133
+ IMPORTED_IMPLIB_RELEASE "${_IMPORT_PREFIX}/lib/mqt-core-fomac.lib"
134
+ IMPORTED_LOCATION_RELEASE "${_IMPORT_PREFIX}/bin/mqt-core-fomac.dll"
135
+ )
136
+
137
+ list(APPEND _cmake_import_check_targets MQT::CoreFoMaC )
138
+ list(APPEND _cmake_import_check_files_for_MQT::CoreFoMaC "${_IMPORT_PREFIX}/lib/mqt-core-fomac.lib" "${_IMPORT_PREFIX}/bin/mqt-core-fomac.dll" )
139
+
89
140
  # Commands beyond this point should not need to know the version.
90
141
  set(CMAKE_IMPORT_FILE_VERSION)
@@ -19,7 +19,7 @@ set(CMAKE_IMPORT_FILE_VERSION 1)
19
19
  set(_cmake_targets_defined "")
20
20
  set(_cmake_targets_not_defined "")
21
21
  set(_cmake_expected_targets "")
22
- foreach(_cmake_expected_target IN ITEMS MQT::ProjectWarnings MQT::ProjectOptions MQT::CoreIR MQT::CoreQASM MQT::CoreAlgorithms MQT::CoreCircuitOptimizer MQT::CoreDS MQT::CoreDD MQT::CoreZX MQT::multiprecision MQT::CoreNA)
22
+ foreach(_cmake_expected_target IN ITEMS MQT::ProjectWarnings MQT::ProjectOptions MQT::CoreIR MQT::CoreQASM MQT::CoreAlgorithms MQT::CoreCircuitOptimizer MQT::CoreDS MQT::CoreDD MQT::CoreZX MQT::multiprecision MQT::CoreNaDeviceGen MQT::CoreQDMINaDevice MQT::CoreNAFoMaC MQT::CoreNA MQT::CoreQDMIDriver MQT::CoreFoMaC)
23
23
  list(APPEND _cmake_expected_targets "${_cmake_expected_target}")
24
24
  if(TARGET "${_cmake_expected_target}")
25
25
  list(APPEND _cmake_targets_defined "${_cmake_expected_target}")
@@ -83,7 +83,7 @@ if(NOT CMAKE_VERSION VERSION_LESS "3.23.0")
83
83
  FILE_SET "HEADERS"
84
84
  TYPE "HEADERS"
85
85
  BASE_DIRS "${_IMPORT_PREFIX}/include/mqt-core"
86
- FILES "${_IMPORT_PREFIX}/include/mqt-core/ir/Definitions.hpp" "${_IMPORT_PREFIX}/include/mqt-core/ir/Permutation.hpp" "${_IMPORT_PREFIX}/include/mqt-core/ir/QuantumComputation.hpp" "${_IMPORT_PREFIX}/include/mqt-core/ir/Register.hpp" "${_IMPORT_PREFIX}/include/mqt-core/ir/mqt_core_ir_export.h" "${_IMPORT_PREFIX}/include/mqt-core/ir/operations/AodOperation.hpp" "${_IMPORT_PREFIX}/include/mqt-core/ir/operations/ClassicControlledOperation.hpp" "${_IMPORT_PREFIX}/include/mqt-core/ir/operations/CompoundOperation.hpp" "${_IMPORT_PREFIX}/include/mqt-core/ir/operations/Control.hpp" "${_IMPORT_PREFIX}/include/mqt-core/ir/operations/Expression.hpp" "${_IMPORT_PREFIX}/include/mqt-core/ir/operations/NonUnitaryOperation.hpp" "${_IMPORT_PREFIX}/include/mqt-core/ir/operations/OpType.hpp" "${_IMPORT_PREFIX}/include/mqt-core/ir/operations/OpType.inc" "${_IMPORT_PREFIX}/include/mqt-core/ir/operations/Operation.hpp" "${_IMPORT_PREFIX}/include/mqt-core/ir/operations/StandardOperation.hpp" "${_IMPORT_PREFIX}/include/mqt-core/ir/operations/SymbolicOperation.hpp"
86
+ FILES "${_IMPORT_PREFIX}/include/mqt-core/ir/Definitions.hpp" "${_IMPORT_PREFIX}/include/mqt-core/ir/Permutation.hpp" "${_IMPORT_PREFIX}/include/mqt-core/ir/QuantumComputation.hpp" "${_IMPORT_PREFIX}/include/mqt-core/ir/Register.hpp" "${_IMPORT_PREFIX}/include/mqt-core/ir/mqt_core_ir_export.h" "${_IMPORT_PREFIX}/include/mqt-core/ir/operations/AodOperation.hpp" "${_IMPORT_PREFIX}/include/mqt-core/ir/operations/CompoundOperation.hpp" "${_IMPORT_PREFIX}/include/mqt-core/ir/operations/Control.hpp" "${_IMPORT_PREFIX}/include/mqt-core/ir/operations/Expression.hpp" "${_IMPORT_PREFIX}/include/mqt-core/ir/operations/IfElseOperation.hpp" "${_IMPORT_PREFIX}/include/mqt-core/ir/operations/NonUnitaryOperation.hpp" "${_IMPORT_PREFIX}/include/mqt-core/ir/operations/OpType.hpp" "${_IMPORT_PREFIX}/include/mqt-core/ir/operations/OpType.inc" "${_IMPORT_PREFIX}/include/mqt-core/ir/operations/Operation.hpp" "${_IMPORT_PREFIX}/include/mqt-core/ir/operations/StandardOperation.hpp" "${_IMPORT_PREFIX}/include/mqt-core/ir/operations/SymbolicOperation.hpp"
87
87
  )
88
88
  else()
89
89
  set_property(TARGET MQT::CoreIR
@@ -96,6 +96,7 @@ endif()
96
96
  add_library(MQT::CoreQASM SHARED IMPORTED)
97
97
 
98
98
  set_target_properties(MQT::CoreQASM PROPERTIES
99
+ INTERFACE_COMPILE_FEATURES "cxx_std_20"
99
100
  INTERFACE_LINK_LIBRARIES "MQT::CoreIR"
100
101
  )
101
102
 
@@ -118,6 +119,7 @@ endif()
118
119
  add_library(MQT::CoreAlgorithms SHARED IMPORTED)
119
120
 
120
121
  set_target_properties(MQT::CoreAlgorithms PROPERTIES
122
+ INTERFACE_COMPILE_FEATURES "cxx_std_20"
121
123
  INTERFACE_LINK_LIBRARIES "MQT::CoreIR"
122
124
  )
123
125
 
@@ -140,6 +142,7 @@ endif()
140
142
  add_library(MQT::CoreCircuitOptimizer SHARED IMPORTED)
141
143
 
142
144
  set_target_properties(MQT::CoreCircuitOptimizer PROPERTIES
145
+ INTERFACE_COMPILE_FEATURES "cxx_std_20"
143
146
  INTERFACE_LINK_LIBRARIES "MQT::CoreIR"
144
147
  )
145
148
 
@@ -162,6 +165,7 @@ endif()
162
165
  add_library(MQT::CoreDS SHARED IMPORTED)
163
166
 
164
167
  set_target_properties(MQT::CoreDS PROPERTIES
168
+ INTERFACE_COMPILE_FEATURES "cxx_std_20"
165
169
  INTERFACE_LINK_LIBRARIES "MQT::CoreIR"
166
170
  )
167
171
 
@@ -184,6 +188,7 @@ endif()
184
188
  add_library(MQT::CoreDD SHARED IMPORTED)
185
189
 
186
190
  set_target_properties(MQT::CoreDD PROPERTIES
191
+ INTERFACE_COMPILE_FEATURES "cxx_std_20"
187
192
  INTERFACE_LINK_LIBRARIES "MQT::CoreIR;nlohmann_json::nlohmann_json"
188
193
  )
189
194
 
@@ -206,6 +211,7 @@ endif()
206
211
  add_library(MQT::CoreZX SHARED IMPORTED)
207
212
 
208
213
  set_target_properties(MQT::CoreZX PROPERTIES
214
+ INTERFACE_COMPILE_FEATURES "cxx_std_20"
209
215
  INTERFACE_LINK_LIBRARIES "MQT::CoreIR;MQT::multiprecision"
210
216
  )
211
217
 
@@ -242,10 +248,79 @@ else()
242
248
  )
243
249
  endif()
244
250
 
251
+ # Create imported target MQT::CoreNaDeviceGen
252
+ add_library(MQT::CoreNaDeviceGen STATIC IMPORTED)
253
+
254
+ set_target_properties(MQT::CoreNaDeviceGen PROPERTIES
255
+ INTERFACE_LINK_LIBRARIES "nlohmann_json::nlohmann_json;\$<LINK_ONLY:spdlog::spdlog>;\$<LINK_ONLY:MQT::ProjectOptions>;\$<LINK_ONLY:MQT::ProjectWarnings>"
256
+ )
257
+
258
+ if(NOT CMAKE_VERSION VERSION_LESS "3.23.0")
259
+ target_sources(MQT::CoreNaDeviceGen
260
+ INTERFACE
261
+ FILE_SET "HEADERS"
262
+ TYPE "HEADERS"
263
+ BASE_DIRS "${_IMPORT_PREFIX}/include/mqt-core"
264
+ FILES "${_IMPORT_PREFIX}/include/mqt-core/na/device/Generator.hpp"
265
+ )
266
+ else()
267
+ set_property(TARGET MQT::CoreNaDeviceGen
268
+ APPEND PROPERTY INTERFACE_INCLUDE_DIRECTORIES
269
+ "${_IMPORT_PREFIX}/include/mqt-core"
270
+ )
271
+ endif()
272
+
273
+ # Create imported target MQT::CoreQDMINaDevice
274
+ add_library(MQT::CoreQDMINaDevice SHARED IMPORTED)
275
+
276
+ set_target_properties(MQT::CoreQDMINaDevice PROPERTIES
277
+ INTERFACE_COMPILE_FEATURES "cxx_std_20"
278
+ INTERFACE_LINK_LIBRARIES "qdmi::qdmi"
279
+ )
280
+
281
+ if(NOT CMAKE_VERSION VERSION_LESS "3.23.0")
282
+ target_sources(MQT::CoreQDMINaDevice
283
+ INTERFACE
284
+ FILE_SET "HEADERS"
285
+ TYPE "HEADERS"
286
+ BASE_DIRS "${_IMPORT_PREFIX}/include/mqt-core"
287
+ FILES "${_IMPORT_PREFIX}/include/mqt-core/mqt_na_qdmi/device.h" "${_IMPORT_PREFIX}/include/mqt-core/mqt_na_qdmi/types.h" "${_IMPORT_PREFIX}/include/mqt-core/na/device/DeviceMemberInitializers.hpp" "${_IMPORT_PREFIX}/include/mqt-core/na/device/Device.hpp"
288
+ )
289
+ else()
290
+ set_property(TARGET MQT::CoreQDMINaDevice
291
+ APPEND PROPERTY INTERFACE_INCLUDE_DIRECTORIES
292
+ "${_IMPORT_PREFIX}/include/mqt-core"
293
+ )
294
+ endif()
295
+
296
+ # Create imported target MQT::CoreNAFoMaC
297
+ add_library(MQT::CoreNAFoMaC SHARED IMPORTED)
298
+
299
+ set_target_properties(MQT::CoreNAFoMaC PROPERTIES
300
+ INTERFACE_COMPILE_FEATURES "cxx_std_20"
301
+ INTERFACE_LINK_LIBRARIES "MQT::CoreFoMaC;nlohmann_json::nlohmann_json"
302
+ )
303
+
304
+ if(NOT CMAKE_VERSION VERSION_LESS "3.23.0")
305
+ target_sources(MQT::CoreNAFoMaC
306
+ INTERFACE
307
+ FILE_SET "HEADERS"
308
+ TYPE "HEADERS"
309
+ BASE_DIRS "${_IMPORT_PREFIX}/include/mqt-core"
310
+ FILES "${_IMPORT_PREFIX}/include/mqt-core/na/fomac/Device.hpp"
311
+ )
312
+ else()
313
+ set_property(TARGET MQT::CoreNAFoMaC
314
+ APPEND PROPERTY INTERFACE_INCLUDE_DIRECTORIES
315
+ "${_IMPORT_PREFIX}/include/mqt-core"
316
+ )
317
+ endif()
318
+
245
319
  # Create imported target MQT::CoreNA
246
320
  add_library(MQT::CoreNA SHARED IMPORTED)
247
321
 
248
322
  set_target_properties(MQT::CoreNA PROPERTIES
323
+ INTERFACE_COMPILE_FEATURES "cxx_std_20"
249
324
  INTERFACE_LINK_LIBRARIES "MQT::CoreIR"
250
325
  )
251
326
 
@@ -264,6 +339,52 @@ else()
264
339
  )
265
340
  endif()
266
341
 
342
+ # Create imported target MQT::CoreQDMIDriver
343
+ add_library(MQT::CoreQDMIDriver SHARED IMPORTED)
344
+
345
+ set_target_properties(MQT::CoreQDMIDriver PROPERTIES
346
+ INTERFACE_COMPILE_FEATURES "cxx_std_20"
347
+ INTERFACE_LINK_LIBRARIES "qdmi::qdmi"
348
+ )
349
+
350
+ if(NOT CMAKE_VERSION VERSION_LESS "3.23.0")
351
+ target_sources(MQT::CoreQDMIDriver
352
+ INTERFACE
353
+ FILE_SET "HEADERS"
354
+ TYPE "HEADERS"
355
+ BASE_DIRS "${_IMPORT_PREFIX}/include/mqt-core"
356
+ FILES "${_IMPORT_PREFIX}/include/mqt-core/qdmi/Driver.hpp"
357
+ )
358
+ else()
359
+ set_property(TARGET MQT::CoreQDMIDriver
360
+ APPEND PROPERTY INTERFACE_INCLUDE_DIRECTORIES
361
+ "${_IMPORT_PREFIX}/include/mqt-core"
362
+ )
363
+ endif()
364
+
365
+ # Create imported target MQT::CoreFoMaC
366
+ add_library(MQT::CoreFoMaC SHARED IMPORTED)
367
+
368
+ set_target_properties(MQT::CoreFoMaC PROPERTIES
369
+ INTERFACE_COMPILE_FEATURES "cxx_std_20"
370
+ INTERFACE_LINK_LIBRARIES "qdmi::qdmi;MQT::CoreQDMIDriver"
371
+ )
372
+
373
+ if(NOT CMAKE_VERSION VERSION_LESS "3.23.0")
374
+ target_sources(MQT::CoreFoMaC
375
+ INTERFACE
376
+ FILE_SET "HEADERS"
377
+ TYPE "HEADERS"
378
+ BASE_DIRS "${_IMPORT_PREFIX}/include/mqt-core"
379
+ FILES "${_IMPORT_PREFIX}/include/mqt-core/fomac/FoMaC.hpp"
380
+ )
381
+ else()
382
+ set_property(TARGET MQT::CoreFoMaC
383
+ APPEND PROPERTY INTERFACE_INCLUDE_DIRECTORIES
384
+ "${_IMPORT_PREFIX}/include/mqt-core"
385
+ )
386
+ endif()
387
+
267
388
  # Load information for each installed configuration.
268
389
  file(GLOB _cmake_config_files "${CMAKE_CURRENT_LIST_DIR}/mqt-core-targets-*.cmake")
269
390
  foreach(_cmake_config_file IN LISTS _cmake_config_files)
@@ -303,7 +424,7 @@ unset(_cmake_import_check_targets)
303
424
  # Make sure the targets which have been exported in some other
304
425
  # export set exist.
305
426
  unset(${CMAKE_FIND_PACKAGE_NAME}_NOT_FOUND_MESSAGE_targets)
306
- foreach(_target "nlohmann_json::nlohmann_json" )
427
+ foreach(_target "nlohmann_json::nlohmann_json" "spdlog::spdlog" "qdmi::qdmi" )
307
428
  if(NOT TARGET "${_target}" )
308
429
  set(${CMAKE_FIND_PACKAGE_NAME}_NOT_FOUND_MESSAGE_targets "${${CMAKE_FIND_PACKAGE_NAME}_NOT_FOUND_MESSAGE_targets} ${_target}")
309
430
  endif()
@@ -0,0 +1,15 @@
1
+ include(FindPackageHandleStandardArgs)
2
+ set(${CMAKE_FIND_PACKAGE_NAME}_CONFIG ${CMAKE_CURRENT_LIST_FILE})
3
+ find_package_handle_standard_args(nlohmann_json CONFIG_MODE)
4
+
5
+ if(NOT TARGET nlohmann_json::nlohmann_json)
6
+ include("${CMAKE_CURRENT_LIST_DIR}/nlohmann_jsonTargets.cmake")
7
+ if((NOT TARGET nlohmann_json) AND
8
+ (NOT nlohmann_json_FIND_VERSION OR
9
+ nlohmann_json_FIND_VERSION VERSION_LESS 3.2.0))
10
+ add_library(nlohmann_json INTERFACE IMPORTED)
11
+ set_target_properties(nlohmann_json PROPERTIES
12
+ INTERFACE_LINK_LIBRARIES nlohmann_json::nlohmann_json
13
+ )
14
+ endif()
15
+ endif()
@@ -0,0 +1,20 @@
1
+ # This is essentially cmake's BasicConfigVersion-SameMajorVersion.cmake.in but
2
+ # without the 32/64-bit check. Since json is a header-only library, it doesn't
3
+ # matter if it was built on a different platform than what it is used on (see
4
+ # https://github.com/nlohmann/json/issues/1697).
5
+ set(PACKAGE_VERSION "3.12.0")
6
+
7
+ if(PACKAGE_VERSION VERSION_LESS PACKAGE_FIND_VERSION)
8
+ set(PACKAGE_VERSION_COMPATIBLE FALSE)
9
+ else()
10
+
11
+ if(PACKAGE_FIND_VERSION_MAJOR STREQUAL "3")
12
+ set(PACKAGE_VERSION_COMPATIBLE TRUE)
13
+ else()
14
+ set(PACKAGE_VERSION_COMPATIBLE FALSE)
15
+ endif()
16
+
17
+ if(PACKAGE_FIND_VERSION STREQUAL PACKAGE_VERSION)
18
+ set(PACKAGE_VERSION_EXACT TRUE)
19
+ endif()
20
+ endif()
@@ -0,0 +1,110 @@
1
+ # Generated by CMake
2
+
3
+ if("${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION}" LESS 2.8)
4
+ message(FATAL_ERROR "CMake >= 3.1.0 required")
5
+ endif()
6
+ if(CMAKE_VERSION VERSION_LESS "3.1.0")
7
+ message(FATAL_ERROR "CMake >= 3.1.0 required")
8
+ endif()
9
+ cmake_policy(PUSH)
10
+ cmake_policy(VERSION 3.1.0...3.29)
11
+ #----------------------------------------------------------------
12
+ # Generated CMake target import file.
13
+ #----------------------------------------------------------------
14
+
15
+ # Commands may need to know the format version.
16
+ set(CMAKE_IMPORT_FILE_VERSION 1)
17
+
18
+ # Protect against multiple inclusion, which would fail when already imported targets are added once more.
19
+ set(_cmake_targets_defined "")
20
+ set(_cmake_targets_not_defined "")
21
+ set(_cmake_expected_targets "")
22
+ foreach(_cmake_expected_target IN ITEMS nlohmann_json::nlohmann_json)
23
+ list(APPEND _cmake_expected_targets "${_cmake_expected_target}")
24
+ if(TARGET "${_cmake_expected_target}")
25
+ list(APPEND _cmake_targets_defined "${_cmake_expected_target}")
26
+ else()
27
+ list(APPEND _cmake_targets_not_defined "${_cmake_expected_target}")
28
+ endif()
29
+ endforeach()
30
+ unset(_cmake_expected_target)
31
+ if(_cmake_targets_defined STREQUAL _cmake_expected_targets)
32
+ unset(_cmake_targets_defined)
33
+ unset(_cmake_targets_not_defined)
34
+ unset(_cmake_expected_targets)
35
+ unset(CMAKE_IMPORT_FILE_VERSION)
36
+ cmake_policy(POP)
37
+ return()
38
+ endif()
39
+ if(NOT _cmake_targets_defined STREQUAL "")
40
+ string(REPLACE ";" ", " _cmake_targets_defined_text "${_cmake_targets_defined}")
41
+ string(REPLACE ";" ", " _cmake_targets_not_defined_text "${_cmake_targets_not_defined}")
42
+ message(FATAL_ERROR "Some (but not all) targets in this export set were already defined.\nTargets Defined: ${_cmake_targets_defined_text}\nTargets not yet defined: ${_cmake_targets_not_defined_text}\n")
43
+ endif()
44
+ unset(_cmake_targets_defined)
45
+ unset(_cmake_targets_not_defined)
46
+ unset(_cmake_expected_targets)
47
+
48
+
49
+ # Compute the installation prefix relative to this file.
50
+ get_filename_component(_IMPORT_PREFIX "${CMAKE_CURRENT_LIST_FILE}" PATH)
51
+ get_filename_component(_IMPORT_PREFIX "${_IMPORT_PREFIX}" PATH)
52
+ get_filename_component(_IMPORT_PREFIX "${_IMPORT_PREFIX}" PATH)
53
+ get_filename_component(_IMPORT_PREFIX "${_IMPORT_PREFIX}" PATH)
54
+ if(_IMPORT_PREFIX STREQUAL "/")
55
+ set(_IMPORT_PREFIX "")
56
+ endif()
57
+
58
+ # Create imported target nlohmann_json::nlohmann_json
59
+ add_library(nlohmann_json::nlohmann_json INTERFACE IMPORTED)
60
+
61
+ set_target_properties(nlohmann_json::nlohmann_json PROPERTIES
62
+ INTERFACE_COMPILE_DEFINITIONS "\$<\$<NOT:\$<BOOL:ON>>:JSON_USE_GLOBAL_UDLS=0>;\$<\$<NOT:\$<BOOL:ON>>:JSON_USE_IMPLICIT_CONVERSIONS=0>;\$<\$<BOOL:OFF>:JSON_DISABLE_ENUM_SERIALIZATION=1>;\$<\$<BOOL:OFF>:JSON_DIAGNOSTICS=1>;\$<\$<BOOL:OFF>:JSON_DIAGNOSTIC_POSITIONS=1>;\$<\$<BOOL:OFF>:JSON_USE_LEGACY_DISCARDED_VALUE_COMPARISON=1>"
63
+ INTERFACE_COMPILE_FEATURES "cxx_std_11"
64
+ INTERFACE_INCLUDE_DIRECTORIES "${_IMPORT_PREFIX}/include;${_IMPORT_PREFIX}/include"
65
+ INTERFACE_SOURCES "${_IMPORT_PREFIX}/nlohmann_json.natvis"
66
+ INTERFACE_SYSTEM_INCLUDE_DIRECTORIES "include"
67
+ )
68
+
69
+ # Load information for each installed configuration.
70
+ file(GLOB _cmake_config_files "${CMAKE_CURRENT_LIST_DIR}/nlohmann_jsonTargets-*.cmake")
71
+ foreach(_cmake_config_file IN LISTS _cmake_config_files)
72
+ include("${_cmake_config_file}")
73
+ endforeach()
74
+ unset(_cmake_config_file)
75
+ unset(_cmake_config_files)
76
+
77
+ # Cleanup temporary variables.
78
+ set(_IMPORT_PREFIX)
79
+
80
+ # Loop over all imported files and verify that they actually exist
81
+ foreach(_cmake_target IN LISTS _cmake_import_check_targets)
82
+ if(CMAKE_VERSION VERSION_LESS "3.28"
83
+ OR NOT DEFINED _cmake_import_check_xcframework_for_${_cmake_target}
84
+ OR NOT IS_DIRECTORY "${_cmake_import_check_xcframework_for_${_cmake_target}}")
85
+ foreach(_cmake_file IN LISTS "_cmake_import_check_files_for_${_cmake_target}")
86
+ if(NOT EXISTS "${_cmake_file}")
87
+ message(FATAL_ERROR "The imported target \"${_cmake_target}\" references the file
88
+ \"${_cmake_file}\"
89
+ but this file does not exist. Possible reasons include:
90
+ * The file was deleted, renamed, or moved to another location.
91
+ * An install or uninstall procedure did not complete successfully.
92
+ * The installation package was faulty and contained
93
+ \"${CMAKE_CURRENT_LIST_FILE}\"
94
+ but not all the files it references.
95
+ ")
96
+ endif()
97
+ endforeach()
98
+ endif()
99
+ unset(_cmake_file)
100
+ unset("_cmake_import_check_files_for_${_cmake_target}")
101
+ endforeach()
102
+ unset(_cmake_target)
103
+ unset(_cmake_import_check_targets)
104
+
105
+ # This file does not depend on other imported targets which have
106
+ # been exported from the same project but in a separate export set.
107
+
108
+ # Commands beyond this point should not need to know the version.
109
+ set(CMAKE_IMPORT_FILE_VERSION)
110
+ cmake_policy(POP)
@@ -0,0 +1,44 @@
1
+ # ------------------------------------------------------------------------------
2
+ # Copyright 2024 Munich Quantum Software Stack Project
3
+ #
4
+ # Licensed under the Apache License, Version 2.0 with LLVM Exceptions (the
5
+ # "License"); you may not use this file except in compliance with the License.
6
+ # You may obtain a copy of the License at
7
+ #
8
+ # https://github.com/Munich-Quantum-Software-Stack/QDMI/blob/develop/LICENSE
9
+ #
10
+ # Unless required by applicable law or agreed to in writing, software
11
+ # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
12
+ # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
13
+ # License for the specific language governing permissions and limitations under
14
+ # the License.
15
+ #
16
+ # SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
17
+ # ------------------------------------------------------------------------------
18
+
19
+ option(ENABLE_CACHE "Enable compiler cache if available" ON)
20
+ if(NOT ENABLE_CACHE)
21
+ return()
22
+ endif()
23
+
24
+ set(CACHE_OPTION_VALUES "ccache" "sccache")
25
+ set(CACHE_OPTION
26
+ "ccache"
27
+ CACHE STRING "Compiler cache to use")
28
+ set_property(CACHE CACHE_OPTION PROPERTY STRINGS ${CACHE_OPTION_VALUES})
29
+ list(FIND CACHE_OPTION_VALUES ${CACHE_OPTION} CACHE_OPTION_INDEX)
30
+ if(CACHE_OPTION_INDEX EQUAL -1)
31
+ message(
32
+ NOTICE
33
+ "Unknown compiler cache '${CACHE_OPTION}'. Available options are: ${CACHE_OPTION_VALUES}"
34
+ )
35
+ endif()
36
+
37
+ find_program(CACHE_BINARY ${CACHE_OPTION})
38
+ if(CACHE_BINARY)
39
+ message(STATUS "Compiler cache '${CACHE_OPTION}' found and enabled")
40
+ set(CMAKE_C_COMPILER_LAUNCHER ${CACHE_BINARY})
41
+ set(CMAKE_CXX_COMPILER_LAUNCHER ${CACHE_BINARY})
42
+ else()
43
+ message(NOTICE "${CACHE_OPTION} is enabled but was not found. Not using it")
44
+ endif()
@@ -0,0 +1,78 @@
1
+ # ------------------------------------------------------------------------------
2
+ # Copyright 2024 Munich Quantum Software Stack Project
3
+ #
4
+ # Licensed under the Apache License, Version 2.0 with LLVM Exceptions (the
5
+ # "License"); you may not use this file except in compliance with the License.
6
+ # You may obtain a copy of the License at
7
+ #
8
+ # https://github.com/Munich-Quantum-Software-Stack/QDMI/blob/develop/LICENSE
9
+ #
10
+ # Unless required by applicable law or agreed to in writing, software
11
+ # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
12
+ # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
13
+ # License for the specific language governing permissions and limitations under
14
+ # the License.
15
+ #
16
+ # SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
17
+ # ------------------------------------------------------------------------------
18
+
19
+ # A function for generating prefixed QDMI headers for a user-defined prefix.
20
+ function(generate_prefixed_qdmi_headers prefix)
21
+ # Get the lowercase version of the prefix.
22
+ string(TOLOWER ${prefix} QDMI_prefix)
23
+ # Get the list of all QDMI device headers.
24
+ file(GLOB_RECURSE QDMI_DEVICE_HEADERS ${QDMI_INCLUDE_BUILD_DIR}/qdmi/device.h
25
+ ${QDMI_INCLUDE_BUILD_DIR}/qdmi/types.h)
26
+ # Read the prefix definitions.
27
+ file(READ ${QDMI_CMAKE_DIR}/prefix_defs.txt replacements)
28
+ string(REPLACE "\n" ";" replacements "${replacements}")
29
+ foreach(header ${QDMI_DEVICE_HEADERS})
30
+ # Get the relative path of the header.
31
+ file(RELATIVE_PATH rel_header ${QDMI_INCLUDE_BUILD_DIR}/qdmi ${header})
32
+ get_filename_component(rel_dir ${rel_header} DIRECTORY)
33
+ # Create the directory for the prefixed header.
34
+ file(MAKE_DIRECTORY
35
+ ${CMAKE_CURRENT_BINARY_DIR}/include/${QDMI_prefix}_qdmi/${rel_dir})
36
+ # Read the header content.
37
+ file(READ ${header} header_content)
38
+ # Replace the include for the device header with the prefixed version.
39
+ string(
40
+ REGEX
41
+ REPLACE "#include (\"|<)qdmi/(device|types).h(\"|>)"
42
+ "#include \\1${QDMI_prefix}_qdmi/\\2.h\\3" header_content
43
+ "${header_content}")
44
+ # Replace the prefix definitions.
45
+ foreach(replacement ${replacements})
46
+ string(
47
+ REGEX
48
+ REPLACE "([^a-zA-Z0-9_])${replacement}([^a-zA-Z0-9_])"
49
+ "\\1${prefix}_${replacement}\\2" header_content
50
+ "${header_content}")
51
+ endforeach()
52
+ # Write the prefixed header.
53
+ file(WRITE
54
+ ${CMAKE_CURRENT_BINARY_DIR}/include/${QDMI_prefix}_qdmi/${rel_header}
55
+ "${header_content}")
56
+ endforeach()
57
+ endfunction()
58
+
59
+ # A function for generating test executables that check if all functions are
60
+ # implemented by a device.
61
+ #
62
+ # NOTE: The executables are not meant to be executed, only built.
63
+ function(generate_device_defs_executable prefix)
64
+ set(QDMI_PREFIX ${prefix})
65
+ # Get the lowercase version of the prefix.
66
+ string(TOLOWER ${prefix} QDMI_prefix)
67
+ # Create the test definitions file.
68
+ configure_file(${QDMI_TEST_DIR}/utils/test_defs.cpp.in
69
+ ${CMAKE_CURRENT_BINARY_DIR}/${QDMI_prefix}_test_defs.cpp @ONLY)
70
+ # Create the test executable.
71
+ add_executable(qdmi_test_${QDMI_prefix}_device_defs
72
+ ${CMAKE_CURRENT_BINARY_DIR}/${QDMI_prefix}_test_defs.cpp)
73
+ target_link_libraries(
74
+ qdmi_test_${QDMI_prefix}_device_defs
75
+ PRIVATE qdmi::qdmi qdmi::${QDMI_prefix}_device qdmi::project_warnings)
76
+ target_compile_features(qdmi_test_${QDMI_prefix}_device_defs
77
+ PRIVATE cxx_std_17)
78
+ endfunction()