generator.toml 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406
  1. source_root_replacer = "${PROJECT_SOURCE_DIR}"
  2. binary_root_replacer = "${PROJECT_BINARY_DIR}"
  3. [platforms]
  4. linux="CMAKE_SYSTEM_NAME STREQUAL \"Linux\" AND CMAKE_SYSTEM_PROCESSOR STREQUAL \"x86_64\" AND NOT HAVE_CUDA"
  5. linux-x86_64="CMAKE_SYSTEM_NAME STREQUAL \"Linux\" AND CMAKE_SYSTEM_PROCESSOR STREQUAL \"x86_64\" AND NOT HAVE_CUDA"
  6. linux-x86_64-cuda="CMAKE_SYSTEM_NAME STREQUAL \"Linux\" AND CMAKE_SYSTEM_PROCESSOR STREQUAL \"x86_64\" AND HAVE_CUDA"
  7. linux-aarch64="CMAKE_SYSTEM_NAME STREQUAL \"Linux\" AND CMAKE_SYSTEM_PROCESSOR STREQUAL \"aarch64\" AND NOT HAVE_CUDA"
  8. linux-arm64="CMAKE_SYSTEM_NAME STREQUAL \"Linux\" AND CMAKE_SYSTEM_PROCESSOR STREQUAL \"aarch64\" AND NOT HAVE_CUDA"
  9. linux-aarch64-cuda="CMAKE_SYSTEM_NAME STREQUAL \"Linux\" AND CMAKE_SYSTEM_PROCESSOR STREQUAL \"aarch64\" AND HAVE_CUDA"
  10. linux-arm64-cuda="CMAKE_SYSTEM_NAME STREQUAL \"Linux\" AND CMAKE_SYSTEM_PROCESSOR STREQUAL \"aarch64\" AND HAVE_CUDA"
  11. linux-ppc64le="CMAKE_SYSTEM_NAME STREQUAL \"Linux\" AND CMAKE_SYSTEM_PROCESSOR STREQUAL \"ppc64le\" AND NOT HAVE_CUDA"
  12. linux-ppc64le-cuda="CMAKE_SYSTEM_NAME STREQUAL \"Linux\" AND CMAKE_SYSTEM_PROCESSOR STREQUAL \"ppc64le\" AND HAVE_CUDA"
  13. darwin="CMAKE_SYSTEM_NAME STREQUAL \"Darwin\" AND CMAKE_SYSTEM_PROCESSOR STREQUAL \"x86_64\""
  14. darwin-x86_64="CMAKE_SYSTEM_NAME STREQUAL \"Darwin\" AND CMAKE_SYSTEM_PROCESSOR STREQUAL \"x86_64\""
  15. darwin-arm64="CMAKE_SYSTEM_NAME STREQUAL \"Darwin\" AND CMAKE_SYSTEM_PROCESSOR STREQUAL \"arm64\""
  16. windows="WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL \"AMD64\" AND NOT HAVE_CUDA"
  17. windows-x86_64="WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL \"AMD64\" AND NOT HAVE_CUDA"
  18. windows-x86_64-cuda="WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL \"AMD64\" AND HAVE_CUDA"
  19. android-arm="ANDROID AND CMAKE_ANDROID_ARCH STREQUAL \"arm\""
  20. android-arm32="ANDROID AND CMAKE_ANDROID_ARCH STREQUAL \"arm\""
  21. android-arm64="ANDROID AND CMAKE_ANDROID_ARCH STREQUAL \"arm64\""
  22. android-x86="ANDROID AND CMAKE_ANDROID_ARCH STREQUAL \"x86\""
  23. android-x86_64="ANDROID AND CMAKE_ANDROID_ARCH STREQUAL \"x86_64\""
  24. [root]
  25. templates=[
  26. { path="conanfile.py.jinja", dest="conanfile.py" },
  27. { path="root_cmake_lists.jinja", dest="CMakeLists.txt" },
  28. { path="root_global_vars.jinja", dest="cmake/global_vars.cmake" },
  29. ]
  30. copy=[
  31. "cmake/global_flags.compiler.gnu.march.cmake",
  32. "cmake/global_flags.compiler.gnu.cmake",
  33. "cmake/global_flags.compiler.msvc.cmake",
  34. "cmake/global_flags.linker.gnu.cmake",
  35. "cmake/global_flags.linker.msvc.cmake",
  36. "cmake/global_flags.cmake",
  37. ]
  38. [targets.EMPTY]
  39. template={ path="dir_cmake_lists.jinja", dest="CMakeLists{PLATFORM}.txt" }
  40. merge_platform_template={ path="merge_platforms_cmake_lists.jinja", dest="CMakeLists.txt" }
  41. [targets.EXTRA_ONLY]
  42. template={ path="dir_cmake_lists.jinja", dest="CMakeLists{PLATFORM}.txt" }
  43. merge_platform_template={ path="merge_platforms_cmake_lists.jinja", dest="CMakeLists.txt" }
  44. [targets.add_executable]
  45. template={ path="dir_cmake_lists.jinja", dest="CMakeLists{PLATFORM}.txt" }
  46. merge_platform_template={ path="merge_platforms_cmake_lists.jinja", dest="CMakeLists.txt" }
  47. [targets.add_global_library_for]
  48. is_extra_target = true
  49. [targets.add_library]
  50. template={ path="dir_cmake_lists.jinja", dest="CMakeLists{PLATFORM}.txt" }
  51. merge_platform_template={ path="merge_platforms_cmake_lists.jinja", dest="CMakeLists.txt" }
  52. [targets.add_shared_library]
  53. template={ path="dir_cmake_lists.jinja", dest="CMakeLists{PLATFORM}.txt" }
  54. merge_platform_template={ path="merge_platforms_cmake_lists.jinja", dest="CMakeLists.txt" }
  55. [targets.add_fat_object]
  56. template={ path="dir_cmake_lists.jinja", dest="CMakeLists{PLATFORM}.txt" }
  57. merge_platform_template={ path="merge_platforms_cmake_lists.jinja", dest="CMakeLists.txt" }
  58. [targets.add_recursive_library]
  59. is_extra_target = true
  60. [targets.add_swig_jni_library]
  61. is_extra_target = true
  62. [attrs.root]
  63. # All Conan attributes make sorted_set for stability generated conanfile,
  64. # order has no effect for all conan options
  65. # All OS conan attributes
  66. conan-requires="sorted_set"
  67. conan-tool_requires="sorted_set"
  68. conan-imports="sorted_set"
  69. conan-options="sorted_set"
  70. conan-generators="sorted_set"
  71. # OS depends conan attributes
  72. conan-os_depends="list"
  73. conan-os_depends-ITEM="dict"
  74. conan-os_depends-os="str"
  75. conan-os_depends-requires="sorted_set"
  76. conan-os_depends-tool_requires="sorted_set"
  77. conan-os_depends-imports="sorted_set"
  78. conan-os_depends-options="sorted_set"
  79. conan-os_depends-generators="sorted_set"
  80. # For project languages order important only for ASM, it must be after C/CXX,
  81. # this special logic maked in template, here use sorted_set for stability generated vars
  82. project_languages="sorted_set"
  83. vanilla_protobuf="flag"
  84. # Use sorted_set for include(*.cmake) for stability generated CMakeLists.txt
  85. includes="sorted_set"
  86. [attrs.platform]
  87. platform_vars-FAT_OBJECT_PREFIX="str"
  88. platform_vars-FAT_OBJECT_SUFFIX="str"
  89. platform_vars-RAGEL_FLAGS="str"
  90. platform_vars-YASM_FLAGS="str"
  91. platform_vars-CMAKE_CUDA_STANDARD="str"
  92. platform_vars-BISON_FLAGS="str"
  93. platform_vars-LEX_FLAGS="str"
  94. platform_vars-FBS_CPP_FLAGS="str"
  95. platform_vars-COMMON_PROTOC_FLAGS="str"
  96. [attrs.dir]
  97. dir_macroses="list"
  98. dir_macroses-ITEM="dict"
  99. dir_macroses-macro="str"
  100. dir_macroses-args="list"
  101. # This dir_includes translated to add_subdirectory(), order may be important (depends on the code),
  102. # that is why here use set and not sort it
  103. dir_includes="set"
  104. [attrs.target]
  105. is_fake_module="bool"
  106. # Module packages (not induced, applied in current module only)
  107. mpackages="list"
  108. mpackages-ITEM="dict"
  109. mpackages-name="str"
  110. mpackages-components="list"
  111. target_properties="list"
  112. target_properties-ITEM="dict"
  113. target_properties-name="str"
  114. target_properties-value="list"
  115. protoc_extra_outs="list"
  116. target_options="dict"
  117. target_options-interfaces="list"
  118. target_options-interfaces-ITEM="dict"
  119. target_options-interfaces-option="str"
  120. target_options-interfaces-args="list"
  121. target_options-publics="list"
  122. target_options-publics-ITEM="dict"
  123. target_options-publics-option="str"
  124. target_options-publics-args="list"
  125. target_options-privates="list"
  126. target_options-privates-ITEM="dict"
  127. target_options-privates-option="str"
  128. target_options-privates-args="list"
  129. target_commands="list"
  130. target_commands-ITEM="dict"
  131. target_commands-macro="str"
  132. target_commands-args="list"
  133. target_commands-args_escaped="list"
  134. target_macroses="list"
  135. target_macroses-ITEM="dict"
  136. target_macroses-macro="str"
  137. target_macroses-args="list"
  138. target_macroses-merge_args="flag"
  139. add_test_requirements="list"
  140. add_ytest_requirements="list"
  141. custom_runs="list"
  142. custom_runs-depends="list"
  143. custom_runs-env="list"
  144. custom_runs-command="list"
  145. custom_runs-outputs="list"
  146. custom_runs-cwd="str"
  147. custom_runs-cmake_packages="list"
  148. custom_runs-cmake_packages-ITEM="dict"
  149. custom_runs-cmake_packages-name="str"
  150. custom_runs-cmake_packages-components="list"
  151. [attrs.induced]
  152. # Induced packages
  153. packages="list"
  154. packages-ITEM="dict"
  155. packages-name="str"
  156. packages-components="list"
  157. # Induced link libraries
  158. link-interfaces="list"
  159. link-publics="list"
  160. link-privates="list"
  161. allocators="list"
  162. [[rules]]
  163. attrs=["packages-name=AIO"]
  164. copy=["cmake/FindAIO.cmake"]
  165. add_values=[{attr="includes", values=["cmake/FindAIO.cmake"]}]
  166. [[rules]]
  167. attrs=["packages-name=IDN"]
  168. copy=["cmake/FindIDN.cmake"]
  169. add_values=[{attr="includes", values=["cmake/FindIDN.cmake"]}]
  170. [[rules]]
  171. attrs=["packages-name=JNITarget"]
  172. copy=["cmake/FindJNITarget.cmake"]
  173. add_values=[{attr="includes", values=["cmake/FindJNITarget.cmake"]}]
  174. [[rules]]
  175. attrs=["target_commands-macro=run_antlr"]
  176. copy=["cmake/antlr.cmake"]
  177. add_values=[{attr="includes", values=["cmake/antlr.cmake"]}]
  178. [[rules]]
  179. attrs=["target_commands-macro=run_antlr4"]
  180. copy=["cmake/antlr4.cmake"]
  181. add_values=[{attr="includes", values=["cmake/antlr4.cmake"]}]
  182. [[rules]]
  183. attrs=[
  184. "target_macroses-macro=target_bison_parser",
  185. "target_macroses-macro=target_flex_lexers"
  186. ]
  187. copy=["cmake/bison.cmake"]
  188. add_values=[{attr="includes", values=["cmake/bison.cmake"]}]
  189. [[rules]]
  190. attrs=[
  191. "conan-requires",
  192. "conan-tool_requires",
  193. "conan-imports",
  194. "conan-options",
  195. "conan-generators",
  196. ]
  197. copy=["cmake/conan1_deprecated.cmake", "cmake/conan_provider.cmake"]
  198. add_values=[{attr="includes", values=["cmake/conan1_deprecated.cmake"]}]
  199. [[rules]]
  200. attrs=[
  201. "target_options-privates-option=target_ev_messages",
  202. "target_options-privates-option=target_proto_messages",
  203. "target_macroses-macro=target_proto_plugin",
  204. "target_macroses-macro=target_proto_outs",
  205. "target_macroses-macro=target_proto_addincls",
  206. ]
  207. copy=[
  208. "cmake/protobuf.cmake",
  209. "build/scripts/re_replace.py",
  210. ]
  211. add_values=[{attr="includes", values=["cmake/protobuf.cmake"]}]
  212. [[rules]]
  213. attrs=[
  214. "add_global_library_for",
  215. "target_macroses-macro=generate_enum_serilization",
  216. "target_macroses-macro=target_joined_source",
  217. "target_macroses-macro=target_ragel_lexers",
  218. "target_macroses-macro=target_yasm_source",
  219. "target_macroses-macro=vcs_info",
  220. "target_macroses-macro=target_sources_custom",
  221. "target_macroses-macro=use_export_script",
  222. "target_commands-macro=add_yunittest",
  223. "target_commands-macro=set_yunittest_property",
  224. ]
  225. copy=[
  226. "cmake/common.cmake",
  227. "build/scripts/export_script_gen.py",
  228. "build/scripts/split_unittest.py",
  229. "build/scripts/generate_vcs_info.py"
  230. ]
  231. add_values=[{attr="includes", values=["cmake/common.cmake"]}]
  232. [[rules]]
  233. attrs=[
  234. "target_macroses-macro=llvm_compile_c",
  235. "target_macroses-macro=llvm_compile_cxx",
  236. ]
  237. copy=["cmake/llvm-tools.cmake"]
  238. add_values=[{attr="includes", values=["cmake/llvm-tools.cmake"]}]
  239. [[rules]]
  240. attrs=["dir_macroses-macro=curdir_masm_flags"]
  241. copy=["cmake/masm.cmake"]
  242. add_values=[{attr="includes", values=["cmake/masm.cmake"]}]
  243. [[rules]]
  244. attrs=["target_macroses-macro=target_fbs_source"]
  245. copy=["cmake/fbs.cmake"]
  246. add_values=[{attr="includes", values=["cmake/fbs.cmake"]}]
  247. [[rules]]
  248. attrs=["add_fat_object"]
  249. copy=["cmake/fat_object.cmake"]
  250. add_values=[{attr="includes", values=["cmake/fat_objects.cmake"]}]
  251. [[rules]]
  252. attrs=["add_recursive_library"]
  253. copy=[
  254. "cmake/recursive_library.cmake",
  255. "build/scripts/create_recursive_library_for_cmake.py"
  256. ]
  257. add_values=[{attr="includes", values=["cmake/recursive_library.cmake"]}]
  258. [[rules]]
  259. attrs=["add_shared_library"]
  260. copy=["cmake/shared_libs.cmake"]
  261. add_values=[{attr="includes", values=["cmake/shared_libs.cmake"]}]
  262. [[rules]]
  263. attrs=[
  264. "target_macroses-macro=target_cuda_flags",
  265. "target_macroses-macro=target_cuda_cflags",
  266. "target_options-privates-option=target_cuda_sources"
  267. ]
  268. copy=["cmake/cuda.cmake"]
  269. add_values=[{attr="includes", values=["cmake/cuda.cmake"]}]
  270. [[rules]]
  271. attrs=["target_macroses-macro=target_rodata_sources"]
  272. copy=["cmake/archive.cmake"]
  273. add_values=[{attr="includes", values=["cmake/archive.cmake"]}]
  274. [[rules]]
  275. attrs=[
  276. "target_options-privates-option=target_cython_sources",
  277. "target_macroses-macro=target_cython_options",
  278. "target_macroses-macro=target_cython_include_directories",
  279. "target_macroses-macro=set_python_type_for_cython",
  280. ]
  281. copy=["cmake/cython.cmake"]
  282. add_values=[{attr="includes", values=["cmake/cython.cmake"]}]
  283. [[rules]]
  284. attrs=[
  285. "swig_add_library",
  286. "target_commands-macro=add_jar"
  287. ]
  288. copy=[
  289. "cmake/swig.cmake",
  290. "build/scripts/gather_swig_java.cmake"
  291. ]
  292. add_values=[{attr="includes", values=["cmake/swig.cmake"]}]
  293. [[rules]]
  294. attrs=[
  295. "packages-name=IDN",
  296. ]
  297. copy=[
  298. "cmake/FindIDN.cmake",
  299. ]
  300. add_values=[{attr="includes", values=["cmake/FindIDN.cmake"]}]
  301. [[rules]]
  302. attrs=[
  303. "packages-name=AIO",
  304. ]
  305. copy=[
  306. "cmake/FindAIO.cmake",
  307. ]
  308. add_values=[{attr="includes", values=["cmake/FindAIO.cmake"]}]
  309. # Conan profiles for platforms
  310. [[rules]]
  311. platforms=[
  312. "android-arm",
  313. "android-arm32"
  314. ]
  315. copy=["cmake/conan-profiles/android.armv7.profile"]
  316. [[rules]]
  317. platforms=["android-arm64"]
  318. copy=["cmake/conan-profiles/android.arm64.profile"]
  319. [[rules]]
  320. platforms=["android-x86"]
  321. copy=["cmake/conan-profiles/android.x86.profile"]
  322. [[rules]]
  323. platforms=["android-x86_64"]
  324. copy=["cmake/conan-profiles/android.x86_64.profile"]
  325. [[rules]]
  326. platforms=[
  327. "linux-aarch64",
  328. "linux-arm64",
  329. "linux-aarch64-cuda",
  330. "linux-arm64-cuda"
  331. ]
  332. copy=["cmake/conan-profiles/linux.aarch64.profile"]
  333. [[rules]]
  334. platforms=[
  335. "linux-ppc64le",
  336. "linux-ppc64le-cuda"
  337. ]
  338. copy=["cmake/conan-profiles/linux.ppc64le.profile"]
  339. [[rules]]
  340. platforms=["darwin-x86_64"]
  341. copy=["cmake/conan-profiles/macos.x86_64.profile"]
  342. [[rules]]
  343. platforms=["darwin-arm64"]
  344. copy=["cmake/conan-profiles/macos.arm64.profile"]