diff options
| author | Matthew Breindel (Falcon) <falcon@lindenlab.com> | 2012-07-11 02:13:42 +0000 | 
|---|---|---|
| committer | Matthew Breindel (Falcon) <falcon@lindenlab.com> | 2012-07-11 02:13:42 +0000 | 
| commit | fda39ea12386467f61c8ee5ec28ca45ec84a19f5 (patch) | |
| tree | 1d31f84303b6106400829c8e5c98f4774413b272 /indra | |
| parent | 34d95fdc01690fe65ac89136cbc4782a9a22af95 (diff) | |
| parent | 14acd7de30e2eb2e7c6c4fe59dd26a4317e99f34 (diff) | |
Merging main havok-development-hkai and oz's havok-development-hkai
Diffstat (limited to 'indra')
| -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 | 
7 files changed, 95 insertions, 34 deletions
| 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}      ) | 
