diff options
| author | Oz Linden <oz@lindenlab.com> | 2012-07-05 06:08:34 -0400 | 
|---|---|---|
| committer | Oz Linden <oz@lindenlab.com> | 2012-07-05 06:08:34 -0400 | 
| commit | 14f754f1608a0f8ca62ead485669d88cc651667d (patch) | |
| tree | 0270cbc6fb6a74a5290eef59c69bb253fe976037 | |
| parent | 619e0b9a359a0dd340bcb734ff6397b8af976258 (diff) | |
begin integrating building of llphysicsextensions from source here (incomplete)
| -rw-r--r-- | autobuild.xml | 98 | ||||
| -rw-r--r-- | indra/cmake/Havok.cmake | 67 | ||||
| -rw-r--r-- | indra/cmake/LLPhysicsExtensions.cmake | 38 | ||||
| -rw-r--r-- | indra/newview/CMakeLists.txt | 1 | 
4 files changed, 163 insertions, 41 deletions
| diff --git a/autobuild.xml b/autobuild.xml index d31235e6d3..e66bfb12ae 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>b5d4e877d18b6cb03d63a6c2d9db30b3</string> +              <key>url</key> +              <string>http://s3-proxy.lindenlab.com/private-builds-secondlife-com/hg/repo/prep_3p-havok-source-vs2010/rev/256766/arch/Darwin/installer/havok_source-2011.3-darwin-20120514.tar.bz2</string> +            </map> +            <key>name</key> +            <string>darwin</string> +          </map> +          <key>linux</key> +          <map> +            <key>archive</key> +            <map> +              <key>hash</key> +              <string>9f34927ecb175b1d6fa18bd079afeac4</string> +              <key>url</key> +              <string>http://s3-proxy.lindenlab.com/private-builds-secondlife-com/hg/repo/3p-havok-source_vs2010/rev/256766/arch/Linux/installer/havok_source-2011.3-linux-20120514.tar.bz2</string> +            </map> +            <key>name</key> +            <string>linux</string> +          </map> +          <key>windows</key> +          <map> +            <key>archive</key> +            <map> +              <key>hash</key> +              <string>da689c64e71cc9a26e71d376054daab5</string> +              <key>url</key> +              <string>http://s3-proxy.lindenlab.com/private-builds-secondlife-com/hg/repo/3p-havok-source_Windows-vs2010/rev/256766/arch/CYGWIN/installer/havok_source-2011.3-windows-20120514.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,38 +1158,46 @@              <key>archive</key>              <map>                <key>hash</key> -              <string>96dba4139682980285103586e3e2b981</string> +              <string>ea98ebb0babcf7018bf5c10996be178a</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/260794/arch/Darwin/installer/llphysicsextensions-0.1-darwin-20120627.tar.bz2</string> +              <string>file:////Users/oz/Work/llphysicsextensions-src/llphysicsextensions_source-0.2-darwin-20120704.tar.bz2</string>              </map>              <key>name</key>              <string>darwin</string>            </map> -          <key>linux</key> -          <map> -            <key>archive</key> -            <map> -              <key>hash</key> -              <string>140b9c68ac84c0e2cf40e22e3c5695f4</string> -              <key>url</key> -              <string>http://s3-proxy.lindenlab.com/private-builds-secondlife-com/hg/repo/stinson_llpathinglibrary/rev/260794/arch/Linux/installer/llphysicsextensions-0.1-linux-20120628.tar.bz2</string> -            </map> -            <key>name</key> -            <string>linux</string> -          </map> -          <key>windows</key> +        </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>f1af9983fa482e09a4c4d9b4b1ea6492</string> +              <string>eb016d162ac4714ebdfc3331ce080827</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/260794/arch/CYGWIN/installer/llphysicsextensions-0.1-windows-20120627.tar.bz2</string> +              <string>file:////Users/oz/Work/llphysicsextensions-src/llphysicsextensions_stub-0.2-darwin-20120704.tar.bz2</string>              </map>              <key>name</key> -            <string>windows</string> +            <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 73d5dd59cf..c9812d06d6 100644 --- a/indra/cmake/LLPhysicsExtensions.cmake +++ b/indra/cmake/LLPhysicsExtensions.cmake @@ -1,29 +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) +if (HAVOK) +   include(Havok) +   use_prebuilt_binary(llphysicsextensions_source) +   set(LLPHYSICSEXTENSIONS_SRC_DIR ${LIBS_PREBUILT_DIR}/llphysicsextensions/src) -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}) +else (HAVOK) +   use_prebuilt_binary(llphysicsextensions_stub) +   set(LLPHYSICSEXTENSIONS_SRC_DIR ${LIBS_PREBUILT_DIR}/llphysicsextensions/stub) -set(LLPHYSICS_LIBRARIES +endif (HAVOK) -    debug     ${LL_PHYSICS_DEBUG_LIB} -    optimized ${LL_PHYSICS_RELEASE_LIB} -) +set(LLPHYSICSEXTENSIONS_INCLUDE_DIRS ${LIBS_PREBUILT_DIR}/include/llphysicsextensions) -if (LINUX) -    list(INSERT LLPHYSICS_LIBRARIES 0 -Wl,--start-group) -    list(APPEND LLPHYSICS_LIBRARIES -Wl,--end-group) -endif (LINUX) +add_subdirectory(${LLPHYSICSEXTENSIONS_SRC_DIR} llphysicsextensions) diff --git a/indra/newview/CMakeLists.txt b/indra/newview/CMakeLists.txt index c91d276c8f..f0045692c4 100644 --- a/indra/newview/CMakeLists.txt +++ b/indra/newview/CMakeLists.txt @@ -58,6 +58,7 @@ include_directories(      ${LLINVENTORY_INCLUDE_DIRS}      ${LLMATH_INCLUDE_DIRS}      ${LLMESSAGE_INCLUDE_DIRS} +    ${LLPHYSICSEXTENSIONS_INCLUDE_DIRS}      ${LLPLUGIN_INCLUDE_DIRS}      ${LLPRIMITIVE_INCLUDE_DIRS}      ${LLRENDER_INCLUDE_DIRS} | 
