transactd 1.2.0 → 2.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (306) hide show
  1. checksums.yaml +4 -4
  2. data/BUILD_UNIX-JA +46 -67
  3. data/BUILD_WIN-JA +106 -63
  4. data/CMakeLists.txt +40 -15
  5. data/README +219 -75
  6. data/README-JA +207 -76
  7. data/README_ORMSRCGEN +118 -0
  8. data/README_ORMSRCGEN-JA +115 -0
  9. data/bin/common/tdclc_32_2_0.dll +0 -0
  10. data/bin/common/tdclc_64_2_0.dll +0 -0
  11. data/build/common/check_for_link_iconv.cmake +18 -14
  12. data/build/common/create_symlink.cmake.in +25 -0
  13. data/build/common/get_boost_libs.cmake +23 -23
  14. data/build/common/options.cmake +0 -66
  15. data/build/common/smart_install.cmake +3 -3
  16. data/build/common/transactd.rc.in +15 -5
  17. data/build/common/transactd_cl_common.cmake +37 -18
  18. data/build/common/transactd_cl_output.cmake +55 -13
  19. data/build/common/transactd_common.cmake +108 -31
  20. data/build/swig/php/generate.cmake.in +15 -17
  21. data/build/swig/php/generate.cmd.in +15 -9
  22. data/build/swig/php/php.swg +124 -82
  23. data/build/swig/php/transactd.no_yield.php +4494 -0
  24. data/build/swig/php/transactd.no_yield.php.git.patch +685 -0
  25. data/build/swig/php/transactd.no_yield.php.patch +685 -0
  26. data/build/swig/php/transactd.yield.php +4461 -0
  27. data/build/swig/php/transactd.yield.php.git.patch +652 -0
  28. data/build/swig/php/transactd.yield.php.patch +652 -0
  29. data/build/swig/referencecounter.h +79 -0
  30. data/build/swig/ruby/ruby.swg +226 -76
  31. data/build/swig/ruby/threadBlockRegionWrapper.h +71 -0
  32. data/build/swig/ruby/without_gvl.swg +87 -0
  33. data/build/swig/tdcl.i +659 -170
  34. data/build/swig/validatablepointer.h +91 -0
  35. data/build/tdclc/CMakeLists.txt +49 -34
  36. data/build/tdclc/{tdclc_64.cbproj → tdclc.cbproj} +65 -20
  37. data/build/tdclc/tdclc.rc +0 -0
  38. data/build/tdclcpp/CMakeLists.txt +84 -20
  39. data/build/tdclcpp/tdclcpp.rc +0 -0
  40. data/build/tdclcpp/{tdclcpp_bcb_64.cbproj → tdclcpp_bc.cbproj} +168 -44
  41. data/build/tdclrb/CMakeLists.txt +84 -66
  42. data/build/tdclrb/bldgem/extconf.rb +28 -3
  43. data/build/tdclrb/gem/helper.rb +11 -1
  44. data/build/tdclrb/gem_output.cmake +20 -16
  45. data/index_ja.html +15 -0
  46. data/source/bzs/db/IBlobBuffer.h +15 -17
  47. data/source/bzs/db/blobBuffer.h +186 -140
  48. data/source/bzs/db/blobStructs.h +37 -37
  49. data/source/bzs/db/engine/mysql/IReadRecords.h +34 -34
  50. data/source/bzs/db/engine/mysql/bookmark.h +150 -147
  51. data/source/bzs/db/engine/mysql/database.cpp +1721 -1526
  52. data/source/bzs/db/engine/mysql/database.h +608 -370
  53. data/source/bzs/db/engine/mysql/dbManager.cpp +213 -201
  54. data/source/bzs/db/engine/mysql/dbManager.h +115 -104
  55. data/source/bzs/db/engine/mysql/errorMessage.cpp +49 -50
  56. data/source/bzs/db/engine/mysql/errorMessage.h +25 -26
  57. data/source/bzs/db/engine/mysql/fieldAccess.h +55 -61
  58. data/source/bzs/db/engine/mysql/mydebuglog.cpp +326 -292
  59. data/source/bzs/db/engine/mysql/mydebuglog.h +63 -55
  60. data/source/bzs/db/engine/mysql/mysqlInternal.h +182 -125
  61. data/source/bzs/db/engine/mysql/mysqlThd.cpp +121 -121
  62. data/source/bzs/db/engine/mysql/mysqlThd.h +20 -20
  63. data/source/bzs/db/engine/mysql/percentageKey.h +241 -228
  64. data/source/bzs/db/protocol/ICommandExecuter.h +18 -17
  65. data/source/bzs/db/protocol/hs/hsCommandExecuter.cpp +543 -514
  66. data/source/bzs/db/protocol/hs/hsCommandExecuter.h +155 -158
  67. data/source/bzs/db/protocol/tdap/btrDate.cpp +213 -180
  68. data/source/bzs/db/protocol/tdap/btrDate.h +39 -37
  69. data/source/bzs/db/protocol/tdap/client/activeTable.cpp +173 -0
  70. data/source/bzs/db/protocol/tdap/client/activeTable.h +165 -0
  71. data/source/bzs/db/protocol/tdap/client/activeTableImple.h +370 -0
  72. data/source/bzs/db/protocol/tdap/client/bulkInsert.h +13 -23
  73. data/source/bzs/db/protocol/tdap/client/client.cpp +81 -68
  74. data/source/bzs/db/protocol/tdap/client/client.h +361 -320
  75. data/source/bzs/db/protocol/tdap/client/connMgr.cpp +17 -22
  76. data/source/bzs/db/protocol/tdap/client/connMgr.h +17 -19
  77. data/source/bzs/db/protocol/tdap/client/connectionPool.cpp +243 -0
  78. data/source/bzs/db/protocol/tdap/client/connectionPool.h +109 -0
  79. data/source/bzs/db/protocol/tdap/client/database.cpp +327 -219
  80. data/source/bzs/db/protocol/tdap/client/database.h +141 -118
  81. data/source/bzs/db/protocol/tdap/client/databaseFactory.cpp +60 -62
  82. data/source/bzs/db/protocol/tdap/client/databaseManager.h +255 -0
  83. data/source/bzs/db/protocol/tdap/client/dbDef.cpp +315 -202
  84. data/source/bzs/db/protocol/tdap/client/dbDef.h +40 -32
  85. data/source/bzs/db/protocol/tdap/client/dllmain.cpp +390 -371
  86. data/source/bzs/db/protocol/tdap/client/errorMessage.cpp +148 -56
  87. data/source/bzs/db/protocol/tdap/client/errorMessage_ja.cpp +149 -57
  88. data/source/bzs/db/protocol/tdap/client/export.h +35 -0
  89. data/source/bzs/db/protocol/tdap/client/field.cpp +1985 -0
  90. data/source/bzs/db/protocol/tdap/client/field.h +393 -0
  91. data/source/bzs/db/protocol/tdap/client/fieldDDF.cpp +14 -14
  92. data/source/bzs/db/protocol/tdap/client/fieldDDF.h +11 -14
  93. data/source/bzs/db/protocol/tdap/client/fieldNameAlias.cpp +123 -0
  94. data/source/bzs/db/protocol/tdap/client/fieldNameAlias.h +58 -0
  95. data/source/bzs/db/protocol/tdap/client/fields.h +178 -0
  96. data/source/bzs/db/protocol/tdap/client/fileDDF.cpp +13 -16
  97. data/source/bzs/db/protocol/tdap/client/fileDDF.h +11 -17
  98. data/source/bzs/db/protocol/tdap/client/filter.h +423 -259
  99. data/source/bzs/db/protocol/tdap/client/groupComp.h +117 -0
  100. data/source/bzs/db/protocol/tdap/client/groupQuery.cpp +818 -0
  101. data/source/bzs/db/protocol/tdap/client/groupQuery.h +281 -0
  102. data/source/bzs/db/protocol/tdap/client/indexDDF.cpp +14 -17
  103. data/source/bzs/db/protocol/tdap/client/indexDDF.h +11 -14
  104. data/source/bzs/db/protocol/tdap/client/memRecord.cpp +231 -0
  105. data/source/bzs/db/protocol/tdap/client/memRecord.h +145 -0
  106. data/source/bzs/db/protocol/tdap/client/memRecordset.cpp +448 -0
  107. data/source/bzs/db/protocol/tdap/client/memRecordset.h +159 -0
  108. data/source/bzs/db/protocol/tdap/client/nsDatabase.cpp +300 -173
  109. data/source/bzs/db/protocol/tdap/client/nsDatabase.h +53 -36
  110. data/source/bzs/db/protocol/tdap/client/nsTable.cpp +171 -128
  111. data/source/bzs/db/protocol/tdap/client/nsTable.h +121 -87
  112. data/source/bzs/db/protocol/tdap/client/pooledDatabaseManager.h +173 -0
  113. data/source/bzs/db/protocol/tdap/client/recordset.cpp +209 -0
  114. data/source/bzs/db/protocol/tdap/client/recordset.h +86 -0
  115. data/source/bzs/db/protocol/tdap/client/recordsetImple.h +596 -0
  116. data/source/bzs/db/protocol/tdap/client/request.h +227 -170
  117. data/source/bzs/db/protocol/tdap/client/serializer.cpp +1288 -0
  118. data/source/bzs/db/protocol/tdap/client/serializer.h +295 -0
  119. data/source/bzs/db/protocol/tdap/client/sharedData.cpp +9 -12
  120. data/source/bzs/db/protocol/tdap/client/sharedData.h +18 -16
  121. data/source/bzs/db/protocol/tdap/client/sqlBuilder.cpp +494 -473
  122. data/source/bzs/db/protocol/tdap/client/sqlBuilder.h +51 -53
  123. data/source/bzs/db/protocol/tdap/client/stringConverter.h +214 -148
  124. data/source/bzs/db/protocol/tdap/client/table.cpp +929 -1665
  125. data/source/bzs/db/protocol/tdap/client/table.h +413 -87
  126. data/source/bzs/db/protocol/tdap/client/trdboostapi.h +642 -534
  127. data/source/bzs/db/protocol/tdap/client/trdboostapiInternal.h +25 -40
  128. data/source/bzs/db/protocol/tdap/client/trdclcppautolink.h +11 -15
  129. data/source/bzs/db/protocol/tdap/client/trdormapi.h +378 -437
  130. data/source/bzs/db/protocol/tdap/client/trnsctcl.def +1 -1
  131. data/source/bzs/db/protocol/tdap/fieldComp.h +127 -0
  132. data/source/bzs/db/protocol/tdap/myDateTime.cpp +352 -345
  133. data/source/bzs/db/protocol/tdap/mysql/characterset.cpp +75 -78
  134. data/source/bzs/db/protocol/tdap/mysql/characterset.h +18 -19
  135. data/source/bzs/db/protocol/tdap/mysql/databaseSchema.cpp +216 -199
  136. data/source/bzs/db/protocol/tdap/mysql/databaseSchema.h +23 -14
  137. data/source/bzs/db/protocol/tdap/mysql/debuglog.cpp +354 -314
  138. data/source/bzs/db/protocol/tdap/mysql/debuglog.h +57 -47
  139. data/source/bzs/db/protocol/tdap/mysql/recordsetReader.h +905 -739
  140. data/source/bzs/db/protocol/tdap/mysql/request.h +152 -159
  141. data/source/bzs/db/protocol/tdap/mysql/tdapCommandExecuter.cpp +1044 -879
  142. data/source/bzs/db/protocol/tdap/mysql/tdapCommandExecuter.h +87 -81
  143. data/source/bzs/db/protocol/tdap/tdapRequest.h +162 -130
  144. data/source/bzs/db/protocol/tdap/tdapSchema.cpp +368 -166
  145. data/source/bzs/db/protocol/tdap/tdapSchema.h +702 -566
  146. data/source/bzs/db/protocol/tdap/tdapcapi.h +387 -353
  147. data/source/bzs/db/transactd/appBuilderImple.h +21 -20
  148. data/source/bzs/db/transactd/appModule.cpp +350 -98
  149. data/source/bzs/db/transactd/appModule.h +31 -37
  150. data/source/bzs/db/transactd/connManager.cpp +138 -135
  151. data/source/bzs/db/transactd/connManager.h +28 -21
  152. data/source/bzs/db/transactd/connectionRecord.h +39 -39
  153. data/source/bzs/db/transactd/transactd.cpp +217 -203
  154. data/source/bzs/env/boost_bcb_link.h +131 -0
  155. data/source/bzs/env/compiler.h +136 -79
  156. data/source/bzs/env/crosscompile.cpp +57 -57
  157. data/source/bzs/env/crosscompile.h +130 -115
  158. data/source/bzs/env/fileopen.h +7 -8
  159. data/source/bzs/env/mbcswchrLinux.cpp +4 -9
  160. data/source/bzs/env/mbcswchrLinux.h +37 -34
  161. data/source/bzs/env/tcharMinGW.h +59 -0
  162. data/source/bzs/env/tstring.h +90 -95
  163. data/source/bzs/example/changeSchema.cpp +22 -23
  164. data/source/bzs/example/changeSchema_c.cpp +22 -24
  165. data/source/bzs/example/connection_pool_c.cpp +49 -104
  166. data/source/bzs/example/createDatabase.cpp +40 -47
  167. data/source/bzs/example/createDatabase_c.cpp +38 -43
  168. data/source/bzs/example/deleteRecords.cpp +10 -15
  169. data/source/bzs/example/deleteRecords_c.cpp +10 -14
  170. data/source/bzs/example/dropDatabase.cpp +3 -9
  171. data/source/bzs/example/dropDatabase_c.cpp +5 -6
  172. data/source/bzs/example/insertRecords.cpp +37 -29
  173. data/source/bzs/example/insertRecords_c.cpp +19 -25
  174. data/source/bzs/example/ormap_c.cpp +621 -0
  175. data/source/bzs/example/queryData.cpp +371 -0
  176. data/source/bzs/example/queryData.h +16 -0
  177. data/source/bzs/example/query_c.cpp +109 -0
  178. data/source/bzs/example/readRecords.cpp +27 -27
  179. data/source/bzs/example/readRecords_c.cpp +25 -23
  180. data/source/bzs/example/updateRecords.cpp +16 -21
  181. data/source/bzs/example/updateRecords_c.cpp +8 -12
  182. data/source/bzs/example/update_with_transaction.cpp +21 -24
  183. data/source/bzs/example/update_with_transaction_c.cpp +12 -15
  184. data/source/bzs/example/useORMRecord.cpp +177 -0
  185. data/source/bzs/netsvc/client/tcpClient.cpp +167 -156
  186. data/source/bzs/netsvc/client/tcpClient.h +541 -489
  187. data/source/bzs/netsvc/server/IAppModule.h +119 -32
  188. data/source/bzs/netsvc/server/iserver.h +21 -23
  189. data/source/bzs/netsvc/server/serverCpt.cpp +421 -391
  190. data/source/bzs/netsvc/server/serverCpt.h +41 -43
  191. data/source/bzs/netsvc/server/serverPipe.cpp +580 -565
  192. data/source/bzs/netsvc/server/serverPipe.h +44 -45
  193. data/source/bzs/netsvc/server/serverTpool.cpp +333 -303
  194. data/source/bzs/netsvc/server/serverTpool.h +38 -43
  195. data/source/bzs/rtl/benchmark.cpp +91 -31
  196. data/source/bzs/rtl/benchmark.h +76 -22
  197. data/source/bzs/rtl/datetime.cpp +231 -233
  198. data/source/bzs/rtl/datetime.h +16 -16
  199. data/source/bzs/rtl/debuglog.cpp +48 -51
  200. data/source/bzs/rtl/debuglog.h +55 -44
  201. data/source/bzs/rtl/exception.h +55 -48
  202. data/source/bzs/rtl/stl_uty.cpp +27 -28
  203. data/source/bzs/rtl/stl_uty.h +28 -29
  204. data/source/bzs/rtl/stringBuffers.cpp +8 -6
  205. data/source/bzs/rtl/stringBuffers.h +16 -9
  206. data/source/bzs/rtl/strtrim.cpp +90 -91
  207. data/source/bzs/rtl/strtrim.h +14 -16
  208. data/source/bzs/test/tdclatl/bench_query_atl.js +647 -0
  209. data/source/bzs/test/tdclatl/bench_tdclatl.js +303 -303
  210. data/source/bzs/test/tdclatl/test_query_atl.js +669 -0
  211. data/source/bzs/test/tdclphp/bench.php +357 -0
  212. data/source/bzs/test/tdclphp/transactd_Test.php +907 -303
  213. data/source/bzs/test/tdclphp/transactd_blob_Test.php +21 -49
  214. data/source/bzs/test/tdclphp/transactd_datetime_Test.php +41 -75
  215. data/source/bzs/test/tdclphp/transactd_kanjischema_Test.php +23 -37
  216. data/source/bzs/test/tdclphp/transactd_pool_Test.php +120 -0
  217. data/source/bzs/test/tdclrb/bench_tdclcpp.rb +4 -6
  218. data/source/bzs/test/tdclrb/prepare.rb +15 -12
  219. data/source/bzs/test/tdclrb/transactd_blob_spec.rb +29 -32
  220. data/source/bzs/test/tdclrb/transactd_datetime_spec.rb +0 -29
  221. data/source/bzs/test/tdclrb/transactd_kanjischema_spec.rb +18 -19
  222. data/source/bzs/test/tdclrb/transactd_pool_spec.rb +107 -0
  223. data/source/bzs/test/tdclrb/transactd_spec.rb +734 -142
  224. data/source/bzs/test/transactdBench/query_bench.cpp +156 -0
  225. data/source/bzs/test/transactdBench/scaling_bench.cpp +265 -0
  226. data/source/bzs/test/transactdBench/transactdBench.cpp +107 -83
  227. data/source/bzs/test/transactdBench/transactdBench2.cpp +122 -83
  228. data/source/bzs/test/transactdBench/workerBase.cpp +5 -0
  229. data/source/bzs/test/transactdBench/workerBase.h +88 -0
  230. data/source/bzs/test/transactdBench/workerMySQLImple.h +333 -0
  231. data/source/bzs/test/transactdBench/workerTransactdImple.h +201 -0
  232. data/source/bzs/test/trdclengn/test_blob.cpp +121 -73
  233. data/source/bzs/test/trdclengn/test_trdclengn.cpp +1244 -426
  234. data/source/global/ormsrcgen/confParam.h +80 -0
  235. data/source/global/ormsrcgen/fieldName.cpp +77 -0
  236. data/source/global/ormsrcgen/fieldName.h +43 -0
  237. data/source/global/ormsrcgen/main.cpp +196 -0
  238. data/source/global/ormsrcgen/srcgen.cpp +763 -0
  239. data/source/global/ormsrcgen/srcgen.h +72 -0
  240. data/source/global/ormsrcgen/template/fieldNameList_sample.txt +2 -0
  241. data/source/global/ormsrcgen/template/ormDataClass_template.cpp +48 -0
  242. data/source/global/ormsrcgen/template/ormDataClass_template.h +34 -0
  243. data/source/global/ormsrcgen/template/ormMapClass_template.cpp +51 -0
  244. data/source/global/ormsrcgen/template/ormMapClass_template.h +62 -0
  245. data/source/global/ormsrcgen/template/template.cnf +38 -0
  246. data/source/global/querystmts/querystmts.cpp +237 -0
  247. data/source/global/tdclatl/ConnectParams.cpp +77 -0
  248. data/source/global/tdclatl/ConnectParams.h +70 -0
  249. data/source/global/tdclatl/Database.cpp +132 -128
  250. data/source/global/tdclatl/Database.h +60 -49
  251. data/source/global/tdclatl/DbDef.cpp +68 -64
  252. data/source/global/tdclatl/DbDef.h +36 -36
  253. data/source/global/tdclatl/Field.cpp +12 -17
  254. data/source/global/tdclatl/Field.h +15 -12
  255. data/source/global/tdclatl/FieldDef.cpp +75 -36
  256. data/source/global/tdclatl/FieldDef.h +38 -19
  257. data/source/global/tdclatl/FieldDefs.cpp +74 -0
  258. data/source/global/tdclatl/FieldDefs.h +56 -0
  259. data/source/global/tdclatl/FieldNames.cpp +99 -0
  260. data/source/global/tdclatl/FieldNames.h +66 -0
  261. data/source/global/tdclatl/Flags.cpp +75 -37
  262. data/source/global/tdclatl/Flags.h +13 -12
  263. data/source/global/tdclatl/GroupQuery.cpp +119 -0
  264. data/source/global/tdclatl/GroupQuery.h +65 -0
  265. data/source/global/tdclatl/KeyDef.cpp +15 -14
  266. data/source/global/tdclatl/KeyDef.h +20 -17
  267. data/source/global/tdclatl/KeySegment.cpp +13 -12
  268. data/source/global/tdclatl/PooledDbManager.cpp +223 -0
  269. data/source/global/tdclatl/PooledDbManager.h +76 -0
  270. data/source/global/tdclatl/QueryBase.cpp +206 -127
  271. data/source/global/tdclatl/QueryBase.h +55 -59
  272. data/source/global/tdclatl/Record.cpp +214 -0
  273. data/source/global/tdclatl/Record.h +96 -0
  274. data/source/global/tdclatl/Recordset.cpp +278 -0
  275. data/source/global/tdclatl/Recordset.h +83 -0
  276. data/source/global/tdclatl/RecordsetQuery.cpp +118 -0
  277. data/source/global/tdclatl/RecordsetQuery.h +126 -0
  278. data/source/global/tdclatl/Table.cpp +57 -60
  279. data/source/global/tdclatl/Table.h +32 -29
  280. data/source/global/tdclatl/TableDef.cpp +63 -62
  281. data/source/global/tdclatl/TableDef.h +20 -22
  282. data/source/global/tdclatl/TdVersion.cpp +3 -3
  283. data/source/global/tdclatl/TdVersion.h +15 -11
  284. data/source/global/tdclatl/_IDatabaseEvents_CP.h +99 -92
  285. data/source/global/tdclatl/activeTable.cpp +355 -0
  286. data/source/global/tdclatl/activeTable.h +79 -0
  287. data/source/global/tdclatl/dllmain.cpp +4 -3
  288. data/source/global/tdclatl/dllmain.h +7 -6
  289. data/source/global/tdclatl/keySegment.h +22 -18
  290. data/source/global/tdclatl/resource.h +0 -0
  291. data/source/global/tdclatl/stdafx.h +6 -4
  292. data/source/global/tdclatl/targetver.h +0 -1
  293. data/source/global/tdclatl/tdclatl.cpp +10 -5
  294. data/source/global/tdclatl/tdclatl.idl +530 -14
  295. data/source/linux/charsetConvert.h +78 -79
  296. data/source/linux/linuxTypes.h +9 -12
  297. data/source/linux/tchar.h +168 -166
  298. data/transactd.gemspec +24 -16
  299. metadata +98 -12
  300. data/bin/common/tdclc_32_1_2.dll +0 -0
  301. data/bin/common/tdclc_64_1_2.dll +0 -0
  302. data/build/tdclc/tdclc_32.cbproj +0 -173
  303. data/build/tdclcpp/tdclcpp_bcb_32.cbproj +0 -232
  304. data/build/tdclrb/GEM_VERSION +0 -3
  305. data/source/bzs/db/protocol/tdap/client/filter.cpp +0 -43
  306. data/source/bzs/example/useORM.cpp +0 -585
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 170428ca4c13d71e29e383dcd2177a3379ab9aa6
4
- data.tar.gz: 679895450a096a43e0c3eb97fdd89e9da2b1c854
3
+ metadata.gz: f0d4476167db8386d79022f49d8623266044df1b
4
+ data.tar.gz: 0e646030abc99d95589be9851a6c9ee9f2a8317a
5
5
  SHA512:
