summaryrefslogtreecommitdiff
path: root/indra/cmake
diff options
context:
space:
mode:
Diffstat (limited to 'indra/cmake')
-rw-r--r--indra/cmake/00-Common.cmake4
-rw-r--r--indra/cmake/CARes.cmake1
-rw-r--r--indra/cmake/Copy3rdPartyLibs.cmake17
-rw-r--r--indra/cmake/FindJsonCpp.cmake55
-rw-r--r--indra/cmake/FindTut.cmake31
-rw-r--r--indra/cmake/GoogleBreakpad.cmake19
-rw-r--r--indra/cmake/JsonCpp.cmake22
-rw-r--r--indra/cmake/LLAddBuildTest.cmake47
-rw-r--r--indra/cmake/LLKDU.cmake15
-rw-r--r--indra/cmake/LLSharedLibs.cmake17
-rw-r--r--indra/cmake/LLTestCommand.cmake17
-rw-r--r--indra/cmake/PNG.cmake2
-rw-r--r--indra/cmake/Tut.cmake10
-rw-r--r--indra/cmake/Variables.cmake31
-rw-r--r--indra/cmake/ViewerMiscLibs.cmake7
-rw-r--r--indra/cmake/WebKitLibPlugin.cmake63
-rw-r--r--indra/cmake/cmake_dummy.cpp36
-rw-r--r--indra/cmake/run_build_test.py39
18 files changed, 310 insertions, 123 deletions
diff --git a/indra/cmake/00-Common.cmake b/indra/cmake/00-Common.cmake
index 592e9fc901..a114d6e778 100644
--- a/indra/cmake/00-Common.cmake
+++ b/indra/cmake/00-Common.cmake
@@ -74,6 +74,10 @@ if (WINDOWS)
if (NOT VS_DISABLE_FATAL_WARNINGS)
add_definitions(/WX)
endif (NOT VS_DISABLE_FATAL_WARNINGS)
+
+ # configure win32 API for windows XP+ compatibility
+ set(WINVER "0x0501" CACHE STRING "Win32 API Target version (see http://msdn.microsoft.com/en-us/library/aa383745%28v=VS.85%29.aspx)")
+ add_definitions("/DWINVER=${WINVER}" "/D_WIN32_WINNT=${WINVER}")
endif (WINDOWS)
diff --git a/indra/cmake/CARes.cmake b/indra/cmake/CARes.cmake
index 8a2dc01561..1850b706ac 100644
--- a/indra/cmake/CARes.cmake
+++ b/indra/cmake/CARes.cmake
@@ -9,6 +9,7 @@ if (STANDALONE)
include(FindCARes)
else (STANDALONE)
use_prebuilt_binary(ares)
+ add_definitions("-DCARES_STATICLIB")
if (WINDOWS)
set(CARES_LIBRARIES areslib)
elseif (DARWIN)
diff --git a/indra/cmake/Copy3rdPartyLibs.cmake b/indra/cmake/Copy3rdPartyLibs.cmake
index faf9da8b14..95ed5d6bc8 100644
--- a/indra/cmake/Copy3rdPartyLibs.cmake
+++ b/indra/cmake/Copy3rdPartyLibs.cmake
@@ -19,7 +19,7 @@ if(WINDOWS)
set(vivox_src_dir "${CMAKE_SOURCE_DIR}/newview/vivox-runtime/i686-win32")
set(vivox_files
SLVoice.exe
- libsndfile-1.dll
+ libsndfile-1.dll
vivoxplatform.dll
vivoxsdk.dll
ortp.dll
@@ -167,6 +167,7 @@ elseif(DARWIN)
libexpat.dylib
libllqtwebkit.dylib
libndofdev.dylib
+ libexception_handler.dylib
)
# fmod is statically linked on darwin
@@ -216,9 +217,11 @@ elseif(LINUX)
libapr-1.so.0
libaprutil-1.so.0
libatk-1.0.so
+ libbreakpad_client.so.0
libcrypto.so.0.9.7
libdb-4.2.so
libexpat.so
+ libexpat.so.1
libgmock_main.so
libgmock.so.0
libgmodule-2.0.so
@@ -284,7 +287,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})
@@ -389,7 +392,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/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/FindTut.cmake b/indra/cmake/FindTut.cmake
new file mode 100644
index 0000000000..b5d58f6396
--- /dev/null
+++ b/indra/cmake/FindTut.cmake
@@ -0,0 +1,31 @@
+# -*- cmake -*-
+
+# - Find Tut
+# Find the Tut unit test framework includes and library
+# This module defines
+# TUT_INCLUDE_DIR, where to find tut.h, etc.
+# TUT_FOUND, If false, do not try to use Tut.
+
+find_path(TUT_INCLUDE_DIR tut.h
+ /usr/local/include/
+ /usr/include
+ )
+
+if (TUT_INCLUDE_DIR)
+ set(TUT_FOUND "YES")
+else (TUT_INCLUDE_DIR)
+ set(TUT_FOUND "NO")
+endif (TUT_INCLUDE_DIR)
+
+if (TUT_FOUND)
+ if (NOT TUT_FIND_QUIETLY)
+ message(STATUS "Found Tut: ${TUT_INCLUDE_DIR}")
+ set(TUT_FIND_QUIETLY TRUE) # Only alert us the first time
+ endif (NOT TUT_FIND_QUIETLY)
+else (TUT_FOUND)
+ if (TUT_FIND_REQUIRED)
+ message(FATAL_ERROR "Could not find Tut")
+ endif (TUT_FIND_REQUIRED)
+endif (TUT_FOUND)
+
+mark_as_advanced(TUT_INCLUDE_DIR)
diff --git a/indra/cmake/GoogleBreakpad.cmake b/indra/cmake/GoogleBreakpad.cmake
new file mode 100644
index 0000000000..8270c0fabb
--- /dev/null
+++ b/indra/cmake/GoogleBreakpad.cmake
@@ -0,0 +1,19 @@
+# -*- cmake -*-
+include(Prebuilt)
+
+if (STANDALONE)
+ MESSAGE(FATAL_ERROR "*TODO standalone support for google breakad is unimplemented")
+ # *TODO - implement this include(FindGoogleBreakpad)
+else (STANDALONE)
+ use_prebuilt_binary(google_breakpad)
+ if (DARWIN)
+ set(BREAKPAD_EXCEPTION_HANDLER_LIBRARIES exception_handler)
+ endif (DARWIN)
+ if (LINUX)
+ set(BREAKPAD_EXCEPTION_HANDLER_LIBRARIES breakpad_client)
+ endif (LINUX)
+ if (WINDOWS)
+ set(BREAKPAD_EXCEPTION_HANDLER_LIBRARIES exception_handler crash_generation_client common)
+ endif (WINDOWS)
+endif (STANDALONE)
+
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 bf4d9b72a9..a6a7989955 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
@@ -137,21 +137,13 @@ INCLUDE(GoogleMock)
SET(TEST_OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/PROJECT_${project}_TEST_${name}_ok.txt)
SET(TEST_CMD ${TEST_EXE} --touch=${TEST_OUTPUT} --sourcedir=${CMAKE_CURRENT_SOURCE_DIR})
- # daveh - what configuration does this use? Debug? it's cmake-time, not build time. + poppy 2009-04-19
+ # daveh - what configuration does this use? Debug? it's cmake-time, not build time. + poppy 2009-04-19
IF(LL_TEST_VERBOSE)
MESSAGE(STATUS "LL_ADD_PROJECT_UNIT_TESTS ${name} test_cmd = ${TEST_CMD}")
ENDIF(LL_TEST_VERBOSE)
-
- IF(WINDOWS)
- set(LD_LIBRARY_PATH ${SHARED_LIB_STAGING_DIR}/${CMAKE_CFG_INTDIR})
- ELSEIF(DARWIN)
- set(LD_LIBRARY_PATH ${SHARED_LIB_STAGING_DIR}/${CMAKE_CFG_INTDIR}/Resources:/usr/lib)
- ELSE(WINDOWS)
- set(LD_LIBRARY_PATH ${SHARED_LIB_STAGING_DIR}:/usr/lib)
- ENDIF(WINDOWS)
- LL_TEST_COMMAND("${LD_LIBRARY_PATH}" ${TEST_CMD})
- SET(TEST_SCRIPT_CMD ${LL_TEST_COMMAND_value})
+ SET_TEST_PATH(LD_LIBRARY_PATH)
+ LL_TEST_COMMAND(TEST_SCRIPT_CMD "${LD_LIBRARY_PATH}" ${TEST_CMD})
IF(LL_TEST_VERBOSE)
MESSAGE(STATUS "LL_ADD_PROJECT_UNIT_TESTS ${name} test_script = ${TEST_SCRIPT_CMD}")
ENDIF(LL_TEST_VERBOSE)
@@ -204,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)
@@ -233,16 +225,8 @@ FUNCTION(LL_ADD_INTEGRATION_TEST
LIST(INSERT test_command test_exe_pos "${TEST_EXE}")
ENDIF (test_exe_pos LESS 0)
- IF(WINDOWS)
- set(LD_LIBRARY_PATH ${SHARED_LIB_STAGING_DIR}/${CMAKE_CFG_INTDIR})
- ELSEIF(DARWIN)
- set(LD_LIBRARY_PATH ${SHARED_LIB_STAGING_DIR}/${CMAKE_CFG_INTDIR}/Resources:/usr/lib)
- ELSE(WINDOWS)
- set(LD_LIBRARY_PATH ${SHARED_LIB_STAGING_DIR}:/usr/lib)
- ENDIF(WINDOWS)
-
- LL_TEST_COMMAND("${LD_LIBRARY_PATH}" ${test_command})
- SET(TEST_SCRIPT_CMD ${LL_TEST_COMMAND_value})
+ SET_TEST_PATH(LD_LIBRARY_PATH)
+ LL_TEST_COMMAND(TEST_SCRIPT_CMD "${LD_LIBRARY_PATH}" ${test_command})
if(TEST_DEBUG)
message(STATUS "TEST_SCRIPT_CMD: ${TEST_SCRIPT_CMD}")
@@ -258,3 +242,20 @@ FUNCTION(LL_ADD_INTEGRATION_TEST
# ADD_TEST(INTEGRATION_TEST_RUNNER_${testname} ${TEST_SCRIPT_CMD})
ENDFUNCTION(LL_ADD_INTEGRATION_TEST)
+
+MACRO(SET_TEST_PATH LISTVAR)
+ IF(WINDOWS)
+ # We typically build/package only Release variants of third-party
+ # libraries, so append the Release staging dir in case the library being
+ # sought doesn't have a debug variant.
+ set(${LISTVAR} ${SHARED_LIB_STAGING_DIR}/${CMAKE_CFG_INTDIR} ${SHARED_LIB_STAGING_DIR}/Release)
+ ELSEIF(DARWIN)
+ # We typically build/package only Release variants of third-party
+ # libraries, so append the Release staging dir in case the library being
+ # sought doesn't have a debug variant.
+ 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)
+ ENDIF(WINDOWS)
+ENDMACRO(SET_TEST_PATH)
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/LLSharedLibs.cmake b/indra/cmake/LLSharedLibs.cmake
index 6f602680f4..e29076c738 100644
--- a/indra/cmake/LLSharedLibs.cmake
+++ b/indra/cmake/LLSharedLibs.cmake
@@ -5,20 +5,21 @@ macro(ll_deploy_sharedlibs_command target_exe)
get_filename_component(OUTPUT_PATH ${TARGET_LOCATION} PATH)
if(DARWIN)
- set(SEARCH_DIRS "${SHARED_LIB_STAGING_DIR}/${CMAKE_CFG_INTDIR}/Resources")
+ SET_TEST_PATH(SEARCH_DIRS)
get_target_property(IS_BUNDLE ${target_exe} MACOSX_BUNDLE)
if(IS_BUNDLE)
- # If its a bundle the exe is not in the target location, this should find it.
+ # If its a bundle the exe is not in the target location, this should find it.
get_filename_component(TARGET_FILE ${TARGET_LOCATION} NAME)
set(OUTPUT_PATH ${TARGET_LOCATION}.app/Contents/MacOS)
set(TARGET_LOCATION ${OUTPUT_PATH}/${TARGET_FILE})
- set(OUTPUT_PATH ${OUTPUT_PATH}/../Resources)
+ set(OUTPUT_PATH ${OUTPUT_PATH}/../Resources)
endif(IS_BUNDLE)
elseif(WINDOWS)
- set(SEARCH_DIRS "${SHARED_LIB_STAGING_DIR}/${CMAKE_CFG_INTDIR}" "$ENV{SystemRoot}/system32")
+ SET_TEST_PATH(SEARCH_DIRS)
+ LIST(APPEND SEARCH_DIRS "$ENV{SystemRoot}/system32")
elseif(LINUX)
- set(SEARCH_DIRS "${SHARED_LIB_STAGING_DIR}")
- set(OUTPUT_PATH ${OUTPUT_PATH}/lib)
+ SET_TEST_PATH(SEARCH_DIRS)
+ set(OUTPUT_PATH ${OUTPUT_PATH}/lib)
endif(DARWIN)
add_custom_command(
@@ -49,7 +50,7 @@ macro(ll_stage_sharedlib DSO_TARGET)
else(DARWIN)
set(SHARED_LIB_STAGING_DIR_CONFIG ${SHARED_LIB_STAGING_DIR}/${CMAKE_CFG_INTDIR})
endif(DARWIN)
-
+
# *TODO - maybe make this a symbolic link? -brad
add_custom_command(
TARGET ${DSO_TARGET} POST_BUILD
@@ -71,4 +72,4 @@ macro(ll_stage_sharedlib DSO_TARGET)
)
endif(DARWIN)
-endmacro(ll_stage_sharedlib) \ No newline at end of file
+endmacro(ll_stage_sharedlib)
diff --git a/indra/cmake/LLTestCommand.cmake b/indra/cmake/LLTestCommand.cmake
index fae5640493..554559edbd 100644
--- a/indra/cmake/LLTestCommand.cmake
+++ b/indra/cmake/LLTestCommand.cmake
@@ -1,13 +1,16 @@
-MACRO(LL_TEST_COMMAND LD_LIBRARY_PATH)
+MACRO(LL_TEST_COMMAND OUTVAR LD_LIBRARY_PATH)
# nat wonders how Kitware can use the term 'function' for a construct that
# cannot return a value. And yet, variables you set inside a FUNCTION are
# local. Try a MACRO instead.
- SET(LL_TEST_COMMAND_value
+ SET(value
${PYTHON_EXECUTABLE}
"${CMAKE_SOURCE_DIR}/cmake/run_build_test.py")
- IF(LD_LIBRARY_PATH)
- LIST(APPEND LL_TEST_COMMAND_value "-l${LD_LIBRARY_PATH}")
- ENDIF(LD_LIBRARY_PATH)
- LIST(APPEND LL_TEST_COMMAND_value ${ARGN})
-##MESSAGE(STATUS "Will run: ${LL_TEST_COMMAND_value}")
+ FOREACH(dir ${LD_LIBRARY_PATH})
+ LIST(APPEND value "-l${dir}")
+ ENDFOREACH(dir)
+ LIST(APPEND value ${ARGN})
+ SET(${OUTVAR} ${value})
+##IF(LL_TEST_VERBOSE)
+## MESSAGE(STATUS "LL_TEST_COMMAND: ${value}")
+##ENDIF(LL_TEST_VERBOSE)
ENDMACRO(LL_TEST_COMMAND)
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/Tut.cmake b/indra/cmake/Tut.cmake
index 7488e9dcb0..784560471d 100644
--- a/indra/cmake/Tut.cmake
+++ b/indra/cmake/Tut.cmake
@@ -1,6 +1,12 @@
# -*- cmake -*-
include(Prebuilt)
-if (NOT STANDALONE)
+set(TUT_FIND_REQUIRED TRUE)
+set(TUT_FIND_QUIETLY TRUE)
+
+if (STANDALONE)
+ include(FindTut)
+ include_directories(${TUT_INCLUDE_DIR})
+else (STANDALONE)
use_prebuilt_binary(tut)
-endif(NOT STANDALONE)
+endif (STANDALONE)
diff --git a/indra/cmake/Variables.cmake b/indra/cmake/Variables.cmake
index db0b44eb8f..bfaf3f4f26 100644
--- a/indra/cmake/Variables.cmake
+++ b/indra/cmake/Variables.cmake
@@ -75,11 +75,33 @@ endif (${CMAKE_SYSTEM_NAME} MATCHES "Linux")
if (${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
set(DARWIN 1)
- # set this dynamically from the build system now -
- # NOTE: wont have a distributable build unless you add this on the configure line with:
+
+ # NOTE: If specifying a different SDK with CMAKE_OSX_SYSROOT at configure
+ # time you should also specify CMAKE_OSX_DEPLOYMENT_TARGET explicitly,
+ # otherwise CMAKE_OSX_SYSROOT will be overridden here. We can't just check
+ # for it being unset, as it gets set to the system default :(
+
+ # Default to building against the 10.4 SDK if no deployment target is
+ # specified.
+ 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_DEPLOYMENT_TARGET 10.4)
+ endif (NOT CMAKE_OSX_DEPLOYMENT_TARGET)
+
+ # GCC 4.2 is incompatible with the MacOSX 10.4 SDK
+ if (${CMAKE_OSX_SYSROOT} MATCHES "10.4u")
+ set(CMAKE_XCODE_ATTRIBUTE_GCC_VERSION "4.0")
+ endif (${CMAKE_OSX_SYSROOT} MATCHES "10.4u")
+
+ # NOTE: To attempt an i386/PPC Universal build, add this on the configure line:
# -DCMAKE_OSX_ARCHITECTURES:STRING='i386;ppc'
- #set(CMAKE_OSX_ARCHITECTURES i386;ppc)
- set(CMAKE_OSX_SYSROOT /Developer/SDKs/MacOSX10.4u.sdk)
+ # Build only for i386 by default, system default on MacOSX 10.6 is x86_64
+ if (NOT CMAKE_OSX_ARCHITECTURES)
+ set(CMAKE_OSX_ARCHITECTURES i386)
+ endif (NOT CMAKE_OSX_ARCHITECTURES)
+
if (CMAKE_OSX_ARCHITECTURES MATCHES "i386" AND CMAKE_OSX_ARCHITECTURES MATCHES "ppc")
set(ARCH universal)
else (CMAKE_OSX_ARCHITECTURES MATCHES "i386" AND CMAKE_OSX_ARCHITECTURES MATCHES "ppc")
@@ -89,6 +111,7 @@ if (${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
set(ARCH i386)
endif (${CMAKE_SYSTEM_PROCESSOR} MATCHES "ppc")
endif (CMAKE_OSX_ARCHITECTURES MATCHES "i386" AND CMAKE_OSX_ARCHITECTURES MATCHES "ppc")
+
set(LL_ARCH ${ARCH}_darwin)
set(LL_ARCH_DIR universal-darwin)
set(WORD_SIZE 32)
diff --git a/indra/cmake/ViewerMiscLibs.cmake b/indra/cmake/ViewerMiscLibs.cmake
index 2a8abdac23..32c4bc81df 100644
--- a/indra/cmake/ViewerMiscLibs.cmake
+++ b/indra/cmake/ViewerMiscLibs.cmake
@@ -7,3 +7,10 @@ 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/cmake/WebKitLibPlugin.cmake b/indra/cmake/WebKitLibPlugin.cmake
index 1c572ab27f..12ba1b1b35 100644
--- a/indra/cmake/WebKitLibPlugin.cmake
+++ b/indra/cmake/WebKitLibPlugin.cmake
@@ -3,48 +3,46 @@ include(Linking)
include(Prebuilt)
if (STANDALONE)
- set(WEBKITLIBPLUGIN OFF CACHE BOOL
- "WEBKITLIBPLUGIN support for the llplugin/llmedia test apps.")
+ set(WEBKITLIBPLUGIN OFF CACHE BOOL
+ "WEBKITLIBPLUGIN support for the llplugin/llmedia test apps.")
else (STANDALONE)
- use_prebuilt_binary(llqtwebkit)
- set(WEBKITLIBPLUGIN ON CACHE BOOL
- "WEBKITLIBPLUGIN support for the llplugin/llmedia test apps.")
+ use_prebuilt_binary(llqtwebkit)
+ set(WEBKITLIBPLUGIN ON CACHE BOOL
+ "WEBKITLIBPLUGIN support for the llplugin/llmedia test apps.")
endif (STANDALONE)
if (WINDOWS)
- set(WEBKIT_PLUGIN_LIBRARIES
- debug llqtwebkitd
- debug QtWebKitd4
- debug QtOpenGLd4
- debug QtNetworkd4
- debug QtGuid4
- debug QtCored4
- debug qtmaind
- optimized llqtwebkit
- optimized QtWebKit4
- optimized QtOpenGL4
- optimized QtNetwork4
- optimized QtGui4
- optimized QtCore4
- optimized qtmain
- )
+ set(WEBKIT_PLUGIN_LIBRARIES
+ debug llqtwebkitd
+ debug QtWebKitd4
+ debug QtOpenGLd4
+ debug QtNetworkd4
+ debug QtGuid4
+ debug QtCored4
+ debug qtmaind
+ optimized llqtwebkit
+ optimized QtWebKit4
+ optimized QtOpenGL4
+ optimized QtNetwork4
+ optimized QtGui4
+ optimized QtCore4
+ optimized qtmain
+ )
elseif (DARWIN)
- set(WEBKIT_PLUGIN_LIBRARIES
- optimized ${ARCH_PREBUILT_DIRS_RELEASE}/libllqtwebkit.dylib
- debug ${ARCH_PREBUILT_DIRS_RELEASE}/libllqtwebkit.dylib
- )
+ set(WEBKIT_PLUGIN_LIBRARIES
+ optimized ${ARCH_PREBUILT_DIRS_RELEASE}/libllqtwebkit.dylib
+ debug ${ARCH_PREBUILT_DIRS_RELEASE}/libllqtwebkit.dylib
+ )
elseif (LINUX)
+ if (STANDALONE)
+ set(WEBKIT_PLUGIN_LIBRARIES llqtwebkit)
+ else (STANDALONE)
set(WEBKIT_PLUGIN_LIBRARIES
llqtwebkit
qgif
-# qico
qjpeg
-# qpng
-# qtiff
-# qsvg
-# QtSvg
QtWebKit
QtOpenGL
QtNetwork
@@ -56,9 +54,6 @@ elseif (LINUX)
X11
Xrender
GL
-
-# sqlite3
-# Xi
-# SM
)
+ endif (STANDALONE)
endif (WINDOWS)
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 0f6967e42a..e377aeef48 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=internal$
-Copyright (c) 2009, Linden Research, Inc.
+$LicenseInfo:firstyear=2009&license=viewerlgpl$
+Second Life Viewer Source Code
+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.
+
+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: