Commit Graph

154 Commits

Author SHA1 Message Date
Martchus 014127e4c4 Enable NativeFileStream under Linux by default
It is supposed to work and libstdc++'s __gnu_cxx::stdio_filebuf is
available anyways. Maybe sendfile() can be used at some point with
this to speed up Tag Editor.
2019-08-14 01:15:21 +02:00
Martchus e8d829cadd Add helper to ease creation of flag enums
Not sure whether this is the best way, especially the regarding
the namespacing - hence still experimental
2019-08-12 20:21:53 +02:00
Martchus 99bc257755 Apply cmake-format 2019-08-06 00:02:38 +02:00
Chih-Hsuan Yen 5f65ca43fa
Fix building on Mac OS X/macOS
Without project(), compiler flags like -std=gnu++17 are not applied
for non-Apple clang on Mac OS X/macOS.
2019-07-20 23:11:02 +08:00
Martchus 1be20da35a Make use of std::filesystem optional
It is not available under Android yet and only used for
Bash completion. So make it optional to support Android by
disabling that part of the Bash completion which is not
useful under Android anyways.
2019-07-02 18:40:25 +02:00
Martchus 5efb1b4710 Install the version template 2019-06-16 18:23:42 +02:00
Martchus 76b24ceae8 Enable NativeFileStream by default under Windows and Android
* Under Windows is is required to open files which path contains
  non-ASCII characters.
* Under Android it is useful to use open "content://" URLs with
  standard streams.
2019-06-16 18:11:30 +02:00
Martchus e18731d438 Remove polyfill for std::make_unique 2019-06-10 16:15:48 +02:00
Martchus 4c1b733290 Rework ArgumentParser::parseArgs()
* Remove "ext()" and "orExit()" versions
* Exit by default (might be intrusive but it is the most
  common use)
* Rename Failure to ParseError
2019-06-10 16:03:27 +02:00
Martchus d9b4ca5381 Fix build when not file system library required 2019-06-06 15:20:42 +02:00
Martchus 1ad90eb770 Use std::filesystem in argumentparser.cpp 2019-06-05 23:49:35 +02:00
Martchus bc0d7af67f Apply cmake-format 0.5.1
* Disable autosort as it messes with add_library and
  add_executable calls
2019-06-01 12:14:30 +02:00
Martchus e120a897c5 Add use_package to 3rdParty 2019-05-30 14:04:04 +02:00
Martchus c904014794 Make math functions templates and move to misc 2019-05-13 22:42:17 +02:00
Martchus a17f322f3c Apply cmake-format 2019-05-04 20:57:56 +02:00
Martchus c4128799bc Fix test for libstd++/Windows NativeFileStream configuration 2019-05-04 15:49:41 +02:00
Martchus e9cc26478b Don't mix building static and shared libraries 2019-04-22 20:42:48 +02:00
Martchus 9a50d2b8df Remove types 2019-04-13 20:33:39 +02:00
Marius Kittler 132f936c57 Remove workaround for GCC Bug 66145 2019-04-13 20:33:39 +02:00
Martchus 264a349751 Remove widen.h, use iconv based string conversion instead 2019-04-13 20:33:39 +02:00
Martchus b178bb086c Remove random utilities 2019-04-13 20:33:39 +02:00
Martchus d99a611fbc Bump major version 4 -> 5 2019-04-13 20:33:39 +02:00
Martchus 0bd53c77b5 Query install directory for Qt plugins from qmake 2019-02-27 21:05:23 +01:00
Martchus 86f3bf8b3b Apply cmake-format 2019-02-06 17:30:52 +01:00
Martchus ec39e2f5d2 Add Phrases::SubError and Phrases::SubWarning 2018-11-11 22:34:38 +01:00
Martchus c0f74e4c89 Add BOOST_IOSTREAMS_DYN_LINK to compile defs
if linking dynamically against Boost.Iostreams
2018-10-21 20:24:55 +02:00
Martchus 4ca32e14dc Use set_property instead of set_source_files_properties
since it allows to append which is what should actually happen
2018-10-17 17:34:46 +02:00
Martchus 8e3c40abb5 Make conversion from multi byte to wide string generic 2018-10-03 21:26:41 +02:00
Martchus 749eea2ab6 Support NativeFileStream via Boost.Iostreams
So it can also be enabled when not using libstdc++.
2018-09-30 13:55:30 +02:00
Martchus f60f79d6f3 Make docstring for USE_NATIVE_FILE_BUFFER more generic
Since the build option no longer only relates to Windows.
2018-09-29 11:59:30 +02:00
Martchus 5deb077fe5 Extend Binary{Reader,Writer} to ease binary (de)serialization
To implement reflection-enabled binary (de)serialization
in https://github.com/Martchus/reflective-rapidjson.
2018-06-20 23:07:08 +02:00
Martchus b77607f3e0 Rename META_REQUIRED_FEATURES
Because those features are actually not required.
2018-06-03 22:15:20 +02:00
Martchus 52734ebf51 Make use of thread_local optional
Because it doesn't seem to be implemented for
apple-darwin targets.
2018-06-03 22:14:22 +02:00
Martchus d9f2ad7260 Fix warnings in character set conversion functions 2018-05-31 01:19:34 +02:00
Martchus 89a4c2f33a Skip suggestions for pre-defined values if none assigned 2018-05-11 18:13:14 +02:00
Martchus 429de98836 Add algorithm for computing Damerau–Levenshtein distance 2018-05-05 23:26:53 +02:00
Martchus 25057fa8e3 Add MultiArray class which provides an N-dimensional array 2018-05-05 23:05:46 +02:00
Martchus 26a286a7db Prevent installation of private header 2018-04-28 12:15:34 +02:00
Martchus e2e4b4641f Add EscapeCodes::Strikethrough 2018-03-25 20:00:01 +02:00
Martchus da5a027ea3 Add simplified, string_view-compatible version of splitString() 2018-02-28 18:03:07 +01:00
Martchus 4da48b0546 Install appdata.xml template 2018-02-19 19:50:07 +01:00
Martchus 3fcbaf7fff Split shared and static configuration 2018-02-16 23:56:29 +01:00
Martchus 53c3d72833 Increase version 4.12.0 -> 4.12.1 2018-01-29 16:32:48 +01:00
Martchus 368fc46e47 Improve tests of argument parser 2018-01-29 16:23:10 +01:00
Martchus f9e4c74aff argument parser: Expose occurrence info directly
Primarily for testing porposes, see documentation.
2017-11-06 19:50:46 +01:00
Martchus f3777d7159 Improve description and README.md 2017-11-04 15:48:47 +01:00
Martchus 9829dbe727 Make use of escape codes configurable 2017-10-17 00:00:46 +02:00
Martchus 4011040e57 Add Phrases::EndFlush 2017-10-09 20:43:18 +02:00
Martchus b4556c0481 Move OutputCheck to its own header file
* So it can be used in tests for tageditor and
  other applications
