Merge pull request 'Fixes for 2025.07 to compile on macOS'

master
TJ 2025-10-17 16:15:04 +10:00 committed by GitHub
commit 9328c8e559
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
15 changed files with 101 additions and 59 deletions

View File

@ -195,14 +195,14 @@
<string>ndPhysicsStub</string>
<key>platforms</key>
<map>
<key>darwin</key>
<key>darwin64</key>
<map>
<key>archive</key>
<map>
<key>hash</key>
<string>7d375112b162e32e37262da4a6c0a702</string>
<string>b0f4fd59a72cf04db2cc426241a3850c</string>
<key>url</key>
<string>https://3p.firestormviewer.org/ndPhysicsStub-1.0-darwin-202330107.tar.bz2</string>
<string>https://3p.firestormviewer.org/ndPhysicsStub-1.0-darwin64-252581439.tar.bz2</string>
</map>
<key>name</key>
<string>darwin</string>
@ -250,9 +250,9 @@
<key>archive</key>
<map>
<key>hash</key>
<string>94fc457c46e1fb94b31251bd4747d10f</string>
<string>439af4161d99a3d12e0d6d90cb948687</string>
<key>url</key>
<string>https://3p.firestormviewer.org/glod-1.0pre3.171101143-darwin64-171101143.tar.bz2</string>
<string>https://3p.firestormviewer.org/glod-1.0pre3.252621603-darwin64-252621603.tar.bz2</string>
</map>
<key>name</key>
<string>darwin64</string>
@ -297,14 +297,14 @@
<string>gntp-growl</string>
<key>platforms</key>
<map>
<key>darwin</key>
<key>darwin64</key>
<map>
<key>archive</key>
<map>
<key>hash</key>
<string>33300134846d0f00ac4f31c1a190e3e6</string>
<string>5362f98bf0b0c5b12acacd6b7b1e427e</string>
<key>url</key>
<uri>https://3p.firestormviewer.org/gntp_growl-1.0-darwin-201505101047-r12.tar.bz2</uri>
<uri>https://3p.firestormviewer.org/gntp_growl-1.0-darwin64-252631716.tar.bz2</uri>
</map>
<key>name</key>
<string>darwin</string>
@ -378,9 +378,9 @@
<key>archive</key>
<map>
<key>hash</key>
<string>3bc297a0fa47094bb52d361f80186387</string>
<string>91b24b83d3f8461286f783f28fcd9a66</string>
<key>url</key>
<uri>https://3p.firestormviewer.org/discord_rpc-3.4.0-darwin64-192522358.tar.bz2</uri>
<uri>https://3p.firestormviewer.org/discord_rpc-3.4.0-darwin64-252621453.tar.bz2</uri>
</map>
<key>name</key>
<string>darwin64</string>

View File

