Skip to content

feat: Amalgam build#151

Merged
tmathern merged 21 commits into
vNext-amalgamfrom
mathern/split-up-files
Feb 27, 2026
Merged

feat: Amalgam build#151
tmathern merged 21 commits into
vNext-amalgamfrom
mathern/split-up-files

Conversation

@tmathern

@tmathern tmathern commented Feb 12, 2026

Copy link
Copy Markdown
Collaborator
  • Split large c2pa.cpp in smaller files
  • Build to regenerate the c2pa.cpp large file, so downstream builds don't break

Documented in details here: https://github.com/contentauth/c2pa-c/blob/mathern/split-up-files/ci-cd/amalgam-build.md

@tmathern tmathern self-assigned this Feb 12, 2026
@tmathern tmathern changed the base branch from main to vNext February 12, 2026 14:36
@tmathern tmathern marked this pull request as ready for review February 19, 2026 23:36
@tmathern tmathern requested review from gpeacock, mauricefisher64 and scouten-adobe and removed request for gpeacock February 19, 2026 23:36
Tania Mathern and others added 3 commits February 19, 2026 19:58
Removed project version and Rust library version details from the amalgam build documentation.
@tmathern tmathern requested a review from ale-adobe February 26, 2026 06:19

@mauricefisher64 mauricefisher64 left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice work

@gpeacock gpeacock left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I had originally built a static library like this for distribution, but the only ask was for a source file, so I dropped that complexity. If we need it now, this should be very useful.