6
- metadata.gz: b8fb996a5df63898313c19c456251efe0a4e598e0e9cb426828f7a5f4ac60df1474c6be25faa03756977c08db346d5aa41351e0d775bcbd7bffce876a5ff8bde
7
- data.tar.gz: 18b21cf181a039f3bc1811e3a2d3ad0665f13a08f9baf7c8735973736312791bff390c6b4a3e0f759eedb56fcb7a6836308de83198e22082228cdd9a79d23c67
6
+ metadata.gz: c8c1e2b9d5e81cf7fe8b02ffb59775a72bfabf7337fca99ef59b092f63ff805cced4d671292f28054bfd6266f4d2495869b5ceba05cb7b6ed1ccea2b242c1214
7
+ data.tar.gz: f8b2ea5deece11ed0584277dd654badec464b5fd49acf9bfc4e6fb520f16935272b6817b7aff39be1601373844bc49174a74350a9106598b509ccbdce00ac080
data/BUILD_UNIX-JA CHANGED
@@ -1,4 +1,4 @@
1
- Transactd ビルドガイド for Unix
1
+ Transactd ビルドガイド for Unix
2
2
  ============================================================
3
3
 
4
4
  1. ビルド環境の準備
@@ -9,6 +9,10 @@ Transactd Plugin および Transactd クライアントは、Unix上のGCC(64bit
9
9
  * Ubuntu 12.10 x86_64
10
10
  * gcc 4.7.2
11
11
 
12
+ ビルドにはgccバージョン4.4以上が必須です。
13
+ また、CentOS(GCC4.4以上 or clang LLVM 3.4)、Mac OS X 10.9(GCC4.4以上
14
+ or Xcode5.1 LLVM 3.4)でも同様にビルドできます。
15
+
12
16
 
13
17
 
14
18
  2. CMakeのインストール
@@ -18,22 +22,30 @@ Transactd Plugin および Transactd クライアントは、Unix上のGCC(64bit
18
22
  sudo aptitude install cmake
19
23
  ```
20
24
 
25
+ CentOSでは
26
+ ```
27
+ sudo yum install cmake
28
+ ```
29
+
30
+ Mac OS Xでは、バイナリ配布をアプリケーションフォルダにインストールして
31
+ `/Applications/CMake.app/Contents/bin`にパスを通します。
32
+
21
33
 
22
34
 
23
35
  3. Boost C++ Libraries のダウンロードとビルド
24
36
  ------------------------------------------------------------
25
- [Boostのダウンロードページ](http://www.boost.org/users/download )からソースコー
26
- ドをダウンロードし、解凍します。
37
+ [Boostのダウンロードページ](http://www.boost.org/users/download)から
38
+ ソースコードをダウンロードし、解凍します。
27
39
  ```
28
40
  cd ~
29
41
  wget http://sourceforge.net/projects/boost/files/boost/1.54.0/boost_1_54_0.tar.gz/download -O boost_1_54_0.tar.gz
30
- tar -xzf boost_1_54_0.tar.gz
42
+ tar xzf boost_1_54_0.tar.gz
31
43
  ```
32
44
 
33
45
  以下のコマンドを実行しBoostのビルドを行います。
34
46
  ```
35
47
  cd ~/boost_1_54_0
36
- ./bootstrap.sh --with-libraries=chrono,filesystem,system,thread,timer
48
+ ./bootstrap.sh --with-libraries=chrono,filesystem,system,thread,timer,serialization,program_options
37
49
  ./b2 cxxflags=-fPIC
38
50
  ```
39
51
 
@@ -48,8 +60,8 @@ cd ~/boost_1_54_0
48
60
  からソースコードをダウンロードし、解凍します。
49
61
  ```
50
62
  cd ~
51
- wget http://cdn.mysql.com/Downloads/MySQL-5.6/mysql-5.6.13.tar.gz
52
- tar -xzf mysql-5.6.13.tar.gz
63
+ wget http://cdn.mysql.com/Downloads/MySQL-5.6/mysql-5.6.20.tar.gz
64
+ tar xzf mysql-5.6.20.tar.gz
53
65
  ```
54
66
 
55
67
 
@@ -57,58 +69,42 @@ tar -xzf mysql-5.6.13.tar.gz
57
69
  [Transactd Pluginのダウンロードページ](http://www.bizstation.jp/al/transactd/download/index.asp)
58
70
  からソースコードをダウンロードします。
59
71
 
60
- ダウンロードしたソースコードは、4-1で展開したMySQLソースコードのpluginディレ
61
- クトリに展開します。
72
+ ダウンロードしたソースコードは、4-1で展開したMySQLソースコードの
73
+ pluginディレクトリに展開します。
62
74
  ```
63
75
  cd ~
64
- wget http://www.bizstation.jp/al/transactd/download/transactd-1.1.0/transactd-source-1.1.0.zip
65
- unzip -q transactd-source-1.1.0.zip
66
- mv transactd ~/mysql-5.6.13/plugin/
67
- ```
68
-
69
-
70
- ### 4-3 BOMの削除(gcc 4.3 未満の場合)
71
- gccのバージョンが4.3未満の場合、UTF-8 BOM付きのソースコードをビルドできない
72
- ため、BOMを削除します。
73
- バージョンは以下のコマンドで確認できます。
74
- ```
75
- gcc --version
76
- ```
77
-
78
- gccのバージョンが4.3未満だった場合、以下のコマンドで
79
- で`transactd/source/bzs/test/trdclengn/test_trdclengn.cpp` のBOMを削除します。
80
- ```
81
- cd ~/mysql-5.6.13/plugin/transactd/source/bzs/test/trdclengn/
82
- cp test_trdclengn.cpp test_trdclengn.cpp.backup
83
- file_length=`wc -c < test_trdclengn.cpp.backup`
84
- tail -c `expr ${file_length} - 3` test_trdclengn.cpp.backup > test_trdclengn.cpp
76
+ wget http://www.bizstation.jp/al/transactd/download/transactd-2.0.0/transactd-source-2.0.0.zip
77
+ #Mac OS Xでは
78
+ #curl -O http://www.bizstation.jp/al/transactd/download/transactd-2.0.0/transactd-source-2.0.0.zip
79
+ unzip -q transactd-source-2.0.0.zip -d transactd
80
+ mv transactd ~/mysql-5.6.20/plugin/
85
81
  ```
86
82
 
87
83
 
88
- ### 4-4 CMakeの実行
84
+ ### 4-3 CMakeの実行
89
85
  以下のコマンドを実行します。後述するオプションに注意してください。
90
86
  ```
91
- cd ~/mysql-5.6.13
87
+ cd ~/mysql-5.6.20
92
88
  mkdir bldgccx64
93
89
  cd bldgccx64
94
90
  cmake .. -DWITH_TRANSACTD_SERVER=ON -DWITH_TRANSACTD_CLIENTS=ON \
95
91
  -DBUILD_CONFIG=mysql_release \
96
92
  -DBOOST_ROOT=~/boost_1_54_0 \
97
- -DCMAKE_INSTALL_PREFIX=/usr/local/mysql-5.6.13 \
93
+ -DCMAKE_INSTALL_PREFIX=/usr/local/mysql-5.6.20 \
98
94
  -DTRANSACTD_CLIENTS_PREFIX=/usr/lib \
99
95
  -DTRANSACTD_PREFIX=/usr/local/transactd
100
96
  ```
101
- * CMAKE_INSTALL_PREFIXに指定するのは、これからビルドするMySQLのインストール先で
102
- す。
97
+ * `CMAKE_INSTALL_PREFIX` に指定するのは、これからビルドするMySQLのインストール先
98
+ です。
103
99
  ***すでにインストール済みのMySQLがある場合に、それと同じパスを指定すると、上書
104
100
  きされてしまいます。上書きしたくないときは異なるパスを指定してください。***
105
- * TRANSACTD_CLIENTS_PREFIXに指定するのは、これからビルドするクライアントのインス
106
- トール先です。デフォルトは「/usr/lib」です。
107
- * TRANSACTD_PREFIXに指定するのは、これからビルドするテストやベンチマークのプログ
108
- ラムのインストール先です。デフォルトは「/usr/local/transactd」です。
101
+ * `TRANSACTD_CLIENTS_PREFIX` に指定するのは、これからビルドするクライアントの
102
+ インストール先です。デフォルトは`/usr/lib`です。
103
+ * `TRANSACTD_PREFIX`に指定するのは、これからビルドするテストやベンチマークの
104
+ プログラムのインストール先です。デフォルトは`/usr/local/transactd`です。
109
105
 
110
106
 
111
- ### 4-5 ビルド
107
+ ### 4-4 ビルド
112
108
  CMakeが完了するとMakefileが生成されているので、makeコマンドでビルド・インストール
113
109
  します。
114
110
  ```
@@ -125,30 +121,13 @@ make install
125
121
  からソースコードをダウンロードします。
126
122
  ```
127
123
  cd ~
128
- wget http://www.bizstation.jp/al/transactd/download/transactd-1.1.0/transactd-source-1.1.0.zip
129
- unzip -q transactd-source-1.1.0.zip
130
- ```
131
-
132
-
133
- ### 5-2 BOMの削除(gcc 4.3 未満の場合)
134
- gccのバージョンが4.3未満の場合、UTF-8 BOM付きのソースコードをビルドできない
135
- ため、BOMを削除します。
136
- バージョンは以下のコマンドで確認できます。
124
+ wget http://www.bizstation.jp/al/transactd/download/transactd-2.0.0/transactd-source-2.0.0.zip
125
+ #Mac OS Xでは
126
+ #curl curl -O http://www.bizstation.jp/al/transactd/download/transactd-2.0.0/transactd-source-2.0.0.zip
127
+ unzip -q transactd-source-2.0.0.zip -d transactd
137
128
  ```
138
- gcc --version
139
- ```
140
-
141
- gccのバージョンが4.3未満だった場合、以下のコマンドで
142
- `transactd/source/bzs/test/trdclengn/test_trdclengn.cpp` のBOMを削除します。
143
- ```
144
- cd ~/transactd/source/bzs/test/trdclengn/
145
- cp test_trdclengn.cpp test_trdclengn.cpp.backup
146
- file_length=`wc -c < test_trdclengn.cpp.backup`
147
- tail -c `expr ${file_length} - 3` test_trdclengn.cpp.backup > test_trdclengn.cpp
148
- ```
149
-
150
129
 
151
- ### 5-3 CMakeの実行
130
+ ### 5-2 CMakeの実行
152
131
  以下のコマンドを実行します。後述するオプションに注意してください。
153
132
  ```
154
133
  cd ~/transactd
@@ -159,13 +138,13 @@ cmake .. -DWITH_TRANSACTD_SERVER=OFF -DWITH_TRANSACTD_CLIENTS=ON \
159
138
  -DTRANSACTD_CLIENTS_PREFIX=/usr/lib \
160
139
  -DTRANSACTD_PREFIX=/usr/local/transactd
161
140
  ```
162
- * TRANSACTD_CLIENTS_PREFIXに指定するのは、これからビルドするクライアントのインス
163
- トール先です。デフォルトは「/usr/lib」です。
164
- * TRANSACTD_PREFIXに指定するのは、これからビルドするテストやベンチマークのプログ
165
- ラムのインストール先です。デフォルトは「/usr/local/transactd」です。
141
+ * `TRANSACTD_CLIENTS_PREFIX` に指定するのは、これからビルドするクライアントの
142
+ インストール先です。デフォルトは`/usr/lib`です。
143
+ * `TRANSACTD_PREFIX`に指定するのは、これからビルドするテストやベンチマークの
144
+ プログラムのインストール先です。デフォルトは`/usr/local/transactd`です。
166
145
 
167
146
 
168
- ### 5-4 ビルド
147
+ ### 5-3 ビルド
169
148
  CMakeが完了するとMakefileが生成されているので、makeコマンドでビルド・インストール
170
149
  します。
171
150
  ```
data/BUILD_WIN-JA CHANGED
@@ -1,11 +1,13 @@
1
- Transactd ビルドガイド for Windows
1
+ Transactd ビルドガイド for Windows
2
2
  ============================================================
3
3
 
4
4
  1. コンパイラの準備
5
5
  ------------------------------------------------------------
6
6
  Transactd Plugin および Transactd クライアントは、Windows上のVisual Studio
7
- (32bit/64bit)でビルドできます。ここでは、以下の環境でのビルドを想定して進めます
8
-
7
+ (32bit/64bit)でビルドできます。ここでは、以下の環境でのビルドを想定して進めます。
8
+
9
+ (クライアントはEmbarcaderoのコンパイラーC++ Builder XEシリーズでもビルドできます。
10
+ [クライアントのみをビルド]の項を参照してください。)
9
11
 
10
12
  * Windows 7 (64bit)
11
13
  * Visual Studio 2010 Express
@@ -20,6 +22,7 @@ Visual Studio 2010 Expressで64bitビルドを行うには、別途Windows SDK
20
22
  http://www.microsoft.com/en-us/download/details.aspx?id=8442)
21
23
  (GRMSDKX_EN_DVD.iso をダウンロードし、マウントしてインストーラを実行)
22
24
 
25
+
23
26
  ### Visual Studioコマンドプロンプトの起動方法
24
27
  後述する手順の中で、Visual Studioコマンドプロンプトを開くことがあります。
25
28
  [スタートメニュー]-[すべてのプログラム]-[Microsoft Visual Studio 2010 Express]-
@@ -28,8 +31,7 @@ Visual Studio 2010 Expressで64bitビルドを行うには、別途Windows SDK
28
31
  Visual Studio 2010 Express には、64bit版ビルドツール用の Visual Studioコマンド
29
32
  プロンプトが付属しません。代わりに、64bit用ビルドツールのパスを設定するための
30
33
  バッチファイルを作成し、そこから起動します。
31
- 以下の内容のファイルを作成し、`set64env.cmd`という名前でデスクトップに保存します
32
-
34
+ 以下の内容のファイルを作成し、`set64env.cmd`という名前でデスクトップに保存します。
33
35
  ```
34
36
  %comspec% /k "C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\SetEnv.cmd" /x64
35
37
  ```
@@ -39,7 +41,7 @@ Visual Studio 2010 Express には、64bit版ビルドツール用の Visual Stud
39
41
  2. CMakeのダウンロードとインストール
40
42
  ------------------------------------------------------------
41
43
  [CMake ダウンロードページ](http://www.cmake.org/cmake/resources/software.html)か
42
- らWindows (Win32 Installer) をダウンロードし実行します。
44
+ らWindows (Win32 Installer) cmake-2.8.12.2-win32-x86.exe をダウンロードし実行します。
43
45
 
44
46
  途中、「Add CMake to the system PATH for all(or current) users」を選択し、
45
47
  cmakeの実行ファイルにパスが通るようにします。
@@ -48,42 +50,12 @@ cmakeの実行ファイルにパスが通るようにします。
48
50
 
49
51
  3. Boost C++ Libraries のダウンロードとインストール
50
52
  ------------------------------------------------------------
51
- ### 3-a ビルド済みバイナリのダウンロード
52
- [BoostProのダウンロードページ](http://www.boostpro.com/download)から、
53
- BoostPro 1.51.0 Installer (64-bit)をダウンロードし、インストールします。
54
-
55
- BoostProインストーラの「Select Default Variants」では以下の項目にチェックを入れ
56
- ます。
57
-
58
- * Visual C++ 10.0
59
- * Mlutithread, static runtime
60
- * Mlutithread debug, static runtime
61
-
62
- 次の「Choose Components」では、以下のコンポーネント以外のチェックは外してもかま
63
- いません。
64
-
65
- * chrono
66
- * filesystem
67
- * system
68
- * thread
69
- * timer
70
-
71
- インストールができたら、システム環境変数に `TI_BOOST_ROOT_32` および
72
- `TI_BOOST_ROOT_64`という変数を追加し、32bitと64bitのフォルダのパスを値として設
73
- 定します。自分のビルドするbitに合わせた変数が設定されていれば、両方を設定する必
74
- 要はありません。
75
- ```
76
- TI_BOOST_ROOT_32 = c:\boost\boost_1_51_32
77
- TI_BOOST_ROOT_64 = c:\boost\boost_1_51_64
78
- ```
79
- 環境変数の追加は、[コントロールパネル]-[システム]-[詳細設定]タブ-[環境変数]から
80
- 行います。
81
-
53
+ BoostProのダウンロードページが閉鎖されたため、ビルド済みバイナリをダウンロードするこ
54
+ とはできなくなりました。boostはソースからビルドします。
82
55
 
83
- ### 3-b ソースからのビルド
84
- 自分でboostをビルドする場合は、[Boostのダウンロードページ](
85
- http://www.boost.org/users/download )からソースコードをダウンロードし、解凍しま
86
- す。ここでは、以下のフォルダに保存したものとします。
56
+ ### ソースからのビルド
57
+ [Boostのダウンロードページ](http://www.boost.org/users/download)からソースコードを
58
+ ダウンロードし、解凍します。ここでは、以下のフォルダに保存したものとします。
87
59
  ```
88
60
  C:\Program Files\boost\boost_1_54_0
89
61
  ```
@@ -93,21 +65,38 @@ Visual Studioコマンドプロンプトを起動します。以下のコマン
93
65
  ```
94
66
  cd C:\Program Files\boost\boost_1_54_0
95
67
  bootstrap.bat
68
+
69
+ @REM 64bitの場合
96
70
  bjam.exe toolset=msvc threading=multi address-model=64 architecture=x86 ^
97
71
  --with-chrono --with-filesystem --with-system --with-thread --with-timer ^
72
+ --with-serialization --with-program_options ^
98
73
  variant=debug,release link=static runtime-link=static
99
74
  bjam.exe toolset=msvc threading=multi address-model=64 architecture=x86 ^
100
75
  --with-chrono --with-filesystem --with-system --with-thread --with-timer ^
76
+ --with-serialization --with-program_options ^
77
+ variant=debug,release link=static runtime-link=shared
78
+
79
+ @REM 32bitの場合
80
+ bjam.exe toolset=msvc threading=multi architecture=x86 ^
81
+ --with-chrono --with-filesystem --with-system --with-thread --with-timer ^
82
+ --with-serialization --with-program_options ^
83
+ variant=debug,release link=static runtime-link=static
84
+ bjam.exe toolset=msvc threading=multi architecture=x86 ^
85
+ --with-chrono --with-filesystem --with-system --with-thread --with-timer ^
86
+ --with-serialization --with-program_options ^
101
87
  variant=debug,release link=static runtime-link=shared
102
88
  ```
103
89
 
104
- インストールができたら、システム環境変数に `TI_BOOST_ROOT_32` および
90
+ ビルドができたら、システム環境変数に `TI_BOOST_ROOT_32` および
105
91
  `TI_BOOST_ROOT_64`という変数を追加し、32bitと64bitのフォルダのパスを値として設
106
92
  定します。自分のビルドするbitに合わせた変数が設定されていれば、両方を設定する必
107
93
  要はありません。
108
94
  ```
109
- TI_BOOST_ROOT_32 = c:\boost\boost_1_51_32
110
- TI_BOOST_ROOT_64 = c:\boost\boost_1_51_64
95
+ 64bitの場合
96
+ TI_BOOST_ROOT_64 = C:\Program Files\boost\boost_1_54_0
97
+
98
+ 32bitの場合
99
+ TI_BOOST_ROOT_32 = C:\Program Files\boost\boost_1_54_0
111
100
  ```
112
101
  環境変数の追加は、[コントロールパネル]-[システム]-[詳細設定]タブ-[環境変数]から
113
102
  行います。
@@ -127,19 +116,22 @@ TI_BOOST_ROOT_64 = c:\boost\boost_1_51_64
127
116
  ダウンロードした圧縮ファイルを解凍します。ここでは、以下のフォルダに保存したも
128
117
  のとします。
129
118
  ```
130
- C:\Users\Public\Documents\mysql-5.6.13
119
+ C:\Users\Public\Documents\mysql-5.6.20
131
120
  ```
132
121
 
133
122
 
134
123
  ### 4-2 Transactd Pluginソースコードのダウンロード
135
124
  [Transactd Pluginのダウンロードページ](http://www.bizstation.jp/al/transactd/download/index.asp)
136
125
  からソースコードをダウンロードします。
137
-
138
-
139
- ダウンロードしたソースコードを、4-1で展開したMySQLソースコードのpluginフォルダに
140
- 展開します。ここでは、以下のようなフォルダ構造になります。
126
+ ソースを展開するフォルダ transactd をMySQLのソースツリー内のpluginフォルダに作成
127
+ します。
141
128
  ```
142
- C:\Users\Public\Documents\mysql-5.6.13\plugin\transactd
129
+ md C:\Users\Public\Documents\mysql-5.6.20\plugin\transactd
130
+ ```
131
+ ダウンロードしたソースコードを、上記で作成したtransactdフォルダに展開します。
132
+ ここでは、以下のようなフォルダ構造になります。
133
+ ```
134
+ C:\Users\Public\Documents\mysql-5.6.20\plugin\transactd
143
135
  ```
144
136
 
145
137
 
@@ -151,15 +143,15 @@ Transactd Pluginソースコードのpatchディレクトリにmysqlのソース
151
143
  します。(パッチはmysql/mariadbのバージョンごとに異なる名前になっています。
152
144
  パッチ名のバージョンの部分は合ったものに変更してください。)
153
145
  ```
154
- cd C:\Users\Public\Documents\mysql-5.6.13
155
- copy plugin\transactd\patch\transactd-win-mysql-5.6.13.patch *
146
+ cd C:\Users\Public\Documents\mysql-5.6.20
147
+ copy plugin\transactd\patch\transactd-win-mysql-5.6.20.patch *
156
148
  ```
157
149
 
158
150
  patchコマンドを使用できる環境(Cygwin、Git Bashなど)があるならば、以下の
159
151
  コマンドでパッチを適用します。
160
152
  ```
161
- cd C:\Users\Public\Documents\mysql-5.6.13
162
- patch -p0 -i transactd-win-mysql-5.6.13.patch
153
+ cd C:\Users\Public\Documents\mysql-5.6.20
154
+ patch -p0 -i transactd-win-mysql-5.6.20.patch
163
155
  ```
164
156
 
165
157
  patchコマンドがない場合、[宮坂 賢 氏のGNU patch 2.5.4 (Win32 版)](
@@ -171,8 +163,8 @@ C:\Program Files (x86)\patc254w
171
163
  ```
172
164
  以下のコマンドでパッチを適用します。
173
165
  ```
174
- cd C:\Users\Public\Documents\mysql-5.6.13
175
- "C:\Program Files (x86)\patc254w\patch.exe" -p0 --binary -i transactd-win-mysql-5.6.13.patch
166
+ cd C:\Users\Public\Documents\mysql-5.6.20
167
+ "C:\Program Files (x86)\patc254w\patch.exe" -p0 --binary -i transactd-win-mysql-5.6.20.patch
176
168
  ```
177
169
 
178
170
  #### 4-3.2 ソースコードのエンコーディングの修正
@@ -188,7 +180,7 @@ cd C:\Users\Public\Documents\mysql-5.6.13
188
180
  ### 4-4 CMakeの実行
189
181
  Visual Studioコマンドプロンプトを起動して、以下のコマンドを実行します。
190
182
  ```
191
- cd C:\Users\Public\Documents\mysql-5.6.13
183
+ cd C:\Users\Public\Documents\mysql-5.6.20
192
184
  md bldVC100x64
193
185
  cd bldVC100x64
194
186
  cmake .. -G "Visual Studio 10 Win64" ^
@@ -200,7 +192,7 @@ cmake .. -G "Visual Studio 10 Win64" ^
200
192
  ### 4-5 ビルド
201
193
  CMakeが完了すると、以下のソリューションファイルが生成されています。
202
194
  ```
203
- C:\Users\Public\Documents\mysql-5.6.13\bldVC100x64\MySQL.sln
195
+ C:\Users\Public\Documents\mysql-5.6.20\bldVC100x64\MySQL.sln
204
196
  ```
205
197
  MySQL.slnをVisual Studioで開きます。メニューの[ビルド]-[構成マネージャー]から構
206
198
  成を「RelWithDebInfo」に変更し、[ビルド]-[ソリューションのビルド]をクリックしま
@@ -208,9 +200,9 @@ MySQL.slnをVisual Studioで開きます。メニューの[ビルド]-[構成マ
208
200
 
209
201
  バイナリは以下のフォルダに出力されます。
210
202
  ```
211
- C:\Users\Public\Documents\mysql-5.6.13\bldVC100x64\sql\lib\plugin
212
- C:\Users\Public\Documents\mysql-5.6.13\bldVC100x64\plugin\transactd\bin
213
- C:\Users\Public\Documents\mysql-5.6.13\bldVC100x64\plugin\transactd\lib
203
+ C:\Users\Public\Documents\mysql-5.6.20\bldVC100x64\sql\lib\plugin
204
+ C:\Users\Public\Documents\mysql-5.6.20\bldVC100x64\plugin\transactd\bin
205
+ C:\Users\Public\Documents\mysql-5.6.20\bldVC100x64\plugin\transactd\lib
214
206
  ```
215
207
 
216
208
 
@@ -223,12 +215,12 @@ C:\Users\Public\Documents\mysql-5.6.13\bldVC100x64\plugin\transactd\lib
223
215
 
224
216
  ここでは、以下のフォルダに展開したとします。
225
217
  ```
226
- C:\Users\Public\Documents
218
+ C:\Users\Public\Documents\transactd
227
219
  ```
220
+ (EmbarcaderoのC++BuilderXEシリーズの場合は[5-4 C++BuilderXEシリーズでのビルド]に進んでください。)
228
221
 
229
222
 
230
223
  ### 5-2 CMakeの実行
231
-
232
224
  Visual Studioコマンドプロンプトを起動して、以下のコマンドを実行します。
233
225
  ```
234
226
  cd C:\Users\Public\Documents\transactd
@@ -254,3 +246,54 @@ tdcl.slnをVisual Studioで開きます。メニューの[ビルド]-[構成マ
254
246
  C:\Users\Public\Documents\transactd\bldVC100x64\bin
255
247
  C:\Users\Public\Documents\transactd\bldVC100x64\lib
256
248
  ```
249
+
250
+
251
+ ### 5-4 C++BuilderXEシリーズでのビルド
252
+ EmbarcaderoのC++BuilderXEシリーズの場合は
253
+ ```
254
+ C:\Users\Public\Documents\Build\TransactdClient_bcb.groupproj
255
+ ```
256
+ にてXE以降のコンパイラーでコンパイルできます。
257
+
258
+ コンパイルにはコンパイラー付属のboostライブラリがインストールされている必要が
259
+ あります。また、C++ Builderの[ツール]-[オプション]-[環境オプション]-[C++ オプション]
260
+ -[パスとディレクトリ]の[システムインクルードパス]に
261
+ ```
262
+ 32Bitの場合 $(CG_BOOST_ROOT)
263
+ 64Bitの場合 $(CG_64_BOOST_ROOT)
264
+ ```
265
+ を追加します。
266
+ ビルド構成は、Unicode版/Ansi版 Release/Debug 32Bit/64Bit があります。
267
+ 出力は、bin libフォルダに生成されます。64Bitの場合は常に動的RTLとリンクが必要です。
268
+
269
+ 以下はバージョンごとの補足事項です。
270
+
271
+ 32Bit(すべてのXEバージョン)の場合、boost_program_optionsがコンパイルされていないため、
272
+ ```
273
+ build\libboost_program_options-bcb1_39\libboost_program_options-bcb-mt-1_39.cbproj
274
+ ```
275
+ にて事前にlibboost_program_options-bcb-mt-1_39.libを生成してください。
276
+ コンパイルの前に、下記のboostのソースの修正が必要です。
277
+ ```
278
+ ファイル:$(CG_BOOST_ROOT)\boost_1_39\libs\program_options\src\variables_map.cpp
279
+ 71行目 :v = variable_value(); --> variable_value vr;v = vr;
280
+ 115行目 :m[key] = variable_value(def, true); --> variable_value vr(def, true);m[key] = vr;
281
+ ```
282
+
283
+ XE2の場合、boost_serializationがコンパイルされていないため、
284
+ ```
285
+ build\libboost_serialization-bcb-1_39\libboost_boost_serialization-bcb-mt-1_39.cbproj
286
+ ```
287
+ にて事前にlibboost_serialization-bcb-mt-1_39.libを生成してください。
288
+
289
+ XE4 64Bitの場合、コンパイラバージョンがXE3と同じであるため、tdclcppを使用する
290
+ アプリケーションの自動リンクでtdclcpp_bc170_64x.libを探そうとします。しかしXE4で
291
+ 生成されるdllはtdclcpp_bc180_64x.dllのため、libが見つからずリンクエラーが発生します。
292
+ XE4 64Bitでtdclcppとtdclstmtをコンパイルした際には、libのファイル名の180部分を170に
293
+ リネームし`tdclcpp_bc180_64x_xx.lib`と`tdclstmt_bc180_64x_xx.lib`にしてください。
294
+
295
+ XE6 64Bitの場合、boost_threadのコンパイルが通らないためboostのソースを修正します。
296
+ ```
297
+ ファイル:$(CG_BOOST_ROOT)\boost_1_50\boost\asio\detail\impl\win_thread.ipp
298
+ 52行目: ::QueueUserAPC(apc_function, thread_, 0); --> ::QueueUserAPC((PAPCFUNC)apc_function, thread_, 0);
299
+ ```
data/CMakeLists.txt CHANGED
@@ -22,6 +22,8 @@
22
22
  cmake_minimum_required(VERSION 2.6)
23
23
  include(build/common/transactd_required.cmake)
24
24
  include(build/common/transactd_common.cmake)
25
+ include(build/common/transactd_cl_common.cmake)
26
+ include(build/common/options.cmake)
25
27
 
26
28
  # ==========================================================
27
29
  # options
@@ -29,7 +31,7 @@ include(build/common/transactd_common.cmake)
29
31
  option(WITH_TRANSACTD_SERVER "Build Transactd server plugin" ON)
30
32
  option(WITH_TRANSACTD_CLIENTS "Build Transactd client libraries" ON)
31
33
  option(TRANSACTD_HANDLERSOCKET "Add HandlerSocket protocol to Transactd plugin" ON)
32
- set(TRANSACTD_PREFIX "/usr/local/transactd" CACHE STRING "Prefix for transactd executables(test,benchmark)")
34
+ set(TRANSACTD_PREFIX "/usr/local/transactd" CACHE STRING "Prefix for transactd executables")
33
35
  set(TRANSACTD_CLIENTS_PREFIX "" CACHE STRING "Prefix for transactd client libraries")
34
36
  # options for Ruby client
35
37
  option(TRANSACTD_RUBY_GEM "Build Transactd ruby gem" OFF)
@@ -50,7 +52,11 @@ set(TRANSACTD_RUBY_LIBRARY_PATH "" CACHE STRING "Library path for ruby")
50
52
  set(TRANSACTD_PHP_INCLUDE_PATH "" CACHE STRING "Include path for PHP")
51
53
  option(TRANSACTD_PHP_USE_32BIT_TIME_T
52
54
  "Add _USE_32BIT_TIME_T option for building Transactd client PHP extension" ON)
53
- set(TDCL_CPP_CHARSET "" CACHE STRING "Transactd clients charset m:Multibyte u:Unicode")
55
+ set(TDCL_CPP_CHARSET "" CACHE STRING "The charset of Transactd clients [m]ultibyte [u]nicode")
56
+ option(TRANSACTD_HAVE_RB_THREAD_CALL_WITHOUT_GVL
57
+ "Add HAVE_RB_THREAD_CALL_WITHOUT_GVL option for building Transactd client Ruby gem" ON)
58
+ option(TRANSACTD_HAVE_RB_THREAD_BLOCKING_REGION
59
+ "Add HAVE_RB_THREAD_BLOCKING_REGION option for building Transactd client Ruby gem" OFF)
54
60
 
55
61
 
56
62
  # ==========================================================
@@ -66,6 +72,11 @@ if(TRANSACTD_PHP)
66
72
  set(WITH_TRANSACTD_SERVER OFF)
67
73
  set(WITH_TRANSACTD_CLIENTS OFF)
68
74
  endif()
75
+ if(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES)
76
+ set(CMAKE_BUILD_TYPE "Release" CACHE STRING "Type of build")
77
+ set_property(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS
78
+ "Debug" "Release" "MinSizeRel" "RelWithDebInfo")
79
+ endif()
69
80
 
70
81
 
71
82
  # ==========================================================
@@ -83,17 +94,17 @@ endif()
83
94
  if(WITH_TRANSACTD_CLIENTS)
84
95
  message(STATUS "BUILD Transactd Client Libraries")
85
96
  if("${CMAKE_SOURCE_DIR}" STREQUAL "${CMAKE_CURRENT_SOURCE_DIR}")
97
+ # build without server plugin
86
98
  project(tdcl)
87
99
  endif()
100
+ tdcl_set_compiler_flags()
88
101
  subdirs("build/tdclc")
89
- if(WIN32 AND NOT MINGW)
90
- if((NOT ("${TDCL_CPP_CHARSET}" STREQUAL "m")) AND (NOT ("${TDCL_CPP_CHARSET}" STREQUAL "u")))
91
- set(TDCL_CPP_CHARSET u)
92
- endif()
102
+ if(MSVC AND (NOT ("${TDCL_CPP_CHARSET}" STREQUAL "m")))
103
+ set(TDCL_CPP_CHARSET u)
93
104
  else()
94
105
  set(TDCL_CPP_CHARSET m)
95
106
  endif()
96
- foreach(srcname tdclcpp test_tdcl bench_td)
107
+ foreach(srcname tdclcpp test_tdcl bench_td bench_query tdclstmt querystmts ormsrcgen)
97
108
  transactd_copy_subdir(
98
109
  "${TRANSACTD_ROOT}" "${srcname}" "${srcname}${TDCL_CPP_CHARSET}")
99
110
  subdirs("build/${srcname}${TDCL_CPP_CHARSET}")
@@ -106,11 +117,19 @@ endif()
106
117
  # ==========================================================
107
118
  if(TRANSACTD_RUBY_GEM)
108
119
  message(STATUS "BUILD Transactd Ruby Gem")
109
- if("${CMAKE_SOURCE_DIR}" STREQUAL "${CMAKE_CURRENT_SOURCE_DIR}")
110
- project(tdcl)
111
- endif()
112
120
  set(TDCL_CPP_CHARSET m)
113
- transactd_copy_subdir("${TRANSACTD_ROOT}" tdclcpp tdclcppm)
121
+ project(tdcl)
122
+ tdcl_set_compiler_flags()
123
+ if(WIN32)
124
+ if(MSVC)
125
+ transactd_copy_subdir("${TRANSACTD_ROOT}" tdclcpp tdclcppmr)
126
+ subdirs("build/tdclcppmr")
127
+ endif()
128
+ else()
129
+ transactd_copy_subdir("${TRANSACTD_ROOT}" tdclcpp tdclcppm)
130
+ subdirs("build/tdclc")
131
+ subdirs("build/tdclcppm")
132
+ endif()
114
133
  subdirs("build/tdclrb")
115
134
  endif()
116
135
 
@@ -120,10 +139,16 @@ endif()
120
139
  # ==========================================================
121
140
  if(TRANSACTD_PHP)
122
141
  message(STATUS "BUILD Transactd client PHP extension")
123
- if("${CMAKE_SOURCE_DIR}" STREQUAL "${CMAKE_CURRENT_SOURCE_DIR}")
124
- project(tdcl)
125
- endif()
126
142
  set(TDCL_CPP_CHARSET m)
127
- transactd_copy_subdir("${TRANSACTD_ROOT}" tdclcpp tdclcppm)
143
+ project(tdcl)
144
+ tdcl_set_compiler_flags()
145
+ subdirs("build/tdclc")
146
+ if(MSVC)
147
+ transactd_copy_subdir("${TRANSACTD_ROOT}" tdclcpp tdclcppmr)
148
+ subdirs("build/tdclcppmr")
149
+ else()
150
+ transactd_copy_subdir("${TRANSACTD_ROOT}" tdclcpp tdclcppm)
151
+ subdirs("build/tdclcppm")
152
+ endif()
128
153
  subdirs("build/tdclphp")
129
154
  endif()