* Make it a header-only class so c++utilities
  does not depend on cppunit
2017-09-20 17:09:34 +02:00
Martchus 357ede4ee7 chrono utils: Improve handling micro- and nanoseconds
DateTime and TimeSpan have an accuracy of 100 nanoseconds.

This commit ensures this is also handled in toString() and
fromString() methods and adds relevant convenience methods.
2017-08-31 02:17:05 +02:00
Martchus de6b4be8b3 Test math utilities 2017-08-02 13:29:22 +02:00
Martchus 1af88c964e bash completion: Show values for implicit args
So eg. `tageditor get [tab][tab]` also suggests specifying
field names directly instead of only via --fields.
2017-07-28 17:32:16 +02:00
Martchus 73f11eeb2a detecting 3rdparty libs: Fix overriding cache variables 2017-07-20 01:24:35 +02:00
Martchus 99cc68bdee Improve doc of config vars 2017-07-11 20:27:23 +02:00
Martchus 28f76db46e Add install target for 'extra-files'
So additional files like tests/calculateoverallcoverage.awk
and coding-style.clang-format are installed and can be used
by other projects, too.
2017-07-11 19:34:38 +02:00
Martchus 28f37bbbcd string to int: Allow specifying string size 2017-06-08 00:41:29 +02:00
Martchus 06f401b393 Prevent warning in swapOrder(uint16 value) 2017-06-03 17:16:52 +02:00
Martchus 5388337bcc Fix compiling tests under 32-bit arch 2017-05-30 23:56:08 +02:00
Martchus 7faa51c10e Test traits 2017-05-08 19:59:29 +02:00
Martchus 7c189b18e1 Allow nested operation arguments
eg. syncthingctl pwd rescan
2017-04-06 00:04:30 +02:00
Martchus fdbe874bcd Allow to disable excluding tests from all target 2017-03-23 20:31:57 +01:00
Martchus 78869da195 Extend documentation 2017-03-12 20:23:21 +01:00
Martchus f626bdf9c7 Fix typos 2017-03-01 18:18:54 +01:00
Martchus 6115933756 Add convenience function to read entire file at once 2017-02-03 01:06:38 +01:00
Martchus a772cdf30b Add conveniently usable string builder
which allows fast string building without multiple heap allocations
2017-01-26 22:16:18 +01:00
Martchus 640d20c463 Make Qt translations of dependencies available in config.h 2017-01-07 16:07:03 +01:00
Martchus 737f73e71a Make forcing UTF-8 codepage optional 2016-12-24 16:08:09 +01:00
Martchus cab332bcad Refactor reading arguments
Replace ArgumentParser::readSpecifiedArgs() with
ArgumentReader class to simplify argument list
2016-12-23 22:40:33 +01:00
Martchus 9d91cfca07 Add NativeFileStream to support unicode filenames under Windows 2016-12-21 00:29:57 +01:00
Martchus 59a8dfe833 Convert args to UTF-8 under Windows 2016-12-19 23:44:34 +01:00
Martchus 89cb027786 Ensure console output is UTF-8 under Windows 2016-12-19 23:43:24 +01:00
Martchus bd9cdfccb2 Add traits for exploiting SFINAE 2016-11-13 22:51:09 +01:00
Martchus a1189d3c3b Allow specifying custom exit() function 2016-10-30 00:37:28 +02:00
Martchus 5119bb5c6a Improve ArgumentParser::readSpecifiedArgs()
- Fix minor issues
- Add further test cases
2016-10-29 23:54:30 +02:00
Martchus 73d42c287c Support desktop actions and other additional desktop entries 2016-10-19 20:59:54 +02:00
Martchus 00f7795dcd Link test target against neccassary libraries
In addition to previous libs, also link against
 - same libs as app/lib target
 - the app target itself if required
2016-09-20 20:52:29 +02:00
Martchus 636467f93b Add missing template files 2016-09-11 21:12:11 +02:00
Martchus 5f48579cd3 List scripts in project file
Maybe add install target for scripts later
2016-09-11 20:30:45 +02:00
Martchus 12588c6928 Improve chrono utils
- Support parsing/generating ISO time stamp with
  time zone delta
- Fix minor bugs
- Improve tests
2016-08-30 19:59:04 +02:00
Martchus fe4e4b2ef5 Fix issues concerning building/using static libraries
- Ensure static versions of 3rd party libs are
  found correctly
- Link tests against statically if only static
  libraries have been built
- Ensure standard lib is linked statically when
  static linkage is enabled
2016-08-19 16:14:55 +02:00
Martchus eba61510a0 Fix missing ConfigHeader module 2016-08-03 17:33:26 +02:00
Martchus 2f1f20c8c3 Generate config header in extra module 2016-07-27 21:38:40 +02:00
Martchus 323ad615cb Add macro to use iconv 2016-07-27 18:21:43 +02:00
Martchus 189a6fe6ba Approach to enable static linkage
Linking statically might be useful, especially
when linking Windows applications since MinGW
is less buggy then.
2016-07-22 01:35:32 +02:00
Martchus 03094a1f61 Add support for bash completion 2016-07-04 02:46:54 +02:00
Martchus 980794066b Provide workaround for GCC Bug 66145 2016-06-14 22:53:19 +02:00
Martchus 526cbc5282 Rewrite argument parsing 2016-06-13 00:00:36 +02:00
Martchus d28d477ffe Complete generation of API doc
- Use README.md for main page
- Add install target for API doc
- Improve some doc comments
2016-06-10 22:59:22 +02:00
Martchus 4d1c874b56 Add target for API doc 2016-06-10 10:24:54 +02:00
Martchus 7bb6875ded Allow testing particular units 2016-05-23 00:03:55 +02:00
Martchus 1aa5421e9b next release will be 3.3.0 2016-04-25 22:18:43 +02:00
Martchus bd0cbd5802 reduce code duplication in build system
- get rid of qmake project file
- provide CMake modules for common tasks
- provide templates for *.desktop files
2016-04-16 02:11:05 +02:00
Martchus c4082d90c7 mingw-w64: build both, shared and static libs 2016-02-27 01:18:19 +01:00
Martchus a7941b92e2 added BitReader::readUnsignedExpGolombCodedBits() and
BitReader::readSignedExpGolombCodedBits()
2016-02-16 17:25:03 +01:00
Martchus 9abe04ce06 make test code public to simplify creation of tests in other projects 2016-02-06 16:55:28 +01:00
Martchus 80a4ce1790 added more test cases 2016-01-27 01:01:43 +01:00
Martchus e4910171e8 added check target and first tests 2016-01-26 18:52:41 +01:00
Martchus 780b608529 ensure custom install targets don't conflict
(required when building as subdirectory)
2016-01-21 16:26:39 +01:00
Martchus a8f7644350 minor adjustments 2016-01-18 23:41:30 +01:00
Martchus b8ffcc74c9 removed creation of Windows icon 2016-01-05 17:14:01 +01:00