summaryrefslogtreecommitdiff
path: root/indra
AgeCommit message (Collapse)Author
2023-07-19stricmp needs to be defined on FreeBSD tooErik Kundiman
2023-07-19FreeBSD follows Darwin & Linux on llpluginErik Kundiman
2023-07-19Use C++14 specifically on DAE loaderErik Kundiman
When using system vanilla COLLADA DOM, it still uses std::auto_ptr which is deprecated in C++17.
2023-07-19Cast COLLADA dom instance as instructed on its docErik Kundiman
which can be found too in the system COLLADA DOM headers.
2023-07-19DAE class declarations are when not on system libsErik Kundiman
cause they would cause ambiguity with system COLLADA DOM classes.
2023-07-19Include standard library array headerErik Kundiman
as it's not implied on some platforms that std::array would be unrecognised.
2023-07-19Fix what GCC considers as misleading indentationsErik Kundiman
The style conventions aren't really being followed that the different styles of using tabs or spaces as indentations lead to GCC considering them as misleading. It's better to just fix them (but as little as possible as to minimise this fork difference from upstream) than to supress the warnings from being treated as errors.
2023-07-19Disable g_thread_init when using system libsErik Kundiman
On GCC, compiling against a recent GTK2 version would stop on deprecated pre-processors.
2023-07-19FreeBSD has SDL keyboard & window files built tooErik Kundiman
and any Linux SDL code should be applied to FreeBSD too.
2023-07-19Explicitly mean to use boost:placeholdersErik Kundiman
Otherwise _1 and _2 would be considered undeclared in many places.
2023-07-19Include FreeBSD macro variable for GL related codeErik Kundiman
2023-07-19Stubs for missing implementations that use SDLErik Kundiman
in order to get rid of this: error: invalid new-expression of abstract class type ‘LLWindowSDL’ fullscreen, clearBg, enable_vsync, use_gl, ignore_pixel_depth, fsaa_samples); note: because the following virtual functions are pure within ‘LLWindowSDL’: class LLWindowSDL : public LLWindow ^~~~~~~~~~~ virtual void* createSharedContext() = 0; ^~~~~~~~~~~~~~~~~~~ virtual void makeContextCurrent(void* context) = 0; ^~~~~~~~~~~~~~~~~~ virtual void destroySharedContext(void* context) = 0; ^~~~~~~~~~~~~~~~~~~~ virtual void toggleVSync(bool enable_vsync) = 0; ^~~~~~~~~~~ The window has been relying on some, mostly GL context related, methods. These methods are declared abstract, so for now they're implemented using member functions that do nothing, return nothing.
2023-07-19Use system SDL on FreeBSD tooErik Kundiman
X11 is still required too, that's why it's still added for linking. On Darwin, SDL is disabled for now.
2023-07-19Set so int in bool context isn't an error on GCCErik Kundiman
and only on a specific file.
2023-07-19System OpenJPEG headers are encapsulatedErik Kundiman
For now the directory name is hardcoded since v2.5.0 is the latest and the viewer code already depends on a certain function from that version. So for now it's safe to assume that the directory name's suffix is 2.5.
2023-07-19Linux filesystem dir can still be used for FreeBSDErik Kundiman
2023-07-19Explicit when using function_ptr Phoenix binderErik Kundiman
From the errors: base type ‘float (*)(float, float) noexcept’ fails to be a struct or class type struct functor_action : public FuncT { ^~~~~~~~~~~~~~ ‘float (*)(float, float) noexcept’ is not a class, struct, or union type struct result { typedef typename FuncT::result_type type; }; ^~~~ type ‘float (*)(float, float) noexcept’ is not a direct base of ‘phoenix::functor_action<float (*)(float, float) noexcept>’ : FuncT(fptr_) {} ^ it seems that GCC, at least the ones on my system, failed to deduce that the binder meant to be used when trying to bind the C Std Math Library's powf and fmodf functions is of course the function pointer one (specifically the 2 args specialisation), and not the functor one.
2023-07-19Newer system meshopt_simplify has 1 extra argumentErik Kundiman
since Meshoptimizer v0.18, an option to specify meshopt_SimplifyLockBorder.
2023-07-19System xxHash header isn't (usually?) encapsulatedErik Kundiman
2023-07-19Operating system info implementation for FreeBSDErik Kundiman
2023-07-19Macro defs on FreeBSD as it's a supported arch nowErik Kundiman
2023-07-19Processor information implementation for FreeBSDErik Kundiman
Relies on sysctl, like on Darwin, and on parsing a file, like on Linux, except the file would be /var/run/dmesg.boot.
2023-07-19Undefine NULL before defining it to 0 on FreeBSDErik Kundiman
Since C++11, NULL is promoted to nullptr on some BSD platforms. This is very problematic when used with Boost. At times it would fail during compile-time. What's worse is if it passes compile-time, but then crash during run-time, for example when some condition is to be checked for its truth, when then it would be compared to a nullptr.
2023-07-19Start including FBSD for common macro definitionsErik Kundiman
2023-07-19Deprecated declarations aren't treated as errorsErik Kundiman
I had added this to CMAKE_CXX_FLAGS in 00-Common before, and only when the compiler was Clang. But it turned out that GCC was treating them as errors too, that the addition would need to be applied to all compilers. So I prefer to put it here in llcommon with the scope set to PUBLIC cause the errors would show up again when compiling other LL libraries if the scope is set to something else.
2023-07-19stdtypes.h includes C Std Lib stddef.h for size_tErik Kundiman
in order to get rid of errors complaining that size_t was not declared in the scope.
2023-07-19VLC & CEF aren't deps when no media plugins on macErik Kundiman
2023-07-19Disable copy 3rd party libs when using system libsErik Kundiman
2023-07-19Disable viewer manager when using system libsErik Kundiman
2023-07-19Disable LLCA when using system libs for nowErik Kundiman
2023-07-19Disable DBusGlib when using system libsErik Kundiman
It's deprecated anyway.
2023-07-19Disable JS packages when using system libs for nowErik Kundiman
2023-07-19Disable dictionaries when using system libsErik Kundiman
for now. Dictionaries should later be enabled when we have arrived at the point where everything has run well that the next stage would be the packaging for the distribution stage.
2023-07-19Obtain FontConfig flags when using system libsErik Kundiman
and at the same time escape use_prebuilt_binary commands in the file.
2023-07-19Obtain GTK2 required flags when using system libsErik Kundiman
So far all of GTK2 dependencies flags, such as for Pango, Cairo, PNG16, etc., seem to be implied by checking the gtk+-2.0 module alone, at least on FreeBSD and Debian.
2023-07-19Obtain FreeType flags when using system libsErik Kundiman
The module name to check with pkgconf is different, hence the special treatment.
2023-07-19Obtain COLLADA DOM flags when using system libsErik Kundiman
There are also several additional flags from running pkgconf that we don't get from pkg_check_modules. At least 1 is needed later when compiling llprimitive.
2023-07-19LL physics extensions stubErik Kundiman
Since the CMakeLists.txt includes some same .cmake files as the viewer, I think the project might as well be a part of the Linden libraries code. And for now is put under llprimitive (might not be consistent, in fact the opposite, with they way llplugin relates to slplugin), but I think this way results the least change, and it still works. The differences include: - all files (common llphysicsextensions headers to be included by library users and the stub implementation files) are put inside one directory, and the CMakeLists.txt is adjusted accordingly; - modernised CMakeLists.txt, so include_directories are now implied by target_link_libraries; - some file name fix; - add_library is not explicitly set to STATIC;
2023-07-19Obtain Meshoptimizer flags when using system libsErik Kundiman
The Meshoptimizer CMake files don't seem to be working right. On more than one platform, they always conclude the package as not found. Nevertheless, the library is typically installed in standard paths, that no special paths need to be included for Meshoptimizer to be found. Except on macOS (so far), as existing package managers don't have that package yet, hence the /usr/local/include addition. It's a safe path to include anyway on other un*x platforms.
2023-07-19Obtain OpenJPEG flags when using system libsErik Kundiman
The module name to check with pkgconf is different, hence the special treatment.
2023-07-19No GoogleMock, AddBuildTest & Tut when no LL_TESTSErik Kundiman
2023-07-19Not use use_system_binary for system GLEXTErik Kundiman
for the same reason as GLH, but since the headers are expected to be installed in the same directory as GLH (and GLEXT.cmake includes GLH.cmake), we can skip any additional directory to look the headers for.
2023-07-19Not use use_system_binary for system GLHErik Kundiman
No package manager that I know of provide such package. So this one is expected to be installed in /usr/local/include.
2023-07-19Not use use_system_binary for system OpenSSLErik Kundiman
Some distros already include OpenSSL as part of the distribution, that OpenSSL may not be provided with its .pc files, even though they're available upstream.
2023-07-19Not use use_system_binary for system xmlrpc-epiErik Kundiman
The xmlrpc-epi package has no .pc or .cmake files. On some platforms, the header and the library directories don't have special paths. On GNU/Linux, at least on Debian, the headers are encapsulated in the packages's own directory. On macOS, both MacPorts & Homebrew don't have the package. On the other hand, Fink, that has the package, still doesn't support recent versions of macOS as of this writing. So it's very likely that on macOS, xmlrpc-epi is installed in /usr/local.
2023-07-19Keep using Zlib (no -ng) when using system libsErik Kundiman
Calls to zlib-ng in the viewer code aren't prefixed. And in order to build, the zlib-ng package needs to be configured with the ZLIB_COMPAT option on. Some package managers may not have provided the option on, or to turn that on, yet.
2023-07-19Only make sure there's xxHash when using sys libsErik Kundiman
2023-07-19Obtain Boost include dir when using system libsErik Kundiman
The necessary linker flags to link the required Boost libraries are somehow not obtained from find_package. Passing boost_context, boost_fiber, or so on to find_package didn't help getting the linker flags either. Hence the manual listing of the Boost libraries to link.
2023-07-19Obtain APR required flags when using system libsErik Kundiman
On some platforms such as FreeBSD or MacPorts, pkg-config --libs apr-util-1 already includes -lapr-1. But on APT, the apr-1 module needs to be checked too.
2023-07-19OpenAL system lib flags by checking frealut moduleErik Kundiman