Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Switch to cmake #3

Merged
merged 32 commits into from
Jan 25, 2023
Merged

Switch to cmake #3

merged 32 commits into from
Jan 25, 2023

Conversation

philipnbbc
Copy link
Collaborator

@philipnbbc philipnbbc commented Jan 13, 2023

This introduces the following changes:

  • the autoconf and Microsoft Visual Studio C++ project files have been replaced with cmake
    • tests are now supported on all platforms
    • requires cmake version >= 3.12, which means Visual Studio C++ 2017 (updated) or later is supported
  • the libMXF and libMXF++ projects are included as submodules
    • All the code can now built, tested and installed from the bmx repo
  • the shared object versions and include paths no longer have the -1.0 suffixes
    • e.g. libbmx-1.0.so changes to libbmx.so and include directory bmx-1.0/bmx changes to bmx
  • code paths in log messages are now relative to the source root path and not absolute paths
  • library major and minor versions are set in the top-level CMakeLists.txt. The (MXF) patch version is the git commit offset from the last release tag.
    • The patch version will therefore count up until the next release is made which adds a new tag to git
  • Updated MXFDump to the latest version in the AAF SDK
  • fixed various memory leaks found by valgrind
  • fixed various warnings when building on non-Ubuntu platforms

This avoids uriWindowsFilenameToUriStringA escaping them in the URI
when they are most likely intended to be path separators.
git on Windows (2.38.1.windows.1) was found to have 'core.autocrlf' set to 'true'
(in the global gitconfig), which resulted in files detected as text to be be
checked out (e.g. as part of the repo clone) with CRLF line endings. That then
broke the tests that rely on checksums and reference text files because the input
data had changed.

The use of .gitattributes and "text eol=lf" attributes did nothing to change
that for the existing test files! Confusingly it did work for new
files checked into the repo?! 'git check-attr -a' and 'git ls-files --eol'
did not show any diference between the existing and new files.

This commit does the "proper thing", which is use .gitattributes
to indicate files that should be checked out with LF line endings.
To workaround git ignoring these attributes, a '.bin' suffix is added to
the text filenames to stop git detecting it as text and using CRLF anyway
on checkout.
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.

1 participant