Comment thread .gitignore
Comment thread scripts/amalgamate.cmake Outdated
@tmathern tmathern force-pushed the mathern/split-up-files branch from ef49561 to 0b8b1a4 Compare February 27, 2026 02:59
@tmathern tmathern changed the base branch from vNext to vNext-amalgam February 27, 2026 04:29
@tmathern tmathern merged commit 882e46c into vNext-amalgam Feb 27, 2026
9 checks passed
@tmathern tmathern deleted the mathern/split-up-files branch February 27, 2026 04:29
@tmathern tmathern mentioned this pull request Feb 27, 2026
tmathern added a commit that referenced this pull request Mar 4, 2026
* fix: Update C2PA version to 0.71.2 (#110)

* fix: Update C2PA version to 0.70.0

* fix: Bump project version to 0.13.0

* fix: Update c2pa-rs version

* fix: Nump c2pa-rs c2pa-c-ffi version to 0.71.2

* fix: Version bump

* chore: Update c2pa version to v0.72.1 (#115)

* chore: Bump to c2pa-rs v0.73.0 (#116)

* chore: Update C2PA version to 0.73.1 (#117)

* chore: Update C2PA version to 0.73.2 (#121)

* fix: Update for move semantics (#123)

* fix: Move semantics

* fix: Undo some paranoia

* fix: COmment

* fix: Update for move semantics continu'd (#124)

* fix: Move semantics

* fix: Undo some paranoia

* fix: COmment

* fix: More move semantics

* chore: Bump C2PA version to 0.74.0 (#125)

* Update C2PA version to 0.74.0

* fix: Update test

* fix: FOmrat

* fix: formatting in documentation comments (#126)

* chore: Update C2PA version to 0.75.0

* chore: Update C2PA_VERSION to 0.75.2

* Revert version bump until all things are published

* Update C2PA version to 0.75.2 (#127)

* fix: Update C2PA version to 0.75.4 (#128)

* Update C2PA version to 0.75.3

* fix: Update C2PA version to 0.75.4

* chore: Update C2PA version to 0.75.6 (#129)

* fix: Update C2PA version to 0.75.7 (#130)

* fix: Update C2PA version to 0.75.8

* feat: Allow building from source in CMakelist (#131)

* fix: Update CmakeList

* fix: Update comment

* Clarify compatibility comment for json library

Updated comment to clarify compatibility with older platforms.

* fix: Note

* feat: Expand OS matrix in CI workflow (#132)

* feat: Expand OS matrix in CI workflow

* Update CI workflow OS matrix

Removed 'windows-2022' and 'ubuntu-slim' from the OS matrix.

* Replace filesystem path usage with string conversion

* Add filesystem namespace for path handling

* Fix test file path for cross-platform compatibility

* Update CI workflow to include windows-2022

* Remove namespace alias for filesystem in tests

Remove unnecessary namespace alias for filesystem.

* Update CI workflow OS matrix

Removed 'windows-2022' from the OS matrix in CI workflow.

* fix: FIx shadowing (#133)

Added new constructor for Signer to take ownership of a signer pointer and updated documentation for clarity.

* fix: Additional build flags (#134)

* fix: FIx shadowing

Added new constructor for Signer to take ownership of a signer pointer and updated documentation for clarity.

* feat: Enhance MSVC compiler and linker options

Added additional compiler and linker options for MSVC.

* fix: Enhance compiler and linker options for c2pa_cpp *nix

Added additional compiler and linker options for c2pa_cpp to enhance security and compatibility.

* fix: Move linker flags -Wl,-z,relro and -Wl,-z,now to linking

Removed linker flags for relro and now.

* feat: Adjust linker options for different platforms

* fix: Refactorings and additional checks (#135)

* fix: Refactor null checks and improve exception handling

* Refactor Reader constructor to manage stream lifetime

* Update c2pa.cpp

* Replace string with std::string in c2pa.cpp

* Change type from ofstream to ostream in flusher

* Change member functions to const in c2pa.hpp

* Fix reserve_size function declaration syntax

* Fix supported_mime_types method signature

* Change reserve_size method to non-const

* Update c2pa.hpp

* Update c2pa.cpp

* fix: Use EINVAL where it was missed

* fix: FOrmat

* chore: Bump c2pa-rs version to c2pa-v0.75.10

* fix: Bump to c2pa-rs v0.75.16 (#140)

* Update CMakeLists.txt

* fix: v0.75.15

* fix: Retrigger all jobs

* Update CMakeLists.txt

* fix: WinARM runner (#141)

* Update CMakeLists.txt

* fix: Bump to c2pa-rs v0.75.19

* feat: Context APIs and the related Settings API (#137)

* fix: WIP

* fix: All my debug

* fix: Debug in progress

* feat: Refactor (#138)

* fix: Skip know bad test

* fix: CLean up the example

* fix: Clean up header

* fix: Header clean up

* fix: Renaming to contextCreator

* fix: rename

* fix: rename

* fix: rename and refactor

* fix: rename and refactor

* fix: rename and refactor

---------

Co-authored-by: Tania Mathern <tania.mathern@gmail.comn>

* fix: More refactors (#139)

* fix: Skip know bad test

* fix: CLean up the example

* fix: Clean up header

* fix: Header clean up

* fix: Renaming to contextCreator

* fix: rename

* fix: rename

* fix: rename and refactor

* fix: rename and refactor

* fix: rename and refactor

* fix: rename and refactor

* fix: rename and refactor

* fix: DOn't use deprecated free methods

* fix: Start updating the frees

* fix: Continue updating the frees

* fix: Continue updating the frees

* fix: Continue updating the frees

* fix: Continue working on the design

* fix: Continue working on the design

* fix: Continue working on the design

* fix: Pointer clean up

---------

Co-authored-by: Tania Mathern <tania.mathern@gmail.comn>

* fix: Refactooooor

* fix: Refactooooor

* fix: Refactooooor

* fix: Refactooooor

* fix: Refactooooor

* fix: Refactooooor

* fix: Refactooooor

* fix: Refactooooor for build

* fix: Fix WIndows build

* fix: Cleaning up

* fix: Add TODOs

* fix: Update naming, clean up STL

* fix: WIP - fix stream handling for files

* fix: Tests

* fix: Write test for toml and json settings

* fix: Add tests for settings combinations

* fix: Verify trust

* fix: Verify trust

* fix: Reader with trust

* fix: Clean up list

* fix: Update config

* fix: Format

* fix: Format

* fix: Docs

* fix: Docs

* fix: Docs

* fix: Docs

* fix: Docs

* fix: Docs

* fix: TODO dev notes

* fix: CLean before rebuild

* fix: Refactorings once more

* fix: Refactorings

* fix: Refactor streams

* fix: Streams refacotr

* fix: Refactor

* fix: Docs

* fix: Improvements in progress

* fix: Add ASAN, UBSAN

* fix: Set up sanitizers

* fix: Texts

* fix: Update workflow

* fix: Update workflow

* fix: Update workflow

* fix: Reactivate a test

* fix: reduce string copies, or try to

* ci: Revert "fix: reduce string copies, or try to"

This reverts commit 736beb5.

* fix: tests moved

* fix: Text utils

* fix: The refactoring axe is coming out

* fix: THe Ubuntu leaks

* fix: Bump to use the right c2pa-rs version

* fix: Last leak

* fix: Mem

* fix: Known leak that is not a leak

* fix: Clarify suppressor

* fix: Clarify suppressor

* fix: Add test coverage

* fix: Add test coverage for context

* fix: Add coverage

* fix: A few more tests

* fix: Comment on test

* fix: Reorg the tests

* fix: Reorg the tests

* fix: Consistency

* fix: Consistency

* fix: load archive

* fix: Intermediate signing

* fix: Multi ingredients

* fix: CLean up

* fix: Increased test-coveragae on #137 + minor bugfixes (#143)

* fix: Add a few todos

* fix: Add a few todos 2

* fix: Clean up obsolete debug ref

* fix: Add a few todos 3

* fix: WIP test coverage

* fix: Test coverage

* fix: Test coverage

* fix: Notes from API poking

* fix: Notes from API poking

* fix: Notes from API poking

* fix: Notes from API poking

* fix: COnvenience API

* fix: Refactor text fixtures use

* fix: Refactor the teeeeeeests

* fix: Refactor

* fix: Add the docs

* fix: Add the layers merging example

* fix: Add a test without relationship

* fix: One more test

* fix: One more test varation

* fix: Undo a final

* fix: Flag test as known bad

* fix: Rename tests

---------

Co-authored-by: Tania Mathern <tania.mathern@gmail.comn>

* fix: CLean up tests

* fix: Extract ingredeints from archives

* fix: Extract ingredeints from archives 2

* fix: Add a test

* fix: Builder variations

* fix: Variations in resources handling

* fix: Remove the very ugly string based test

* fix: Refactor

* fix: Refactor

* fix: Cleanup 2

* fix: Reorg

* fix: The TODOs are gone

* fix: FInish examples clean up

* fix: Refactor bytes handling (#144)

* refactor

* refactor

* fix: Refactor

---------

Co-authored-by: Tania Mathern <tania.mathern@gmail.comn>

* fix: Settings reference link

* fix: Review comments 1: toml go away! (#145)

* fix: Drop from_toml API, fix typos

* fix: MOre toml stuffs removed

* Update context.test.cpp

* fix: Review comments step 2 (#146)

* fix: Drop from_toml API, fix typos

* fix: MOre toml stuffs removed

* Update context.test.cpp

* fix: More clean up

* fix: Rely more on Rust for pointer clean up

* fix: Update coverage and simplify API (#147)

* fix: Simplify CMakeList (#148)

* fix: Update coverage and simplify API

* fix: Simplify CMakeLists

* fix: Update docs

* fix: Refactor

* fix: Shorten docs

* fix: Update

* fix: Refactored once more and clarified docs

* fix: Context verify move

* fix: Remove usunsed move

* fix: Refactor tests

* fix: One more cleanup

* fix: Remove the API I said I would

* fix: More clean up

---------

Co-authored-by: Tania Mathern <tania.mathern@gmail.comn>

* fix: Clarifying comment

* chore: Bump to c2pa-v0.75.21 (#152)

* Update CMakeLists.txt

* fix: One test is actually invalid

* fix: A few other tests are invalid

* fix: no archive and embeddable mix

* fix: Header docs (#150)

* fix: Docs

* fix: Clean up docs

* fix: Clean up docs

* fix: Clean up docs

* fix: Typos in header docs

* fix: Typos 2

---------

Co-authored-by: Tania Mathern <tania.mathern@gmail.comn>

* Update c2pa.hpp

* Update test.c

* fix: Docs

* fix: Docs does not belong here

* chore: Update C2PA version to 0.76.0 (#163)

* fix: Builder::add_ingredient may fail with non-ascii characters in source_path (#161)

* fix: utf8

* fix: Add a few tests

* fix: Add a few tests 2

* fix: Add a few tests 3

* fix: Add a few tests 3

* fix: Add a few tests 3

* fix: Add a few tests 3

* fix: Add a few tests 3

---------

Co-authored-by: Tania Mathern <tania.mathern@gmail.comn>

* docs: Context and Settings (#153)

* fix: Initial versions

* fix: Settings

* fix: Context

* Update settings.md

* Update context.md

* Update context.md

* Update context.md

* minor copy edits

* Copy edit

* Remove some duplication, add xrefs

* clean up edits

* Final cleanup edits

---------

Co-authored-by: Tania Mathern <tania.mathern@gmail.comn>
Co-authored-by: Rand McKinney <crandmck@yahoo.com>

* fix: Add a file size limit for settings file read (#162)

* fix: Add a file size limit

* fix: Enforce more null checks

* fix: Enforce more null checks 2

* fix: Typos

* fix: Typos

* fix: Typos

* fix: Typos

* fix: Typos

* fix: Typos

* fix: Typos

* fix: Typos

---------

Co-authored-by: Tania Mathern <tania.mathern@gmail.comn>

* fix: Refactor (#165)

* fix: Refactor

* Delete REFACTORING_PLAN.md

* fix: Refactor

* fix: Refactor

---------

Co-authored-by: Tania Mathern <tania.mathern@gmail.comn>

* docs: Working stores (#154)

* fix: Workin stores

* Update working-stores.md

* Update working-stores.md

* Update working-stores.md

* Update working-stores.md

* Update working-stores.md

* Update working-stores.md

* Copy edits, add xrefs

* Remove incomplete section

* Misc edits and add some more links, add a bit to Mermaid diagram

* Add div to xrefs not needed in doc site, other small tweaks

---------

Co-authored-by: Tania Mathern <tania.mathern@gmail.comn>
Co-authored-by: Rand McKinney <crandmck@yahoo.com>

* feat: Amalgam build squashed (#151)

* fix: File split

* fix: Let's try this

* fix: Add a script

* fix: Build hack

* fix: Amalgam build

* fix: Amalgamate 2

* fix: fix headers

* fix: Scripts location tweak

* fix: Amalgam build

* fix: Amalgam build 2

* fix: Amalgam build with shared lib

* fix: Amalgam build with shared lib 2

* fix: Update CMakeLists.txt (#155)

* fix: Update CMakeLists.txt

* Update CMakeLists.txt

* Update c2pa_internal.hpp

* Update CMakeLists.txt

* fix: Docs

* docs: Update amalgam-build.md

Removed project version and Rust library version details from the amalgam build documentation.

* fix: Refine amalgam-build.md

* fix: License header

---------

Co-authored-by: Tania Mathern <tania.mathern@gmail.comn>

* Update amalgam-build.md

* fix: Bump c2pa-rs

* fix: Change build

* fix: Change build 2

* Update comment in CMakeLists.txt for clarity

Clarify comment regarding C2PA_C_LIB_OVERRIDE and c2pa_c symbols.

* fix: Fortify source only for Linux, mac has other flag

---------

Co-authored-by: Tania Mathern <tania.mathern@gmail.comn>
Co-authored-by: Rand McKinney <crandmck@yahoo.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants