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.
Tested on OpenBSD 7.3 and Fedora 41
This pull request has a series of modifications, let me explain:
Change the system-detecting logic (configure.ac)
The original configure.ac rejects configuration if the target system is not one of: windows (cygwin/msys), linux, macos. But, actually, this project has basically nothing platform-dependent. Therefore I modified this area of logic: the script will assume the project is able to build on every systems, it just needs to have some special handling for certain platforms.
Get fmt and spdlog via pkg-config instead of specifing -lfmt and -lspdlog flags directly
The libraries might have different filename than we thought, or inside some other directories. For example, on OpenBSD, some libraries are located in
/usr/local/lib
, for them, additional linker flags or compiler flags are needed.Give another option for enabling mariadb
So that users can specify clearly whether he wants
libmysqlclient
orlibmariadb
.Remove linker flags link to libstdc++
Target platform may not use libstdc++.
Prevent the including of build-tools/grammar-tools/FlexLexer.h on non-windows platform
build-tools/grammar-tools/FlexLexer.h
, this file only works with GNU systems's flex. So just useFlexLexer.h
of the system's flex.Refactor
yyin.getline
into two overloadedyyinGetline
function (libgixpp/GixEsqlLexer.cpp
)In OpenBSD's flex,
yyin
is astd::istream*
instead of astd::istream
.Remove all
#include <malloc.h>
This is useless, because there's already
#include <stdlib.h>
. And this file is not standard C header, doesn't exist on OpenBSD and some systems.Provide a unified and cross-platform bitswap implementation (
runtime/libgixsql/SqlVar.cpp
)To find the bitswap function of every system is troublesome, and you cannot find that on some systems, for example, OpenBSD. Let use a self-implemented one.