Commit Graph

5766 Commits

Author SHA1 Message Date
Khalid Masum f449db0bf0 extras: libtool: Use directory to add shared modules to compile emcc executables
Emscripten has not implemented adding shared libraries directly
to main modules properly yet.

See: https://github.com/emscripten-core/emscripten/issues/21667

Therefore, instruct libtool to use directory instead of the shared
object file for linking, as suggested in the issue.
2024-04-27 15:16:09 +00:00
Steve Lhomme 7111e603eb package/win32: remove the contrib target tools from the PATH
The cross-compiled binaries are likely not going to be usable on the host and
should not be added to the PATH. They should never be used to be consistent
between native and cross-compiled builds.

It was added in the original build script: 5648ecad1a.
2024-04-27 05:55:33 +00:00
Steve Lhomme ffe24cb69d package: win32: don't install Qt pdbs if Qt is disabled 2024-04-25 08:22:29 +00:00
Steve Lhomme c0470455a9 tools: don't build ragel
It's only used by harfbuzz which has its own internal version.
2024-04-21 08:17:40 +00:00
Pierre Lamot 33665ab7b0 win32: package missing pdb for the Qt plugin
since ddfc6d0de8 the libqt_plugin.pdb is no longer
generated in `modules/.libs/` directory, this patch explicitly package Qt pdb when
present
2024-04-18 11:06:28 +00:00
Steve Lhomme 58c60d1397 extras: wasm: show the list of contrib packages before building
This is done in the other contribs. It helps figuring out what is built in one
place and also what is pulled as a dependency.

The last remaining build script not to do it is Android but there's a
pending patch: https://code.videolan.org/videolan/libvlcjni/-/merge_requests/88
2024-04-16 06:43:29 +00:00
Claudio Cambra 8fa7292a51 macosx: Rename "mainwindow" folder to more appropriate "controlsbar"
Signed-off-by: Claudio Cambra <developer@claudiocambra.com>
2024-04-11 07:40:56 +00:00
Steve Lhomme 93c9d426d5 package/raspberry: build.sh: disable qt5 checks
We don't support Qt5 anymore.

We should make a new Docker image with Qt6.
2024-04-08 12:23:27 +00:00
Claudio Cambra 5c54696c7f macosx: Add starter VLCLibraryWindowPlaylistSidebarViewController
Signed-off-by: Claudio Cambra <developer@claudiocambra.com>
2024-04-03 17:35:20 +00:00
Claudio Cambra 7c8bf13fe4 macosx: Make VLCLibraryNavigationSidebarController a view controller, set as controller for new sidebar xib
Signed-off-by: Claudio Cambra <developer@claudiocambra.com>
2024-04-03 17:35:20 +00:00
Claudio Cambra a7e9c0dd59 macosx: Extract internal split view views into separate XIB files
Signed-off-by: Claudio Cambra <developer@claudiocambra.com>
2024-04-03 17:35:20 +00:00
Steve Lhomme 41bbcde5ec win32: build.sh: show the list of packages after the prebuilt is done
So we know the tools that need to be built from there.
2024-04-03 10:17:47 +00:00
Steve Lhomme 220f64aa29 CI: fix gcovr with qt6-vlc_qrc.cpp 2024-04-03 10:17:47 +00:00
Steve Lhomme 8999771793 CI: use latest vlc-debian-unstable with qml6-module-qtqml-workerscript 2024-04-03 10:17:47 +00:00
Fatih Uzunoglu f2fed209e4 snap: break the build
It is requested to break the snap build
because snap support for Qt 6 is currently
lacking and snap is supposed to contain
the Qt UI.
2024-03-29 17:34:02 +00:00
Fatih Uzunoglu 0946a51d6e extras: disable Qt for raspberry
The image raspberry runner uses seems to
not contain Qt 6.
2024-03-29 17:34:02 +00:00
Fatih Uzunoglu 9e547e433b extras: win32: update contribflags for disabling the qt gui 2024-03-29 17:34:02 +00:00
Felix Paul Kühne 72b312893d Packaging: add support for xrOS 2024-03-20 05:59:45 +00:00
Felix Paul Kühne 47cdb055b8 Packaging: write our own meson crossfile for appleOS
We need to set CFLAGS that are not transfered through the regular prozess.
2024-03-20 05:59:45 +00:00
Alaric Senat 0051b5f46e extras: ci: update emscripten image
The new image contains the latest version of the emscripten SDK.
2024-03-15 06:35:57 +00:00
Alaric Senat 8c8b9c3750 wasm: build: export bitcode modules with `-emit-llvm`
Both `-emit-llvm` and a `.bc` output extension are needed to export
bitcode since emscripten 3.1.50[^1]. Otherwise a plain object file will
be created.