@ -20,13 +20,13 @@ add_library(fs::discord INTERFACE IMPORTED)
include(Prebuilt)
use_prebuilt_binary(discord-rpc)
if (WINDOWS)
target_link_libraries(fs::discord INTERFACE discord-rpc)
elseif (LINUX)
target_link_libraries(fs::discord INTERFACE discord-rpc)
elseif (DARWIN)
target_link_libraries(fs::discord INTERFACE discord-rpc)
endif (WINDOWS)
find_library(DISCORD_LIBRARY
NAMES
discord-rpc.lib
libdiscord-rpc.a
PATHS "${ARCH_PREBUILT_DIRS_RELEASE}" REQUIRED NO_DEFAULT_PATH)
target_link_libraries(fs::discord INTERFACE ${DISCORD_LIBRARY})
target_include_directories(fs::discord SYSTEM INTERFACE
${AUTOBUILD_INSTALL_DIR}/include/discord-rpc

View File

@ -33,14 +33,15 @@ if (USE_FMODSTUDIO)
# as accessing the private LL location will fail if you don't have the credential
include(Prebuilt)
use_prebuilt_binary(fmodstudio)
if (WINDOWS)
target_link_libraries( ll::fmodstudio INTERFACE fmod_vc)
elseif (DARWIN)
#despite files being called libfmod.dylib, we are searching for fmod
target_link_libraries( ll::fmodstudio INTERFACE fmod)
elseif (LINUX)
target_link_libraries( ll::fmodstudio INTERFACE fmod)
endif (WINDOWS)
find_library(FMOD_LIBRARY
NAMES
fmod_vc.lib
libfmod.dylib
libfmod.so
PATHS "${ARCH_PREBUILT_DIRS_RELEASE}" REQUIRED NO_DEFAULT_PATH)
target_link_libraries(ll::fmodstudio INTERFACE ${FMOD_LIBRARY})
target_include_directories( ll::fmodstudio SYSTEM INTERFACE ${LIBS_PREBUILT_DIR}/include/fmodstudio)
endif (FMODSTUDIO_LIBRARY AND FMODSTUDIO_INCLUDE_DIR)

View File

@ -5,13 +5,24 @@ add_library( fs::glod INTERFACE IMPORTED )
include(Prebuilt)
use_prebuilt_binary(glod)
if (WINDOWS)
target_link_libraries( fs::glod INTERFACE glod.lib)
elseif (DARWIN)
target_link_libraries( fs::glod INTERFACE libGLOD.dylib)
find_library(GLOD_LIBRARY
NAMES
GLOD.lib
libGLOD.dylib
libGLOD.a
PATHS "${ARCH_PREBUILT_DIRS_RELEASE}" REQUIRED NO_DEFAULT_PATH)
if (WINDOWS OR DARWIN)
target_link_libraries(fs::glod INTERFACE ${GLOD_LIBRARY})
elseif (LINUX)
target_link_libraries( fs::glod INTERFACE libGLOD.a libvds.a)
endif (WINDOWS)
find_library(VDS_LIBRARY
NAMES
libvds.a
PATHS "${ARCH_PREBUILT_DIRS_RELEASE}" REQUIRED NO_DEFAULT_PATH)
target_link_libraries(fs::glod INTERFACE ${GLOD_LIBRARY} ${VDS_LIBRARY})
endif ()
target_include_directories( fs::glod SYSTEM INTERFACE
${AUTOBUILD_INSTALL_DIR}/include/glod

View File

@ -9,11 +9,20 @@ add_library( fs::growl INTERFACE IMPORTED )
include(Prebuilt)
use_prebuilt_binary(gntp-growl)
if (WINDOWS)
target_link_libraries( fs::growl INTERFACE growl.lib growl++.lib)
elseif (DARWIN)
target_link_libraries( fs::growl INTERFACE libgrowl.dylib libgrowl++.dylib)
endif (WINDOWS)
find_library(GROWL_LIBRARY
NAMES
growl.lib
libgrowl.dylib
PATHS "${ARCH_PREBUILT_DIRS_RELEASE}" REQUIRED NO_DEFAULT_PATH)
find_library(GROWL_PLUSPLUS_LIBRARY
NAMES
growl++.lib
libgrowl++.dylib
PATHS "${ARCH_PREBUILT_DIRS_RELEASE}" REQUIRED NO_DEFAULT_PATH)
target_link_libraries(fs::growl INTERFACE ${GROWL_LIBRARY} ${GROWL_PLUSPLUS_LIBRARY})
target_include_directories( fs::growl SYSTEM INTERFACE
${AUTOBUILD_INSTALL_DIR}/include/Growl

View File

@ -48,7 +48,27 @@ else (HAVOK)
# set(LLPHYSICSEXTENSIONS_SRC_DIR ${LIBS_PREBUILT_DIR}/llphysicsextensions/stub)
# </FS:ND>
target_link_libraries( llphysicsextensions_impl INTERFACE nd_hacdConvexDecomposition hacd nd_Pathing )
# <FS:TJ> Use find_library to make our lives easier
find_library(ND_HACDCONVEXDECOMPOSITION_LIBRARY
NAMES
nd_hacdConvexDecomposition.lib
libnd_hacdConvexDecomposition.a
PATHS "${ARCH_PREBUILT_DIRS_RELEASE}" REQUIRED NO_DEFAULT_PATH)
find_library(HACD_LIBRARY
NAMES
hacd.lib
libhacd.a
PATHS "${ARCH_PREBUILT_DIRS_RELEASE}" REQUIRED NO_DEFAULT_PATH)
find_library(ND_PATHING_LIBRARY
NAMES
nd_pathing.lib
libnd_pathing.a
PATHS "${ARCH_PREBUILT_DIRS_RELEASE}" REQUIRED NO_DEFAULT_PATH)
target_link_libraries(llphysicsextensions_impl INTERFACE ${ND_HACDCONVEXDECOMPOSITION_LIBRARY} ${HACD_LIBRARY} ${ND_PATHING_LIBRARY})
# </FS:TJ>
# <FS:ND> include paths for LLs version and ours are different.
target_include_directories( llphysicsextensions_impl INTERFACE ${LIBS_PREBUILT_DIR}/include/ )

View File

@ -97,6 +97,10 @@
# define LL_ARM64 1
#elif LL_GNUC && (defined(__arm64__) || defined(__aarch64__))
# define LL_ARM64 1
// <FS:TJ> Check if using clang
#elif LL_CLANG && (defined(__arm64__) || defined(__aarch64__))
# define LL_ARM64 1
// </FS:TJ>
#elif LL_MSVC && _M_X64
# define LL_X86_64 1
# define LL_X86 1
@ -105,6 +109,13 @@
#elif LL_GNUC && ( defined(__amd64__) || defined(__x86_64__) )
# define LL_X86_64 1
# define LL_X86 1
// <FS:TJ> Check if using clang
#elif LL_CLANG && ( defined(__amd64__) || defined(__x86_64__) )
# define LL_X86_64 1
# define LL_X86 1
#elif LL_CLANG && ( defined(__i386__) )
# define LL_X86 1
// </FS:TJ>
#elif LL_GNUC && ( defined(__i386__) )
# define LL_X86 1
#endif

View File

@ -2452,13 +2452,16 @@ bool LLWindowMacOSX::getInputDevices(U32 device_type_filter,
void LLWindowMacOSX::openFile(const std::string& file_name )
{
LL_INFOS() << "Opening file " << file_name << LL_ENDL;
FSRef appRef;
OSStatus os_result = FSPathMakeRef((UInt8*)file_name.c_str(),
&appRef,NULL);
if(os_result >= 0)
LL_INFOS() << "Opening file " << file_name << LL_ENDL;
CFURLRef url = CFURLCreateFromFileSystemRepresentation(kCFAllocatorDefault,
(const UInt8*)file_name.c_str(),
(CFIndex)file_name.size(),
false);
if (url)
{
os_result = LSOpenFSRef(&appRef, NULL);
OSStatus os_result = LSOpenCFURLRef(url, NULL);
CFRelease(url);
}
}

View File

@ -2508,7 +2508,7 @@ if (WINDOWS)
elseif (DARWIN)
set_target_properties(${VIEWER_BINARY_NAME}
PROPERTIES
RESOURCE SecondLife.xib
RESOURCE Firestorm.xib
LINK_FLAGS_RELEASE "${LINK_FLAGS_RELEASE} -Xlinker -dead_strip"
#<FS:TS> Force the SDK version in the linked executable to be 10.12. This will fool
# macOS into using the pre-Mojave display system, avoiding the blurry display that

View File

@ -292,7 +292,6 @@ private:
S32 mInputEditorPad;
S32 mChatLayoutPanelHeight;
S32 mFloaterHeight;
uuid_vec_t mInvitedParticipants;
uuid_vec_t mPendingParticipants;

View File

@ -161,7 +161,6 @@ private:
S32 mInputEditorPad;
S32 mChatLayoutPanelHeight;
S32 mFloaterHeight;
std::vector<LLChat> mMessageArchive;

View File

@ -395,7 +395,7 @@ private:
LLButton* mBtnAlign { nullptr };
LLButton* mBtnAlignTex { nullptr };
LLButton* mBtnPbrFromInv { nullptr };
//LLButton* mBtnPbrFromInv { nullptr }; // <FS/> Done via texture picker
LLButton* mBtnEditBbr { nullptr };
LLButton* mBtnSaveBbr { nullptr };

View File

@ -169,7 +169,7 @@ private:
// <FS:Ansariel> FIRE-4740: Friend counter in people panel
LLTabContainer* mFriendsTabContainer;
LLAccordionCtrl* mFriendsAccordion = nullptr;
//LLAccordionCtrl* mFriendsAccordion = nullptr; // <FS:Ansariel/> Friend list accordion replacement
LLAccordionCtrlTab* mFriendsAllTab = nullptr;
LLAccordionCtrlTab* mFriendsOnlineTab = nullptr;

View File

@ -321,13 +321,9 @@ public:
void setRebakeStuck(bool stuck) { mRebakeStuck = stuck;} // <FS:LO> FIRE-7639 - Stop the blinking after a while
private:
LLTextBox *mTextBalance;
LLTextBox *mTextHealth;
LLTextBox *mTextTime;
LLTextBox *mFPSText; // <FS:Ansariel> FIRE-14482: Show FPS in status bar
LLTextBox* mTextParcelName;
LLStatGraph *mSGBandwidth;
LLStatGraph *mSGPacketLoss;
@ -361,7 +357,6 @@ private:
LLPanelNearByMedia* mPanelNearByMedia;
LLPanel* mParcelInfoPanel;
LLButton* mInfoBtn;
LLTextBox* mParcelInfoText;
LLTextBox* mDamageText;
LLIconCtrl* mParcelIcon[ICON_COUNT];

View File

@ -1588,12 +1588,6 @@ class Darwin_x86_64_Manifest(ViewerManifest):
self.path("*.dylib")
self.path("plugins.dat")
# do this install_name_tool *after* media plugin is copied over
dylibexecutablepath = self.dst_path_of('llplugin/media_plugin_cef.dylib')
self.run_command_shell('install_name_tool -change '
'"@rpath/Frameworks/Chromium Embedded Framework.framework/Chromium Embedded Framework" '
'"@executable_path/../Frameworks/Chromium Embedded Framework.framework/Chromium Embedded Framework" "%s"' % dylibexecutablepath)
# NOTE: the -S argument to strip causes it to keep enough info for
# annotated backtraces (i.e. function names in the crash log). 'strip' with no
# arguments yields a slightly smaller binary but makes crash logs mostly useless.