summaryrefslogtreecommitdiff
path: root/indra/cmake
AgeCommit message (Collapse)Author
10 daysBuild Dullahan in Linux aarch64 config stageHEADmainErik Kundiman
GCC needs cstdint header inclusion for it to compile. include/cef needs to exist first otherwise configuration would fail. INSTALL_RPATH is needed in try_compile-ing. PROJECT_ARCH needs to be set on aarch64 to avoid -m64 and -march(=x86-64) settings which aren't recognised (and wouldn't be correct) on aarch64. ENABLE_CXX11_ABI needs to be set ON, otherwise it would use C++ 03's ABI and cause a linking failure. Dullahan headers don't seem to be included in the installation upstream, and dullahan_version.h gets generated only at least after Dullahan configuration, hence the 2 files copying. dullahan_host rpath removal is taken out of scope because the Fedora we support isn't only x86-64 now. The reindentations are just to make the uniform with the rest in the file.
2025-04-27Replace {.._DIR}/lib/release with ARCH_PREBUILT_DIRS_RELEASEErik Kundiman
Shorter.
2025-04-27Replace USE_AUTOBUILD_3P OR USE_CONAN with USESYSTEMLIBSErik Kundiman
Simpler.
2025-04-27Config libcurl install dirs so it can make installErik Kundiman
Same as reason as previous commit, plus the moving of OpenSSL libs up 1 directory is still needed.
2025-04-27Config OpenSSL install dirs so it can make installErik Kundiman
so there's no need to have the long list of installed files. openssldir is set to isolate the files so they won't pollute the packages directory (which could lead to confusion).
2025-04-27One Collada DOM try_compile for all platformsErik Kundiman
On macOS, it's static library too, now, hence the stream editing is done out of any platform scope (which it's still needed because BUILD_SHARED_LIBS is ignored), and the (so)versions don't need to be set any more. CMAKE_INSTALL_LIBDIR is also ignored, hence the libcollada14dom.a moving.
2025-04-27One OpenJPEG try_compile for all OSesErik Kundiman
Same as previous commits, plus reminding CMAKE_BUILD_WITH_INSTALL_RPATH needs to be set ON otherwise there would be configure error on FreeBSD, plus the codec executables aren't needed (they would encounter linking errors on FreeBSD, because /usr/local/lib isn't automatically added as a header search directory). By default OpenJPEG installation header directory is "openjpeg-2.5", hence the renaming. The 3 non-API headers are copied, still.
2025-04-27Explicit significant NDOF try_compile settingsErik Kundiman
and use ARCH_PREBUILT_DIRS_RELEASE for shortening paths.
2025-04-27Back to one Meshoptimizer try_compile for all OSesErik Kundiman
CMAKE_OSX_ARCHITECTURES & CMAKE_OSX_DEPLOYMENT_TARGET won't affect non-macOS. Settings such as those 2, and CMAKE_BUILD_TYPE, aren't inherited, so the significant ones should be set explicitly. Meshoptimizer default installation header directory is without the encapsulating "meshoptimizer" directory.
2025-04-27Suppress repetitive SSE2NEON warnings on macOSErik Kundiman
2025-04-25Unset CFLAGS after building libcurlErik Kundiman
so that the C90 standard setting is not used when compiling other dependencies such as OpenJPEG.
2025-04-20Get the custom cURL compiled on Fedora Asahi RemixErik Kundiman
getpwuid_r, which is declared in /usr/include/pwd.h, somehow is always missed by, at least the custom, libcurl compiling process. I tried defining __USE_POSIX so the getpwuid_r part in pwd.h is included, I also tried undefining HAVE_GETPWUID_R so the getpwuid_r part in curl/lib/netrc.c is skipped (respectively using -D and -U CPPFLAGS ENV setting in indra/cmake/CURL.cmake), with no success. So just force the getpwuid_r part in netrc.c to be skipped by substituting defined(HAVE_GETPWUID_R) with 0.
2025-04-19Get the viewer launching on Fedora Asahi RemixErik Kundiman
Media plugins enabling not yet. OpenXR is disabled for now (it hasn't been used anyway). perl-FindBin is needed to be able to build OpenSSL on Fedora aarch64. Setting the C standard to 90 when building cURL is needed, otherwise it would fail at configure time with a misleading error of not finding link/run time requirements for dependencies (such as nghttp2 and zlib), at least on Fedora (and macOS too back then, I remember). GCC treated SSE2NEON warnings as errors on so many files, so -Wno-cpp is added globally. The same Linux CPU frequency calculation needs to be out of the x86 scope, otherwise the viewer would complain about not meeting the requirements at launch time.
2025-04-17Explicit on macOS deployment target when CMaking depsErik Kundiman
Turns out it wasn't forwarded, when I was building on macOS 15 arm64.
2025-04-08Merge branch 'main' into 2025.03Erik Kundiman
2025-04-07FMOD has been upgraded from 2.02.27 to 2.02.28Erik Kundiman
2025-04-07Make it build & install, USING Portage, on GentooErik Kundiman
Gentoo uses lib64, just like Fedora, and has libexec too. The necessary step to install dependencies is part of the ebuild script now (tracked in another repo, ebuild.git). One thing I forgot to mention on the commit in that ebuild repo is, unzip.h is provided on Gentoo only by minizip, and not minizip-ng cause somehow the (minizip) "compat" USE flag couldn't be turned on somehow, and there was no "minizip" (without -ng) package on Gentoo, but it was achievable by setting the "minizip" USE flag on the zlib (again, without -ng) package. The queue header inclusion is needed cause its absence would cause the compiling to fail on Portage (though it compiled when building the viewer manually without Portage). Also, using the prebuilt Meshoptimizer caused some linking errors when using Portage (though, again, it linked when building the viewer manually without Portage), hence Meshoptimizer is built from source as part of the CMake configuration on Gentoo, differing from fellow Linux distros. Now Collada DOM, firstly the unpack destination directory is moved to inside the build directory now, to make it uniform with other 3rd-party files, just for less confusion. Secondly, since the patching that takes effect is the one done by Portage, it would kill the process when there are offending failed patchings (ones that generate .rej, reject files), and they are the vcxproj patchings which aren't used anyway. Thirdly, the hash checking on the downloaded file, that would fail anyway since Portage doesn't allow any downloading that isn't part of the ebuild, unfortunately has to be skipped so the emerge process wouldn't be killed just because of it. Ebuild has its own sum checking (though this means this particular file is not checked on other platforms, but other files aren't checked either anyway yet). Last but not least, the XDG Application category is removed because it's considered deprecated by Portage, though not fatal, but the viewer is already shown well in the Internet (Network) submenu anyway on unix desktops.
2025-04-07Fix logics for using prebuilt or system GLMErik Kundiman
Since the last merge, the prebuilt version has been used for all Megapahit platforms, when some should've used the system version instead, as instructed. And then, not all Linux distros don't have sufficient version of GLM on their repos, some do have and have already been instructed to install system GLM anyway. So the distros that still have insufficient version of GLM (0.9.9.8 instead of the necessary 1.0.1) are Debian, Ubuntu and openSUSE Tumbleweed, while other distros and OSes have GLM 1.0.1.
2025-03-21Merge tag 'Second_Life_Release#895a6739-2025.03' into 2025.03Erik Kundiman
2025-03-12Try to parallelize xcode builds further and add more headers to PCH to ↵Rye
reduce build time
2025-03-11Replace MacPorts' Boost 1.81 with 1.87Erik Kundiman
and therefore LL's Collada DOM can be upgraded to something newer than r4, and therefore PCRE can be no longer depended on. Have to set the C++ standard so it doesn't use anything old, but also it wasn't ready for something as new as C++20 yet, that's why it's explicitly set to C++17. Have to set the architecture too when you're cross-compiling, it would use the native architecture.
2025-02-15FMOD has been upgraded from 2.02.26 to 2.02.27Erik Kundiman
2025-01-27Add missing parentheses for distro checkingErik Kundiman
2024-12-31Decide lib64 or x86_64-linux-gnu based on distroErik Kundiman
Some builders might just have their installation somehow customised to have both.
2024-12-23FMOD has been upgraded from 2.02.25 to 2.02.26Erik Kundiman
2024-12-17Merge branch 'main' into 2024.09-ExtraFPSErik Kundiman
2024-12-15Arch uses Crow Misia's WebRTC buildErik Kundiman
cause somehow WebRTC voice didn't work with LL's (Vivox still worked).. Also with LL's, so many devices detected; while with CM's, only built-in audio input device detected.
2024-12-01Merge branch 'main' into 2024.09-ExtraFPSErik Kundiman
2024-12-01Move libexec binaries to /usr/lib/megapahit on ArchErik Kundiman
as in Arch, there's really no /usr/libexec.
2024-11-20Merge branch 'main' into 2024.09-ExtraFPSErik Kundiman
2024-11-13Fix FMOD 2.02.25 Linux installationErik Kundiman
2024-11-13Merge branch 'main' into 2024.09-ExtraFPSErik Kundiman
2024-11-13Update FMOD to 2.02.25Erik Kundiman
2024-11-10Merge branch 'main' into 2024.09-ExtraFPSErik Kundiman
2024-11-10Revert "Disable dictionaries when using system libs"Erik Kundiman
This reverts commit 7360923f0888e48294921bd931c585c7c502a443.
2024-10-22Merge branch 'main' into 2024.09-ExtraFPSErik Kundiman
2024-10-22Regex for matching physics extension stub's httpErik Kundiman
2024-10-22Revert "LL physics extensions stub"Erik Kundiman
This reverts commit 45b9eed30320c6281efcfb748098a8789b15f15f.
2024-10-21Merge branch 'main' into 2024.09-ExtraFPSErik Kundiman
2024-10-20Working 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-10-18Merge branch 'main' into 2024.09-ExtraFPSErik Kundiman
2024-10-18Merge remote-tracking branch 'secondlife/release/2024.09-ExtraFPS' into ↵Erik Kundiman
2024.09-ExtraFPS
2024-10-08Explicit on OpenJPEG library being staticErik Kundiman
It wasn't inheriting the viewer's BUILD_SHARED_LIBS setting.
2024-09-30No VC flags on GCC & deps only if building ColladaErik Kundiman
2024-09-30Windows configuration, with MSYS2 in MinGW for nowErik Kundiman
Also simplify CMake-based dependency projects, the parameters that have been set for the viewer seem to have been implied all this time for the subprojects.
2024-09-29Fix extracted OpenSSL1.1.1w dir nameErik Kundiman
and specialise it just for FreeBSD, along with other fixes to get it building again on FreeBSD with an empty packages folder.
2024-09-27ReindentErik Kundiman
2024-09-26ReindentErik Kundiman
2024-09-25Re-add pcre header directory for macOSErik Kundiman
I thought /opt/local/include wasn't needed since we switched to boost181, but PCRE headers are there. If you still have "boost" installed (maybe depended on by some other package, just deactivate it first before cmake).
2024-09-21ColladaDOM depends on dynamic Boost 1.81 on macOSErik Kundiman
so we don't need the boost package or the -no_static variant of boost181 any more.