[^1] 94b36c04dd
2024-03-15 06:35:57 +00:00
Marvin Scholz 37dc394c0c package: apple: pass the right platform_version for macOS
The linkers platform_version argument does not support
the value "macosx" but expects "macos" here instead.
2024-03-05 17:03:32 +00:00
Alexandre Janniaux 7f19145d93 extras: ci: enable coverage reports in MR
To enable coverage report in MRs (and not just in artifacts), we need to
indicate the regex for gitlab to parse the total percentage. See general
documentation[^1] highlighting that uploading doesn't enable, as well as
how to enable history [^2] and in merge requests[^3] for more details.

The || true is needed on the script line extracting the coverage
percentage, because the job is failing otherwise, but I'm still not sure
what is causing the failure.

[^1]: https://docs.gitlab.com/ee/ci/testing/test_coverage_visualization.html
[^2]: https://docs.gitlab.com/ee/ci/testing/code_coverage.html#view-history-of-project-code-coverage
[^3]: https://docs.gitlab.com/ee/ci/testing/code_coverage.html#view-code-coverage-results-in-the-mr

Co-authored-by: Alaric Senat <dev.asenat@posteo.net>
2024-02-27 08:55:42 +00:00
Alexandre Janniaux a80d692b5c extras: ci: change source path for cobertura output
Gitlab has some constraints[^1] regarding the cobertura output to have
the coverage results displayed on the merge request:

 - Files in the diff view must appear in the cobertura file to have the
   coverage enabled for them.

 - <filename> must be absolute or <source> must typically have an
   absolute path to the project directory.

 - Pipeline must have completed to show the results.

  - The coverage report must not exceed the limits (10MiB and 100
    sources node).

The second point on absolute filename was not valid given that meson
gcovr setup the <source> with `.`, leading to the only <source> element
referencing `.` instead of ${CI_PROJECT_DIR}.

This commit patches the generated coverage to ensure it's relative to
the root directory, enabling diff coverage.

[^1]: https://docs.gitlab.com/ee/ci/testing/test_coverage_visualization.html#test-coverage-visualization-not-displayed
2024-02-27 08:55:42 +00:00
Alexandre Janniaux 2cbc35cf86 extras: ci: export coverage artifacts
The files are reported to gitlab but not made public. Being able to
download it enables running gcovr locally and makes it easier to debug
coverage issues.
2024-02-27 08:55:42 +00:00
Alexandre Janniaux bccd0513ed extras: ci: fix typos in get-contrib-sha
Missing quote `"` from 0dffba0eba.
2024-02-27 08:55:42 +00:00
Claudio Cambra 472c6129a5
macosx: Extract table view data source protocol to separate file
Signed-off-by: Claudio Cambra <developer@claudiocambra.com>
2024-02-25 15:35:51 +08:00
Claudio Cambra e73dd58e61
macosx: Add starter VLCLoadingOverlayView
Signed-off-by: Claudio Cambra <developer@claudiocambra.com>
2024-02-25 15:34:51 +08:00
Claudio Cambra 984d8802b6
macosx: Add starter VLCLibraryModelChangeDelegate
Signed-off-by: Claudio Cambra <developer@claudiocambra.com>
2024-02-25 15:33:34 +08:00
Alexandre Janniaux d58a95d8fb extras: ci: ignore vlc_qrc.cpp coverage
When parsing the coverage with the Qt module enabled, gcovr was failing
to parse the output for qt5-vlc_qrc.cpp, leading to the following error.

    $ gcovr -r build-meson --json gcovr.cov.json                                                      130 ↵
    (INFO) Reading coverage data...
    (WARNING) Unrecognized GCOV output for /home/alexandre/workspace/videolabs/vlc-master/build-meson/modules/gui/qt/qt5-vlc_qrc.cpp
                    37:60736-block  0
                    37:60751-block  0
                    37:60759-block  0
                    37:60767-block  0
                    37:60768-block  0
            This is indicative of a gcov output parse error.
            Please report this to the gcovr developers
            at <https://github.com/gcovr/gcovr/issues>.
    (WARNING) Exception during parsing:
            UnknownLineType:        37:60736-block  0
    (WARNING) Exception during parsing:
            UnknownLineType:        37:60751-block  0
    (WARNING) Exception during parsing:
            UnknownLineType:        37:60759-block  0
    (WARNING) Exception during parsing:
            UnknownLineType:        37:60767-block  0
    (WARNING) Exception during parsing:
            UnknownLineType:        37:60768-block  0
    (ERROR) Exiting because of parse errors.
            You can run gcovr with --gcov-ignore-parse-errors
            to continue anyway.
    (ERROR) Trouble processing 'vlc/build-meson/modules/libqt_plugin.so.p/meson-generated_.._gui_qt_qt5-vlc_qrc.cpp.gcda' with working directory '/home/alexandre/workspace/videolabs/vlc-master/build-meson'.
    Stdout of gcov was >>File 'modules/gui/qt/qt5-vlc_qrc.cpp'
    Lines executed:100.00% of 13
    No branches
    Calls executed:100.00% of 5
    Creating 'qt5-vlc_qrc.cpp##1ea0d75896cd542c555451d8b8bb4a44.gcov'

