diff options
-rw-r--r-- | autobuild.xml | 98 | ||||
-rw-r--r-- | indra/cmake/Havok.cmake | 67 | ||||
-rw-r--r-- | indra/cmake/LLPhysicsExtensions.cmake | 42 | ||||
-rw-r--r-- | indra/cmake/Linking.cmake | 3 | ||||
-rw-r--r-- | indra/cmake/Variables.cmake | 4 | ||||
-rw-r--r-- | indra/cmake/ViewerMiscLibs.cmake | 7 | ||||
-rw-r--r-- | indra/llprimitive/CMakeLists.txt | 2 | ||||
-rw-r--r-- | indra/newview/CMakeLists.txt | 4 |
8 files changed, 184 insertions, 43 deletions
diff --git a/autobuild.xml b/autobuild.xml index 40c26e2702..cc6e3c710d 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>4ceeb68ac59a2b999a069b27020f76d3</string> + <key>url</key> + <string>http://s3-proxy.lindenlab.com/private-builds-secondlife-com/hg/repo/falcon_3p-havok-source/rev/261056/arch/Darwin/installer/havok_source-2012.1-darwin-20120702.tar.bz2</string> + </map> + <key>name</key> + <string>darwin</string> + </map> + <key>linux</key> + <map> + <key>archive</key> + <map> + <key>hash</key> + <string>0591902d3e7eff848f71915df86d8837</string> + <key>url</key> + <string>http://s3-proxy.lindenlab.com/private-builds-secondlife-com/hg/repo/falcon_3p-havok-source/rev/261056/arch/Linux/installer/havok_source-2012.1-linux-20120702.tar.bz2</string> + </map> + <key>name</key> + <string>linux</string> + </map> + <key>windows</key> + <map> + <key>archive</key> + <map> + <key>hash</key> + <string>3a860c548aa311dc4e09d17a3a914a98</string> + <key>url</key> + <string>http://s3-proxy.lindenlab.com/private-builds-secondlife-com/hg/repo/falcon_3p-havok-source/rev/261056/arch/CYGWIN/installer/havok_source-2012.1-windows-20120702.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>5f75735d1092b087b3373ca874c41593</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/oz_llphysicsextensions-source/rev/261490/arch/Darwin/installer/llphysicsextensions_source-0.2-darwin-20120710.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>911f46354e338a7013f023385a3f905f</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/oz_llphysicsextensions-source/rev/261490/arch/Linux/installer/llphysicsextensions_source-0.2-linux-20120710.tar.bz2</string> </map> <key>name</key> <string>linux</string> @@ -1134,14 +1184,44 @@ <key>archive</key> <map> <key>hash</key> - <string>3d34d2181d6056521e0d92a8e27a79ee</string> + <string>b1212ec910042d186836d496d288984c</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/oz_llphysicsextensions-source/rev/261490/arch/CYGWIN/installer/llphysicsextensions_source-0.2-windows-20120710.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>d7665ce1324110bdfad0b846e864f6f9</string> + <key>hash_algorithm</key> + <string>md5</string> + <key>url</key> + <string>file:////Users/oz/Work/llphysicsextensions-src/llphysicsextensions_stub-0.2-darwin-20120710.tar.bz2</string> + </map> + <key>name</key> + <string>darwin</string> + </map> + </map> + <key>version</key> + <string>0.2</string> </map> <key>llqtwebkit</key> <map> diff --git a/indra/cmake/Havok.cmake b/indra/cmake/Havok.cmake new file mode 100644 index 0000000000..d3df85fd39 --- /dev/null +++ b/indra/cmake/Havok.cmake @@ -0,0 +1,67 @@ +# -*- 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) +set(HAVOK_RELEASE_LIBRARY_PATH ${LIBS_PREBUILT_DIR}/lib/release/havok) + +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_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}) + + if(LINUX) + set(cmd "mkdir") + set(debug_dir "${HAVOK_DEBUG_LIBRARY_PATH}/${HAVOK_LIB}") + set(release_dir "${HAVOK_RELEASE_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) + + 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) + + file(GLOB extracted_debug "${debug_dir}/*.o") + file(GLOB extracted_release "${release_dir}/*.o") + list(APPEND HK_DEBUG_LIBRARIES ${extracted_debug}) + list(APPEND HK_RELEASE_LIBRARIES ${extracted_release}) + list(APPEND HK_LIBRARIES debug ${extracted_debug} + optimized ${extracted_release}) + else(LINUX) + list(APPEND HK_DEBUG_LIBRARIES ${HAVOK_DEBUG_LIB_${HAVOK_LIB}}) + list(APPEND HK_RELEASE_LIBRARIES ${HAVOK_RELEASE_LIB_${HAVOK_LIB}}) + list(APPEND HK_LIBRARIES debug ${HAVOK_DEBUG_LIB_${HAVOK_LIB}} + optimized ${HAVOK_RELEASE_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} ) |