open-source-parsers / open-source-parsers/jsoncpp
Add ready-to-use amalgamation to Releases
Nobody has claimed this yet.
- Dominant language
- C++
- Stars
- 8.9k
- Forks
- 2.7k
- Avg merge
- 31m
- Merged PRs (30d)
- 1
Description
Is your feature request related to a problem? Please describe.
I use cmake FetchContent to download and build amalgamation automatically. It works fine, but unfortunately makes my build dependent on python. Not big deal but it is kinda frustrating
# Download & build jsoncpp from amalgamation
FetchContent_Declare (
jsoncpp-dl
URL https://github.com/open-source-parsers/jsoncpp/archive/refs/tags/1.9.4.tar.gz
URL_HASH SHA1=d0cceda7df8d6e77d6acde6b9dea0ff604be6b36
PATCH_COMMAND python amalgamate.py # Would be nice if I could get rid of this
)
FetchContent_Populate(jsoncpp-dl)
add_library(jsoncpp ${jsoncpp-dl_SOURCE_DIR}/dist/jsoncpp.cpp)
target_include_directories(jsoncpp PUBLIC ${jsoncpp-dl_SOURCE_DIR}/dist/json)
# for sake of brevity, I haven't included code responsible for defining `JSON_DLL` macro
Describe the solution you'd like
Would be nice, if you could just ship something like amalgamation.X.Y.Z.zip with already amalgamated sources, alongside normal source archive. It would simplify deployment
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reading amalgamate.py and inspecting how the normal source archive is produced for Releases. Done means each release also publishes an amalgamation.X.Y.Z.zip containing the already-generated sources, so CMake FetchContent can use it without running Python.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cmake, cpp, python
- Domain
- build-system, release
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 38/100