Previously, it was trying to merge lines and triggered a negative hit,
leading to the introduction of the gcovr parameter:
--gcov-ignore-parse-errors=negative_hits.warn_once_per_file.

    (INFO) - MainThread - Reading coverage data...
    (WARNING) - Thread-29 (worker) - Unrecognized GCOV output for /builds/alexandre-janniaux/vlc/modules/codec/subsdec.c
              branch  2 taken -1 (fallthrough)
            This is indicative of a gcov output parse error.
            Please report this to the gcovr developers
            at <https://github.com/gcovr/gcovr/issues>.
    (WARNING) - Thread-29 (worker) - Exception during parsing:
            NegativeHits: Got negative hit value in gcov line 'branch  2 taken -1 (fallthrough)' caused by a bug in gcov tool, see https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68080. Use option --gcov-ignore-parse-errors with a value of negative_hits.warn, or negative_hits.warn_once_per_file.
    (ERROR) - Thread-29 (worker) - Exiting because of parse errors.
            You can run gcovr with --gcov-ignore-parse-errors
            to continue anyway.

This option seems to still be needed since it is impacted by how
coverage is computed by GCC.

Issue #28490 also mentioned the following assertion:

    AssertionError: Got function MainUI::getComponent() const on multiple lines: 26, 27.
            You can run gcovr with --merge-mode-functions=MERGE_MODE.
            The available values for MERGE_MODE are described in the documentation.

