Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This might take the project in a direction you don't want it to go, but in this branch I've replaced the makefile and xcode build system with cmake, which brings the following advantages:
CPU target:
The previous makefile-based system offered a range of CPU targets which is not directly covered in this CMake solution, but can still be achieved my modifying the compiler environment settings or by passing switches to the compiler using the command-line CMAKE_CXX_FLAGS variable (also modifiable via the cmake UIs).
Versioning:
I've implemented a simple, standard major.minor.patch scheme in the version.cmake file; this can easily be modified at the SET_TARGET_PROPERTIES stage in the main CMakeLists.txt file should another versioning scheme be desired.
General structure:
In order to make the installation of includes and the separation of generated code simpler and clearer, the source/header and flex-related files were moved to separate directories.
DB client lib discovery:
Since the mysql and sqlite client libraries do not provide a discovery interface (at least not to cmake, which can also piggyback pkgconfig) simple discovery scripts were added to cmake/Modules. Should the client libraries provide their own versions in the future, these files could be deleted.