diff options
Diffstat (limited to 'indra/cmake')
-rw-r--r-- | indra/cmake/CMakeLists.txt | 1 | ||||
-rw-r--r-- | indra/cmake/Copy3rdPartyLibs.cmake | 46 | ||||
-rw-r--r-- | indra/cmake/FMOD.cmake | 78 | ||||
-rw-r--r-- | indra/cmake/FindFMOD.cmake | 44 | ||||
-rw-r--r-- | indra/cmake/FindGoogleBreakpad.cmake | 40 | ||||
-rw-r--r-- | indra/cmake/FindJsonCpp.cmake | 55 | ||||
-rw-r--r-- | indra/cmake/GoogleBreakpad.cmake | 4 | ||||
-rw-r--r-- | indra/cmake/GooglePerfTools.cmake | 7 | ||||
-rw-r--r-- | indra/cmake/JsonCpp.cmake | 22 | ||||
-rw-r--r-- | indra/cmake/LLAddBuildTest.cmake | 6 | ||||
-rw-r--r-- | indra/cmake/LLConvexDecomposition.cmake | 6 | ||||
-rw-r--r-- | indra/cmake/LLPrimitive.cmake | 7 | ||||
-rw-r--r-- | indra/cmake/PNG.cmake | 2 | ||||
-rw-r--r-- | indra/cmake/PulseAudio.cmake | 38 | ||||
-rw-r--r-- | indra/cmake/Variables.cmake | 18 | ||||
-rw-r--r-- | indra/cmake/cmake_dummy.cpp | 36 | ||||
-rw-r--r-- | indra/cmake/run_build_test.py | 39 |
17 files changed, 293 insertions, 156 deletions
diff --git a/indra/cmake/CMakeLists.txt b/indra/cmake/CMakeLists.txt index cadd2608e2..ff54b45e8b 100644 --- a/indra/cmake/CMakeLists.txt +++ b/indra/cmake/CMakeLists.txt @@ -26,6 +26,7 @@ set(cmake_SOURCE_FILES FindBerkeleyDB.cmake FindCARes.cmake FindELFIO.cmake + FindFMOD.cmake FindGooglePerfTools.cmake FindMono.cmake FindMT.cmake diff --git a/indra/cmake/Copy3rdPartyLibs.cmake b/indra/cmake/Copy3rdPartyLibs.cmake index 9900a8fb45..37f540e157 100644 --- a/indra/cmake/Copy3rdPartyLibs.cmake +++ b/indra/cmake/Copy3rdPartyLibs.cmake @@ -38,7 +38,7 @@ if(WINDOWS) libapr-1.dll libaprutil-1.dll libapriconv-1.dll - libcollada14dom21.dll + libcollada14dom21-d.dll glod.dll ) @@ -59,9 +59,10 @@ if(WINDOWS) set(release_files ${release_files} libtcmalloc_minimal.dll) endif(USE_GOOGLE_PERFTOOLS) - if (FMOD_SDK_DIR) - set(fmod_files fmod.dll) - endif (FMOD_SDK_DIR) + if (FMOD) + set(debug_files ${debug_files} fmod.dll) + set(release_files ${release_files} fmod.dll) + endif (FMOD) #******************************* # LLKDU @@ -169,7 +170,8 @@ elseif(DARWIN) libaprutil-1.dylib libexpat.0.5.0.dylib libexpat.dylib - libllqtwebkit.dylib + libGLOD.dylib + libllqtwebkit.dylib libndofdev.dylib libexception_handler.dylib ) @@ -225,6 +227,7 @@ elseif(LINUX) libcrypto.so.0.9.7 libdb-4.2.so libexpat.so + libexpat.so.1 libgmock_main.so libgmock.so.0 libgmodule-2.0.so @@ -235,14 +238,15 @@ elseif(LINUX) libopenjpeg.so libssl.so libstacktrace.so - libtcmalloc.so + libtcmalloc_minimal.so + libtcmalloc_minimal.so.0 libuuid.so.1 libssl.so.0.9.7 ) - if (FMOD_SDK_DIR) - set(fmod_files "libfmod-3.75.so") - endif (FMOD_SDK_DIR) + if (FMOD) + set(release_files ${release_files} "libfmod-3.75.so") + endif (FMOD) #******************************* # LLKDU @@ -336,30 +340,6 @@ copy_if_different( ) set(third_party_targets ${third_party_targets} ${out_targets}) -if (FMOD_SDK_DIR) - copy_if_different( - ${FMOD_SDK_DIR} - "${CMAKE_CURRENT_BINARY_DIR}/Debug" - out_targets - ${fmod_files} - ) - set(all_targets ${all_targets} ${out_targets}) - copy_if_different( - ${FMOD_SDK_DIR} - "${CMAKE_CURRENT_BINARY_DIR}/Release" - out_targets - ${fmod_files} - ) - set(all_targets ${all_targets} ${out_targets}) - copy_if_different( - ${FMOD_SDK_DIR} - "${CMAKE_CURRENT_BINARY_DIR}/RelWithDbgInfo" - out_targets - ${fmod_files} - ) - set(all_targets ${all_targets} ${out_targets}) -endif (FMOD_SDK_DIR) - #******************************* # LLKDU set(internal_llkdu_path "${CMAKE_SOURCE_DIR}/llkdu") diff --git a/indra/cmake/FMOD.cmake b/indra/cmake/FMOD.cmake index 759b8f1340..96434e38fa 100644 --- a/indra/cmake/FMOD.cmake +++ b/indra/cmake/FMOD.cmake @@ -1,64 +1,24 @@ # -*- cmake -*- -include(Linking) - -if(INSTALL_PROPRIETARY) - include(Prebuilt) - use_prebuilt_binary(fmod) -endif(INSTALL_PROPRIETARY) - -find_library(FMOD_LIBRARY_RELEASE - NAMES fmod fmodvc fmod-3.75 - PATHS - ${ARCH_PREBUILT_DIRS_RELEASE} - ) - -find_library(FMOD_LIBRARY_DEBUG - NAMES fmod fmodvc fmod-3.75 - PATHS - ${ARCH_PREBUILT_DIRS_DEBUG} - ) - -if (FMOD_LIBRARY_RELEASE AND FMOD_LIBRARY_DEBUG) - set(FMOD_LIBRARY - debug ${FMOD_LIBRARY_DEBUG} - optimized ${FMOD_LIBRARY_RELEASE}) -elseif (FMOD_LIBRARY_RELEASE) - set(FMOD_LIBRARY ${FMOD_LIBRARY_RELEASE}) -endif (FMOD_LIBRARY_RELEASE AND FMOD_LIBRARY_DEBUG) - -if (NOT FMOD_LIBRARY) - set(FMOD_SDK_DIR CACHE PATH "Path to the FMOD SDK.") - if (FMOD_SDK_DIR) - find_library(FMOD_LIBRARY - NAMES fmodvc fmod-3.75 fmod - PATHS - ${FMOD_SDK_DIR}/api/lib - ${FMOD_SDK_DIR}/api - ${FMOD_SDK_DIR}/lib - ${FMOD_SDK_DIR} - ) - endif (FMOD_SDK_DIR) -endif (NOT FMOD_LIBRARY) - -find_path(FMOD_INCLUDE_DIR fmod.h - ${LIBS_PREBUILT_DIR}/include - ${FMOD_SDK_DIR}/api/inc - ${FMOD_SDK_DIR}/inc - ${FMOD_SDK_DIR} - ) - -if (FMOD_LIBRARY AND FMOD_INCLUDE_DIR) - set(FMOD ON CACHE BOOL "Use closed source FMOD sound library.") -else (FMOD_LIBRARY AND FMOD_INCLUDE_DIR) - set(FMOD_LIBRARY "") - set(FMOD_INCLUDE_DIR "") - if (FMOD) - message(STATUS "No support for FMOD audio (need to set FMOD_SDK_DIR?)") - endif (FMOD) - set(FMOD OFF CACHE BOOL "Use closed source FMOD sound library.") -endif (FMOD_LIBRARY AND FMOD_INCLUDE_DIR) +set(FMOD ON CACHE BOOL "Use FMOD sound library.") if (FMOD) - message(STATUS "Building with FMOD audio support") + if (STANDALONE) + set(FMOD_FIND_REQUIRED ON) + include(FindFMOD) + else (STANDALONE) + include(Prebuilt) + use_prebuilt_binary(fmod) + + if (WINDOWS) + set(FMOD_LIBRARY fmod) + elseif (DARWIN) + set(FMOD_LIBRARY fmod) + elseif (LINUX) + set(FMOD_LIBRARY fmod-3.75) + endif (WINDOWS) + + SET(FMOD_LIBRARIES ${FMOD_LIBRARY}) + set(FMOD_INCLUDE_DIR ${LIBS_PREBUILT_DIR}/include) + endif (STANDALONE) endif (FMOD) diff --git a/indra/cmake/FindFMOD.cmake b/indra/cmake/FindFMOD.cmake new file mode 100644 index 0000000000..e60b386027 --- /dev/null +++ b/indra/cmake/FindFMOD.cmake @@ -0,0 +1,44 @@ +# -*- cmake -*- + +# - Find FMOD +# Find the FMOD includes and library +# This module defines +# FMOD_INCLUDE_DIR, where to find fmod.h and fmod_errors.h +# FMOD_LIBRARIES, the libraries needed to use FMOD. +# FMOD, If false, do not try to use FMOD. +# also defined, but not for general use are +# FMOD_LIBRARY, where to find the FMOD library. + +FIND_PATH(FMOD_INCLUDE_DIR fmod.h PATH_SUFFIXES fmod) + +SET(FMOD_NAMES ${FMOD_NAMES} fmod fmodvc fmod-3.75) +FIND_LIBRARY(FMOD_LIBRARY + NAMES ${FMOD_NAMES} + PATH_SUFFIXES fmod + ) + +IF (FMOD_LIBRARY AND FMOD_INCLUDE_DIR) + SET(FMOD_LIBRARIES ${FMOD_LIBRARY}) + SET(FMOD_FOUND "YES") +ELSE (FMOD_LIBRARY AND FMOD_INCLUDE_DIR) + SET(FMOD_FOUND "NO") +ENDIF (FMOD_LIBRARY AND FMOD_INCLUDE_DIR) + +IF (FMOD_FOUND) + IF (NOT FMOD_FIND_QUIETLY) + MESSAGE(STATUS "Found FMOD: ${FMOD_LIBRARIES}") + ENDIF (NOT FMOD_FIND_QUIETLY) +ELSE (FMOD_FOUND) + IF (FMOD_FIND_REQUIRED) + MESSAGE(FATAL_ERROR "Could not find FMOD library") + ENDIF (FMOD_FIND_REQUIRED) +ENDIF (FMOD_FOUND) + +# Deprecated declarations. +SET (NATIVE_FMOD_INCLUDE_PATH ${FMOD_INCLUDE_DIR} ) +GET_FILENAME_COMPONENT (NATIVE_FMOD_LIB_PATH ${FMOD_LIBRARY} PATH) + +MARK_AS_ADVANCED( + FMOD_LIBRARY + FMOD_INCLUDE_DIR + ) diff --git a/indra/cmake/FindGoogleBreakpad.cmake b/indra/cmake/FindGoogleBreakpad.cmake new file mode 100644 index 0000000000..1a0493be5e --- /dev/null +++ b/indra/cmake/FindGoogleBreakpad.cmake @@ -0,0 +1,40 @@ +# -*- cmake -*- + +# - Find Google BreakPad +# Find the Google BreakPad includes and library +# This module defines +# BREAKPAD_EXCEPTION_HANDLER_INCLUDE_DIR, where to find exception_handler.h, etc. +# BREAKPAD_EXCEPTION_HANDLER_LIBRARIES, the libraries needed to use Google BreakPad. +# BREAKPAD_EXCEPTION_HANDLER_FOUND, If false, do not try to use Google BreakPad. +# also defined, but not for general use are +# BREAKPAD_EXCEPTION_HANDLER_LIBRARY, where to find the Google BreakPad library. + +FIND_PATH(BREAKPAD_EXCEPTION_HANDLER_INCLUDE_DIR google_breakpad/exception_handler.h) + +SET(BREAKPAD_EXCEPTION_HANDLER_NAMES ${BREAKPAD_EXCEPTION_HANDLER_NAMES} breakpad_client) +FIND_LIBRARY(BREAKPAD_EXCEPTION_HANDLER_LIBRARY + NAMES ${BREAKPAD_EXCEPTION_HANDLER_NAMES} + ) + +IF (BREAKPAD_EXCEPTION_HANDLER_LIBRARY AND BREAKPAD_EXCEPTION_HANDLER_INCLUDE_DIR) + SET(BREAKPAD_EXCEPTION_HANDLER_LIBRARIES ${BREAKPAD_EXCEPTION_HANDLER_LIBRARY}) + SET(BREAKPAD_EXCEPTION_HANDLER_FOUND "YES") +ELSE (BREAKPAD_EXCEPTION_HANDLER_LIBRARY AND BREAKPAD_EXCEPTION_HANDLER_INCLUDE_DIR) + SET(BREAKPAD_EXCEPTION_HANDLER_FOUND "NO") +ENDIF (BREAKPAD_EXCEPTION_HANDLER_LIBRARY AND BREAKPAD_EXCEPTION_HANDLER_INCLUDE_DIR) + + +IF (BREAKPAD_EXCEPTION_HANDLER_FOUND) + IF (NOT BREAKPAD_EXCEPTION_HANDLER_FIND_QUIETLY) + MESSAGE(STATUS "Found Google BreakPad: ${BREAKPAD_EXCEPTION_HANDLER_LIBRARIES}") + ENDIF (NOT BREAKPAD_EXCEPTION_HANDLER_FIND_QUIETLY) +ELSE (BREAKPAD_EXCEPTION_HANDLER_FOUND) + IF (BREAKPAD_EXCEPTION_HANDLER_FIND_REQUIRED) + MESSAGE(FATAL_ERROR "Could not find Google BreakPad library") + ENDIF (BREAKPAD_EXCEPTION_HANDLER_FIND_REQUIRED) +ENDIF (BREAKPAD_EXCEPTION_HANDLER_FOUND) + +MARK_AS_ADVANCED( + BREAKPAD_EXCEPTION_HANDLER_LIBRARY + BREAKPAD_EXCEPTION_HANDLER_INCLUDE_DIR + ) diff --git a/indra/cmake/FindJsonCpp.cmake b/indra/cmake/FindJsonCpp.cmake new file mode 100644 index 0000000000..9d16f2aaab --- /dev/null +++ b/indra/cmake/FindJsonCpp.cmake @@ -0,0 +1,55 @@ +# -*- cmake -*- + +# - Find JSONCpp +# Find the JSONCpp includes and library +# This module defines +# JSONCPP_INCLUDE_DIR, where to find json.h, etc. +# JSONCPP_LIBRARIES, the libraries needed to use jsoncpp. +# JSONCPP_FOUND, If false, do not try to use jsoncpp. +# also defined, but not for general use are +# JSONCPP_LIBRARY, where to find the jsoncpp library. + +FIND_PATH(JSONCPP_INCLUDE_DIR jsoncpp/json.h +/usr/local/include +/usr/include +) + +# Get the GCC compiler version +EXEC_PROGRAM(${CMAKE_CXX_COMPILER} + ARGS ${CMAKE_CXX_COMPILER_ARG1} -dumpversion + OUTPUT_VARIABLE _gcc_COMPILER_VERSION + OUTPUT_STRIP_TRAILING_WHITESPACE + ) + +SET(JSONCPP_NAMES ${JSONCPP_NAMES} libjson_linux-gcc-${_gcc_COMPILER_VERSION}_libmt.so) +FIND_LIBRARY(JSONCPP_LIBRARY + NAMES ${JSONCPP_NAMES} + PATHS /usr/lib /usr/local/lib + ) + +IF (JSONCPP_LIBRARY AND JSONCPP_INCLUDE_DIR) + SET(JSONCPP_LIBRARIES ${JSONCPP_LIBRARY}) + SET(JSONCPP_FOUND "YES") +ELSE (JSONCPP_LIBRARY AND JSONCPP_INCLUDE_DIR) + SET(JSONCPP_FOUND "NO") +ENDIF (JSONCPP_LIBRARY AND JSONCPP_INCLUDE_DIR) + + +IF (JSONCPP_FOUND) + IF (NOT JSONCPP_FIND_QUIETLY) + MESSAGE(STATUS "Found JSONCpp: ${JSONCPP_LIBRARIES}") + ENDIF (NOT JSONCPP_FIND_QUIETLY) +ELSE (JSONCPP_FOUND) + IF (JSONCPP_FIND_REQUIRED) + MESSAGE(FATAL_ERROR "Could not find JSONCpp library") + ENDIF (JSONCPP_FIND_REQUIRED) +ENDIF (JSONCPP_FOUND) + +# Deprecated declarations. +SET (NATIVE_JSONCPP_INCLUDE_PATH ${JSONCPP_INCLUDE_DIR} ) +GET_FILENAME_COMPONENT (NATIVE_JSONCPP_LIB_PATH ${JSONCPP_LIBRARY} PATH) + +MARK_AS_ADVANCED( + JSONCPP_LIBRARY + JSONCPP_INCLUDE_DIR + ) diff --git a/indra/cmake/GoogleBreakpad.cmake b/indra/cmake/GoogleBreakpad.cmake index 8270c0fabb..7498674042 100644 --- a/indra/cmake/GoogleBreakpad.cmake +++ b/indra/cmake/GoogleBreakpad.cmake @@ -2,8 +2,8 @@ include(Prebuilt) if (STANDALONE) - MESSAGE(FATAL_ERROR "*TODO standalone support for google breakad is unimplemented") - # *TODO - implement this include(FindGoogleBreakpad) + set(BREAKPAD_EXCEPTION_HANDLER_FIND_REQUIRED ON) + include(FindGoogleBreakpad) else (STANDALONE) use_prebuilt_binary(google_breakpad) if (DARWIN) diff --git a/indra/cmake/GooglePerfTools.cmake b/indra/cmake/GooglePerfTools.cmake index ee231dcde6..048f5a3235 100644 --- a/indra/cmake/GooglePerfTools.cmake +++ b/indra/cmake/GooglePerfTools.cmake @@ -13,7 +13,10 @@ else (STANDALONE) set(GOOGLE_PERFTOOLS_FOUND "YES") endif (WINDOWS) if (LINUX) - set(TCMALLOC_LIBRARIES tcmalloc) + use_prebuilt_binary(tcmalloc) + set(TCMALLOC_LIBRARIES + debug tcmalloc_minimal_debug + optimized tcmalloc_minimal) set(STACKTRACE_LIBRARIES stacktrace) set(PROFILER_LIBRARIES profiler) set(GOOGLE_PERFTOOLS_INCLUDE_DIR @@ -33,7 +36,7 @@ if (WINDOWS) endif (WINDOWS) if (USE_GOOGLE_PERFTOOLS) - set(TCMALLOC_FLAG -DLL_USE_TCMALLOC=1) + set(TCMALLOC_FLAG -ULL_USE_TCMALLOC=1) include_directories(${GOOGLE_PERFTOOLS_INCLUDE_DIR}) set(GOOGLE_PERFTOOLS_LIBRARIES ${TCMALLOC_LIBRARIES} ${STACKTRACE_LIBRARIES} ${PROFILER_LIBRARIES}) else (USE_GOOGLE_PERFTOOLS) diff --git a/indra/cmake/JsonCpp.cmake b/indra/cmake/JsonCpp.cmake new file mode 100644 index 0000000000..7dd565be7c --- /dev/null +++ b/indra/cmake/JsonCpp.cmake @@ -0,0 +1,22 @@ +# -*- cmake -*- + +include(Prebuilt) + +set(JSONCPP_FIND_QUIETLY ON) +set(JSONCPP_FIND_REQUIRED ON) + +if (STANDALONE) + include(FindJsonCpp) +else (STANDALONE) + use_prebuilt_binary(jsoncpp) + if (WINDOWS) + set(JSONCPP_LIBRARIES + debug json_vc80d + optimized json_vc80) + elseif (DARWIN) + set(JSONCPP_LIBRARIES json_mac-universal-gcc_libmt) + elseif (LINUX) + set(JSONCPP_LIBRARIES jsoncpp) + endif (WINDOWS) + set(JSONCPP_INCLUDE_DIRS ${LIBS_PREBUILT_DIR}/include/jsoncpp) +endif (STANDALONE) diff --git a/indra/cmake/LLAddBuildTest.cmake b/indra/cmake/LLAddBuildTest.cmake index e8a0a949b6..7c3f1f12e9 100644 --- a/indra/cmake/LLAddBuildTest.cmake +++ b/indra/cmake/LLAddBuildTest.cmake @@ -256,6 +256,10 @@ MACRO(SET_TEST_PATH LISTVAR) set(${LISTVAR} ${SHARED_LIB_STAGING_DIR}/${CMAKE_CFG_INTDIR}/Resources ${SHARED_LIB_STAGING_DIR}/Release/Resources /usr/lib) ELSE(WINDOWS) # Linux uses a single staging directory anyway. - set(${LISTVAR} ${SHARED_LIB_STAGING_DIR} /usr/lib) + IF (STANDALONE) + set(${LISTVAR} ${CMAKE_BINARY_DIR}/llcommon /usr/lib /usr/local/lib) + ELSE (STANDALONE) + set(${LISTVAR} ${SHARED_LIB_STAGING_DIR} /usr/lib) + ENDIF (STANDALONE) ENDIF(WINDOWS) ENDMACRO(SET_TEST_PATH) diff --git a/indra/cmake/LLConvexDecomposition.cmake b/indra/cmake/LLConvexDecomposition.cmake index f310a493fd..8e44504782 100644 --- a/indra/cmake/LLConvexDecomposition.cmake +++ b/indra/cmake/LLConvexDecomposition.cmake @@ -5,11 +5,7 @@ set(LLCONVEXDECOMP_INCLUDE_DIRS ${LIBS_PREBUILT_DIR}/include) if (INSTALL_PROPRIETARY AND NOT STANDALONE) use_prebuilt_binary(llconvexdecomposition) - if (WINDOWS OR LINUX) - set(LLCONVEXDECOMP_LIBRARY llconvexdecomposition) - else (WINDOWS OR LINUX) - set(LLCONVEXDECOMP_LIBRARY llconvexdecompositionstub) - endif (WINDOWS OR LINUX) + set(LLCONVEXDECOMP_LIBRARY llconvexdecomposition) else (INSTALL_PROPRIETARY AND NOT STANDALONE) use_prebuilt_binary(llconvexdecompositionstub) set(LLCONVEXDECOMP_LIBRARY llconvexdecompositionstub) diff --git a/indra/cmake/LLPrimitive.cmake b/indra/cmake/LLPrimitive.cmake index 9f8d99a0bf..fae1ef2a51 100644 --- a/indra/cmake/LLPrimitive.cmake +++ b/indra/cmake/LLPrimitive.cmake @@ -13,7 +13,12 @@ set(LLPRIMITIVE_INCLUDE_DIRS if (WINDOWS) set(LLPRIMITIVE_LIBRARIES llprimitive - libcollada14dom21 + debug libcollada14dom21-d + debug libboost_filesystem-d + debug libboost_system-d + optimized libcollada14dom21 + optimized libboost_filesystem + optimized libboost_system ) else (WINDOWS) set(LLPRIMITIVE_LIBRARIES diff --git a/indra/cmake/PNG.cmake b/indra/cmake/PNG.cmake index 4d0b7b2d8d..f6522d9e2f 100644 --- a/indra/cmake/PNG.cmake +++ b/indra/cmake/PNG.cmake @@ -9,5 +9,5 @@ if (STANDALONE) else (STANDALONE) use_prebuilt_binary(libpng) set(PNG_LIBRARIES png12) - set(PNG_INCLUDE_DIRS ${LIBS_PREBUILT_DIR}/include) + set(PNG_INCLUDE_DIRS ${LIBS_PREBUILT_DIR}/include/libpng12) endif (STANDALONE) diff --git a/indra/cmake/PulseAudio.cmake b/indra/cmake/PulseAudio.cmake index f8087a8083..e918de0198 100644 --- a/indra/cmake/PulseAudio.cmake +++ b/indra/cmake/PulseAudio.cmake @@ -1,28 +1,28 @@ # -*- cmake -*- include(Prebuilt) -if (STANDALONE) - include(FindPkgConfig) +set(PULSEAUDIO ON CACHE BOOL "Build with PulseAudio support, if available.") - pkg_check_modules(PULSEAUDIO REQUIRED libpulse-mainloop-glib) +if (PULSEAUDIO) + if (STANDALONE) + include(FindPkgConfig) + + pkg_check_modules(PULSEAUDIO libpulse) -elseif (LINUX) - use_prebuilt_binary(pulseaudio) - set(PULSEAUDIO_FOUND ON FORCE BOOL) - set(PULSEAUDIO_INCLUDE_DIRS - ${LIBS_PREBUILT_DIR}/include + elseif (LINUX) + use_prebuilt_binary(pulseaudio) + set(PULSEAUDIO_FOUND ON FORCE BOOL) + set(PULSEAUDIO_INCLUDE_DIRS + ${LIBS_PREBUILT_DIR}/include + ) + # We don't need to explicitly link against pulseaudio itself, because + # the viewer probes for the system's copy at runtime. + set(PULSEAUDIO_LIBRARIES + # none needed! ) - # We don't need to explicitly link against pulseaudio itself, because - # the viewer probes for the system's copy at runtime. - set(PULSEAUDIO_LIBRARIES - # none needed! - ) -endif (STANDALONE) + endif (STANDALONE) +endif (PULSEAUDIO) if (PULSEAUDIO_FOUND) - set(PULSEAUDIO ON CACHE BOOL "Build with PulseAudio support, if available.") -endif (PULSEAUDIO_FOUND) - -if (PULSEAUDIO) add_definitions(-DLL_PULSEAUDIO_ENABLED=1) -endif (PULSEAUDIO) +endif (PULSEAUDIO_FOUND) diff --git a/indra/cmake/Variables.cmake b/indra/cmake/Variables.cmake index 28feb523ea..bc517cde49 100644 --- a/indra/cmake/Variables.cmake +++ b/indra/cmake/Variables.cmake @@ -25,6 +25,7 @@ set(SERVER_PREFIX) set(VIEWER_PREFIX) set(INTEGRATION_TESTS_PREFIX) set(LL_TESTS ON CACHE BOOL "Build and run unit and integration tests (disable for build timing runs to reduce variation") +set(INCREMENTAL_LINK OFF CACHE BOOL "Use incremental linking on win32 builds (enable for faster links on some machines)") set(LIBS_CLOSED_DIR ${CMAKE_SOURCE_DIR}/${LIBS_CLOSED_PREFIX}) set(LIBS_OPEN_DIR ${CMAKE_SOURCE_DIR}/${LIBS_OPEN_PREFIX}) @@ -54,19 +55,20 @@ if (${CMAKE_SYSTEM_NAME} MATCHES "Linux") set(LINUX ON BOOl FORCE) # If someone has specified a word size, use that to determine the - # architecture. Otherwise, let the architecture specify the word size. + # architecture. Otherwise, let the compiler specify the word size. + # Using uname will break under chroots and other cross arch compiles. RC if (WORD_SIZE EQUAL 32) set(ARCH i686) elseif (WORD_SIZE EQUAL 64) set(ARCH x86_64) else (WORD_SIZE EQUAL 32) - execute_process(COMMAND uname -m COMMAND sed s/i.86/i686/ - OUTPUT_VARIABLE ARCH OUTPUT_STRIP_TRAILING_WHITESPACE) - if (ARCH STREQUAL x86_64) - set(WORD_SIZE 64) - else (ARCH STREQUAL x86_64) + if(CMAKE_SIZEOF_VOID_P MATCHES 4) + set(ARCH i686) set(WORD_SIZE 32) - endif (ARCH STREQUAL x86_64) + else(CMAKE_SIZEOF_VOID_P MATCHES 4) + set(ARCH x86_64) + set(WORD_SIZE 64) + endif(CMAKE_SIZEOF_VOID_P MATCHES 4) endif (WORD_SIZE EQUAL 32) set(LL_ARCH ${ARCH}_linux) @@ -86,7 +88,7 @@ if (${CMAKE_SYSTEM_NAME} MATCHES "Darwin") if (NOT CMAKE_OSX_DEPLOYMENT_TARGET) # NOTE: setting -isysroot is NOT adequate: http://lists.apple.com/archives/Xcode-users/2007/Oct/msg00696.html # see http://public.kitware.com/Bug/view.php?id=9959 + poppy - set(CMAKE_OSX_SYSROOT /Developer/SDKs/MacOSX10.4u.sdk) + set(CMAKE_OSX_SYSROOT /Developer/SDKs/MacOSX10.5.sdk) set(CMAKE_OSX_DEPLOYMENT_TARGET 10.4) endif (NOT CMAKE_OSX_DEPLOYMENT_TARGET) diff --git a/indra/cmake/cmake_dummy.cpp b/indra/cmake/cmake_dummy.cpp index 25191e2a18..ae4475a73e 100644 --- a/indra/cmake/cmake_dummy.cpp +++ b/indra/cmake/cmake_dummy.cpp @@ -1,30 +1,24 @@ /** * @file cmake_dummy.cpp * - * $LicenseInfo:firstyear=2008&license=viewergpl$ - * - * Copyright (c) 2008-2009, Linden Research, Inc. - * + * $LicenseInfo:firstyear=2008&license=viewerlgpl$ * Second Life Viewer Source Code - * The source code in this file ("Source Code") is provided by Linden Lab - * to you under the terms of the GNU General Public License, version 2.0 - * ("GPL"), unless you have obtained a separate licensing agreement - * ("Other License"), formally executed by you and Linden Lab. Terms of - * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 + * Copyright (C) 2010, Linden Research, Inc. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; + * version 2.1 of the License only. * - * There are special exceptions to the terms and conditions of the GPL as - * it is applied to this Source Code. View the full text of the exception - * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at - * http://secondlifegrid.net/programs/open_source/licensing/flossexception + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * By copying, modifying or distributing this software, you acknowledge - * that you have read and understood your obligations described above, - * and agree to abide by those obligations. + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA * - * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO - * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY, - * COMPLETENESS OR PERFORMANCE. + * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA * $/LicenseInfo$ */ diff --git a/indra/cmake/run_build_test.py b/indra/cmake/run_build_test.py index 1c57d5139c..37aa75e364 100644 --- a/indra/cmake/run_build_test.py +++ b/indra/cmake/run_build_test.py @@ -22,8 +22,25 @@ python run_build_test.py -DFOO=bar myprog somearg otherarg sets environment variable FOO=bar, then runs: myprog somearg otherarg -$LicenseInfo:firstyear=2009&license=viewergpl$ -Copyright (c) 2009, Linden Research, Inc. +$LicenseInfo:firstyear=2009&license=viewerlgpl$ +Second Life Viewer Source Code +Copyright (C) 2009-2010, Linden Research, Inc. + +This library is free software; you can redistribute it and/or +modify it under the terms of the GNU Lesser General Public +License as published by the Free Software Foundation; +version 2.1 of the License only. + +This library is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +Lesser General Public License for more details. + +You should have received a copy of the GNU Lesser General Public +License along with this library; if not, write to the Free Software +Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + +Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA $/LicenseInfo$ """ @@ -65,10 +82,24 @@ def main(command, libpath=[], vars={}): dirs = os.environ.get(var, "").split(os.pathsep) # Append the sequence in libpath print "%s += %r" % (var, libpath) - dirs.extend(libpath) + for dir in libpath: + # append system paths at the end + if dir in ('/lib', '/usr/lib'): + dirs.append(dir) + # prepend non-system paths + else: + dirs.insert(0, dir) + + # Filter out some useless pieces + clean_dirs = [] + for dir in dirs: + if dir and dir not in ('', '.'): + clean_dirs.append(dir) + # Now rebuild the path string. This way we use a minimum of separators # -- and we avoid adding a pointless separator when libpath is empty. - os.environ[var] = os.pathsep.join(dirs) + os.environ[var] = os.pathsep.join(clean_dirs) + print "%s = %r" % (var, os.environ[var]) # Now handle arbitrary environment variables. The tricky part is ensuring # that all the keys and values we try to pass are actually strings. if vars: |