[opensource-dev] 64 bit viewers build instructions

Nicky Perian nickyperian at gmail.com
Sat Jan 7 20:13:27 PST 2017


brute force setting of LL_BUILD environment variable.
There may be a better/smarter way, but it appears to work.
# HG changeset patch
# User Nicky Perian <nickyperian at yahoo.com>
# Date 1483848353 21600
#      Sat Jan 07 22:05:53 2017 -0600
# Node ID 7b4fb3c48718213d1cd8c1e6c6dca0d50c95d78e
# Parent  390776087c1d7c83f04af629340839fadfdd0735
Brute force set LL_BUILD based on System name and Build type. If it isn't
set error out of configure.

diff -r 390776087c1d -r 7b4fb3c48718 indra/cmake/Variables.cmake
--- a/indra/cmake/Variables.cmake Mon Dec 19 05:11:36 2016 -0600
+++ b/indra/cmake/Variables.cmake Sat Jan 07 22:05:53 2017 -0600
@@ -12,10 +12,37 @@
 # Switches set here and in 00-Common.cmake must agree with
 # https://bitbucket.org/lindenlab/viewer-build-variables/src/tip/variables
 # Reading $LL_BUILD is an attempt to directly use those switches.
+if (${CMAKE_SYSTEM_NAME} MATCHES "Windows")
+  if (CMAKE_BUILD_TYPE MATCHES "Debug")
+      set (ENV{LL_BUILD} $ENV{LL_BUILD_WINDOWS_DEBUG})
+  elseif (CMAKE_BUILD_TYPE MATCHES "RelWithDebInfo")
+      set (ENV{LL_BUILD} $ENV{LL_BUILD_WINDOWS_RELWITHDEBINFO})
+  elseif (CMAKE_BUILD_TYPE MATCHES "Release")
+      set (ENV{LL_BUILD} $ENV{LL_BUILD_WINDOWS_RELEASE})
+  endif(CMAKE_BUILD_TYPE MATCHES "Debug")
+endif(${CMAKE_SYSTEM_NAME} MATCHES "Windows")
+if (${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
+  if (CMAKE_BUILD_TYPE MATCHES "Debug")
+      set (ENV{LL_BUILD} $ENV{LL_BUILD_DARWIN_DEBUG})
+  elseif (CMAKE_BUILD_TYPE MATCHES "RelWithDebInfo")
+      set (ENV{LL_BUILD} $ENV{LL_BUILD_DARWIN_RELWITHDEBINFO})
+  elseif (CMAKE_BUILD_TYPE MATCHES "Release")
+      set (ENV{LL_BUILD} $ENV{LL_BUILD_DARWIN_RELEASE})
+  endif(CMAKE_BUILD_TYPE MATCHES "Debug")
+endif(${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
+if (${CMAKE_SYSTEM_NAME} MATCHES "Linux")
+  if (CMAKE_BUILD_TYPE MATCHES "Debug")
+      set (ENV{LL_BUILD} $ENV{LL_BUILD_LINUX_DEBUG})
+  elseif (CMAKE_BUILD_TYPE MATCHES "RelWithDebInfo")
+      set (ENV{LL_BUILD} $ENV{LL_BUILD_LINUX_RELWITHDEBINFO})
+  elseif (CMAKE_BUILD_TYPE MATCHES "Release")
+      set (ENV{LL_BUILD} $ENV{LL_BUILD_LINUX_RELEASE})
+  endif(CMAKE_BUILD_TYPE MATCHES "Debug")
+endif(${CMAKE_SYSTEM_NAME} MATCHES "Linux")
 if ("$ENV{LL_BUILD}" STREQUAL "")
   message(FATAL_ERROR "Environment variable LL_BUILD must be set")
 endif ()
-
+#message(STATUS "LL_BUILD = '$ENV{LL_BUILD}'")
 # Relative and absolute paths to subtrees.

 if(NOT DEFINED ${CMAKE_CURRENT_LIST_FILE}_INCLUDED)



On Sat, Jan 7, 2017 at 6:32 PM, Nicky Perian <nickyperian at gmail.com> wrote:

> Snip Variables.cmake
> # Switches set here and in 00-Common.cmake must agree with
> # https://bitbucket.org/lindenlab/viewer-build-variables/src/tip/variables
> # Reading $LL_BUILD is an attempt to directly use those switches.
> #message(STATUS "AUTOBUILD_VARIABLES_FILE = '$ENV{AUTOBUILD_VARIABLES_
> FILE}'")
> #message(STATUS "LL_BUILD_WINDOWS_RELEASE = '$ENV{LL_BUILD_WINDOWS_
> RELEASE}'")
> #message(STATUS "LL_BUILD_RELEASE = '$ENV{LL_BUILD_RELEASE}'")
> set (ENV{LL_BUILD} $ENV{LL_BUILD_WINDOWS_RELEASE})
> #message(STATUS "LL_BUILD = '$ENV{LL_BUILD}'")
> if ("$ENV{LL_BUILD}" STREQUAL "")
>   message(FATAL_ERROR "Environment variable LL_BUILD must be set")
> endif ()
>
> Above allows configure to complete, but I would like a better place or
> better yet some autobuild involvement to set LL_BUILD based to the chosen
> Release, RelWithDebugInfo, Debug build.
>
> Next,
> Copyright (C) Microsoft Corporation. All rights reserved.
>
> cl : Command line warning D9002: ignoring unknown option '/OP'
> [C:\Users\Bill\P64\viewer64\build-vc120-64\llcommon\llcommon.vcxproj]
> cl : Command line warning D9002: ignoring unknown option '/OT'
> [C:\Users\Bill\P64\viewer64\build-vc120-64\llcommon\llcommon.vcxproj]
> cl : Command line warning D9002: ignoring unknown option '/O:'
> [C:\Users\Bill\P64\viewer64\build-vc120-64\llcommon\llcommon.vcxproj]
> cl : Command line warning D9002: ignoring unknown option '/OR'
> [C:\Users\Bill\P64\viewer64\build-vc120-64\llcommon\llcommon.vcxproj]
> cl : Command line warning D9002: ignoring unknown option '/OE'
> [C:\Users\Bill\P64\viewer64\build-vc120-64\llcommon\llcommon.vcxproj]
> cl : Command line warning D9002: ignoring unknown option '/OF'
> [C:\Users\Bill\P64\viewer64\build-vc120-64\llcommon\llcommon.vcxproj]
> cl : Command line warning D9002: ignoring unknown option '/SAFESEH:NO'
> [C:\Users\Bill\P64\viewer64\build-vc120-64\llcommon\llcommon.vcxproj]
> cl : Command line warning D9002: ignoring unknown option
> '/NODEFAULTLIB:LIBCMT' [C:\Users\Bill\P64\viewer64\
> build-vc120-64\llcommon\llcommon.vcxproj]
>
> No idea where /O* switches are set but appear to be included in every
> *.vcxproj.
> '/SAFESEH:NO' and '/NODEFAULTLIB:LIBCMT' or link switches that appear here
> LL_BUILD_WINDOWS_BASE_SWITCHES="/Zc:wchar_t- /Zi /GR /DEBUG */SAFESEH:NO
> /NODEFAULTLIB:LIBCMT*"
>
> These link switches are set in 00-Common.cmake.
>
> Once removed those warning are no longer listed. This in likely a case of
> putting link switches in cl without a pass through. I suspect the '/O*'
> switches are link switches also, but grep was of no help finding where they
> are set.
>
> Good news is the build completed without the crazy errors encountered
> earlier.
>
>
>
>
> On Sat, Jan 7, 2017 at 2:17 PM, Nat Goodspeed <nat at lindenlab.com> wrote:
>
>> On Fri, Jan 6, 2017 at 9:23 PM, Nicky Perian <nickyperian at gmail.com>
>> wrote:
>>
>> >>/SAFESEH:NO /NODEFAULTLIB:LIBCMT /DLL_RELEASE=1
>> /DLL_RLEASE_FOR_DOWNLOAD=1
>> >> /DNDEBUG
>> >
>> > DLL_RLEASE_FOR_DOWNLOAD=1 is the 'E' missing in RELEASE or was the
>> variable
>> > name changed?
>>
>> Thank you for pointing that out!
>> https://bitbucket.org/lindenlab/viewer-build-variables/
>> commits/a9d6c3061349a14289cffb536320f0aa7bdf472f
>>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.secondlife.com/pipermail/opensource-dev/attachments/20170107/3a766730/attachment.html 


More information about the opensource-dev mailing list