This repository has been archived by the owner on Jun 17, 2022. It is now read-only.
forked from jgarzik/univalue
-
Notifications
You must be signed in to change notification settings - Fork 28
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge #19: Split sources for easier buildsystem integration
4a5b0a1 build: Move source entries out to sources.mk (Cory Fields) 6c7d94b build: cleanup wonky gen usage (Cory Fields) Pull request description: This addresses issues like the one in bitcoin/bitcoin#12467, where some of our compiler flags end up being dropped during the subconfigure of Univalue. Specifically, we're still using the compiler-default c++ version rather than forcing c++17. We can drop the need subconfigure completely in favor of a tighter build integration, where the sources are listed separately from the build recipes, so that they may be included directly by upstream projects. This is similar to the way leveldb build integration works in Core. A similar split was recently added for minisketch: sipa/minisketch#8 Upstream benefits of this approach include: - Better caching (for ex. ccache and autoconf) - No need for a slow subconfigure - No more missing compile flags - Compile only the objects needed There are no benefits to Univalue itself that I can think of. These changes should be a no-op here, and to downstreams as well until they take advantage of the new sources.mk. Once merged, [This Core branch](https://github.com/theuni/bitcoin/commits/univalue-split) is ready-ish for PR, and takes advantage of the features added here. libsecp256k1 will get the same treatment once this is done. ACKs for top commit: jnewbery: Tested ACK 4a5b0a1 fanquake: ACK 4a5b0a1 Tree-SHA512: 7c9237b5a4eea8d07da0b58471fabc6860e3dfe253f505bbf83366bb28d377c967a1c811bee04913e7da2121a7e0eaff31dd9681c3595d70e29c4ec08dbb2105
- Loading branch information
Showing
2 changed files
with
110 additions
and
75 deletions.
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
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,95 @@ | ||
# - All variables are namespaced with UNIVALUE_ to avoid colliding with | ||
# downstream makefiles. | ||
# - All Variables ending in _HEADERS or _SOURCES confuse automake, so the | ||
# _INT postfix is applied. | ||
# - Convenience variables, for example a UNIVALUE_TEST_DIR should not be used | ||
# as they interfere with automatic dependency generation | ||
# - The %reldir% is the relative path from the Makefile.am. This allows | ||
# downstreams to use these variables without having to manually account for | ||
# the path change. | ||
|
||
UNIVALUE_INCLUDE_DIR_INT = %reldir%/include | ||
|
||
UNIVALUE_DIST_HEADERS_INT = | ||
UNIVALUE_DIST_HEADERS_INT += %reldir%/include/univalue.h | ||
|
||
UNIVALUE_LIB_HEADERS_INT = | ||
UNIVALUE_LIB_HEADERS_INT += %reldir%/lib/univalue_utffilter.h | ||
UNIVALUE_LIB_HEADERS_INT += %reldir%/lib/univalue_escapes.h | ||
|
||
UNIVALUE_LIB_SOURCES_INT = | ||
UNIVALUE_LIB_SOURCES_INT += %reldir%/lib/univalue.cpp | ||
UNIVALUE_LIB_SOURCES_INT += %reldir%/lib/univalue_get.cpp | ||
UNIVALUE_LIB_SOURCES_INT += %reldir%/lib/univalue_read.cpp | ||
UNIVALUE_LIB_SOURCES_INT += %reldir%/lib/univalue_write.cpp | ||
|
||
UNIVALUE_TEST_DATA_DIR_INT = %reldir%/test | ||
|
||
UNIVALUE_TEST_UNITESTER_INT = | ||
UNIVALUE_TEST_UNITESTER_INT += %reldir%/test/unitester.cpp | ||
|
||
UNIVALUE_TEST_JSON_INT = | ||
UNIVALUE_TEST_JSON_INT += %reldir%/test/test_json.cpp | ||
|
||
UNIVALUE_TEST_NO_NUL_INT = | ||
UNIVALUE_TEST_NO_NUL_INT += %reldir%/test/no_nul.cpp | ||
|
||
UNIVALUE_TEST_OBJECT_INT = | ||
UNIVALUE_TEST_OBJECT_INT += %reldir%/test/object.cpp | ||
|
||
UNIVALUE_TEST_FILES_INT = | ||
UNIVALUE_TEST_FILES_INT += %reldir%/test/fail1.json | ||
UNIVALUE_TEST_FILES_INT += %reldir%/test/fail2.json | ||
UNIVALUE_TEST_FILES_INT += %reldir%/test/fail3.json | ||
UNIVALUE_TEST_FILES_INT += %reldir%/test/fail4.json | ||
UNIVALUE_TEST_FILES_INT += %reldir%/test/fail5.json | ||
UNIVALUE_TEST_FILES_INT += %reldir%/test/fail6.json | ||
UNIVALUE_TEST_FILES_INT += %reldir%/test/fail7.json | ||
UNIVALUE_TEST_FILES_INT += %reldir%/test/fail8.json | ||
UNIVALUE_TEST_FILES_INT += %reldir%/test/fail9.json | ||
UNIVALUE_TEST_FILES_INT += %reldir%/test/fail10.json | ||
UNIVALUE_TEST_FILES_INT += %reldir%/test/fail11.json | ||
UNIVALUE_TEST_FILES_INT += %reldir%/test/fail12.json | ||
UNIVALUE_TEST_FILES_INT += %reldir%/test/fail13.json | ||
UNIVALUE_TEST_FILES_INT += %reldir%/test/fail14.json | ||
UNIVALUE_TEST_FILES_INT += %reldir%/test/fail15.json | ||
UNIVALUE_TEST_FILES_INT += %reldir%/test/fail16.json | ||
UNIVALUE_TEST_FILES_INT += %reldir%/test/fail17.json | ||
UNIVALUE_TEST_FILES_INT += %reldir%/test/fail18.json | ||
UNIVALUE_TEST_FILES_INT += %reldir%/test/fail19.json | ||
UNIVALUE_TEST_FILES_INT += %reldir%/test/fail20.json | ||
UNIVALUE_TEST_FILES_INT += %reldir%/test/fail21.json | ||
UNIVALUE_TEST_FILES_INT += %reldir%/test/fail22.json | ||
UNIVALUE_TEST_FILES_INT += %reldir%/test/fail23.json | ||
UNIVALUE_TEST_FILES_INT += %reldir%/test/fail24.json | ||
UNIVALUE_TEST_FILES_INT += %reldir%/test/fail25.json | ||
UNIVALUE_TEST_FILES_INT += %reldir%/test/fail26.json | ||
UNIVALUE_TEST_FILES_INT += %reldir%/test/fail27.json | ||
UNIVALUE_TEST_FILES_INT += %reldir%/test/fail28.json | ||
UNIVALUE_TEST_FILES_INT += %reldir%/test/fail29.json | ||
UNIVALUE_TEST_FILES_INT += %reldir%/test/fail30.json | ||
UNIVALUE_TEST_FILES_INT += %reldir%/test/fail31.json | ||
UNIVALUE_TEST_FILES_INT += %reldir%/test/fail32.json | ||
UNIVALUE_TEST_FILES_INT += %reldir%/test/fail33.json | ||
UNIVALUE_TEST_FILES_INT += %reldir%/test/fail34.json | ||
UNIVALUE_TEST_FILES_INT += %reldir%/test/fail35.json | ||
UNIVALUE_TEST_FILES_INT += %reldir%/test/fail36.json | ||
UNIVALUE_TEST_FILES_INT += %reldir%/test/fail37.json | ||
UNIVALUE_TEST_FILES_INT += %reldir%/test/fail38.json | ||
UNIVALUE_TEST_FILES_INT += %reldir%/test/fail39.json | ||
UNIVALUE_TEST_FILES_INT += %reldir%/test/fail40.json | ||
UNIVALUE_TEST_FILES_INT += %reldir%/test/fail41.json | ||
UNIVALUE_TEST_FILES_INT += %reldir%/test/fail42.json | ||
UNIVALUE_TEST_FILES_INT += %reldir%/test/fail44.json | ||
UNIVALUE_TEST_FILES_INT += %reldir%/test/fail45.json | ||
UNIVALUE_TEST_FILES_INT += %reldir%/test/pass1.json | ||
UNIVALUE_TEST_FILES_INT += %reldir%/test/pass2.json | ||
UNIVALUE_TEST_FILES_INT += %reldir%/test/pass3.json | ||
UNIVALUE_TEST_FILES_INT += %reldir%/test/pass4.json | ||
UNIVALUE_TEST_FILES_INT += %reldir%/test/round1.json | ||
UNIVALUE_TEST_FILES_INT += %reldir%/test/round2.json | ||
UNIVALUE_TEST_FILES_INT += %reldir%/test/round3.json | ||
UNIVALUE_TEST_FILES_INT += %reldir%/test/round4.json | ||
UNIVALUE_TEST_FILES_INT += %reldir%/test/round5.json | ||
UNIVALUE_TEST_FILES_INT += %reldir%/test/round6.json | ||
UNIVALUE_TEST_FILES_INT += %reldir%/test/round7.json |