-
Notifications
You must be signed in to change notification settings - Fork 484
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Revamp CMake support #1118
Open
Krzmbrzl
wants to merge
103
commits into
SOCI:master
Choose a base branch
from
Krzmbrzl:revamp-cmake
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Revamp CMake support #1118
Changes from 93 commits
Commits
Show all changes
103 commits
Select commit
Hold shift + click to select a range
0d85e89
First draft of new cmake
Krzmbrzl 9e7c5db
Fix typo
Krzmbrzl 579a099
Delete FindSoci.cmake - will be replaced by SociConfig
Krzmbrzl c2dcce7
Updated find modules to define interface targets
Krzmbrzl 4a378ed
Remove redundant condition in endif()
Krzmbrzl 926bfbb
SOCI_HAVE_CXX11 doesn't exist anymore
Krzmbrzl 1ccc218
Configure soci-config.h (empty for now)
Krzmbrzl ec64b18
Disable Boost support by default
Krzmbrzl 1489077
Oracle: Remove non-existing CPP source
Krzmbrzl 074bdf2
Improved target setup
Krzmbrzl 456a8cc
Include building tests
Krzmbrzl bb86d44
Add options to configure test connection strings
Krzmbrzl 0e5c799
CI: ODBC now also uses the default runner
Krzmbrzl f49841c
Bring ODBC tests up to speed
Krzmbrzl b593a29
Expose ODBC test connector strings
Krzmbrzl 672213c
Use dedicated test context
Krzmbrzl 207e17e
Adapt ODBC test exclusion RegEx
Krzmbrzl dd5e3dd
Build shared and static libs separately
Krzmbrzl cd401e4
Add missing include
Krzmbrzl 1564540
Fixed Windows build
Krzmbrzl 342bcb4
Don't overwrite cxx standard
Krzmbrzl 646f2fe
Enable unity builds on CI
Krzmbrzl 921ca59
Specify config for ctest on Windows
Krzmbrzl 1353f18
Fix DSN file paths for ODBC tests
Krzmbrzl eaf2994
Select ODBC tests based on available drivers
Krzmbrzl 3540780
Use unity builds also on Windows CI
Krzmbrzl 980d4c9
Also skip MS Access ODBC test
Krzmbrzl 5214951
Fix print statement
Krzmbrzl 501be49
Fix driver detection
Krzmbrzl e96633a
Properly generate soci-config.h
Krzmbrzl ec3984e
Install recent cmake version on AppVeyor CI
Krzmbrzl f5ab470
Remove unneeded debug message
Krzmbrzl 241af7d
Configure compiler options
Krzmbrzl 5f65bb5
Update CMake examples
Krzmbrzl 5150a51
Get rid of deprecated Makefiles
Krzmbrzl acd1294
Build Boost bindings by default on CI
Krzmbrzl aea1958
Provide compat for old WITH_BOOST var
Krzmbrzl 47c05f3
Add compat to old target names
Krzmbrzl e2c1a53
Disable Boost bindings on macOS CI
Krzmbrzl a868715
Properly set ABI version macro
Krzmbrzl 9defe9b
Start setting up install support
Krzmbrzl 35f0f92
More work on installation support
Krzmbrzl b7d56a0
Make all components installable
Krzmbrzl baecbb2
Improve config file
Krzmbrzl eba5926
Remove WITH_BOOST/SOCI_BOOST option
Krzmbrzl fa97a69
Properly set ABI version & runtime search paths
Krzmbrzl f9b1805
Move template specialization to cpp file
Krzmbrzl f4af355
Fix using macro as function
Krzmbrzl e255daa
CI: Don't use no longer existent WITH_BOOST option
Krzmbrzl 9e123c6
Fix LTO in debug builds
Krzmbrzl 8bceabe
Fix macro name
Krzmbrzl d611b7d
AppVeyor: Use actually available Boost versions
Krzmbrzl 1efdcce
AppVeyor: Use more up-to-date PostgreSQL
Krzmbrzl b111ec1
AppVeyor: Properly locate SQLite
Krzmbrzl 7bcdd9a
Ensure MySQL is found in vcpkg context
Krzmbrzl 24feb96
Disable Boost autolinking on Windows
Krzmbrzl 1098208
AppVeyor: Use Ninja for faster builds
Krzmbrzl 2de4a69
Mark dependency's includes as SYSTEM
Krzmbrzl f38e222
Restrict to only using target-specific compiler flags
Krzmbrzl 81cd483
Base macro defs on platform not compiler
Krzmbrzl d5f70a1
Tame the Windows API headers
Krzmbrzl 7071264
AppVeyor: Use MSVC instead of Clang
Krzmbrzl c4895b3
remove unnecessary winsock include
Krzmbrzl 9231cd0
Fix Windows build with UNICODE macro
Krzmbrzl 1252be7
Get rid of SOCI_DUMMY_RETURN
Krzmbrzl 1e0e1dd
Add override specs
Krzmbrzl c616644
Make include less confusing
Krzmbrzl e8cc701
Improve FindMySQL
Krzmbrzl 8283a38
Change fatal error to debug message
Krzmbrzl b6b31be
Prevent compiler flags from propagating to superprojects
Krzmbrzl 08eb273
Link core to DL libraries
Krzmbrzl 21515f2
Remove debug message
Krzmbrzl a2faea6
Don't set output directories
Krzmbrzl 6a106e7
Also use versioned .so install for MySQL
Krzmbrzl f4e01a4
Re-introduce explicit build artefact directories
Krzmbrzl 8d14ee4
Rework install paths
Krzmbrzl a74341c
Update example
Krzmbrzl 6b6db13
Fix not all headers getting installed
Krzmbrzl efe3a05
Work around bug in VS2015
Krzmbrzl c88da3b
Merge remote-tracking branch 'upstream/master' into revamp-cmake
Krzmbrzl c2d0d15
Don't include test-main.cpp in unity builds
Krzmbrzl a780c39
Enable unity builds on AppVeyor
Krzmbrzl 858d585
Actually set compiler flags for UBSAN
Krzmbrzl 1d7b086
Use standard checkout action
Krzmbrzl 0709bb2
Give acion runs better names
Krzmbrzl 17c0884
Simplify build matrix
Krzmbrzl 815b9b7
Default destructor
Krzmbrzl fac29fe
Remove redundant space
Krzmbrzl 0db29f6
Add comment back in
Krzmbrzl 9244c88
Fix bug in soci_verify_parsed_arguments
Krzmbrzl af92da7
Properly integrate new type check with new cmake layout
Krzmbrzl 5bd4138
Centralized backend list; AsAvailable->AUTO
Krzmbrzl 0ab30db
Use GLOB to identify headers to install
Krzmbrzl 0a8c07d
Make SOCIConfig work even if SOCI is capitalized differently
Krzmbrzl a317037
Avoid warnings in newer CMake versions
Krzmbrzl 77c2e17
De-duplicate boilerplate by using function to define backend target
Krzmbrzl f9c5408
Merge remote-tracking branch 'upstream/master' into revamp-cmake
Krzmbrzl af3e8a9
Fix typo
Krzmbrzl 2cd6349
Make common test actually be part of common-tests
Krzmbrzl 7c6dd57
Consistently use SOCI::soci as interface target
Krzmbrzl 6628f9c
Add missing curly brace
Krzmbrzl 71d3911
Update connect example's CMakeLists.txt file
Krzmbrzl 31324e0
CI: Also build example testing SOCI system installations
Krzmbrzl File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
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.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This doubles the number of builds and I'm not sure if it's worth it... Maybe it would be enough to test just some static builds instead of testing all of them?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Compared to the Windows CI these are really cheap to do. Besides, previously SOCI did this duplication anyway due to building shared and static libraries in a single build. So effectively, this is reproducing the original behavior (plus some extra overhead of these things now actually being different build jobs).
Finally, it is a bit of a hassle to specify that only some combinations shall be built as a static library in GitHub Action syntax. Therefore, I would tend to just keep all tests 👀