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.
- checksums.yaml +4 -4
- data/BUILD_UNIX-JA +46 -67
- data/BUILD_WIN-JA +106 -63
- data/CMakeLists.txt +40 -15
- data/README +219 -75
- data/README-JA +207 -76
- data/README_ORMSRCGEN +118 -0
- data/README_ORMSRCGEN-JA +115 -0
- data/bin/common/tdclc_32_2_0.dll +0 -0
- data/bin/common/tdclc_64_2_0.dll +0 -0
- data/build/common/check_for_link_iconv.cmake +18 -14
- data/build/common/create_symlink.cmake.in +25 -0
- data/build/common/get_boost_libs.cmake +23 -23
- data/build/common/options.cmake +0 -66
- data/build/common/smart_install.cmake +3 -3
- data/build/common/transactd.rc.in +15 -5
- data/build/common/transactd_cl_common.cmake +37 -18
- data/build/common/transactd_cl_output.cmake +55 -13
- data/build/common/transactd_common.cmake +108 -31
- data/build/swig/php/generate.cmake.in +15 -17
- data/build/swig/php/generate.cmd.in +15 -9
- data/build/swig/php/php.swg +124 -82
- data/build/swig/php/transactd.no_yield.php +4494 -0
- data/build/swig/php/transactd.no_yield.php.git.patch +685 -0
- data/build/swig/php/transactd.no_yield.php.patch +685 -0
- data/build/swig/php/transactd.yield.php +4461 -0
- data/build/swig/php/transactd.yield.php.git.patch +652 -0
- data/build/swig/php/transactd.yield.php.patch +652 -0
- data/build/swig/referencecounter.h +79 -0
- data/build/swig/ruby/ruby.swg +226 -76
- data/build/swig/ruby/threadBlockRegionWrapper.h +71 -0
- data/build/swig/ruby/without_gvl.swg +87 -0
- data/build/swig/tdcl.i +659 -170
- data/build/swig/validatablepointer.h +91 -0
- data/build/tdclc/CMakeLists.txt +49 -34
- data/build/tdclc/{tdclc_64.cbproj → tdclc.cbproj} +65 -20
- data/build/tdclc/tdclc.rc +0 -0
- data/build/tdclcpp/CMakeLists.txt +84 -20
- data/build/tdclcpp/tdclcpp.rc +0 -0
- data/build/tdclcpp/{tdclcpp_bcb_64.cbproj → tdclcpp_bc.cbproj} +168 -44
- data/build/tdclrb/CMakeLists.txt +84 -66
- data/build/tdclrb/bldgem/extconf.rb +28 -3
- data/build/tdclrb/gem/helper.rb +11 -1
- data/build/tdclrb/gem_output.cmake +20 -16
- data/index_ja.html +15 -0
- data/source/bzs/db/IBlobBuffer.h +15 -17
- data/source/bzs/db/blobBuffer.h +186 -140
- data/source/bzs/db/blobStructs.h +37 -37
- data/source/bzs/db/engine/mysql/IReadRecords.h +34 -34
- data/source/bzs/db/engine/mysql/bookmark.h +150 -147
- data/source/bzs/db/engine/mysql/database.cpp +1721 -1526
- data/source/bzs/db/engine/mysql/database.h +608 -370
- data/source/bzs/db/engine/mysql/dbManager.cpp +213 -201
- data/source/bzs/db/engine/mysql/dbManager.h +115 -104
- data/source/bzs/db/engine/mysql/errorMessage.cpp +49 -50
- data/source/bzs/db/engine/mysql/errorMessage.h +25 -26
- data/source/bzs/db/engine/mysql/fieldAccess.h +55 -61
- data/source/bzs/db/engine/mysql/mydebuglog.cpp +326 -292
- data/source/bzs/db/engine/mysql/mydebuglog.h +63 -55
- data/source/bzs/db/engine/mysql/mysqlInternal.h +182 -125
- data/source/bzs/db/engine/mysql/mysqlThd.cpp +121 -121
- data/source/bzs/db/engine/mysql/mysqlThd.h +20 -20
- data/source/bzs/db/engine/mysql/percentageKey.h +241 -228
- data/source/bzs/db/protocol/ICommandExecuter.h +18 -17
- data/source/bzs/db/protocol/hs/hsCommandExecuter.cpp +543 -514
- data/source/bzs/db/protocol/hs/hsCommandExecuter.h +155 -158
- data/source/bzs/db/protocol/tdap/btrDate.cpp +213 -180
- data/source/bzs/db/protocol/tdap/btrDate.h +39 -37
- data/source/bzs/db/protocol/tdap/client/activeTable.cpp +173 -0
- data/source/bzs/db/protocol/tdap/client/activeTable.h +165 -0
- data/source/bzs/db/protocol/tdap/client/activeTableImple.h +370 -0
- data/source/bzs/db/protocol/tdap/client/bulkInsert.h +13 -23
- data/source/bzs/db/protocol/tdap/client/client.cpp +81 -68
- data/source/bzs/db/protocol/tdap/client/client.h +361 -320
- data/source/bzs/db/protocol/tdap/client/connMgr.cpp +17 -22
- data/source/bzs/db/protocol/tdap/client/connMgr.h +17 -19
- data/source/bzs/db/protocol/tdap/client/connectionPool.cpp +243 -0
- data/source/bzs/db/protocol/tdap/client/connectionPool.h +109 -0
- data/source/bzs/db/protocol/tdap/client/database.cpp +327 -219
- data/source/bzs/db/protocol/tdap/client/database.h +141 -118
- data/source/bzs/db/protocol/tdap/client/databaseFactory.cpp +60 -62
- data/source/bzs/db/protocol/tdap/client/databaseManager.h +255 -0
- data/source/bzs/db/protocol/tdap/client/dbDef.cpp +315 -202
- data/source/bzs/db/protocol/tdap/client/dbDef.h +40 -32
- data/source/bzs/db/protocol/tdap/client/dllmain.cpp +390 -371
- data/source/bzs/db/protocol/tdap/client/errorMessage.cpp +148 -56
- data/source/bzs/db/protocol/tdap/client/errorMessage_ja.cpp +149 -57
- data/source/bzs/db/protocol/tdap/client/export.h +35 -0
- data/source/bzs/db/protocol/tdap/client/field.cpp +1985 -0
- data/source/bzs/db/protocol/tdap/client/field.h +393 -0
- data/source/bzs/db/protocol/tdap/client/fieldDDF.cpp +14 -14
- data/source/bzs/db/protocol/tdap/client/fieldDDF.h +11 -14
- data/source/bzs/db/protocol/tdap/client/fieldNameAlias.cpp +123 -0
- data/source/bzs/db/protocol/tdap/client/fieldNameAlias.h +58 -0
- data/source/bzs/db/protocol/tdap/client/fields.h +178 -0
- data/source/bzs/db/protocol/tdap/client/fileDDF.cpp +13 -16
- data/source/bzs/db/protocol/tdap/client/fileDDF.h +11 -17
- data/source/bzs/db/protocol/tdap/client/filter.h +423 -259
- data/source/bzs/db/protocol/tdap/client/groupComp.h +117 -0
- data/source/bzs/db/protocol/tdap/client/groupQuery.cpp +818 -0
- data/source/bzs/db/protocol/tdap/client/groupQuery.h +281 -0
- data/source/bzs/db/protocol/tdap/client/indexDDF.cpp +14 -17
- data/source/bzs/db/protocol/tdap/client/indexDDF.h +11 -14
- data/source/bzs/db/protocol/tdap/client/memRecord.cpp +231 -0
- data/source/bzs/db/protocol/tdap/client/memRecord.h +145 -0
- data/source/bzs/db/protocol/tdap/client/memRecordset.cpp +448 -0
- data/source/bzs/db/protocol/tdap/client/memRecordset.h +159 -0
- data/source/bzs/db/protocol/tdap/client/nsDatabase.cpp +300 -173
- data/source/bzs/db/protocol/tdap/client/nsDatabase.h +53 -36
- data/source/bzs/db/protocol/tdap/client/nsTable.cpp +171 -128
- data/source/bzs/db/protocol/tdap/client/nsTable.h +121 -87
- data/source/bzs/db/protocol/tdap/client/pooledDatabaseManager.h +173 -0
- data/source/bzs/db/protocol/tdap/client/recordset.cpp +209 -0
- data/source/bzs/db/protocol/tdap/client/recordset.h +86 -0
- data/source/bzs/db/protocol/tdap/client/recordsetImple.h +596 -0
- data/source/bzs/db/protocol/tdap/client/request.h +227 -170
- data/source/bzs/db/protocol/tdap/client/serializer.cpp +1288 -0
- data/source/bzs/db/protocol/tdap/client/serializer.h +295 -0
- data/source/bzs/db/protocol/tdap/client/sharedData.cpp +9 -12
- data/source/bzs/db/protocol/tdap/client/sharedData.h +18 -16
- data/source/bzs/db/protocol/tdap/client/sqlBuilder.cpp +494 -473
- data/source/bzs/db/protocol/tdap/client/sqlBuilder.h +51 -53
- data/source/bzs/db/protocol/tdap/client/stringConverter.h +214 -148
- data/source/bzs/db/protocol/tdap/client/table.cpp +929 -1665
- data/source/bzs/db/protocol/tdap/client/table.h +413 -87
- data/source/bzs/db/protocol/tdap/client/trdboostapi.h +642 -534
- data/source/bzs/db/protocol/tdap/client/trdboostapiInternal.h +25 -40
- data/source/bzs/db/protocol/tdap/client/trdclcppautolink.h +11 -15
- data/source/bzs/db/protocol/tdap/client/trdormapi.h +378 -437
- data/source/bzs/db/protocol/tdap/client/trnsctcl.def +1 -1
- data/source/bzs/db/protocol/tdap/fieldComp.h +127 -0
- data/source/bzs/db/protocol/tdap/myDateTime.cpp +352 -345
- data/source/bzs/db/protocol/tdap/mysql/characterset.cpp +75 -78
- data/source/bzs/db/protocol/tdap/mysql/characterset.h +18 -19
- data/source/bzs/db/protocol/tdap/mysql/databaseSchema.cpp +216 -199
- data/source/bzs/db/protocol/tdap/mysql/databaseSchema.h +23 -14
- data/source/bzs/db/protocol/tdap/mysql/debuglog.cpp +354 -314
- data/source/bzs/db/protocol/tdap/mysql/debuglog.h +57 -47
- data/source/bzs/db/protocol/tdap/mysql/recordsetReader.h +905 -739
- data/source/bzs/db/protocol/tdap/mysql/request.h +152 -159
- data/source/bzs/db/protocol/tdap/mysql/tdapCommandExecuter.cpp +1044 -879
- data/source/bzs/db/protocol/tdap/mysql/tdapCommandExecuter.h +87 -81
- data/source/bzs/db/protocol/tdap/tdapRequest.h +162 -130
- data/source/bzs/db/protocol/tdap/tdapSchema.cpp +368 -166
- data/source/bzs/db/protocol/tdap/tdapSchema.h +702 -566
- data/source/bzs/db/protocol/tdap/tdapcapi.h +387 -353
- data/source/bzs/db/transactd/appBuilderImple.h +21 -20
- data/source/bzs/db/transactd/appModule.cpp +350 -98
- data/source/bzs/db/transactd/appModule.h +31 -37
- data/source/bzs/db/transactd/connManager.cpp +138 -135
- data/source/bzs/db/transactd/connManager.h +28 -21
- data/source/bzs/db/transactd/connectionRecord.h +39 -39
- data/source/bzs/db/transactd/transactd.cpp +217 -203
- data/source/bzs/env/boost_bcb_link.h +131 -0
- data/source/bzs/env/compiler.h +136 -79
- data/source/bzs/env/crosscompile.cpp +57 -57
- data/source/bzs/env/crosscompile.h +130 -115
- data/source/bzs/env/fileopen.h +7 -8
- data/source/bzs/env/mbcswchrLinux.cpp +4 -9
- data/source/bzs/env/mbcswchrLinux.h +37 -34
- data/source/bzs/env/tcharMinGW.h +59 -0
- data/source/bzs/env/tstring.h +90 -95
- data/source/bzs/example/changeSchema.cpp +22 -23
- data/source/bzs/example/changeSchema_c.cpp +22 -24
- data/source/bzs/example/connection_pool_c.cpp +49 -104
- data/source/bzs/example/createDatabase.cpp +40 -47
- data/source/bzs/example/createDatabase_c.cpp +38 -43
- data/source/bzs/example/deleteRecords.cpp +10 -15
- data/source/bzs/example/deleteRecords_c.cpp +10 -14
- data/source/bzs/example/dropDatabase.cpp +3 -9
- data/source/bzs/example/dropDatabase_c.cpp +5 -6
- data/source/bzs/example/insertRecords.cpp +37 -29
- data/source/bzs/example/insertRecords_c.cpp +19 -25
- data/source/bzs/example/ormap_c.cpp +621 -0
- data/source/bzs/example/queryData.cpp +371 -0
- data/source/bzs/example/queryData.h +16 -0
- data/source/bzs/example/query_c.cpp +109 -0
- data/source/bzs/example/readRecords.cpp +27 -27
- data/source/bzs/example/readRecords_c.cpp +25 -23
- data/source/bzs/example/updateRecords.cpp +16 -21
- data/source/bzs/example/updateRecords_c.cpp +8 -12
- data/source/bzs/example/update_with_transaction.cpp +21 -24
- data/source/bzs/example/update_with_transaction_c.cpp +12 -15
- data/source/bzs/example/useORMRecord.cpp +177 -0
- data/source/bzs/netsvc/client/tcpClient.cpp +167 -156
- data/source/bzs/netsvc/client/tcpClient.h +541 -489
- data/source/bzs/netsvc/server/IAppModule.h +119 -32
- data/source/bzs/netsvc/server/iserver.h +21 -23
- data/source/bzs/netsvc/server/serverCpt.cpp +421 -391
- data/source/bzs/netsvc/server/serverCpt.h +41 -43
- data/source/bzs/netsvc/server/serverPipe.cpp +580 -565
- data/source/bzs/netsvc/server/serverPipe.h +44 -45
- data/source/bzs/netsvc/server/serverTpool.cpp +333 -303
- data/source/bzs/netsvc/server/serverTpool.h +38 -43
- data/source/bzs/rtl/benchmark.cpp +91 -31
- data/source/bzs/rtl/benchmark.h +76 -22
- data/source/bzs/rtl/datetime.cpp +231 -233
- data/source/bzs/rtl/datetime.h +16 -16
- data/source/bzs/rtl/debuglog.cpp +48 -51
- data/source/bzs/rtl/debuglog.h +55 -44
- data/source/bzs/rtl/exception.h +55 -48
- data/source/bzs/rtl/stl_uty.cpp +27 -28
- data/source/bzs/rtl/stl_uty.h +28 -29
- data/source/bzs/rtl/stringBuffers.cpp +8 -6
- data/source/bzs/rtl/stringBuffers.h +16 -9
- data/source/bzs/rtl/strtrim.cpp +90 -91
- data/source/bzs/rtl/strtrim.h +14 -16
- data/source/bzs/test/tdclatl/bench_query_atl.js +647 -0
- data/source/bzs/test/tdclatl/bench_tdclatl.js +303 -303
- data/source/bzs/test/tdclatl/test_query_atl.js +669 -0
- data/source/bzs/test/tdclphp/bench.php +357 -0
- data/source/bzs/test/tdclphp/transactd_Test.php +907 -303
- data/source/bzs/test/tdclphp/transactd_blob_Test.php +21 -49
- data/source/bzs/test/tdclphp/transactd_datetime_Test.php +41 -75
- data/source/bzs/test/tdclphp/transactd_kanjischema_Test.php +23 -37
- data/source/bzs/test/tdclphp/transactd_pool_Test.php +120 -0
- data/source/bzs/test/tdclrb/bench_tdclcpp.rb +4 -6
- data/source/bzs/test/tdclrb/prepare.rb +15 -12
- data/source/bzs/test/tdclrb/transactd_blob_spec.rb +29 -32
- data/source/bzs/test/tdclrb/transactd_datetime_spec.rb +0 -29
- data/source/bzs/test/tdclrb/transactd_kanjischema_spec.rb +18 -19
- data/source/bzs/test/tdclrb/transactd_pool_spec.rb +107 -0
- data/source/bzs/test/tdclrb/transactd_spec.rb +734 -142
- data/source/bzs/test/transactdBench/query_bench.cpp +156 -0
- data/source/bzs/test/transactdBench/scaling_bench.cpp +265 -0
- data/source/bzs/test/transactdBench/transactdBench.cpp +107 -83
- data/source/bzs/test/transactdBench/transactdBench2.cpp +122 -83
- data/source/bzs/test/transactdBench/workerBase.cpp +5 -0
- data/source/bzs/test/transactdBench/workerBase.h +88 -0
- data/source/bzs/test/transactdBench/workerMySQLImple.h +333 -0
- data/source/bzs/test/transactdBench/workerTransactdImple.h +201 -0
- data/source/bzs/test/trdclengn/test_blob.cpp +121 -73
- data/source/bzs/test/trdclengn/test_trdclengn.cpp +1244 -426
- data/source/global/ormsrcgen/confParam.h +80 -0
- data/source/global/ormsrcgen/fieldName.cpp +77 -0
- data/source/global/ormsrcgen/fieldName.h +43 -0
- data/source/global/ormsrcgen/main.cpp +196 -0
- data/source/global/ormsrcgen/srcgen.cpp +763 -0
- data/source/global/ormsrcgen/srcgen.h +72 -0
- data/source/global/ormsrcgen/template/fieldNameList_sample.txt +2 -0
- data/source/global/ormsrcgen/template/ormDataClass_template.cpp +48 -0
- data/source/global/ormsrcgen/template/ormDataClass_template.h +34 -0
- data/source/global/ormsrcgen/template/ormMapClass_template.cpp +51 -0
- data/source/global/ormsrcgen/template/ormMapClass_template.h +62 -0
- data/source/global/ormsrcgen/template/template.cnf +38 -0
- data/source/global/querystmts/querystmts.cpp +237 -0
- data/source/global/tdclatl/ConnectParams.cpp +77 -0
- data/source/global/tdclatl/ConnectParams.h +70 -0
- data/source/global/tdclatl/Database.cpp +132 -128
- data/source/global/tdclatl/Database.h +60 -49
- data/source/global/tdclatl/DbDef.cpp +68 -64
- data/source/global/tdclatl/DbDef.h +36 -36
- data/source/global/tdclatl/Field.cpp +12 -17
- data/source/global/tdclatl/Field.h +15 -12
- data/source/global/tdclatl/FieldDef.cpp +75 -36
- data/source/global/tdclatl/FieldDef.h +38 -19
- data/source/global/tdclatl/FieldDefs.cpp +74 -0
- data/source/global/tdclatl/FieldDefs.h +56 -0
- data/source/global/tdclatl/FieldNames.cpp +99 -0
- data/source/global/tdclatl/FieldNames.h +66 -0
- data/source/global/tdclatl/Flags.cpp +75 -37
- data/source/global/tdclatl/Flags.h +13 -12
- data/source/global/tdclatl/GroupQuery.cpp +119 -0
- data/source/global/tdclatl/GroupQuery.h +65 -0
- data/source/global/tdclatl/KeyDef.cpp +15 -14
- data/source/global/tdclatl/KeyDef.h +20 -17
- data/source/global/tdclatl/KeySegment.cpp +13 -12
- data/source/global/tdclatl/PooledDbManager.cpp +223 -0
- data/source/global/tdclatl/PooledDbManager.h +76 -0
- data/source/global/tdclatl/QueryBase.cpp +206 -127
- data/source/global/tdclatl/QueryBase.h +55 -59
- data/source/global/tdclatl/Record.cpp +214 -0
- data/source/global/tdclatl/Record.h +96 -0
- data/source/global/tdclatl/Recordset.cpp +278 -0
- data/source/global/tdclatl/Recordset.h +83 -0
- data/source/global/tdclatl/RecordsetQuery.cpp +118 -0
- data/source/global/tdclatl/RecordsetQuery.h +126 -0
- data/source/global/tdclatl/Table.cpp +57 -60
- data/source/global/tdclatl/Table.h +32 -29
- data/source/global/tdclatl/TableDef.cpp +63 -62
- data/source/global/tdclatl/TableDef.h +20 -22
- data/source/global/tdclatl/TdVersion.cpp +3 -3
- data/source/global/tdclatl/TdVersion.h +15 -11
- data/source/global/tdclatl/_IDatabaseEvents_CP.h +99 -92
- data/source/global/tdclatl/activeTable.cpp +355 -0
- data/source/global/tdclatl/activeTable.h +79 -0
- data/source/global/tdclatl/dllmain.cpp +4 -3
- data/source/global/tdclatl/dllmain.h +7 -6
- data/source/global/tdclatl/keySegment.h +22 -18
- data/source/global/tdclatl/resource.h +0 -0
- data/source/global/tdclatl/stdafx.h +6 -4
- data/source/global/tdclatl/targetver.h +0 -1
- data/source/global/tdclatl/tdclatl.cpp +10 -5
- data/source/global/tdclatl/tdclatl.idl +530 -14
- data/source/linux/charsetConvert.h +78 -79
- data/source/linux/linuxTypes.h +9 -12
- data/source/linux/tchar.h +168 -166
- data/transactd.gemspec +24 -16
- metadata +98 -12
- data/bin/common/tdclc_32_1_2.dll +0 -0
- data/bin/common/tdclc_64_1_2.dll +0 -0
- data/build/tdclc/tdclc_32.cbproj +0 -173
- data/build/tdclcpp/tdclcpp_bcb_32.cbproj +0 -232
- data/build/tdclrb/GEM_VERSION +0 -3
- data/source/bzs/db/protocol/tdap/client/filter.cpp +0 -43
- 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
|
data/build/tdclc/CMakeLists.txt
CHANGED
|
@@ -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
|
-
|
|
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
|
|
122
|
-
F_DESC "Transactd C
|
|
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
|
-
|
|
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(
|
|
139
|
-
target_link_libraries(${this_target}
|
|
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
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
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-
|
|
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
|
-
<
|
|
10
|
-
<
|
|
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
|
-
<
|
|
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>
|
|
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
|
-
<
|
|
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
|
-
|
|
101
|
-
|
|
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(
|
|
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
|
-
|
|
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
|
|
92
|
-
F_DESC "Transactd
|
|
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}
|
|
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
|
-
"
|
|
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
|
-
|
|
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
|
-
|
|
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
|