This assertion was due to --merge-mode-functions[^1] not being accounted,
which it now does in gcovr 7.0[^2], and files using Q_OBJECT and the MOC
code generator, duplicating some inline functions from headers.

    class MainUI : public QObject {
        Q_OBJECT
    public:
        /* The line below duplicates a function definition at two different
         * locations because of MOC. */
        inline QQmlComponent* getComponent() const {return m_component;}

We don't need this file to have its coverage checked since it's
generated from an XML file, so let's just ignore it from the coverage
entirely.

[^1]: https://github.com/gcovr/gcovr/pull/700
[^2]: https://github.com/gcovr/gcovr/pull/844

Fixes #28533 #28490
2024-02-24 15:07:01 +00:00
Claudio Cambra b9f051a11c macosx: Add starter VLCLibraryWindowToolbarDelegate
Signed-off-by: Claudio Cambra <developer@claudiocambra.com>
2024-02-24 12:55:04 +00:00
Claudio Cambra 4bd5c6707b macosx: Add a XIB-focused VLCLibraryWindowSplitViewController that deals with properly controlling sidebar and sizing behaviours of split view items
Signed-off-by: Claudio Cambra <developer@claudiocambra.com>
2024-02-24 12:55:04 +00:00
Claudio Cambra 8c6240225c macosx: Add a starter VLCLibraryWindowSplitViewManager
Signed-off-by: Claudio Cambra <developer@claudiocambra.com>
2024-02-24 12:55:04 +00:00
Claudio Cambra 41d2662249 macosx: Move library segment enum to VLCLibrarySegment class
Signed-off-by: Claudio Cambra <developer@claudiocambra.com>
2024-02-24 12:55:04 +00:00
Claudio Cambra cb49d22147 macosx: Add starter VLCLibrarySection
Signed-off-by: Claudio Cambra <developer@claudiocambra.com>
2024-02-24 12:55:04 +00:00
Claudio Cambra d318c6ecda macosx: Add starter VLCLibraryWindowNavigationSidebarContoller
Signed-off-by: Claudio Cambra <developer@claudiocambra.com>
2024-02-24 12:55:04 +00:00
Alexandre Janniaux 0dffba0eba extras: ci: fix get-contrib-sha for debian/android
Running

    ./extras/ci/get-contrib-sha.sh debian-meson

is currently failing with:

    fatal: empty string is not a valid pathspec. please use . instead if
    you meant to match all paths

because "${VLC_BUILD_TARGET}" would count for an empty parameter, as
opposed to being discarded without quotes. In some shells, like zsh, it
would also count as a parameter regardless of the presence of the
quotes.

Instead of using an intermediate variable to store an optional path,
this commit directly adds to the bash array containing the path checked
to find the contrib ancestor, allowing to both submit multiple files if
necessary, or none if unnecessary.

Regression from 4ac6168d47.
2024-02-24 06:17:55 +00:00
Steve Lhomme 8aad07b588 CI: don't rebuild contribs when a non-existing folder changes
There's no extras for Linux, so we don't need to rebuild when anything changes in extra/package.
2024-02-22 06:52:10 +00:00
Steve Lhomme 9dd68a3cac CI: pass the type of target to get-contrib-sha
So we only update contribs if specific targets have been updated.

The script will have to match the CI target name with a package folder.
2024-02-18 11:06:44 +00:00
Steve Lhomme 4ac6168d47 CI: restrict the build scripts used to build contribs
For example, updating a Windows build script shouldn't force the macOS jobs to rebuild contribs.

By default the script behaves the same as before. It requires giving a job name or target OS name to
select the changes only for that OS.
2024-02-18 11:06:44 +00:00
Fatih Uzunoglu f09636438a ci: update images for Qt 6 enablement 2024-02-16 15:30:53 +00:00
Alexandre Janniaux eb933a62ec extras: ci: compile check_PROGRAMS for macos
The tests are all compiling on macos and most of them are running
correctly, so we can ensure they continue to build. We cannot try to run
them without ensuring we select the runner architecture first though.

Regression from 70c643090b.
2024-02-09 17:57:14 +00:00
Steve Lhomme 60e3c2f497 CI: switch win64 gcc build to posix model version
So we can use std::thread and std::mutex.
2024-02-09 08:31:12 +00:00
Steve Lhomme 92d425935b CI: update Windows LLVM images to include breakpad 2024-02-07 08:35:52 +00:00
Steve Lhomme 8c8f315971 CI: switch 32-bit windows builds to LLVM 2024-02-05 11:03:04 +01:00
Thomas Guillem e5c3119ce3 apple/bundle.sh: handle extra file
Provide extra files to the application bundle that can be loaded by the
file access directly.

Co-authored-by: Alexandre Janniaux <ajanni@videolabs.io>
2024-01-31 08:53:09 +00:00
Fatih Uzunoglu 77c60d56ec extras: check cmake 3.21.0 instead of 3.18.0
cmake 3.21.0 is required to build Qt 6.
2024-01-25 08:38:23 +00:00
Steve Lhomme b3f5661994 CI: update windows gcc builds with a newer CMake
So we can bump the requirement without building cmake for every build.
2024-01-23 13:00:54 +00:00
Claudio Cambra 3a39c9edd6 macosx: Add iCarousel files to pbxproj
Signed-off-by: Claudio Cambra <developer@claudiocambra.com>
2024-01-19 06:05:33 +00:00
Claudio Cambra 67318e8c21 macosx: Add NSArray starter extension file
Signed-off-by: Claudio Cambra <developer@claudiocambra.com>
2024-01-19 06:05:33 +00:00