From dd70ff8bf32c2d7ed365004b1770058265db1978 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rg=20Frings-F=C3=BCrst?= Date: Sat, 11 Mar 2023 18:15:37 +0100 Subject: New upstream version 4.1.0 --- NEWS | 20 +- README | 2 +- build/borland5.5/CMakeLists.txt | 98 ++- build/cmake/CMakeLists.txt | 735 -------------------- build/cmake/copymake | 6 - build/debian/CMakeLists.txt | 761 +++++++++++++++++++++ build/debian/README.debian | 23 + build/linux32/CMakeLists.txt | 98 ++- build/linux64/CMakeLists.txt | 98 ++- build/mac64/CMakeLists.txt | 98 ++- build/win32vs/CMakeLists.txt | 98 ++- build/win64vs/CMakeLists.txt | 98 ++- docs/doxygen/html/classxb_1_1xbDate.html | 140 ++-- docs/doxygen/html/classxb_1_1xbDbf.html | 339 ++++++--- docs/doxygen/html/classxb_1_1xbFile.html | 232 ++++--- docs/doxygen/html/classxb_1_1xbSsv.html | 140 ++-- docs/doxygen/html/classxb_1_1xbString.html | 49 +- docs/doxygen/html/classxb_1_1xbTblMgr.html | 160 +++-- docs/doxygen/html/classxb_1_1xbXBase.html | 256 ++++--- .../html/dir_25b94c3afce00ed38231227d8141f932.html | 8 +- .../html/dir_313caf1132e152dd9b58bea13a4052ca.html | 8 +- .../html/dir_68267d1309a1af8e8297ef4c3efbcdba.html | 2 +- .../html/dir_aebb8dcc11953d78e620bbef0b9e2183.html | 4 +- .../html/dir_b0856f6b0d80ccb263b2f415c91f9e17.html | 4 +- .../html/dir_d93a1d4020dea85bb71b237545b5e722.html | 4 +- .../html/dir_e931c1a3f0014e624d0645a271726ad2.html | 6 +- docs/doxygen/html/files.html | 175 ++--- docs/doxygen/html/functions.html | 2 +- docs/doxygen/html/functions_func.html | 2 +- docs/doxygen/html/functions_func_g.html | 15 +- docs/doxygen/html/functions_func_p.html | 2 +- docs/doxygen/html/functions_func_s.html | 4 +- docs/doxygen/html/functions_g.html | 15 +- docs/doxygen/html/functions_p.html | 5 +- docs/doxygen/html/functions_s.html | 4 +- docs/doxygen/html/functions_vars.html | 1 + docs/doxygen/html/globals.html | 14 +- docs/doxygen/html/globals_defs.html | 3 + docs/doxygen/html/globals_func.html | 9 +- docs/doxygen/html/globals_vars.html | 2 + docs/doxygen/html/menudata.js | 2 + docs/doxygen/html/search/all_0.js | 2 +- docs/doxygen/html/search/all_10.js | 12 +- docs/doxygen/html/search/all_15.js | 430 ++++++------ docs/doxygen/html/search/all_6.js | 119 ++-- docs/doxygen/html/search/all_b.js | 6 +- docs/doxygen/html/search/all_e.js | 28 +- docs/doxygen/html/search/defines_3.js | 163 ++--- docs/doxygen/html/search/files_1.js | 165 ++--- docs/doxygen/html/search/functions_0.js | 2 +- docs/doxygen/html/search/functions_10.js | 12 +- docs/doxygen/html/search/functions_6.js | 119 ++-- docs/doxygen/html/search/functions_b.js | 2 +- docs/doxygen/html/search/functions_e.js | 23 +- docs/doxygen/html/search/searchdata.js | 2 +- docs/doxygen/html/search/variables_3.js | 6 +- docs/doxygen/html/search/variables_4.js | 7 +- docs/doxygen/html/search/variables_5.js | 5 +- docs/doxygen/html/search/variables_6.js | 4 +- docs/doxygen/html/search/variables_7.js | 5 +- docs/doxygen/html/search/variables_8.js | 9 +- docs/doxygen/html/search/variables_9.html | 37 + docs/doxygen/html/search/variables_9.js | 8 + docs/doxygen/html/structxb_1_1xbSchema.html | 2 +- docs/doxygen/html/structxb_1_1xbTblList.html | 18 +- docs/doxygen/html/tstfuncs_8cpp.html | 2 +- docs/doxygen/html/xb__cfg__check_8cpp.html | 2 +- docs/doxygen/html/xb__copydbf_8cpp.html | 54 +- docs/doxygen/html/xb__dbfutil_8cpp.html | 56 +- docs/doxygen/html/xb__deletall_8cpp.html | 54 +- docs/doxygen/html/xb__dumpdbt_8cpp.html | 54 +- docs/doxygen/html/xb__dumphdr_8cpp.html | 2 +- docs/doxygen/html/xb__dumpix_8cpp.html | 2 +- docs/doxygen/html/xb__dumprecs_8cpp.html | 54 +- docs/doxygen/html/xb__ex__date_8cpp.html | 2 +- docs/doxygen/html/xb__ex__expression_8cpp.html | 168 +++++ docs/doxygen/html/xb__ex__sql_8cpp.html | 2 +- docs/doxygen/html/xb__ex__ssv_8cpp.html | 117 ++++ docs/doxygen/html/xb__ex__string_8cpp.html | 2 +- .../doxygen/html/xb__ex__v3__create__dbf_8cpp.html | 2 +- docs/doxygen/html/xb__ex__v3__upd__dbf_8cpp.html | 2 +- .../doxygen/html/xb__ex__v4__create__dbf_8cpp.html | 2 +- docs/doxygen/html/xb__ex__v4__upd__dbf_8cpp.html | 2 +- docs/doxygen/html/xb__execsql_8cpp.html | 2 +- docs/doxygen/html/xb__pack_8cpp.html | 54 +- docs/doxygen/html/xb__tblinfo_8cpp.html | 54 +- docs/doxygen/html/xb__test__bcd_8cpp.html | 2 +- docs/doxygen/html/xb__test__blockread_8cpp.html | 147 ++++ .../html/xb__test__blockread__save_8cpp.html | 147 ++++ docs/doxygen/html/xb__test__date_8cpp.html | 2 +- .../html/xb__test__dbf__v3__memos_8cpp.html | 2 +- .../html/xb__test__dbf__v3__nomemos_8cpp.html | 2 +- .../html/xb__test__dbf__v4__memos_8cpp.html | 2 +- .../html/xb__test__dbf__v4__nomemos_8cpp.html | 2 +- docs/doxygen/html/xb__test__expnode_8cpp.html | 2 +- docs/doxygen/html/xb__test__expression_8cpp.html | 2 +- docs/doxygen/html/xb__test__file_8cpp.html | 2 +- docs/doxygen/html/xb__test__filter_8cpp.html | 2 +- docs/doxygen/html/xb__test__funcs_8cpp.html | 2 +- docs/doxygen/html/xb__test__linklist_8cpp.html | 2 +- docs/doxygen/html/xb__test__lock2_8cpp.html | 2 +- docs/doxygen/html/xb__test__lock_8cpp.html | 2 +- docs/doxygen/html/xb__test__log_8cpp.html | 2 +- docs/doxygen/html/xb__test__mdx_8cpp.html | 2 +- docs/doxygen/html/xb__test__ndx_8cpp.html | 2 +- docs/doxygen/html/xb__test__sql_8cpp.html | 2 +- docs/doxygen/html/xb__test__string_8cpp.html | 2 +- docs/doxygen/html/xb__test__tblmgr_8cpp.html | 2 +- docs/doxygen/html/xb__test__uda_8cpp.html | 2 +- docs/doxygen/html/xb__test__xbase_8cpp.html | 2 +- docs/doxygen/html/xb__undelall_8cpp.html | 54 +- docs/doxygen/html/xb__zap_8cpp.html | 2 +- docs/doxygen/html/xbalttbl_8cpp.html | 2 +- docs/doxygen/html/xbase_8h.html | 3 +- docs/doxygen/html/xbase_8h_source.html | 98 +-- docs/doxygen/html/xbbcd_8cpp.html | 2 +- docs/doxygen/html/xbbcd_8h.html | 2 +- docs/doxygen/html/xbbcd_8h_source.html | 2 +- docs/doxygen/html/xbblkread_8h.html | 89 +++ docs/doxygen/html/xbblkread_8h_source.html | 145 ++++ docs/doxygen/html/xbblockread_8cpp.html | 80 +++ docs/doxygen/html/xbcrix_8cpp.html | 2 +- docs/doxygen/html/xbcrtbl_8cpp.html | 2 +- docs/doxygen/html/xbcrtbl_8save_8cpp.html | 80 +++ docs/doxygen/html/xbdate_8cpp.html | 2 +- docs/doxygen/html/xbdate_8h.html | 2 +- docs/doxygen/html/xbdate_8h_source.html | 59 +- docs/doxygen/html/xbdbf3_8cpp.html | 2 +- docs/doxygen/html/xbdbf4_8cpp.html | 2 +- docs/doxygen/html/xbdbf_8cpp.html | 2 +- docs/doxygen/html/xbdbf_8h.html | 2 +- docs/doxygen/html/xbdbf_8h_source.html | 724 ++++++++++---------- docs/doxygen/html/xbdelete_8cpp.html | 2 +- docs/doxygen/html/xbdrpix_8cpp.html | 2 +- docs/doxygen/html/xbdrptbl_8cpp.html | 2 +- docs/doxygen/html/xbexp_8cpp.html | 2 +- docs/doxygen/html/xbexp_8h.html | 2 +- docs/doxygen/html/xbexp_8h_source.html | 2 +- docs/doxygen/html/xbexpnode_8cpp.html | 2 +- docs/doxygen/html/xbexpnode_8h.html | 2 +- docs/doxygen/html/xbexpnode_8h_source.html | 2 +- docs/doxygen/html/xbfields_8cpp.html | 2 +- docs/doxygen/html/xbfile_8cpp.html | 2 +- docs/doxygen/html/xbfile_8h.html | 2 +- docs/doxygen/html/xbfile_8h_source.html | 244 +++---- docs/doxygen/html/xbfilter_8cpp.html | 2 +- docs/doxygen/html/xbfilter_8h.html | 2 +- docs/doxygen/html/xbfilter_8h_source.html | 29 +- docs/doxygen/html/xbfuncs_8cpp.html | 2 +- docs/doxygen/html/xbindex_8h.html | 2 +- docs/doxygen/html/xbindex_8h_source.html | 2 +- docs/doxygen/html/xbinsert_8cpp.html | 2 +- docs/doxygen/html/xbixbase_8cpp.html | 2 +- docs/doxygen/html/xbixmdx_8cpp.html | 2 +- docs/doxygen/html/xbixndx_8cpp.html | 2 +- docs/doxygen/html/xblnklst_8h.html | 2 +- docs/doxygen/html/xblnklst_8h_source.html | 4 +- docs/doxygen/html/xblnklstord_8h.html | 2 +- docs/doxygen/html/xblnklstord_8h_source.html | 4 +- docs/doxygen/html/xblnknod_8h.html | 2 +- docs/doxygen/html/xblnknod_8h_source.html | 2 +- docs/doxygen/html/xblog_8cpp.html | 2 +- docs/doxygen/html/xblog_8h.html | 2 +- docs/doxygen/html/xblog_8h_source.html | 2 +- docs/doxygen/html/xbmemo3_8cpp.html | 2 +- docs/doxygen/html/xbmemo4_8cpp.html | 2 +- docs/doxygen/html/xbmemo_8cpp.html | 2 +- docs/doxygen/html/xbmemo_8h.html | 2 +- docs/doxygen/html/xbmemo_8h_source.html | 2 +- docs/doxygen/html/xbretcod_8h.html | 50 +- docs/doxygen/html/xbretcod_8h_source.html | 123 ++-- docs/doxygen/html/xbselect_8cpp.html | 80 +++ docs/doxygen/html/xbset_8cpp.html | 2 +- docs/doxygen/html/xbsql_8cpp.html | 2 +- docs/doxygen/html/xbsql_8h.html | 2 +- docs/doxygen/html/xbsql_8h_source.html | 170 +++-- docs/doxygen/html/xbssv_8cpp.html | 2 +- docs/doxygen/html/xbssv_8h.html | 2 +- docs/doxygen/html/xbssv_8h_source.html | 189 ++--- docs/doxygen/html/xbstmt_8cpp.html | 80 +++ docs/doxygen/html/xbstring_8cpp.html | 2 +- docs/doxygen/html/xbstring_8h.html | 2 +- docs/doxygen/html/xbstring_8h_source.html | 98 +-- docs/doxygen/html/xbtag_8cpp.html | 2 +- docs/doxygen/html/xbtag_8h.html | 2 +- docs/doxygen/html/xbtag_8h_source.html | 2 +- docs/doxygen/html/xbtblmgr_8cpp.html | 2 +- docs/doxygen/html/xbtblmgr_8h.html | 2 +- docs/doxygen/html/xbtblmgr_8h_source.html | 72 +- docs/doxygen/html/xbtypes_8h.html | 2 +- docs/doxygen/html/xbtypes_8h_source.html | 2 +- docs/doxygen/html/xbuda_8cpp.html | 2 +- docs/doxygen/html/xbuda_8h.html | 2 +- docs/doxygen/html/xbuda_8h_source.html | 8 +- docs/doxygen/html/xbxbase_8cpp.html | 2 +- docs/doxygen/html/xbxbase_8h.html | 2 +- docs/doxygen/html/xbxbase_8h_source.html | 154 +++-- docs/doxygen/latex/classxb_1_1xbDate.pdf | Bin 4739 -> 4739 bytes docs/doxygen/latex/classxb_1_1xbDate.tex | 68 +- docs/doxygen/latex/classxb_1_1xbDbf.pdf | Bin 4914 -> 4914 bytes docs/doxygen/latex/classxb_1_1xbDbf.tex | 139 +++- docs/doxygen/latex/classxb_1_1xbFile.pdf | Bin 4915 -> 4915 bytes docs/doxygen/latex/classxb_1_1xbFile.tex | 85 ++- docs/doxygen/latex/classxb_1_1xbSsv.pdf | Bin 6100 -> 6100 bytes docs/doxygen/latex/classxb_1_1xbSsv.tex | 68 +- docs/doxygen/latex/classxb_1_1xbString.tex | 30 +- docs/doxygen/latex/classxb_1_1xbTblMgr.pdf | Bin 5490 -> 5490 bytes docs/doxygen/latex/classxb_1_1xbTblMgr.tex | 80 ++- docs/doxygen/latex/classxb_1_1xbXBase.pdf | Bin 5492 -> 5492 bytes docs/doxygen/latex/classxb_1_1xbXBase.tex | 114 ++- .../latex/dir_25b94c3afce00ed38231227d8141f932.tex | 10 +- .../latex/dir_313caf1132e152dd9b58bea13a4052ca.tex | 10 +- .../latex/dir_68267d1309a1af8e8297ef4c3efbcdba.tex | 4 +- .../latex/dir_aebb8dcc11953d78e620bbef0b9e2183.tex | 6 +- .../latex/dir_b0856f6b0d80ccb263b2f415c91f9e17.tex | 6 +- .../latex/dir_d93a1d4020dea85bb71b237545b5e722.tex | 6 +- .../latex/dir_e931c1a3f0014e624d0645a271726ad2.tex | 8 +- docs/doxygen/latex/files.tex | 203 +++--- docs/doxygen/latex/refman.tex | 12 +- docs/doxygen/latex/structxb_1_1xbSchema.tex | 2 +- docs/doxygen/latex/structxb_1_1xbTblList.tex | 10 +- docs/doxygen/latex/tstfuncs_8cpp.tex | 4 +- docs/doxygen/latex/xb__cfg__check_8cpp.tex | 4 +- docs/doxygen/latex/xb__copydbf_8cpp.tex | 26 +- docs/doxygen/latex/xb__dbfutil_8cpp.tex | 26 +- docs/doxygen/latex/xb__deletall_8cpp.tex | 26 +- docs/doxygen/latex/xb__dumpdbt_8cpp.tex | 26 +- docs/doxygen/latex/xb__dumphdr_8cpp.tex | 4 +- docs/doxygen/latex/xb__dumpix_8cpp.tex | 4 +- docs/doxygen/latex/xb__dumprecs_8cpp.tex | 26 +- docs/doxygen/latex/xb__ex__date_8cpp.tex | 4 +- docs/doxygen/latex/xb__ex__expression_8cpp.tex | 51 ++ docs/doxygen/latex/xb__ex__sql_8cpp.tex | 4 +- docs/doxygen/latex/xb__ex__ssv_8cpp.tex | 17 + docs/doxygen/latex/xb__ex__string_8cpp.tex | 4 +- .../doxygen/latex/xb__ex__v3__create__dbf_8cpp.tex | 4 +- docs/doxygen/latex/xb__ex__v3__upd__dbf_8cpp.tex | 4 +- .../doxygen/latex/xb__ex__v4__create__dbf_8cpp.tex | 4 +- docs/doxygen/latex/xb__ex__v4__upd__dbf_8cpp.tex | 4 +- docs/doxygen/latex/xb__execsql_8cpp.tex | 4 +- docs/doxygen/latex/xb__pack_8cpp.tex | 26 +- docs/doxygen/latex/xb__tblinfo_8cpp.tex | 26 +- docs/doxygen/latex/xb__test__bcd_8cpp.tex | 4 +- docs/doxygen/latex/xb__test__blockread_8cpp.tex | 42 ++ .../latex/xb__test__blockread__save_8cpp.tex | 42 ++ docs/doxygen/latex/xb__test__date_8cpp.tex | 4 +- .../latex/xb__test__dbf__v3__memos_8cpp.tex | 4 +- .../latex/xb__test__dbf__v3__nomemos_8cpp.tex | 4 +- .../latex/xb__test__dbf__v4__memos_8cpp.tex | 4 +- .../latex/xb__test__dbf__v4__nomemos_8cpp.tex | 4 +- docs/doxygen/latex/xb__test__expnode_8cpp.tex | 4 +- docs/doxygen/latex/xb__test__expression_8cpp.tex | 4 +- docs/doxygen/latex/xb__test__file_8cpp.tex | 4 +- docs/doxygen/latex/xb__test__filter_8cpp.tex | 4 +- docs/doxygen/latex/xb__test__funcs_8cpp.tex | 4 +- docs/doxygen/latex/xb__test__linklist_8cpp.tex | 4 +- docs/doxygen/latex/xb__test__lock2_8cpp.tex | 4 +- docs/doxygen/latex/xb__test__lock_8cpp.tex | 4 +- docs/doxygen/latex/xb__test__log_8cpp.tex | 4 +- docs/doxygen/latex/xb__test__mdx_8cpp.tex | 4 +- docs/doxygen/latex/xb__test__ndx_8cpp.tex | 4 +- docs/doxygen/latex/xb__test__sql_8cpp.tex | 4 +- docs/doxygen/latex/xb__test__string_8cpp.tex | 4 +- docs/doxygen/latex/xb__test__tblmgr_8cpp.tex | 4 +- docs/doxygen/latex/xb__test__uda_8cpp.tex | 4 +- docs/doxygen/latex/xb__test__xbase_8cpp.tex | 4 +- docs/doxygen/latex/xb__undelall_8cpp.tex | 26 +- docs/doxygen/latex/xb__zap_8cpp.tex | 4 +- docs/doxygen/latex/xbalttbl_8cpp.tex | 4 +- docs/doxygen/latex/xbase_8h.tex | 5 +- docs/doxygen/latex/xbase_8h_source.tex | 97 +-- docs/doxygen/latex/xbbcd_8cpp.tex | 4 +- docs/doxygen/latex/xbbcd_8h.tex | 4 +- docs/doxygen/latex/xbbcd_8h_source.tex | 2 +- docs/doxygen/latex/xbblkread_8h.tex | 7 + docs/doxygen/latex/xbblkread_8h_source.tex | 69 ++ docs/doxygen/latex/xbblockread_8cpp.tex | 3 + docs/doxygen/latex/xbcrix_8cpp.tex | 4 +- docs/doxygen/latex/xbcrtbl_8cpp.tex | 4 +- docs/doxygen/latex/xbcrtbl_8save_8cpp.tex | 3 + docs/doxygen/latex/xbdate_8cpp.tex | 4 +- docs/doxygen/latex/xbdate_8h.tex | 4 +- docs/doxygen/latex/xbdate_8h_source.tex | 59 +- docs/doxygen/latex/xbdbf3_8cpp.tex | 4 +- docs/doxygen/latex/xbdbf4_8cpp.tex | 4 +- docs/doxygen/latex/xbdbf_8cpp.tex | 4 +- docs/doxygen/latex/xbdbf_8h.tex | 4 +- docs/doxygen/latex/xbdbf_8h_source.tex | 721 +++++++++---------- docs/doxygen/latex/xbdelete_8cpp.tex | 4 +- docs/doxygen/latex/xbdrpix_8cpp.tex | 4 +- docs/doxygen/latex/xbdrptbl_8cpp.tex | 4 +- docs/doxygen/latex/xbexp_8cpp.tex | 4 +- docs/doxygen/latex/xbexp_8h.tex | 4 +- docs/doxygen/latex/xbexp_8h_source.tex | 2 +- docs/doxygen/latex/xbexpnode_8cpp.tex | 4 +- docs/doxygen/latex/xbexpnode_8h.tex | 4 +- docs/doxygen/latex/xbexpnode_8h_source.tex | 2 +- docs/doxygen/latex/xbfields_8cpp.tex | 4 +- docs/doxygen/latex/xbfile_8cpp.tex | 4 +- docs/doxygen/latex/xbfile_8h.tex | 4 +- docs/doxygen/latex/xbfile_8h_source.tex | 242 +++---- docs/doxygen/latex/xbfilter_8cpp.tex | 4 +- docs/doxygen/latex/xbfilter_8h.tex | 4 +- docs/doxygen/latex/xbfilter_8h_source.tex | 28 +- docs/doxygen/latex/xbfuncs_8cpp.tex | 4 +- docs/doxygen/latex/xbindex_8h.tex | 4 +- docs/doxygen/latex/xbindex_8h_source.tex | 2 +- docs/doxygen/latex/xbinsert_8cpp.tex | 4 +- docs/doxygen/latex/xbixbase_8cpp.tex | 4 +- docs/doxygen/latex/xbixmdx_8cpp.tex | 4 +- docs/doxygen/latex/xbixndx_8cpp.tex | 4 +- docs/doxygen/latex/xblnklst_8h.tex | 4 +- docs/doxygen/latex/xblnklst_8h_source.tex | 2 +- docs/doxygen/latex/xblnklstord_8h.tex | 4 +- docs/doxygen/latex/xblnklstord_8h_source.tex | 2 +- docs/doxygen/latex/xblnknod_8h.tex | 4 +- docs/doxygen/latex/xblnknod_8h_source.tex | 2 +- docs/doxygen/latex/xblog_8cpp.tex | 4 +- docs/doxygen/latex/xblog_8h.tex | 4 +- docs/doxygen/latex/xblog_8h_source.tex | 2 +- docs/doxygen/latex/xbmemo3_8cpp.tex | 4 +- docs/doxygen/latex/xbmemo4_8cpp.tex | 4 +- docs/doxygen/latex/xbmemo_8cpp.tex | 4 +- docs/doxygen/latex/xbmemo_8h.tex | 4 +- docs/doxygen/latex/xbmemo_8h_source.tex | 2 +- docs/doxygen/latex/xbretcod_8h.tex | 28 +- docs/doxygen/latex/xbretcod_8h_source.tex | 123 ++-- docs/doxygen/latex/xbselect_8cpp.tex | 3 + docs/doxygen/latex/xbset_8cpp.tex | 4 +- docs/doxygen/latex/xbsql_8cpp.tex | 4 +- docs/doxygen/latex/xbsql_8h.tex | 4 +- docs/doxygen/latex/xbsql_8h_source.tex | 169 +++-- docs/doxygen/latex/xbssv_8cpp.tex | 4 +- docs/doxygen/latex/xbssv_8h.tex | 4 +- docs/doxygen/latex/xbssv_8h_source.tex | 185 ++--- docs/doxygen/latex/xbstmt_8cpp.tex | 3 + docs/doxygen/latex/xbstring_8cpp.tex | 4 +- docs/doxygen/latex/xbstring_8h.tex | 4 +- docs/doxygen/latex/xbstring_8h_source.tex | 98 +-- docs/doxygen/latex/xbtag_8cpp.tex | 4 +- docs/doxygen/latex/xbtag_8h.tex | 4 +- docs/doxygen/latex/xbtag_8h_source.tex | 2 +- docs/doxygen/latex/xbtblmgr_8cpp.tex | 4 +- docs/doxygen/latex/xbtblmgr_8h.tex | 4 +- docs/doxygen/latex/xbtblmgr_8h_source.tex | 63 +- docs/doxygen/latex/xbtypes_8h.tex | 4 +- docs/doxygen/latex/xbtypes_8h_source.tex | 2 +- docs/doxygen/latex/xbuda_8cpp.tex | 4 +- docs/doxygen/latex/xbuda_8h.tex | 4 +- docs/doxygen/latex/xbuda_8h_source.tex | 8 +- docs/doxygen/latex/xbxbase_8cpp.tex | 4 +- docs/doxygen/latex/xbxbase_8h.tex | 4 +- docs/doxygen/latex/xbxbase_8h_source.tex | 152 ++-- docs/html/index.html | 8 +- docs/html/xbac.html | 13 +- docs/html/xbae.html | 6 +- docs/html/xbc15.html | 127 ++-- docs/html/xbc16.html | 52 ++ docs/html/xbc17.html | 219 ++++++ docs/html/xbc18.html | 252 +++++++ docs/man/xb_cfg_chk.1.gz | Bin 0 -> 546 bytes docs/man/xb_copydbf.1.gz | Bin 0 -> 705 bytes docs/man/xb_dbfutil.1.gz | Bin 0 -> 633 bytes docs/man/xb_deletall.1.gz | Bin 0 -> 656 bytes docs/man/xb_dumpdbt.1.gz | Bin 0 -> 672 bytes docs/man/xb_dumprecs.1.gz | Bin 0 -> 691 bytes docs/man/xb_pack.1.gz | Bin 0 -> 697 bytes docs/man/xb_tblinfo.1.gz | Bin 0 -> 675 bytes docs/man/xb_undelall.1.gz | Bin 0 -> 690 bytes sql/jointest.sql | 43 ++ src/core/xbbcd.cpp | 5 +- src/core/xbblockread.cpp | 271 ++++++++ src/core/xbdbf.cpp | 154 ++++- src/core/xbdbf3.cpp | 8 +- src/core/xbdbf4.cpp | 19 +- src/core/xbexp.cpp | 31 +- src/core/xbfile.cpp | 286 ++++++-- src/core/xbfilter.cpp | 50 +- src/core/xbixmdx.cpp | 50 +- src/core/xbixndx.cpp | 3 +- src/core/xblog.cpp | 4 +- src/core/xbssv.cpp | 111 +-- src/core/xbstring.cpp | 71 +- src/core/xbtblmgr.cpp | 85 ++- src/core/xbxbase.cpp | 54 +- src/examples/xb_ex_expression.cpp | 4 +- src/examples/xb_ex_ssv.cpp | 134 ++++ src/examples/xb_ex_v4_upd_dbf.cpp | 6 +- src/include/xbase.h | 7 +- src/include/xbblkread.h | 70 ++ src/include/xbconfig.h.in | 2 + src/include/xbdate.h | 1 - src/include/xbdbf.h | 37 +- src/include/xbfile.h | 4 + src/include/xbfilter.h | 6 +- src/include/xbretcod.h | 5 +- src/include/xbsql.h | 78 ++- src/include/xbssv.h | 31 +- src/include/xbstring.h | 2 + src/include/xbtblmgr.h | 9 +- src/include/xbuda.h | 6 +- src/include/xbxbase.h | 10 +- src/sql/xbalttbl.cpp | 7 +- src/sql/xbcrix.cpp | 16 +- src/sql/xbcrtbl.cpp | 49 +- src/sql/xbcrtbl.save.cpp | 256 +++++++ src/sql/xbdelete.cpp | 2 +- src/sql/xbdrptbl.cpp | 9 +- src/sql/xbselect.cpp | 17 +- src/sql/xbset.cpp | 5 +- src/sql/xbsql.cpp | 3 - src/sql/xbstmt.cpp | 679 ++++++++++++++++++ src/tests/xb_test_bcd.cpp | 5 +- src/tests/xb_test_blockread.cpp | 168 +++++ src/tests/xb_test_date.cpp | 7 +- src/tests/xb_test_dbf_v3_memos.cpp | 4 +- src/tests/xb_test_dbf_v3_nomemos.cpp | 10 +- src/tests/xb_test_dbf_v4_memos.cpp | 10 +- src/tests/xb_test_dbf_v4_nomemos.cpp | 29 +- src/tests/xb_test_expnode.cpp | 4 +- src/tests/xb_test_expression.cpp | 7 +- src/tests/xb_test_file.cpp | 3 +- src/tests/xb_test_filter.cpp | 8 +- src/tests/xb_test_funcs.cpp | 3 +- src/tests/xb_test_linklist.cpp | 8 +- src/tests/xb_test_lock.cpp | 4 +- src/tests/xb_test_lock2.cpp | 5 +- src/tests/xb_test_log.cpp | 15 +- src/tests/xb_test_mdx.cpp | 70 +- src/tests/xb_test_ndx.cpp | 15 +- src/tests/xb_test_sql.cpp | 151 ++-- src/tests/xb_test_string.cpp | 11 +- src/tests/xb_test_tblmgr.cpp | 81 +-- src/tests/xb_test_uda.cpp | 9 +- src/tests/xb_test_xbase.cpp | 44 +- src/utils/xb_cfg_check.cpp | 84 ++- src/utils/xb_copydbf.cpp | 78 ++- src/utils/xb_dbfutil.cpp | 453 ++++++------ src/utils/xb_deletall.cpp | 54 +- src/utils/xb_dumpdbt.cpp | 54 +- src/utils/xb_dumphdr.cpp | 45 -- src/utils/xb_dumpix.cpp | 56 -- src/utils/xb_dumprecs.cpp | 60 +- src/utils/xb_execsql.cpp | 2 +- src/utils/xb_pack.cpp | 54 +- src/utils/xb_tblinfo.cpp | 105 +-- src/utils/xb_undelall.cpp | 53 +- src/utils/xb_zap.cpp | 52 -- 448 files changed, 11945 insertions(+), 5638 deletions(-) delete mode 100755 build/cmake/CMakeLists.txt delete mode 100755 build/cmake/copymake create mode 100755 build/debian/CMakeLists.txt create mode 100644 build/debian/README.debian create mode 100644 docs/doxygen/html/search/variables_9.html create mode 100644 docs/doxygen/html/search/variables_9.js create mode 100644 docs/doxygen/html/xb__ex__expression_8cpp.html create mode 100644 docs/doxygen/html/xb__ex__ssv_8cpp.html create mode 100644 docs/doxygen/html/xb__test__blockread_8cpp.html create mode 100644 docs/doxygen/html/xb__test__blockread__save_8cpp.html create mode 100644 docs/doxygen/html/xbblkread_8h.html create mode 100644 docs/doxygen/html/xbblkread_8h_source.html create mode 100644 docs/doxygen/html/xbblockread_8cpp.html create mode 100644 docs/doxygen/html/xbcrtbl_8save_8cpp.html create mode 100644 docs/doxygen/html/xbselect_8cpp.html create mode 100644 docs/doxygen/html/xbstmt_8cpp.html create mode 100644 docs/doxygen/latex/xb__ex__expression_8cpp.tex create mode 100644 docs/doxygen/latex/xb__ex__ssv_8cpp.tex create mode 100644 docs/doxygen/latex/xb__test__blockread_8cpp.tex create mode 100644 docs/doxygen/latex/xb__test__blockread__save_8cpp.tex create mode 100644 docs/doxygen/latex/xbblkread_8h.tex create mode 100644 docs/doxygen/latex/xbblkread_8h_source.tex create mode 100644 docs/doxygen/latex/xbblockread_8cpp.tex create mode 100644 docs/doxygen/latex/xbcrtbl_8save_8cpp.tex create mode 100644 docs/doxygen/latex/xbselect_8cpp.tex create mode 100644 docs/doxygen/latex/xbstmt_8cpp.tex create mode 100755 docs/html/xbc16.html create mode 100755 docs/html/xbc17.html create mode 100755 docs/html/xbc18.html create mode 100644 docs/man/xb_cfg_chk.1.gz create mode 100644 docs/man/xb_copydbf.1.gz create mode 100644 docs/man/xb_dbfutil.1.gz create mode 100644 docs/man/xb_deletall.1.gz create mode 100644 docs/man/xb_dumpdbt.1.gz create mode 100644 docs/man/xb_dumprecs.1.gz create mode 100644 docs/man/xb_pack.1.gz create mode 100644 docs/man/xb_tblinfo.1.gz create mode 100644 docs/man/xb_undelall.1.gz create mode 100755 sql/jointest.sql create mode 100755 src/core/xbblockread.cpp create mode 100755 src/examples/xb_ex_ssv.cpp create mode 100755 src/include/xbblkread.h create mode 100755 src/sql/xbcrtbl.save.cpp create mode 100755 src/sql/xbstmt.cpp create mode 100755 src/tests/xb_test_blockread.cpp delete mode 100755 src/utils/xb_dumphdr.cpp delete mode 100755 src/utils/xb_dumpix.cpp delete mode 100755 src/utils/xb_zap.cpp diff --git a/NEWS b/NEWS index 60fdc49..1dd9edd 100755 --- a/NEWS +++ b/NEWS @@ -1,7 +1,25 @@ -Xbase64 (Dec 26, 2022) +Xbase64 (Feb 1, 2023) ------------------------ +4.1.0 - 03/02/23 + +1) Created block read functionality, class xbBlockRead +2) SQL Updates - Started development of structures needed to support basic + SQL SELECT statement - SELECT f FROM t WHERE x=z ORDER BY o + Caveat: **** SQL support is still in development phase ****** +3) Updates to class xbTblMgr functionality +4) New method xbString::Pos( char c, xbUInt32 ulStartPos ) +5) Updated xb_cfg_check program +6) Added method xbDbf::GetHeaderLen() +7) Documentation updates +8) Updates to SQL Create Table logic +9) Updates to MDX create tag key length calculation +10) Updated default log file folder to $HOME/xbase64/logs +11) Updated default data file folder to $HOME/xbase64/data +12) Created initial round of man pages for utility programs +13) Created Debian specific build folder + 4.0.3 - 12/26/22 diff --git a/README b/README index bea1789..2005427 100755 --- a/README +++ b/README @@ -1,4 +1,4 @@ - Xbase64 Version 4.0.3 + Xbase64 Version 4.1.1 12/26/22 diff --git a/build/borland5.5/CMakeLists.txt b/build/borland5.5/CMakeLists.txt index 516b9c9..f514c5c 100755 --- a/build/borland5.5/CMakeLists.txt +++ b/build/borland5.5/CMakeLists.txt @@ -2,12 +2,13 @@ cmake_minimum_required(VERSION 3.0) project (xbase64) set( xbase_VERSION_MAJOR 4 ) -set( xbase_VERSION_MINOR 0 ) -set( xbase_VERSION_PATCH 3 ) +set( xbase_VERSION_MINOR 1 ) +set( xbase_VERSION_PATCH 0 ) MESSAGE( "--- Xbase build for: " ${CMAKE_SYSTEM_NAME} ) MESSAGE( "--- Compiler: " ${CMAKE_CXX_COMPILER_ID} ) MESSAGE( "--- Project Name: " ${CMAKE_PROJECT_NAME} ) +MESSAGE( "--- Install Prefix: " ${CMAKE_INSTALL_PREFIX} ) #Set compiler options @@ -152,42 +153,43 @@ IF( NOT ${iSize} EQUAL 8 ) ENDIF( NOT ${iSize} EQUAL 8 ) #Library options -option( BUILD_SHARED_LIBS "Build shared libraries?" ON) -option( XB_DEBUG_SUPPORT "Compile debug logic into library?" ON) -option( XB_UTILS_SUPPORT "Compile utility programs?" ON) -option( XB_EXAMPLES_SUPPORT "Compile example programs?" ON) -option( XB_MEMO_SUPPORT "Compile memo field support into library?" ON) -option( XB_LOGGING_SUPPORT "Compile message logging support into library" ON) +option( BUILD_SHARED_LIBS "Build shared libraries" ON) option( XB_DBF3_SUPPORT "Compile DBase File Format Version 3 support" ON) option( XB_DBF4_SUPPORT "Compile DBase File Format Version 4 support" ON) -option( XB_LINKLIST_SUPPORT "Compile Link List routines into library" ON) +option( XB_MEMO_SUPPORT "Compile memo field support into library" ON) +option( XB_NDX_SUPPORT "Compile NDX Index support into library" ON) +option( XB_MDX_SUPPORT "Compile MDX Index support into library" ON) option( XB_LOCKING_SUPPORT "Compile Multi User Locking support into library" ON) + +option( XB_LOGGING_SUPPORT "Compile message logging support into library" ON) +option( XB_LINKLIST_SUPPORT "Compile Link List routines into library" ON) option( XB_FUNCTION_SUPPORT "Compile XBase Function support into library" ON) option( XB_EXPRESSION_SUPPORT "Compile Expression support into library" ON) -option( XB_NDX_SUPPORT "Compile NDX Index support into library" ON) -option( XB_MDX_SUPPORT "Compile MDX Index support into library" ON) -option( XB_SQL_SUPPORT "Compile SQL support into library" ON) option( XB_INF_SUPPORT "Compile NDX INF file support into library" ON) option( XB_FILTER_SUPPORT "Compile Filter support into library" ON) - +option( XB_BLOCKREAD_SUPPORT "Compile Block Read support into library" ON) +option( XB_SQL_SUPPORT "Compile SQL support into library - alpha" ON) +option( XB_DEBUG_SUPPORT "Compile debug logic into library" ON) +option( XB_UTILS_SUPPORT "Compile utility programs" ON) +option( XB_EXAMPLES_SUPPORT "Compile example programs" ON) Message( "--- BUILD_SHARED_LIBS " ${BUILD_SHARED_LIBS}) -Message( "--- XB_MEMO_SUPPORT " ${XB_MEMO_SUPPORT}) -Message( "--- XB_DEBUG_SUPPORT " ${XB_DEBUG_SUPPORT}) -Message( "--- XB_UTILS_SUPPORT " ${XB_UTILS_SUPPORT}) -Message( "--- XB_EXAMPLES_SUPPORT " ${XB_EXAMPLES_SUPPORT}) -Message( "--- XB_LOGGING_SUPPORT " ${XB_LOGGING_SUPPORT}) Message( "--- XB_DBF3_SUPPORT " ${XB_DBF3_SUPPORT}) Message( "--- XB_DBF4_SUPPORT " ${XB_DBF4_SUPPORT}) -Message( "--- XB_LINKLIST_SUPPORT " ${XB_LINKLIST_SUPPORT}) +Message( "--- XB_MEMO_SUPPORT " ${XB_MEMO_SUPPORT}) +Message( "--- XB_NDX_SUPPORT " ${XB_NDX_SUPPORT}) +Message( "--- XB_MDX_SUPPORT " ${XB_MDX_SUPPORT}) Message( "--- XB_LOCKING_SUPPORT " ${XB_LOCKING_SUPPORT}) +Message( "--- XB_LINKLIST_SUPPORT " ${XB_LINKLIST_SUPPORT}) Message( "--- XB_FUNCTION_SUPPORT " ${XB_FUNCTION_SUPPORT}) Message( "--- XB_EXPRESSION_SUPPORT " ${XB_EXPRESSION_SUPPORT}) -Message( "--- XB_NDX_SUPPORT " ${XB_NDX_SUPPORT}) -Message( "--- XB_MDX_SUPPORT " ${XB_MDX_SUPPORT}) +Message( "--- XB_FILTER_SUPPORT " ${XB_FILTER_SUPPORT}) +Message( "--- XB_DEBUG_SUPPORT " ${XB_DEBUG_SUPPORT}) +Message( "--- XB_UTILS_SUPPORT " ${XB_UTILS_SUPPORT}) +Message( "--- XB_EXAMPLES_SUPPORT " ${XB_EXAMPLES_SUPPORT}) +Message( "--- XB_LOGGING_SUPPORT " ${XB_LOGGING_SUPPORT}) Message( "--- XB_SQL_SUPPORT " ${XB_SQL_SUPPORT}) Message( "--- XB_INF_SUPPORT " ${XB_INF_SUPPORT}) -Message( "--- XB_FILTER_SUPPORT " ${XB_FILTER_SUPPORT}) IF( XB_DEBUG_SUPPORT ) Message( "--- Adding debug support" ) @@ -218,6 +220,7 @@ CHECK_INCLUDE_FILES (ctype.h HAVE_CTYPE_H) CHECK_INCLUDE_FILES (dirent.h HAVE_DIRENT_H) CHECK_INCLUDE_FILES (fcntl.h HAVE_FCNTL_H) CHECK_INCLUDE_FILES (inttypes.h HAVE_INTTYPES_H) +CHECK_INCLUDE_FILES (pwd.h HAVE_PWD_H) CHECK_INCLUDE_FILES (stdarg.h HAVE_STDARG_H) CHECK_INCLUDE_FILES (stdargs.h HAVE_STDARGS_H) CHECK_INCLUDE_FILES (string.h HAVE_STRING_H) @@ -250,6 +253,8 @@ CHECK_FUNCTION_EXISTS(vsnprintf HAVE_VSNPRINTF_F) CHECK_FUNCTION_EXISTS(_vsnprintf_s HAVE__VSNPRINTF_S_F) +CHECK_FUNCTION_EXISTS(getopt HAVE_GETOPT_F) + IF( WIN32 ) # Use CHECK_SYMBOL_EXISTS for the Win32API instead of CHECK_FUNCTION_EXISTS @@ -261,8 +266,6 @@ INCLUDE( CheckSymbolExists ) CHECK_SYMBOL_EXISTS(CreateProcessW Windows.h HAVE_CREATEPROCESSW_F ) CHECK_SYMBOL_EXISTS(vsprintf_s stdio.h HAVE_VSPRINTF_S_F ) - - ENDIF ( WIN32 ) # IF( NOT HAVE_SENTENDOFFILE_F AND NOT HAVE_FTRUNCATE_F AND BORLAND ) @@ -300,7 +303,6 @@ set( EXTRA_LIBS ${EXTRA_LIBS} ${XB_LIBNAME}) - # Undo bad decisions IF( XB_PLATFORM_32 AND XB_LARGEFILE_SUPPORT ) MESSAGE( "--- Can't build 64 bit environment with a 32 bit compiler" ) @@ -353,6 +355,10 @@ IF( XB_FILTER_SUPPORT AND NOT XB_EXPRESSION_SUPPORT ) set( XB_EXPRESSION_SUPPORT ON CACHE BOOL "Compile Expression support into library" FORCE ) ENDIF( XB_FILTER_SUPPORT AND NOT XB_EXPRESSION_SUPPORT ) +IF( XB_SQL_SUPPORT AND NOT XB_BLOCKREAD_SUPPORT ) + MESSAGE( "--- BLOCKREAD support required for SQL. Setting to ON" ) + set( XB_BLOCKREAD_SUPPORT ON CACHE BOOL "Compile Block Read support into library" FORCE ) +ENDIF( XB_SQL_SUPPORT AND NOT XB_BLOCKREAD_SUPPORT ) # Build configuration header file @@ -445,6 +451,7 @@ IF( XB_SQL_SUPPORT ) set (SOURCES ${SOURCES} ${PROJECT_SOURCE_DIR}/sql/xbinsert.cpp ) set (SOURCES ${SOURCES} ${PROJECT_SOURCE_DIR}/sql/xbset.cpp ) set (SOURCES ${SOURCES} ${PROJECT_SOURCE_DIR}/sql/xbsql.cpp ) + set (SOURCES ${SOURCES} ${PROJECT_SOURCE_DIR}/sql/xbstmt.cpp ) set (SOURCES ${SOURCES} ${PROJECT_SOURCE_DIR}/sql/xbselect.cpp ) ENDIF( XB_SQL_SUPPORT ) @@ -453,6 +460,9 @@ IF( XB_FILTER_SUPPORT ) set (SOURCES ${SOURCES} ${PROJECT_SOURCE_DIR}/core/xbfilter.cpp ) ENDIF( XB_FILTER_SUPPORT ) +IF( XB_BLOCKREAD_SUPPORT ) + set (SOURCES ${SOURCES} ${PROJECT_SOURCE_DIR}/core/xbblockread.cpp ) +ENDIF( XB_BLOCKREAD_SUPPORT ) include( GenerateExportHeader ) @@ -593,6 +603,12 @@ target_link_libraries( xb_test_filter ${EXTRA_LIBS}) add_test( NAME xbFilter COMMAND xb_test_filter QUIET ) ENDIF( XB_FILTER_SUPPORT ) +IF( XB_BLOCKREAD_SUPPORT ) +add_executable( xb_test_blockread ${PROJECT_SOURCE_DIR}/tests/xb_test_blockread.cpp ) +target_link_libraries( xb_test_blockread ${EXTRA_LIBS}) +add_test( NAME xbBlockRead COMMAND xb_test_blockread QUIET ) +ENDIF( XB_BLOCKREAD_SUPPORT ) + IF( XB_LOCKING_SUPPORT ) add_executable( xb_test_lock ${PROJECT_SOURCE_DIR}/tests/xb_test_lock.cpp ) @@ -633,6 +649,8 @@ IF( XB_EXAMPLES_SUPPORT ) add_executable( xb_ex_v4_upd_dbf ${PROJECT_SOURCE_DIR}/examples/xb_ex_v4_upd_dbf.cpp ) target_link_libraries( xb_ex_v4_upd_dbf ${EXTRA_LIBS}) + add_executable( xb_ex_ssv ${PROJECT_SOURCE_DIR}/examples/xb_ex_ssv.cpp ) + target_link_libraries( xb_ex_ssv ${EXTRA_LIBS}) ENDIF( XB_EXAMPLES_SUPPORT ) @@ -654,13 +672,9 @@ IF( XB_UTILS_SUPPORT ) add_executable( xb_dumpdbt ${PROJECT_SOURCE_DIR}/utils/xb_dumpdbt.cpp ) target_link_libraries( xb_dumpdbt ${EXTRA_LIBS}) - add_executable( xb_dumphdr ${PROJECT_SOURCE_DIR}/utils/xb_dumphdr.cpp ) - target_link_libraries( xb_dumphdr ${EXTRA_LIBS}) - add_executable( xb_dumprecs ${PROJECT_SOURCE_DIR}/utils/xb_dumprecs.cpp ) target_link_libraries( xb_dumprecs ${EXTRA_LIBS}) - add_executable( xb_tblinfo ${PROJECT_SOURCE_DIR}/utils/xb_tblinfo.cpp ) target_link_libraries( xb_tblinfo ${EXTRA_LIBS}) @@ -675,20 +689,14 @@ IF( XB_UTILS_SUPPORT ) add_executable( xb_undelall ${PROJECT_SOURCE_DIR}/utils/xb_undelall.cpp ) target_link_libraries( xb_undelall ${EXTRA_LIBS}) - add_executable( xb_zap ${PROJECT_SOURCE_DIR}/utils/xb_zap.cpp ) - target_link_libraries( xb_zap ${EXTRA_LIBS}) - - install (TARGETS xb_cfg_check DESTINATION bin) install (TARGETS xb_copydbf DESTINATION bin) install (TARGETS xb_dbfutil DESTINATION bin) install (TARGETS xb_deletall DESTINATION bin) install (TARGETS xb_dumpdbt DESTINATION bin) - install (TARGETS xb_dumphdr DESTINATION bin) install (TARGETS xb_dumprecs DESTINATION bin) install (TARGETS xb_pack DESTINATION bin) install (TARGETS xb_undelall DESTINATION bin) - install (TARGETS xb_zap DESTINATION bin) IF( XB_SQL_SUPPORT ) install (TARGETS xb_execsql DESTINATION bin) ENDIF( XB_SQL_SUPPORT ) @@ -721,10 +729,28 @@ install (FILES include/xbconfig.h ${PROJECT_SOURCE_DIR}/include/xbuda.h ${PROJECT_SOURCE_DIR}/include/xbtag.h ${PROJECT_SOURCE_DIR}/include/xbfilter.h + ${PROJECT_SOURCE_DIR}/include/xbblkread.h + ${PROJECT_SOURCE_DIR}/include/xbsql.h + DESTINATION include/${CMAKE_PROJECT_NAME}) +IF( NOT WIN32 ) +install (FILES ${PROJECT_PARENT_DIR}/docs/man/xb_cfg_chk.1.gz + ${PROJECT_PARENT_DIR}/docs/man/xb_copydbf.1.gz + ${PROJECT_PARENT_DIR}/docs/man/xb_dbfutil.1.gz + ${PROJECT_PARENT_DIR}/docs/man/xb_deletall.1.gz + ${PROJECT_PARENT_DIR}/docs/man/xb_dumpdbt.1.gz + ${PROJECT_PARENT_DIR}/docs/man/xb_dumprecs.1.gz + ${PROJECT_PARENT_DIR}/docs/man/xb_pack.1.gz + ${PROJECT_PARENT_DIR}/docs/man/xb_tblinfo.1.gz + ${PROJECT_PARENT_DIR}/docs/man/xb_undelall.1.gz + + DESTINATION man/man1) + +ENDIF( NOT WIN32 ) + -SET_TARGET_PROPERTIES( ${XB_LIBNAME} PROPERTIES VERSION 4.0.3 SOVERSION 0 ) +SET_TARGET_PROPERTIES( ${XB_LIBNAME} PROPERTIES VERSION 4.1.0 SOVERSION 0 ) IF( EXISTS /usr/local/lib64 ) install (TARGETS ${XB_LIBNAME} DESTINATION lib64/${CMAKE_PROJECT_NAME}) diff --git a/build/cmake/CMakeLists.txt b/build/cmake/CMakeLists.txt deleted file mode 100755 index 516b9c9..0000000 --- a/build/cmake/CMakeLists.txt +++ /dev/null @@ -1,735 +0,0 @@ -cmake_minimum_required(VERSION 3.0) - -project (xbase64) -set( xbase_VERSION_MAJOR 4 ) -set( xbase_VERSION_MINOR 0 ) -set( xbase_VERSION_PATCH 3 ) - -MESSAGE( "--- Xbase build for: " ${CMAKE_SYSTEM_NAME} ) -MESSAGE( "--- Compiler: " ${CMAKE_CXX_COMPILER_ID} ) -MESSAGE( "--- Project Name: " ${CMAKE_PROJECT_NAME} ) - -#Set compiler options - -IF( CMAKE_COMPILER_IS_GNUCXX ) - MESSAGE( "Setting GNU compiler options" ) - add_compile_options( -Wall -Wsign-conversion ) -# add_compile_options( -Wall -Wconversion -Wsign-conversion ) - SET( VERBOSE 1 ) -ENDIF( CMAKE_COMPILER_IS_GNUCXX ) - -IF( BORLAND ) - MESSAGE ("BORLAND COMPILER" ) - #set( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -w-8022" ) - add_compile_options( -w-8022 ) -ENDIF( BORLAND ) - - -MESSAGE( "--- Checking integer sizes" ) -INCLUDE(CheckTypeSize) -CHECK_TYPE_SIZE( "short int" SHORT_INT ) -CHECK_TYPE_SIZE( int INT ) -CHECK_TYPE_SIZE( __int32 __INT32 ) -CHECK_TYPE_SIZE( int32_t INT32_T ) -CHECK_TYPE_SIZE( long LONG_INT ) -CHECK_TYPE_SIZE( __int64 __INT64 ) -CHECK_TYPE_SIZE( int64_t INT64_T ) -CHECK_TYPE_SIZE( "long long" LONG_LONG ) -CHECK_TYPE_SIZE( u_int64_t U_INT64_T ) -CHECK_TYPE_SIZE( uint64_t UINT64_T ) -CHECK_TYPE_SIZE( "unsigned __int64" UNSIGNED__INT64 ) -CHECK_TYPE_SIZE( "unsigned long long" UNSIGNED_LONG_LONG ) - -CHECK_TYPE_SIZE( "double" DOUBLE ) -MESSAGE( "--- Double size = " ${DOUBLE} ) - - -#determine how 16 bit integer defined on this platform -SET( iSize 0 ) -IF( HAVE_SHORT_INT AND ${SHORT_INT} EQUAL 2 ) - SET( xbInt16 "short int" ) - SET( xbUInt16 "unsigned short int" ) - SET( iSize ${SHORT_INT} ) - MESSAGE( "--- xbInt16 = [short int]" ) - MESSAGE( "--- xbUInt16 = [unsigned short int]" ) - -ENDIF( HAVE_SHORT_INT AND ${SHORT_INT} EQUAL 2 ) -IF( NOT ${iSize} EQUAL 2 ) - MESSAGE( "FATAL_ERROR Could not detect 16 bit integer type" ) - MESSAGE( ${iSize} ) - RETURN() -ENDIF( NOT ${iSize} EQUAL 2 ) - -#determine how 32 bit integer defined on this platform -SET( iSize 0 ) -IF( HAVE_INT AND ${INT} EQUAL 4 ) - SET( xbInt32 int ) - SET( xbUInt32 "unsigned int" ) - SET( iSize ${INT} ) - MESSAGE( "--- xbInt32 = [int]" ) - MESSAGE( "--- xbUInt32 = [unsigned int]" ) -ENDIF( HAVE_INT AND ${INT} EQUAL 4 ) - -IF(( NOT iSize EQUAL 4 ) AND HAVE___INT32 ) - MESSAGE( __int untested if block - see CMakeLists.txt) - SET( xbInt32 __int32 ) - SET( xbUInt32 "unsigned __int32" ) - SET( iSize ${__INT} ) - MESSAGE( "--- xbInt32 = [__int]" ) - MESSAGE( "--- xbUInt32 = [unsigned __int]" ) -ENDIF(( NOT iSize EQUAL 4 ) AND HAVE___INT32 ) - -IF(( NOT iSize EQUAL 4 ) AND HAVE_INT32_T ) - SET( xbInt32 int32_t ) - SET( xbUInt32 "u_int32_t" ) - SET( iSize ${INT32_T} ) - MESSAGE( "--- xbInt32 = [int32_t]" ) - MESSAGE( "--- xbUInt32 = [u_int32_t]" ) -ENDIF(( NOT iSize EQUAL 4 ) AND HAVE_INT32_T ) - -IF( NOT ${iSize} EQUAL 4 ) - MESSAGE( "FATAL_ERROR Could not detect 32 bit integer type" ) - MESSAGE( ${iSize} ) - RETURN() -ENDIF( NOT ${iSize} EQUAL 4 ) - -#determine how 64 bit integer defined on this platform -SET( iSize 0 ) -IF( HAVE___INT64 ) - SET( xbInt64 __int64 ) - SET( iSize ${__INT64} ) - MESSAGE( "--- xbInt64 = [__int64]" ) -ENDIF( HAVE___INT64 ) - -IF(( NOT iSize EQUAL 8 ) AND HAVE_INT64_T ) - SET( xbInt64 int64_t ) - SET( iSize ${INT64_T} ) - MESSAGE( "--- xbInt64 = [int64_t]" ) -ENDIF(( NOT iSize EQUAL 8 ) AND HAVE_INT64_T ) - -IF(( NOT iSize EQUAL 8 ) AND HAVE_LONG_LONG ) - SET( xbInt64 "long long" ) - SET( iSize ${LONG_LONG} ) - MESSAGE( "--- xbInt64 = [long long]" ) -ENDIF(( NOT iSize EQUAL 8 ) AND HAVE_LONG_LONG ) - -IF( NOT ${iSize} EQUAL 8 ) - MESSAGE( "FATAL_ERROR Could not detect 64 bit integer type" ) - MESSAGE( ${iSize} ) - RETURN() -ENDIF( NOT ${iSize} EQUAL 8 ) - -#determine how 64 bit unsigned integer defined on this platform -SET( iSize 0 ) -IF( HAVE_UNSIGNED__INT64 ) - SET( xbUInt64 "unsigned __int64" ) - SET( iSize ${UNSIGNED__INT64} ) - MESSAGE( "--- xbUInt64 = [unsigned __int64]" ) -ENDIF( HAVE_UNSIGNED__INT64 ) - -IF(( NOT iSize EQUAL 8 ) AND HAVE_UINT64_T ) - SET( xbUInt64 "uint64_t" ) - SET( iSize ${UINT64_T} ) - MESSAGE( "--- xbUInt64 = [uint64_t]" ) -ENDIF(( NOT iSize EQUAL 8 ) AND HAVE_UINT64_T ) - -IF(( NOT iSize EQUAL 8 ) AND HAVE_U_INT64_T ) - SET( xbUInt64 u_int64_t ) - SET( iSize ${U_INT64_T} ) - MESSAGE( "--- xbUInt64 = [u_int64_t]" ) -ENDIF(( NOT iSize EQUAL 8 ) AND HAVE_U_INT64_T ) - -IF(( NOT iSize EQUAL 8 ) AND HAVE_UNSIGNED_LONG_LONG ) - SET( xbUInt64 "unsigned long long" ) - SET( iSize ${UNSIGNED_LONG_LONG} ) - MESSAGE( "--- xbUInt64 = [unsigned long long]" ) -ENDIF(( NOT iSize EQUAL 8 ) AND HAVE_UNSIGNED_LONG_LONG ) - -IF( NOT ${iSize} EQUAL 8 ) - MESSAGE( "FATAL_ERROR Could not detect 64 bit unsigned integer type" ) - MESSAGE( ${iSize} ) - RETURN() -ENDIF( NOT ${iSize} EQUAL 8 ) - -#Library options -option( BUILD_SHARED_LIBS "Build shared libraries?" ON) -option( XB_DEBUG_SUPPORT "Compile debug logic into library?" ON) -option( XB_UTILS_SUPPORT "Compile utility programs?" ON) -option( XB_EXAMPLES_SUPPORT "Compile example programs?" ON) -option( XB_MEMO_SUPPORT "Compile memo field support into library?" ON) -option( XB_LOGGING_SUPPORT "Compile message logging support into library" ON) -option( XB_DBF3_SUPPORT "Compile DBase File Format Version 3 support" ON) -option( XB_DBF4_SUPPORT "Compile DBase File Format Version 4 support" ON) -option( XB_LINKLIST_SUPPORT "Compile Link List routines into library" ON) -option( XB_LOCKING_SUPPORT "Compile Multi User Locking support into library" ON) -option( XB_FUNCTION_SUPPORT "Compile XBase Function support into library" ON) -option( XB_EXPRESSION_SUPPORT "Compile Expression support into library" ON) -option( XB_NDX_SUPPORT "Compile NDX Index support into library" ON) -option( XB_MDX_SUPPORT "Compile MDX Index support into library" ON) -option( XB_SQL_SUPPORT "Compile SQL support into library" ON) -option( XB_INF_SUPPORT "Compile NDX INF file support into library" ON) -option( XB_FILTER_SUPPORT "Compile Filter support into library" ON) - - -Message( "--- BUILD_SHARED_LIBS " ${BUILD_SHARED_LIBS}) -Message( "--- XB_MEMO_SUPPORT " ${XB_MEMO_SUPPORT}) -Message( "--- XB_DEBUG_SUPPORT " ${XB_DEBUG_SUPPORT}) -Message( "--- XB_UTILS_SUPPORT " ${XB_UTILS_SUPPORT}) -Message( "--- XB_EXAMPLES_SUPPORT " ${XB_EXAMPLES_SUPPORT}) -Message( "--- XB_LOGGING_SUPPORT " ${XB_LOGGING_SUPPORT}) -Message( "--- XB_DBF3_SUPPORT " ${XB_DBF3_SUPPORT}) -Message( "--- XB_DBF4_SUPPORT " ${XB_DBF4_SUPPORT}) -Message( "--- XB_LINKLIST_SUPPORT " ${XB_LINKLIST_SUPPORT}) -Message( "--- XB_LOCKING_SUPPORT " ${XB_LOCKING_SUPPORT}) -Message( "--- XB_FUNCTION_SUPPORT " ${XB_FUNCTION_SUPPORT}) -Message( "--- XB_EXPRESSION_SUPPORT " ${XB_EXPRESSION_SUPPORT}) -Message( "--- XB_NDX_SUPPORT " ${XB_NDX_SUPPORT}) -Message( "--- XB_MDX_SUPPORT " ${XB_MDX_SUPPORT}) -Message( "--- XB_SQL_SUPPORT " ${XB_SQL_SUPPORT}) -Message( "--- XB_INF_SUPPORT " ${XB_INF_SUPPORT}) -Message( "--- XB_FILTER_SUPPORT " ${XB_FILTER_SUPPORT}) - -IF( XB_DEBUG_SUPPORT ) - Message( "--- Adding debug support" ) - set( CMAKE_BUILD_TYPE Debug ) -IF( CMAKE_COMPILER_IS_GNUCXX ) - add_compile_options( -Og ) -ENDIF( CMAKE_COMPILER_IS_GNUCXX ) -ENDIF( XB_DEBUG_SUPPORT ) - -IF( CMAKE_SIZEOF_VOID_P EQUAL 8 ) - MESSAGE( "--- 64 bit compiler detected" ) - set( XB_PLATFORM "x64" ) - set( XB_PLATFORM_64 1 ) - set( XB_LIBNAME "xbase64" ) - -ELSE( CMAKE_SIZEOF_VOID_P EQUAL 8 ) - MESSAGE( "--- 32 bit compiler detected" ) - set( XB_PLATFORM "x86" ) - set( XB_PLATFORM_32 1 ) - set( XB_LIBNAME "xbase32" ) - -ENDIF( CMAKE_SIZEOF_VOID_P EQUAL 8 ) - - -#Check for the existence of various header files -INCLUDE (CheckIncludeFiles) -CHECK_INCLUDE_FILES (ctype.h HAVE_CTYPE_H) -CHECK_INCLUDE_FILES (dirent.h HAVE_DIRENT_H) -CHECK_INCLUDE_FILES (fcntl.h HAVE_FCNTL_H) -CHECK_INCLUDE_FILES (inttypes.h HAVE_INTTYPES_H) -CHECK_INCLUDE_FILES (stdarg.h HAVE_STDARG_H) -CHECK_INCLUDE_FILES (stdargs.h HAVE_STDARGS_H) -CHECK_INCLUDE_FILES (string.h HAVE_STRING_H) -CHECK_INCLUDE_FILES (strings.h HAVE_STRINGS_H) -CHECK_INCLUDE_FILES (sys/stat.h HAVE_STAT_H) -CHECK_INCLUDE_FILES (unistd.h HAVE_UNISTD_H) -CHECK_INCLUDE_FILES (varargs.h HAVE_VARARGS_H) -CHECK_INCLUDE_FILES (windows.h HAVE_WINDOWS_H) - -#Check for the existence of various function calls -INCLUDE( CheckFunctionExists ) -CHECK_FUNCTION_EXISTS(_close HAVE__CLOSE_F) -CHECK_FUNCTION_EXISTS(fcntl HAVE_FCNTL_F) -CHECK_FUNCTION_EXISTS(_fdopen HAVE__FDOPEN_F) -CHECK_FUNCTION_EXISTS(fopen_s HAVE_FOPEN_S_F) -CHECK_FUNCTION_EXISTS(_fsopen HAVE__FSOPEN_F) -CHECK_FUNCTION_EXISTS(_fileno HAVE__FILENO_F) -CHECK_FUNCTION_EXISTS(fork HAVE_FORK_F) -CHECK_FUNCTION_EXISTS(_fseeki64 HAVE__FSEEKI64_F) -CHECK_FUNCTION_EXISTS(fseeko HAVE_FSEEKO_F) -CHECK_FUNCTION_EXISTS(ftruncate HAVE_FTRUNCATE_F) -CHECK_FUNCTION_EXISTS(_localtime64_s HAVE__LOCALTIME64_S_F) -CHECK_FUNCTION_EXISTS(LockFile HAVE_LOCKFILE_F) -CHECK_FUNCTION_EXISTS(locking HAVE_LOCKING_F) -CHECK_FUNCTION_EXISTS(_locking HAVE__LOCKING_F) -CHECK_FUNCTION_EXISTS(_open HAVE__OPEN_F) -CHECK_FUNCTION_EXISTS(SetEndOfFile HAVE_SETENDOFFILE_F) - -CHECK_FUNCTION_EXISTS(vsnprintf HAVE_VSNPRINTF_F) -CHECK_FUNCTION_EXISTS(_vsnprintf_s HAVE__VSNPRINTF_S_F) - - -IF( WIN32 ) - -# Use CHECK_SYMBOL_EXISTS for the Win32API instead of CHECK_FUNCTION_EXISTS -# Can't detect inline functions in headers -# Can't detect due to mismatch of calling conventions -# Can't detect mangled names - -INCLUDE( CheckSymbolExists ) -CHECK_SYMBOL_EXISTS(CreateProcessW Windows.h HAVE_CREATEPROCESSW_F ) -CHECK_SYMBOL_EXISTS(vsprintf_s stdio.h HAVE_VSPRINTF_S_F ) - - - -ENDIF ( WIN32 ) - -# IF( NOT HAVE_SENTENDOFFILE_F AND NOT HAVE_FTRUNCATE_F AND BORLAND ) -# # ----fix me---- -# # cmake CHECK_FUNCTION_EXISTS - could not find Borland 5.5 SetEndOfFile -# Set( HAVE_SETENDOFFILE_F "HAVE_SETENDOFFILE_H" ) -# ENDIF ( NOT HAVE_SENTENDOFFILE_F AND NOT HAVE_FTRUNCATE_F AND BORLAND ) - -IF( NOT HAVE_SETENDOFFILE_F AND NOT HAVE_FTRUNCATE_F AND WIN32 ) - # ----fix me---- - # cmake CHECK_FUNCTION_EXISTS - could not find Borland 5.5, or Windows VS 32 bit SetEndOfFile - Set( HAVE_SETENDOFFILE_F "HAVE_SETENDOFFILE_F" ) -ENDIF ( NOT HAVE_SETENDOFFILE_F AND NOT HAVE_FTRUNCATE_F AND WIN32 ) - -IF( XB_NDX_SUPPORT OR XB_MDX_SUPPORT ) - Set( XB_INDEX_SUPPORT "1" ) -ENDIF( XB_NDX_SUPPORT OR XB_MDX_SUPPORT ) - - -# Set directories -# PROJECT_PARENT_DIR is two nodes higher -get_filename_component( PROJECT_PARENT_DIR ${PROJECT_BINARY_DIR} DIRECTORY ) -get_filename_component( PROJECT_PARENT_DIR ${PROJECT_PARENT_DIR} DIRECTORY ) - -# MESSAGE( "PROJECT_PARENT_DIR = " ${PROJECT_PARENT_DIR} ) -# MESSAGE( "PROJECT_BINARY_DIR = " ${PROJECT_BINARY_DIR} ) - - -set( CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/bin/${XB_PLATFORM}) -set( LIBRARY_OUTPUT_PATH ${PROJECT_BINARY_DIR}/lib/${XB_PLATFORM}) -set( PROJECT_SOURCE_DIR ${PROJECT_PARENT_DIR}/src) -set( PROJECT_DATA_DIR ${PROJECT_PARENT_DIR}/data/) -set( PROJECT_LOG_DIR ${PROJECT_PARENT_DIR}/logs/) -set( EXTRA_LIBS ${EXTRA_LIBS} ${XB_LIBNAME}) - - - - -# Undo bad decisions -IF( XB_PLATFORM_32 AND XB_LARGEFILE_SUPPORT ) - MESSAGE( "--- Can't build 64 bit environment with a 32 bit compiler" ) - MESSAGE( "--- XB_LARGEFILE_SUPPORT set to OFF" ) - set( XB_LARGEFILE_SUPPORT OFF CACHE BOOL "Use 64 bit large file support?" FORCE ) -ENDIF ( XB_PLATFORM_32 AND XB_LARGEFILE_SUPPORT ) - -IF( NOT XB_DBF3_SUPPORT AND NOT XB_DBF4_SUPPORT ) - MESSAGE( "--- At lease one file format is required. Defaulting to Version 4" ) - set( XB_DBF4_SUPPORT ON CACHE BOOL "Compile DBase File Format Version 4 support" FORCE ) -ENDIF( NOT XB_DBF3_SUPPORT AND NOT XB_DBF4_SUPPORT ) - -IF( XB_DBF4_SUPPORT AND XB_MEMO_SUPPORT AND NOT XB_LINKLIST_SUPPORT ) - MESSAGE( "--- Link List support required for DBF V4 Memo files. Setting to ON" ) - set( XB_LINKLIST_SUPPORT ON CACHE BOOL "Compile Link List routines into library" FORCE ) -ENDIF( XB_DBF4_SUPPORT AND XB_MEMO_SUPPORT AND NOT XB_LINKLIST_SUPPORT ) - -IF( XB_LOCKING_SUPPORT AND NOT XB_LINKLIST_SUPPORT ) - MESSAGE( "--- Link List support required for locking functions. Setting to ON" ) - set( XB_LINKLIST_SUPPORT ON CACHE BOOL "Compile Link List routines into library" FORCE ) -ENDIF( XB_LOCKING_SUPPORT AND NOT XB_LINKLIST_SUPPORT ) - -IF( XB_INDEX_SUPPORT AND NOT XB_EXPRESSION_SUPPORT ) - MESSAGE( "--- Expression required for indices. Setting to ON" ) - set( XB_EXPRESSION_SUPPORT ON CACHE BOOL "Compile Expression support into library" FORCE ) -ENDIF( XB_INDEX_SUPPORT AND NOT XB_EXPRESSION_SUPPORT ) - -IF( XB_EXPRESSION_SUPPORT AND NOT XB_FUNCTION_SUPPORT ) - MESSAGE( "--- Function support required for expressions. Setting to ON" ) - set( XB_FUNCTION_SUPPORT ON CACHE BOOL "Compile XBase Function support into library" FORCE ) -ENDIF( XB_EXPRESSION_SUPPORT AND NOT XB_FUNCTION_SUPPORT ) - -IF( XB_EXPRESSION_SUPPORT AND NOT XB_LINKLIST_SUPPORT ) - MESSAGE( "--- Linklist support required for expressions. Setting to ON" ) - set( XB_LINKLIST_SUPPORT ON CACHE BOOL "Compile Link List routines into library" FORCE ) -ENDIF( XB_EXPRESSION_SUPPORT AND NOT XB_LINKLIST_SUPPORT ) - -IF( XB_SQL_SUPPORT AND NOT XB_MEMO_SUPPORT ) - MESSAGE( "--- Memo support required for SQL. Setting to ON" ) - set( XB_MEMO_SUPPORT ON CACHE BOOL "Compile memo field support into library" FORCE ) -ENDIF( XB_SQL_SUPPORT AND NOT XB_MEMO_SUPPORT ) - -IF( XB_SQL_SUPPORT AND NOT XB_DBF4_SUPPORT ) - MESSAGE( "--- DBF4 support required for SQL. Setting to ON" ) - set( XB_DBF4_SUPPORT ON CACHE BOOL "Compile DBase File Format Version 4 support" FORCE ) -ENDIF( XB_SQL_SUPPORT AND NOT XB_DBF4_SUPPORT ) - -IF( XB_FILTER_SUPPORT AND NOT XB_EXPRESSION_SUPPORT ) - MESSAGE( "--- Expression required for filters. Setting to ON" ) - set( XB_EXPRESSION_SUPPORT ON CACHE BOOL "Compile Expression support into library" FORCE ) -ENDIF( XB_FILTER_SUPPORT AND NOT XB_EXPRESSION_SUPPORT ) - - - -# Build configuration header file -configure_file ( - "${PROJECT_SOURCE_DIR}/include/xbconfig.h.in" - "${PROJECT_BINARY_DIR}/include/xbconfig.h" -) - -# Microsoft Windows settings -IF( WIN32 ) -# add_definitions( /D_CRT_SECURE_NO_WARNINGS) - add_definitions( /EHsc ) -ENDIF( WIN32 ) - - -# set up include directories -include_directories( "${PROJECT_BINARY_DIR}/include" ) -include_directories( "${PROJECT_SOURCE_DIR}/include" ) - -#build the library -IF ( BUILD_SHARED_LIBS ) - set( LIB_TYPE SHARED ) -ELSE( BUILD_SHARED_LIBS ) - set( LIB_TYPE STATIC ) -ENDIF( BUILD_SHARED_LIBS ) -MESSAGE( "--- Lib type " ${LIB_TYPE} ) - - - -set (SOURCES ${PROJECT_SOURCE_DIR}/core/xbstring.cpp - ${PROJECT_SOURCE_DIR}/core/xbssv.cpp - ${PROJECT_SOURCE_DIR}/core/xbdate.cpp - ${PROJECT_SOURCE_DIR}/core/xbtblmgr.cpp - ${PROJECT_SOURCE_DIR}/core/xbxbase.cpp - ${PROJECT_SOURCE_DIR}/core/xbfile.cpp - ${PROJECT_SOURCE_DIR}/core/xbdbf.cpp - ${PROJECT_SOURCE_DIR}/core/xbfields.cpp - ${PROJECT_SOURCE_DIR}/core/xblog.cpp) - -IF( XB_MEMO_SUPPORT ) - set (SOURCES ${SOURCES} ${PROJECT_SOURCE_DIR}/core/xbmemo.cpp ) -ENDIF( XB_MEMO_SUPPORT ) - -IF( XB_DBF3_SUPPORT ) - set (SOURCES ${SOURCES} ${PROJECT_SOURCE_DIR}/core/xbdbf3.cpp ) - IF( XB_MEMO_SUPPORT ) - set (SOURCES ${SOURCES} ${PROJECT_SOURCE_DIR}/core/xbmemo3.cpp ) - ENDIF( XB_MEMO_SUPPORT ) -ENDIF( XB_DBF3_SUPPORT ) - -IF( XB_DBF4_SUPPORT ) - set (SOURCES ${SOURCES} ${PROJECT_SOURCE_DIR}/core/xbdbf4.cpp ) - IF( XB_MEMO_SUPPORT ) - set (SOURCES ${SOURCES} ${PROJECT_SOURCE_DIR}/core/xbmemo4.cpp ) - ENDIF( XB_MEMO_SUPPORT ) -ENDIF( XB_DBF4_SUPPORT ) - -IF( XB_FUNCTION_SUPPORT ) - set (SOURCES ${SOURCES} ${PROJECT_SOURCE_DIR}/core/xbfuncs.cpp ) -ENDIF( XB_FUNCTION_SUPPORT ) - -IF( XB_EXPRESSION_SUPPORT ) - set (SOURCES ${SOURCES} ${PROJECT_SOURCE_DIR}/core/xbexpnode.cpp ) - set (SOURCES ${SOURCES} ${PROJECT_SOURCE_DIR}/core/xbexp.cpp ) - set (SOURCES ${SOURCES} ${PROJECT_SOURCE_DIR}/core/xbuda.cpp ) -ENDIF( XB_EXPRESSION_SUPPORT ) - -IF( XB_INDEX_SUPPORT ) - set (SOURCES ${SOURCES} ${PROJECT_SOURCE_DIR}/core/xbbcd.cpp ) - set (SOURCES ${SOURCES} ${PROJECT_SOURCE_DIR}/core/xbixbase.cpp ) - set (SOURCES ${SOURCES} ${PROJECT_SOURCE_DIR}/core/xbtag.cpp ) -ENDIF( XB_INDEX_SUPPORT ) - -IF( XB_NDX_SUPPORT ) - set (SOURCES ${SOURCES} ${PROJECT_SOURCE_DIR}/core/xbixndx.cpp ) -ENDIF( XB_NDX_SUPPORT ) - - -IF( XB_MDX_SUPPORT ) - set (SOURCES ${SOURCES} ${PROJECT_SOURCE_DIR}/core/xbixmdx.cpp ) -ENDIF( XB_MDX_SUPPORT ) - -IF( XB_SQL_SUPPORT ) - set (SOURCES ${SOURCES} ${PROJECT_SOURCE_DIR}/sql/xbalttbl.cpp ) - set (SOURCES ${SOURCES} ${PROJECT_SOURCE_DIR}/sql/xbcrix.cpp ) - set (SOURCES ${SOURCES} ${PROJECT_SOURCE_DIR}/sql/xbcrtbl.cpp ) - set (SOURCES ${SOURCES} ${PROJECT_SOURCE_DIR}/sql/xbdelete.cpp ) - set (SOURCES ${SOURCES} ${PROJECT_SOURCE_DIR}/sql/xbdrpix.cpp ) - set (SOURCES ${SOURCES} ${PROJECT_SOURCE_DIR}/sql/xbdrptbl.cpp ) - set (SOURCES ${SOURCES} ${PROJECT_SOURCE_DIR}/sql/xbinsert.cpp ) - set (SOURCES ${SOURCES} ${PROJECT_SOURCE_DIR}/sql/xbset.cpp ) - set (SOURCES ${SOURCES} ${PROJECT_SOURCE_DIR}/sql/xbsql.cpp ) - set (SOURCES ${SOURCES} ${PROJECT_SOURCE_DIR}/sql/xbselect.cpp ) -ENDIF( XB_SQL_SUPPORT ) - - -IF( XB_FILTER_SUPPORT ) - set (SOURCES ${SOURCES} ${PROJECT_SOURCE_DIR}/core/xbfilter.cpp ) -ENDIF( XB_FILTER_SUPPORT ) - - - -include( GenerateExportHeader ) -#add_library( xbase ${LIB_TYPE} ${SOURCES} ) -add_library( ${XB_LIBNAME} ${LIB_TYPE} ${SOURCES} ) -#add_library( ${CMAKE_PROJECT_NAME} ${LIB_TYPE} ${SOURCES} ) - - -IF( WIN32 ) -MESSAGE( "--- Generating Windows Library Headers" ) - -#GENERATE_EXPORT_HEADER( xbase -# BASE_NAME xbase - -GENERATE_EXPORT_HEADER( ${XB_LIBNAME} - BASE_NAME ${XB_LIBNAME} - EXPORT_MACRO_NAME xbase_EXPORT - EXPORT_FILE_NAME xbase_Export.h - STATIC_DEFINE xbase_BUILT_AS_STATIC -) -ENDIF( WIN32 ) - - -#build test programs -enable_testing() - -add_executable( xb_test_string ${PROJECT_SOURCE_DIR}/tests/xb_test_string.cpp ) -target_link_libraries( xb_test_string ${EXTRA_LIBS}) -add_test( NAME xbString COMMAND xb_test_string QUIET ) - -add_executable( xb_test_date ${PROJECT_SOURCE_DIR}/tests/xb_test_date.cpp ) -target_link_libraries( xb_test_date ${EXTRA_LIBS}) -add_test( NAME xbDate COMMAND xb_test_date QUIET ) - -add_executable( xb_test_tblmgr ${PROJECT_SOURCE_DIR}/tests/xb_test_tblmgr.cpp ) -target_link_libraries( xb_test_tblmgr ${EXTRA_LIBS}) -add_test( NAME xbTblMgr COMMAND xb_test_tblmgr QUIET ) - -add_executable( xb_test_xbase ${PROJECT_SOURCE_DIR}/tests/xb_test_xbase.cpp ) -target_link_libraries( xb_test_xbase ${EXTRA_LIBS}) -add_test( NAME xbXBase COMMAND xb_test_xbase QUIET ) - -add_executable( xb_test_file ${PROJECT_SOURCE_DIR}/tests/xb_test_file.cpp ) -target_link_libraries( xb_test_file ${EXTRA_LIBS}) -add_test( NAME xbFile COMMAND xb_test_file QUIET ) - -add_executable( xb_test_log ${PROJECT_SOURCE_DIR}/tests/xb_test_log.cpp ) -target_link_libraries( xb_test_log ${EXTRA_LIBS}) -add_test( NAME xbLog COMMAND xb_test_log QUIET ) - -IF( XB_LINKLIST_SUPPORT ) -add_executable( xb_test_linklist ${PROJECT_SOURCE_DIR}/tests/xb_test_linklist.cpp ) -target_link_libraries( xb_test_linklist ${EXTRA_LIBS}) -add_test( NAME xbLinkList COMMAND xb_test_linklist QUIET ) -ENDIF( XB_LINKLIST_SUPPORT ) - -IF( XB_DBF3_SUPPORT ) -add_executable( xb_test_dbf_v3_nomemos ${PROJECT_SOURCE_DIR}/tests/xb_test_dbf_v3_nomemos.cpp ) -target_link_libraries( xb_test_dbf_v3_nomemos ${EXTRA_LIBS}) -add_test( NAME xbDbfV3NoMemos COMMAND xb_test_dbf_v3_nomemos QUIET ) - -IF( XB_MEMO_SUPPORT ) -add_executable( xb_test_dbf_v3_memos ${PROJECT_SOURCE_DIR}/tests/xb_test_dbf_v3_memos.cpp ) -target_link_libraries( xb_test_dbf_v3_memos ${EXTRA_LIBS}) -add_test( NAME xbDbfV3Memos COMMAND xb_test_dbf_v3_memos QUIET ) - -ENDIF( XB_MEMO_SUPPORT ) -ENDIF( XB_DBF3_SUPPORT ) - -IF( XB_DBF4_SUPPORT ) -add_executable( xb_test_dbf_v4_nomemos ${PROJECT_SOURCE_DIR}/tests/xb_test_dbf_v4_nomemos.cpp ) -target_link_libraries( xb_test_dbf_v4_nomemos ${EXTRA_LIBS}) -add_test( NAME xbDbfV4NoMemos COMMAND xb_test_dbf_v4_nomemos QUIET ) - -IF( XB_MEMO_SUPPORT ) -add_executable( xb_test_dbf_v4_memos ${PROJECT_SOURCE_DIR}/tests/xb_test_dbf_v4_memos.cpp ) -target_link_libraries( xb_test_dbf_v4_memos ${EXTRA_LIBS}) -add_test( NAME xbDbfV4Memos COMMAND xb_test_dbf_v4_memos QUIET ) - -ENDIF( XB_MEMO_SUPPORT ) -ENDIF( XB_DBF4_SUPPORT ) - -IF( XB_FUNCTION_SUPPORT ) -add_executable( xb_test_funcs ${PROJECT_SOURCE_DIR}/tests/xb_test_funcs.cpp ) -target_link_libraries( xb_test_funcs ${EXTRA_LIBS}) -add_test( NAME xbFunctions COMMAND xb_test_funcs QUIET ) -ENDIF( XB_FUNCTION_SUPPORT ) - -IF( XB_NDX_SUPPORT ) -IF( XB_DBF3_SUPPORT ) -add_executable( xb_test_ndx ${PROJECT_SOURCE_DIR}/tests/xb_test_ndx.cpp ) -target_link_libraries( xb_test_ndx ${EXTRA_LIBS}) -add_test( NAME xbIxNdx COMMAND xb_test_ndx QUIET ) -ENDIF( XB_DBF3_SUPPORT ) -ENDIF( XB_NDX_SUPPORT ) - -IF( XB_MDX_SUPPORT ) -IF( XB_DBF4_SUPPORT ) -add_executable( xb_test_mdx ${PROJECT_SOURCE_DIR}/tests/xb_test_mdx.cpp ) -target_link_libraries( xb_test_mdx ${EXTRA_LIBS}) -add_test( NAME xbIxMdx COMMAND xb_test_mdx QUIET ) -ENDIF( XB_DBF4_SUPPORT ) -ENDIF( XB_MDX_SUPPORT ) - -IF( XB_INDEX_SUPPORT ) -add_executable( xb_test_bcd ${PROJECT_SOURCE_DIR}/tests/xb_test_bcd.cpp ) -target_link_libraries( xb_test_bcd ${EXTRA_LIBS}) -add_test( NAME xbBcd COMMAND xb_test_bcd QUIET ) -ENDIF( XB_INDEX_SUPPORT ) - - -IF( XB_EXPRESSION_SUPPORT ) - -add_executable( xb_test_expnode ${PROJECT_SOURCE_DIR}/tests/xb_test_expnode.cpp ) -target_link_libraries( xb_test_expnode ${EXTRA_LIBS}) -add_test( NAME xbExpNode COMMAND xb_test_expnode QUIET ) - - -add_executable( xb_test_expression ${PROJECT_SOURCE_DIR}/tests/xb_test_expression.cpp ) -target_link_libraries( xb_test_expression ${EXTRA_LIBS}) -add_test( NAME xbExpressions COMMAND xb_test_expression QUIET ) - -add_executable( xb_test_uda ${PROJECT_SOURCE_DIR}/tests/xb_test_uda.cpp ) -target_link_libraries( xb_test_uda ${EXTRA_LIBS}) -add_test( NAME xbUda COMMAND xb_test_uda QUIET ) - -ENDIF( XB_EXPRESSION_SUPPORT ) - -IF( XB_SQL_SUPPORT ) -add_executable( xb_test_sql ${PROJECT_SOURCE_DIR}/tests/xb_test_sql.cpp ) -target_link_libraries( xb_test_sql ${EXTRA_LIBS}) -add_test( NAME xbSql COMMAND xb_test_sql QUIET ) -ENDIF( XB_SQL_SUPPORT ) - -IF( XB_FILTER_SUPPORT ) -add_executable( xb_test_filter ${PROJECT_SOURCE_DIR}/tests/xb_test_filter.cpp ) -target_link_libraries( xb_test_filter ${EXTRA_LIBS}) -add_test( NAME xbFilter COMMAND xb_test_filter QUIET ) -ENDIF( XB_FILTER_SUPPORT ) - - -IF( XB_LOCKING_SUPPORT ) -add_executable( xb_test_lock ${PROJECT_SOURCE_DIR}/tests/xb_test_lock.cpp ) -target_link_libraries( xb_test_lock ${EXTRA_LIBS}) -add_test( NAME xbLock COMMAND xb_test_lock QUIET ) -IF( HAVE_CREATEPROCESSW_F ) -add_executable( xb_test_lock2 ${PROJECT_SOURCE_DIR}/tests/xb_test_lock2.cpp ) -target_link_libraries( xb_test_lock2 ${EXTRA_LIBS}) -ENDIF( HAVE_CREATEPROCESSW_F ) -ENDIF( XB_LOCKING_SUPPORT ) - -#build example programs -IF( XB_EXAMPLES_SUPPORT ) - add_executable( xb_ex_string ${PROJECT_SOURCE_DIR}/examples/xb_ex_string.cpp ) - target_link_libraries( xb_ex_string ${EXTRA_LIBS}) - - add_executable( xb_ex_date ${PROJECT_SOURCE_DIR}/examples/xb_ex_date.cpp ) - target_link_libraries( xb_ex_date ${EXTRA_LIBS}) - - IF( XB_DBF3_SUPPORT ) - add_executable( xb_ex_v3_create_dbf ${PROJECT_SOURCE_DIR}/examples/xb_ex_v3_create_dbf.cpp ) - target_link_libraries( xb_ex_v3_create_dbf ${EXTRA_LIBS}) - - add_executable( xb_ex_v3_upd_dbf ${PROJECT_SOURCE_DIR}/examples/xb_ex_v3_upd_dbf.cpp ) - target_link_libraries( xb_ex_v3_upd_dbf ${EXTRA_LIBS}) - ENDIF( XB_DBF3_SUPPORT ) - - IF( XB_DBF4_SUPPORT ) - add_executable( xb_ex_v4_create_dbf ${PROJECT_SOURCE_DIR}/examples/xb_ex_v4_create_dbf.cpp ) - target_link_libraries( xb_ex_v4_create_dbf ${EXTRA_LIBS}) - ENDIF( XB_DBF4_SUPPORT ) - - IF( XB_EXPRESSION_SUPPORT ) - add_executable( xb_ex_expression ${PROJECT_SOURCE_DIR}/examples/xb_ex_expression.cpp ) - target_link_libraries( xb_ex_expression ${EXTRA_LIBS}) - ENDIF( XB_EXPRESSION_SUPPORT ) - - add_executable( xb_ex_v4_upd_dbf ${PROJECT_SOURCE_DIR}/examples/xb_ex_v4_upd_dbf.cpp ) - target_link_libraries( xb_ex_v4_upd_dbf ${EXTRA_LIBS}) - - -ENDIF( XB_EXAMPLES_SUPPORT ) - -#build utility programs -IF( XB_UTILS_SUPPORT ) - - add_executable( xb_cfg_check ${PROJECT_SOURCE_DIR}/utils/xb_cfg_check.cpp ) - target_link_libraries( xb_cfg_check ${EXTRA_LIBS}) - - add_executable( xb_copydbf ${PROJECT_SOURCE_DIR}/utils/xb_copydbf.cpp ) - target_link_libraries( xb_copydbf ${EXTRA_LIBS}) - - add_executable( xb_dbfutil ${PROJECT_SOURCE_DIR}/utils/xb_dbfutil.cpp ) - target_link_libraries( xb_dbfutil ${EXTRA_LIBS}) - - add_executable( xb_deletall ${PROJECT_SOURCE_DIR}/utils/xb_deletall.cpp ) - target_link_libraries( xb_deletall ${EXTRA_LIBS}) - - add_executable( xb_dumpdbt ${PROJECT_SOURCE_DIR}/utils/xb_dumpdbt.cpp ) - target_link_libraries( xb_dumpdbt ${EXTRA_LIBS}) - - add_executable( xb_dumphdr ${PROJECT_SOURCE_DIR}/utils/xb_dumphdr.cpp ) - target_link_libraries( xb_dumphdr ${EXTRA_LIBS}) - - add_executable( xb_dumprecs ${PROJECT_SOURCE_DIR}/utils/xb_dumprecs.cpp ) - target_link_libraries( xb_dumprecs ${EXTRA_LIBS}) - - - add_executable( xb_tblinfo ${PROJECT_SOURCE_DIR}/utils/xb_tblinfo.cpp ) - target_link_libraries( xb_tblinfo ${EXTRA_LIBS}) - - IF( XB_SQL_SUPPORT ) - add_executable( xb_execsql ${PROJECT_SOURCE_DIR}/utils/xb_execsql.cpp ) - target_link_libraries( xb_execsql ${EXTRA_LIBS}) - ENDIF( XB_SQL_SUPPORT ) - - add_executable( xb_pack ${PROJECT_SOURCE_DIR}/utils/xb_pack.cpp ) - target_link_libraries( xb_pack ${EXTRA_LIBS}) - - add_executable( xb_undelall ${PROJECT_SOURCE_DIR}/utils/xb_undelall.cpp ) - target_link_libraries( xb_undelall ${EXTRA_LIBS}) - - add_executable( xb_zap ${PROJECT_SOURCE_DIR}/utils/xb_zap.cpp ) - target_link_libraries( xb_zap ${EXTRA_LIBS}) - - - install (TARGETS xb_cfg_check DESTINATION bin) - install (TARGETS xb_copydbf DESTINATION bin) - install (TARGETS xb_dbfutil DESTINATION bin) - install (TARGETS xb_deletall DESTINATION bin) - install (TARGETS xb_dumpdbt DESTINATION bin) - install (TARGETS xb_dumphdr DESTINATION bin) - install (TARGETS xb_dumprecs DESTINATION bin) - install (TARGETS xb_pack DESTINATION bin) - install (TARGETS xb_undelall DESTINATION bin) - install (TARGETS xb_zap DESTINATION bin) - IF( XB_SQL_SUPPORT ) - install (TARGETS xb_execsql DESTINATION bin) - ENDIF( XB_SQL_SUPPORT ) - - - -ENDIF( XB_UTILS_SUPPORT ) - -install (FILES include/xbconfig.h - ${PROJECT_SOURCE_DIR}/include/xbase.h - ${PROJECT_SOURCE_DIR}/include/xbbcd.h - ${PROJECT_SOURCE_DIR}/include/xbdate.h - ${PROJECT_SOURCE_DIR}/include/xbdbf.h - ${PROJECT_SOURCE_DIR}/include/xbexp.h - ${PROJECT_SOURCE_DIR}/include/xbexpnode.h - ${PROJECT_SOURCE_DIR}/include/xbfile.h - ${PROJECT_SOURCE_DIR}/include/xbindex.h - ${PROJECT_SOURCE_DIR}/include/xblnklst.h - ${PROJECT_SOURCE_DIR}/include/xblnklstord.h - ${PROJECT_SOURCE_DIR}/include/xblnknod.h - ${PROJECT_SOURCE_DIR}/include/xblog.h - ${PROJECT_SOURCE_DIR}/include/xbmemo.h - ${PROJECT_SOURCE_DIR}/include/xbretcod.h - ${PROJECT_SOURCE_DIR}/include/xbsql.h - ${PROJECT_SOURCE_DIR}/include/xbssv.h - ${PROJECT_SOURCE_DIR}/include/xbstring.h - ${PROJECT_SOURCE_DIR}/include/xbtblmgr.h - ${PROJECT_SOURCE_DIR}/include/xbtypes.h - ${PROJECT_SOURCE_DIR}/include/xbxbase.h - ${PROJECT_SOURCE_DIR}/include/xbuda.h - ${PROJECT_SOURCE_DIR}/include/xbtag.h - ${PROJECT_SOURCE_DIR}/include/xbfilter.h - DESTINATION include/${CMAKE_PROJECT_NAME}) - - -SET_TARGET_PROPERTIES( ${XB_LIBNAME} PROPERTIES VERSION 4.0.3 SOVERSION 0 ) - -IF( EXISTS /usr/local/lib64 ) -install (TARGETS ${XB_LIBNAME} DESTINATION lib64/${CMAKE_PROJECT_NAME}) -ELSE( EXISTS /usr/local/lib64 ) -install (TARGETS ${XB_LIBNAME} DESTINATION lib/${CMAKE_PROJECT_NAME}) -ENDIF( EXISTS /usr/local/lib64 ) - - diff --git a/build/cmake/copymake b/build/cmake/copymake deleted file mode 100755 index e692f68..0000000 --- a/build/cmake/copymake +++ /dev/null @@ -1,6 +0,0 @@ -cp CMakeLists.txt ../linux32 -cp CMakeLists.txt ../linux64 -cp CMakeLists.txt ../mac64 -cp CMakeLists.txt ../borland5.5 -cp CMakeLists.txt ../win32vs -cp CMakeLists.txt ../win64vs diff --git a/build/debian/CMakeLists.txt b/build/debian/CMakeLists.txt new file mode 100755 index 0000000..f514c5c --- /dev/null +++ b/build/debian/CMakeLists.txt @@ -0,0 +1,761 @@ +cmake_minimum_required(VERSION 3.0) + +project (xbase64) +set( xbase_VERSION_MAJOR 4 ) +set( xbase_VERSION_MINOR 1 ) +set( xbase_VERSION_PATCH 0 ) + +MESSAGE( "--- Xbase build for: " ${CMAKE_SYSTEM_NAME} ) +MESSAGE( "--- Compiler: " ${CMAKE_CXX_COMPILER_ID} ) +MESSAGE( "--- Project Name: " ${CMAKE_PROJECT_NAME} ) +MESSAGE( "--- Install Prefix: " ${CMAKE_INSTALL_PREFIX} ) + +#Set compiler options + +IF( CMAKE_COMPILER_IS_GNUCXX ) + MESSAGE( "Setting GNU compiler options" ) + add_compile_options( -Wall -Wsign-conversion ) +# add_compile_options( -Wall -Wconversion -Wsign-conversion ) + SET( VERBOSE 1 ) +ENDIF( CMAKE_COMPILER_IS_GNUCXX ) + +IF( BORLAND ) + MESSAGE ("BORLAND COMPILER" ) + #set( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -w-8022" ) + add_compile_options( -w-8022 ) +ENDIF( BORLAND ) + + +MESSAGE( "--- Checking integer sizes" ) +INCLUDE(CheckTypeSize) +CHECK_TYPE_SIZE( "short int" SHORT_INT ) +CHECK_TYPE_SIZE( int INT ) +CHECK_TYPE_SIZE( __int32 __INT32 ) +CHECK_TYPE_SIZE( int32_t INT32_T ) +CHECK_TYPE_SIZE( long LONG_INT ) +CHECK_TYPE_SIZE( __int64 __INT64 ) +CHECK_TYPE_SIZE( int64_t INT64_T ) +CHECK_TYPE_SIZE( "long long" LONG_LONG ) +CHECK_TYPE_SIZE( u_int64_t U_INT64_T ) +CHECK_TYPE_SIZE( uint64_t UINT64_T ) +CHECK_TYPE_SIZE( "unsigned __int64" UNSIGNED__INT64 ) +CHECK_TYPE_SIZE( "unsigned long long" UNSIGNED_LONG_LONG ) + +CHECK_TYPE_SIZE( "double" DOUBLE ) +MESSAGE( "--- Double size = " ${DOUBLE} ) + + +#determine how 16 bit integer defined on this platform +SET( iSize 0 ) +IF( HAVE_SHORT_INT AND ${SHORT_INT} EQUAL 2 ) + SET( xbInt16 "short int" ) + SET( xbUInt16 "unsigned short int" ) + SET( iSize ${SHORT_INT} ) + MESSAGE( "--- xbInt16 = [short int]" ) + MESSAGE( "--- xbUInt16 = [unsigned short int]" ) + +ENDIF( HAVE_SHORT_INT AND ${SHORT_INT} EQUAL 2 ) +IF( NOT ${iSize} EQUAL 2 ) + MESSAGE( "FATAL_ERROR Could not detect 16 bit integer type" ) + MESSAGE( ${iSize} ) + RETURN() +ENDIF( NOT ${iSize} EQUAL 2 ) + +#determine how 32 bit integer defined on this platform +SET( iSize 0 ) +IF( HAVE_INT AND ${INT} EQUAL 4 ) + SET( xbInt32 int ) + SET( xbUInt32 "unsigned int" ) + SET( iSize ${INT} ) + MESSAGE( "--- xbInt32 = [int]" ) + MESSAGE( "--- xbUInt32 = [unsigned int]" ) +ENDIF( HAVE_INT AND ${INT} EQUAL 4 ) + +IF(( NOT iSize EQUAL 4 ) AND HAVE___INT32 ) + MESSAGE( __int untested if block - see CMakeLists.txt) + SET( xbInt32 __int32 ) + SET( xbUInt32 "unsigned __int32" ) + SET( iSize ${__INT} ) + MESSAGE( "--- xbInt32 = [__int]" ) + MESSAGE( "--- xbUInt32 = [unsigned __int]" ) +ENDIF(( NOT iSize EQUAL 4 ) AND HAVE___INT32 ) + +IF(( NOT iSize EQUAL 4 ) AND HAVE_INT32_T ) + SET( xbInt32 int32_t ) + SET( xbUInt32 "u_int32_t" ) + SET( iSize ${INT32_T} ) + MESSAGE( "--- xbInt32 = [int32_t]" ) + MESSAGE( "--- xbUInt32 = [u_int32_t]" ) +ENDIF(( NOT iSize EQUAL 4 ) AND HAVE_INT32_T ) + +IF( NOT ${iSize} EQUAL 4 ) + MESSAGE( "FATAL_ERROR Could not detect 32 bit integer type" ) + MESSAGE( ${iSize} ) + RETURN() +ENDIF( NOT ${iSize} EQUAL 4 ) + +#determine how 64 bit integer defined on this platform +SET( iSize 0 ) +IF( HAVE___INT64 ) + SET( xbInt64 __int64 ) + SET( iSize ${__INT64} ) + MESSAGE( "--- xbInt64 = [__int64]" ) +ENDIF( HAVE___INT64 ) + +IF(( NOT iSize EQUAL 8 ) AND HAVE_INT64_T ) + SET( xbInt64 int64_t ) + SET( iSize ${INT64_T} ) + MESSAGE( "--- xbInt64 = [int64_t]" ) +ENDIF(( NOT iSize EQUAL 8 ) AND HAVE_INT64_T ) + +IF(( NOT iSize EQUAL 8 ) AND HAVE_LONG_LONG ) + SET( xbInt64 "long long" ) + SET( iSize ${LONG_LONG} ) + MESSAGE( "--- xbInt64 = [long long]" ) +ENDIF(( NOT iSize EQUAL 8 ) AND HAVE_LONG_LONG ) + +IF( NOT ${iSize} EQUAL 8 ) + MESSAGE( "FATAL_ERROR Could not detect 64 bit integer type" ) + MESSAGE( ${iSize} ) + RETURN() +ENDIF( NOT ${iSize} EQUAL 8 ) + +#determine how 64 bit unsigned integer defined on this platform +SET( iSize 0 ) +IF( HAVE_UNSIGNED__INT64 ) + SET( xbUInt64 "unsigned __int64" ) + SET( iSize ${UNSIGNED__INT64} ) + MESSAGE( "--- xbUInt64 = [unsigned __int64]" ) +ENDIF( HAVE_UNSIGNED__INT64 ) + +IF(( NOT iSize EQUAL 8 ) AND HAVE_UINT64_T ) + SET( xbUInt64 "uint64_t" ) + SET( iSize ${UINT64_T} ) + MESSAGE( "--- xbUInt64 = [uint64_t]" ) +ENDIF(( NOT iSize EQUAL 8 ) AND HAVE_UINT64_T ) + +IF(( NOT iSize EQUAL 8 ) AND HAVE_U_INT64_T ) + SET( xbUInt64 u_int64_t ) + SET( iSize ${U_INT64_T} ) + MESSAGE( "--- xbUInt64 = [u_int64_t]" ) +ENDIF(( NOT iSize EQUAL 8 ) AND HAVE_U_INT64_T ) + +IF(( NOT iSize EQUAL 8 ) AND HAVE_UNSIGNED_LONG_LONG ) + SET( xbUInt64 "unsigned long long" ) + SET( iSize ${UNSIGNED_LONG_LONG} ) + MESSAGE( "--- xbUInt64 = [unsigned long long]" ) +ENDIF(( NOT iSize EQUAL 8 ) AND HAVE_UNSIGNED_LONG_LONG ) + +IF( NOT ${iSize} EQUAL 8 ) + MESSAGE( "FATAL_ERROR Could not detect 64 bit unsigned integer type" ) + MESSAGE( ${iSize} ) + RETURN() +ENDIF( NOT ${iSize} EQUAL 8 ) + +#Library options +option( BUILD_SHARED_LIBS "Build shared libraries" ON) +option( XB_DBF3_SUPPORT "Compile DBase File Format Version 3 support" ON) +option( XB_DBF4_SUPPORT "Compile DBase File Format Version 4 support" ON) +option( XB_MEMO_SUPPORT "Compile memo field support into library" ON) +option( XB_NDX_SUPPORT "Compile NDX Index support into library" ON) +option( XB_MDX_SUPPORT "Compile MDX Index support into library" ON) +option( XB_LOCKING_SUPPORT "Compile Multi User Locking support into library" ON) + +option( XB_LOGGING_SUPPORT "Compile message logging support into library" ON) +option( XB_LINKLIST_SUPPORT "Compile Link List routines into library" ON) +option( XB_FUNCTION_SUPPORT "Compile XBase Function support into library" ON) +option( XB_EXPRESSION_SUPPORT "Compile Expression support into library" ON) +option( XB_INF_SUPPORT "Compile NDX INF file support into library" ON) +option( XB_FILTER_SUPPORT "Compile Filter support into library" ON) +option( XB_BLOCKREAD_SUPPORT "Compile Block Read support into library" ON) +option( XB_SQL_SUPPORT "Compile SQL support into library - alpha" ON) +option( XB_DEBUG_SUPPORT "Compile debug logic into library" ON) +option( XB_UTILS_SUPPORT "Compile utility programs" ON) +option( XB_EXAMPLES_SUPPORT "Compile example programs" ON) + +Message( "--- BUILD_SHARED_LIBS " ${BUILD_SHARED_LIBS}) +Message( "--- XB_DBF3_SUPPORT " ${XB_DBF3_SUPPORT}) +Message( "--- XB_DBF4_SUPPORT " ${XB_DBF4_SUPPORT}) +Message( "--- XB_MEMO_SUPPORT " ${XB_MEMO_SUPPORT}) +Message( "--- XB_NDX_SUPPORT " ${XB_NDX_SUPPORT}) +Message( "--- XB_MDX_SUPPORT " ${XB_MDX_SUPPORT}) +Message( "--- XB_LOCKING_SUPPORT " ${XB_LOCKING_SUPPORT}) +Message( "--- XB_LINKLIST_SUPPORT " ${XB_LINKLIST_SUPPORT}) +Message( "--- XB_FUNCTION_SUPPORT " ${XB_FUNCTION_SUPPORT}) +Message( "--- XB_EXPRESSION_SUPPORT " ${XB_EXPRESSION_SUPPORT}) +Message( "--- XB_FILTER_SUPPORT " ${XB_FILTER_SUPPORT}) +Message( "--- XB_DEBUG_SUPPORT " ${XB_DEBUG_SUPPORT}) +Message( "--- XB_UTILS_SUPPORT " ${XB_UTILS_SUPPORT}) +Message( "--- XB_EXAMPLES_SUPPORT " ${XB_EXAMPLES_SUPPORT}) +Message( "--- XB_LOGGING_SUPPORT " ${XB_LOGGING_SUPPORT}) +Message( "--- XB_SQL_SUPPORT " ${XB_SQL_SUPPORT}) +Message( "--- XB_INF_SUPPORT " ${XB_INF_SUPPORT}) + +IF( XB_DEBUG_SUPPORT ) + Message( "--- Adding debug support" ) + set( CMAKE_BUILD_TYPE Debug ) +IF( CMAKE_COMPILER_IS_GNUCXX ) + add_compile_options( -Og ) +ENDIF( CMAKE_COMPILER_IS_GNUCXX ) +ENDIF( XB_DEBUG_SUPPORT ) + +IF( CMAKE_SIZEOF_VOID_P EQUAL 8 ) + MESSAGE( "--- 64 bit compiler detected" ) + set( XB_PLATFORM "x64" ) + set( XB_PLATFORM_64 1 ) + set( XB_LIBNAME "xbase64" ) + +ELSE( CMAKE_SIZEOF_VOID_P EQUAL 8 ) + MESSAGE( "--- 32 bit compiler detected" ) + set( XB_PLATFORM "x86" ) + set( XB_PLATFORM_32 1 ) + set( XB_LIBNAME "xbase32" ) + +ENDIF( CMAKE_SIZEOF_VOID_P EQUAL 8 ) + + +#Check for the existence of various header files +INCLUDE (CheckIncludeFiles) +CHECK_INCLUDE_FILES (ctype.h HAVE_CTYPE_H) +CHECK_INCLUDE_FILES (dirent.h HAVE_DIRENT_H) +CHECK_INCLUDE_FILES (fcntl.h HAVE_FCNTL_H) +CHECK_INCLUDE_FILES (inttypes.h HAVE_INTTYPES_H) +CHECK_INCLUDE_FILES (pwd.h HAVE_PWD_H) +CHECK_INCLUDE_FILES (stdarg.h HAVE_STDARG_H) +CHECK_INCLUDE_FILES (stdargs.h HAVE_STDARGS_H) +CHECK_INCLUDE_FILES (string.h HAVE_STRING_H) +CHECK_INCLUDE_FILES (strings.h HAVE_STRINGS_H) +CHECK_INCLUDE_FILES (sys/stat.h HAVE_STAT_H) +CHECK_INCLUDE_FILES (unistd.h HAVE_UNISTD_H) +CHECK_INCLUDE_FILES (varargs.h HAVE_VARARGS_H) +CHECK_INCLUDE_FILES (windows.h HAVE_WINDOWS_H) + +#Check for the existence of various function calls +INCLUDE( CheckFunctionExists ) +CHECK_FUNCTION_EXISTS(_close HAVE__CLOSE_F) +CHECK_FUNCTION_EXISTS(fcntl HAVE_FCNTL_F) +CHECK_FUNCTION_EXISTS(_fdopen HAVE__FDOPEN_F) +CHECK_FUNCTION_EXISTS(fopen_s HAVE_FOPEN_S_F) +CHECK_FUNCTION_EXISTS(_fsopen HAVE__FSOPEN_F) +CHECK_FUNCTION_EXISTS(_fileno HAVE__FILENO_F) +CHECK_FUNCTION_EXISTS(fork HAVE_FORK_F) +CHECK_FUNCTION_EXISTS(_fseeki64 HAVE__FSEEKI64_F) +CHECK_FUNCTION_EXISTS(fseeko HAVE_FSEEKO_F) +CHECK_FUNCTION_EXISTS(ftruncate HAVE_FTRUNCATE_F) +CHECK_FUNCTION_EXISTS(_localtime64_s HAVE__LOCALTIME64_S_F) +CHECK_FUNCTION_EXISTS(LockFile HAVE_LOCKFILE_F) +CHECK_FUNCTION_EXISTS(locking HAVE_LOCKING_F) +CHECK_FUNCTION_EXISTS(_locking HAVE__LOCKING_F) +CHECK_FUNCTION_EXISTS(_open HAVE__OPEN_F) +CHECK_FUNCTION_EXISTS(SetEndOfFile HAVE_SETENDOFFILE_F) + +CHECK_FUNCTION_EXISTS(vsnprintf HAVE_VSNPRINTF_F) +CHECK_FUNCTION_EXISTS(_vsnprintf_s HAVE__VSNPRINTF_S_F) + + +CHECK_FUNCTION_EXISTS(getopt HAVE_GETOPT_F) + +IF( WIN32 ) + +# Use CHECK_SYMBOL_EXISTS for the Win32API instead of CHECK_FUNCTION_EXISTS +# Can't detect inline functions in headers +# Can't detect due to mismatch of calling conventions +# Can't detect mangled names + +INCLUDE( CheckSymbolExists ) +CHECK_SYMBOL_EXISTS(CreateProcessW Windows.h HAVE_CREATEPROCESSW_F ) +CHECK_SYMBOL_EXISTS(vsprintf_s stdio.h HAVE_VSPRINTF_S_F ) + +ENDIF ( WIN32 ) + +# IF( NOT HAVE_SENTENDOFFILE_F AND NOT HAVE_FTRUNCATE_F AND BORLAND ) +# # ----fix me---- +# # cmake CHECK_FUNCTION_EXISTS - could not find Borland 5.5 SetEndOfFile +# Set( HAVE_SETENDOFFILE_F "HAVE_SETENDOFFILE_H" ) +# ENDIF ( NOT HAVE_SENTENDOFFILE_F AND NOT HAVE_FTRUNCATE_F AND BORLAND ) + +IF( NOT HAVE_SETENDOFFILE_F AND NOT HAVE_FTRUNCATE_F AND WIN32 ) + # ----fix me---- + # cmake CHECK_FUNCTION_EXISTS - could not find Borland 5.5, or Windows VS 32 bit SetEndOfFile + Set( HAVE_SETENDOFFILE_F "HAVE_SETENDOFFILE_F" ) +ENDIF ( NOT HAVE_SETENDOFFILE_F AND NOT HAVE_FTRUNCATE_F AND WIN32 ) + +IF( XB_NDX_SUPPORT OR XB_MDX_SUPPORT ) + Set( XB_INDEX_SUPPORT "1" ) +ENDIF( XB_NDX_SUPPORT OR XB_MDX_SUPPORT ) + + +# Set directories +# PROJECT_PARENT_DIR is two nodes higher +get_filename_component( PROJECT_PARENT_DIR ${PROJECT_BINARY_DIR} DIRECTORY ) +get_filename_component( PROJECT_PARENT_DIR ${PROJECT_PARENT_DIR} DIRECTORY ) + +# MESSAGE( "PROJECT_PARENT_DIR = " ${PROJECT_PARENT_DIR} ) +# MESSAGE( "PROJECT_BINARY_DIR = " ${PROJECT_BINARY_DIR} ) + + +set( CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/bin/${XB_PLATFORM}) +set( LIBRARY_OUTPUT_PATH ${PROJECT_BINARY_DIR}/lib/${XB_PLATFORM}) +set( PROJECT_SOURCE_DIR ${PROJECT_PARENT_DIR}/src) +set( PROJECT_DATA_DIR ${PROJECT_PARENT_DIR}/data/) +set( PROJECT_LOG_DIR ${PROJECT_PARENT_DIR}/logs/) +set( EXTRA_LIBS ${EXTRA_LIBS} ${XB_LIBNAME}) + + + +# Undo bad decisions +IF( XB_PLATFORM_32 AND XB_LARGEFILE_SUPPORT ) + MESSAGE( "--- Can't build 64 bit environment with a 32 bit compiler" ) + MESSAGE( "--- XB_LARGEFILE_SUPPORT set to OFF" ) + set( XB_LARGEFILE_SUPPORT OFF CACHE BOOL "Use 64 bit large file support?" FORCE ) +ENDIF ( XB_PLATFORM_32 AND XB_LARGEFILE_SUPPORT ) + +IF( NOT XB_DBF3_SUPPORT AND NOT XB_DBF4_SUPPORT ) + MESSAGE( "--- At lease one file format is required. Defaulting to Version 4" ) + set( XB_DBF4_SUPPORT ON CACHE BOOL "Compile DBase File Format Version 4 support" FORCE ) +ENDIF( NOT XB_DBF3_SUPPORT AND NOT XB_DBF4_SUPPORT ) + +IF( XB_DBF4_SUPPORT AND XB_MEMO_SUPPORT AND NOT XB_LINKLIST_SUPPORT ) + MESSAGE( "--- Link List support required for DBF V4 Memo files. Setting to ON" ) + set( XB_LINKLIST_SUPPORT ON CACHE BOOL "Compile Link List routines into library" FORCE ) +ENDIF( XB_DBF4_SUPPORT AND XB_MEMO_SUPPORT AND NOT XB_LINKLIST_SUPPORT ) + +IF( XB_LOCKING_SUPPORT AND NOT XB_LINKLIST_SUPPORT ) + MESSAGE( "--- Link List support required for locking functions. Setting to ON" ) + set( XB_LINKLIST_SUPPORT ON CACHE BOOL "Compile Link List routines into library" FORCE ) +ENDIF( XB_LOCKING_SUPPORT AND NOT XB_LINKLIST_SUPPORT ) + +IF( XB_INDEX_SUPPORT AND NOT XB_EXPRESSION_SUPPORT ) + MESSAGE( "--- Expression required for indices. Setting to ON" ) + set( XB_EXPRESSION_SUPPORT ON CACHE BOOL "Compile Expression support into library" FORCE ) +ENDIF( XB_INDEX_SUPPORT AND NOT XB_EXPRESSION_SUPPORT ) + +IF( XB_EXPRESSION_SUPPORT AND NOT XB_FUNCTION_SUPPORT ) + MESSAGE( "--- Function support required for expressions. Setting to ON" ) + set( XB_FUNCTION_SUPPORT ON CACHE BOOL "Compile XBase Function support into library" FORCE ) +ENDIF( XB_EXPRESSION_SUPPORT AND NOT XB_FUNCTION_SUPPORT ) + +IF( XB_EXPRESSION_SUPPORT AND NOT XB_LINKLIST_SUPPORT ) + MESSAGE( "--- Linklist support required for expressions. Setting to ON" ) + set( XB_LINKLIST_SUPPORT ON CACHE BOOL "Compile Link List routines into library" FORCE ) +ENDIF( XB_EXPRESSION_SUPPORT AND NOT XB_LINKLIST_SUPPORT ) + +IF( XB_SQL_SUPPORT AND NOT XB_MEMO_SUPPORT ) + MESSAGE( "--- Memo support required for SQL. Setting to ON" ) + set( XB_MEMO_SUPPORT ON CACHE BOOL "Compile memo field support into library" FORCE ) +ENDIF( XB_SQL_SUPPORT AND NOT XB_MEMO_SUPPORT ) + +IF( XB_SQL_SUPPORT AND NOT XB_DBF4_SUPPORT ) + MESSAGE( "--- DBF4 support required for SQL. Setting to ON" ) + set( XB_DBF4_SUPPORT ON CACHE BOOL "Compile DBase File Format Version 4 support" FORCE ) +ENDIF( XB_SQL_SUPPORT AND NOT XB_DBF4_SUPPORT ) + +IF( XB_FILTER_SUPPORT AND NOT XB_EXPRESSION_SUPPORT ) + MESSAGE( "--- Expression required for filters. Setting to ON" ) + set( XB_EXPRESSION_SUPPORT ON CACHE BOOL "Compile Expression support into library" FORCE ) +ENDIF( XB_FILTER_SUPPORT AND NOT XB_EXPRESSION_SUPPORT ) + +IF( XB_SQL_SUPPORT AND NOT XB_BLOCKREAD_SUPPORT ) + MESSAGE( "--- BLOCKREAD support required for SQL. Setting to ON" ) + set( XB_BLOCKREAD_SUPPORT ON CACHE BOOL "Compile Block Read support into library" FORCE ) +ENDIF( XB_SQL_SUPPORT AND NOT XB_BLOCKREAD_SUPPORT ) + + +# Build configuration header file +configure_file ( + "${PROJECT_SOURCE_DIR}/include/xbconfig.h.in" + "${PROJECT_BINARY_DIR}/include/xbconfig.h" +) + +# Microsoft Windows settings +IF( WIN32 ) +# add_definitions( /D_CRT_SECURE_NO_WARNINGS) + add_definitions( /EHsc ) +ENDIF( WIN32 ) + + +# set up include directories +include_directories( "${PROJECT_BINARY_DIR}/include" ) +include_directories( "${PROJECT_SOURCE_DIR}/include" ) + +#build the library +IF ( BUILD_SHARED_LIBS ) + set( LIB_TYPE SHARED ) +ELSE( BUILD_SHARED_LIBS ) + set( LIB_TYPE STATIC ) +ENDIF( BUILD_SHARED_LIBS ) +MESSAGE( "--- Lib type " ${LIB_TYPE} ) + + + +set (SOURCES ${PROJECT_SOURCE_DIR}/core/xbstring.cpp + ${PROJECT_SOURCE_DIR}/core/xbssv.cpp + ${PROJECT_SOURCE_DIR}/core/xbdate.cpp + ${PROJECT_SOURCE_DIR}/core/xbtblmgr.cpp + ${PROJECT_SOURCE_DIR}/core/xbxbase.cpp + ${PROJECT_SOURCE_DIR}/core/xbfile.cpp + ${PROJECT_SOURCE_DIR}/core/xbdbf.cpp + ${PROJECT_SOURCE_DIR}/core/xbfields.cpp + ${PROJECT_SOURCE_DIR}/core/xblog.cpp) + +IF( XB_MEMO_SUPPORT ) + set (SOURCES ${SOURCES} ${PROJECT_SOURCE_DIR}/core/xbmemo.cpp ) +ENDIF( XB_MEMO_SUPPORT ) + +IF( XB_DBF3_SUPPORT ) + set (SOURCES ${SOURCES} ${PROJECT_SOURCE_DIR}/core/xbdbf3.cpp ) + IF( XB_MEMO_SUPPORT ) + set (SOURCES ${SOURCES} ${PROJECT_SOURCE_DIR}/core/xbmemo3.cpp ) + ENDIF( XB_MEMO_SUPPORT ) +ENDIF( XB_DBF3_SUPPORT ) + +IF( XB_DBF4_SUPPORT ) + set (SOURCES ${SOURCES} ${PROJECT_SOURCE_DIR}/core/xbdbf4.cpp ) + IF( XB_MEMO_SUPPORT ) + set (SOURCES ${SOURCES} ${PROJECT_SOURCE_DIR}/core/xbmemo4.cpp ) + ENDIF( XB_MEMO_SUPPORT ) +ENDIF( XB_DBF4_SUPPORT ) + +IF( XB_FUNCTION_SUPPORT ) + set (SOURCES ${SOURCES} ${PROJECT_SOURCE_DIR}/core/xbfuncs.cpp ) +ENDIF( XB_FUNCTION_SUPPORT ) + +IF( XB_EXPRESSION_SUPPORT ) + set (SOURCES ${SOURCES} ${PROJECT_SOURCE_DIR}/core/xbexpnode.cpp ) + set (SOURCES ${SOURCES} ${PROJECT_SOURCE_DIR}/core/xbexp.cpp ) + set (SOURCES ${SOURCES} ${PROJECT_SOURCE_DIR}/core/xbuda.cpp ) +ENDIF( XB_EXPRESSION_SUPPORT ) + +IF( XB_INDEX_SUPPORT ) + set (SOURCES ${SOURCES} ${PROJECT_SOURCE_DIR}/core/xbbcd.cpp ) + set (SOURCES ${SOURCES} ${PROJECT_SOURCE_DIR}/core/xbixbase.cpp ) + set (SOURCES ${SOURCES} ${PROJECT_SOURCE_DIR}/core/xbtag.cpp ) +ENDIF( XB_INDEX_SUPPORT ) + +IF( XB_NDX_SUPPORT ) + set (SOURCES ${SOURCES} ${PROJECT_SOURCE_DIR}/core/xbixndx.cpp ) +ENDIF( XB_NDX_SUPPORT ) + + +IF( XB_MDX_SUPPORT ) + set (SOURCES ${SOURCES} ${PROJECT_SOURCE_DIR}/core/xbixmdx.cpp ) +ENDIF( XB_MDX_SUPPORT ) + +IF( XB_SQL_SUPPORT ) + set (SOURCES ${SOURCES} ${PROJECT_SOURCE_DIR}/sql/xbalttbl.cpp ) + set (SOURCES ${SOURCES} ${PROJECT_SOURCE_DIR}/sql/xbcrix.cpp ) + set (SOURCES ${SOURCES} ${PROJECT_SOURCE_DIR}/sql/xbcrtbl.cpp ) + set (SOURCES ${SOURCES} ${PROJECT_SOURCE_DIR}/sql/xbdelete.cpp ) + set (SOURCES ${SOURCES} ${PROJECT_SOURCE_DIR}/sql/xbdrpix.cpp ) + set (SOURCES ${SOURCES} ${PROJECT_SOURCE_DIR}/sql/xbdrptbl.cpp ) + set (SOURCES ${SOURCES} ${PROJECT_SOURCE_DIR}/sql/xbinsert.cpp ) + set (SOURCES ${SOURCES} ${PROJECT_SOURCE_DIR}/sql/xbset.cpp ) + set (SOURCES ${SOURCES} ${PROJECT_SOURCE_DIR}/sql/xbsql.cpp ) + set (SOURCES ${SOURCES} ${PROJECT_SOURCE_DIR}/sql/xbstmt.cpp ) + set (SOURCES ${SOURCES} ${PROJECT_SOURCE_DIR}/sql/xbselect.cpp ) +ENDIF( XB_SQL_SUPPORT ) + + +IF( XB_FILTER_SUPPORT ) + set (SOURCES ${SOURCES} ${PROJECT_SOURCE_DIR}/core/xbfilter.cpp ) +ENDIF( XB_FILTER_SUPPORT ) + +IF( XB_BLOCKREAD_SUPPORT ) + set (SOURCES ${SOURCES} ${PROJECT_SOURCE_DIR}/core/xbblockread.cpp ) +ENDIF( XB_BLOCKREAD_SUPPORT ) + + +include( GenerateExportHeader ) +#add_library( xbase ${LIB_TYPE} ${SOURCES} ) +add_library( ${XB_LIBNAME} ${LIB_TYPE} ${SOURCES} ) +#add_library( ${CMAKE_PROJECT_NAME} ${LIB_TYPE} ${SOURCES} ) + + +IF( WIN32 ) +MESSAGE( "--- Generating Windows Library Headers" ) + +#GENERATE_EXPORT_HEADER( xbase +# BASE_NAME xbase + +GENERATE_EXPORT_HEADER( ${XB_LIBNAME} + BASE_NAME ${XB_LIBNAME} + EXPORT_MACRO_NAME xbase_EXPORT + EXPORT_FILE_NAME xbase_Export.h + STATIC_DEFINE xbase_BUILT_AS_STATIC +) +ENDIF( WIN32 ) + + +#build test programs +enable_testing() + +add_executable( xb_test_string ${PROJECT_SOURCE_DIR}/tests/xb_test_string.cpp ) +target_link_libraries( xb_test_string ${EXTRA_LIBS}) +add_test( NAME xbString COMMAND xb_test_string QUIET ) + +add_executable( xb_test_date ${PROJECT_SOURCE_DIR}/tests/xb_test_date.cpp ) +target_link_libraries( xb_test_date ${EXTRA_LIBS}) +add_test( NAME xbDate COMMAND xb_test_date QUIET ) + +add_executable( xb_test_tblmgr ${PROJECT_SOURCE_DIR}/tests/xb_test_tblmgr.cpp ) +target_link_libraries( xb_test_tblmgr ${EXTRA_LIBS}) +add_test( NAME xbTblMgr COMMAND xb_test_tblmgr QUIET ) + +add_executable( xb_test_xbase ${PROJECT_SOURCE_DIR}/tests/xb_test_xbase.cpp ) +target_link_libraries( xb_test_xbase ${EXTRA_LIBS}) +add_test( NAME xbXBase COMMAND xb_test_xbase QUIET ) + +add_executable( xb_test_file ${PROJECT_SOURCE_DIR}/tests/xb_test_file.cpp ) +target_link_libraries( xb_test_file ${EXTRA_LIBS}) +add_test( NAME xbFile COMMAND xb_test_file QUIET ) + +add_executable( xb_test_log ${PROJECT_SOURCE_DIR}/tests/xb_test_log.cpp ) +target_link_libraries( xb_test_log ${EXTRA_LIBS}) +add_test( NAME xbLog COMMAND xb_test_log QUIET ) + +IF( XB_LINKLIST_SUPPORT ) +add_executable( xb_test_linklist ${PROJECT_SOURCE_DIR}/tests/xb_test_linklist.cpp ) +target_link_libraries( xb_test_linklist ${EXTRA_LIBS}) +add_test( NAME xbLinkList COMMAND xb_test_linklist QUIET ) +ENDIF( XB_LINKLIST_SUPPORT ) + +IF( XB_DBF3_SUPPORT ) +add_executable( xb_test_dbf_v3_nomemos ${PROJECT_SOURCE_DIR}/tests/xb_test_dbf_v3_nomemos.cpp ) +target_link_libraries( xb_test_dbf_v3_nomemos ${EXTRA_LIBS}) +add_test( NAME xbDbfV3NoMemos COMMAND xb_test_dbf_v3_nomemos QUIET ) + +IF( XB_MEMO_SUPPORT ) +add_executable( xb_test_dbf_v3_memos ${PROJECT_SOURCE_DIR}/tests/xb_test_dbf_v3_memos.cpp ) +target_link_libraries( xb_test_dbf_v3_memos ${EXTRA_LIBS}) +add_test( NAME xbDbfV3Memos COMMAND xb_test_dbf_v3_memos QUIET ) + +ENDIF( XB_MEMO_SUPPORT ) +ENDIF( XB_DBF3_SUPPORT ) + +IF( XB_DBF4_SUPPORT ) +add_executable( xb_test_dbf_v4_nomemos ${PROJECT_SOURCE_DIR}/tests/xb_test_dbf_v4_nomemos.cpp ) +target_link_libraries( xb_test_dbf_v4_nomemos ${EXTRA_LIBS}) +add_test( NAME xbDbfV4NoMemos COMMAND xb_test_dbf_v4_nomemos QUIET ) + +IF( XB_MEMO_SUPPORT ) +add_executable( xb_test_dbf_v4_memos ${PROJECT_SOURCE_DIR}/tests/xb_test_dbf_v4_memos.cpp ) +target_link_libraries( xb_test_dbf_v4_memos ${EXTRA_LIBS}) +add_test( NAME xbDbfV4Memos COMMAND xb_test_dbf_v4_memos QUIET ) + +ENDIF( XB_MEMO_SUPPORT ) +ENDIF( XB_DBF4_SUPPORT ) + +IF( XB_FUNCTION_SUPPORT ) +add_executable( xb_test_funcs ${PROJECT_SOURCE_DIR}/tests/xb_test_funcs.cpp ) +target_link_libraries( xb_test_funcs ${EXTRA_LIBS}) +add_test( NAME xbFunctions COMMAND xb_test_funcs QUIET ) +ENDIF( XB_FUNCTION_SUPPORT ) + +IF( XB_NDX_SUPPORT ) +IF( XB_DBF3_SUPPORT ) +add_executable( xb_test_ndx ${PROJECT_SOURCE_DIR}/tests/xb_test_ndx.cpp ) +target_link_libraries( xb_test_ndx ${EXTRA_LIBS}) +add_test( NAME xbIxNdx COMMAND xb_test_ndx QUIET ) +ENDIF( XB_DBF3_SUPPORT ) +ENDIF( XB_NDX_SUPPORT ) + +IF( XB_MDX_SUPPORT ) +IF( XB_DBF4_SUPPORT ) +add_executable( xb_test_mdx ${PROJECT_SOURCE_DIR}/tests/xb_test_mdx.cpp ) +target_link_libraries( xb_test_mdx ${EXTRA_LIBS}) +add_test( NAME xbIxMdx COMMAND xb_test_mdx QUIET ) +ENDIF( XB_DBF4_SUPPORT ) +ENDIF( XB_MDX_SUPPORT ) + +IF( XB_INDEX_SUPPORT ) +add_executable( xb_test_bcd ${PROJECT_SOURCE_DIR}/tests/xb_test_bcd.cpp ) +target_link_libraries( xb_test_bcd ${EXTRA_LIBS}) +add_test( NAME xbBcd COMMAND xb_test_bcd QUIET ) +ENDIF( XB_INDEX_SUPPORT ) + + +IF( XB_EXPRESSION_SUPPORT ) + +add_executable( xb_test_expnode ${PROJECT_SOURCE_DIR}/tests/xb_test_expnode.cpp ) +target_link_libraries( xb_test_expnode ${EXTRA_LIBS}) +add_test( NAME xbExpNode COMMAND xb_test_expnode QUIET ) + + +add_executable( xb_test_expression ${PROJECT_SOURCE_DIR}/tests/xb_test_expression.cpp ) +target_link_libraries( xb_test_expression ${EXTRA_LIBS}) +add_test( NAME xbExpressions COMMAND xb_test_expression QUIET ) + +add_executable( xb_test_uda ${PROJECT_SOURCE_DIR}/tests/xb_test_uda.cpp ) +target_link_libraries( xb_test_uda ${EXTRA_LIBS}) +add_test( NAME xbUda COMMAND xb_test_uda QUIET ) + +ENDIF( XB_EXPRESSION_SUPPORT ) + +IF( XB_SQL_SUPPORT ) +add_executable( xb_test_sql ${PROJECT_SOURCE_DIR}/tests/xb_test_sql.cpp ) +target_link_libraries( xb_test_sql ${EXTRA_LIBS}) +add_test( NAME xbSql COMMAND xb_test_sql QUIET ) +ENDIF( XB_SQL_SUPPORT ) + +IF( XB_FILTER_SUPPORT ) +add_executable( xb_test_filter ${PROJECT_SOURCE_DIR}/tests/xb_test_filter.cpp ) +target_link_libraries( xb_test_filter ${EXTRA_LIBS}) +add_test( NAME xbFilter COMMAND xb_test_filter QUIET ) +ENDIF( XB_FILTER_SUPPORT ) + +IF( XB_BLOCKREAD_SUPPORT ) +add_executable( xb_test_blockread ${PROJECT_SOURCE_DIR}/tests/xb_test_blockread.cpp ) +target_link_libraries( xb_test_blockread ${EXTRA_LIBS}) +add_test( NAME xbBlockRead COMMAND xb_test_blockread QUIET ) +ENDIF( XB_BLOCKREAD_SUPPORT ) + + +IF( XB_LOCKING_SUPPORT ) +add_executable( xb_test_lock ${PROJECT_SOURCE_DIR}/tests/xb_test_lock.cpp ) +target_link_libraries( xb_test_lock ${EXTRA_LIBS}) +add_test( NAME xbLock COMMAND xb_test_lock QUIET ) +IF( HAVE_CREATEPROCESSW_F ) +add_executable( xb_test_lock2 ${PROJECT_SOURCE_DIR}/tests/xb_test_lock2.cpp ) +target_link_libraries( xb_test_lock2 ${EXTRA_LIBS}) +ENDIF( HAVE_CREATEPROCESSW_F ) +ENDIF( XB_LOCKING_SUPPORT ) + +#build example programs +IF( XB_EXAMPLES_SUPPORT ) + add_executable( xb_ex_string ${PROJECT_SOURCE_DIR}/examples/xb_ex_string.cpp ) + target_link_libraries( xb_ex_string ${EXTRA_LIBS}) + + add_executable( xb_ex_date ${PROJECT_SOURCE_DIR}/examples/xb_ex_date.cpp ) + target_link_libraries( xb_ex_date ${EXTRA_LIBS}) + + IF( XB_DBF3_SUPPORT ) + add_executable( xb_ex_v3_create_dbf ${PROJECT_SOURCE_DIR}/examples/xb_ex_v3_create_dbf.cpp ) + target_link_libraries( xb_ex_v3_create_dbf ${EXTRA_LIBS}) + + add_executable( xb_ex_v3_upd_dbf ${PROJECT_SOURCE_DIR}/examples/xb_ex_v3_upd_dbf.cpp ) + target_link_libraries( xb_ex_v3_upd_dbf ${EXTRA_LIBS}) + ENDIF( XB_DBF3_SUPPORT ) + + IF( XB_DBF4_SUPPORT ) + add_executable( xb_ex_v4_create_dbf ${PROJECT_SOURCE_DIR}/examples/xb_ex_v4_create_dbf.cpp ) + target_link_libraries( xb_ex_v4_create_dbf ${EXTRA_LIBS}) + ENDIF( XB_DBF4_SUPPORT ) + + IF( XB_EXPRESSION_SUPPORT ) + add_executable( xb_ex_expression ${PROJECT_SOURCE_DIR}/examples/xb_ex_expression.cpp ) + target_link_libraries( xb_ex_expression ${EXTRA_LIBS}) + ENDIF( XB_EXPRESSION_SUPPORT ) + + add_executable( xb_ex_v4_upd_dbf ${PROJECT_SOURCE_DIR}/examples/xb_ex_v4_upd_dbf.cpp ) + target_link_libraries( xb_ex_v4_upd_dbf ${EXTRA_LIBS}) + + add_executable( xb_ex_ssv ${PROJECT_SOURCE_DIR}/examples/xb_ex_ssv.cpp ) + target_link_libraries( xb_ex_ssv ${EXTRA_LIBS}) + +ENDIF( XB_EXAMPLES_SUPPORT ) + +#build utility programs +IF( XB_UTILS_SUPPORT ) + + add_executable( xb_cfg_check ${PROJECT_SOURCE_DIR}/utils/xb_cfg_check.cpp ) + target_link_libraries( xb_cfg_check ${EXTRA_LIBS}) + + add_executable( xb_copydbf ${PROJECT_SOURCE_DIR}/utils/xb_copydbf.cpp ) + target_link_libraries( xb_copydbf ${EXTRA_LIBS}) + + add_executable( xb_dbfutil ${PROJECT_SOURCE_DIR}/utils/xb_dbfutil.cpp ) + target_link_libraries( xb_dbfutil ${EXTRA_LIBS}) + + add_executable( xb_deletall ${PROJECT_SOURCE_DIR}/utils/xb_deletall.cpp ) + target_link_libraries( xb_deletall ${EXTRA_LIBS}) + + add_executable( xb_dumpdbt ${PROJECT_SOURCE_DIR}/utils/xb_dumpdbt.cpp ) + target_link_libraries( xb_dumpdbt ${EXTRA_LIBS}) + + add_executable( xb_dumprecs ${PROJECT_SOURCE_DIR}/utils/xb_dumprecs.cpp ) + target_link_libraries( xb_dumprecs ${EXTRA_LIBS}) + + add_executable( xb_tblinfo ${PROJECT_SOURCE_DIR}/utils/xb_tblinfo.cpp ) + target_link_libraries( xb_tblinfo ${EXTRA_LIBS}) + + IF( XB_SQL_SUPPORT ) + add_executable( xb_execsql ${PROJECT_SOURCE_DIR}/utils/xb_execsql.cpp ) + target_link_libraries( xb_execsql ${EXTRA_LIBS}) + ENDIF( XB_SQL_SUPPORT ) + + add_executable( xb_pack ${PROJECT_SOURCE_DIR}/utils/xb_pack.cpp ) + target_link_libraries( xb_pack ${EXTRA_LIBS}) + + add_executable( xb_undelall ${PROJECT_SOURCE_DIR}/utils/xb_undelall.cpp ) + target_link_libraries( xb_undelall ${EXTRA_LIBS}) + + install (TARGETS xb_cfg_check DESTINATION bin) + install (TARGETS xb_copydbf DESTINATION bin) + install (TARGETS xb_dbfutil DESTINATION bin) + install (TARGETS xb_deletall DESTINATION bin) + install (TARGETS xb_dumpdbt DESTINATION bin) + install (TARGETS xb_dumprecs DESTINATION bin) + install (TARGETS xb_pack DESTINATION bin) + install (TARGETS xb_undelall DESTINATION bin) + IF( XB_SQL_SUPPORT ) + install (TARGETS xb_execsql DESTINATION bin) + ENDIF( XB_SQL_SUPPORT ) + + + +ENDIF( XB_UTILS_SUPPORT ) + +install (FILES include/xbconfig.h + ${PROJECT_SOURCE_DIR}/include/xbase.h + ${PROJECT_SOURCE_DIR}/include/xbbcd.h + ${PROJECT_SOURCE_DIR}/include/xbdate.h + ${PROJECT_SOURCE_DIR}/include/xbdbf.h + ${PROJECT_SOURCE_DIR}/include/xbexp.h + ${PROJECT_SOURCE_DIR}/include/xbexpnode.h + ${PROJECT_SOURCE_DIR}/include/xbfile.h + ${PROJECT_SOURCE_DIR}/include/xbindex.h + ${PROJECT_SOURCE_DIR}/include/xblnklst.h + ${PROJECT_SOURCE_DIR}/include/xblnklstord.h + ${PROJECT_SOURCE_DIR}/include/xblnknod.h + ${PROJECT_SOURCE_DIR}/include/xblog.h + ${PROJECT_SOURCE_DIR}/include/xbmemo.h + ${PROJECT_SOURCE_DIR}/include/xbretcod.h + ${PROJECT_SOURCE_DIR}/include/xbsql.h + ${PROJECT_SOURCE_DIR}/include/xbssv.h + ${PROJECT_SOURCE_DIR}/include/xbstring.h + ${PROJECT_SOURCE_DIR}/include/xbtblmgr.h + ${PROJECT_SOURCE_DIR}/include/xbtypes.h + ${PROJECT_SOURCE_DIR}/include/xbxbase.h + ${PROJECT_SOURCE_DIR}/include/xbuda.h + ${PROJECT_SOURCE_DIR}/include/xbtag.h + ${PROJECT_SOURCE_DIR}/include/xbfilter.h + ${PROJECT_SOURCE_DIR}/include/xbblkread.h + ${PROJECT_SOURCE_DIR}/include/xbsql.h + + DESTINATION include/${CMAKE_PROJECT_NAME}) + +IF( NOT WIN32 ) +install (FILES ${PROJECT_PARENT_DIR}/docs/man/xb_cfg_chk.1.gz + ${PROJECT_PARENT_DIR}/docs/man/xb_copydbf.1.gz + ${PROJECT_PARENT_DIR}/docs/man/xb_dbfutil.1.gz + ${PROJECT_PARENT_DIR}/docs/man/xb_deletall.1.gz + ${PROJECT_PARENT_DIR}/docs/man/xb_dumpdbt.1.gz + ${PROJECT_PARENT_DIR}/docs/man/xb_dumprecs.1.gz + ${PROJECT_PARENT_DIR}/docs/man/xb_pack.1.gz + ${PROJECT_PARENT_DIR}/docs/man/xb_tblinfo.1.gz + ${PROJECT_PARENT_DIR}/docs/man/xb_undelall.1.gz + + DESTINATION man/man1) + +ENDIF( NOT WIN32 ) + + +SET_TARGET_PROPERTIES( ${XB_LIBNAME} PROPERTIES VERSION 4.1.0 SOVERSION 0 ) + +IF( EXISTS /usr/local/lib64 ) +install (TARGETS ${XB_LIBNAME} DESTINATION lib64/${CMAKE_PROJECT_NAME}) +ELSE( EXISTS /usr/local/lib64 ) +install (TARGETS ${XB_LIBNAME} DESTINATION lib/${CMAKE_PROJECT_NAME}) +ENDIF( EXISTS /usr/local/lib64 ) + + diff --git a/build/debian/README.debian b/build/debian/README.debian new file mode 100644 index 0000000..2c7e95b --- /dev/null +++ b/build/debian/README.debian @@ -0,0 +1,23 @@ + +Debian build stes for Xbase64 - 2/16/23 + +1) Verify cmake is installed with command: cmake --version + If it is not installed, install the latest version through the Debian software store. + +2) Verify gcc is intalled with the command: gcc --version + If it is not installed, execute the following commands: + + sudo apt update + sudo apt install build-essential + gcc --version + +3) Build xbase64 library + + cd build/debian (go to the appropriate build directory) + cmake . (configure for your environment) + make (compile it) + sudo make install (install it) + xb_cfg_chk (test it) + + + diff --git a/build/linux32/CMakeLists.txt b/build/linux32/CMakeLists.txt index 516b9c9..f514c5c 100755 --- a/build/linux32/CMakeLists.txt +++ b/build/linux32/CMakeLists.txt @@ -2,12 +2,13 @@ cmake_minimum_required(VERSION 3.0) project (xbase64) set( xbase_VERSION_MAJOR 4 ) -set( xbase_VERSION_MINOR 0 ) -set( xbase_VERSION_PATCH 3 ) +set( xbase_VERSION_MINOR 1 ) +set( xbase_VERSION_PATCH 0 ) MESSAGE( "--- Xbase build for: " ${CMAKE_SYSTEM_NAME} ) MESSAGE( "--- Compiler: " ${CMAKE_CXX_COMPILER_ID} ) MESSAGE( "--- Project Name: " ${CMAKE_PROJECT_NAME} ) +MESSAGE( "--- Install Prefix: " ${CMAKE_INSTALL_PREFIX} ) #Set compiler options @@ -152,42 +153,43 @@ IF( NOT ${iSize} EQUAL 8 ) ENDIF( NOT ${iSize} EQUAL 8 ) #Library options -option( BUILD_SHARED_LIBS "Build shared libraries?" ON) -option( XB_DEBUG_SUPPORT "Compile debug logic into library?" ON) -option( XB_UTILS_SUPPORT "Compile utility programs?" ON) -option( XB_EXAMPLES_SUPPORT "Compile example programs?" ON) -option( XB_MEMO_SUPPORT "Compile memo field support into library?" ON) -option( XB_LOGGING_SUPPORT "Compile message logging support into library" ON) +option( BUILD_SHARED_LIBS "Build shared libraries" ON) option( XB_DBF3_SUPPORT "Compile DBase File Format Version 3 support" ON) option( XB_DBF4_SUPPORT "Compile DBase File Format Version 4 support" ON) -option( XB_LINKLIST_SUPPORT "Compile Link List routines into library" ON) +option( XB_MEMO_SUPPORT "Compile memo field support into library" ON) +option( XB_NDX_SUPPORT "Compile NDX Index support into library" ON) +option( XB_MDX_SUPPORT "Compile MDX Index support into library" ON) option( XB_LOCKING_SUPPORT "Compile Multi User Locking support into library" ON) + +option( XB_LOGGING_SUPPORT "Compile message logging support into library" ON) +option( XB_LINKLIST_SUPPORT "Compile Link List routines into library" ON) option( XB_FUNCTION_SUPPORT "Compile XBase Function support into library" ON) option( XB_EXPRESSION_SUPPORT "Compile Expression support into library" ON) -option( XB_NDX_SUPPORT "Compile NDX Index support into library" ON) -option( XB_MDX_SUPPORT "Compile MDX Index support into library" ON) -option( XB_SQL_SUPPORT "Compile SQL support into library" ON) option( XB_INF_SUPPORT "Compile NDX INF file support into library" ON) option( XB_FILTER_SUPPORT "Compile Filter support into library" ON) - +option( XB_BLOCKREAD_SUPPORT "Compile Block Read support into library" ON) +option( XB_SQL_SUPPORT "Compile SQL support into library - alpha" ON) +option( XB_DEBUG_SUPPORT "Compile debug logic into library" ON) +option( XB_UTILS_SUPPORT "Compile utility programs" ON) +option( XB_EXAMPLES_SUPPORT "Compile example programs" ON) Message( "--- BUILD_SHARED_LIBS " ${BUILD_SHARED_LIBS}) -Message( "--- XB_MEMO_SUPPORT " ${XB_MEMO_SUPPORT}) -Message( "--- XB_DEBUG_SUPPORT " ${XB_DEBUG_SUPPORT}) -Message( "--- XB_UTILS_SUPPORT " ${XB_UTILS_SUPPORT}) -Message( "--- XB_EXAMPLES_SUPPORT " ${XB_EXAMPLES_SUPPORT}) -Message( "--- XB_LOGGING_SUPPORT " ${XB_LOGGING_SUPPORT}) Message( "--- XB_DBF3_SUPPORT " ${XB_DBF3_SUPPORT}) Message( "--- XB_DBF4_SUPPORT " ${XB_DBF4_SUPPORT}) -Message( "--- XB_LINKLIST_SUPPORT " ${XB_LINKLIST_SUPPORT}) +Message( "--- XB_MEMO_SUPPORT " ${XB_MEMO_SUPPORT}) +Message( "--- XB_NDX_SUPPORT " ${XB_NDX_SUPPORT}) +Message( "--- XB_MDX_SUPPORT " ${XB_MDX_SUPPORT}) Message( "--- XB_LOCKING_SUPPORT " ${XB_LOCKING_SUPPORT}) +Message( "--- XB_LINKLIST_SUPPORT " ${XB_LINKLIST_SUPPORT}) Message( "--- XB_FUNCTION_SUPPORT " ${XB_FUNCTION_SUPPORT}) Message( "--- XB_EXPRESSION_SUPPORT " ${XB_EXPRESSION_SUPPORT}) -Message( "--- XB_NDX_SUPPORT " ${XB_NDX_SUPPORT}) -Message( "--- XB_MDX_SUPPORT " ${XB_MDX_SUPPORT}) +Message( "--- XB_FILTER_SUPPORT " ${XB_FILTER_SUPPORT}) +Message( "--- XB_DEBUG_SUPPORT " ${XB_DEBUG_SUPPORT}) +Message( "--- XB_UTILS_SUPPORT " ${XB_UTILS_SUPPORT}) +Message( "--- XB_EXAMPLES_SUPPORT " ${XB_EXAMPLES_SUPPORT}) +Message( "--- XB_LOGGING_SUPPORT " ${XB_LOGGING_SUPPORT}) Message( "--- XB_SQL_SUPPORT " ${XB_SQL_SUPPORT}) Message( "--- XB_INF_SUPPORT " ${XB_INF_SUPPORT}) -Message( "--- XB_FILTER_SUPPORT " ${XB_FILTER_SUPPORT}) IF( XB_DEBUG_SUPPORT ) Message( "--- Adding debug support" ) @@ -218,6 +220,7 @@ CHECK_INCLUDE_FILES (ctype.h HAVE_CTYPE_H) CHECK_INCLUDE_FILES (dirent.h HAVE_DIRENT_H) CHECK_INCLUDE_FILES (fcntl.h HAVE_FCNTL_H) CHECK_INCLUDE_FILES (inttypes.h HAVE_INTTYPES_H) +CHECK_INCLUDE_FILES (pwd.h HAVE_PWD_H) CHECK_INCLUDE_FILES (stdarg.h HAVE_STDARG_H) CHECK_INCLUDE_FILES (stdargs.h HAVE_STDARGS_H) CHECK_INCLUDE_FILES (string.h HAVE_STRING_H) @@ -250,6 +253,8 @@ CHECK_FUNCTION_EXISTS(vsnprintf HAVE_VSNPRINTF_F) CHECK_FUNCTION_EXISTS(_vsnprintf_s HAVE__VSNPRINTF_S_F) +CHECK_FUNCTION_EXISTS(getopt HAVE_GETOPT_F) + IF( WIN32 ) # Use CHECK_SYMBOL_EXISTS for the Win32API instead of CHECK_FUNCTION_EXISTS @@ -261,8 +266,6 @@ INCLUDE( CheckSymbolExists ) CHECK_SYMBOL_EXISTS(CreateProcessW Windows.h HAVE_CREATEPROCESSW_F ) CHECK_SYMBOL_EXISTS(vsprintf_s stdio.h HAVE_VSPRINTF_S_F ) - - ENDIF ( WIN32 ) # IF( NOT HAVE_SENTENDOFFILE_F AND NOT HAVE_FTRUNCATE_F AND BORLAND ) @@ -300,7 +303,6 @@ set( EXTRA_LIBS ${EXTRA_LIBS} ${XB_LIBNAME}) - # Undo bad decisions IF( XB_PLATFORM_32 AND XB_LARGEFILE_SUPPORT ) MESSAGE( "--- Can't build 64 bit environment with a 32 bit compiler" ) @@ -353,6 +355,10 @@ IF( XB_FILTER_SUPPORT AND NOT XB_EXPRESSION_SUPPORT ) set( XB_EXPRESSION_SUPPORT ON CACHE BOOL "Compile Expression support into library" FORCE ) ENDIF( XB_FILTER_SUPPORT AND NOT XB_EXPRESSION_SUPPORT ) +IF( XB_SQL_SUPPORT AND NOT XB_BLOCKREAD_SUPPORT ) + MESSAGE( "--- BLOCKREAD support required for SQL. Setting to ON" ) + set( XB_BLOCKREAD_SUPPORT ON CACHE BOOL "Compile Block Read support into library" FORCE ) +ENDIF( XB_SQL_SUPPORT AND NOT XB_BLOCKREAD_SUPPORT ) # Build configuration header file @@ -445,6 +451,7 @@ IF( XB_SQL_SUPPORT ) set (SOURCES ${SOURCES} ${PROJECT_SOURCE_DIR}/sql/xbinsert.cpp ) set (SOURCES ${SOURCES} ${PROJECT_SOURCE_DIR}/sql/xbset.cpp ) set (SOURCES ${SOURCES} ${PROJECT_SOURCE_DIR}/sql/xbsql.cpp ) + set (SOURCES ${SOURCES} ${PROJECT_SOURCE_DIR}/sql/xbstmt.cpp ) set (SOURCES ${SOURCES} ${PROJECT_SOURCE_DIR}/sql/xbselect.cpp ) ENDIF( XB_SQL_SUPPORT ) @@ -453,6 +460,9 @@ IF( XB_FILTER_SUPPORT ) set (SOURCES ${SOURCES} ${PROJECT_SOURCE_DIR}/core/xbfilter.cpp ) ENDIF( XB_FILTER_SUPPORT ) +IF( XB_BLOCKREAD_SUPPORT ) + set (SOURCES ${SOURCES} ${PROJECT_SOURCE_DIR}/core/xbblockread.cpp ) +ENDIF( XB_BLOCKREAD_SUPPORT ) include( GenerateExportHeader ) @@ -593,6 +603,12 @@ target_link_libraries( xb_test_filter ${EXTRA_LIBS}) add_test( NAME xbFilter COMMAND xb_test_filter QUIET ) ENDIF( XB_FILTER_SUPPORT ) +IF( XB_BLOCKREAD_SUPPORT ) +add_executable( xb_test_blockread ${PROJECT_SOURCE_DIR}/tests/xb_test_blockread.cpp ) +target_link_libraries( xb_test_blockread ${EXTRA_LIBS}) +add_test( NAME xbBlockRead COMMAND xb_test_blockread QUIET ) +ENDIF( XB_BLOCKREAD_SUPPORT ) + IF( XB_LOCKING_SUPPORT ) add_executable( xb_test_lock ${PROJECT_SOURCE_DIR}/tests/xb_test_lock.cpp ) @@ -633,6 +649,8 @@ IF( XB_EXAMPLES_SUPPORT ) add_executable( xb_ex_v4_upd_dbf ${PROJECT_SOURCE_DIR}/examples/xb_ex_v4_upd_dbf.cpp ) target_link_libraries( xb_ex_v4_upd_dbf ${EXTRA_LIBS}) + add_executable( xb_ex_ssv ${PROJECT_SOURCE_DIR}/examples/xb_ex_ssv.cpp ) + target_link_libraries( xb_ex_ssv ${EXTRA_LIBS}) ENDIF( XB_EXAMPLES_SUPPORT ) @@ -654,13 +672,9 @@ IF( XB_UTILS_SUPPORT ) add_executable( xb_dumpdbt ${PROJECT_SOURCE_DIR}/utils/xb_dumpdbt.cpp ) target_link_libraries( xb_dumpdbt ${EXTRA_LIBS}) - add_executable( xb_dumphdr ${PROJECT_SOURCE_DIR}/utils/xb_dumphdr.cpp ) - target_link_libraries( xb_dumphdr ${EXTRA_LIBS}) - add_executable( xb_dumprecs ${PROJECT_SOURCE_DIR}/utils/xb_dumprecs.cpp ) target_link_libraries( xb_dumprecs ${EXTRA_LIBS}) - add_executable( xb_tblinfo ${PROJECT_SOURCE_DIR}/utils/xb_tblinfo.cpp ) target_link_libraries( xb_tblinfo ${EXTRA_LIBS}) @@ -675,20 +689,14 @@ IF( XB_UTILS_SUPPORT ) add_executable( xb_undelall ${PROJECT_SOURCE_DIR}/utils/xb_undelall.cpp ) target_link_libraries( xb_undelall ${EXTRA_LIBS}) - add_executable( xb_zap ${PROJECT_SOURCE_DIR}/utils/xb_zap.cpp ) - target_link_libraries( xb_zap ${EXTRA_LIBS}) - - install (TARGETS xb_cfg_check DESTINATION bin) install (TARGETS xb_copydbf DESTINATION bin) install (TARGETS xb_dbfutil DESTINATION bin) install (TARGETS xb_deletall DESTINATION bin) install (TARGETS xb_dumpdbt DESTINATION bin) - install (TARGETS xb_dumphdr DESTINATION bin) install (TARGETS xb_dumprecs DESTINATION bin) install (TARGETS xb_pack DESTINATION bin) install (TARGETS xb_undelall DESTINATION bin) - install (TARGETS xb_zap DESTINATION bin) IF( XB_SQL_SUPPORT ) install (TARGETS xb_execsql DESTINATION bin) ENDIF( XB_SQL_SUPPORT ) @@ -721,10 +729,28 @@ install (FILES include/xbconfig.h ${PROJECT_SOURCE_DIR}/include/xbuda.h ${PROJECT_SOURCE_DIR}/include/xbtag.h ${PROJECT_SOURCE_DIR}/include/xbfilter.h + ${PROJECT_SOURCE_DIR}/include/xbblkread.h + ${PROJECT_SOURCE_DIR}/include/xbsql.h + DESTINATION include/${CMAKE_PROJECT_NAME}) +IF( NOT WIN32 ) +install (FILES ${PROJECT_PARENT_DIR}/docs/man/xb_cfg_chk.1.gz + ${PROJECT_PARENT_DIR}/docs/man/xb_copydbf.1.gz + ${PROJECT_PARENT_DIR}/docs/man/xb_dbfutil.1.gz + ${PROJECT_PARENT_DIR}/docs/man/xb_deletall.1.gz + ${PROJECT_PARENT_DIR}/docs/man/xb_dumpdbt.1.gz + ${PROJECT_PARENT_DIR}/docs/man/xb_dumprecs.1.gz + ${PROJECT_PARENT_DIR}/docs/man/xb_pack.1.gz + ${PROJECT_PARENT_DIR}/docs/man/xb_tblinfo.1.gz + ${PROJECT_PARENT_DIR}/docs/man/xb_undelall.1.gz + + DESTINATION man/man1) + +ENDIF( NOT WIN32 ) + -SET_TARGET_PROPERTIES( ${XB_LIBNAME} PROPERTIES VERSION 4.0.3 SOVERSION 0 ) +SET_TARGET_PROPERTIES( ${XB_LIBNAME} PROPERTIES VERSION 4.1.0 SOVERSION 0 ) IF( EXISTS /usr/local/lib64 ) install (TARGETS ${XB_LIBNAME} DESTINATION lib64/${CMAKE_PROJECT_NAME}) diff --git a/build/linux64/CMakeLists.txt b/build/linux64/CMakeLists.txt index 516b9c9..f514c5c 100755 --- a/build/linux64/CMakeLists.txt +++ b/build/linux64/CMakeLists.txt @@ -2,12 +2,13 @@ cmake_minimum_required(VERSION 3.0) project (xbase64) set( xbase_VERSION_MAJOR 4 ) -set( xbase_VERSION_MINOR 0 ) -set( xbase_VERSION_PATCH 3 ) +set( xbase_VERSION_MINOR 1 ) +set( xbase_VERSION_PATCH 0 ) MESSAGE( "--- Xbase build for: " ${CMAKE_SYSTEM_NAME} ) MESSAGE( "--- Compiler: " ${CMAKE_CXX_COMPILER_ID} ) MESSAGE( "--- Project Name: " ${CMAKE_PROJECT_NAME} ) +MESSAGE( "--- Install Prefix: " ${CMAKE_INSTALL_PREFIX} ) #Set compiler options @@ -152,42 +153,43 @@ IF( NOT ${iSize} EQUAL 8 ) ENDIF( NOT ${iSize} EQUAL 8 ) #Library options -option( BUILD_SHARED_LIBS "Build shared libraries?" ON) -option( XB_DEBUG_SUPPORT "Compile debug logic into library?" ON) -option( XB_UTILS_SUPPORT "Compile utility programs?" ON) -option( XB_EXAMPLES_SUPPORT "Compile example programs?" ON) -option( XB_MEMO_SUPPORT "Compile memo field support into library?" ON) -option( XB_LOGGING_SUPPORT "Compile message logging support into library" ON) +option( BUILD_SHARED_LIBS "Build shared libraries" ON) option( XB_DBF3_SUPPORT "Compile DBase File Format Version 3 support" ON) option( XB_DBF4_SUPPORT "Compile DBase File Format Version 4 support" ON) -option( XB_LINKLIST_SUPPORT "Compile Link List routines into library" ON) +option( XB_MEMO_SUPPORT "Compile memo field support into library" ON) +option( XB_NDX_SUPPORT "Compile NDX Index support into library" ON) +option( XB_MDX_SUPPORT "Compile MDX Index support into library" ON) option( XB_LOCKING_SUPPORT "Compile Multi User Locking support into library" ON) + +option( XB_LOGGING_SUPPORT "Compile message logging support into library" ON) +option( XB_LINKLIST_SUPPORT "Compile Link List routines into library" ON) option( XB_FUNCTION_SUPPORT "Compile XBase Function support into library" ON) option( XB_EXPRESSION_SUPPORT "Compile Expression support into library" ON) -option( XB_NDX_SUPPORT "Compile NDX Index support into library" ON) -option( XB_MDX_SUPPORT "Compile MDX Index support into library" ON) -option( XB_SQL_SUPPORT "Compile SQL support into library" ON) option( XB_INF_SUPPORT "Compile NDX INF file support into library" ON) option( XB_FILTER_SUPPORT "Compile Filter support into library" ON) - +option( XB_BLOCKREAD_SUPPORT "Compile Block Read support into library" ON) +option( XB_SQL_SUPPORT "Compile SQL support into library - alpha" ON) +option( XB_DEBUG_SUPPORT "Compile debug logic into library" ON) +option( XB_UTILS_SUPPORT "Compile utility programs" ON) +option( XB_EXAMPLES_SUPPORT "Compile example programs" ON) Message( "--- BUILD_SHARED_LIBS " ${BUILD_SHARED_LIBS}) -Message( "--- XB_MEMO_SUPPORT " ${XB_MEMO_SUPPORT}) -Message( "--- XB_DEBUG_SUPPORT " ${XB_DEBUG_SUPPORT}) -Message( "--- XB_UTILS_SUPPORT " ${XB_UTILS_SUPPORT}) -Message( "--- XB_EXAMPLES_SUPPORT " ${XB_EXAMPLES_SUPPORT}) -Message( "--- XB_LOGGING_SUPPORT " ${XB_LOGGING_SUPPORT}) Message( "--- XB_DBF3_SUPPORT " ${XB_DBF3_SUPPORT}) Message( "--- XB_DBF4_SUPPORT " ${XB_DBF4_SUPPORT}) -Message( "--- XB_LINKLIST_SUPPORT " ${XB_LINKLIST_SUPPORT}) +Message( "--- XB_MEMO_SUPPORT " ${XB_MEMO_SUPPORT}) +Message( "--- XB_NDX_SUPPORT " ${XB_NDX_SUPPORT}) +Message( "--- XB_MDX_SUPPORT " ${XB_MDX_SUPPORT}) Message( "--- XB_LOCKING_SUPPORT " ${XB_LOCKING_SUPPORT}) +Message( "--- XB_LINKLIST_SUPPORT " ${XB_LINKLIST_SUPPORT}) Message( "--- XB_FUNCTION_SUPPORT " ${XB_FUNCTION_SUPPORT}) Message( "--- XB_EXPRESSION_SUPPORT " ${XB_EXPRESSION_SUPPORT}) -Message( "--- XB_NDX_SUPPORT " ${XB_NDX_SUPPORT}) -Message( "--- XB_MDX_SUPPORT " ${XB_MDX_SUPPORT}) +Message( "--- XB_FILTER_SUPPORT " ${XB_FILTER_SUPPORT}) +Message( "--- XB_DEBUG_SUPPORT " ${XB_DEBUG_SUPPORT}) +Message( "--- XB_UTILS_SUPPORT " ${XB_UTILS_SUPPORT}) +Message( "--- XB_EXAMPLES_SUPPORT " ${XB_EXAMPLES_SUPPORT}) +Message( "--- XB_LOGGING_SUPPORT " ${XB_LOGGING_SUPPORT}) Message( "--- XB_SQL_SUPPORT " ${XB_SQL_SUPPORT}) Message( "--- XB_INF_SUPPORT " ${XB_INF_SUPPORT}) -Message( "--- XB_FILTER_SUPPORT " ${XB_FILTER_SUPPORT}) IF( XB_DEBUG_SUPPORT ) Message( "--- Adding debug support" ) @@ -218,6 +220,7 @@ CHECK_INCLUDE_FILES (ctype.h HAVE_CTYPE_H) CHECK_INCLUDE_FILES (dirent.h HAVE_DIRENT_H) CHECK_INCLUDE_FILES (fcntl.h HAVE_FCNTL_H) CHECK_INCLUDE_FILES (inttypes.h HAVE_INTTYPES_H) +CHECK_INCLUDE_FILES (pwd.h HAVE_PWD_H) CHECK_INCLUDE_FILES (stdarg.h HAVE_STDARG_H) CHECK_INCLUDE_FILES (stdargs.h HAVE_STDARGS_H) CHECK_INCLUDE_FILES (string.h HAVE_STRING_H) @@ -250,6 +253,8 @@ CHECK_FUNCTION_EXISTS(vsnprintf HAVE_VSNPRINTF_F) CHECK_FUNCTION_EXISTS(_vsnprintf_s HAVE__VSNPRINTF_S_F) +CHECK_FUNCTION_EXISTS(getopt HAVE_GETOPT_F) + IF( WIN32 ) # Use CHECK_SYMBOL_EXISTS for the Win32API instead of CHECK_FUNCTION_EXISTS @@ -261,8 +266,6 @@ INCLUDE( CheckSymbolExists ) CHECK_SYMBOL_EXISTS(CreateProcessW Windows.h HAVE_CREATEPROCESSW_F ) CHECK_SYMBOL_EXISTS(vsprintf_s stdio.h HAVE_VSPRINTF_S_F ) - - ENDIF ( WIN32 ) # IF( NOT HAVE_SENTENDOFFILE_F AND NOT HAVE_FTRUNCATE_F AND BORLAND ) @@ -300,7 +303,6 @@ set( EXTRA_LIBS ${EXTRA_LIBS} ${XB_LIBNAME}) - # Undo bad decisions IF( XB_PLATFORM_32 AND XB_LARGEFILE_SUPPORT ) MESSAGE( "--- Can't build 64 bit environment with a 32 bit compiler" ) @@ -353,6 +355,10 @@ IF( XB_FILTER_SUPPORT AND NOT XB_EXPRESSION_SUPPORT ) set( XB_EXPRESSION_SUPPORT ON CACHE BOOL "Compile Expression support into library" FORCE ) ENDIF( XB_FILTER_SUPPORT AND NOT XB_EXPRESSION_SUPPORT ) +IF( XB_SQL_SUPPORT AND NOT XB_BLOCKREAD_SUPPORT ) + MESSAGE( "--- BLOCKREAD support required for SQL. Setting to ON" ) + set( XB_BLOCKREAD_SUPPORT ON CACHE BOOL "Compile Block Read support into library" FORCE ) +ENDIF( XB_SQL_SUPPORT AND NOT XB_BLOCKREAD_SUPPORT ) # Build configuration header file @@ -445,6 +451,7 @@ IF( XB_SQL_SUPPORT ) set (SOURCES ${SOURCES} ${PROJECT_SOURCE_DIR}/sql/xbinsert.cpp ) set (SOURCES ${SOURCES} ${PROJECT_SOURCE_DIR}/sql/xbset.cpp ) set (SOURCES ${SOURCES} ${PROJECT_SOURCE_DIR}/sql/xbsql.cpp ) + set (SOURCES ${SOURCES} ${PROJECT_SOURCE_DIR}/sql/xbstmt.cpp ) set (SOURCES ${SOURCES} ${PROJECT_SOURCE_DIR}/sql/xbselect.cpp ) ENDIF( XB_SQL_SUPPORT ) @@ -453,6 +460,9 @@ IF( XB_FILTER_SUPPORT ) set (SOURCES ${SOURCES} ${PROJECT_SOURCE_DIR}/core/xbfilter.cpp ) ENDIF( XB_FILTER_SUPPORT ) +IF( XB_BLOCKREAD_SUPPORT ) + set (SOURCES ${SOURCES} ${PROJECT_SOURCE_DIR}/core/xbblockread.cpp ) +ENDIF( XB_BLOCKREAD_SUPPORT ) include( GenerateExportHeader ) @@ -593,6 +603,12 @@ target_link_libraries( xb_test_filter ${EXTRA_LIBS}) add_test( NAME xbFilter COMMAND xb_test_filter QUIET ) ENDIF( XB_FILTER_SUPPORT ) +IF( XB_BLOCKREAD_SUPPORT ) +add_executable( xb_test_blockread ${PROJECT_SOURCE_DIR}/tests/xb_test_blockread.cpp ) +target_link_libraries( xb_test_blockread ${EXTRA_LIBS}) +add_test( NAME xbBlockRead COMMAND xb_test_blockread QUIET ) +ENDIF( XB_BLOCKREAD_SUPPORT ) + IF( XB_LOCKING_SUPPORT ) add_executable( xb_test_lock ${PROJECT_SOURCE_DIR}/tests/xb_test_lock.cpp ) @@ -633,6 +649,8 @@ IF( XB_EXAMPLES_SUPPORT ) add_executable( xb_ex_v4_upd_dbf ${PROJECT_SOURCE_DIR}/examples/xb_ex_v4_upd_dbf.cpp ) target_link_libraries( xb_ex_v4_upd_dbf ${EXTRA_LIBS}) + add_executable( xb_ex_ssv ${PROJECT_SOURCE_DIR}/examples/xb_ex_ssv.cpp ) + target_link_libraries( xb_ex_ssv ${EXTRA_LIBS}) ENDIF( XB_EXAMPLES_SUPPORT ) @@ -654,13 +672,9 @@ IF( XB_UTILS_SUPPORT ) add_executable( xb_dumpdbt ${PROJECT_SOURCE_DIR}/utils/xb_dumpdbt.cpp ) target_link_libraries( xb_dumpdbt ${EXTRA_LIBS}) - add_executable( xb_dumphdr ${PROJECT_SOURCE_DIR}/utils/xb_dumphdr.cpp ) - target_link_libraries( xb_dumphdr ${EXTRA_LIBS}) - add_executable( xb_dumprecs ${PROJECT_SOURCE_DIR}/utils/xb_dumprecs.cpp ) target_link_libraries( xb_dumprecs ${EXTRA_LIBS}) - add_executable( xb_tblinfo ${PROJECT_SOURCE_DIR}/utils/xb_tblinfo.cpp ) target_link_libraries( xb_tblinfo ${EXTRA_LIBS}) @@ -675,20 +689,14 @@ IF( XB_UTILS_SUPPORT ) add_executable( xb_undelall ${PROJECT_SOURCE_DIR}/utils/xb_undelall.cpp ) target_link_libraries( xb_undelall ${EXTRA_LIBS}) - add_executable( xb_zap ${PROJECT_SOURCE_DIR}/utils/xb_zap.cpp ) - target_link_libraries( xb_zap ${EXTRA_LIBS}) - - install (TARGETS xb_cfg_check DESTINATION bin) install (TARGETS xb_copydbf DESTINATION bin) install (TARGETS xb_dbfutil DESTINATION bin) install (TARGETS xb_deletall DESTINATION bin) install (TARGETS xb_dumpdbt DESTINATION bin) - install (TARGETS xb_dumphdr DESTINATION bin) install (TARGETS xb_dumprecs DESTINATION bin) install (TARGETS xb_pack DESTINATION bin) install (TARGETS xb_undelall DESTINATION bin) - install (TARGETS xb_zap DESTINATION bin) IF( XB_SQL_SUPPORT ) install (TARGETS xb_execsql DESTINATION bin) ENDIF( XB_SQL_SUPPORT ) @@ -721,10 +729,28 @@ install (FILES include/xbconfig.h ${PROJECT_SOURCE_DIR}/include/xbuda.h ${PROJECT_SOURCE_DIR}/include/xbtag.h ${PROJECT_SOURCE_DIR}/include/xbfilter.h + ${PROJECT_SOURCE_DIR}/include/xbblkread.h + ${PROJECT_SOURCE_DIR}/include/xbsql.h + DESTINATION include/${CMAKE_PROJECT_NAME}) +IF( NOT WIN32 ) +install (FILES ${PROJECT_PARENT_DIR}/docs/man/xb_cfg_chk.1.gz + ${PROJECT_PARENT_DIR}/docs/man/xb_copydbf.1.gz + ${PROJECT_PARENT_DIR}/docs/man/xb_dbfutil.1.gz + ${PROJECT_PARENT_DIR}/docs/man/xb_deletall.1.gz + ${PROJECT_PARENT_DIR}/docs/man/xb_dumpdbt.1.gz + ${PROJECT_PARENT_DIR}/docs/man/xb_dumprecs.1.gz + ${PROJECT_PARENT_DIR}/docs/man/xb_pack.1.gz + ${PROJECT_PARENT_DIR}/docs/man/xb_tblinfo.1.gz + ${PROJECT_PARENT_DIR}/docs/man/xb_undelall.1.gz + + DESTINATION man/man1) + +ENDIF( NOT WIN32 ) + -SET_TARGET_PROPERTIES( ${XB_LIBNAME} PROPERTIES VERSION 4.0.3 SOVERSION 0 ) +SET_TARGET_PROPERTIES( ${XB_LIBNAME} PROPERTIES VERSION 4.1.0 SOVERSION 0 ) IF( EXISTS /usr/local/lib64 ) install (TARGETS ${XB_LIBNAME} DESTINATION lib64/${CMAKE_PROJECT_NAME}) diff --git a/build/mac64/CMakeLists.txt b/build/mac64/CMakeLists.txt index 516b9c9..f514c5c 100755 --- a/build/mac64/CMakeLists.txt +++ b/build/mac64/CMakeLists.txt @@ -2,12 +2,13 @@ cmake_minimum_required(VERSION 3.0) project (xbase64) set( xbase_VERSION_MAJOR 4 ) -set( xbase_VERSION_MINOR 0 ) -set( xbase_VERSION_PATCH 3 ) +set( xbase_VERSION_MINOR 1 ) +set( xbase_VERSION_PATCH 0 ) MESSAGE( "--- Xbase build for: " ${CMAKE_SYSTEM_NAME} ) MESSAGE( "--- Compiler: " ${CMAKE_CXX_COMPILER_ID} ) MESSAGE( "--- Project Name: " ${CMAKE_PROJECT_NAME} ) +MESSAGE( "--- Install Prefix: " ${CMAKE_INSTALL_PREFIX} ) #Set compiler options @@ -152,42 +153,43 @@ IF( NOT ${iSize} EQUAL 8 ) ENDIF( NOT ${iSize} EQUAL 8 ) #Library options -option( BUILD_SHARED_LIBS "Build shared libraries?" ON) -option( XB_DEBUG_SUPPORT "Compile debug logic into library?" ON) -option( XB_UTILS_SUPPORT "Compile utility programs?" ON) -option( XB_EXAMPLES_SUPPORT "Compile example programs?" ON) -option( XB_MEMO_SUPPORT "Compile memo field support into library?" ON) -option( XB_LOGGING_SUPPORT "Compile message logging support into library" ON) +option( BUILD_SHARED_LIBS "Build shared libraries" ON) option( XB_DBF3_SUPPORT "Compile DBase File Format Version 3 support" ON) option( XB_DBF4_SUPPORT "Compile DBase File Format Version 4 support" ON) -option( XB_LINKLIST_SUPPORT "Compile Link List routines into library" ON) +option( XB_MEMO_SUPPORT "Compile memo field support into library" ON) +option( XB_NDX_SUPPORT "Compile NDX Index support into library" ON) +option( XB_MDX_SUPPORT "Compile MDX Index support into library" ON) option( XB_LOCKING_SUPPORT "Compile Multi User Locking support into library" ON) + +option( XB_LOGGING_SUPPORT "Compile message logging support into library" ON) +option( XB_LINKLIST_SUPPORT "Compile Link List routines into library" ON) option( XB_FUNCTION_SUPPORT "Compile XBase Function support into library" ON) option( XB_EXPRESSION_SUPPORT "Compile Expression support into library" ON) -option( XB_NDX_SUPPORT "Compile NDX Index support into library" ON) -option( XB_MDX_SUPPORT "Compile MDX Index support into library" ON) -option( XB_SQL_SUPPORT "Compile SQL support into library" ON) option( XB_INF_SUPPORT "Compile NDX INF file support into library" ON) option( XB_FILTER_SUPPORT "Compile Filter support into library" ON) - +option( XB_BLOCKREAD_SUPPORT "Compile Block Read support into library" ON) +option( XB_SQL_SUPPORT "Compile SQL support into library - alpha" ON) +option( XB_DEBUG_SUPPORT "Compile debug logic into library" ON) +option( XB_UTILS_SUPPORT "Compile utility programs" ON) +option( XB_EXAMPLES_SUPPORT "Compile example programs" ON) Message( "--- BUILD_SHARED_LIBS " ${BUILD_SHARED_LIBS}) -Message( "--- XB_MEMO_SUPPORT " ${XB_MEMO_SUPPORT}) -Message( "--- XB_DEBUG_SUPPORT " ${XB_DEBUG_SUPPORT}) -Message( "--- XB_UTILS_SUPPORT " ${XB_UTILS_SUPPORT}) -Message( "--- XB_EXAMPLES_SUPPORT " ${XB_EXAMPLES_SUPPORT}) -Message( "--- XB_LOGGING_SUPPORT " ${XB_LOGGING_SUPPORT}) Message( "--- XB_DBF3_SUPPORT " ${XB_DBF3_SUPPORT}) Message( "--- XB_DBF4_SUPPORT " ${XB_DBF4_SUPPORT}) -Message( "--- XB_LINKLIST_SUPPORT " ${XB_LINKLIST_SUPPORT}) +Message( "--- XB_MEMO_SUPPORT " ${XB_MEMO_SUPPORT}) +Message( "--- XB_NDX_SUPPORT " ${XB_NDX_SUPPORT}) +Message( "--- XB_MDX_SUPPORT " ${XB_MDX_SUPPORT}) Message( "--- XB_LOCKING_SUPPORT " ${XB_LOCKING_SUPPORT}) +Message( "--- XB_LINKLIST_SUPPORT " ${XB_LINKLIST_SUPPORT}) Message( "--- XB_FUNCTION_SUPPORT " ${XB_FUNCTION_SUPPORT}) Message( "--- XB_EXPRESSION_SUPPORT " ${XB_EXPRESSION_SUPPORT}) -Message( "--- XB_NDX_SUPPORT " ${XB_NDX_SUPPORT}) -Message( "--- XB_MDX_SUPPORT " ${XB_MDX_SUPPORT}) +Message( "--- XB_FILTER_SUPPORT " ${XB_FILTER_SUPPORT}) +Message( "--- XB_DEBUG_SUPPORT " ${XB_DEBUG_SUPPORT}) +Message( "--- XB_UTILS_SUPPORT " ${XB_UTILS_SUPPORT}) +Message( "--- XB_EXAMPLES_SUPPORT " ${XB_EXAMPLES_SUPPORT}) +Message( "--- XB_LOGGING_SUPPORT " ${XB_LOGGING_SUPPORT}) Message( "--- XB_SQL_SUPPORT " ${XB_SQL_SUPPORT}) Message( "--- XB_INF_SUPPORT " ${XB_INF_SUPPORT}) -Message( "--- XB_FILTER_SUPPORT " ${XB_FILTER_SUPPORT}) IF( XB_DEBUG_SUPPORT ) Message( "--- Adding debug support" ) @@ -218,6 +220,7 @@ CHECK_INCLUDE_FILES (ctype.h HAVE_CTYPE_H) CHECK_INCLUDE_FILES (dirent.h HAVE_DIRENT_H) CHECK_INCLUDE_FILES (fcntl.h HAVE_FCNTL_H) CHECK_INCLUDE_FILES (inttypes.h HAVE_INTTYPES_H) +CHECK_INCLUDE_FILES (pwd.h HAVE_PWD_H) CHECK_INCLUDE_FILES (stdarg.h HAVE_STDARG_H) CHECK_INCLUDE_FILES (stdargs.h HAVE_STDARGS_H) CHECK_INCLUDE_FILES (string.h HAVE_STRING_H) @@ -250,6 +253,8 @@ CHECK_FUNCTION_EXISTS(vsnprintf HAVE_VSNPRINTF_F) CHECK_FUNCTION_EXISTS(_vsnprintf_s HAVE__VSNPRINTF_S_F) +CHECK_FUNCTION_EXISTS(getopt HAVE_GETOPT_F) + IF( WIN32 ) # Use CHECK_SYMBOL_EXISTS for the Win32API instead of CHECK_FUNCTION_EXISTS @@ -261,8 +266,6 @@ INCLUDE( CheckSymbolExists ) CHECK_SYMBOL_EXISTS(CreateProcessW Windows.h HAVE_CREATEPROCESSW_F ) CHECK_SYMBOL_EXISTS(vsprintf_s stdio.h HAVE_VSPRINTF_S_F ) - - ENDIF ( WIN32 ) # IF( NOT HAVE_SENTENDOFFILE_F AND NOT HAVE_FTRUNCATE_F AND BORLAND ) @@ -300,7 +303,6 @@ set( EXTRA_LIBS ${EXTRA_LIBS} ${XB_LIBNAME}) - # Undo bad decisions IF( XB_PLATFORM_32 AND XB_LARGEFILE_SUPPORT ) MESSAGE( "--- Can't build 64 bit environment with a 32 bit compiler" ) @@ -353,6 +355,10 @@ IF( XB_FILTER_SUPPORT AND NOT XB_EXPRESSION_SUPPORT ) set( XB_EXPRESSION_SUPPORT ON CACHE BOOL "Compile Expression support into library" FORCE ) ENDIF( XB_FILTER_SUPPORT AND NOT XB_EXPRESSION_SUPPORT ) +IF( XB_SQL_SUPPORT AND NOT XB_BLOCKREAD_SUPPORT ) + MESSAGE( "--- BLOCKREAD support required for SQL. Setting to ON" ) + set( XB_BLOCKREAD_SUPPORT ON CACHE BOOL "Compile Block Read support into library" FORCE ) +ENDIF( XB_SQL_SUPPORT AND NOT XB_BLOCKREAD_SUPPORT ) # Build configuration header file @@ -445,6 +451,7 @@ IF( XB_SQL_SUPPORT ) set (SOURCES ${SOURCES} ${PROJECT_SOURCE_DIR}/sql/xbinsert.cpp ) set (SOURCES ${SOURCES} ${PROJECT_SOURCE_DIR}/sql/xbset.cpp ) set (SOURCES ${SOURCES} ${PROJECT_SOURCE_DIR}/sql/xbsql.cpp ) + set (SOURCES ${SOURCES} ${PROJECT_SOURCE_DIR}/sql/xbstmt.cpp ) set (SOURCES ${SOURCES} ${PROJECT_SOURCE_DIR}/sql/xbselect.cpp ) ENDIF( XB_SQL_SUPPORT ) @@ -453,6 +460,9 @@ IF( XB_FILTER_SUPPORT ) set (SOURCES ${SOURCES} ${PROJECT_SOURCE_DIR}/core/xbfilter.cpp ) ENDIF( XB_FILTER_SUPPORT ) +IF( XB_BLOCKREAD_SUPPORT ) + set (SOURCES ${SOURCES} ${PROJECT_SOURCE_DIR}/core/xbblockread.cpp ) +ENDIF( XB_BLOCKREAD_SUPPORT ) include( GenerateExportHeader ) @@ -593,6 +603,12 @@ target_link_libraries( xb_test_filter ${EXTRA_LIBS}) add_test( NAME xbFilter COMMAND xb_test_filter QUIET ) ENDIF( XB_FILTER_SUPPORT ) +IF( XB_BLOCKREAD_SUPPORT ) +add_executable( xb_test_blockread ${PROJECT_SOURCE_DIR}/tests/xb_test_blockread.cpp ) +target_link_libraries( xb_test_blockread ${EXTRA_LIBS}) +add_test( NAME xbBlockRead COMMAND xb_test_blockread QUIET ) +ENDIF( XB_BLOCKREAD_SUPPORT ) + IF( XB_LOCKING_SUPPORT ) add_executable( xb_test_lock ${PROJECT_SOURCE_DIR}/tests/xb_test_lock.cpp ) @@ -633,6 +649,8 @@ IF( XB_EXAMPLES_SUPPORT ) add_executable( xb_ex_v4_upd_dbf ${PROJECT_SOURCE_DIR}/examples/xb_ex_v4_upd_dbf.cpp ) target_link_libraries( xb_ex_v4_upd_dbf ${EXTRA_LIBS}) + add_executable( xb_ex_ssv ${PROJECT_SOURCE_DIR}/examples/xb_ex_ssv.cpp ) + target_link_libraries( xb_ex_ssv ${EXTRA_LIBS}) ENDIF( XB_EXAMPLES_SUPPORT ) @@ -654,13 +672,9 @@ IF( XB_UTILS_SUPPORT ) add_executable( xb_dumpdbt ${PROJECT_SOURCE_DIR}/utils/xb_dumpdbt.cpp ) target_link_libraries( xb_dumpdbt ${EXTRA_LIBS}) - add_executable( xb_dumphdr ${PROJECT_SOURCE_DIR}/utils/xb_dumphdr.cpp ) - target_link_libraries( xb_dumphdr ${EXTRA_LIBS}) - add_executable( xb_dumprecs ${PROJECT_SOURCE_DIR}/utils/xb_dumprecs.cpp ) target_link_libraries( xb_dumprecs ${EXTRA_LIBS}) - add_executable( xb_tblinfo ${PROJECT_SOURCE_DIR}/utils/xb_tblinfo.cpp ) target_link_libraries( xb_tblinfo ${EXTRA_LIBS}) @@ -675,20 +689,14 @@ IF( XB_UTILS_SUPPORT ) add_executable( xb_undelall ${PROJECT_SOURCE_DIR}/utils/xb_undelall.cpp ) target_link_libraries( xb_undelall ${EXTRA_LIBS}) - add_executable( xb_zap ${PROJECT_SOURCE_DIR}/utils/xb_zap.cpp ) - target_link_libraries( xb_zap ${EXTRA_LIBS}) - - install (TARGETS xb_cfg_check DESTINATION bin) install (TARGETS xb_copydbf DESTINATION bin) install (TARGETS xb_dbfutil DESTINATION bin) install (TARGETS xb_deletall DESTINATION bin) install (TARGETS xb_dumpdbt DESTINATION bin) - install (TARGETS xb_dumphdr DESTINATION bin) install (TARGETS xb_dumprecs DESTINATION bin) install (TARGETS xb_pack DESTINATION bin) install (TARGETS xb_undelall DESTINATION bin) - install (TARGETS xb_zap DESTINATION bin) IF( XB_SQL_SUPPORT ) install (TARGETS xb_execsql DESTINATION bin) ENDIF( XB_SQL_SUPPORT ) @@ -721,10 +729,28 @@ install (FILES include/xbconfig.h ${PROJECT_SOURCE_DIR}/include/xbuda.h ${PROJECT_SOURCE_DIR}/include/xbtag.h ${PROJECT_SOURCE_DIR}/include/xbfilter.h + ${PROJECT_SOURCE_DIR}/include/xbblkread.h + ${PROJECT_SOURCE_DIR}/include/xbsql.h + DESTINATION include/${CMAKE_PROJECT_NAME}) +IF( NOT WIN32 ) +install (FILES ${PROJECT_PARENT_DIR}/docs/man/xb_cfg_chk.1.gz + ${PROJECT_PARENT_DIR}/docs/man/xb_copydbf.1.gz + ${PROJECT_PARENT_DIR}/docs/man/xb_dbfutil.1.gz + ${PROJECT_PARENT_DIR}/docs/man/xb_deletall.1.gz + ${PROJECT_PARENT_DIR}/docs/man/xb_dumpdbt.1.gz + ${PROJECT_PARENT_DIR}/docs/man/xb_dumprecs.1.gz + ${PROJECT_PARENT_DIR}/docs/man/xb_pack.1.gz + ${PROJECT_PARENT_DIR}/docs/man/xb_tblinfo.1.gz + ${PROJECT_PARENT_DIR}/docs/man/xb_undelall.1.gz + + DESTINATION man/man1) + +ENDIF( NOT WIN32 ) + -SET_TARGET_PROPERTIES( ${XB_LIBNAME} PROPERTIES VERSION 4.0.3 SOVERSION 0 ) +SET_TARGET_PROPERTIES( ${XB_LIBNAME} PROPERTIES VERSION 4.1.0 SOVERSION 0 ) IF( EXISTS /usr/local/lib64 ) install (TARGETS ${XB_LIBNAME} DESTINATION lib64/${CMAKE_PROJECT_NAME}) diff --git a/build/win32vs/CMakeLists.txt b/build/win32vs/CMakeLists.txt index 516b9c9..f514c5c 100755 --- a/build/win32vs/CMakeLists.txt +++ b/build/win32vs/CMakeLists.txt @@ -2,12 +2,13 @@ cmake_minimum_required(VERSION 3.0) project (xbase64) set( xbase_VERSION_MAJOR 4 ) -set( xbase_VERSION_MINOR 0 ) -set( xbase_VERSION_PATCH 3 ) +set( xbase_VERSION_MINOR 1 ) +set( xbase_VERSION_PATCH 0 ) MESSAGE( "--- Xbase build for: " ${CMAKE_SYSTEM_NAME} ) MESSAGE( "--- Compiler: " ${CMAKE_CXX_COMPILER_ID} ) MESSAGE( "--- Project Name: " ${CMAKE_PROJECT_NAME} ) +MESSAGE( "--- Install Prefix: " ${CMAKE_INSTALL_PREFIX} ) #Set compiler options @@ -152,42 +153,43 @@ IF( NOT ${iSize} EQUAL 8 ) ENDIF( NOT ${iSize} EQUAL 8 ) #Library options -option( BUILD_SHARED_LIBS "Build shared libraries?" ON) -option( XB_DEBUG_SUPPORT "Compile debug logic into library?" ON) -option( XB_UTILS_SUPPORT "Compile utility programs?" ON) -option( XB_EXAMPLES_SUPPORT "Compile example programs?" ON) -option( XB_MEMO_SUPPORT "Compile memo field support into library?" ON) -option( XB_LOGGING_SUPPORT "Compile message logging support into library" ON) +option( BUILD_SHARED_LIBS "Build shared libraries" ON) option( XB_DBF3_SUPPORT "Compile DBase File Format Version 3 support" ON) option( XB_DBF4_SUPPORT "Compile DBase File Format Version 4 support" ON) -option( XB_LINKLIST_SUPPORT "Compile Link List routines into library" ON) +option( XB_MEMO_SUPPORT "Compile memo field support into library" ON) +option( XB_NDX_SUPPORT "Compile NDX Index support into library" ON) +option( XB_MDX_SUPPORT "Compile MDX Index support into library" ON) option( XB_LOCKING_SUPPORT "Compile Multi User Locking support into library" ON) + +option( XB_LOGGING_SUPPORT "Compile message logging support into library" ON) +option( XB_LINKLIST_SUPPORT "Compile Link List routines into library" ON) option( XB_FUNCTION_SUPPORT "Compile XBase Function support into library" ON) option( XB_EXPRESSION_SUPPORT "Compile Expression support into library" ON) -option( XB_NDX_SUPPORT "Compile NDX Index support into library" ON) -option( XB_MDX_SUPPORT "Compile MDX Index support into library" ON) -option( XB_SQL_SUPPORT "Compile SQL support into library" ON) option( XB_INF_SUPPORT "Compile NDX INF file support into library" ON) option( XB_FILTER_SUPPORT "Compile Filter support into library" ON) - +option( XB_BLOCKREAD_SUPPORT "Compile Block Read support into library" ON) +option( XB_SQL_SUPPORT "Compile SQL support into library - alpha" ON) +option( XB_DEBUG_SUPPORT "Compile debug logic into library" ON) +option( XB_UTILS_SUPPORT "Compile utility programs" ON) +option( XB_EXAMPLES_SUPPORT "Compile example programs" ON) Message( "--- BUILD_SHARED_LIBS " ${BUILD_SHARED_LIBS}) -Message( "--- XB_MEMO_SUPPORT " ${XB_MEMO_SUPPORT}) -Message( "--- XB_DEBUG_SUPPORT " ${XB_DEBUG_SUPPORT}) -Message( "--- XB_UTILS_SUPPORT " ${XB_UTILS_SUPPORT}) -Message( "--- XB_EXAMPLES_SUPPORT " ${XB_EXAMPLES_SUPPORT}) -Message( "--- XB_LOGGING_SUPPORT " ${XB_LOGGING_SUPPORT}) Message( "--- XB_DBF3_SUPPORT " ${XB_DBF3_SUPPORT}) Message( "--- XB_DBF4_SUPPORT " ${XB_DBF4_SUPPORT}) -Message( "--- XB_LINKLIST_SUPPORT " ${XB_LINKLIST_SUPPORT}) +Message( "--- XB_MEMO_SUPPORT " ${XB_MEMO_SUPPORT}) +Message( "--- XB_NDX_SUPPORT " ${XB_NDX_SUPPORT}) +Message( "--- XB_MDX_SUPPORT " ${XB_MDX_SUPPORT}) Message( "--- XB_LOCKING_SUPPORT " ${XB_LOCKING_SUPPORT}) +Message( "--- XB_LINKLIST_SUPPORT " ${XB_LINKLIST_SUPPORT}) Message( "--- XB_FUNCTION_SUPPORT " ${XB_FUNCTION_SUPPORT}) Message( "--- XB_EXPRESSION_SUPPORT " ${XB_EXPRESSION_SUPPORT}) -Message( "--- XB_NDX_SUPPORT " ${XB_NDX_SUPPORT}) -Message( "--- XB_MDX_SUPPORT " ${XB_MDX_SUPPORT}) +Message( "--- XB_FILTER_SUPPORT " ${XB_FILTER_SUPPORT}) +Message( "--- XB_DEBUG_SUPPORT " ${XB_DEBUG_SUPPORT}) +Message( "--- XB_UTILS_SUPPORT " ${XB_UTILS_SUPPORT}) +Message( "--- XB_EXAMPLES_SUPPORT " ${XB_EXAMPLES_SUPPORT}) +Message( "--- XB_LOGGING_SUPPORT " ${XB_LOGGING_SUPPORT}) Message( "--- XB_SQL_SUPPORT " ${XB_SQL_SUPPORT}) Message( "--- XB_INF_SUPPORT " ${XB_INF_SUPPORT}) -Message( "--- XB_FILTER_SUPPORT " ${XB_FILTER_SUPPORT}) IF( XB_DEBUG_SUPPORT ) Message( "--- Adding debug support" ) @@ -218,6 +220,7 @@ CHECK_INCLUDE_FILES (ctype.h HAVE_CTYPE_H) CHECK_INCLUDE_FILES (dirent.h HAVE_DIRENT_H) CHECK_INCLUDE_FILES (fcntl.h HAVE_FCNTL_H) CHECK_INCLUDE_FILES (inttypes.h HAVE_INTTYPES_H) +CHECK_INCLUDE_FILES (pwd.h HAVE_PWD_H) CHECK_INCLUDE_FILES (stdarg.h HAVE_STDARG_H) CHECK_INCLUDE_FILES (stdargs.h HAVE_STDARGS_H) CHECK_INCLUDE_FILES (string.h HAVE_STRING_H) @@ -250,6 +253,8 @@ CHECK_FUNCTION_EXISTS(vsnprintf HAVE_VSNPRINTF_F) CHECK_FUNCTION_EXISTS(_vsnprintf_s HAVE__VSNPRINTF_S_F) +CHECK_FUNCTION_EXISTS(getopt HAVE_GETOPT_F) + IF( WIN32 ) # Use CHECK_SYMBOL_EXISTS for the Win32API instead of CHECK_FUNCTION_EXISTS @@ -261,8 +266,6 @@ INCLUDE( CheckSymbolExists ) CHECK_SYMBOL_EXISTS(CreateProcessW Windows.h HAVE_CREATEPROCESSW_F ) CHECK_SYMBOL_EXISTS(vsprintf_s stdio.h HAVE_VSPRINTF_S_F ) - - ENDIF ( WIN32 ) # IF( NOT HAVE_SENTENDOFFILE_F AND NOT HAVE_FTRUNCATE_F AND BORLAND ) @@ -300,7 +303,6 @@ set( EXTRA_LIBS ${EXTRA_LIBS} ${XB_LIBNAME}) - # Undo bad decisions IF( XB_PLATFORM_32 AND XB_LARGEFILE_SUPPORT ) MESSAGE( "--- Can't build 64 bit environment with a 32 bit compiler" ) @@ -353,6 +355,10 @@ IF( XB_FILTER_SUPPORT AND NOT XB_EXPRESSION_SUPPORT ) set( XB_EXPRESSION_SUPPORT ON CACHE BOOL "Compile Expression support into library" FORCE ) ENDIF( XB_FILTER_SUPPORT AND NOT XB_EXPRESSION_SUPPORT ) +IF( XB_SQL_SUPPORT AND NOT XB_BLOCKREAD_SUPPORT ) + MESSAGE( "--- BLOCKREAD support required for SQL. Setting to ON" ) + set( XB_BLOCKREAD_SUPPORT ON CACHE BOOL "Compile Block Read support into library" FORCE ) +ENDIF( XB_SQL_SUPPORT AND NOT XB_BLOCKREAD_SUPPORT ) # Build configuration header file @@ -445,6 +451,7 @@ IF( XB_SQL_SUPPORT ) set (SOURCES ${SOURCES} ${PROJECT_SOURCE_DIR}/sql/xbinsert.cpp ) set (SOURCES ${SOURCES} ${PROJECT_SOURCE_DIR}/sql/xbset.cpp ) set (SOURCES ${SOURCES} ${PROJECT_SOURCE_DIR}/sql/xbsql.cpp ) + set (SOURCES ${SOURCES} ${PROJECT_SOURCE_DIR}/sql/xbstmt.cpp ) set (SOURCES ${SOURCES} ${PROJECT_SOURCE_DIR}/sql/xbselect.cpp ) ENDIF( XB_SQL_SUPPORT ) @@ -453,6 +460,9 @@ IF( XB_FILTER_SUPPORT ) set (SOURCES ${SOURCES} ${PROJECT_SOURCE_DIR}/core/xbfilter.cpp ) ENDIF( XB_FILTER_SUPPORT ) +IF( XB_BLOCKREAD_SUPPORT ) + set (SOURCES ${SOURCES} ${PROJECT_SOURCE_DIR}/core/xbblockread.cpp ) +ENDIF( XB_BLOCKREAD_SUPPORT ) include( GenerateExportHeader ) @@ -593,6 +603,12 @@ target_link_libraries( xb_test_filter ${EXTRA_LIBS}) add_test( NAME xbFilter COMMAND xb_test_filter QUIET ) ENDIF( XB_FILTER_SUPPORT ) +IF( XB_BLOCKREAD_SUPPORT ) +add_executable( xb_test_blockread ${PROJECT_SOURCE_DIR}/tests/xb_test_blockread.cpp ) +target_link_libraries( xb_test_blockread ${EXTRA_LIBS}) +add_test( NAME xbBlockRead COMMAND xb_test_blockread QUIET ) +ENDIF( XB_BLOCKREAD_SUPPORT ) + IF( XB_LOCKING_SUPPORT ) add_executable( xb_test_lock ${PROJECT_SOURCE_DIR}/tests/xb_test_lock.cpp ) @@ -633,6 +649,8 @@ IF( XB_EXAMPLES_SUPPORT ) add_executable( xb_ex_v4_upd_dbf ${PROJECT_SOURCE_DIR}/examples/xb_ex_v4_upd_dbf.cpp ) target_link_libraries( xb_ex_v4_upd_dbf ${EXTRA_LIBS}) + add_executable( xb_ex_ssv ${PROJECT_SOURCE_DIR}/examples/xb_ex_ssv.cpp ) + target_link_libraries( xb_ex_ssv ${EXTRA_LIBS}) ENDIF( XB_EXAMPLES_SUPPORT ) @@ -654,13 +672,9 @@ IF( XB_UTILS_SUPPORT ) add_executable( xb_dumpdbt ${PROJECT_SOURCE_DIR}/utils/xb_dumpdbt.cpp ) target_link_libraries( xb_dumpdbt ${EXTRA_LIBS}) - add_executable( xb_dumphdr ${PROJECT_SOURCE_DIR}/utils/xb_dumphdr.cpp ) - target_link_libraries( xb_dumphdr ${EXTRA_LIBS}) - add_executable( xb_dumprecs ${PROJECT_SOURCE_DIR}/utils/xb_dumprecs.cpp ) target_link_libraries( xb_dumprecs ${EXTRA_LIBS}) - add_executable( xb_tblinfo ${PROJECT_SOURCE_DIR}/utils/xb_tblinfo.cpp ) target_link_libraries( xb_tblinfo ${EXTRA_LIBS}) @@ -675,20 +689,14 @@ IF( XB_UTILS_SUPPORT ) add_executable( xb_undelall ${PROJECT_SOURCE_DIR}/utils/xb_undelall.cpp ) target_link_libraries( xb_undelall ${EXTRA_LIBS}) - add_executable( xb_zap ${PROJECT_SOURCE_DIR}/utils/xb_zap.cpp ) - target_link_libraries( xb_zap ${EXTRA_LIBS}) - - install (TARGETS xb_cfg_check DESTINATION bin) install (TARGETS xb_copydbf DESTINATION bin) install (TARGETS xb_dbfutil DESTINATION bin) install (TARGETS xb_deletall DESTINATION bin) install (TARGETS xb_dumpdbt DESTINATION bin) - install (TARGETS xb_dumphdr DESTINATION bin) install (TARGETS xb_dumprecs DESTINATION bin) install (TARGETS xb_pack DESTINATION bin) install (TARGETS xb_undelall DESTINATION bin) - install (TARGETS xb_zap DESTINATION bin) IF( XB_SQL_SUPPORT ) install (TARGETS xb_execsql DESTINATION bin) ENDIF( XB_SQL_SUPPORT ) @@ -721,10 +729,28 @@ install (FILES include/xbconfig.h ${PROJECT_SOURCE_DIR}/include/xbuda.h ${PROJECT_SOURCE_DIR}/include/xbtag.h ${PROJECT_SOURCE_DIR}/include/xbfilter.h + ${PROJECT_SOURCE_DIR}/include/xbblkread.h + ${PROJECT_SOURCE_DIR}/include/xbsql.h + DESTINATION include/${CMAKE_PROJECT_NAME}) +IF( NOT WIN32 ) +install (FILES ${PROJECT_PARENT_DIR}/docs/man/xb_cfg_chk.1.gz + ${PROJECT_PARENT_DIR}/docs/man/xb_copydbf.1.gz + ${PROJECT_PARENT_DIR}/docs/man/xb_dbfutil.1.gz + ${PROJECT_PARENT_DIR}/docs/man/xb_deletall.1.gz + ${PROJECT_PARENT_DIR}/docs/man/xb_dumpdbt.1.gz + ${PROJECT_PARENT_DIR}/docs/man/xb_dumprecs.1.gz + ${PROJECT_PARENT_DIR}/docs/man/xb_pack.1.gz + ${PROJECT_PARENT_DIR}/docs/man/xb_tblinfo.1.gz + ${PROJECT_PARENT_DIR}/docs/man/xb_undelall.1.gz + + DESTINATION man/man1) + +ENDIF( NOT WIN32 ) + -SET_TARGET_PROPERTIES( ${XB_LIBNAME} PROPERTIES VERSION 4.0.3 SOVERSION 0 ) +SET_TARGET_PROPERTIES( ${XB_LIBNAME} PROPERTIES VERSION 4.1.0 SOVERSION 0 ) IF( EXISTS /usr/local/lib64 ) install (TARGETS ${XB_LIBNAME} DESTINATION lib64/${CMAKE_PROJECT_NAME}) diff --git a/build/win64vs/CMakeLists.txt b/build/win64vs/CMakeLists.txt index 516b9c9..f514c5c 100755 --- a/build/win64vs/CMakeLists.txt +++ b/build/win64vs/CMakeLists.txt @@ -2,12 +2,13 @@ cmake_minimum_required(VERSION 3.0) project (xbase64) set( xbase_VERSION_MAJOR 4 ) -set( xbase_VERSION_MINOR 0 ) -set( xbase_VERSION_PATCH 3 ) +set( xbase_VERSION_MINOR 1 ) +set( xbase_VERSION_PATCH 0 ) MESSAGE( "--- Xbase build for: " ${CMAKE_SYSTEM_NAME} ) MESSAGE( "--- Compiler: " ${CMAKE_CXX_COMPILER_ID} ) MESSAGE( "--- Project Name: " ${CMAKE_PROJECT_NAME} ) +MESSAGE( "--- Install Prefix: " ${CMAKE_INSTALL_PREFIX} ) #Set compiler options @@ -152,42 +153,43 @@ IF( NOT ${iSize} EQUAL 8 ) ENDIF( NOT ${iSize} EQUAL 8 ) #Library options -option( BUILD_SHARED_LIBS "Build shared libraries?" ON) -option( XB_DEBUG_SUPPORT "Compile debug logic into library?" ON) -option( XB_UTILS_SUPPORT "Compile utility programs?" ON) -option( XB_EXAMPLES_SUPPORT "Compile example programs?" ON) -option( XB_MEMO_SUPPORT "Compile memo field support into library?" ON) -option( XB_LOGGING_SUPPORT "Compile message logging support into library" ON) +option( BUILD_SHARED_LIBS "Build shared libraries" ON) option( XB_DBF3_SUPPORT "Compile DBase File Format Version 3 support" ON) option( XB_DBF4_SUPPORT "Compile DBase File Format Version 4 support" ON) -option( XB_LINKLIST_SUPPORT "Compile Link List routines into library" ON) +option( XB_MEMO_SUPPORT "Compile memo field support into library" ON) +option( XB_NDX_SUPPORT "Compile NDX Index support into library" ON) +option( XB_MDX_SUPPORT "Compile MDX Index support into library" ON) option( XB_LOCKING_SUPPORT "Compile Multi User Locking support into library" ON) + +option( XB_LOGGING_SUPPORT "Compile message logging support into library" ON) +option( XB_LINKLIST_SUPPORT "Compile Link List routines into library" ON) option( XB_FUNCTION_SUPPORT "Compile XBase Function support into library" ON) option( XB_EXPRESSION_SUPPORT "Compile Expression support into library" ON) -option( XB_NDX_SUPPORT "Compile NDX Index support into library" ON) -option( XB_MDX_SUPPORT "Compile MDX Index support into library" ON) -option( XB_SQL_SUPPORT "Compile SQL support into library" ON) option( XB_INF_SUPPORT "Compile NDX INF file support into library" ON) option( XB_FILTER_SUPPORT "Compile Filter support into library" ON) - +option( XB_BLOCKREAD_SUPPORT "Compile Block Read support into library" ON) +option( XB_SQL_SUPPORT "Compile SQL support into library - alpha" ON) +option( XB_DEBUG_SUPPORT "Compile debug logic into library" ON) +option( XB_UTILS_SUPPORT "Compile utility programs" ON) +option( XB_EXAMPLES_SUPPORT "Compile example programs" ON) Message( "--- BUILD_SHARED_LIBS " ${BUILD_SHARED_LIBS}) -Message( "--- XB_MEMO_SUPPORT " ${XB_MEMO_SUPPORT}) -Message( "--- XB_DEBUG_SUPPORT " ${XB_DEBUG_SUPPORT}) -Message( "--- XB_UTILS_SUPPORT " ${XB_UTILS_SUPPORT}) -Message( "--- XB_EXAMPLES_SUPPORT " ${XB_EXAMPLES_SUPPORT}) -Message( "--- XB_LOGGING_SUPPORT " ${XB_LOGGING_SUPPORT}) Message( "--- XB_DBF3_SUPPORT " ${XB_DBF3_SUPPORT}) Message( "--- XB_DBF4_SUPPORT " ${XB_DBF4_SUPPORT}) -Message( "--- XB_LINKLIST_SUPPORT " ${XB_LINKLIST_SUPPORT}) +Message( "--- XB_MEMO_SUPPORT " ${XB_MEMO_SUPPORT}) +Message( "--- XB_NDX_SUPPORT " ${XB_NDX_SUPPORT}) +Message( "--- XB_MDX_SUPPORT " ${XB_MDX_SUPPORT}) Message( "--- XB_LOCKING_SUPPORT " ${XB_LOCKING_SUPPORT}) +Message( "--- XB_LINKLIST_SUPPORT " ${XB_LINKLIST_SUPPORT}) Message( "--- XB_FUNCTION_SUPPORT " ${XB_FUNCTION_SUPPORT}) Message( "--- XB_EXPRESSION_SUPPORT " ${XB_EXPRESSION_SUPPORT}) -Message( "--- XB_NDX_SUPPORT " ${XB_NDX_SUPPORT}) -Message( "--- XB_MDX_SUPPORT " ${XB_MDX_SUPPORT}) +Message( "--- XB_FILTER_SUPPORT " ${XB_FILTER_SUPPORT}) +Message( "--- XB_DEBUG_SUPPORT " ${XB_DEBUG_SUPPORT}) +Message( "--- XB_UTILS_SUPPORT " ${XB_UTILS_SUPPORT}) +Message( "--- XB_EXAMPLES_SUPPORT " ${XB_EXAMPLES_SUPPORT}) +Message( "--- XB_LOGGING_SUPPORT " ${XB_LOGGING_SUPPORT}) Message( "--- XB_SQL_SUPPORT " ${XB_SQL_SUPPORT}) Message( "--- XB_INF_SUPPORT " ${XB_INF_SUPPORT}) -Message( "--- XB_FILTER_SUPPORT " ${XB_FILTER_SUPPORT}) IF( XB_DEBUG_SUPPORT ) Message( "--- Adding debug support" ) @@ -218,6 +220,7 @@ CHECK_INCLUDE_FILES (ctype.h HAVE_CTYPE_H) CHECK_INCLUDE_FILES (dirent.h HAVE_DIRENT_H) CHECK_INCLUDE_FILES (fcntl.h HAVE_FCNTL_H) CHECK_INCLUDE_FILES (inttypes.h HAVE_INTTYPES_H) +CHECK_INCLUDE_FILES (pwd.h HAVE_PWD_H) CHECK_INCLUDE_FILES (stdarg.h HAVE_STDARG_H) CHECK_INCLUDE_FILES (stdargs.h HAVE_STDARGS_H) CHECK_INCLUDE_FILES (string.h HAVE_STRING_H) @@ -250,6 +253,8 @@ CHECK_FUNCTION_EXISTS(vsnprintf HAVE_VSNPRINTF_F) CHECK_FUNCTION_EXISTS(_vsnprintf_s HAVE__VSNPRINTF_S_F) +CHECK_FUNCTION_EXISTS(getopt HAVE_GETOPT_F) + IF( WIN32 ) # Use CHECK_SYMBOL_EXISTS for the Win32API instead of CHECK_FUNCTION_EXISTS @@ -261,8 +266,6 @@ INCLUDE( CheckSymbolExists ) CHECK_SYMBOL_EXISTS(CreateProcessW Windows.h HAVE_CREATEPROCESSW_F ) CHECK_SYMBOL_EXISTS(vsprintf_s stdio.h HAVE_VSPRINTF_S_F ) - - ENDIF ( WIN32 ) # IF( NOT HAVE_SENTENDOFFILE_F AND NOT HAVE_FTRUNCATE_F AND BORLAND ) @@ -300,7 +303,6 @@ set( EXTRA_LIBS ${EXTRA_LIBS} ${XB_LIBNAME}) - # Undo bad decisions IF( XB_PLATFORM_32 AND XB_LARGEFILE_SUPPORT ) MESSAGE( "--- Can't build 64 bit environment with a 32 bit compiler" ) @@ -353,6 +355,10 @@ IF( XB_FILTER_SUPPORT AND NOT XB_EXPRESSION_SUPPORT ) set( XB_EXPRESSION_SUPPORT ON CACHE BOOL "Compile Expression support into library" FORCE ) ENDIF( XB_FILTER_SUPPORT AND NOT XB_EXPRESSION_SUPPORT ) +IF( XB_SQL_SUPPORT AND NOT XB_BLOCKREAD_SUPPORT ) + MESSAGE( "--- BLOCKREAD support required for SQL. Setting to ON" ) + set( XB_BLOCKREAD_SUPPORT ON CACHE BOOL "Compile Block Read support into library" FORCE ) +ENDIF( XB_SQL_SUPPORT AND NOT XB_BLOCKREAD_SUPPORT ) # Build configuration header file @@ -445,6 +451,7 @@ IF( XB_SQL_SUPPORT ) set (SOURCES ${SOURCES} ${PROJECT_SOURCE_DIR}/sql/xbinsert.cpp ) set (SOURCES ${SOURCES} ${PROJECT_SOURCE_DIR}/sql/xbset.cpp ) set (SOURCES ${SOURCES} ${PROJECT_SOURCE_DIR}/sql/xbsql.cpp ) + set (SOURCES ${SOURCES} ${PROJECT_SOURCE_DIR}/sql/xbstmt.cpp ) set (SOURCES ${SOURCES} ${PROJECT_SOURCE_DIR}/sql/xbselect.cpp ) ENDIF( XB_SQL_SUPPORT ) @@ -453,6 +460,9 @@ IF( XB_FILTER_SUPPORT ) set (SOURCES ${SOURCES} ${PROJECT_SOURCE_DIR}/core/xbfilter.cpp ) ENDIF( XB_FILTER_SUPPORT ) +IF( XB_BLOCKREAD_SUPPORT ) + set (SOURCES ${SOURCES} ${PROJECT_SOURCE_DIR}/core/xbblockread.cpp ) +ENDIF( XB_BLOCKREAD_SUPPORT ) include( GenerateExportHeader ) @@ -593,6 +603,12 @@ target_link_libraries( xb_test_filter ${EXTRA_LIBS}) add_test( NAME xbFilter COMMAND xb_test_filter QUIET ) ENDIF( XB_FILTER_SUPPORT ) +IF( XB_BLOCKREAD_SUPPORT ) +add_executable( xb_test_blockread ${PROJECT_SOURCE_DIR}/tests/xb_test_blockread.cpp ) +target_link_libraries( xb_test_blockread ${EXTRA_LIBS}) +add_test( NAME xbBlockRead COMMAND xb_test_blockread QUIET ) +ENDIF( XB_BLOCKREAD_SUPPORT ) + IF( XB_LOCKING_SUPPORT ) add_executable( xb_test_lock ${PROJECT_SOURCE_DIR}/tests/xb_test_lock.cpp ) @@ -633,6 +649,8 @@ IF( XB_EXAMPLES_SUPPORT ) add_executable( xb_ex_v4_upd_dbf ${PROJECT_SOURCE_DIR}/examples/xb_ex_v4_upd_dbf.cpp ) target_link_libraries( xb_ex_v4_upd_dbf ${EXTRA_LIBS}) + add_executable( xb_ex_ssv ${PROJECT_SOURCE_DIR}/examples/xb_ex_ssv.cpp ) + target_link_libraries( xb_ex_ssv ${EXTRA_LIBS}) ENDIF( XB_EXAMPLES_SUPPORT ) @@ -654,13 +672,9 @@ IF( XB_UTILS_SUPPORT ) add_executable( xb_dumpdbt ${PROJECT_SOURCE_DIR}/utils/xb_dumpdbt.cpp ) target_link_libraries( xb_dumpdbt ${EXTRA_LIBS}) - add_executable( xb_dumphdr ${PROJECT_SOURCE_DIR}/utils/xb_dumphdr.cpp ) - target_link_libraries( xb_dumphdr ${EXTRA_LIBS}) - add_executable( xb_dumprecs ${PROJECT_SOURCE_DIR}/utils/xb_dumprecs.cpp ) target_link_libraries( xb_dumprecs ${EXTRA_LIBS}) - add_executable( xb_tblinfo ${PROJECT_SOURCE_DIR}/utils/xb_tblinfo.cpp ) target_link_libraries( xb_tblinfo ${EXTRA_LIBS}) @@ -675,20 +689,14 @@ IF( XB_UTILS_SUPPORT ) add_executable( xb_undelall ${PROJECT_SOURCE_DIR}/utils/xb_undelall.cpp ) target_link_libraries( xb_undelall ${EXTRA_LIBS}) - add_executable( xb_zap ${PROJECT_SOURCE_DIR}/utils/xb_zap.cpp ) - target_link_libraries( xb_zap ${EXTRA_LIBS}) - - install (TARGETS xb_cfg_check DESTINATION bin) install (TARGETS xb_copydbf DESTINATION bin) install (TARGETS xb_dbfutil DESTINATION bin) install (TARGETS xb_deletall DESTINATION bin) install (TARGETS xb_dumpdbt DESTINATION bin) - install (TARGETS xb_dumphdr DESTINATION bin) install (TARGETS xb_dumprecs DESTINATION bin) install (TARGETS xb_pack DESTINATION bin) install (TARGETS xb_undelall DESTINATION bin) - install (TARGETS xb_zap DESTINATION bin) IF( XB_SQL_SUPPORT ) install (TARGETS xb_execsql DESTINATION bin) ENDIF( XB_SQL_SUPPORT ) @@ -721,10 +729,28 @@ install (FILES include/xbconfig.h ${PROJECT_SOURCE_DIR}/include/xbuda.h ${PROJECT_SOURCE_DIR}/include/xbtag.h ${PROJECT_SOURCE_DIR}/include/xbfilter.h + ${PROJECT_SOURCE_DIR}/include/xbblkread.h + ${PROJECT_SOURCE_DIR}/include/xbsql.h + DESTINATION include/${CMAKE_PROJECT_NAME}) +IF( NOT WIN32 ) +install (FILES ${PROJECT_PARENT_DIR}/docs/man/xb_cfg_chk.1.gz + ${PROJECT_PARENT_DIR}/docs/man/xb_copydbf.1.gz + ${PROJECT_PARENT_DIR}/docs/man/xb_dbfutil.1.gz + ${PROJECT_PARENT_DIR}/docs/man/xb_deletall.1.gz + ${PROJECT_PARENT_DIR}/docs/man/xb_dumpdbt.1.gz + ${PROJECT_PARENT_DIR}/docs/man/xb_dumprecs.1.gz + ${PROJECT_PARENT_DIR}/docs/man/xb_pack.1.gz + ${PROJECT_PARENT_DIR}/docs/man/xb_tblinfo.1.gz + ${PROJECT_PARENT_DIR}/docs/man/xb_undelall.1.gz + + DESTINATION man/man1) + +ENDIF( NOT WIN32 ) + -SET_TARGET_PROPERTIES( ${XB_LIBNAME} PROPERTIES VERSION 4.0.3 SOVERSION 0 ) +SET_TARGET_PROPERTIES( ${XB_LIBNAME} PROPERTIES VERSION 4.1.0 SOVERSION 0 ) IF( EXISTS /usr/local/lib64 ) install (TARGETS ${XB_LIBNAME} DESTINATION lib64/${CMAKE_PROJECT_NAME}) diff --git a/docs/doxygen/html/classxb_1_1xbDate.html b/docs/doxygen/html/classxb_1_1xbDate.html index 80dcc57..67f85fc 100644 --- a/docs/doxygen/html/classxb_1_1xbDate.html +++ b/docs/doxygen/html/classxb_1_1xbDate.html @@ -235,12 +235,15 @@ Public Member Functions void SetDefaultAutoCommit (xbBool bDefaultAutoCommit)  Set the default auto commit. More...
  -xbStringGetDefaultLogDirectory () const -  -xbStringGetDefaultLogFileName () const -  -void SetDefaultLogDirectory (const xbString &sDefaultLogDirectory) -  +void GetHomeDir (xbString &sHomeDirOut) + Get home directory. More...
