Skip to content

Add CMake build system - #16

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

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

Conversation

@Asd-g

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

Copy link
Copy Markdown
  • 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 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
Copy Markdown
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

diizzyy commented Aug 31, 2025

Copy link
Copy Markdown

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

Asd-g commented Dec 1, 2025

Copy link
Copy Markdown
Author

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

Asd-g added 3 commits June 22, 2026 02:47
- 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.
camachat pushed a commit to camachat/freebsd-ports that referenced this pull request Jul 22, 2026
Instead of patching Makefile pull in a minimal variant of upstream PR freebsd#16

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

Reference: dwbuiten/obuparse#16
camachat pushed a commit to camachat/freebsd-ports that referenced this pull request Jul 24, 2026
Instead of patching Makefile pull in a minimal variant of upstream PR freebsd#16

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

Reference: dwbuiten/obuparse#16
Asd-g added a commit to HomeOfAviSynthPlusEvolution/l-smash that referenced this pull request Jul 26, 2026
- 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 28, 2026
- 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.
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