transactd 1.2.0 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (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
@@ -0,0 +1,91 @@
1
+ #ifndef TRANSACTD_SWIG_VALIDATABLEPOINTER_H
2
+ #define TRANSACTD_SWIG_VALIDATABLEPOINTER_H
3
+ /* =================================================================
4
+ Copyright (C) 2000-2014 BizStation Corp All rights reserved.
5
+
6
+ This program is free software; you can redistribute it and/or
7
+ modify it under the terms of the GNU General Public License
8
+ as published by the Free Software Foundation; either version 2
9
+ of the License, or (at your option) any later version.
10
+
11
+ This program is distributed in the hope that it will be useful,
12
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
13
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14
+ GNU General Public License for more details.
15
+
16
+ You should have received a copy of the GNU General Public License
17
+ along with this program; if not, write to the Free Software
18
+ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
19
+ 02111-1307, USA.
20
+ ================================================================= */
21
+ #include <vector>
22
+ #include <boost/thread/mutex.hpp>
23
+
24
+ /* database::close() deletes table pointers, but does NOT delete
25
+ variables on target-languages (PHP, Ruby, etc).
26
+
27
+ If the same address is allocated for a new table object by
28
+ database::openTable, then two variables on target-language will
29
+ hold the same table pointer (but the older one is invalid).
30
+
31
+ When GC destroys the old variable, the new table object will be
32
+ deleted because old variable holds the pointer to it.
33
+
34
+ To avoid this problem, global validatablePointerList holds list
35
+ of pointer and the availability, and delete only the old one.
36
+ */
37
+
38
+ struct validatablePointer
39
+ {
40
+ void* ptr;
41
+ bool invalid;
42
+ };
43
+
44
+ class validatablePointerList
45
+ {
46
+ boost::mutex m_mutex;
47
+ std::vector<validatablePointer> ptrs;
48
+
49
+ int find(void* p)
50
+ {
51
+ for (size_t i = 0; i < ptrs.size(); ++i)
52
+ {
53
+ if (ptrs[i].ptr == p)
54
+ return (int)i;
55
+ }
56
+ return -1;
57
+ }
58
+
59
+ public:
60
+ void add(void* p)
61
+ {
62
+ boost::mutex::scoped_lock lck(m_mutex);
63
+ /* If there are some pointers which has same address with p,
64
+ set them as invalid. */
65
+ for (size_t i = 0; i < ptrs.size(); ++i)
66
+ {
67
+ if (ptrs[i].ptr == p)
68
+ ptrs[i].invalid = true;
69
+ }
70
+ validatablePointer v = {p, false};
71
+ ptrs.push_back(v);
72
+ }
73
+
74
+ /*
75
+ @return true : a invalid pointer or no pointers has been removed.
76
+ false: a valid pointer has been removed.
77
+ */
78
+ bool remove(void* p)
79
+ {
80
+ boost::mutex::scoped_lock lck(m_mutex);
81
+ int index = find(p);
82
+ bool ret = true;
83
+ if (index != -1)
84
+ {
85
+ ret = ptrs[index].invalid;
86
+ ptrs.erase(ptrs.begin() + index);
87
+ }
88
+ return ret;
89
+ }
90
+ };
91
+ #endif //not TRANSACTD_SWIG_VALIDATABLEPOINTER_H
@@ -25,6 +25,8 @@ include(../common/transactd_common.cmake)
25
25
  include(../common/options.cmake)
26
26
  include(../common/system.cmake)
27
27
  include(../common/get_boost_libs.cmake)
28
+ include(../common/check_for_link_iconv.cmake)
29
+ check_for_link_iconv()
28
30
 
29
31
 
30
32
  set(this_target tdclc)
@@ -84,42 +86,19 @@ if(UNIX)
84
86
  endif()
85
87
 
86
88
 
87
- # ==========================================================
88
- # compiler and linker options
89
- # ==========================================================
90
- foreach(build_type "" "_RELEASE" "_DEBUG" "_RELWITHDEBINFO" "_MINSIZEREL")
91
- bz_add_cxx_flag("-DBOOST_ALL_NO_LIB -DPIC" "${build_type}")
92
- bz_remove_cxx_flag("-fno-exceptions" "${build_type}")
93
- bz_remove_cxx_flag("-fno-rtti" "${build_type}")
94
- bz_remove_cxx_flag("-fno-implicit-templates" "${build_type}")
95
- bz_remove_cxx_flag("/EHsc" "${build_type}")
96
- bz_remove_cxx_flag("/EHs" "${build_type}")
97
- if(MSVC)
98
- bz_add_cxx_flag("/EHa /wd4068 /D_WIN32_WINNT=0x0501 /DPACKAGE_NO_EXPORT" "${build_type}")
99
- bz_set_MTMTd_cxx_flag("${build_type}")
100
- bz_set_MBCS_cxx_flag("${build_type}")
101
- else()
102
- bz_add_cxx_flag("-fPIC -fabi-version=2 -fexceptions -fno-omit-frame-pointer" "${build_type}")
103
- bz_add_cxx_flag("-fno-strict-aliasing -fpermissive -frtti" "${build_type}")
104
- if(NOT MINGW)
105
- bz_add_cxx_flag("-DLINUX" "${build_type}")
106
- endif()
107
- endif()
108
- endforeach()
109
-
110
-
111
89
  # ==========================================================
112
90
  # add resource file (for Windows Visual Studio)
113
91
  # ==========================================================
114
92
  if(WIN32)
115
- set(${this_target}_RC_FILE "${CMAKE_CURRENT_BINARY_DIR}/${this_target}.rc")
93
+ transactd_ver_info_lic()
94
+ set(${this_target}_RC_FILE "${CMAKE_CURRENT_BINARY_DIR}/tdclc.rc")
116
95
  transactd_generate_rc_file(
117
96
  TRANSACTD_ROOT "${TRANSACTD_ROOT}"
118
97
  OUTFILE "${${this_target}_RC_FILE}"
119
98
  F_VER "${TDVER_C_INTERFACE_VER_MAJOR}.${TDVER_C_INTERFACE_VER_MINOR}.${TDVER_C_INTERFACE_VER_RELEASE}.${TRANSACTD_BUILD_NUMBER}"
120
99
  P_VER "${TDVER_C_INTERFACE_VER_MAJOR}.${TDVER_C_INTERFACE_VER_MINOR}.${TDVER_C_INTERFACE_VER_RELEASE}.${TRANSACTD_BUILD_NUMBER}"
121
- P_NAME "Transactd C Client"
122
- F_DESC "Transactd C Client module"
100
+ P_NAME "Transactd Client ${TRANSACTD_VER_POSTFIX}"
101
+ F_DESC "Transactd C client"
123
102
  )
124
103
  transactd_add_rc_file()
125
104
  endif()
@@ -128,15 +107,41 @@ endif()
128
107
  # ==========================================================
129
108
  # add_library
130
109
  # ==========================================================
131
- add_library(${this_target} SHARED ${${this_target}_SOURCE_FILES})
110
+ if(APPLE)
111
+ add_library(${this_target} MODULE ${${this_target}_SOURCE_FILES})
112
+ else()
113
+ add_library(${this_target} SHARED ${${this_target}_SOURCE_FILES})
114
+ endif()
115
+
116
+
117
+ # ==========================================================
118
+ # Add compile options
119
+ # ==========================================================
120
+ transactd_set_MTMD("MT")
121
+
122
+
123
+ # ==========================================================
124
+ # Add compile definitions
125
+ # ==========================================================
126
+ if(MSVC)
127
+ set_property(TARGET ${this_target} PROPERTY COMPILE_DEFINITIONS
128
+ WIN32 _WIN32 _WINDOWS _WIN32_WINNT=0x0501 PACKAGE_NO_EXPORT _USRDLL BOOST_ALL_NO_LIB _MBCS)
129
+ else()
130
+ set_property(TARGET ${this_target} PROPERTY COMPILE_DEFINITIONS
131
+ PIC BOOST_ALL_NO_LIB _MBCS)
132
+ if(NOT MINGW)
133
+ set_property(TARGET ${this_target} APPEND PROPERTY COMPILE_DEFINITIONS
134
+ LINUX)
135
+ endif()
136
+ endif()
132
137
 
133
138
 
134
139
  # ==========================================================
135
140
  # add link / include
136
141
  # ==========================================================
137
142
  transactd_link_boost_libraries("filesystem;thread;chrono;system")
138
- if(APPLE)
139
- target_link_libraries(${this_target} iconv)
143
+ if(CAN_LINK_ICONV)
144
+ target_link_libraries(${this_target} "${ICONV_LIBRARY}")
140
145
  endif()
141
146
  if(NOT MSVC)
142
147
  target_link_libraries(${this_target} pthread)
@@ -157,10 +162,20 @@ else()
157
162
  ## Linux libtdclc_[32|64].so.[MAJOR].[MINOR]
158
163
  set_target_properties(${this_target} PROPERTIES PREFIX "lib")
159
164
  set_target_properties(${this_target} PROPERTIES OUTPUT_NAME "tdclc_${BZ_BITNESS}")
160
- set_target_properties(${this_target} PROPERTIES SUFFIX ".so")
161
- set_target_properties(${this_target} PROPERTIES
162
- SOVERSION ${TDVER_C_INTERFACE_VER_MAJOR}.${TDVER_C_INTERFACE_VER_MINOR}
163
- VERSION ${TDVER_C_INTERFACE_VER_MAJOR}.${TDVER_C_INTERFACE_VER_MINOR}.${TDVER_C_INTERFACE_VER_RELEASE})
165
+ if(APPLE)
166
+ if(NOT COMMAND tdcl_set_outputnames_osx)
167
+ include(../common/transactd_cl_output.cmake)
168
+ endif()
169
+ tdcl_set_outputnames_osx(
170
+ "libtdclc_${BZ_BITNESS}" "${TDVER_C_INTERFACE_VER_MAJOR}"
171
+ "${TDVER_C_INTERFACE_VER_MINOR}" "${TDVER_C_INTERFACE_VER_RELEASE}"
172
+ "${TRANSACTD_ROOT}")
173
+ else()
174
+ set_target_properties(${this_target} PROPERTIES SUFFIX ".so")
175
+ set_target_properties(${this_target} PROPERTIES
176
+ SOVERSION ${TDVER_C_INTERFACE_VER_MAJOR}.${TDVER_C_INTERFACE_VER_MINOR}
177
+ VERSION ${TDVER_C_INTERFACE_VER_MAJOR}.${TDVER_C_INTERFACE_VER_MINOR}.${TDVER_C_INTERFACE_VER_RELEASE})
178
+ endif()
164
179
  endif()
165
180
 
166
181
 
@@ -1,18 +1,27 @@
1
1
  <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
2
2
  <PropertyGroup>
3
- <ProjectGuid>{88518A11-802B-49C9-AD5F-F913DCA6EC6F}</ProjectGuid>
4
- <ProjectVersion>14.4</ProjectVersion>
3
+ <ProjectGuid>{88518A11-802B-49C9-AD5F-F913DCA6EC6E}</ProjectGuid>
4
+ <ProjectVersion>15.4</ProjectVersion>
5
5
  <Base>True</Base>
6
6
  <Config Condition="'$(Config)'==''">Release</Config>
7
7
  <AppType>Library</AppType>
8
8
  <FrameworkType>None</FrameworkType>
9
- <Platform Condition="'$(Platform)'==''">Win32</Platform>
10
- <TargetedPlatforms>1</TargetedPlatforms>
11
- <Platform>Win64</Platform>
9
+ <TargetedPlatforms>3</TargetedPlatforms>
10
+ <Platform Condition="'$(Platform)'==''">Win64</Platform>
12
11
  </PropertyGroup>
13
12
  <PropertyGroup Condition="'$(Config)'=='Base' or '$(Base)'!=''">
14
13
  <Base>true</Base>
15
14
  </PropertyGroup>
15
+ <PropertyGroup Condition="('$(Platform)'=='OSX32' and '$(Base)'=='true') or '$(Base_OSX32)'!=''">
16
+ <Base_OSX32>true</Base_OSX32>
17
+ <CfgParent>Base</CfgParent>
18
+ <Base>true</Base>
19
+ </PropertyGroup>
20
+ <PropertyGroup Condition="('$(Platform)'=='Win32' and '$(Base)'=='true') or '$(Base_Win32)'!=''">
21
+ <Base_Win32>true</Base_Win32>
22
+ <CfgParent>Base</CfgParent>
23
+ <Base>true</Base>
24
+ </PropertyGroup>
16
25
  <PropertyGroup Condition="('$(Platform)'=='Win64' and '$(Base)'=='true') or '$(Base_Win64)'!=''">
17
26
  <Base_Win64>true</Base_Win64>
18
27
  <CfgParent>Base</CfgParent>
@@ -23,17 +32,23 @@
23
32
  <CfgParent>Base</CfgParent>
24
33
  <Base>true</Base>
25
34
  </PropertyGroup>
26
- <PropertyGroup Condition="('$(Platform)'=='Win64' and '$(Cfg_1)'=='true') or '$(Cfg_1_Win64)'!=''">
27
- <Cfg_1_Win64>true</Cfg_1_Win64>
28
- <CfgParent>Cfg_1</CfgParent>
29
- <Cfg_1>true</Cfg_1>
30
- <Base>true</Base>
31
- </PropertyGroup>
32
35
  <PropertyGroup Condition="'$(Config)'=='Release' or '$(Cfg_2)'!=''">
33
36
  <Cfg_2>true</Cfg_2>
34
37
  <CfgParent>Base</CfgParent>
35
38
  <Base>true</Base>
36
39
  </PropertyGroup>
40
+ <PropertyGroup Condition="('$(Platform)'=='OSX32' and '$(Cfg_2)'=='true') or '$(Cfg_2_OSX32)'!=''">
41
+ <Cfg_2_OSX32>true</Cfg_2_OSX32>
42
+ <CfgParent>Cfg_2</CfgParent>
43
+ <Cfg_2>true</Cfg_2>
44
+ <Base>true</Base>
45
+ </PropertyGroup>
46
+ <PropertyGroup Condition="('$(Platform)'=='Win32' and '$(Cfg_2)'=='true') or '$(Cfg_2_Win32)'!=''">
47
+ <Cfg_2_Win32>true</Cfg_2_Win32>
48
+ <CfgParent>Cfg_2</CfgParent>
49
+ <Cfg_2>true</Cfg_2>
50
+ <Base>true</Base>
51
+ </PropertyGroup>
37
52
  <PropertyGroup Condition="('$(Platform)'=='Win64' and '$(Cfg_2)'=='true') or '$(Cfg_2_Win64)'!=''">
38
53
  <Cfg_2_Win64>true</Cfg_2_Win64>
39
54
  <CfgParent>Cfg_2</CfgParent>
@@ -41,10 +56,13 @@
41
56
  <Base>true</Base>
42
57
  </PropertyGroup>
43
58
  <PropertyGroup Condition="'$(Base)'!=''">
44
- <Defines>BOOST_ALL_NO_LIB;TRANSACTD;$(Defines)</Defines>
59
+ <SanitizedProjectName>tdclc</SanitizedProjectName>
60
+ <Defines>BOOST_ALL_NO_LIB;$(Defines)</Defines>
61
+ <VerInfo_Keys>CompanyName=;FileDescription=;FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=;ProductVersion=1.0.0.0;Comments=</VerInfo_Keys>
62
+ <VerInfo_Locale>1041</VerInfo_Locale>
45
63
  <BRCC_CompilerToUse>rc</BRCC_CompilerToUse>
46
64
  <BRCC_IncludePath>$(BDSINCLUDE)\windows\sdk;$(BRCC_IncludePath)</BRCC_IncludePath>
47
- <DllSuffix>_1_2</DllSuffix>
65
+ <DllSuffix>_2_0</DllSuffix>
48
66
  <DynamicRTL>false</DynamicRTL>
49
67
  <BPILibOutputDir>..\..\lib</BPILibOutputDir>
50
68
  <BCC_PCHUsage>None</BCC_PCHUsage>
@@ -54,7 +72,6 @@
54
72
  <IncludePath>..\..\source\;$(IncludePath)</IncludePath>
55
73
  <DCC_Namespace>System;Xml;Data;Datasnap;Web;Soap;$(DCC_Namespace)</DCC_Namespace>
56
74
  <OutputExt>dll</OutputExt>
57
- <PackageImports>vcl.bpi;rtl.bpi</PackageImports>
58
75
  <Multithreaded>true</Multithreaded>
59
76
  <NoVCL>true</NoVCL>
60
77
  <ProjectType>VCppStyleDll</ProjectType>
@@ -68,10 +85,26 @@
68
85
  <BCC_ExtendedErrorInfo>true</BCC_ExtendedErrorInfo>
69
86
  <ILINK_TranslatedLibraryPath>$(BDSLIB)\$(PLATFORM)\release\$(LANGDIR);$(ILINK_TranslatedLibraryPath)</ILINK_TranslatedLibraryPath>
70
87
  </PropertyGroup>
88
+ <PropertyGroup Condition="'$(Base_OSX32)'!=''">
89
+ <Icns_MainIcns>$(BDS)\bin\cbuilder_PROJECTICNS.icns</Icns_MainIcns>
90
+ </PropertyGroup>
91
+ <PropertyGroup Condition="'$(Base_Win32)'!=''">
92
+ <Defines>TRANSACTD;$(Defines)</Defines>
93
+ <VerInfo_IncludeVerInfo>true</VerInfo_IncludeVerInfo>
94
+ <VerInfo_Locale>1033</VerInfo_Locale>
95
+ <DCC_Namespace>Winapi;System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;Bde;$(DCC_Namespace)</DCC_Namespace>
96
+ <DllSuffix>_32$(DllSuffix)</DllSuffix>
97
+ </PropertyGroup>
71
98
  <PropertyGroup Condition="'$(Base_Win64)'!=''">
72
- <Defines>_WIN32_WINNT=0x0501;$(Defines)</Defines>
99
+ <BCC_Defines>_WIN32_WINNT=0x0501;$(BCC_Defines)</BCC_Defines>
100
+ <Defines>TRANSACTD;$(Defines)</Defines>
101
+ <VerInfo_IncludeVerInfo>true</VerInfo_IncludeVerInfo>
102
+ <VerInfo_Locale>1033</VerInfo_Locale>
103
+ <DCC_Namespace>Winapi;System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;$(DCC_Namespace)</DCC_Namespace>
104
+ <DllSuffix>_64$(DllSuffix)</DllSuffix>
73
105
  </PropertyGroup>
74
106
  <PropertyGroup Condition="'$(Cfg_1)'!=''">
107
+ <Defines>_DEBUG;$(Defines)</Defines>
75
108
  <BCC_OptimizeForSpeed>false</BCC_OptimizeForSpeed>
76
109
  <BCC_DisableOptimizations>true</BCC_DisableOptimizations>
77
110
  <DCC_Optimize>false</DCC_Optimize>
@@ -85,20 +118,25 @@
85
118
  <ILINK_FullDebugInfo>true</ILINK_FullDebugInfo>
86
119
  <TASM_Debugging>Full</TASM_Debugging>
87
120
  <BCC_SourceDebuggingOn>true</BCC_SourceDebuggingOn>
88
- <ILINK_LibraryPath>$(BDSLIB)\$(PLATFORM)\debug;$(ILINK_LibraryPath)</ILINK_LibraryPath>
89
121
  <ILINK_TranslatedLibraryPath>$(BDSLIB)\$(PLATFORM)\debug\$(LANGDIR);$(ILINK_TranslatedLibraryPath)</ILINK_TranslatedLibraryPath>
90
122
  </PropertyGroup>
91
- <PropertyGroup Condition="'$(Cfg_1_Win64)'!=''">
92
- </PropertyGroup>
93
123
  <PropertyGroup Condition="'$(Cfg_2)'!=''">
124
+ <Defines>NDEBUG;$(Defines)</Defines>
94
125
  <TASM_Debugging>None</TASM_Debugging>
95
126
  </PropertyGroup>
127
+ <PropertyGroup Condition="'$(Cfg_2_OSX32)'!=''">
128
+ <Icns_MainIcns>$(BDS)\bin\cbuilder_PROJECTICNS.icns</Icns_MainIcns>
129
+ </PropertyGroup>
130
+ <PropertyGroup Condition="'$(Cfg_2_Win32)'!=''">
131
+ </PropertyGroup>
96
132
  <PropertyGroup Condition="'$(Cfg_2_Win64)'!=''">
133
+ <VerInfo_IncludeVerInfo>true</VerInfo_IncludeVerInfo>
134
+ <VerInfo_Locale>1033</VerInfo_Locale>
97
135
  </PropertyGroup>
98
136
  <ItemGroup>
99
137
  <ResourceCompile Include="tdclc.rc">
100
- <Form>tdclc.res</Form>
101
- <BuildOrder>20</BuildOrder>
138
+ <Form>tdclc.res</Form>
139
+ <BuildOrder>20</BuildOrder>
102
140
  </ResourceCompile>
103
141
  <CppCompile Include="..\..\source\bzs\db\protocol\tdap\client\client.cpp">
104
142
  <DependentOn>..\..\source\bzs\db\protocol\tdap\client\Client.h</DependentOn>
@@ -187,9 +225,16 @@
187
225
  <ProjectProperties Name="AutoShowDeps">False</ProjectProperties>
188
226
  <ProjectProperties Name="ManagePaths">False</ProjectProperties>
189
227
  <ProjectProperties Name="VerifyPackages">True</ProjectProperties>
228
+ <ProjectProperties Name="IndexFiles">False</ProjectProperties>
190
229
  </ProjectProperties>
230
+ <Excluded_Packages>
231
+ <Excluded_Packages Name="$(BDSBIN)\bcboffice2k170.bpl">Embarcadero C++Builder Office 2000 サーバー パッケージ</Excluded_Packages>
232
+ <Excluded_Packages Name="$(BDSBIN)\bcbofficexp170.bpl">Embarcadero C++Builder Office XP サーバー パッケージ</Excluded_Packages>
233
+ </Excluded_Packages>
191
234
  </CPlusPlusBuilder.Personality>
192
235
  <Platforms>
236
+ <Platform value="OSX32">False</Platform>
237
+ <Platform value="Win32">True</Platform>
193
238
  <Platform value="Win64">True</Platform>
194
239
  </Platforms>
195
240
  </BorlandProject>
Binary file
@@ -32,9 +32,25 @@ include(../common/check_for_link_iconv.cmake)
32
32
  check_for_link_iconv()
33
33
 
34
34
 
35
+ # ==========================================================
36
+ # check project name and options
37
+ # ==========================================================
35
38
  get_filename_component(this_target "${CMAKE_CURRENT_SOURCE_DIR}" NAME)
36
- string(REPLACE tdclcpp "" TDCL_CPP_CHARSET "${this_target}")
39
+ string(TOLOWER "${this_target}" this_target)
37
40
  project(${this_target})
41
+ # m:multibyte u:unicode mr:multibyte-use_rtm
42
+ if("${this_target}" STREQUAL "tdclcppm")
43
+ set(TDCL_CPP_CHARSET m)
44
+ set(TDCL_CPP_USE_RUNTIME_LIBS OFF)
45
+ elseif("${this_target}" STREQUAL "tdclcppu")
46
+ set(TDCL_CPP_CHARSET u)
47
+ set(TDCL_CPP_USE_RUNTIME_LIBS OFF)
48
+ elseif("${this_target}" STREQUAL "tdclcppmr")
49
+ set(TDCL_CPP_CHARSET m)
50
+ set(TDCL_CPP_USE_RUNTIME_LIBS ON)
51
+ else()
52
+ message(ERROR "Invalid project name ${this_target}")
53
+ endif()
38
54
 
39
55
 
40
56
  # ==========================================================
@@ -66,30 +82,21 @@ transactd_read_build_number("${TRANSACTD_ROOT}")
66
82
  # ==========================================================
67
83
  tdcl_add_source_files("${TRANSACTD_ROOT}")
68
84
  tdcl_add_include_directory("${TRANSACTD_ROOT}")
69
- tdcl_add_compiler_options()
70
- if(MSVC)
71
- foreach(build_type "" "_RELEASE" "_DEBUG" "_RELWITHDEBINFO" "_MINSIZEREL")
72
- if("${TDCL_CPP_CHARSET}" STREQUAL "u")
73
- bz_set_UNICODE_cxx_flag("${build_type}")
74
- elseif("${TDCL_CPP_CHARSET}" STREQUAL "m")
75
- bz_set_MBCS_cxx_flag("${build_type}")
76
- endif()
77
- endforeach()
78
- endif()
79
85
 
80
86
 
81
87
  # ==========================================================
82
88
  # add resource file (for Windows Visual Studio)
83
89
  # ==========================================================
84
90
  if(WIN32)
85
- set(${this_target}_RC_FILE "${CMAKE_CURRENT_BINARY_DIR}/${this_target}.rc")
91
+ transactd_ver_info_lic()
92
+ set(${this_target}_RC_FILE "${CMAKE_CURRENT_BINARY_DIR}/tdclcpp.rc")
86
93
  transactd_generate_rc_file(
87
94
  TRANSACTD_ROOT "${TRANSACTD_ROOT}"
88
95
  OUTFILE "${${this_target}_RC_FILE}"
89
96
  F_VER "${TDVER_CPP_INTERFACE_VER_MAJOR}.${TDVER_CPP_INTERFACE_VER_MINOR}.${TDVER_CPP_INTERFACE_VER_RELEASE}.${TRANSACTD_BUILD_NUMBER}"
90
97
  P_VER "${TDVER_CPP_INTERFACE_VER_MAJOR}.${TDVER_CPP_INTERFACE_VER_MINOR}.${TDVER_CPP_INTERFACE_VER_RELEASE}.${TRANSACTD_BUILD_NUMBER}"
91
- P_NAME "Transactd CPP Client"
92
- F_DESC "Transactd CPP Client module"
98
+ P_NAME "Transactd Client ${TRANSACTD_VER_POSTFIX}"
99
+ F_DESC "Transactd C++ client"
93
100
  )
94
101
  transactd_add_rc_file()
95
102
  endif()
@@ -101,12 +108,56 @@ endif()
101
108
  add_library(${this_target} SHARED ${${this_target}_SOURCE_FILES})
102
109
 
103
110
 
111
+ # ==========================================================
112
+ # Add compile options
113
+ # ==========================================================
114
+ if(TDCL_CPP_USE_RUNTIME_LIBS)
115
+ transactd_set_MTMD("MD")
116
+ else()
117
+ transactd_set_MTMD("MT")
118
+ endif()
119
+
120
+
121
+ # ==========================================================
122
+ # Add compile definitions
123
+ # ==========================================================
124
+ if(MSVC)
125
+ set_property(TARGET ${this_target} PROPERTY COMPILE_DEFINITIONS
126
+ WIN32 _WIN32 _WINDOWS _USRDLL BOOST_ALL_NO_LIB
127
+ LIB_TDCLCPP TRDCL_AUTOLINK_OFF TRDCLENGN_EXPORTS _CRT_SECURE_NO_WARNINGS)
128
+ else()
129
+ set_property(TARGET ${this_target} PROPERTY COMPILE_DEFINITIONS
130
+ PIC BOOST_ALL_NO_LIB)
131
+ if(NOT MINGW)
132
+ set_property(TARGET ${this_target} APPEND PROPERTY COMPILE_DEFINITIONS
133
+ LINUX)
134
+ else()
135
+ set_property(TARGET ${this_target} APPEND PROPERTY COMPILE_DEFINITIONS
136
+ WIN32 _WIN32)
137
+ endif()
138
+ endif()
139
+ if(TRANSACTD_RUBY_GEM OR TRANSACTD_PHP)
140
+ set_property(TARGET ${this_target} APPEND PROPERTY COMPILE_DEFINITIONS
141
+ SWIG_BUILDING)
142
+ endif()
143
+ if("${TDCL_CPP_CHARSET}" STREQUAL "u")
144
+ set_property(TARGET ${this_target} APPEND PROPERTY COMPILE_DEFINITIONS
145
+ UNICODE _UNICODE)
146
+ else()
147
+ set_property(TARGET ${this_target} APPEND PROPERTY COMPILE_DEFINITIONS
148
+ _MBCS)
149
+ endif()
150
+
151
+
104
152
  # ==========================================================
105
153
  # add link / include
106
154
  # ==========================================================
107
155
  transactd_link_boost_libraries("filesystem;thread;chrono;system")
108
156
  if(CAN_LINK_ICONV)
109
- target_link_libraries(${this_target} iconv)
157
+ target_link_libraries(${this_target} "${ICONV_LIBRARY}")
158
+ endif()
159
+ if(NOT WIN32)
160
+ target_link_libraries(${this_target} dl)
110
161
  endif()
111
162
 
112
163
 
@@ -115,18 +166,27 @@ endif()
115
166
  # ==========================================================
116
167
  bz_get_compiler_bitness()
117
168
  if(WIN32)
118
- ## Windows tdclcpp[_Compiler]_[32|64][m|u]_[MAJOR]_[MINOR].dll
169
+ ## Windows tdclcpp[_Compiler]_[32|64][m|u|mr]_[MAJOR]_[MINOR].dll
119
170
  bz_get_compiler()
171
+ set(TDCL_CPP_NAME_TMP "tdclcpp${BZ_COMPILER}_${BZ_BITNESS}${TDCL_CPP_CHARSET}")
172
+ if(TDCL_CPP_USE_RUNTIME_LIBS)
173
+ set(TDCL_CPP_NAME_TMP "${TDCL_CPP_NAME_TMP}r")
174
+ endif()
120
175
  set_target_properties(${this_target} PROPERTIES PREFIX "")
121
176
  set_target_properties(${this_target} PROPERTIES OUTPUT_NAME
122
- "tdclcpp${BZ_COMPILER}_${BZ_BITNESS}${TDCL_CPP_CHARSET}_${TDVER_CPP_INTERFACE_VER_MAJOR}_${TDVER_CPP_INTERFACE_VER_MINOR}")
177
+ "${TDCL_CPP_NAME_TMP}_${TDVER_CPP_INTERFACE_VER_MAJOR}_${TDVER_CPP_INTERFACE_VER_MINOR}")
123
178
  set_target_properties(${this_target} PROPERTIES SUFFIX ".dll")