+  +xbStringGetLogDirectory () const +  +xbStringGetLogFileName () const +  +void SetLogDirectory (const xbString &sLogDirectory) +  xbBool GetMultiUser () const  Get the multi user setting. More...
  @@ -863,8 +866,8 @@ XB_NO_ERROR - -

◆ GetDefaultLogDirectory()

+ +

◆ GetEndianType()

@@ -873,7 +876,7 @@ XB_NO_ERROR - + @@ -886,10 +889,15 @@ XB_NO_ERROR
xbString & xb::xbSsv::GetDefaultLogDirectory xbInt16 xb::xbSsv::GetEndianType ( ) const
+

Get the Endian type.

+
Returns
B - Big endian
+ L - Little endian
+
+
- -

◆ GetDefaultLogFileName()

+ +

◆ GetErrorMessage()

@@ -898,9 +906,10 @@ XB_NO_ERROR - + - + +
xbString & xb::xbSsv::GetDefaultLogFileName const char * xb::xbSsv::GetErrorMessage ()xbInt16 iErrorCode) const
@@ -911,10 +920,19 @@ XB_NO_ERROR
+

Get an error message.

+
Parameters
+ + +
iErrorCodeErrorCode is the error number of description to be returned.
+
+
+
Returns
Returns a pointer to a string containing a text description for the error code.
+
- -

