Skip to content

Add CMake build system#16

Open
Asd-g wants to merge 3 commits intodwbuiten:masterfrom
HomeOfAviSynthPlusEvolution:master
Open

Add CMake build system#16
Asd-g wants to merge 3 commits intodwbuiten:masterfrom
HomeOfAviSynthPlusEvolution:master

Conversation

@Asd-g
Copy link

@Asd-g Asd-g commented Jun 29, 2025

  • Supports building on Linux, macOS, and Windows (MSVC & MinGW).
  • Builds both static and shared libraries on Unix-like systems and MinGW.
  • Enforces a static-only build when using the MSVC toolchain to avoid platform-specific DLL export complexity and library name collisions.
  • Generates and installs a CMake package that provides modern imported alias targets for easy consumption:
    • OBUParse::static
    • OBUParse::shared (not available on MSVC)
  • Includes a convenient uninstall target.
  • Builds the obudump command-line tool.

Asd-g added 3 commits June 30, 2025 00:11
- Supports building on Linux, macOS, and Windows (MSVC & MinGW).
- Builds both static and shared libraries on Unix-like systems and MinGW.
- Enforces a static-only build when using the MSVC toolchain to avoid
  platform-specific DLL export complexity and library name collisions.
- Generates and installs a CMake package that provides modern imported
  alias targets for easy consumption:
    - `OBUParse::static`
    - `OBUParse::shared` (not available on MSVC)
- Includes a convenient `uninstall` target.
- Builds the `obudump` command-line tool.
Export include directory.
Asd-g added a commit to HomeOfAviSynthPlusEvolution/l-smash that referenced this pull request Jun 30, 2025
- Supports building on Linux, macOS, and Windows (MSVC & MinGW).
- Builds both static and shared libraries across all supported platforms.
- Finds and links against a CMake-installed OBUParse dependency.
  (dwbuiten/obuparse#16)
- Generates and installs a CMake package that provides imported alias
  targets for easy consumption:
    - `LSMASH::static`
    - `LSMASH::shared`
- Builds the command-line tools (muxer, remuxer, boxdumper, timelineeditor)
  as separate executables.
- Includes a convenient `uninstall` target.
Asd-g added a commit to HomeOfAviSynthPlusEvolution/l-smash that referenced this pull request Jun 30, 2025
- Supports building on Linux, macOS, and Windows (MSVC & MinGW).
- Builds both static and shared libraries across all supported platforms.
- Finds and links against a CMake-installed OBUParse dependency.
  (dwbuiten/obuparse#16)
- Generates and installs a CMake package that provides imported alias
  targets for easy consumption:
    - `LSMASH::static`
    - `LSMASH::shared`
- Builds the command-line tools (muxer, remuxer, boxdumper, timelineeditor)
  as separate executables.
- Includes a convenient `uninstall` target.
Asd-g added a commit to HomeOfAviSynthPlusEvolution/l-smash that referenced this pull request Jul 5, 2025
- Supports building on Linux, macOS, and Windows (MSVC & MinGW).
- Builds both static and shared libraries across all supported platforms.
- Finds and links against a CMake-installed OBUParse dependency.
  (dwbuiten/obuparse#16)
- Generates and installs a CMake package that provides imported alias
  targets for easy consumption:
    - `LSMASH::static`
    - `LSMASH::shared`
- Builds the command-line tools (muxer, remuxer, boxdumper, timelineeditor)
  as separate executables.
- Includes a convenient `uninstall` target.
Asd-g added a commit to HomeOfAviSynthPlusEvolution/l-smash that referenced this pull request Jul 5, 2025
- Supports building on Linux, macOS, and Windows (MSVC & MinGW).
- Builds both static and shared libraries across all supported platforms.
- Finds and links against a CMake-installed OBUParse dependency.
  (dwbuiten/obuparse#16)
- Generates and installs a CMake package that provides imported alias
  targets for easy consumption:
    - `LSMASH::static`
    - `LSMASH::shared`
- Builds the command-line tools (muxer, remuxer, boxdumper, timelineeditor)
  as separate executables.
- Includes a convenient `uninstall` target.
@dwbuiten
Copy link
Owner

To be honest, I don't really like the idea of this; it goes against the point of obuparse being a single file drop-in.

All this build stuff around one C file with no platform specific code seems silly.

@diizzyy
Copy link

diizzyy commented Aug 31, 2025

It does help when packaging obuparse for repos, it doesn't however cover the version script in its current form.

freebsd-git pushed a commit to freebsd/freebsd-ports that referenced this pull request Aug 31, 2025
Instead of patching Makefile pull in a minimal variant of upstream PR #16

Changelog: https://github.com/dwbuiten/obuparse/releases/tag/v2.0.1

Reference: dwbuiten/obuparse#16
@Asd-g
Copy link
Author

Asd-g commented Dec 1, 2025

The current obuparse building system is not complete. E.g. like this. It requires manual modification for different building environments.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants