Open Geenz opened 10 months ago
Very appreciated! I made a simple PR fixing a path - hope it's OK.
One question: when building on macOS, as a non-Linden person, I run into problems with the prebuilt packages. I can skip FMOD etc. with
autobuild configure -c RelWithDebInfo -- -DUSE_FMODSTUDIO:BOOL=FALSE -DUSE_CONAN:BOOL=FALSE -DUSE_KDU:BOOL=FALSE
but Havok seems to block me from building and I can't find the parameter to pass...
use RelWithDebInfoOS as 'non-Linden'
That doesn't seem to change anything - while it allows me to skip the others, Havok is still expected to be present.
(base) lanch@M1 viewer % autobuild configure -c RelWithDebInfoOS
Warning: no --id argument or AUTOBUILD_BUILD_ID environment variable specified;
using a value from the UTC date and time (240361740), which may not be unique
'/Applications/CMake.app/Contents/bin/cmake' '-DCMAKE_BUILD_TYPE:STRING=RelWithDebInfo' '-DADDRESS_SIZE:STRING=64' '-DROOT_PROJECT_NAME:STRING=SecondLife' '-DINSTALL_PROPRIETARY=FALSE' '-G' 'Xcode' '../indra'
-- CMAKE_OSX_DEPLOYMENT_TARGET = ''
-- CMAKE_XCODE_ATTRIBUTE_CLANG_CXX_LIBRARY = ''
-- CMAKE_XCODE_ATTRIBUTE_DEBUG_INFORMATION_FORMAT = ''
-- CMAKE_XCODE_ATTRIBUTE_GCC_OPTIMIZATION_LEVEL = ''
CMake Error at cmake/Variables.cmake:185 (list):
list index: 2 out of range (-2, 1)
Call Stack (most recent call first):
CMakeLists.txt:32 (include)
-- CMAKE_OSX_SYSROOT = '/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX14.2.sdk'
-- Revision (from autobuild environment): 240361740
-- Building 'Second Life Test' Version 7.1.3.240361740
Package havok-source is set to use 'github' credentials type but no AUTOBUILD_GITHUB_TOKEN environment variable is set
ERROR: Failed to download package 'havok-source' from 'https://api.github.com/repos/secondlife/3p-havok-source/releases/assets/108912596'
For more information: try re-running your command with --verbose or --debug
CMake Error at cmake/Prebuilt.cmake:54 (message):
Failed to download or unpack prebuilt 'havok-source'. Process returned 1.
Call Stack (most recent call first):
cmake/Havok.cmake:5 (use_prebuilt_binary)
cmake/LLPhysicsExtensions.cmake:22 (include)
llprimitive/CMakeLists.txt:8 (include)
-- Configuring incomplete, errors occurred!
ERROR: default configuration returned 1
For more information: try re-running your command with --verbose or --debug
Suggestion: Remove the build folder (build-darwin*) from the repo's folder and try again with RelWithDebInfoOS or ReleaseOS, it likely hasn't cleaned 'havok' from previous cache. RelWithDebInfoOS specificaly disables all propriatary pacakges like KDU, havok and fmod.
Yeah - remove the build-darwin*
folder, and reattempt with the RelWithDebInfoOS
flag or ReleaseOS
flags from the start.
Yeah, no it still demands the proprietary libs. I think the trouble is in the Out of Range error with Variables.cmake - bailing before setting the right parameters. This is checked out from the current 'main' branch.
lanch@M1 viewer % autobuild configure -c RelWithDebInfoOS
Warning: no --id argument or AUTOBUILD_BUILD_ID environment variable specified;
using a value from the UTC date and time (240361838), which may not be unique
'/Applications/CMake.app/Contents/bin/cmake' '-DCMAKE_BUILD_TYPE:STRING=RelWithDebInfo' '-DADDRESS_SIZE:STRING=64' '-DROOT_PROJECT_NAME:STRING=SecondLife' '-DINSTALL_PROPRIETARY=FALSE' '-G' 'Xcode' '../indra'
-- The C compiler identification is AppleClang 15.0.0.15000100
-- The CXX compiler identification is AppleClang 15.0.0.15000100
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- CMAKE_OSX_DEPLOYMENT_TARGET = ''
-- CMAKE_XCODE_ATTRIBUTE_CLANG_CXX_LIBRARY = ''
-- CMAKE_XCODE_ATTRIBUTE_DEBUG_INFORMATION_FORMAT = ''
-- CMAKE_XCODE_ATTRIBUTE_GCC_OPTIMIZATION_LEVEL = ''
CMake Error at cmake/Variables.cmake:185 (list):
list index: 1 out of range (-1, 0)
Call Stack (most recent call first):
CMakeLists.txt:32 (include)
-- CMAKE_OSX_SYSROOT = '/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX14.2.sdk'
-- Revision (from autobuild environment): 240361838
-- Building 'Second Life Test' Version 7.1.3.240361838
-- Found OpenGL: /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX14.2.sdk/System/Library/Frameworks/OpenGL.framework
Package slvoice is set to use 'github' credentials type but no AUTOBUILD_GITHUB_TOKEN environment variable is set
ERROR: Failed to download package 'slvoice' from 'https://api.github.com/repos/secondlife/3p-slvoice/releases/assets/108299352'
For more information: try re-running your command with --verbose or --debug
CMake Error at cmake/Prebuilt.cmake:54 (message):
Failed to download or unpack prebuilt 'slvoice'. Process returned 1.
Call Stack (most recent call first):
cmake/ViewerMiscLibs.cmake:19 (use_prebuilt_binary)
llwindow/CMakeLists.txt:19 (include)
-- Configuring incomplete, errors occurred!
ERROR: default configuration returned 1
For more information: try re-running your command with --verbose or --debug
What happens if you configure with ReleaseOS
?
Makes me wonder what your LL_BUILD
value is.
The exact same happens as with RelWithDebInfoOS
.
CMake Error at cmake/Variables.cmake:185 (list):
list index: 1 out of range (-1, 0)
I think it has to do with the LL_BUILD variable, because the listed range changes if I change the number of parameters.
It is currently LL_BUILD=-iwithsysroot
.
That's the problem then. The CMake logic in Variables.cmake
expects that -iwithsysroot
will be followed by a valid CMAKE_OSX_SYSROOT
path. Do you have a local clone of secondlife/build-variables?
Yes. I fact I have two :-D
Do you have AUTOBUILD_VARIABLES_FILE
set to the path of the variables
file within one of those?
Ah, thank you. That helped with the CMake error - it is gone now. But still I get the demand for the proprietary libs when trying the ReleaseOS or RelWithDebInfoOS 🤔
ERROR: Failed to download package 'slvoice'
slvoice in particular is up in the air... I think the plan is to make it public.
Edit: here are the details: https://github.com/secondlife/viewer/pull/574 I assume that slvoice is needed for OS builds as well, so without it being public you might need to get one of the older pacakges untill it gets fixed. Or pull in that pull request.
Lars, check your CMakeCache.txt file. Search for INSTALL_PROPRIETARY
. If that's ON or TRUE or the like, please edit it and save it as the opposite.
It was UNINITIALIZED:FALSE , now BOOL:FALSE. No difference. And if I change all INSTALL_PROPRIETARY entries in autobuild.xml to FALSE, it still asks for slvoice.
I will now stop pestering you, since I'm trying to compile on an unsupported architecture (arm64/Apple Silicon), even if I'm compiling for x86_64 under emulation.
since I'm trying to compile on an unsupported architecture (arm64/Apple Silicon)
You aren't at a compilation stage yet, ufortunately SLVoice is an actual issue and pacakges should become downloadable at some point.
ERROR: Failed to download package 'slvoice'
slvoice in particular is up in the air... I think the plan is to make it public.
Edit: here are the details: #574 I assume that slvoice is needed for OS builds as well, so without it being public you might need to get one of the older pacakges untill it gets fixed. Or pull in that pull request.
That was the issue. Pulling in those changes made it work. Thank you so much :-)
heh. I was going to point out that Andrey's and Geenz's suggestion to remove the build-darwin*
folder did solve the general problem, in that your build stopped looking for Havok. As this discussion surfaces, we're still working on resolving GitHub limitations wrt slvoice in particular.
Yeah, it makes sense :)
Should we add a note to the docs introduced in this PR so others don't run into the same confusion I did?
What's the status of this issue? If you need template documentation for building on Linux I can help.
Including build instructions with the repository helps to reduce friction for open source contributors, and anyone just generally wanting to get started with viewer development of any kind. This also helps to maintain a "source of truth" for all Linden viewer builds. These instructions should go in the
docs
sub directory.Test Plan
Follow the provided build instructions on a "clean" system with no pre-requisite software installed.