◆ GetEndianType()

+ +

◆ GetHomeDir()

@@ -923,10 +941,11 @@ XB_NO_ERROR - + - - + + +
xbInt16 xb::xbSsv::GetEndianType void xb::xbSsv::GetHomeDir () constxbStringsHomeDirOut)
@@ -936,15 +955,19 @@ XB_NO_ERROR
-

Get the Endian type.

-
Returns
B - Big endian
- L - Little endian
-
+

Get home directory.

+
Parameters
+ + +
sHomeDirOut- Output home directory for current user.
+
+
+
Returns
void
- -

◆ GetErrorMessage()

+ +

◆ GetLogDirectory()

@@ -953,10 +976,9 @@ XB_NO_ERROR - + - - +
const char * xb::xbSsv::GetErrorMessage xbString & xb::xbSsv::GetLogDirectory (xbInt16 iErrorCode)) const
@@ -967,14 +989,30 @@ XB_NO_ERROR
-

Get an error message.

-
Parameters
- - -
iErrorCodeErrorCode is the error number of description to be returned.
-
-
-
Returns
Returns a pointer to a string containing a text description for the error code.
+
+
+ +

◆ GetLogFileName()

+ +
+
+ + + + + +
+ + + + + + + +
xbString & xb::xbSsv::GetLogFileName () const
+
+inherited
+
@@ -1646,8 +1684,8 @@ XB_INVALID_DATE - -

