Fix compilation errors on Windows
Summary
Resolves #34 (closed), #75 (closed) and #85 (closed).
Focus
Windows compatibility has been brought to a point where in Release build mode, caosdb.dll, ccaosdb.dll and the test CLI clients build without errors. The clients are also able to start (function was not tested yet). To achieve this a few changes were necessary:
- The
GRPC_GENERATED
sources have to be added to theccaosdb
library. Just linking is not enough on Windows (see #90 (closed)). This should not and does not seem to have an impact on the Linux build. - The splitting of the GRPC_GENERATED from the main library for the Debug/Test was removed as it does not work on Windows (see #90 (closed)) and does not provide any advantage on Linux.
- Linking to stdc++fs for using has been removed. This was only necessary for gcc<9.1.
- Retrieving the HOME folder on Windows was added in
include/caosdb/utility.h
(enabled/disabled via a macro)
Note that there is not yet a pipeline for Windows. Unit tests are anyway not yet functional (see #90 (closed)).
Test Environment
Follow build instructions for Windows.
Check List for the Author
Please, prepare your MR for a review. Be sure to write a summary and a focus and create gitlab comments for the reviewer. They should guide the reviewer through the changes, explain your changes and also point out open questions. For further good practices have a look at our review guidelines
-
All automated tests pass -
Reference related issues -
Up-to-date CHANGELOG.md (or not necessary) -
Up-to-date JSON schema (or not necessary) -
Appropriate user and developer documentation (or not necessary) - How do I use the software? Assume "stupid" users.
- How do I develop or debug the software? Assume novice developers.
-
Annotations in code (Gitlab comments) - Intent of new code
- Problems with old code
- Why this implementation?
Check List for the Reviewer
-
I understand the intent of this MR -
All automated tests pass -
Up-to-date CHANGELOG.md (or not necessary) -
Appropriate user and developer documentation (or not necessary) -
The test environment setup works and the intended behavior is reproducible in the test environment -
In-code documentation and comments are up-to-date. -
Check: Are there specifications? Are they satisfied?
For further good practices have a look at our review guidelines.