124
179
  else()
125
- ## Linux libtdclcpp_[32|64][m|u].so.[MAJOR].[MINOR]
180
+ ## Linux libtdclcpp_[32|64][m|u].so.[MAJOR].[MINOR].[RELEASE]
126
181
  set_target_properties(${this_target} PROPERTIES PREFIX "lib")
127
182
  set_target_properties(${this_target} PROPERTIES OUTPUT_NAME
128
183
  "tdclcpp_${BZ_BITNESS}${TDCL_CPP_CHARSET}")
129
- set_target_properties(${this_target} PROPERTIES SUFFIX ".so")
184
+ if(APPLE)
185
+ ## Apple libtdclcpp_[32|64][m|u].[MAJOR].[MINOR].[RELEASE].dylib
186
+ set_target_properties(${this_target} PROPERTIES SUFFIX ".dylib")
187
+ else()
188
+ set_target_properties(${this_target} PROPERTIES SUFFIX ".so")
189
+ endif()
130
190
  set_target_properties(${this_target} PROPERTIES
131
191
  SOVERSION ${TDVER_CPP_INTERFACE_VER_MAJOR}.${TDVER_CPP_INTERFACE_VER_MINOR}
132
192
  VERSION ${TDVER_CPP_INTERFACE_VER_MAJOR}.${TDVER_CPP_INTERFACE_VER_MINOR}.${TDVER_CPP_INTERFACE_VER_RELEASE})
@@ -137,6 +197,10 @@ endif()
137
197
  # set output directory
138
198
  # ==========================================================
139
199
  if(NOT COMMAND tdcl_set_output)
140
- include(../common/transactd_cl_output.cmake)
200
+ if(TRANSACTD_RUBY_GEM)
201
+ include(../tdclrb/gem_output.cmake)
202
+ else()
203
+ include(../common/transactd_cl_output.cmake)
204
+ endif()
141
205
  endif()
142
206
  tdcl_set_output("${TRANSACTD_BINARY_ROOT}" "${TRANSACTD_CLIENTS_PREFIX}")
Binary file