◆ SetDefaultLogDirectory()

+ +

◆ SetEndianType()

@@ -1656,24 +1694,26 @@ XB_INVALID_DATE - + - - +
void xb::xbSsv::SetDefaultLogDirectory void xb::xbSsv::SetEndianType (const xbStringsDefaultLogDirectory))
-inherited +protectedinherited
+

Set the endian type.

+

This routine determines the Endian-ness at run time instead of compile time as some processers (ie; Sparc,ARM) can be switched either way. This routine is called automatically by the library at startup and does not need to be called in an application program.

+
- -

◆ SetEndianType()

+ +

◆ SetLogDirectory()

@@ -1682,22 +1722,20 @@ XB_INVALID_DATE - + - + +
void xb::xbSsv::SetEndianType void xb::xbSsv::SetLogDirectory ()const xbStringsLogDirectory)
-protectedinherited +inherited
-

Set the endian type.

-

This routine determines the Endian-ness at run time instead of compile time as some processers (ie; Sparc,ARM) can be switched either way. This routine is called automatically by the library at startup and does not need to be called in an application program.

-
@@ -1864,8 +1902,8 @@ XB_INVALID_DATE
The documentation for this class was generated from the following files: diff --git a/docs/doxygen/html/classxb_1_1xbDbf.html b/docs/doxygen/html/classxb_1_1xbDbf.html index d532bc4..0546182 100644 --- a/docs/doxygen/html/classxb_1_1xbDbf.html +++ b/docs/doxygen/html/classxb_1_1xbDbf.html @@ -144,12 +144,18 @@ Public Member Functions virtual xbInt16 GetAutoCommit (xbInt16 iOption) const  Get auto commit setting. More...
  +virtual xbBool GetBof () + Get a pointer to the current index object. More...
