diff options
| author | Nat Goodspeed <nat@lindenlab.com> | 2017-03-20 21:47:11 -0400 | 
|---|---|---|
| committer | Nat Goodspeed <nat@lindenlab.com> | 2017-03-20 21:47:11 -0400 | 
| commit | 4aa3ff1e442528b75c36143e0c28aeb47d77791f (patch) | |
| tree | 1075ecdc50761a19130eafa55a93a89263138fe5 | |
| parent | 2d921e00634c593c15776727e513a2d0f9795f21 (diff) | |
| parent | bd5d2625e9c1e3347d91ebc535faaaaa3d09c529 (diff) | |
Automated merge with ssh://bitbucket.org/lindenlab/viewer64
| -rw-r--r-- | autobuild.xml | 16 | ||||
| -rwxr-xr-x | build.sh | 4 | ||||
| -rw-r--r-- | indra/cmake/Havok.cmake | 128 | 
3 files changed, 67 insertions, 81 deletions
diff --git a/autobuild.xml b/autobuild.xml index 57a6c125dc..74d6c3d02f 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -1376,9 +1376,9 @@              <key>archive</key>              <map>                <key>hash</key> -              <string>cbaa7619050123c3fd2a88959f88bd47</string> +              <string>814bed3b81820d83a184c0f0a805e92d</string>                <key>url</key> -              <string>http://s3-proxy.lindenlab.com/private-builds-secondlife-com/ct2/749/1553/havok_source-2012.1-2-darwin64-500739.tar.bz2</string> +              <string>http://s3-proxy.lindenlab.com/private-builds-secondlife-com/ct2/3613/9353/havok_source-2012.1-2-darwin64-503601.tar.bz2</string>              </map>              <key>name</key>              <string>darwin64</string> @@ -1412,9 +1412,9 @@              <key>archive</key>              <map>                <key>hash</key> -              <string>dab55cc0555d7126fda925e20af851ea</string> +              <string>7d4517f7a601391e83ba2e08f2ea518f</string>                <key>url</key> -              <string>http://s3-proxy.lindenlab.com/private-builds-secondlife-com/ct2/1194/2807/havok_source-2012.1-2-windows-501181.tar.bz2</string> +              <string>http://s3-proxy.lindenlab.com/private-builds-secondlife-com/ct2/3621/9389/havok_source-2012.1-2-windows-503601.tar.bz2</string>              </map>              <key>name</key>              <string>windows</string> @@ -1424,9 +1424,9 @@              <key>archive</key>              <map>                <key>hash</key> -              <string>7bbc1c3512a5665b7576b4b0357a9eb7</string> +              <string>b15b374f49ce4ac910889f5b7e150c73</string>                <key>url</key> -              <string>http://s3-proxy.lindenlab.com/private-builds-secondlife-com/ct2/1195/2816/havok_source-2012.1-2-windows64-501181.tar.bz2</string> +              <string>http://s3-proxy.lindenlab.com/private-builds-secondlife-com/ct2/3614/9359/havok_source-2012.1-2-windows64-503601.tar.bz2</string>              </map>              <key>name</key>              <string>windows64</string> @@ -3341,7 +3341,6 @@                  <array>                    <string>-G</string>                    <string>Xcode</string> -                  <string>-DHAVOK:BOOL=OFF</string>                  </array>                </map>                <key>default</key> @@ -3370,7 +3369,6 @@                  <array>                    <string>-G</string>                    <string>Xcode</string> -                  <string>-DHAVOK:BOOL=OFF</string>                  </array>                </map>                <key>name</key> @@ -3405,7 +3403,6 @@                  <array>                    <string>-G</string>                    <string>Xcode</string> -                  <string>-DHAVOK:BOOL=OFF</string>                  </array>                </map>                <key>name</key> @@ -3432,7 +3429,6 @@                  <array>                    <string>-G</string>                    <string>Xcode</string> -                  <string>-DHAVOK:BOOL=OFF</string>                  </array>                </map>                <key>name</key> @@ -97,14 +97,14 @@ pre_build()      # nat 2016-12-20: disable HAVOK on Mac until we get a 64-bit Mac build.      RELEASE_CRASH_REPORTING=ON +    HAVOK=ON      SIGNING=()      if [ "$arch" == "Darwin" ] -    then HAVOK=OFF +    then           if [ "$variant" == "Release" ]           then SIGNING=("-DENABLE_SIGNING:BOOL=YES" \                         "-DSIGNING_IDENTITY:STRING=Developer ID Application: Linden Research, Inc.")           fi -    else HAVOK=ON      fi      "$autobuild" configure --quiet -c $variant -- \ diff --git a/indra/cmake/Havok.cmake b/indra/cmake/Havok.cmake index 99e7334118..811a126b8f 100644 --- a/indra/cmake/Havok.cmake +++ b/indra/cmake/Havok.cmake @@ -8,6 +8,11 @@ use_prebuilt_binary(havok-source)  set(Havok_INCLUDE_DIRS ${LIBS_PREBUILT_DIR}/include/havok/Source)  list(APPEND Havok_INCLUDE_DIRS ${LIBS_PREBUILT_DIR}/include/havok/Demo) +# HK_DISABLE_IMPLICIT_VVECTOR3_CONVERSION suppresses an intended conversion +# function which Xcode scolds us will unconditionally enter infinite +# recursion if called. This hides that function. +add_definitions("-DHK_DISABLE_IMPLICIT_VVECTOR3_CONVERSION") +  set(HAVOK_DEBUG_LIBRARY_PATH ${LIBS_PREBUILT_DIR}/lib/debug/havok-fulldebug)  set(HAVOK_RELEASE_LIBRARY_PATH ${LIBS_PREBUILT_DIR}/lib/release/havok) @@ -49,89 +54,74 @@ unset(HK_DEBUG_LIBRARIES)  unset(HK_RELEASE_LIBRARIES)  unset(HK_RELWITHDEBINFO_LIBRARIES) +if (DEBUG_PREBUILT) +  # DEBUG_MESSAGE() displays debugging message +  function(DEBUG_MESSAGE) +    # prints message args separated by semicolons rather than spaces, +    # but making it pretty is a lot more work +    message(STATUS "${ARGN}") +  endfunction(DEBUG_MESSAGE) +else (DEBUG_PREBUILT) +  # without DEBUG_PREBUILT, DEBUG_MESSAGE() is a no-op +  function(DEBUG_MESSAGE) +  endfunction(DEBUG_MESSAGE) +endif (DEBUG_PREBUILT) + +# DEBUG_EXEC() reports each execute_process() before invoking +function(DEBUG_EXEC) +  DEBUG_MESSAGE(${ARGN}) +  execute_process(COMMAND ${ARGN}) +endfunction(DEBUG_EXEC) +  # *TODO: Figure out why we need to extract like this...  foreach(HAVOK_LIB ${HAVOK_LIBS}) -        find_library(HAVOK_DEBUG_LIB_${HAVOK_LIB}   ${HAVOK_LIB} PATHS ${HAVOK_DEBUG_LIBRARY_PATH}) -        find_library(HAVOK_RELEASE_LIB_${HAVOK_LIB} ${HAVOK_LIB} PATHS ${HAVOK_RELEASE_LIBRARY_PATH}) -        find_library(HAVOK_RELWITHDEBINFO_LIB_${HAVOK_LIB} ${HAVOK_LIB} PATHS ${HAVOK_RELWITHDEBINFO_LIBRARY_PATH}) -         -        if(LINUX) -            set(debug_dir "${HAVOK_DEBUG_LIBRARY_PATH}/${HAVOK_LIB}") -            set(release_dir "${HAVOK_RELEASE_LIBRARY_PATH}/${HAVOK_LIB}") -            set(relwithdebinfo_dir "${HAVOK_RELWITHDEBINFO_LIBRARY_PATH}/${HAVOK_LIB}") +  find_library(HAVOK_DEBUG_LIB_${HAVOK_LIB}   ${HAVOK_LIB} PATHS ${HAVOK_DEBUG_LIBRARY_PATH}) +  find_library(HAVOK_RELEASE_LIB_${HAVOK_LIB} ${HAVOK_LIB} PATHS ${HAVOK_RELEASE_LIBRARY_PATH}) +  find_library(HAVOK_RELWITHDEBINFO_LIB_${HAVOK_LIB} ${HAVOK_LIB} PATHS ${HAVOK_RELWITHDEBINFO_LIBRARY_PATH}) +   +  if(LINUX) +    set(debug_dir "${HAVOK_DEBUG_LIBRARY_PATH}/${HAVOK_LIB}") +    set(release_dir "${HAVOK_RELEASE_LIBRARY_PATH}/${HAVOK_LIB}") +    set(relwithdebinfo_dir "${HAVOK_RELWITHDEBINFO_LIBRARY_PATH}/${HAVOK_LIB}")      # Try to avoid extracting havok library each time we run cmake.      if("${havok_${HAVOK_LIB}_extracted}" STREQUAL "" AND EXISTS "${PREBUILD_TRACKING_DIR}/havok_${HAVOK_LIB}_extracted")        file(READ ${PREBUILD_TRACKING_DIR}/havok_${HAVOK_LIB}_extracted "havok_${HAVOK_LIB}_extracted") -      if(DEBUG_PREBUILT) -        message(STATUS "havok_${HAVOK_LIB}_extracted: \"${havok_${HAVOK_LIB}_extracted}\"") -      endif(DEBUG_PREBUILT) +      DEBUG_MESSAGE("havok_${HAVOK_LIB}_extracted: \"${havok_${HAVOK_LIB}_extracted}\"")      endif("${havok_${HAVOK_LIB}_extracted}" STREQUAL "" AND EXISTS "${PREBUILD_TRACKING_DIR}/havok_${HAVOK_LIB}_extracted")      if(${PREBUILD_TRACKING_DIR}/havok_source_installed IS_NEWER_THAN ${PREBUILD_TRACKING_DIR}/havok_${HAVOK_LIB}_extracted OR NOT ${havok_${HAVOK_LIB}_extracted} EQUAL 0) -      if(DEBUG_PREBUILT) -        MESSAGE(STATUS "Extracting ${HAVOK_LIB}...") -      endif(DEBUG_PREBUILT) -      set(cmd "mkdir") - -      if(DEBUG_PREBUILT) -        MESSAGE(STATUS "${cmd} ${debug_dir}") -      endif(DEBUG_PREBUILT) -            exec_program( ${cmd} ${HAVOK_DEBUG_LIBRARY_PATH} ARGS ${debug_dir} OUTPUT_VARIABLE rv) - -      if(DEBUG_PREBUILT) -        MESSAGE(STATUS "${cmd} ${release_dir}") -      endif(DEBUG_PREBUILT) -            exec_program( ${cmd} ${HAVOK_RELEASE_LIBRARY_PATH} ARGS ${release_dir} OUTPUT_VARIABLE rv) - -      if(DEBUG_PREBUILT) -        MESSAGE(STATUS "${cmd} ${relwithdebinfo_dir}") -      endif(DEBUG_PREBUILT) -            exec_program( ${cmd} ${HAVOK_RELWITHDEBINFO_LIBRARY_PATH} ARGS ${relwithdebinfo_dir} OUTPUT_VARIABLE rv) - -            set(cmd "ar") -            set(arg " -xv") -            set(arg "${arg} ../lib${HAVOK_LIB}.a") -      if(DEBUG_PREBUILT) -        MESSAGE(STATUS "cd ${debug_dir} && ${cmd} ${arg}") -      endif(DEBUG_PREBUILT) -            exec_program( ${cmd} ${debug_dir} ARGS ${arg} OUTPUT_VARIABLE rv) - -      if(DEBUG_PREBUILT) -        MESSAGE(STATUS "cd ${release_dir} && ${cmd} ${arg}") -      endif(DEBUG_PREBUILT) -            exec_program( ${cmd} ${release_dir} ARGS ${arg} OUTPUT_VARIABLE rv) - -      if(DEBUG_PREBUILT) -        MESSAGE(STATUS "cd ${relwithdebinfo_dir} && ${cmd} ${arg}") -      endif(DEBUG_PREBUILT) -            exec_program( ${cmd} ${relwithdebinfo_dir} ARGS ${arg} OUTPUT_VARIABLE rv) +      DEBUG_MESSAGE("Extracting ${HAVOK_LIB}...") + +      foreach(lib ${debug_dir} ${release_dir} ${relwithdebinfo_dir}) +        DEBUG_EXEC("mkdir" ${lib}) +        DEBUG_EXEC("ar" "-xv" "../lib${HAVOK_LIB}.a" +          WORKING_DIRECTORY ${lib}) +      endforeach(lib)        # Just assume success for now.        set(havok_${HAVOK_LIB}_extracted 0)        file(WRITE ${PREBUILD_TRACKING_DIR}/havok_${HAVOK_LIB}_extracted "${havok_${HAVOK_LIB}_extracted}") -    endif(${PREBUILD_TRACKING_DIR}/havok_source_installed IS_NEWER_THAN ${PREBUILD_TRACKING_DIR}/havok_${HAVOK_LIB}_extracted OR NOT ${havok_${HAVOK_LIB}_extracted} EQUAL 0) - -            file(GLOB extracted_debug "${debug_dir}/*.o") -            file(GLOB extracted_release "${release_dir}/*.o") -            file(GLOB extracted_relwithdebinfo "${relwithdebinfo_dir}/*.o") - -    if(DEBUG_PREBUILT) -      MESSAGE(STATUS "extracted_debug ${debug_dir}/*.o") -      MESSAGE(STATUS "extracted_release ${release_dir}/*.o") -      MESSAGE(STATUS "extracted_relwithdebinfo ${relwithdebinfo_dir}/*.o") -    endif(DEBUG_PREBUILT) - -            list(APPEND HK_DEBUG_LIBRARIES ${extracted_debug}) -            list(APPEND HK_RELEASE_LIBRARIES ${extracted_release}) -            list(APPEND HK_RELWITHDEBINFO_LIBRARIES ${extracted_relwithdebinfo}) -        else(LINUX) -        # Win32 -            list(APPEND HK_DEBUG_LIBRARIES   ${HAVOK_DEBUG_LIB_${HAVOK_LIB}}) -            list(APPEND HK_RELEASE_LIBRARIES ${HAVOK_RELEASE_LIB_${HAVOK_LIB}}) -            list(APPEND HK_RELWITHDEBINFO_LIBRARIES ${HAVOK_RELWITHDEBINFO_LIB_${HAVOK_LIB}}) -        endif (LINUX) +    endif() + +    file(GLOB extracted_debug "${debug_dir}/*.o") +    file(GLOB extracted_release "${release_dir}/*.o") +    file(GLOB extracted_relwithdebinfo "${relwithdebinfo_dir}/*.o") + +    DEBUG_MESSAGE("extracted_debug ${debug_dir}/*.o") +    DEBUG_MESSAGE("extracted_release ${release_dir}/*.o") +    DEBUG_MESSAGE("extracted_relwithdebinfo ${relwithdebinfo_dir}/*.o") + +    list(APPEND HK_DEBUG_LIBRARIES ${extracted_debug}) +    list(APPEND HK_RELEASE_LIBRARIES ${extracted_release}) +    list(APPEND HK_RELWITHDEBINFO_LIBRARIES ${extracted_relwithdebinfo}) +  else(LINUX) +    # Win32 +    list(APPEND HK_DEBUG_LIBRARIES   ${HAVOK_DEBUG_LIB_${HAVOK_LIB}}) +    list(APPEND HK_RELEASE_LIBRARIES ${HAVOK_RELEASE_LIB_${HAVOK_LIB}}) +    list(APPEND HK_RELWITHDEBINFO_LIBRARIES ${HAVOK_RELWITHDEBINFO_LIB_${HAVOK_LIB}}) +  endif (LINUX)  endforeach(HAVOK_LIB)  endif(NOT DEFINED ${CMAKE_CURRENT_LIST_FILE}_INCLUDED)  | 
