summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--autobuild.xml122
-rwxr-xr-xbuild.sh19
-rw-r--r--indra/cmake/Havok.cmake80
-rw-r--r--indra/cmake/LLPhysicsExtensions.cmake42
-rw-r--r--indra/cmake/Linking.cmake3
-rw-r--r--indra/cmake/Variables.cmake4
-rw-r--r--indra/cmake/ViewerMiscLibs.cmake7
-rw-r--r--indra/llprimitive/CMakeLists.txt2
-rw-r--r--indra/newview/CMakeLists.txt4
9 files changed, 233 insertions, 50 deletions
diff --git a/autobuild.xml b/autobuild.xml
index 40c26e2702..d412eab2e3 100644
--- a/autobuild.xml
+++ b/autobuild.xml
@@ -855,6 +855,54 @@
</map>
</map>
</map>
+ <key>havok-source</key>
+ <map>
+ <key>license</key>
+ <string>havok-ares</string>
+ <key>license_file</key>
+ <string>LICENSES/havok.txt</string>
+ <key>name</key>
+ <string>havok-source</string>
+ <key>platforms</key>
+ <map>
+ <key>darwin</key>
+ <map>
+ <key>archive</key>
+ <map>
+ <key>hash</key>
+ <string>efaf5cb3e861d44518eb03f4c406f03c</string>
+ <key>url</key>
+ <string>http://s3-proxy.lindenlab.com/private-builds-secondlife-com/hg/repo/falcon_3p-havok-source/rev/261536/arch/Darwin/installer/havok_source-2012.1-darwin-20120710.tar.bz2</string>
+ </map>
+ <key>name</key>
+ <string>darwin</string>
+ </map>
+ <key>linux</key>
+ <map>
+ <key>archive</key>
+ <map>
+ <key>hash</key>
+ <string>50037fff3fd3356a073cdae88348c9ab</string>
+ <key>url</key>
+ <string>http://s3-proxy.lindenlab.com/private-builds-secondlife-com/hg/repo/falcon_3p-havok-source/rev/261536/arch/Linux/installer/havok_source-2012.1-linux-20120711.tar.bz2</string>
+ </map>
+ <key>name</key>
+ <string>linux</string>
+ </map>
+ <key>windows</key>
+ <map>
+ <key>archive</key>
+ <map>
+ <key>hash</key>
+ <string>cd6638f5a03469654615730c16889a60</string>
+ <key>url</key>
+ <string>http://s3-proxy.lindenlab.com/private-builds-secondlife-com/hg/repo/falcon_3p-havok-source/rev/261536/arch/CYGWIN/installer/havok_source-2012.1-windows-20120710.tar.bz2</string>
+ </map>
+ <key>name</key>
+ <string>windows</string>
+ </map>
+ </map>
+ </map>
<key>jpeglib</key>
<map>
<key>license</key>
@@ -1095,14 +1143,14 @@
</map>
</map>
</map>
- <key>llphysicsextensions</key>
+ <key>llphysicsextensions_source</key>
<map>
<key>license</key>
- <string>llphysicsextensions</string>
+ <string>TEMPORARY</string>
<key>license_file</key>
<string>LICENSES/llphysicsextensions.txt</string>
<key>name</key>
- <string>llphysicsextensions</string>
+ <string>llphysicsextensions_source</string>
<key>platforms</key>
<map>
<key>darwin</key>
@@ -1110,9 +1158,11 @@
<key>archive</key>
<map>
<key>hash</key>
- <string>a860cbd4f30c51c8a3579f952afbdfec</string>
+ <string>9bba702fbbd41d3f6cd288ae1c763753</string>
+ <key>hash_algorithm</key>
+ <string>md5</string>
<key>url</key>
- <string>http://s3-proxy.lindenlab.com/private-builds-secondlife-com/hg/repo/stinson_llpathinglibrary/rev/261379/arch/Darwin/installer/llphysicsextensions-0.1-darwin-20120709.tar.bz2</string>
+ <string>http://s3-proxy.lindenlab.com/private-builds-secondlife-com/hg/repo/llphysicsextensions-source/rev/261592/arch/Darwin/installer/llphysicsextensions_source-0.2-darwin-20120711.tar.bz2</string>
</map>
<key>name</key>
<string>darwin</string>
@@ -1122,9 +1172,9 @@
<key>archive</key>
<map>
<key>hash</key>
- <string>7ea1a0269c3468663ad2935245694341</string>
+ <string>7989a1e993a5e08cd9832d9f68cd025f</string>
<key>url</key>
- <string>http://s3-proxy.lindenlab.com/private-builds-secondlife-com/hg/repo/stinson_llpathinglibrary/rev/261379/arch/Linux/installer/llphysicsextensions-0.1-linux-20120709.tar.bz2</string>
+ <string>http://s3-proxy.lindenlab.com/private-builds-secondlife-com/hg/repo/llphysicsextensions-source/rev/261592/arch/Linux/installer/llphysicsextensions_source-0.2-linux-20120711.tar.bz2</string>
</map>
<key>name</key>
<string>linux</string>
@@ -1134,14 +1184,68 @@
<key>archive</key>
<map>
<key>hash</key>
- <string>3d34d2181d6056521e0d92a8e27a79ee</string>
+ <string>846b4efadf740b2fe6ea800d4f8608c1</string>
<key>url</key>
- <string>http://s3-proxy.lindenlab.com/private-builds-secondlife-com/hg/repo/stinson_llpathinglibrary/rev/261379/arch/CYGWIN/installer/llphysicsextensions-0.1-windows-20120709.tar.bz2</string>
+ <string>http://s3-proxy.lindenlab.com/private-builds-secondlife-com/hg/repo/llphysicsextensions-source/rev/261592/arch/CYGWIN/installer/llphysicsextensions_source-0.2-windows-20120711.tar.bz2</string>
</map>
<key>name</key>
<string>windows</string>
</map>
</map>
+ <key>version</key>
+ <string>0.2</string>
+ </map>
+ <key>llphysicsextensions_stub</key>
+ <map>
+ <key>license</key>
+ <string>TEMPORARY</string>
+ <key>license_file</key>
+ <string>LICENSES/llphysicsextensions.txt</string>
+ <key>name</key>
+ <string>llphysicsextensions_stub</string>
+ <key>platforms</key>
+ <map>
+ <key>darwin</key>
+ <map>
+ <key>archive</key>
+ <map>
+ <key>hash</key>
+ <string>a961320beb7be8e996e94621d210362e</string>
+ <key>hash_algorithm</key>
+ <string>md5</string>
+ <key>url</key>
+ <string>http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/llphysicsextensions-stub/rev/261560/arch/Darwin/installer/llphysicsextensions_stub-0.2-darwin-20120711.tar.bz2</string>
+ </map>
+ <key>name</key>
+ <string>darwin</string>
+ </map>
+ <key>linux</key>
+ <map>
+ <key>archive</key>
+ <map>
+ <key>hash</key>
+ <string>1e29702692a0840a7994e88431eb2e3a</string>
+ <key>url</key>
+ <string>http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/llphysicsextensions-stub/rev/261560/arch/Linux/installer/llphysicsextensions_stub-0.2-linux-20120711.tar.bz2</string>
+ </map>
+ <key>name</key>
+ <string>linux</string>
+ </map>
+ <key>windows</key>
+ <map>
+ <key>archive</key>
+ <map>
+ <key>hash</key>
+ <string>4fb4f2ce6c1dcf2db5246f04d7d5579e</string>
+ <key>url</key>
+ <string>http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/llphysicsextensions-stub/rev/261560/arch/CYGWIN/installer/llphysicsextensions_stub-0.2-windows-20120711.tar.bz2</string>
+ </map>
+ <key>name</key>
+ <string>windows</string>
+ </map>
+ </map>
+ <key>version</key>
+ <string>0.2</string>
</map>
<key>llqtwebkit</key>
<map>
diff --git a/build.sh b/build.sh
index 00a9baec0a..d19d8a5d6b 100755
--- a/build.sh
+++ b/build.sh
@@ -268,21 +268,26 @@ then
else
upload_item installer "$package" binary/octet-stream
upload_item quicklink "$package" binary/octet-stream
- mapfilepath=$build_dir/newview
- gzip $mapfilepath/secondlife-bin.MAP
- mapfile=secondlife-bin-$arch.MAP.gz
- mv $mapfilepath/secondlife-bin.MAP.gz $mapfilepath/$mapfile
- upload_item mapfile "$mapfilepath/$mapfile" binary/octet-stream
- echo "Uploaded mapfile"
[ -f summary.json ] && upload_item installer summary.json text/plain
- # Upload crash reporter files.
+ # Upload crash reporter files and symbolfile for public llphysicsextensions build.
case "$last_built_variant" in
Release)
for symbolfile in $symbolfiles
do
upload_item symbolfile "$build_dir/$symbolfile" binary/octet-stream
done
+
+ mapfilepath=$build_dir/newview
+ gzip $mapfilepath/secondlife-bin.MAP
+ mapfile=secondlife-bin-$arch.MAP.gz
+ mv $mapfilepath/secondlife-bin.MAP.gz $mapfilepath/$mapfile
+ upload_item mapfile "$mapfilepath/$mapfile" binary/octet-stream
+ echo "Uploaded mapfile for $last_built_variant"
+
+ ;;
+ *)
+ echo "Skipping mapfile for $last_built_variant"
;;
esac
diff --git a/indra/cmake/Havok.cmake b/indra/cmake/Havok.cmake
new file mode 100644
index 0000000000..49b348e9f7
--- /dev/null
+++ b/indra/cmake/Havok.cmake
@@ -0,0 +1,80 @@
+# -*- cmake -*-
+
+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)
+
+set(HAVOK_DEBUG_LIBRARY_PATH ${LIBS_PREBUILT_DIR}/lib/debug/havok-fulldebug)
+set(HAVOK_RELEASE_LIBRARY_PATH ${LIBS_PREBUILT_DIR}/lib/release/havok)
+
+if (LL_DEBUG_HAVOK AND NOT WIN32)
+ set(HAVOK_RELWITHDEBINFO_LIBRARY_PATH ${LIBS_PREBUILT_DIR}/lib/debug/havok-fulldebug)
+else (LL_DEBUG_HAVOK AND NOT WIN32)
+ # Always link relwithdebinfo to havok-hybrid on windows.
+ set(HAVOK_RELWITHDEBINFO_LIBRARY_PATH ${LIBS_PREBUILT_DIR}/lib/debug/havok-hybrid)
+endif (LL_DEBUG_HAVOK AND NOT WIN32)
+
+
+set(HAVOK_LIBS
+ hkBase
+ hkCompat
+ hkGeometryUtilities
+ hkInternal
+ hkSerialize
+ hkSceneData
+ hkpCollide
+ hkpUtilities
+ hkpConstraintSolver
+ hkpDynamics
+ hkpInternal
+ hkaiInternal
+ hkaiPathfinding
+ hkaiAiPhysicsBridge
+ hkcdInternal
+ hkcdCollide
+ hkpVehicle
+ hkVisualize
+ hkaiVisualize
+ hkgpConvexDecomposition
+)
+
+unset(HK_DEBUG_LIBRARIES)
+unset(HK_RELEASE_LIBRARIES)
+unset(HK_RELWITHDEBINFO_LIBRARIES)
+
+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(cmd "mkdir")
+ 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}")
+
+ exec_program( ${cmd} ${HAVOK_DEBUG_LIBRARY_PATH} ARGS ${debug_dir} OUTPUT_VARIABLE rv)
+ exec_program( ${cmd} ${HAVOK_RELEASE_LIBRARY_PATH} ARGS ${release_dir} OUTPUT_VARIABLE rv)
+ 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")
+ exec_program( ${cmd} ${debug_dir} ARGS ${arg} OUTPUT_VARIABLE rv)
+ exec_program( ${cmd} ${release_dir} ARGS ${arg} OUTPUT_VARIABLE rv)
+ exec_program( ${cmd} ${relwithdebinfo_dir} ARGS ${arg} OUTPUT_VARIABLE rv)
+
+ file(GLOB extracted_debug "${debug_dir}/*.o")
+ file(GLOB extracted_release "${release_dir}/*.o")
+ file(GLOB 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)
+
diff --git a/indra/cmake/LLPhysicsExtensions.cmake b/indra/cmake/LLPhysicsExtensions.cmake
index 2d26360d79..72ac35e02b 100644
--- a/indra/cmake/LLPhysicsExtensions.cmake
+++ b/indra/cmake/LLPhysicsExtensions.cmake
@@ -1,31 +1,27 @@
# -*- cmake -*-
include(Prebuilt)
-if (INSTALL_PROPRIETARY AND NOT STANDALONE)
- use_prebuilt_binary(llphysicsextensions)
- set(LLPHYSICS_EXTENSIONS_LIB_NAME llphysicsextensions)
-else (INSTALL_PROPRIETARY AND NOT STANDALONE)
- use_prebuilt_binary(llphysicsextensionsstub)
- set(LLPHYSICS_EXTENSIONS_LIB_NAME llphysicsextensionsstub)
-endif (INSTALL_PROPRIETARY AND NOT STANDALONE)
+# Note that the use_prebuilt_binary macros below do not in fact include binaries;
+# the llphysicsextensions_* packages are source only and are built here.
+# The source package and the stub package both build libraries of the same name.
-set(LLPHYSICS_INCLUDE_DIRS ${LIBS_PREBUILT_DIR}/lib/include)
+# Using the real wrapper or the stub can be controlled with -DHAVOK:BOOL={ON,OFF}
+# the default
+if (INSTALL_PROPRIETARY)
+ set(HAVOK ON CACHE BOOL "Use Havok physics library")
+endif (INSTALL_PROPRIETARY)
-set(LLPHYSICS_DEBUG_LIBRARY_PATH ${LIBS_PREBUILT_DIR}/lib/debug)
-set(LLPHYSICS_RELEASE_LIBRARY_PATH ${LIBS_PREBUILT_DIR}/lib/release)
-set(LLPHYSICS_RELWITHDEBINFO_LIBRARY_PATH ${LIBS_PREBUILT_DIR}/lib/relwithdebinfo)
+if (HAVOK)
+ include(Havok)
+ use_prebuilt_binary(llphysicsextensions_source)
+ set(LLPHYSICSEXTENSIONS_SRC_DIR ${LIBS_PREBUILT_DIR}/llphysicsextensions/src)
+ set(LLPHYSICSEXTENSIONS_LIBRARIES llphysicsextensions)
-find_library(LL_PHYSICS_DEBUG_LIB ${LLPHYSICS_EXTENSIONS_LIB_NAME} PATHS ${LLPHYSICS_DEBUG_LIBRARY_PATH})
-find_library(LL_PHYSICS_RELEASE_LIB ${LLPHYSICS_EXTENSIONS_LIB_NAME} PATHS ${LLPHYSICS_RELEASE_LIBRARY_PATH})
-find_library(LL_PHYSICS_RELWITHDEBINFO_LIB ${LLPHYSICS_EXTENSIONS_LIB_NAME} PATHS ${LLPHYSICS_RELWITHDEBINFO_LIBRARY_PATH})
+else (HAVOK)
+ use_prebuilt_binary(llphysicsextensions_stub)
+ set(LLPHYSICSEXTENSIONS_SRC_DIR ${LIBS_PREBUILT_DIR}/llphysicsextensions/stub)
+ set(LLPHYSICSEXTENSIONS_LIBRARIES llphysicsextensionsstub)
-set(LLPHYSICS_LIBRARIES
+endif (HAVOK)
- debug ${LL_PHYSICS_DEBUG_LIB}
- optimized ${LL_PHYSICS_RELEASE_LIB}
-)
-
-if (LINUX)
- list(INSERT LLPHYSICS_LIBRARIES 0 -Wl,--start-group)
- list(APPEND LLPHYSICS_LIBRARIES -Wl,--end-group)
-endif (LINUX)
+set(LLPHYSICSEXTENSIONS_INCLUDE_DIRS ${LIBS_PREBUILT_DIR}/include/llphysicsextensions)
diff --git a/indra/cmake/Linking.cmake b/indra/cmake/Linking.cmake
index 47f944f9a5..c3e3a80fd0 100644
--- a/indra/cmake/Linking.cmake
+++ b/indra/cmake/Linking.cmake
@@ -38,9 +38,8 @@ if (NOT "${CMAKE_BUILD_TYPE}" STREQUAL "Release")
# packages/lib/release directory to deal with autobuild packages that don't
# provide (e.g.) lib/debug libraries.
list(APPEND AUTOBUILD_LIBS_INSTALL_DIRS ${ARCH_PREBUILT_DIRS_RELEASE})
- message(STATUS "CMAKE_BUILD_TYPE = ${CMAKE_BUILD_TYPE}, extending AUTOBUILD_LIBS_INSTALL_DIRS")
endif (NOT "${CMAKE_BUILD_TYPE}" STREQUAL "Release")
-message(STATUS "For ${CMAKE_BUILD_TYPE}, AUTOBUILD_LIBS_INSTALL_DIRS: ${AUTOBUILD_LIBS_INSTALL_DIRS}")
+
link_directories(${AUTOBUILD_LIBS_INSTALL_DIRS})
if (LINUX)
diff --git a/indra/cmake/Variables.cmake b/indra/cmake/Variables.cmake
index 4cbf7aa043..56ced20abf 100644
--- a/indra/cmake/Variables.cmake
+++ b/indra/cmake/Variables.cmake
@@ -101,8 +101,8 @@ if (${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
# To support a different SDK update these Xcode settings:
set(CMAKE_OSX_DEPLOYMENT_TARGET 10.5)
- set(CMAKE_OSX_SYSROOT /Developer/SDKs/MacOSX10.5.sdk)
- set(CMAKE_XCODE_ATTRIBUTE_GCC_VERSION "4.0")
+ set(CMAKE_OSX_SYSROOT macosx10.6)
+ set(CMAKE_XCODE_ATTRIBUTE_GCC_VERSION "com.apple.compilers.llvmgcc42")
set(CMAKE_XCODE_ATTRIBUTE_DEBUG_INFORMATION_FORMAT dwarf-with-dsym)
# NOTE: To attempt an i386/PPC Universal build, add this on the configure line:
diff --git a/indra/cmake/ViewerMiscLibs.cmake b/indra/cmake/ViewerMiscLibs.cmake
index df013b1665..cec7c28733 100644
--- a/indra/cmake/ViewerMiscLibs.cmake
+++ b/indra/cmake/ViewerMiscLibs.cmake
@@ -7,10 +7,3 @@ if (NOT STANDALONE)
use_prebuilt_binary(fontconfig)
endif(NOT STANDALONE)
-if(VIEWER AND NOT STANDALONE)
- if(EXISTS ${CMAKE_SOURCE_DIR}/newview/res/have_artwork_bundle.marker)
- message(STATUS "We seem to have an artwork bundle in the tree - brilliant.")
- else(EXISTS ${CMAKE_SOURCE_DIR}/newview/res/have_artwork_bundle.marker)
- message(FATAL_ERROR "Didn't find an artwork bundle - this needs to be downloaded separately and unpacked into this tree. You can probably get it from the same place you got your viewer source. Thanks!")
- endif(EXISTS ${CMAKE_SOURCE_DIR}/newview/res/have_artwork_bundle.marker)
-endif(VIEWER AND NOT STANDALONE)
diff --git a/indra/llprimitive/CMakeLists.txt b/indra/llprimitive/CMakeLists.txt
index 7d0e313ff3..e4d9de7eb6 100644
--- a/indra/llprimitive/CMakeLists.txt
+++ b/indra/llprimitive/CMakeLists.txt
@@ -7,12 +7,14 @@ include(LLCommon)
include(LLMath)
include(LLMessage)
include(LLXML)
+include(LLPhysicsExtensions)
include_directories(
${LLCOMMON_INCLUDE_DIRS}
${LLMATH_INCLUDE_DIRS}
${LLMESSAGE_INCLUDE_DIRS}
${LLXML_INCLUDE_DIRS}
+ ${LLPHYSICSEXTENSIONS_INCLUDE_DIRS}
${LIBS_PREBUILT_DIR}/include/collada
${LIBS_PREBUILT_DIR}/include/collada/1.4
)
diff --git a/indra/newview/CMakeLists.txt b/indra/newview/CMakeLists.txt
index c91d276c8f..b5c64925c6 100644
--- a/indra/newview/CMakeLists.txt
+++ b/indra/newview/CMakeLists.txt
@@ -44,6 +44,8 @@ include(VisualLeakDetector)
include(GLOD)
include(CMakeCopyIfDifferent)
+add_subdirectory(${LLPHYSICSEXTENSIONS_SRC_DIR} llphysicsextensions)
+
include_directories(
${DBUSGLIB_INCLUDE_DIRS}
${JSONCPP_INCLUDE_DIR}
@@ -58,6 +60,7 @@ include_directories(
${LLINVENTORY_INCLUDE_DIRS}
${LLMATH_INCLUDE_DIRS}
${LLMESSAGE_INCLUDE_DIRS}
+ ${LLPHYSICSEXTENSIONS_INCLUDE_DIRS}
${LLPLUGIN_INCLUDE_DIRS}
${LLPRIMITIVE_INCLUDE_DIRS}
${LLRENDER_INCLUDE_DIRS}
@@ -1819,6 +1822,7 @@ target_link_libraries(${VIEWER_BINARY_NAME}
${CRYPTO_LIBRARIES}
${LLLOGIN_LIBRARIES}
${LLPHYSICS_LIBRARIES}
+ ${LLPHYSICSEXTENSIONS_LIBRARIES}
${TCMALLOC_LIBRARIES}
)