+  virtual xbUInt32 GetCurRecNo () const - Get a pointer to the current index object. More...
+ Return the current record number. More...
  virtual xbInt16 GetDbfStatus () const  Return the current dbf status. More...
  +virtual xbBool GetEof () + Return true if dbf file empty or positioned to the last record. More...
+  virtual xbInt32 GetFieldCnt () const  Return the number of fields in the table. More...
  @@ -159,6 +165,8 @@ Public Member Functions virtual xbInt16 GetFirstRecord (xbInt16 iOption)  Get the first record. More...
  +virtual xbUInt16 GetHeaderLen () const +  virtual xbInt16 GetLastRecord ()  Get the last record. More...
  @@ -378,6 +386,9 @@ Public Member Functions virtual xbInt16 PutDateField (const xbString &sFieldName, const xbDate &dt)  Put date field for field name. More...
  +xbInt16 SetHomeFolders () + Create Home Folders. More...
+  xbInt16 CreateUniqueFileName (const xbString &sDirIn, const xbString &sExtIn, xbString &sFqnOut)  Create a unique file name. More...
  @@ -621,12 +632,15 @@ Public Member Functions void SetDefaultAutoCommit (xbBool bDefaultAutoCommit)  Set the default auto commit. More...
  -xbStringGetDefaultLogDirectory () const -  -xbStringGetDefaultLogFileName () const -  -void SetDefaultLogDirectory (const xbString &sDefaultLogDirectory) -  +void GetHomeDir (xbString &sHomeDirOut) + Get home directory. More...
