summaryrefslogtreecommitdiff
path: root/indra/cmake
diff options
context:
space:
mode:
Diffstat (limited to 'indra/cmake')
-rw-r--r--indra/cmake/00-Common.cmake10
-rw-r--r--indra/cmake/CMakeLists.txt1
-rw-r--r--indra/cmake/Copy3rdPartyLibs.cmake61
-rw-r--r--indra/cmake/FMOD.cmake80
-rw-r--r--indra/cmake/FindFMOD.cmake44
-rw-r--r--indra/cmake/FindGoogleBreakpad.cmake40
-rw-r--r--indra/cmake/FindJsonCpp.cmake55
-rw-r--r--indra/cmake/GoogleBreakpad.cmake4
-rw-r--r--indra/cmake/GooglePerfTools.cmake11
-rw-r--r--indra/cmake/JsonCpp.cmake22
-rw-r--r--indra/cmake/LLAddBuildTest.cmake10
-rw-r--r--indra/cmake/LLConvexDecomposition.cmake6
-rw-r--r--indra/cmake/LLKDU.cmake15
-rw-r--r--indra/cmake/LLPrimitive.cmake12
-rw-r--r--indra/cmake/PNG.cmake2
-rw-r--r--indra/cmake/PulseAudio.cmake38
-rw-r--r--indra/cmake/Variables.cmake18
-rw-r--r--indra/cmake/cmake_dummy.cpp36
-rw-r--r--indra/cmake/run_build_test.py39
19 files changed, 316 insertions, 188 deletions
diff --git a/indra/cmake/00-Common.cmake b/indra/cmake/00-Common.cmake
index 8262462ced..8b0864a539 100644
--- a/indra/cmake/00-Common.cmake
+++ b/indra/cmake/00-Common.cmake
@@ -35,10 +35,10 @@ if (WINDOWS)
# Don't build DLLs.
set(BUILD_SHARED_LIBS OFF)
- set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} /Od /ZI /MDd /MP"
+ set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} /Od /Zi /MDd /MP"
CACHE STRING "C++ compiler debug options" FORCE)
set(CMAKE_CXX_FLAGS_RELWITHDEBINFO
- "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} /Od /ZI /MD /MP"
+ "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} /Od /Zi /MD /MP /Gm"
CACHE STRING "C++ compiler release-with-debug options" FORCE)
set(CMAKE_CXX_FLAGS_RELEASE
"${CMAKE_CXX_FLAGS_RELEASE} ${LL_CXX_FLAGS} /O2 /Zi /MD /MP"
@@ -144,6 +144,8 @@ if (LINUX)
-fno-strict-aliasing
-fsigned-char
-g
+ -msse2
+ -mfpmath=sse
-pthread
)
@@ -163,10 +165,6 @@ if (LINUX)
link_directories(/usr/lib/mysql4/mysql)
endif (EXISTS /usr/lib/mysql4/mysql)
- add_definitions(
- -msse2
- -mfpmath=sse
- )
endif (SERVER)
if (VIEWER)
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..85bb281354 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,9 +170,11 @@ elseif(DARWIN)
libaprutil-1.dylib
libexpat.0.5.0.dylib
libexpat.dylib
- libllqtwebkit.dylib
+ libGLOD.dylib
+ libllqtwebkit.dylib
libndofdev.dylib
libexception_handler.dylib
+ libcollada14dom.dylib
)
# fmod is statically linked on darwin
@@ -225,6 +228,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 +239,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
+ 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
@@ -290,7 +295,7 @@ copy_if_different(
${vivox_src_dir}
"${SHARED_LIB_STAGING_DIR_DEBUG}"
out_targets
- ${vivox_files}
+ ${vivox_files}
)
set(third_party_targets ${third_party_targets} ${out_targets})
@@ -336,30 +341,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")
@@ -395,7 +376,9 @@ if(NOT EXISTS ${internal_llkdu_path})
endif (NOT EXISTS ${internal_llkdu_path})
-add_custom_target(stage_third_party_libs ALL
- DEPENDS
- ${third_party_targets}
- )
+if(NOT STANDALONE)
+ add_custom_target(
+ stage_third_party_libs ALL
+ DEPENDS ${third_party_targets}
+ )
+endif(NOT STANDALONE)
diff --git a/indra/cmake/FMOD.cmake b/indra/cmake/FMOD.cmake
index 759b8f1340..dcf44cd642 100644
--- a/indra/cmake/FMOD.cmake
+++ b/indra/cmake/FMOD.cmake
@@ -1,64 +1,26 @@
# -*- 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)
+ if (INSTALL_PROPRIETARY)
+ include(Prebuilt)
+ use_prebuilt_binary(fmod)
+ endif (INSTALL_PROPRIETARY)
+
+ 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 946fc6b375..0da2e6c26e 100644
--- a/indra/cmake/GooglePerfTools.cmake
+++ b/indra/cmake/GooglePerfTools.cmake
@@ -6,14 +6,16 @@ if (STANDALONE)
else (STANDALONE)
use_prebuilt_binary(google)
if (WINDOWS)
- use_prebuilt_binary(google-perftools)
+ use_prebuilt_binary(tcmalloc)
set(TCMALLOC_LIBRARIES
debug libtcmalloc_minimal-debug
optimized libtcmalloc_minimal)
set(GOOGLE_PERFTOOLS_FOUND "YES")
endif (WINDOWS)
if (LINUX)
- set(TCMALLOC_LIBRARIES tcmalloc)
+ use_prebuilt_binary(tcmalloc)
+ set(TCMALLOC_LIBRARIES
+ tcmalloc_minimal)
set(STACKTRACE_LIBRARIES stacktrace)
set(PROFILER_LIBRARIES profiler)
set(GOOGLE_PERFTOOLS_INCLUDE_DIR
@@ -29,12 +31,11 @@ if (GOOGLE_PERFTOOLS_FOUND)
endif (GOOGLE_PERFTOOLS_FOUND)
if (WINDOWS)
- # *TODO -reenable this once we get server usage sorted out
- #set(USE_GOOGLE_PERFTOOLS ON)
+ set(USE_GOOGLE_PERFTOOLS ON)
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..79c3bb7da2 100644
--- a/indra/cmake/LLAddBuildTest.cmake
+++ b/indra/cmake/LLAddBuildTest.cmake
@@ -107,7 +107,7 @@ INCLUDE(GoogleMock)
# Setup target
ADD_EXECUTABLE(PROJECT_${project}_TEST_${name} ${${name}_test_SOURCE_FILES})
- SET_TARGET_PROPERTIES(PROJECT_${project}_TEST_${name} PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${EXE_STAGING_DIR})
+ SET_TARGET_PROPERTIES(PROJECT_${project}_TEST_${name} PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${EXE_STAGING_DIR}")
#
# Per-codefile additional / external project dep and lib dep property extraction
@@ -196,7 +196,7 @@ FUNCTION(LL_ADD_INTEGRATION_TEST
message(STATUS "ADD_EXECUTABLE(INTEGRATION_TEST_${testname} ${source_files})")
endif(TEST_DEBUG)
ADD_EXECUTABLE(INTEGRATION_TEST_${testname} ${source_files})
- SET_TARGET_PROPERTIES(INTEGRATION_TEST_${testname} PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${EXE_STAGING_DIR})
+ SET_TARGET_PROPERTIES(INTEGRATION_TEST_${testname} PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${EXE_STAGING_DIR}")
# Add link deps to the executable
if(TEST_DEBUG)
@@ -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 ae9dc3c17a..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)
- set(LLCONVEXDECOMP_LIBRARY llconvexdecomposition)
- else (WINDOWS)
- set(LLCONVEXDECOMP_LIBRARY llconvexdecompositionstub)
- endif (WINDOWS)
+ set(LLCONVEXDECOMP_LIBRARY llconvexdecomposition)
else (INSTALL_PROPRIETARY AND NOT STANDALONE)
use_prebuilt_binary(llconvexdecompositionstub)
set(LLCONVEXDECOMP_LIBRARY llconvexdecompositionstub)
diff --git a/indra/cmake/LLKDU.cmake b/indra/cmake/LLKDU.cmake
index 6b69388896..27c8ada686 100644
--- a/indra/cmake/LLKDU.cmake
+++ b/indra/cmake/LLKDU.cmake
@@ -1,18 +1,7 @@
# -*- cmake -*-
include(Prebuilt)
-if (INSTALL_PROPRIETARY AND NOT STANDALONE AND EXISTS ${LIBS_CLOSED_DIR}/llkdu)
+if (INSTALL_PROPRIETARY AND NOT STANDALONE)
use_prebuilt_binary(kdu)
- if (WINDOWS)
- set(KDU_LIBRARY debug kdu_cored optimized kdu_core)
- else (WINDOWS)
- set(KDU_LIBRARY kdu)
- endif (WINDOWS)
-
- set(KDU_INCLUDE_DIR ${LIBS_PREBUILT_DIR}/include)
-
set(LLKDU_LIBRARY llkdu)
- set(LLKDU_STATIC_LIBRARY llkdu_static)
- set(LLKDU_LIBRARIES ${LLKDU_LIBRARY})
- set(LLKDU_STATIC_LIBRARIES ${LLKDU_STATIC_LIBRARY})
-endif (INSTALL_PROPRIETARY AND NOT STANDALONE AND EXISTS ${LIBS_CLOSED_DIR}/llkdu)
+endif (INSTALL_PROPRIETARY AND NOT STANDALONE)
diff --git a/indra/cmake/LLPrimitive.cmake b/indra/cmake/LLPrimitive.cmake
index 9f8d99a0bf..4bdbfe46e2 100644
--- a/indra/cmake/LLPrimitive.cmake
+++ b/indra/cmake/LLPrimitive.cmake
@@ -11,9 +11,15 @@ set(LLPRIMITIVE_INCLUDE_DIRS
)
if (WINDOWS)
- set(LLPRIMITIVE_LIBRARIES
- llprimitive
- libcollada14dom21
+ set(LLPRIMITIVE_LIBRARIES
+ debug llprimitive
+ optimized llprimitive
+ debug libcollada14dom21-d
+ optimized libcollada14dom21
+ debug libboost_filesystem-d
+ optimized libboost_filesystem
+ debug libboost_system-d
+ 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: