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
@@ -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