+  +xbStringGetLogDirectory () const +  +xbStringGetLogFileName () const +  +void SetLogDirectory (const xbString &sLogDirectory) +  xbBool GetMultiUser () const  Get the multi user setting. More...
  @@ -2315,6 +2329,36 @@ Static Protected Attributes

Get the block size.

Returns
Block Size
+ + + +

◆ GetBof()

+ +
+
+ + + + + +
+ + + + + + + +
xbBool xb::xbDbf::GetBof ()
+
+virtual
+
+ +

Get a pointer to the current index object.

+
Returns
Pointer to current index.
+

Return true if dbf file empty or positioned to the first record

+
Returns
Returns true if dbf file is empty or positioned on the first record.
+
@@ -2340,9 +2384,7 @@ Static Protected Attributes
-

Get a pointer to the current index object.

-
Returns
Pointer to current index.
-

Return the current record number.

+

Return the current record number.

Returns
Returns the current record number.
@@ -2566,56 +2608,6 @@ XB_INVALID_DATA

Get the default date format.

Returns
xbString containing the default date format.
- - - -

◆ GetDefaultLogDirectory()

- -
-
- - - - - -
- - - - - - - -
xbString & xb::xbSsv::GetDefaultLogDirectory () const
-
-inherited
-
- -
-
- -

