open-source-parsers / open-source-parsers/jsoncpp

Inconsistent package contents dependent on build system

Open
#1,170 4 comments 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

bug build
Dominant language
C++
Stars
8.9k
Forks
2.7k
Avg merge
31m
Merged PRs (30d)
1

Description

Describe the bug
Using different build systems lead to different package contents:

  • Meson
    • no CMake modules are generated
    • both shared and static libraries are possible with --default-library=both
  • CMake:
    • CMake modules are generated
    • only either of shared or static libraries is possible
  • additionally, shared libarary is installed as libjsoncpp.so.1.9.2 with cmake and libjsoncpp.so.22 with meson

This makes it much harder to use jsoncpp, as jsoncpp consumer may not rely on any inconsistent component present. For instance, a project which relies on CMake modules will fail to build on FreeBSD which uses meson to build jsoncpp.

To Reproduce
Build, install with cmake and meson, compare produced files

Expected behavior
Single build system, or consistent behavior with both build systems. At the very least, a way to build all components which consumers may requiered (cmake modules AND static library AND shared library).

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Build and install jsoncpp with both CMake and Meson, then compare the produced files, including CMake modules and shared or static libraries. Review how each build system selects and names installed components. Done means consumers can rely on consistent package contents, or a documented build path produces all required components.

Written by the indexing model from the issue text.

Assessment

Tech stack
cmake, cpp
Domain
build-system
Issue type
Bug
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.