begin integrating building of llphysicsextensions from source here (incomplete)

master
Oz Linden 2012-07-05 06:08:34 -04:00
parent 619e0b9a35
commit 14f754f160
4 changed files with 163 additions and 41 deletions

View File

@ -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>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>140b9c68ac84c0e2cf40e22e3c5695f4</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/Linux/installer/llphysicsextensions-0.1-linux-20120628.tar.bz2</string>
<string>file:////Users/oz/Work/llphysicsextensions-src/llphysicsextensions_stub-0.2-darwin-20120704.tar.bz2</string>
</map>
<key>name</key>
<string>linux</string>
</map>
<key>windows</key>
<map>
<key>archive</key>
<map>
<key>hash</key>
<string>f1af9983fa482e09a4c4d9b4b1ea6492</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>
</map>
<key>name</key>
<string>windows</string>
<string>darwin</string>
</map>
</map>
<key>version</key>
<string>0.2</string>
</map>
<key>llqtwebkit</key>
<map>

67
indra/cmake/Havok.cmake Normal file
View File

@ -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)

View File

@ -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)

View File

@ -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}