◆ GetDefaultLogFileName()

- -
-
- - - - - -
- - - - - - - -
xbString & xb::xbSsv::GetDefaultLogFileName () const
-
-inherited
-
-
@@ -2838,6 +2830,34 @@ XB_INVALID_DATA L - Little endian
+ + + +

◆ GetEof()

+ +
+
+ + + + + +
+ + + + + + + +
xbBool xb::xbDbf::GetEof ()
+
+virtual
+
+ +

Return true if dbf file empty or positioned to the last record.

+
Returns
Returns true if dbf file is empty or positioned on the last record.
+
@@ -4090,6 +4110,66 @@ XB_INVALID_DATA

Get the fully qualified file name.

Returns
the fully qualfied name of the file
+ + + +

◆ GetHeaderLen()

+ +
+
+ + + + + +
+ + + + + + + +
virtual xbUInt16 xb::xbDbf::GetHeaderLen () const
+
+virtual
+
+ +
+
+ +

◆ GetHomeDir()

+ +
+
+ + + + + +
+ + + + + + + + +
void xb::xbSsv::GetHomeDir (xbStringsHomeDirOut)
+
+inherited
+
+ +

Get home directory.

+
Parameters
+ + +
sHomeDirOut- Output home directory for current user.
+
+
+
Returns
void
+
@@ -4156,6 +4236,56 @@ XB_INVALID_DATA
Returns
Return Codes
+ + + +

◆ GetLogDirectory()

+ +
+
+ + + + + +
+ + + + + + + +
xbString & xb::xbSsv::GetLogDirectory () const
+
+inherited
+
+ +
+
+ +

◆ GetLogFileName()

+ +
+
+ + + + + +
+ + + + + + + +
xbString & xb::xbSsv::GetLogFileName () const
+
+inherited
+
+
@@ -6954,32 +7084,6 @@ xbFalse - Record not deleted. - - - -

◆ SetDefaultLogDirectory()

