summaryrefslogtreecommitdiff
path: root/indra/media_plugins/libvlc/CMakeLists.txt
AgeCommit message (Collapse)Author
5 daysWorking Arch port but CEF & WebRTC are still brokenErik Kundiman
I've tried using FMOD instead, but CEF didn't work either. At first I used crow-misia's WebRTC build but it would cause a segmentation fault, but LL's build seems to break CEF. Gotta find a way so CM's build doesn't crash the viewer. PKGBUILD should be moved to indra/newview as an .in to be configured by CMake for dynamic version numbers, and adjust the instruction too to run makepkg -R from the folder where the generated PKGBUILD will be.
2024-09-25Change media plugins' linkages to bundled BoostErik Kundiman
2024-09-17Merge branch 'main' into 2024.08-DeltaFPSErik Kundiman
2024-09-17Revert to LL's OpenJPEG forkErik Kundiman
System 2.5.2 caused too much rainbow in DeltaFPS. For now, the OpenJPEG listed in autobuild.xml is 2.5.0. However, LL has recently got 2.5.2 too in their OpenJPEG fork repo, but we switch to that once it's the one listed in autobuild.xml. Reverting to the now maintained LL 3p-openjpeg should fix the texture thrashing problem https://megapahit.com/show_bug.cgi?id=1 starting from DeltaFPS.
2024-09-01Merge remote-tracking branch 'secondlife/release/2024.08-DeltaFPS' into ↵Erik Kundiman
2024.08-DeltaFPS
2024-08-26Don't create links to non-existent dependenciesErik Kundiman
JsonCpp isn't used any more and Boost is linked statically now, so SLPlugin doesn't need to link to any Boost dynamic libraries upwards (which are of an older version and are there because they're still needed by Collada DOM). I suspect links to non-existent files have been the cause of why Gatekeeper just wouldn't identify the developer despite the fact that Apple notarisation service would still accept the bundle and various Apple's integrity (command-line) tools would still validate the bundle too. This commit also removes unnecessary linkage changes for the media plugins.
2024-08-25Put media plugins install commands correspondinglyErik Kundiman
2024-08-12Update zlib-ng libxml2 libpng freetype minizip-ng boost collada-dom tinygltf ↵Rye Mutt
packages (#2250) Rebuild expat, apr, meshoptimizer, ogg_vorbis, libjpeg-turbo for symbol fixes
2024-08-10No Meshoptimizer macOS install name change or linkErik Kundiman
since the app links to Meshoptimizer statically now on macOS.
2024-08-03Revert "Build process' set up to link to Boost statically"Erik Kundiman
This reverts commit 9268fdd5b99bb8e426e7c1232916dfd909039f96.
2024-07-29Get VLC streaming to work again on macOSErik Kundiman
Somehow it wouldn't work when the libvlc dylibs linked by media_plugin_libvlc were far in Frameworks, even with all the linkages and VLC_PLUGIN_PATH set correctly. Because of this, I had to make the libvlc files redundantly copied (they're under 1 MB so we'll live with it) in llplugin just like upstream for media_plugin_libvlc to link to instead, though it seems the directory name can be anything, so I just let it be "plugins" for installation convenience using CMake. Also now the builder is assumed to not necessarily want VLC.app to be installed in /Applications, though they would need to keep the downloaded VLC disc image open.
2024-07-28Build process' set up to link to Boost staticallyErik Kundiman
on macOS and at least the one directly. Collada DOM's Boost dependency is still 1.76 in MacPorts' case, and that's why we still have Boost filesystem and system dylibs in Frameworks. On the other hand, the viewer codebase now really depends on newer Boost, in my case I can use MacPorts' 1.81. I had to switch to static because Boost 1.81 filesystem crashed for not finding the implementation of something declared using BOOST_FORCEINLINE in boost/filesystem/path.hpp. I think I know why, now. Cause the filesystem dylib that eventually got installed was the 1.76 one depended on by Collada DOM, so there was a conflict, there. For now the temporary MacPorts solution for this is to install boost181 with -no_static variant (notice the "-" there, so the static libraries are built and installed too). The rest is so hack-ish, I had to manually recreate Boost links pointing to 1.81 ones, only the ones needed, and for the libraries, only the static ones.
2024-07-10Merge branch 'main' into maint-bErik Kundiman
2024-07-10`cpack -G Bundle` instead of `make install` on MacErik Kundiman
Root project finally renamed to Megapahit, which has a nice effect of CPack: - Run preinstall target for: Megapahit CPack: - Install project: Megapahit [] but it's really because CPack Bundle file couldn't be renamed via CPACK_PACKAGE_NAME like on DEB, RPM, and FREEBSD. CPack determines its own destination root folder, which is Resources (I didn't find a way to set it to Contents). fixup_bundle is now run on the .app deep inside CPack staging folders so that the dependency copies will be included in the DMG.
2024-07-09Merge branch 'main' into maint-bErik Kundiman
2024-07-07macOS install DESTINATIONs are relative paths nowErik Kundiman
but set CMAKE_INSTALL_PREFIX to newview/Megapahit.app/Contents.
2024-07-07Fix paths to LibVLC files, they're in FrameworksErik Kundiman
Must have been residues before, they really were in llplugin/lib when I was doing the media plugin before.
2024-07-06Fix paths to LibVLC media plugin dependenciesErik Kundiman
Somehow fixup_bundle misses fixing the plugins. These fixes are in effect when MacPorts is used, though it wouldn't hurt if you're using HomeBrew, it's just you'd need to add the references to the HomeBrew libraries just like the MacPorts ones.
2024-07-06Merge branch 'main' into maint-bErik Kundiman
2024-07-05`make install` on macOS copies resources to bundleErik Kundiman
Except for SLPlugin since there's already a custom command for it.
2024-06-20Merge remote-tracking branch 'secondlife/release/maint-b' into maint-bErik Kundiman
2024-04-09Update Linux media handling (#1146)Nicky Dasmijn
* Enable CEF browser for Linux * Disable the update for Linux, we don't have that one right now * Update build_linux.yaml We need libpulse-dev for volume_catcher Linux * Add linux_volum_catcher* files * Enable OpenAL for Linux-ReleaseOS * Linux: Update OpenAL * Update SDL2 * Add libsndio-dev to the dependencies. * Update CEF to an official LL version * Remove dupe of emoji_shortcodes * Reording autobuild does because it can and wants to * Linux: Disable NDOF for the time being. After updating the ndof 3P needs to be rebuilt and we do not have a fresh one from LL yet. Forcefully undefine LIB_NDOF, it gets defined in the build variables no matter if it is safe to define. * Remove wrestling with mutliarch and LIBGL_DRIVERS_PATH * Remove tcmalloc snippet, tcmalloc is a very faint bad dream of the past * Putting out a warning this viewer ran on a x64 arch and then suggesting to install 32 bit compat packages makes no sense at all * CEF resources need to be in lib * It;'s okay to warn about missing plugins * Linux: CEF keyboard handling * Remove old gstreamer 0.10 implementation * Linux DSO loading always had been very peculiar due to macro magic. At least now it is peculiar shared magic with only one implementation. * Remove -fPIC. We get that one from LL_BUILD * /proc/cpuinfo is not reliable to detrmine the max CPU clock. Try to determine this by reading "/sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_max_freq". Only if this fails go back to /proc/cpuinfo * Cleanup * Cleanup common linker and compiler flags, make it more obvious which flags are for which OS/compiler * Switch to correct plugin file * Install libpulse-dev for volume catcher. * And the runner needs libsndio-dev as well. * check for runner.os=='linux'. matrix.os is the full name of the image (limux-large).
2024-01-18GNU/Linux internal web browserErik Kundiman
The lllibs need to be built as static libs now, otherwise SLPlugin would lose reference to gSavedSettings. The media plugins still need to be built as dynamic libs however, so they can't rely on the condition in LibraryInstall.cmake any more. Since the Megapahit viewer, when built using GCC, is using the default value for _GLIBCXX_USE_CXX11_ABI (which is 1 for the newer C++11 ABI as opposed to 0 for the older C++03 ABI), the Dullahan dependency needs to be built with the very same _GLIBCXX_USE_CXX11_ABI setting too, otherwise apr_dso would fail at loading libmedia_plugin_cef.so because of the failure to refer to the setOnConsoleMessageCallback function with strictly the same (not differing between std::__cxx11::basic_string vs. std::basic_string) parameter types. The CEF build is Spotify's, so no live streaming support, while the Dullahan package used by the viewer was built using Kokua's dullahan fork. After rebuilding it with _GLIBCXX_USE_CXX11_ABI kept at default by not overriding it in variables (from the build-variables repo), the order of the target link libraries in CEFPlugin.cmake doesn't seem to matter any more (it did before!). Now EXTERNAL_TOS can be safely omitted from GNU/Linux added compile definitions (but still used on FreeBSD).
2023-12-18Unix install sets plugin dir to system library dirErik Kundiman
because (at least) the vlc/plugins dirs are inside it in the same way it's been inside llplugin. This is so the app can find system VLC plugins. And for this, BUILD_SHARED_LIBS set on must work first on Linux (has already been working on FreeBSD), since libmedia_plugin_libvlc is a shared library (which now gets installed to system library dir too, on both OSes).
2023-08-26CPack for packaging (when PACKAGE set to on)Erik Kundiman
Since we could use the dynamic versioning from the configuration phase of CMake, the inclusion is put in BuildVersion.cmake. Other CPACK variables are usually static so can be set when running cmake. CPack somehow doesn't pick up the DESTINATION values in ViewerInstall (slplugin & libvlc too) from UnixInstall, so they're they're partially hardcoded again there.
2023-07-30libmedia_plugin_libvlc is installed to system tooErik Kundiman
libmedia_plugin_base is now explicitly set as static, since it could be set as shared when BUILD_SHARED_LIBS is on and it's just easier to have it compiled into with every media plugin cause it's small and would only be shared by 2 dynamic libraries anyway. Trying to put a dynamic version where the media plugin can find it so the reference is not broken, seems like a hassle.
2022-04-13Rework cmake, the original plan was to maybe be able to use conan targets ↵Nicky
with the same name (that's why 3ps had names like apr::apr), but it's safer and saner to put the LL 3ps under the ll:: prefix. This also allows means it is possible to get rid of that bad "if( TRAGET ...) return() endif()" pattern and rather use include_guard().
2022-04-06Move CMake files to modernized cmake syntax, step 1.Nicky
Change projects to cmake targetsto get rid of havig to hardcore include directories and link libraries in consumer projects.
2018-09-07remove only-partially-successful attempt to put teamcity blocks around targetsOz Linden
2018-09-05add more block structure to TeamCity log output for componentsOz Linden
2017-03-09Second part of fix for SL-646 Fix 'LINK : warning LNK4075: ignoring ↵Callum Prentice
/INCREMENTAL due to '/LTCG' specification' in LibVLC, JPEGLIB etc.
2016-12-06DRTVWR-418: Try to clean up numerous CMake CMP0046 warnings.Nat Goodspeed
2016-12-01DRTVWR-418: Until we figure out how to say FIXED:NO to linker, don't.Nat Goodspeed
The present CMake logic wants to pass FIXED:NO to the linker for 64-bit builds, which on the face of it seems like a Good Thing: it permits code to be relocated in memory, preventing collisions if two libraries happen to want to load into overlapping address ranges. However the way it's being specified is wrong and harmful. Passing /FIXED:NO to the compiler command line engages /FI (Forced Include!) of a nonexistent file XED:NO -- producing lots of baffling fatal compile errors. Thanks Callum for diagnosing this!
2016-11-15DRTVWR-418: Fold windows64 into windows platform with new autobuild.Nat Goodspeed
autobuild 1.1 now supports expanding $variables within a config file -- support that was explicitly added to address this very problem. So now the windows platform in autobuild.xml uses $AUTOBUILD_ADDRSIZE, $AUTOBUILD_WIN_VSPLATFORM and $AUTOBUILD_WIN_CMAKE_GEN, which should handle most of the deltas between the windows platform and windows64. This permits removing the windows64 platform definition from autobuild.xml. The one remaining delta between the windows64 and windows platform definitions was -DLL_64BIT_BUILD=TRUE. But we can handle that instead by checking ADDRESS_SIZE. Change all existing references to WORD_SIZE to ADDRESS_SIZE instead, and set ADDRESS_SIZE to $AUTOBUILD_ADDRSIZE. Change the one existing LL_64BIT_BUILD reference to test (ADDRESS_SIZE EQUAL 64) instead.
2016-05-13Additional set of changes to use vlc-bin packagecallum_linden
2016-05-06Moving to a private repocallum_linden