- -
-
- - - - - -
- - - - - - - - -
void xb::xbSsv::SetDefaultLogDirectory (const xbStringsDefaultLogDirectory)
-
-inherited
-
-
@@ -7114,6 +7218,61 @@ xbFalse - Record not deleted. + + + +

◆ SetHomeFolders()

+ +
+
+ + + + + +
+ + + + + + + +
xbInt16 xb::xbFile::SetHomeFolders ()
+
+inherited
+
+ +

Create Home Folders.

+

Create xbase64 log and data folders in the home directory for current usre.

+
Returns
Return Codes
+ +
+
+ +

◆ SetLogDirectory()

+ +
+
+ + + + + +
+ + + + + + + + +
void xb::xbSsv::SetLogDirectory (const xbStringsLogDirectory)
+
+inherited
+
+
@@ -7961,7 +8120,7 @@ The mode can also include the letter "b" for binary ie; "r+b". The "b" is ignore - +
pPointer to data to write
sizesize of write
nmembNumber of times to write it
nmembNumber of times to read it
@@ -8950,9 +9109,9 @@ The mode can also include the letter "b" for binary ie; "r+b". The "b" is ignore
The documentation for this class was generated from the following files: diff --git a/docs/doxygen/html/classxb_1_1xbFile.html b/docs/doxygen/html/classxb_1_1xbFile.html index b569a52..885e969 100644 --- a/docs/doxygen/html/classxb_1_1xbFile.html +++ b/docs/doxygen/html/classxb_1_1xbFile.html @@ -100,6 +100,9 @@ Public Member Functions  ~xbFile ()  Class Destructor. More...
  +xbInt16 SetHomeFolders () + Create Home Folders. More...
+  xbInt16 CreateUniqueFileName (const xbString &sDirIn, const xbString &sExtIn, xbString &sFqnOut)  Create a unique file name. More...
  @@ -343,12 +346,15 @@ Public Member Functions void SetDefaultAutoCommit (xbBool bDefaultAutoCommit)  Set the default auto commit. More...
  -xbStringGetDefaultLogDirectory () const -  -xbStringGetDefaultLogFileName () const -  -void SetDefaultLogDirectory (const xbString &sDefaultLogDirectory) -  +void GetHomeDir (xbString &sHomeDirOut) + Get home directory. More...
+  +xbStringGetLogDirectory () const +  +xbStringGetLogFileName () const +  +void SetLogDirectory (const xbString &sLogDirectory) +  xbBool GetMultiUser () const  Get the multi user setting. More...
  @@ -1319,56 +1325,6 @@ Static Protected Attributes

Get the default date format.

Returns
xbString containing the default date format.
- - - -

◆ GetDefaultLogDirectory()

- -
-
- - - - - -
- - - - - - - -
xbString & xb::xbSsv::GetDefaultLogDirectory () const
-
-inherited
-
- -
-
- -

◆ GetDefaultLogFileName()

- -
-
- - - - - -
- - - - - - - -
xbString & xb::xbSsv::GetDefaultLogFileName () const
-
-inherited
-
-
@@ -1770,6 +1726,91 @@ Static Protected Attributes

Get the fully qualified file name.

Returns
the fully qualfied name of the file
+ + + +

◆ GetHomeDir()

+ +
+
+ + + + + +
+ + + + + + + + +
void xb::xbSsv::GetHomeDir (xbStringsHomeDirOut)
+
+inherited
+
+ +

Get home directory.

+
Parameters
+ + +
sHomeDirOut- Output home directory for current user.
+
+
+
Returns
void
+ +
+
+ +

◆ GetLogDirectory()

+ +
+
+ + + + + +
+ + + + + + + +
xbString & xb::xbSsv::GetLogDirectory () const
+
+inherited
+
+ +
+
+ +

◆ GetLogFileName()

+ +
+
+ + + + + +
+ + + + + + + +
xbString & xb::xbSsv::GetLogFileName () const
+
+inherited
+
+
@@ -2244,32 +2285,6 @@ Static Protected Attributes - - - -

◆ SetDefaultLogDirectory()

- -
-
- - - - - -
- - - - - - - - -
void xb::xbSsv::SetDefaultLogDirectory (const xbStringsDefaultLogDirectory)
-
-inherited
-
-
@@ -2380,6 +2395,53 @@ Static Protected Attributes + + + +

◆ SetHomeFolders()

+ +
+
+ + + + + + + +
xbInt16 xb::xbFile::SetHomeFolders ()
+
+ +

Create Home Folders.

+

Create xbase64 log and data folders in the home directory for current usre.

+
Returns
Return Codes
+ +
+
+ +

◆ SetLogDirectory()

+ +
+
+ + + + + +
+ + + + + + + + +
void xb::xbSsv::SetLogDirectory (const xbStringsLogDirectory)
+
+inherited
+
+
@@ -2925,7 +2987,7 @@ The mode can also include the letter "b" for binary ie; "r+b". The "b" is ignore - +
pPointer to data to write
sizesize of write
nmembNumber of times to write it
nmembNumber of times to read it
@@ -3358,8 +3420,8 @@ The mode can also include the letter "b" for binary ie; "r+b". The "b" is ignore
The documentation for this class was generated from the following files: diff --git a/docs/doxygen/html/classxb_1_1xbSsv.html b/docs/doxygen/html/classxb_1_1xbSsv.html index 9180d1d..96a07d8 100644 --- a/docs/doxygen/html/classxb_1_1xbSsv.html +++ b/docs/doxygen/html/classxb_1_1xbSsv.html @@ -133,12 +133,15 @@ Public Member Functions void SetDefaultAutoCommit (xbBool bDefaultAutoCommit)  Set the default auto commit. More...
  -xbStringGetDefaultLogDirectory () const -  -xbStringGetDefaultLogFileName () const -  -void SetDefaultLogDirectory (const xbString &sDefaultLogDirectory) -  +void GetHomeDir (xbString &sHomeDirOut) + Get home directory. More...
+  +xbStringGetLogDirectory () const +  +xbStringGetLogFileName () const +  +void SetLogDirectory (const xbString &sLogDirectory) +  xbBool GetMultiUser () const  Get the multi user setting. More...
  @@ -352,14 +355,14 @@ Static Protected Attributes - -

◆ GetDefaultLogDirectory()

+ +

◆ GetEndianType()

- + @@ -367,71 +370,98 @@ Static Protected Attributes
xbString & xb::xbSsv::GetDefaultLogDirectory xbInt16 xb::xbSsv::GetEndianType ( ) const
+

Get the Endian type.

+
Returns
B - Big endian
+ L - Little endian
+
+
- -

◆ GetDefaultLogFileName()

+ +

◆ GetErrorMessage()

- + - + +
xbString & xb::xbSsv::GetDefaultLogFileName const char * xb::xbSsv::GetErrorMessage ()xbInt16 iErrorCode) const
+

Get an error message.

+
Parameters
+ + +
iErrorCodeErrorCode is the error number of description to be returned.
+
+
+
Returns
Returns a pointer to a string containing a text description for the error code.
+
- -

◆ GetEndianType()

+ +

◆ GetHomeDir()

- + - - + + +
xbInt16 xb::xbSsv::GetEndianType void xb::xbSsv::GetHomeDir () constxbStringsHomeDirOut)
-

Get the Endian type.

-
Returns
B - Big endian
- L - Little endian
-
+

Get home directory.

+
Parameters
+ + +
sHomeDirOut- Output home directory for current user.
+
+
+
Returns
void
- -

◆ GetErrorMessage()

+ +

◆ GetLogDirectory()

- + - - +
const char * xb::xbSsv::GetErrorMessage xbString & xb::xbSsv::GetLogDirectory (xbInt16 iErrorCode)) const
-

Get an error message.

-
Parameters
- - -
iErrorCodeErrorCode is the error number of description to be returned.
-
-
-
Returns
Returns a pointer to a string containing a text description for the error code.
+
+
+ +

◆ GetLogFileName()

+ +
+
+ + + + + + + +
xbString & xb::xbSsv::GetLogFileName () const
+
@@ -536,24 +566,6 @@ Static Protected Attributes - - - -

◆ SetDefaultLogDirectory()

- -
-
- - - - - - - - -
void xb::xbSsv::SetDefaultLogDirectory (const xbStringsDefaultLogDirectory)
-
-
@@ -582,6 +594,24 @@ Static Protected Attributes

Set the endian type.

This routine determines the Endian-ness at run time instead of compile time as some processers (ie; Sparc,ARM) can be switched either way. This routine is called automatically by the library at startup and does not need to be called in an application program.

+ + + +

◆ SetLogDirectory()

+ +
+
+ + + + + + + + +
void xb::xbSsv::SetLogDirectory (const xbStringsLogDirectory)
+
+
@@ -680,8 +710,8 @@ Static Protected Attributes
The documentation for this class was generated from the following files: diff --git a/docs/doxygen/html/classxb_1_1xbString.html b/docs/doxygen/html/classxb_1_1xbString.html index 7d509c9..1cf60fe 100644 --- a/docs/doxygen/html/classxb_1_1xbString.html +++ b/docs/doxygen/html/classxb_1_1xbString.html @@ -267,6 +267,9 @@ Public Member Functions xbStringPadRight (char c, xbUInt32 ulLen)  Right pad string. More...
  +xbUInt32 Pos (char c, xbUInt32 ulStartPos) const + Determine position of a given character. More...
+  xbUInt32 Pos (char c) const  Determine position of a given character. More...
  @@ -2124,7 +2127,7 @@ Friends -

◆ Pos() [1/2]

+

◆ Pos() [1/3]

@@ -2148,10 +2151,48 @@ Friends
Returns
Position within string. Returns 0 if not found.
+
+
+ +

◆ Pos() [2/3]

+ +
+
+ + + + + + + + + + + + + + + + + + +
xbUInt32 xb::xbString::Pos (char c,
xbUInt32 ulStartPos 
) const
+
+ +

Determine position of a given character.

+
Parameters
+ + + +
cSeek character
ulStartPosstarting position for search, first position is 1
+
+
+
Returns
Position within string. Returns 0 if not found.
+
-

◆ Pos() [2/2]

+

◆ Pos() [3/3]

@@ -2835,8 +2876,8 @@ Friends

The documentation for this class was generated from the following files: diff --git a/docs/doxygen/html/classxb_1_1xbTblMgr.html b/docs/doxygen/html/classxb_1_1xbTblMgr.html index ccd4287..c94fe35 100644 --- a/docs/doxygen/html/classxb_1_1xbTblMgr.html +++ b/docs/doxygen/html/classxb_1_1xbTblMgr.html @@ -94,10 +94,10 @@ Public Member Functions    ~xbTblMgr ()   -xbInt16 AddTblToTblList (xbDbf *d, const xbString &sTblName) -  -xbInt16 AddTblToTblList (xbDbf *d, const xbString &sTblName, const xbString &sTblAlias) -  +xbInt16 AddTblToTblList (xbDbf *d, const xbString &sFqTblName) +  +xbInt16 AddTblToTblList (xbDbf *d, const xbString &sFqTblName, const xbString &sTblAlias) +  xbInt16 DisplayTableList () const   xbDbfGetDbfPtr (const xbString &sTblAlias) const @@ -146,12 +146,15 @@ Public Member Functions void SetDefaultAutoCommit (xbBool bDefaultAutoCommit)  Set the default auto commit. More...
  -xbStringGetDefaultLogDirectory () const -  -xbStringGetDefaultLogFileName () const -  -void SetDefaultLogDirectory (const xbString &sDefaultLogDirectory) -  +void GetHomeDir (xbString &sHomeDirOut) + Get home directory. More...
+  +xbStringGetLogDirectory () const +  +xbStringGetLogFileName () const +  +void SetLogDirectory (const xbString &sLogDirectory) +  xbBool GetMultiUser () const  Get the multi user setting. More...
  @@ -213,8 +216,8 @@ Static Protected Attributes

Member Function Documentation

- -

◆ AddTblToTblList() [1/2]

+ +

◆ AddTblToTblList() [1/2]

@@ -229,7 +232,7 @@ Static Protected Attributes const xbString &  - sTblName  + sFqTblName  @@ -241,8 +244,8 @@ Static Protected Attributes
- -

◆ AddTblToTblList() [2/2]

+ +

◆ AddTblToTblList() [2/2]

@@ -257,7 +260,7 @@ Static Protected Attributes const xbString &  - sTblName, + sFqTblName, @@ -547,8 +550,8 @@ Static Protected Attributes
- -

◆ GetDefaultLogDirectory()

+ +

◆ GetEndianType()

@@ -557,7 +560,7 @@ Static Protected Attributes - + @@ -570,10 +573,15 @@ Static Protected Attributes
xbString & xb::xbSsv::GetDefaultLogDirectory xbInt16 xb::xbSsv::GetEndianType ( ) const
+

Get the Endian type.

+
Returns
B - Big endian
+ L - Little endian
+
+
- -

◆ GetDefaultLogFileName()

+ +

◆ GetErrorMessage()

@@ -582,9 +590,10 @@ Static Protected Attributes - + - + +
xbString & xb::xbSsv::GetDefaultLogFileName const char * xb::xbSsv::GetErrorMessage ()xbInt16 iErrorCode) const
@@ -595,10 +604,19 @@ Static Protected Attributes
+

Get an error message.

+
Parameters
+ + +
iErrorCodeErrorCode is the error number of description to be returned.
+
+
+
Returns
Returns a pointer to a string containing a text description for the error code.
+
- -

◆ GetEndianType()

+ +

◆ GetHomeDir()

@@ -607,10 +625,11 @@ Static Protected Attributes - + - - + + +
xbInt16 xb::xbSsv::GetEndianType void xb::xbSsv::GetHomeDir () constxbStringsHomeDirOut)
@@ -620,15 +639,19 @@ Static Protected Attributes
-

Get the Endian type.

-
Returns
B - Big endian
- L - Little endian
-
+

Get home directory.

+
Parameters
+ + +
sHomeDirOut- Output home directory for current user.
+
+
+
Returns
void
- -

◆ GetErrorMessage()

+ +

◆ GetLogDirectory()

@@ -637,10 +660,9 @@ Static Protected Attributes - + - - +
const char * xb::xbSsv::GetErrorMessage xbString & xb::xbSsv::GetLogDirectory (xbInt16 iErrorCode)) const
@@ -651,14 +673,30 @@ Static Protected Attributes
-

Get an error message.

-
Parameters
- - -
iErrorCodeErrorCode is the error number of description to be returned.
-
-
-
Returns
Returns a pointer to a string containing a text description for the error code.
+
+
+ +

◆ GetLogFileName()

+ +
+
+ + + + + +
+ + + + + + + +
xbString & xb::xbSsv::GetLogFileName () const
+
+inherited
+
@@ -868,8 +906,8 @@ Static Protected Attributes - -

◆ SetDefaultLogDirectory()

+ +

◆ SetEndianType()

@@ -878,24 +916,26 @@ Static Protected Attributes - + - - +
void xb::xbSsv::SetDefaultLogDirectory void xb::xbSsv::SetEndianType (const xbStringsDefaultLogDirectory))
-inherited +protectedinherited
+

Set the endian type.

+

This routine determines the Endian-ness at run time instead of compile time as some processers (ie; Sparc,ARM) can be switched either way. This routine is called automatically by the library at startup and does not need to be called in an application program.

+
- -

◆ SetEndianType()

+ +

◆ SetLogDirectory()

@@ -904,22 +944,20 @@ Static Protected Attributes - + - + +
void xb::xbSsv::SetEndianType void xb::xbSsv::SetLogDirectory ()const xbStringsLogDirectory)
-protectedinherited +inherited
-

Set the endian type.

-

This routine determines the Endian-ness at run time instead of compile time as some processers (ie; Sparc,ARM) can be switched either way. This routine is called automatically by the library at startup and does not need to be called in an application program.

-
@@ -1026,8 +1064,8 @@ Static Protected Attributes
The documentation for this class was generated from the following files: diff --git a/docs/doxygen/html/classxb_1_1xbXBase.html b/docs/doxygen/html/classxb_1_1xbXBase.html index 7699920..5d4767f 100644 --- a/docs/doxygen/html/classxb_1_1xbXBase.html +++ b/docs/doxygen/html/classxb_1_1xbXBase.html @@ -141,10 +141,16 @@ Public Member Functions void xbSleep (xbInt32 lMillisecs)  Cross platform sleep function. More...
  -xbInt16 AddTblToTblList (xbDbf *d, const xbString &sTblName) -  -xbInt16 AddTblToTblList (xbDbf *d, const xbString &sTblName, const xbString &sTblAlias) -  +xbInt16 GetCmdLineOpt (xbInt32 lArgc, char **argv, const char *sOptRqst, xbString &sParmOut) + Parse commmand line options for a given parm request. More...
+  +xbInt16 GetCmdLineOpt (xbInt32 lArgc, char **argv, xbString &sOptRqst, xbString &sParmOut) + Parse commmand line options for a given parm request. More...
+  +xbInt16 AddTblToTblList (xbDbf *d, const xbString &sFqTblName) +  +xbInt16 AddTblToTblList (xbDbf *d, const xbString &sFqTblName, const xbString &sTblAlias) +  xbInt16 DisplayTableList () const   xbDbfGetDbfPtr (const xbString &sTblAlias) const @@ -193,12 +199,9 @@ Public Member Functions void SetDefaultAutoCommit (xbBool bDefaultAutoCommit)  Set the default auto commit. More...
  -xbStringGetDefaultLogDirectory () const -  -xbStringGetDefaultLogFileName () const -  -void SetDefaultLogDirectory (const xbString &sDefaultLogDirectory) -  +void GetHomeDir (xbString &sHomeDirOut) + Get home directory. More...
xbBool GetMultiUser () const  Get the multi user setting. More...
  @@ -282,8 +285,8 @@ Friends

Member Function Documentation

- -

◆ AddTblToTblList() [1/2]

+ +

◆ AddTblToTblList() [1/2]

@@ -301,7 +304,7 @@ Friends const xbString &  - sTblName  + sFqTblName  @@ -318,8 +321,8 @@ Friends
- -

◆ AddTblToTblList() [2/2]

+ +

◆ AddTblToTblList() [2/2]

@@ -337,7 +340,7 @@ Friends const xbString &  - sTblName, + sFqTblName, @@ -587,6 +590,112 @@ Friends
+
+
+ +

◆ GetCmdLineOpt() [1/2]

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
xbInt16 xb::xbXBase::GetCmdLineOpt (xbInt32 lArgc,
char ** sArgv,
const char * sOptRqst,
xbStringsParmOut 
)
+
+ +

Parse commmand line options for a given parm request.

+
Parameters
+ + + + + +
lArgcValue passed from main( argc, argv[] )
sArgvValued passed from main
sOptRqstOption to search for in the arguments list
sParmOutString token immediately to the right of the the option request, if found
+
+
+
Returns
0 - paramater request not found
+ 1 - Parameter found
+ +
+
+ +

◆ GetCmdLineOpt() [2/2]

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
xbInt16 xb::xbXBase::GetCmdLineOpt (xbInt32 lArgc,
char ** sArgv,
xbStringsOptRqst,
xbStringsParmOut 
)
+
+ +

Parse commmand line options for a given parm request.

+
Parameters
+ + + + + +
lArgcValue passed from main( argc, argv[] )
sArgvValued passed from main
sOptRqstOption to search for in the arguments list
sParmOutString token immediately to the right of the the option request, if found
+
+
+
Returns
0 - paramater request not found
+ 1 - Parameter found
+
@@ -725,56 +834,6 @@ Friends

Get the default date format.

Returns
xbString containing the default date format.
- - - -

◆ GetDefaultLogDirectory()

- -
-
- - - - - -
- - - - - - - -
xbString & xb::xbSsv::GetDefaultLogDirectory () const
-
-inherited
-
- -
-
- -

◆ GetDefaultLogFileName()

- -
-
- - - - - -
- - - - - - - -
xbString & xb::xbSsv::GetDefaultLogFileName () const
-
-inherited
-
-
@@ -888,6 +947,41 @@ Friends
+
+ + +

◆ GetHomeDir()

+ +
+
+ + + + + +
+ + + + + + + + +
void xb::xbSsv::GetHomeDir (xbStringsHomeDirOut)
+
+inherited
+
+ +

Get home directory.

+
Parameters
+ + +
sHomeDirOut- Output home directory for current user.
+
+
+
Returns
void
+
@@ -1366,32 +1460,6 @@ Friends - - - -

◆ SetDefaultLogDirectory()

- -
-
- - - - - -
- - - - - - - - -
void xb::xbSsv::SetDefaultLogDirectory (const xbStringsDefaultLogDirectory)
-
-inherited
-
-
@@ -1762,8 +1830,8 @@ Friends
The documentation for this class was generated from the following files: diff --git a/docs/doxygen/html/dir_25b94c3afce00ed38231227d8141f932.html b/docs/doxygen/html/dir_25b94c3afce00ed38231227d8141f932.html index 6e22ff0..48adaeb 100644 --- a/docs/doxygen/html/dir_25b94c3afce00ed38231227d8141f932.html +++ b/docs/doxygen/html/dir_25b94c3afce00ed38231227d8141f932.html @@ -5,7 +5,7 @@ -Xbase64: /mnt/1Tdata/xbase/xbase64-4.0.3/src/sql Directory Reference +Xbase64: /mnt/1Tdata/xbase/xbase64-4.1.0/src/sql Directory Reference @@ -79,6 +79,8 @@ Files   file  xbcrtbl.cpp   +file  xbcrtbl.save.cpp +  file  xbdelete.cpp   file  xbdrpix.cpp @@ -87,10 +89,14 @@ Files   file  xbinsert.cpp   +file  xbselect.cpp +  file  xbset.cpp   file  xbsql.cpp   +file  xbstmt.cpp diff --git a/docs/doxygen/html/dir_313caf1132e152dd9b58bea13a4052ca.html b/docs/doxygen/html/dir_313caf1132e152dd9b58bea13a4052ca.html index fd2b2f8..0a07b74 100644 --- a/docs/doxygen/html/dir_313caf1132e152dd9b58bea13a4052ca.html +++ b/docs/doxygen/html/dir_313caf1132e152dd9b58bea13a4052ca.html @@ -5,7 +5,7 @@ -Xbase64: /mnt/1Tdata/xbase/xbase64-4.0.3/src/utils Directory Reference +Xbase64: /mnt/1Tdata/xbase/xbase64-4.1.0/src/utils Directory Reference @@ -83,10 +83,6 @@ Files   file  xb_dumpdbt.cpp   -file  xb_dumphdr.cpp -  -file  xb_dumpix.cpp -  file  xb_dumprecs.cpp   file  xb_execsql.cpp @@ -97,8 +93,6 @@ Files   file  xb_undelall.cpp   -file  xb_zap.cpp diff --git a/docs/doxygen/html/dir_68267d1309a1af8e8297ef4c3efbcdba.html b/docs/doxygen/html/dir_68267d1309a1af8e8297ef4c3efbcdba.html index 66057d7..82d0f44 100644 --- a/docs/doxygen/html/dir_68267d1309a1af8e8297ef4c3efbcdba.html +++ b/docs/doxygen/html/dir_68267d1309a1af8e8297ef4c3efbcdba.html @@ -5,7 +5,7 @@ -Xbase64: /mnt/1Tdata/xbase/xbase64-4.0.3/src Directory Reference +Xbase64: /mnt/1Tdata/xbase/xbase64-4.1.0/src Directory Reference diff --git a/docs/doxygen/html/dir_aebb8dcc11953d78e620bbef0b9e2183.html b/docs/doxygen/html/dir_aebb8dcc11953d78e620bbef0b9e2183.html index bb40dd2..f8b8ebe 100644 --- a/docs/doxygen/html/dir_aebb8dcc11953d78e620bbef0b9e2183.html +++ b/docs/doxygen/html/dir_aebb8dcc11953d78e620bbef0b9e2183.html @@ -5,7 +5,7 @@ -Xbase64: /mnt/1Tdata/xbase/xbase64-4.0.3/src/core Directory Reference +Xbase64: /mnt/1Tdata/xbase/xbase64-4.1.0/src/core Directory Reference @@ -75,6 +75,8 @@ $(function() { Files file  xbbcd.cpp   +file  xbblockread.cpp +  file  xbdate.cpp   file  xbdbf.cpp diff --git a/docs/doxygen/html/dir_b0856f6b0d80ccb263b2f415c91f9e17.html b/docs/doxygen/html/dir_b0856f6b0d80ccb263b2f415c91f9e17.html index 76eb467..7e0bf9d 100644 --- a/docs/doxygen/html/dir_b0856f6b0d80ccb263b2f415c91f9e17.html +++ b/docs/doxygen/html/dir_b0856f6b0d80ccb263b2f415c91f9e17.html @@ -5,7 +5,7 @@ -Xbase64: /mnt/1Tdata/xbase/xbase64-4.0.3/src/include Directory Reference +Xbase64: /mnt/1Tdata/xbase/xbase64-4.1.0/src/include Directory Reference @@ -77,6 +77,8 @@ Files   file  xbbcd.h [code]   +file  xbblkread.h [code] +  file  xbdate.h [code]   file  xbdbf.h [code] diff --git a/docs/doxygen/html/dir_d93a1d4020dea85bb71b237545b5e722.html b/docs/doxygen/html/dir_d93a1d4020dea85bb71b237545b5e722.html index 03dde8a..3345e9b 100644 --- a/docs/doxygen/html/dir_d93a1d4020dea85bb71b237545b5e722.html +++ b/docs/doxygen/html/dir_d93a1d4020dea85bb71b237545b5e722.html @@ -5,7 +5,7 @@ -Xbase64: /mnt/1Tdata/xbase/xbase64-4.0.3/src/tests Directory Reference +Xbase64: /mnt/1Tdata/xbase/xbase64-4.1.0/src/tests Directory Reference @@ -77,6 +77,8 @@ Files   file  xb_test_bcd.cpp   +file  xb_test_blockread.cpp +  file  xb_test_date.cpp   file  xb_test_dbf_v3_memos.cpp diff --git a/docs/doxygen/html/dir_e931c1a3f0014e624d0645a271726ad2.html b/docs/doxygen/html/dir_e931c1a3f0014e624d0645a271726ad2.html index 5553e32..b4eef2e 100644 --- a/docs/doxygen/html/dir_e931c1a3f0014e624d0645a271726ad2.html +++ b/docs/doxygen/html/dir_e931c1a3f0014e624d0645a271726ad2.html @@ -5,7 +5,7 @@ -Xbase64: /mnt/1Tdata/xbase/xbase64-4.0.3/src/examples Directory Reference +Xbase64: /mnt/1Tdata/xbase/xbase64-4.1.0/src/examples Directory Reference @@ -75,8 +75,12 @@ $(function() { Files file  xb_ex_date.cpp   +file  xb_ex_expression.cpp +  file  xb_ex_sql.cpp   +file  xb_ex_ssv.cpp +  file  xb_ex_string.cpp   file  xb_ex_v3_create_dbf.cpp diff --git a/docs/doxygen/html/files.html b/docs/doxygen/html/files.html index d85fb7b..cbd1de4 100644 --- a/docs/doxygen/html/files.html +++ b/docs/doxygen/html/files.html @@ -71,109 +71,114 @@ $(function() {   src   core  xbbcd.cpp - xbdate.cpp - xbdbf.cpp - xbdbf3.cpp - xbdbf4.cpp - xbexp.cpp - xbexpnode.cpp - xbfields.cpp - xbfile.cpp - xbfilter.cpp - xbfuncs.cpp - xbixbase.cpp - xbixmdx.cpp - xbixndx.cpp - xblog.cpp - xbmemo.cpp - xbmemo3.cpp - xbmemo4.cpp - xbssv.cpp - xbstring.cpp - xbtag.cpp - xbtblmgr.cpp - xbuda.cpp - xbxbase.cpp + xbblockread.cpp + xbdate.cpp + xbdbf.cpp + xbdbf3.cpp + xbdbf4.cpp + xbexp.cpp + xbexpnode.cpp + xbfields.cpp + xbfile.cpp + xbfilter.cpp + xbfuncs.cpp + xbixbase.cpp + xbixmdx.cpp + xbixndx.cpp + xblog.cpp + xbmemo.cpp + xbmemo3.cpp + xbmemo4.cpp + xbssv.cpp + xbstring.cpp + xbtag.cpp + xbtblmgr.cpp + xbuda.cpp + xbxbase.cpp   examples  xb_ex_date.cpp - xb_ex_sql.cpp - xb_ex_string.cpp - xb_ex_v3_create_dbf.cpp - xb_ex_v3_upd_dbf.cpp - xb_ex_v4_create_dbf.cpp - xb_ex_v4_upd_dbf.cpp + xb_ex_expression.cpp + xb_ex_sql.cpp + xb_ex_ssv.cpp + xb_ex_string.cpp + xb_ex_v3_create_dbf.cpp + xb_ex_v3_upd_dbf.cpp + xb_ex_v4_create_dbf.cpp + xb_ex_v4_upd_dbf.cpp   include  xbase.h  xbbcd.h - xbdate.h - xbdbf.h - xbexp.h - xbexpnode.h - xbfile.h - xbfilter.h - xbindex.h - xblnklst.h - xblnklstord.h - xblnknod.h - xblog.h - xbmemo.h - xbretcod.h - xbsql.h - xbssv.h - xbstring.h - xbtag.h - xbtblmgr.h - xbtypes.h - xbuda.h - xbxbase.h + xbblkread.h + xbdate.h + xbdbf.h + xbexp.h + xbexpnode.h + xbfile.h + xbfilter.h + xbindex.h + xblnklst.h + xblnklstord.h + xblnknod.h + xblog.h + xbmemo.h + xbretcod.h + xbsql.h + xbssv.h + xbstring.h + xbtag.h + xbtblmgr.h + xbtypes.h + xbuda.h + xbxbase.h   sql  xbalttbl.cpp  xbcrix.cpp  xbcrtbl.cpp - xbdelete.cpp - xbdrpix.cpp - xbdrptbl.cpp - xbinsert.cpp - xbset.cpp - xbsql.cpp + xbcrtbl.save.cpp + xbdelete.cpp + xbdrpix.cpp + xbdrptbl.cpp + xbinsert.cpp + xbselect.cpp + xbset.cpp + xbsql.cpp + xbstmt.cpp   tests  tstfuncs.cpp  xb_test_bcd.cpp - xb_test_date.cpp - xb_test_dbf_v3_memos.cpp - xb_test_dbf_v3_nomemos.cpp - xb_test_dbf_v4_memos.cpp - xb_test_dbf_v4_nomemos.cpp - xb_test_expnode.cpp - xb_test_expression.cpp - xb_test_file.cpp - xb_test_filter.cpp - xb_test_funcs.cpp - xb_test_linklist.cpp - xb_test_lock.cpp - xb_test_lock2.cpp - xb_test_log.cpp - xb_test_mdx.cpp - xb_test_ndx.cpp - xb_test_sql.cpp - xb_test_string.cpp - xb_test_tblmgr.cpp - xb_test_uda.cpp - xb_test_xbase.cpp + xb_test_blockread.cpp + xb_test_date.cpp + xb_test_dbf_v3_memos.cpp + xb_test_dbf_v3_nomemos.cpp + xb_test_dbf_v4_memos.cpp + xb_test_dbf_v4_nomemos.cpp + xb_test_expnode.cpp + xb_test_expression.cpp + xb_test_file.cpp + xb_test_filter.cpp + xb_test_funcs.cpp + xb_test_linklist.cpp + xb_test_lock.cpp + xb_test_lock2.cpp + xb_test_log.cpp + xb_test_mdx.cpp + xb_test_ndx.cpp + xb_test_sql.cpp + xb_test_string.cpp + xb_test_tblmgr.cpp + xb_test_uda.cpp + xb_test_xbase.cpp   utils  xb_cfg_check.cpp  xb_copydbf.cpp  xb_dbfutil.cpp  xb_deletall.cpp  xb_dumpdbt.cpp - xb_dumphdr.cpp - xb_dumpix.cpp - xb_dumprecs.cpp - xb_execsql.cpp - xb_pack.cpp - xb_tblinfo.cpp - xb_undelall.cpp - xb_zap.cpp + xb_dumprecs.cpp + xb_execsql.cpp + xb_pack.cpp + xb_tblinfo.cpp + xb_undelall.cpp diff --git a/docs/doxygen/html/functions.html b/docs/doxygen/html/functions.html index 4332e69..6e4da8b 100644 --- a/docs/doxygen/html/functions.html +++ b/docs/doxygen/html/functions.html @@ -68,7 +68,7 @@ $(function() {

- a -