summaryrefslogtreecommitdiff
path: root/indra/cmake
diff options
context:
space:
mode:
Diffstat (limited to 'indra/cmake')
-rw-r--r--indra/cmake/00-Common.cmake199
-rw-r--r--indra/cmake/APR.cmake53
-rw-r--r--indra/cmake/Audio.cmake32
-rw-r--r--indra/cmake/BerkeleyDB.cmake11
-rw-r--r--indra/cmake/Boost.cmake56
-rw-r--r--indra/cmake/BuildVersion.cmake18
-rw-r--r--indra/cmake/CARes.cmake21
-rw-r--r--indra/cmake/CMakeCopyIfDifferent.cmake41
-rw-r--r--indra/cmake/CMakeLists.txt95
-rw-r--r--indra/cmake/CURL.cmake17
-rw-r--r--indra/cmake/DirectX.cmake34
-rw-r--r--indra/cmake/ELFIO.cmake16
-rw-r--r--indra/cmake/EXPAT.cmake15
-rw-r--r--indra/cmake/FMOD.cmake47
-rw-r--r--indra/cmake/FindAPR.cmake94
-rw-r--r--indra/cmake/FindBerkeleyDB.cmake50
-rw-r--r--indra/cmake/FindCARes.cmake48
-rw-r--r--indra/cmake/FindELFIO.cmake48
-rw-r--r--indra/cmake/FindGooglePerfTools.cmake66
-rw-r--r--indra/cmake/FindMySQL.cmake48
-rw-r--r--indra/cmake/FindOpenJPEG.cmake50
-rw-r--r--indra/cmake/FindXmlRpcEpi.cmake48
-rw-r--r--indra/cmake/FreeType.cmake18
-rw-r--r--indra/cmake/GooglePerfTools.cmake26
-rw-r--r--indra/cmake/JPEG.cmake22
-rw-r--r--indra/cmake/LLAudio.cmake15
-rw-r--r--indra/cmake/LLCharacter.cmake9
-rw-r--r--indra/cmake/LLCommon.cmake21
-rw-r--r--indra/cmake/LLCrashLogger.cmake9
-rw-r--r--indra/cmake/LLDatabase.cmake13
-rw-r--r--indra/cmake/LLImage.cmake15
-rw-r--r--indra/cmake/LLImageJ2COJ.cmake8
-rw-r--r--indra/cmake/LLInventory.cmake9
-rw-r--r--indra/cmake/LLKDU.cmake18
-rw-r--r--indra/cmake/LLMath.cmake9
-rw-r--r--indra/cmake/LLMessage.cmake22
-rw-r--r--indra/cmake/LLPrimitive.cmake9
-rw-r--r--indra/cmake/LLRender.cmake11
-rw-r--r--indra/cmake/LLScene.cmake9
-rw-r--r--indra/cmake/LLUI.cmake9
-rw-r--r--indra/cmake/LLVFS.cmake13
-rw-r--r--indra/cmake/LLWindow.cmake40
-rw-r--r--indra/cmake/LLXML.cmake13
-rw-r--r--indra/cmake/LScript.cmake13
-rw-r--r--indra/cmake/Linking.cmake43
-rw-r--r--indra/cmake/MySQL.cmake20
-rw-r--r--indra/cmake/NDOF.cmake11
-rw-r--r--indra/cmake/OpenGL.cmake5
-rw-r--r--indra/cmake/OpenJPEG.cmake20
-rw-r--r--indra/cmake/OpenSSL.cmake21
-rw-r--r--indra/cmake/PNG.cmake11
-rw-r--r--indra/cmake/Prebuilt.cmake17
-rw-r--r--indra/cmake/Python.cmake32
-rw-r--r--indra/cmake/TemplateCheck.cmake14
-rw-r--r--indra/cmake/UI.cmake62
-rw-r--r--indra/cmake/UnixInstall.cmake31
-rw-r--r--indra/cmake/Variables.cmake81
-rw-r--r--indra/cmake/XmlRpcEpi.cmake15
-rw-r--r--indra/cmake/ZLIB.cmake15
-rw-r--r--indra/cmake/cmake_dummy.cpp29
60 files changed, 1865 insertions, 0 deletions
diff --git a/indra/cmake/00-Common.cmake b/indra/cmake/00-Common.cmake
new file mode 100644
index 0000000000..58f06075a8
--- /dev/null
+++ b/indra/cmake/00-Common.cmake
@@ -0,0 +1,199 @@
+# -*- cmake -*-
+#
+# Compilation options shared by all Second Life components.
+
+include(Variables)
+
+
+# Portable compilation flags.
+
+set(CMAKE_CXX_FLAGS_DEBUG "-D_DEBUG -DLL_DEBUG=1")
+set(CMAKE_CXX_FLAGS_RELEASE
+ "-DLL_RELEASE=1 -DLL_RELEASE_FOR_DOWNLOAD=1 -DLL_SEND_CRASH_REPORTS=1 -DNDEBUG")
+set(CMAKE_CXX_FLAGS_RELWITHDEBINFO
+ "-DLL_RELEASE=1 -DLL_SEND_CRASH_REPORTS=0 -DNDEBUG -DLL_RELEASE_WITH_DEBUG_INFO=1")
+
+
+# Don't bother with a MinSizeRel build.
+
+set(CMAKE_CONFIGURATION_TYPES "RelWithDebInfo;Release;Debug" CACHE STRING
+ "Supported build types." FORCE)
+
+
+# Platform-specific compilation flags.
+
+if (WINDOWS)
+ # Don't build DLLs.
+ set(BUILD_SHARED_LIBS OFF)
+
+ set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} /Od /Zi /MTd"
+ CACHE STRING "C++ compiler debug options" FORCE)
+ set(CMAKE_CXX_FLAGS_RELWITHDEBINFO
+ "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} /Od /Zi /MT"
+ CACHE STRING "C++ compiler release-with-debug options" FORCE)
+ set(CMAKE_CXX_FLAGS_RELEASE
+ "${CMAKE_CXX_FLAGS_RELEASE} ${LL_CXX_FLAGS} /O2 /MT"
+ CACHE STRING "C++ compiler release options" FORCE)
+
+ add_definitions(
+ /DLL_WINDOWS=1
+ /DUNICODE
+ /D_UNICODE
+ /GS
+ /TP
+ /W3
+ /c
+ /Zc:forScope
+ /nologo
+ )
+
+ if(MSVC80 OR MSVC90)
+ add_definitions(
+ /Zc:wchar_t-
+ )
+ endif (MSVC80 OR MSVC90)
+
+ # Are we using the crummy Visual Studio KDU build workaround?
+ if (NOT VS_DISABLE_FATAL_WARNINGS)
+ add_definitions(/WX)
+ endif (NOT VS_DISABLE_FATAL_WARNINGS)
+endif (WINDOWS)
+
+
+if (LINUX)
+ set(CMAKE_SKIP_RPATH TRUE)
+
+ # Here's a giant hack for Fedora 8, where we can't use
+ # _FORTIFY_SOURCE if we're using a compiler older than gcc 4.1.
+
+ find_program(GXX g++)
+ mark_as_advanced(GXX)
+
+ if (GXX)
+ execute_process(
+ COMMAND ${GXX} --version
+ COMMAND sed "s/^[gc+ ]*//"
+ COMMAND head -1
+ OUTPUT_VARIABLE GXX_VERSION
+ OUTPUT_STRIP_TRAILING_WHITESPACE
+ )
+ else (GXX)
+ set(GXX_VERSION x)
+ endif (GXX)
+
+ # The quoting hack here is necessary in case we're using distcc or
+ # ccache as our compiler. CMake doesn't pass the command line
+ # through the shell by default, so we end up trying to run "distcc"
+ # " g++" - notice the leading space. Ugh.
+
+ execute_process(
+ COMMAND sh -c "${CMAKE_CXX_COMPILER} ${CMAKE_CXX_COMPILER_ARG1} --version"
+ COMMAND sed "s/^[gc+ ]*//"
+ COMMAND head -1
+ OUTPUT_VARIABLE CXX_VERSION
+ OUTPUT_STRIP_TRAILING_WHITESPACE)
+
+ if (${GXX_VERSION} STREQUAL ${CXX_VERSION})
+ add_definitions(-D_FORTIFY_SOURCE=2)
+ else (${GXX_VERSION} STREQUAL ${CXX_VERSION})
+ if (NOT ${GXX_VERSION} MATCHES " 4.1.*Red Hat")
+ add_definitions(-D_FORTIFY_SOURCE=2)
+ endif (NOT ${GXX_VERSION} MATCHES " 4.1.*Red Hat")
+ endif (${GXX_VERSION} STREQUAL ${CXX_VERSION})
+
+ # GCC 4.3 introduces a pile of obnoxious new warnings, which we
+ # treat as errors due to -Werror. Quiet the most offensive and
+ # widespread of them.
+
+ if (${GXX_VERSION} MATCHES "4.3")
+ add_definitions(-Wno-deprecated -Wno-parentheses)
+ endif (${GXX_VERSION} MATCHES "4.3")
+
+ # End of hacks.
+
+ add_definitions(
+ -DLL_LINUX=1
+ -D_REENTRANT
+ -fexceptions
+ -fno-math-errno
+ -fno-strict-aliasing
+ -fsigned-char
+ -g
+ -pthread
+ )
+
+ if (SERVER)
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -ftemplate-depth-60")
+ if (EXISTS /etc/debian_version)
+ FILE(READ /etc/debian_version DEBIAN_VERSION)
+ else (EXISTS /etc/debian_version)
+ set(DEBIAN_VERSION "")
+ endif (EXISTS /etc/debian_version)
+
+ if (NOT DEBIAN_VERSION STREQUAL "3.1")
+ add_definitions(-DCTYPE_WORKAROUND)
+ endif (NOT DEBIAN_VERSION STREQUAL "3.1")
+
+ if (EXISTS /usr/lib/mysql4/mysql)
+ link_directories(/usr/lib/mysql4/mysql)
+ endif (EXISTS /usr/lib/mysql4/mysql)
+
+ add_definitions(
+ -msse2
+ -mfpmath=sse
+ )
+ endif (SERVER)
+
+ if (VIEWER)
+ add_definitions(-DAPPID=secondlife)
+ endif (VIEWER)
+
+ set(CMAKE_CXX_FLAGS_DEBUG "-fno-inline ${CMAKE_CXX_FLAGS_DEBUG}")
+ set(CMAKE_CXX_FLAGS_RELEASE "-O2 ${CMAKE_CXX_FLAGS_RELEASE}")
+endif (LINUX)
+
+
+if (DARWIN)
+ add_definitions(-DLL_DARWIN=1)
+ set(CMAKE_LD_FLAGS "-headerpad_max_install_names")
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mlong-branch")
+ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mlong-branch")
+endif (DARWIN)
+
+
+if (LINUX OR DARWIN)
+ set(GCC_WARNINGS "-Wall -Wno-sign-compare -Wno-trigraphs")
+
+ if (NOT GCC_DISABLE_FATAL_WARNINGS)
+ set(GCC_WARNINGS "${GCC_WARNINGS} -Werror")
+ endif (NOT GCC_DISABLE_FATAL_WARNINGS)
+
+ set(GCC_CXX_WARNINGS "${GCC_WARNINGS} -Wno-reorder")
+
+ set(CMAKE_C_FLAGS "${GCC_WARNINGS} ${CMAKE_C_FLAGS}")
+ set(CMAKE_CXX_FLAGS "${GCC_CXX_WARNINGS} ${CMAKE_CXX_FLAGS}")
+endif (LINUX OR DARWIN)
+
+
+if (STANDALONE)
+ add_definitions(-DLL_STANDALONE=1)
+
+ if (LINUX AND ${ARCH} STREQUAL "i686")
+ add_definitions(-march=pentiumpro)
+ endif (LINUX AND ${ARCH} STREQUAL "i686")
+
+else (STANDALONE)
+ set(${ARCH}_linux_INCLUDES
+ ELFIO
+ atk-1.0
+ glib-2.0
+ gstreamer-0.10
+ gtk-2.0
+ llfreetype2
+ pango-1.0
+ )
+endif (STANDALONE)
+
+if(SERVER)
+ include_directories(${LIBS_PREBUILT_DIR}/include/havok)
+endif(SERVER)
diff --git a/indra/cmake/APR.cmake b/indra/cmake/APR.cmake
new file mode 100644
index 0000000000..c495b7f7c6
--- /dev/null
+++ b/indra/cmake/APR.cmake
@@ -0,0 +1,53 @@
+# -*- cmake -*-
+
+include(BerkeleyDB)
+include(Linking)
+
+set(APR_FIND_QUIETLY ON)
+set(APR_FIND_REQUIRED ON)
+
+set(APRUTIL_FIND_QUIETLY ON)
+set(APRUTIL_FIND_REQUIRED ON)
+
+if (STANDALONE)
+ include(FindAPR)
+else (STANDALONE)
+ if (WINDOWS)
+ set(WINLIBS_PREBUILT_DEBUG_DIR
+ ${CMAKE_SOURCE_DIR}/../libraries/i686-win32/lib/debug
+ )
+ set(WINLIBS_PREBUILT_RELEASE_DIR
+ ${CMAKE_SOURCE_DIR}/../libraries/i686-win32/lib/release
+ )
+ set(APR_LIBRARIES
+ debug ${WINLIBS_PREBUILT_DEBUG_DIR}/apr-1
+ optimized ${WINLIBS_PREBUILT_RELEASE_DIR}/apr-1
+ )
+ set(APRUTIL_LIBRARIES
+ debug ${WINLIBS_PREBUILT_DEBUG_DIR}/aprutil-1
+ optimized ${WINLIBS_PREBUILT_RELEASE_DIR}/aprutil-1
+ )
+ set(APRICONV_LIBRARIES
+ debug ${WINLIBS_PREBUILT_DEBUG_DIR}/apriconv-1
+ optimized ${WINLIBS_PREBUILT_RELEASE_DIR}/apriconv-1
+ )
+ elseif (DARWIN)
+ set(APR_LIBRARIES
+ debug ${ARCH_PREBUILT_DIRS_DEBUG}/apr-1
+ optimized ${ARCH_PREBUILT_DIRS_RELEASE}/apr-1
+ )
+ set(APRUTIL_LIBRARIES
+ debug ${ARCH_PREBUILT_DIRS_DEBUG}/aprutil-1
+ optimized ${ARCH_PREBUILT_DIRS_RELEASE}/aprutil-1
+ )
+ set(APRICONV_LIBRARIES apriconv-1)
+ else (WINDOWS)
+ set(APR_LIBRARIES apr-1)
+ set(APRUTIL_LIBRARIES aprutil-1)
+ endif (WINDOWS)
+ set(APR_INCLUDE_DIR ${LIBS_PREBUILT_DIR}/${LL_ARCH_DIR}/include/apr-1)
+
+ if (LINUX AND VIEWER)
+ list(APPEND APRUTIL_LIBRARIES ${DB_LIBRARIES})
+ endif (LINUX AND VIEWER)
+endif (STANDALONE)
diff --git a/indra/cmake/Audio.cmake b/indra/cmake/Audio.cmake
new file mode 100644
index 0000000000..895881141a
--- /dev/null
+++ b/indra/cmake/Audio.cmake
@@ -0,0 +1,32 @@
+# -*- cmake -*-
+
+if (STANDALONE)
+ include(FindPkgConfig)
+ pkg_check_modules(OGG REQUIRED ogg)
+ pkg_check_modules(VORBIS REQUIRED vorbis)
+ pkg_check_modules(VORBISENC REQUIRED vorbisenc)
+ pkg_check_modules(VORBISFILE REQUIRED vorbisfile)
+else (STANDALONE)
+ set(VORBIS_INCLUDE_DIRS ${LIBS_PREBUILT_DIR}/include)
+ set(VORBISENC_INCLUDE_DIRS ${VORBIS_INCLUDE_DIRS})
+ set(VORBISFILE_INCLUDE_DIRS ${VORBIS_INCLUDE_DIRS})
+
+ if (WINDOWS)
+ set(OGG_LIBRARIES ogg_static_mt)
+ set(VORBIS_LIBRARIES vorbis_static_mt)
+ set(VORBISENC_LIBRARIES vorbisenc_static_mt)
+ set(VORBISFILE_LIBRARIES vorbisfile_static_mt)
+ else (WINDOWS)
+ set(OGG_LIBRARIES ogg)
+ set(VORBIS_LIBRARIES vorbis)
+ set(VORBISENC_LIBRARIES vorbisenc)
+ set(VORBISFILE_LIBRARIES vorbisfile)
+ endif (WINDOWS)
+endif (STANDALONE)
+
+link_directories(
+ ${VORBIS_LIBRARY_DIRS}
+ ${VORBISENC_LIBRARY_DIRS}
+ ${VORBISFILE_LIBRARY_DIRS}
+ ${OGG_LIBRARY_DIRS}
+ )
diff --git a/indra/cmake/BerkeleyDB.cmake b/indra/cmake/BerkeleyDB.cmake
new file mode 100644
index 0000000000..d98e79179d
--- /dev/null
+++ b/indra/cmake/BerkeleyDB.cmake
@@ -0,0 +1,11 @@
+# -*- cmake -*-
+
+set(DB_FIND_QUIETLY ON)
+set(DB_FIND_REQUIRED ON)
+
+if (STANDALONE)
+ include(FindBerkeleyDB)
+else (STANDALONE)
+ set(DB_LIBRARIES db-4.2)
+ set(DB_INCLUDE_DIRS ${LIBS_PREBUILT_DIR}/include)
+endif (STANDALONE)
diff --git a/indra/cmake/Boost.cmake b/indra/cmake/Boost.cmake
new file mode 100644
index 0000000000..40f23eb8ca
--- /dev/null
+++ b/indra/cmake/Boost.cmake
@@ -0,0 +1,56 @@
+# -*- cmake -*-
+
+set(Boost_FIND_QUIETLY ON)
+set(Boost_FIND_REQUIRED ON)
+
+if (STANDALONE)
+ include(FindBoost)
+
+ set(BOOST_PROGRAM_OPTIONS_LIBRARY boost_program_options-mt)
+ set(BOOST_REGEX_LIBRARY boost_regex-mt)
+ set(BOOST_SIGNALS_LIBRARY boost_signals-mt)
+else (STANDALONE)
+ set(Boost_INCLUDE_DIRS ${LIBS_PREBUILT_DIR}/include)
+
+ if (WINDOWS)
+ set(BOOST_VERSION 1_34_1)
+ if (MSVC71)
+ set(BOOST_PROGRAM_OPTIONS_LIBRARY
+ optimized libboost_program_options-vc71-mt-s-${BOOST_VERSION}
+ debug libboost_program_options-vc71-mt-sgd-${BOOST_VERSION})
+ set(BOOST_REGEX_LIBRARY
+ optimized libboost_regex-vc71-mt-s-${BOOST_VERSION}
+ debug libboost_regex-vc71-mt-sgd-${BOOST_VERSION})
+ set(BOOST_SIGNALS_LIBRARY
+ optimized libboost_signals-vc71-mt-s-${BOOST_VERSION}
+ debug libboost_signals-vc71-mt-sgd-${BOOST_VERSION})
+ else (MSVC71)
+ set(BOOST_PROGRAM_OPTIONS_LIBRARY
+ optimized libboost_program_options-vc80-mt-s-${BOOST_VERSION}
+ debug libboost_program_options-vc80-mt-sgd-${BOOST_VERSION})
+ set(BOOST_REGEX_LIBRARY
+ optimized libboost_regex-vc80-mt-s-${BOOST_VERSION}
+ debug libboost_regex-vc80-mt-sgd-${BOOST_VERSION})
+ set(BOOST_SIGNALS_LIBRARY
+ optimized libboost_signals-vc80-mt-s-${BOOST_VERSION}
+ debug libboost_signals-vc80-mt-sgd-${BOOST_VERSION})
+ endif (MSVC71)
+ elseif (DARWIN)
+ set(BOOST_PROGRAM_OPTIONS_LIBRARY
+ optimized boost_program_options-mt
+ debug boost_program_options-mt-d
+ )
+ set(BOOST_REGEX_LIBRARY
+ optimized boost_regex-mt
+ debug boost_regex-mt-d
+ )
+ set(BOOST_SIGNALS_LIBRARY
+ optimized boost_signals-mt
+ debug boost_signals-mt-d
+ )
+ elseif (LINUX)
+ set(BOOST_PROGRAM_OPTIONS_LIBRARY boost_program_options-mt)
+ set(BOOST_REGEX_LIBRARY boost_regex-mt)
+ set(BOOST_SIGNALS_LIBRARY boost_signals-mt)
+ endif (WINDOWS)
+endif (STANDALONE)
diff --git a/indra/cmake/BuildVersion.cmake b/indra/cmake/BuildVersion.cmake
new file mode 100644
index 0000000000..60a519c9af
--- /dev/null
+++ b/indra/cmake/BuildVersion.cmake
@@ -0,0 +1,18 @@
+# -*- cmake -*-
+
+include(Python)
+
+macro (build_version _target)
+ execute_process(
+ COMMAND ${PYTHON_EXECUTABLE} ${SCRIPTS_DIR}/build_version.py
+ llversion${_target}.h ${LLCOMMON_INCLUDE_DIRS}
+ OUTPUT_VARIABLE ${_target}_VERSION
+ OUTPUT_STRIP_TRAILING_WHITESPACE
+ )
+
+ if (${_target}_VERSION)
+ message(STATUS "Version of ${_target} is ${${_target}_VERSION}")
+ else (${_target}_VERSION)
+ message(SEND_ERROR "Could not determine ${_target} version")
+ endif (${_target}_VERSION)
+endmacro (build_version)
diff --git a/indra/cmake/CARes.cmake b/indra/cmake/CARes.cmake
new file mode 100644
index 0000000000..4dfcf588c6
--- /dev/null
+++ b/indra/cmake/CARes.cmake
@@ -0,0 +1,21 @@
+# -*- cmake -*-
+include(Linking)
+
+set(CARES_FIND_QUIETLY ON)
+set(CARES_FIND_REQUIRED ON)
+
+if (STANDALONE)
+ include(FindCARes)
+else (STANDALONE)
+ if (WINDOWS)
+ set(CARES_LIBRARIES areslib)
+ elseif (DARWIN)
+ set(CARES_LIBRARIES
+ optimized ${ARCH_PREBUILT_DIRS_RELEASE}/cares
+ debug ${ARCH_PREBUILT_DIRS_DEBUG}/cares
+ )
+ else (WINDOWS)
+ set(CARES_LIBRARIES cares)
+ endif (WINDOWS)
+ set(CARES_INCLUDE_DIRS ${LIBS_PREBUILT_DIR}/include/ares)
+endif (STANDALONE)
diff --git a/indra/cmake/CMakeCopyIfDifferent.cmake b/indra/cmake/CMakeCopyIfDifferent.cmake
new file mode 100644
index 0000000000..abbd1d0653
--- /dev/null
+++ b/indra/cmake/CMakeCopyIfDifferent.cmake
@@ -0,0 +1,41 @@
+# -*- cmake -*-
+# Taken from http://www.cmake.org/Wiki/CMakeCopyIfDifferent
+# Generates a rule to copy each source file from source directory to destination directory.
+#
+# Typical use -
+#
+# SET(SRC_FILES head1.h head2.h head3.h)
+# COPY_IF_DIFFERENT( /from_dir /to_dir IncludeTargets ${SRC_FILES})
+# ADD_TARGET(CopyIncludes ALL DEPENDS ${IncludeTargets})
+
+MACRO(COPY_IF_DIFFERENT FROM_DIR TO_DIR TARGETS)
+# Macro to implement copy_if_different for a list of files
+# Arguments -
+# FROM_DIR - this is the source directory
+# TO_DIR - this is the destination directory
+# TARGETS - A variable to receive a list of targets
+# FILES - names of the files to copy
+# TODO: add globing.
+SET(AddTargets "")
+FOREACH(SRC ${ARGN})
+ GET_FILENAME_COMPONENT(SRCFILE ${SRC} NAME)
+ IF("${FROM_DIR}" STREQUAL "")
+ SET(FROM ${SRC})
+ ELSE("${FROM_DIR}" STREQUAL "")
+ SET(FROM ${FROM_DIR}/${SRC})
+ ENDIF("${FROM_DIR}" STREQUAL "")
+ IF("${TO_DIR}" STREQUAL "")
+ SET(TO ${SRCFILE})
+ ELSE("${TO_DIR}" STREQUAL "")
+ SET(TO ${TO_DIR}/${SRCFILE})
+ ENDIF("${TO_DIR}" STREQUAL "")
+ ADD_CUSTOM_COMMAND(
+ OUTPUT "${TO}"
+ COMMAND ${CMAKE_COMMAND} -E copy_if_different ${FROM} ${TO}
+ DEPENDS ${FROM}
+ COMMENT "Copying ${SRCFILE} ${TO_DIR}"
+ )
+ SET(AddTargets ${AddTargets} ${TARGET})
+ENDFOREACH(SRC ${ARGN})
+SET(${TARGETS} ${AddTargets})
+ENDMACRO(COPY_IF_DIFFERENT FROM_DIR TO_DIR TARGETS)
diff --git a/indra/cmake/CMakeLists.txt b/indra/cmake/CMakeLists.txt
new file mode 100644
index 0000000000..9cc34ea159
--- /dev/null
+++ b/indra/cmake/CMakeLists.txt
@@ -0,0 +1,95 @@
+# -*- cmake -*-
+
+include(00-Common)
+
+project(cmake)
+
+set(cmake_SOURCE_FILES
+ CMakeLists.txt
+
+ 00-Common.cmake
+ APR.cmake
+ Audio.cmake
+ BerkeleyDB.cmake
+ Boost.cmake
+ BuildVersion.cmake
+ CARes.cmake
+ CURL.cmake
+ CMakeCopyIfDifferent.cmake
+ DirectX.cmake
+ ELFIO.cmake
+ EXPAT.cmake
+ FindAPR.cmake
+ FindBerkeleyDB.cmake
+ FindCARes.cmake
+ FindELFIO.cmake
+ FindGooglePerfTools.cmake
+ FindMySQL.cmake
+ FindOpenJPEG.cmake
+ FindXmlRpcEpi.cmake
+ FMOD.cmake
+ FreeType.cmake
+ GStreamer.cmake
+ GooglePerfTools.cmake
+ JPEG.cmake
+ LLAudio.cmake
+ LLCharacter.cmake
+ LLCommon.cmake
+ LLCrashLogger.cmake
+ LLDatabase.cmake
+ LLImage.cmake
+ LLImageJ2COJ.cmake
+ LLInventory.cmake
+ LLKDU.cmake
+ LLMath.cmake
+ LLMedia.cmake
+ LLMessage.cmake
+ LLPhysics.cmake
+ LLPrimitive.cmake
+ LLRender.cmake
+ LLScene.cmake
+ LLUI.cmake
+ LLVFS.cmake
+ LLWindow.cmake
+ LLXML.cmake
+ LScript.cmake
+ Linking.cmake
+ Mozlib.cmake
+ MySQL.cmake
+ NDOF.cmake
+ OpenGL.cmake
+ OpenJPEG.cmake
+ OpenSSL.cmake
+ PNG.cmake
+ Python.cmake
+ QuickTime.cmake
+ Smartheap.cmake
+ TemplateCheck.cmake
+ UI.cmake
+ UnixInstall.cmake
+ Variables.cmake
+ XmlRpcEpi.cmake
+ ZLIB.cmake
+ )
+
+source_group("Shared Rules" FILES ${cmake_SOURCE_FILES})
+
+set(master_SOURCE_FILES
+ ../CMakeLists.txt
+ ../develop.py
+ )
+
+if (SERVER)
+ list(APPEND master_SOURCE_FILES ../Server.cmake)
+endif (SERVER)
+
+source_group("Master Rules" FILES ${master_SOURCE_FILES})
+
+set_source_files_properties(${cmake_SOURCE_FILES} ${master_SOURCE_FILES}
+ PROPERTIES HEADER_FILE_ONLY TRUE)
+
+add_library(cmake
+ cmake_dummy.cpp
+ ${cmake_SOURCE_FILES}
+ ${master_SOURCE_FILES}
+ )
diff --git a/indra/cmake/CURL.cmake b/indra/cmake/CURL.cmake
new file mode 100644
index 0000000000..bce4a85d16
--- /dev/null
+++ b/indra/cmake/CURL.cmake
@@ -0,0 +1,17 @@
+# -*- cmake -*-
+
+set(CURL_FIND_QUIETLY ON)
+set(CURL_FIND_REQUIRED ON)
+
+if (STANDALONE)
+ include(FindCURL)
+else (STANDALONE)
+ if (WINDOWS)
+ set(CURL_LIBRARIES
+ debug libcurld
+ optimized libcurl)
+ else (WINDOWS)
+ set(CURL_LIBRARIES curl)
+ endif (WINDOWS)
+ set(CURL_INCLUDE_DIRS ${LIBS_PREBUILT_DIR}/include)
+endif (STANDALONE)
diff --git a/indra/cmake/DirectX.cmake b/indra/cmake/DirectX.cmake
new file mode 100644
index 0000000000..a011b318d5
--- /dev/null
+++ b/indra/cmake/DirectX.cmake
@@ -0,0 +1,34 @@
+# -*- cmake -*-
+
+if (VIEWER AND WINDOWS)
+ find_path(DIRECTX_INCLUDE_DIR dxdiag.h
+ "$ENV{DXSDK_DIR}/Include"
+ "C:/Program Files/Microsoft DirectX SDK (March 2008)/Include"
+ "C:/Program Files/Microsoft DirectX SDK (November 2007)/Include"
+ "C:/DX90SDK/Include"
+ )
+ if (DIRECTX_INCLUDE_DIR)
+ include_directories(${DIRECTX_INCLUDE_DIR})
+ if (DIRECTX_FIND_QUIETLY)
+ message(STATUS "Found DirectX include: ${DIRECTX_INCLUDE_DIR}")
+ endif (DIRECTX_FIND_QUIETLY)
+ else (DIRECTX_INCLUDE_DIR)
+ message(FATAL_ERROR "Could not find DirectX SDK Include")
+ endif (DIRECTX_INCLUDE_DIR)
+
+
+ find_path(DIRECTX_LIBRARY_DIR dxguid.lib
+ "$ENV{DXSDK_DIR}/Lib/x86"
+ "C:/Program Files/Microsoft DirectX SDK (March 2008)/Lib/x86"
+ "C:/Program Files/Microsoft DirectX SDK (November 2007)/Lib/x86"
+ "C:/DX90SDK/Lib"
+ )
+ if (DIRECTX_LIBRARY_DIR)
+ if (DIRECTX_FIND_QUIETLY)
+ message(STATUS "Found DirectX include: ${DIRECTX_LIBRARY_DIR}")
+ endif (DIRECTX_FIND_QUIETLY)
+ else (DIRECTX_LIBRARY_DIR)
+ message(FATAL_ERROR "Could not find DirectX SDK Libraries")
+ endif (DIRECTX_LIBRARY_DIR)
+
+endif (VIEWER AND WINDOWS)
diff --git a/indra/cmake/ELFIO.cmake b/indra/cmake/ELFIO.cmake
new file mode 100644
index 0000000000..2805842cbc
--- /dev/null
+++ b/indra/cmake/ELFIO.cmake
@@ -0,0 +1,16 @@
+# -*- cmake -*-
+
+set(ELFIO_FIND_QUIETLY ON)
+
+if (STANDALONE)
+ include(FindELFIO)
+elseif (LINUX)
+ set(ELFIO_LIBRARIES ELFIO)
+ set(ELFIO_INCLUDE_DIR ${LIBS_PREBUILT_DIR}/include)
+endif (STANDALONE)
+
+if (ELFIO_FOUND)
+ add_definitions(-DLL_ELFBIN=1)
+else (ELFIO_FOUND)
+ set(ELFIO_INCLUDE_DIR "")
+endif (ELFIO_FOUND)
diff --git a/indra/cmake/EXPAT.cmake b/indra/cmake/EXPAT.cmake
new file mode 100644
index 0000000000..3010d63532
--- /dev/null
+++ b/indra/cmake/EXPAT.cmake
@@ -0,0 +1,15 @@
+# -*- cmake -*-
+
+set(EXPAT_FIND_QUIETLY ON)
+set(EXPAT_FIND_REQUIRED ON)
+
+if (STANDALONE)
+ include(FindEXPAT)
+else (STANDALONE)
+ if (WINDOWS)
+ set(EXPAT_LIBRARIES libexpatMT)
+ else (WINDOWS)
+ set(EXPAT_LIBRARIES expat)
+ endif (WINDOWS)
+ set(EXPAT_INCLUDE_DIRS ${LIBS_PREBUILT_DIR}/include)
+endif (STANDALONE)
diff --git a/indra/cmake/FMOD.cmake b/indra/cmake/FMOD.cmake
new file mode 100644
index 0000000000..781c8babbe
--- /dev/null
+++ b/indra/cmake/FMOD.cmake
@@ -0,0 +1,47 @@
+# -*- cmake -*-
+
+find_library(FMOD_LIBRARY
+ NAMES fmod fmodvc fmod-3.75
+ PATHS
+ optimized ${ARCH_PREBUILT_DIRS_RELEASE}
+ debug ${ARCH_PREBUILT_DIRS_DEBUG}
+ ${LIBS_PREBUILT_DIR}/${LL_ARCH_DIR}/lib/release
+ ${LIBS_PREBUILT_DIR}/${LL_ARCH_DIR}/lib_release
+ ${LIBS_PREBUILT_DIR}/${LL_ARCH_DIR}/lib_release_client
+ )
+
+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)
+
+if (FMOD)
+ message(STATUS "Building with FMOD audio support")
+endif (FMOD)
diff --git a/indra/cmake/FindAPR.cmake b/indra/cmake/FindAPR.cmake
new file mode 100644
index 0000000000..906b6c9452
--- /dev/null
+++ b/indra/cmake/FindAPR.cmake
@@ -0,0 +1,94 @@
+# -*- cmake -*-
+
+# - Find Apache Portable Runtime
+# Find the APR includes and libraries
+# This module defines
+# APR_INCLUDE_DIR and APRUTIL_INCLUDE_DIR, where to find apr.h, etc.
+# APR_LIBRARIES and APRUTIL_LIBRARIES, the libraries needed to use APR.
+# APR_FOUND and APRUTIL_FOUND, If false, do not try to use APR.
+# also defined, but not for general use are
+# APR_LIBRARY and APRUTIL_LIBRARY, where to find the APR library.
+
+# APR first.
+
+FIND_PATH(APR_INCLUDE_DIR apr.h
+/usr/local/include/apr-1
+/usr/local/include/apr-1.0
+/usr/include/apr-1
+/usr/include/apr-1.0
+)
+
+SET(APR_NAMES ${APR_NAMES} apr-1)
+FIND_LIBRARY(APR_LIBRARY
+ NAMES ${APR_NAMES}
+ PATHS /usr/lib /usr/local/lib
+ )
+
+IF (APR_LIBRARY AND APR_INCLUDE_DIR)
+ SET(APR_LIBRARIES ${APR_LIBRARY})
+ SET(APR_FOUND "YES")
+ELSE (APR_LIBRARY AND APR_INCLUDE_DIR)
+ SET(APR_FOUND "NO")
+ENDIF (APR_LIBRARY AND APR_INCLUDE_DIR)
+
+
+IF (APR_FOUND)
+ IF (NOT APR_FIND_QUIETLY)
+ MESSAGE(STATUS "Found APR: ${APR_LIBRARIES}")
+ ENDIF (NOT APR_FIND_QUIETLY)
+ELSE (APR_FOUND)
+ IF (APR_FIND_REQUIRED)
+ MESSAGE(FATAL_ERROR "Could not find APR library")
+ ENDIF (APR_FIND_REQUIRED)
+ENDIF (APR_FOUND)
+
+# Deprecated declarations.
+SET (NATIVE_APR_INCLUDE_PATH ${APR_INCLUDE_DIR} )
+GET_FILENAME_COMPONENT (NATIVE_APR_LIB_PATH ${APR_LIBRARY} PATH)
+
+MARK_AS_ADVANCED(
+ APR_LIBRARY
+ APR_INCLUDE_DIR
+ )
+
+# Next, APRUTIL.
+
+FIND_PATH(APRUTIL_INCLUDE_DIR apu.h
+/usr/local/include/apr-1
+/usr/local/include/apr-1.0
+/usr/include/apr-1
+/usr/include/apr-1.0
+)
+
+SET(APRUTIL_NAMES ${APRUTIL_NAMES} aprutil-1)
+FIND_LIBRARY(APRUTIL_LIBRARY
+ NAMES ${APRUTIL_NAMES}
+ PATHS /usr/lib /usr/local/lib
+ )
+
+IF (APRUTIL_LIBRARY AND APRUTIL_INCLUDE_DIR)
+ SET(APRUTIL_LIBRARIES ${APRUTIL_LIBRARY})
+ SET(APRUTIL_FOUND "YES")
+ELSE (APRUTIL_LIBRARY AND APRUTIL_INCLUDE_DIR)
+ SET(APRUTIL_FOUND "NO")
+ENDIF (APRUTIL_LIBRARY AND APRUTIL_INCLUDE_DIR)
+
+
+IF (APRUTIL_FOUND)
+ IF (NOT APRUTIL_FIND_QUIETLY)
+ MESSAGE(STATUS "Found APRUTIL: ${APRUTIL_LIBRARIES}")
+ ENDIF (NOT APRUTIL_FIND_QUIETLY)
+ELSE (APRUTIL_FOUND)
+ IF (APRUTIL_FIND_REQUIRED)
+ MESSAGE(FATAL_ERROR "Could not find APRUTIL library")
+ ENDIF (APRUTIL_FIND_REQUIRED)
+ENDIF (APRUTIL_FOUND)
+
+# Deprecated declarations.
+SET (NATIVE_APRUTIL_INCLUDE_PATH ${APRUTIL_INCLUDE_DIR} )
+GET_FILENAME_COMPONENT (NATIVE_APRUTIL_LIB_PATH ${APRUTIL_LIBRARY} PATH)
+
+MARK_AS_ADVANCED(
+ APRUTIL_LIBRARY
+ APRUTIL_INCLUDE_DIR
+ )
diff --git a/indra/cmake/FindBerkeleyDB.cmake b/indra/cmake/FindBerkeleyDB.cmake
new file mode 100644
index 0000000000..2d633c74ec
--- /dev/null
+++ b/indra/cmake/FindBerkeleyDB.cmake
@@ -0,0 +1,50 @@
+# -*- cmake -*-
+
+# - Find BerkeleyDB
+# Find the BerkeleyDB includes and library
+# This module defines
+# DB_INCLUDE_DIR, where to find db.h, etc.
+# DB_LIBRARIES, the libraries needed to use BerkeleyDB.
+# DB_FOUND, If false, do not try to use BerkeleyDB.
+# also defined, but not for general use are
+# DB_LIBRARY, where to find the BerkeleyDB library.
+
+FIND_PATH(DB_INCLUDE_DIR db.h
+/usr/local/include/db4
+/usr/local/include
+/usr/include/db4
+/usr/include
+)
+
+SET(DB_NAMES ${DB_NAMES} db)
+FIND_LIBRARY(DB_LIBRARY
+ NAMES ${DB_NAMES}
+ PATHS /usr/lib /usr/local/lib
+ )
+
+IF (DB_LIBRARY AND DB_INCLUDE_DIR)
+ SET(DB_LIBRARIES ${DB_LIBRARY})
+ SET(DB_FOUND "YES")
+ELSE (DB_LIBRARY AND DB_INCLUDE_DIR)
+ SET(DB_FOUND "NO")
+ENDIF (DB_LIBRARY AND DB_INCLUDE_DIR)
+
+
+IF (DB_FOUND)
+ IF (NOT DB_FIND_QUIETLY)
+ MESSAGE(STATUS "Found BerkeleyDB: ${DB_LIBRARIES}")
+ ENDIF (NOT DB_FIND_QUIETLY)
+ELSE (DB_FOUND)
+ IF (DB_FIND_REQUIRED)
+ MESSAGE(FATAL_ERROR "Could not find BerkeleyDB library")
+ ENDIF (DB_FIND_REQUIRED)
+ENDIF (DB_FOUND)
+
+# Deprecated declarations.
+SET (NATIVE_DB_INCLUDE_PATH ${DB_INCLUDE_DIR} )
+GET_FILENAME_COMPONENT (NATIVE_DB_LIB_PATH ${DB_LIBRARY} PATH)
+
+MARK_AS_ADVANCED(
+ DB_LIBRARY
+ DB_INCLUDE_DIR
+ )
diff --git a/indra/cmake/FindCARes.cmake b/indra/cmake/FindCARes.cmake
new file mode 100644
index 0000000000..1ed5b32913
--- /dev/null
+++ b/indra/cmake/FindCARes.cmake
@@ -0,0 +1,48 @@
+# -*- cmake -*-
+
+# - Find c-ares
+# Find the c-ares includes and library
+# This module defines
+# CARES_INCLUDE_DIR, where to find ares.h, etc.
+# CARES_LIBRARIES, the libraries needed to use c-ares.
+# CARES_FOUND, If false, do not try to use c-ares.
+# also defined, but not for general use are
+# CARES_LIBRARY, where to find the c-ares library.
+
+FIND_PATH(CARES_INCLUDE_DIR ares.h
+/usr/local/include
+/usr/include
+)
+
+SET(CARES_NAMES ${CARES_NAMES} cares)
+FIND_LIBRARY(CARES_LIBRARY
+ NAMES ${CARES_NAMES}
+ PATHS /usr/lib /usr/local/lib
+ )
+
+IF (CARES_LIBRARY AND CARES_INCLUDE_DIR)
+ SET(CARES_LIBRARIES ${CARES_LIBRARY})
+ SET(CARES_FOUND "YES")
+ELSE (CARES_LIBRARY AND CARES_INCLUDE_DIR)
+ SET(CARES_FOUND "NO")
+ENDIF (CARES_LIBRARY AND CARES_INCLUDE_DIR)
+
+
+IF (CARES_FOUND)
+ IF (NOT CARES_FIND_QUIETLY)
+ MESSAGE(STATUS "Found c-ares: ${CARES_LIBRARIES}")
+ ENDIF (NOT CARES_FIND_QUIETLY)
+ELSE (CARES_FOUND)
+ IF (CARES_FIND_REQUIRED)
+ MESSAGE(FATAL_ERROR "Could not find c-ares library")
+ ENDIF (CARES_FIND_REQUIRED)
+ENDIF (CARES_FOUND)
+
+# Deprecated declarations.
+SET (NATIVE_CARES_INCLUDE_PATH ${CARES_INCLUDE_DIR} )
+GET_FILENAME_COMPONENT (NATIVE_CARES_LIB_PATH ${CARES_LIBRARY} PATH)
+
+MARK_AS_ADVANCED(
+ CARES_LIBRARY
+ CARES_INCLUDE_DIR
+ )
diff --git a/indra/cmake/FindELFIO.cmake b/indra/cmake/FindELFIO.cmake
new file mode 100644
index 0000000000..8a5421ab9c
--- /dev/null
+++ b/indra/cmake/FindELFIO.cmake
@@ -0,0 +1,48 @@
+# -*- cmake -*-
+
+# - Find ELFIO
+# Find the ELFIO includes and library
+# This module defines
+# ELFIO_INCLUDE_DIR, where to find elfio.h, etc.
+# ELFIO_LIBRARIES, the libraries needed to use ELFIO.
+# ELFIO_FOUND, If false, do not try to use ELFIO.
+# also defined, but not for general use are
+# ELFIO_LIBRARY, where to find the ELFIO library.
+
+FIND_PATH(ELFIO_INCLUDE_DIR ELFIO/ELFIO.h
+/usr/local/include
+/usr/include
+)
+
+SET(ELFIO_NAMES ${ELFIO_NAMES} ELFIO)
+FIND_LIBRARY(ELFIO_LIBRARY
+ NAMES ${ELFIO_NAMES}
+ PATHS /usr/lib /usr/local/lib
+ )
+
+IF (ELFIO_LIBRARY AND ELFIO_INCLUDE_DIR)
+ SET(ELFIO_LIBRARIES ${ELFIO_LIBRARY})
+ SET(ELFIO_FOUND "YES")
+ELSE (ELFIO_LIBRARY AND ELFIO_INCLUDE_DIR)
+ SET(ELFIO_FOUND "NO")
+ENDIF (ELFIO_LIBRARY AND ELFIO_INCLUDE_DIR)
+
+
+IF (ELFIO_FOUND)
+ IF (NOT ELFIO_FIND_QUIETLY)
+ MESSAGE(STATUS "Found ELFIO: ${ELFIO_LIBRARIES}")
+ ENDIF (NOT ELFIO_FIND_QUIETLY)
+ELSE (ELFIO_FOUND)
+ IF (ELFIO_FIND_REQUIRED)
+ MESSAGE(FATAL_ERROR "Could not find ELFIO library")
+ ENDIF (ELFIO_FIND_REQUIRED)
+ENDIF (ELFIO_FOUND)
+
+# Deprecated declarations.
+SET (NATIVE_ELFIO_INCLUDE_PATH ${ELFIO_INCLUDE_DIR} )
+GET_FILENAME_COMPONENT (NATIVE_ELFIO_LIB_PATH ${ELFIO_LIBRARY} PATH)
+
+MARK_AS_ADVANCED(
+ ELFIO_LIBRARY
+ ELFIO_INCLUDE_DIR
+ )
diff --git a/indra/cmake/FindGooglePerfTools.cmake b/indra/cmake/FindGooglePerfTools.cmake
new file mode 100644
index 0000000000..bb125d538e
--- /dev/null
+++ b/indra/cmake/FindGooglePerfTools.cmake
@@ -0,0 +1,66 @@
+# -*- cmake -*-
+
+# - Find Google perftools
+# Find the Google perftools includes and libraries
+# This module defines
+# GOOGLE_PERFTOOLS_INCLUDE_DIR, where to find heap-profiler.h, etc.
+# GOOGLE_PERFTOOLS_FOUND, If false, do not try to use Google perftools.
+# also defined for general use are
+# TCMALLOC_LIBRARIES, where to find the tcmalloc library.
+# STACKTRACE_LIBRARIES, where to find the stacktrace library.
+# PROFILER_LIBRARIES, where to find the profiler library.
+
+FIND_PATH(GOOGLE_PERFTOOLS_INCLUDE_DIR google/heap-profiler.h
+/usr/local/include
+/usr/include
+)
+
+SET(TCMALLOC_NAMES ${TCMALLOC_NAMES} tcmalloc)
+FIND_LIBRARY(TCMALLOC_LIBRARY
+ NAMES ${TCMALLOC_NAMES}
+ PATHS /usr/lib /usr/local/lib
+ )
+
+IF (TCMALLOC_LIBRARY AND GOOGLE_PERFTOOLS_INCLUDE_DIR)
+ SET(TCMALLOC_LIBRARIES ${TCMALLOC_LIBRARY})
+ SET(GOOGLE_PERFTOOLS_FOUND "YES")
+ELSE (TCMALLOC_LIBRARY AND GOOGLE_PERFTOOLS_INCLUDE_DIR)
+ SET(GOOGLE_PERFTOOLS_FOUND "NO")
+ENDIF (TCMALLOC_LIBRARY AND GOOGLE_PERFTOOLS_INCLUDE_DIR)
+
+SET(STACKTRACE_NAMES ${STACKTRACE_NAMES} stacktrace)
+FIND_LIBRARY(STACKTRACE_LIBRARY
+ NAMES ${STACKTRACE_LIBRARY}
+ PATHS /usr/lib /usr/local/lib
+ )
+
+IF (STACKTRACE_LIBRARY AND GOOGLE_PERFTOOLS_INCLUDE_DIR)
+ SET(STACKTRACE_LIBRARIES ${STACKTRACE_LIBRARY})
+ENDIF (STACKTRACE_LIBRARY AND GOOGLE_PERFTOOLS_INCLUDE_DIR)
+
+SET(PROFILER_NAMES ${PROFILER_NAMES} profiler)
+FIND_LIBRARY(PROFILER_LIBRARY
+ NAMES ${PROFILER_LIBRARY}
+ PATHS /usr/lib /usr/local/lib
+ )
+
+IF (PROFILER_LIBRARY AND GOOGLE_PERFTOOLS_INCLUDE_DIR)
+ SET(PROFILER_LIBRARIES ${PROFILER_LIBRARY})
+ENDIF (PROFILER_LIBRARY AND GOOGLE_PERFTOOLS_INCLUDE_DIR)
+
+IF (GOOGLE_PERFTOOLS_FOUND)
+ IF (NOT GOOGLE_PERFTOOLS_FIND_QUIETLY)
+ MESSAGE(STATUS "Found Google perftools: ${GOOGLE_PERFTOOLS_LIBRARIES}")
+ ENDIF (NOT GOOGLE_PERFTOOLS_FIND_QUIETLY)
+ELSE (GOOGLE_PERFTOOLS_FOUND)
+ IF (GOOGLE_PERFTOOLS_FIND_REQUIRED)
+ MESSAGE(FATAL_ERROR "Could not find Google perftools library")
+ ENDIF (GOOGLE_PERFTOOLS_FIND_REQUIRED)
+ENDIF (GOOGLE_PERFTOOLS_FOUND)
+
+MARK_AS_ADVANCED(
+ TCMALLOC_LIBRARY
+ STACKTRACE_LIBRARY
+ PROFILER_LIBRARY
+ GOOGLE_PERFTOOLS_INCLUDE_DIR
+ )
diff --git a/indra/cmake/FindMySQL.cmake b/indra/cmake/FindMySQL.cmake
new file mode 100644
index 0000000000..431940328f
--- /dev/null
+++ b/indra/cmake/FindMySQL.cmake
@@ -0,0 +1,48 @@
+# -*- cmake -*-
+
+# - Find MySQL
+# Find the MySQL includes and library
+# This module defines
+# MYSQL_INCLUDE_DIR, where to find mysql.h, etc.
+# MYSQL_LIBRARIES, the libraries needed to use Mysql.
+# MYSQL_FOUND, If false, do not try to use Mysql.
+# also defined, but not for general use are
+# MYSQL_LIBRARY, where to find the Mysql library.
+
+FIND_PATH(MYSQL_INCLUDE_DIR mysql/mysql.h
+/usr/local/include
+/usr/include
+)
+
+SET(MYSQL_NAMES ${MYSQL_NAMES} mysqlclient)
+FIND_LIBRARY(MYSQL_LIBRARY
+ NAMES ${MYSQL_NAMES}
+ PATHS /usr/lib/mysql /usr/lib /usr/local/lib/mysql /usr/local/lib
+ )
+
+IF (MYSQL_LIBRARY AND MYSQL_INCLUDE_DIR)
+ SET(MYSQL_LIBRARIES ${MYSQL_LIBRARY})
+ SET(MYSQL_FOUND "YES")
+ELSE (MYSQL_LIBRARY AND MYSQL_INCLUDE_DIR)
+ SET(MYSQL_FOUND "NO")
+ENDIF (MYSQL_LIBRARY AND MYSQL_INCLUDE_DIR)
+
+
+IF (MYSQL_FOUND)
+ IF (NOT MYSQL_FIND_QUIETLY)
+ MESSAGE(STATUS "Found MySQL: ${MYSQL_LIBRARIES}")
+ ENDIF (NOT MYSQL_FIND_QUIETLY)
+ELSE (MYSQL_FOUND)
+ IF (MYSQL_FIND_REQUIRED)
+ MESSAGE(FATAL_ERROR "Could not find MySQL library")
+ ENDIF (MYSQL_FIND_REQUIRED)
+ENDIF (MYSQL_FOUND)
+
+# Deprecated declarations.
+SET (NATIVE_MYSQL_INCLUDE_PATH ${MYSQL_INCLUDE_DIR} )
+GET_FILENAME_COMPONENT (NATIVE_MYSQL_LIB_PATH ${MYSQL_LIBRARY} PATH)
+
+MARK_AS_ADVANCED(
+ MYSQL_LIBRARY
+ MYSQL_INCLUDE_DIR
+ )
diff --git a/indra/cmake/FindOpenJPEG.cmake b/indra/cmake/FindOpenJPEG.cmake
new file mode 100644
index 0000000000..949384eec4
--- /dev/null
+++ b/indra/cmake/FindOpenJPEG.cmake
@@ -0,0 +1,50 @@
+# -*- cmake -*-
+
+# - Find OpenJPEG
+# Find the OpenJPEG includes and library
+# This module defines
+# OPENJPEG_INCLUDE_DIR, where to find openjpeg.h, etc.
+# OPENJPEG_LIBRARIES, the libraries needed to use OpenJPEG.
+# OPENJPEG_FOUND, If false, do not try to use OpenJPEG.
+# also defined, but not for general use are
+# OPENJPEG_LIBRARY, where to find the OpenJPEG library.
+
+FIND_PATH(OPENJPEG_INCLUDE_DIR openjpeg.h
+/usr/local/include/openjpeg
+/usr/local/include
+/usr/include/openjpeg
+/usr/include
+)
+
+SET(OPENJPEG_NAMES ${OPENJPEG_NAMES} openjpeg)
+FIND_LIBRARY(OPENJPEG_LIBRARY
+ NAMES ${OPENJPEG_NAMES}
+ PATHS /usr/lib /usr/local/lib
+ )
+
+IF (OPENJPEG_LIBRARY AND OPENJPEG_INCLUDE_DIR)
+ SET(OPENJPEG_LIBRARIES ${OPENJPEG_LIBRARY})
+ SET(OPENJPEG_FOUND "YES")
+ELSE (OPENJPEG_LIBRARY AND OPENJPEG_INCLUDE_DIR)
+ SET(OPENJPEG_FOUND "NO")
+ENDIF (OPENJPEG_LIBRARY AND OPENJPEG_INCLUDE_DIR)
+
+
+IF (OPENJPEG_FOUND)
+ IF (NOT OPENJPEG_FIND_QUIETLY)
+ MESSAGE(STATUS "Found OpenJPEG: ${OPENJPEG_LIBRARIES}")
+ ENDIF (NOT OPENJPEG_FIND_QUIETLY)
+ELSE (OPENJPEG_FOUND)
+ IF (OPENJPEG_FIND_REQUIRED)
+ MESSAGE(FATAL_ERROR "Could not find OpenJPEG library")
+ ENDIF (OPENJPEG_FIND_REQUIRED)
+ENDIF (OPENJPEG_FOUND)
+
+# Deprecated declarations.
+SET (NATIVE_OPENJPEG_INCLUDE_PATH ${OPENJPEG_INCLUDE_DIR} )
+GET_FILENAME_COMPONENT (NATIVE_OPENJPEG_LIB_PATH ${OPENJPEG_LIBRARY} PATH)
+
+MARK_AS_ADVANCED(
+ OPENJPEG_LIBRARY
+ OPENJPEG_INCLUDE_DIR
+ )
diff --git a/indra/cmake/FindXmlRpcEpi.cmake b/indra/cmake/FindXmlRpcEpi.cmake
new file mode 100644
index 0000000000..ba217e7467
--- /dev/null
+++ b/indra/cmake/FindXmlRpcEpi.cmake
@@ -0,0 +1,48 @@
+# -*- cmake -*-
+
+# - Find XMLRPC-EPI
+# Find the XMLRPC-EPI includes and library
+# This module defines
+# XMLRPCEPI_INCLUDE_DIR, where to find jpeglib.h, etc.
+# XMLRPCEPI_LIBRARIES, the libraries needed to use XMLRPC-EPI.
+# XMLRPCEPI_FOUND, If false, do not try to use XMLRPC-EPI.
+# also defined, but not for general use are
+# XMLRPCEPI_LIBRARY, where to find the XMLRPC-EPI library.
+
+FIND_PATH(XMLRPCEPI_INCLUDE_DIR xmlrpc-epi/xmlrpc.h
+/usr/local/include
+/usr/include
+)
+
+SET(XMLRPCEPI_NAMES ${XMLRPCEPI_NAMES} xmlrpc-epi)
+FIND_LIBRARY(XMLRPCEPI_LIBRARY
+ NAMES ${XMLRPCEPI_NAMES}
+ PATHS /usr/lib /usr/local/lib
+ )
+
+IF (XMLRPCEPI_LIBRARY AND XMLRPCEPI_INCLUDE_DIR)
+ SET(XMLRPCEPI_LIBRARIES ${XMLRPCEPI_LIBRARY})
+ SET(XMLRPCEPI_FOUND "YES")
+ELSE (XMLRPCEPI_LIBRARY AND XMLRPCEPI_INCLUDE_DIR)
+ SET(XMLRPCEPI_FOUND "NO")
+ENDIF (XMLRPCEPI_LIBRARY AND XMLRPCEPI_INCLUDE_DIR)
+
+
+IF (XMLRPCEPI_FOUND)
+ IF (NOT XMLRPCEPI_FIND_QUIETLY)
+ MESSAGE(STATUS "Found XMLRPC-EPI: ${XMLRPCEPI_LIBRARIES}")
+ ENDIF (NOT XMLRPCEPI_FIND_QUIETLY)
+ELSE (XMLRPCEPI_FOUND)
+ IF (XMLRPCEPI_FIND_REQUIRED)
+ MESSAGE(FATAL_ERROR "Could not find XMLRPC-EPI library")
+ ENDIF (XMLRPCEPI_FIND_REQUIRED)
+ENDIF (XMLRPCEPI_FOUND)
+
+# Deprecated declarations.
+SET (NATIVE_XMLRPCEPI_INCLUDE_PATH ${XMLRPCEPI_INCLUDE_DIR} )
+GET_FILENAME_COMPONENT (NATIVE_XMLRPCEPI_LIB_PATH ${XMLRPCEPI_LIBRARY} PATH)
+
+MARK_AS_ADVANCED(
+ XMLRPCEPI_LIBRARY
+ XMLRPCEPI_INCLUDE_DIR
+ )
diff --git a/indra/cmake/FreeType.cmake b/indra/cmake/FreeType.cmake
new file mode 100644
index 0000000000..064135bcd1
--- /dev/null
+++ b/indra/cmake/FreeType.cmake
@@ -0,0 +1,18 @@
+# -*- cmake -*-
+
+if (STANDALONE)
+ include(FindPkgConfig)
+
+ pkg_check_modules(FREETYPE REQUIRED freetype2)
+else (STANDALONE)
+ if (LINUX)
+ set(FREETYPE_INCLUDE_DIRS
+ ${LIBS_PREBUILT_DIR}/${LL_ARCH_DIR}/include)
+ else (LINUX)
+ set(FREETYPE_INCLUDE_DIRS ${LIBS_PREBUILT_DIR}/include)
+ endif (LINUX)
+
+ set(FREETYPE_LIBRARIES freetype)
+endif (STANDALONE)
+
+link_directories(${FREETYPE_LIBRARY_DIRS})
diff --git a/indra/cmake/GooglePerfTools.cmake b/indra/cmake/GooglePerfTools.cmake
new file mode 100644
index 0000000000..61a2631a08
--- /dev/null
+++ b/indra/cmake/GooglePerfTools.cmake
@@ -0,0 +1,26 @@
+# -*- cmake -*-
+
+if (STANDALONE)
+ include(FindGooglePerfTools)
+else (STANDALONE)
+ if (LINUX)
+ set(TCMALLOC_LIBRARIES tcmalloc)
+ set(STACKTRACE_LIBRARIES stacktrace)
+ set(PROFILER_LIBRARIES profiler)
+ set(GOOGLE_PERFTOOLS_INCLUDE_DIR
+ ${LIBS_PREBUILT_DIR}/${LL_ARCH_DIR}/include)
+ set(GOOGLE_PERFTOOLS_FOUND "YES")
+ endif (LINUX)
+endif (STANDALONE)
+
+if (GOOGLE_PERFTOOLS_FOUND)
+ set(USE_GOOGLE_PERFTOOLS ON CACHE BOOL "Build with Google PerfTools support.")
+endif (GOOGLE_PERFTOOLS_FOUND)
+
+if (USE_GOOGLE_PERFTOOLS)
+ set(TCMALLOC_FLAG -DLL_USE_TCMALLOC=1)
+ include_directories(${GOOGLE_PERFTOOLS_INCLUDE_DIR})
+ set(GOOGLE_PERFTOOLS_LIBRARIES ${TCMALLOC_LIBRARIES} ${STACKTRACE_LIBRARIES})
+else (USE_GOOGLE_PERFTOOLS)
+ set(TCMALLOC_FLAG -ULL_USE_TCMALLOC)
+endif (USE_GOOGLE_PERFTOOLS)
diff --git a/indra/cmake/JPEG.cmake b/indra/cmake/JPEG.cmake
new file mode 100644
index 0000000000..18bdd8bc46
--- /dev/null
+++ b/indra/cmake/JPEG.cmake
@@ -0,0 +1,22 @@
+# -*- cmake -*-
+
+include(Linking)
+set(JPEG_FIND_QUIETLY ON)
+set(JPEG_FIND_REQUIRED ON)
+
+if (STANDALONE)
+ include(FindJPEG)
+else (STANDALONE)
+ if (LINUX)
+ set(JPEG_LIBRARIES jpeg)
+ elseif (DARWIN)
+ set(JPEG_LIBRARIES
+ lljpeg
+ optimized ${ARCH_PREBUILT_DIRS_RELEASE}/lljpeg
+ debug ${ARCH_PREBUILT_DIRS_DEBUG}/lljpeg
+ )
+ elseif (WINDOWS)
+ set(JPEG_LIBRARIES jpeglib_6b)
+ endif (LINUX)
+ set(JPEG_INCLUDE_DIRS ${LIBS_PREBUILT_DIR}/include)
+endif (STANDALONE)
diff --git a/indra/cmake/LLAudio.cmake b/indra/cmake/LLAudio.cmake
new file mode 100644
index 0000000000..7b9f2544dd
--- /dev/null
+++ b/indra/cmake/LLAudio.cmake
@@ -0,0 +1,15 @@
+# -*- cmake -*-
+
+include(Audio)
+
+set(LLAUDIO_INCLUDE_DIRS
+ ${LIBS_OPEN_DIR}/llaudio
+ )
+
+set(LLAUDIO_LIBRARIES
+ llaudio
+ ${VORBISENC_LIBRARIES}
+ ${VORBISFILE_LIBRARIES}
+ ${VORBIS_LIBRARIES}
+ ${OGG_LIBRARIES}
+ )
diff --git a/indra/cmake/LLCharacter.cmake b/indra/cmake/LLCharacter.cmake
new file mode 100644
index 0000000000..c74092cdd5
--- /dev/null
+++ b/indra/cmake/LLCharacter.cmake
@@ -0,0 +1,9 @@
+# -*- cmake -*-
+
+set(LLCHARACTER_INCLUDE_DIRS
+ ${LIBS_OPEN_DIR}/llcharacter
+ )
+
+set(LLCHARACTER_LIBRARIES
+ llcharacter
+ )
diff --git a/indra/cmake/LLCommon.cmake b/indra/cmake/LLCommon.cmake
new file mode 100644
index 0000000000..f4b251ebc8
--- /dev/null
+++ b/indra/cmake/LLCommon.cmake
@@ -0,0 +1,21 @@
+# -*- cmake -*-
+
+include(APR)
+include(Boost)
+include(EXPAT)
+include(ZLIB)
+
+set(LLCOMMON_INCLUDE_DIRS
+ ${LIBS_OPEN_DIR}/llcommon
+ ${APRUTIL_INCLUDE_DIR}
+ ${APR_INCLUDE_DIR}
+ ${Boost_INCLUDE_DIRS}
+ )
+
+set(LLCOMMON_LIBRARIES
+ llcommon
+ ${APRUTIL_LIBRARIES}
+ ${APR_LIBRARIES}
+ ${EXPAT_LIBRARIES}
+ ${ZLIB_LIBRARIES}
+ )
diff --git a/indra/cmake/LLCrashLogger.cmake b/indra/cmake/LLCrashLogger.cmake
new file mode 100644
index 0000000000..7b362d084c
--- /dev/null
+++ b/indra/cmake/LLCrashLogger.cmake
@@ -0,0 +1,9 @@
+# -*- cmake -*-
+
+set(LLCRASHLOGGER_INCLUDE_DIRS
+ ${LIBS_OPEN_DIR}/llcrashlogger
+ )
+
+set(LLCRASHLOGGER_LIBRARIES
+ llcrashlogger
+ )
diff --git a/indra/cmake/LLDatabase.cmake b/indra/cmake/LLDatabase.cmake
new file mode 100644
index 0000000000..c3cf62233c
--- /dev/null
+++ b/indra/cmake/LLDatabase.cmake
@@ -0,0 +1,13 @@
+# -*- cmake -*-
+
+include(MySQL)
+
+set(LLDATABASE_INCLUDE_DIRS
+ ${LIBS_SERVER_DIR}/lldatabase
+ ${MYSQL_INCLUDE_DIR}
+ )
+
+set(LLDATABASE_LIBRARIES
+ lldatabase
+ ${MYSQL_LIBRARIES}
+ )
diff --git a/indra/cmake/LLImage.cmake b/indra/cmake/LLImage.cmake
new file mode 100644
index 0000000000..8874fa54a8
--- /dev/null
+++ b/indra/cmake/LLImage.cmake
@@ -0,0 +1,15 @@
+# -*- cmake -*-
+
+include(JPEG)
+include(PNG)
+
+set(LLIMAGE_INCLUDE_DIRS
+ ${LIBS_OPEN_DIR}/llimage
+ ${JPEG_INCLUDE_DIRS}
+ )
+
+set(LLIMAGE_LIBRARIES
+ llimage
+ ${JPEG_LIBRARIES}
+ ${PNG_LIBRARIES}
+ )
diff --git a/indra/cmake/LLImageJ2COJ.cmake b/indra/cmake/LLImageJ2COJ.cmake
new file mode 100644
index 0000000000..91973e0896
--- /dev/null
+++ b/indra/cmake/LLImageJ2COJ.cmake
@@ -0,0 +1,8 @@
+# -*- cmake -*-
+
+include(OpenJPEG)
+
+set(LLIMAGEJ2COJ_LIBRARIES
+ llimagej2coj
+ ${OPENJPEG_LIBRARIES}
+ )
diff --git a/indra/cmake/LLInventory.cmake b/indra/cmake/LLInventory.cmake
new file mode 100644
index 0000000000..7d5f492388
--- /dev/null
+++ b/indra/cmake/LLInventory.cmake
@@ -0,0 +1,9 @@
+# -*- cmake -*-
+
+set(LLINVENTORY_INCLUDE_DIRS
+ ${LIBS_OPEN_DIR}/llinventory
+ )
+
+set(LLINVENTORY_LIBRARIES
+ llinventory
+ )
diff --git a/indra/cmake/LLKDU.cmake b/indra/cmake/LLKDU.cmake
new file mode 100644
index 0000000000..6ec14d2588
--- /dev/null
+++ b/indra/cmake/LLKDU.cmake
@@ -0,0 +1,18 @@
+# -*- cmake -*-
+
+if (NOT STANDALONE AND EXISTS ${LIBS_CLOSED_DIR}/llkdu)
+ if (WINDOWS)
+ set(KDU_LIBRARY debug kdu_cored optimized kdu_core)
+ elseif (LINUX)
+ set(KDU_LIBRARY kdu_v42R)
+ 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 (NOT STANDALONE AND EXISTS ${LIBS_CLOSED_DIR}/llkdu)
diff --git a/indra/cmake/LLMath.cmake b/indra/cmake/LLMath.cmake
new file mode 100644
index 0000000000..8afd45efc6
--- /dev/null
+++ b/indra/cmake/LLMath.cmake
@@ -0,0 +1,9 @@
+# -*- cmake -*-
+
+set(LLMATH_INCLUDE_DIRS
+ ${LIBS_OPEN_DIR}/llmath
+ )
+
+set(LLMATH_LIBRARIES
+ llmath
+ )
diff --git a/indra/cmake/LLMessage.cmake b/indra/cmake/LLMessage.cmake
new file mode 100644
index 0000000000..1cea03af2b
--- /dev/null
+++ b/indra/cmake/LLMessage.cmake
@@ -0,0 +1,22 @@
+# -*- cmake -*-
+
+include(CARes)
+include(CURL)
+include(OpenSSL)
+include(XmlRpcEpi)
+
+set(LLMESSAGE_INCLUDE_DIRS
+ ${LIBS_OPEN_DIR}/llmessage
+ ${CARES_INCLUDE_DIRS}
+ ${CURL_INCLUDE_DIRS}
+ ${OPENSSL_INCLUDE_DIRS}
+ )
+
+set(LLMESSAGE_LIBRARIES
+ llmessage
+ ${CURL_LIBRARIES}
+ ${CARES_LIBRARIES}
+ ${OPENSSL_LIBRARIES}
+ ${CRYPTO_LIBRARIES}
+ ${XMLRPCEPI_LIBRARIES}
+ )
diff --git a/indra/cmake/LLPrimitive.cmake b/indra/cmake/LLPrimitive.cmake
new file mode 100644
index 0000000000..0426ae539a
--- /dev/null
+++ b/indra/cmake/LLPrimitive.cmake
@@ -0,0 +1,9 @@
+# -*- cmake -*-
+
+set(LLPRIMITIVE_INCLUDE_DIRS
+ ${LIBS_OPEN_DIR}/llprimitive
+ )
+
+set(LLPRIMITIVE_LIBRARIES
+ llprimitive
+ )
diff --git a/indra/cmake/LLRender.cmake b/indra/cmake/LLRender.cmake
new file mode 100644
index 0000000000..8fda6c1d6a
--- /dev/null
+++ b/indra/cmake/LLRender.cmake
@@ -0,0 +1,11 @@
+# -*- cmake -*-
+
+include(FreeType)
+
+set(LLRENDER_INCLUDE_DIRS
+ ${LIBS_OPEN_DIR}/llrender
+ )
+
+set(LLRENDER_LIBRARIES
+ llrender
+ )
diff --git a/indra/cmake/LLScene.cmake b/indra/cmake/LLScene.cmake
new file mode 100644
index 0000000000..d1c32b3199
--- /dev/null
+++ b/indra/cmake/LLScene.cmake
@@ -0,0 +1,9 @@
+# -*- cmake -*-
+
+set(LLSCENE_INCLUDE_DIRS
+ ${LIBS_SERVER_DIR}/llscene
+ )
+
+set(LLSCENE_LIBRARIES
+ llscene
+ )
diff --git a/indra/cmake/LLUI.cmake b/indra/cmake/LLUI.cmake
new file mode 100644
index 0000000000..d1287de018
--- /dev/null
+++ b/indra/cmake/LLUI.cmake
@@ -0,0 +1,9 @@
+# -*- cmake -*-
+
+set(LLUI_INCLUDE_DIRS
+ ${LIBS_OPEN_DIR}/llui
+ )
+
+set(LLUI_LIBRARIES
+ llui
+ )
diff --git a/indra/cmake/LLVFS.cmake b/indra/cmake/LLVFS.cmake
new file mode 100644
index 0000000000..5ce3d2578e
--- /dev/null
+++ b/indra/cmake/LLVFS.cmake
@@ -0,0 +1,13 @@
+# -*- cmake -*-
+
+set(LLVFS_INCLUDE_DIRS
+ ${LIBS_OPEN_DIR}/llvfs
+ )
+
+set(LLVFS_LIBRARIES llvfs)
+
+if (DARWIN)
+ include(CMakeFindFrameworks)
+ find_library(CARBON_LIBRARY Carbon)
+ list(APPEND LLVFS_LIBRARIES ${CARBON_LIBRARY})
+endif (DARWIN)
diff --git a/indra/cmake/LLWindow.cmake b/indra/cmake/LLWindow.cmake
new file mode 100644
index 0000000000..7a1ecaf0b1
--- /dev/null
+++ b/indra/cmake/LLWindow.cmake
@@ -0,0 +1,40 @@
+# -*- cmake -*-
+
+include(OpenGL)
+
+if (STANDALONE)
+ include(FindSDL)
+
+ # This should be done by FindSDL. Sigh.
+ mark_as_advanced(
+ SDLMAIN_LIBRARY
+ SDL_INCLUDE_DIR
+ SDL_LIBRARY
+ )
+else (STANDALONE)
+ if (LINUX AND VIEWER)
+ set (SDL_FOUND TRUE)
+ set (SDL_INCLUDE_DIR ${LIBS_PREBUILT_DIR}/i686-linux)
+ set (SDL_LIBRARY SDL)
+ endif (LINUX AND VIEWER)
+endif (STANDALONE)
+
+if (SDL_FOUND)
+ add_definitions(-DLL_SDL=1)
+ include_directories(${SDL_INCLUDE_DIR})
+endif (SDL_FOUND)
+
+set(LLWINDOW_INCLUDE_DIRS
+ ${GLEXT_INCLUDE_DIR}
+ ${LIBS_OPEN_DIR}/llwindow
+ )
+
+if (SERVER AND LINUX)
+ set(LLWINDOW_LIBRARIES
+ llwindowheadless
+ )
+else (SERVER AND LINUX)
+ set(LLWINDOW_LIBRARIES
+ llwindow
+ )
+endif (SERVER AND LINUX)
diff --git a/indra/cmake/LLXML.cmake b/indra/cmake/LLXML.cmake
new file mode 100644
index 0000000000..1ce93c0abc
--- /dev/null
+++ b/indra/cmake/LLXML.cmake
@@ -0,0 +1,13 @@
+# -*- cmake -*-
+
+include(EXPAT)
+
+set(LLXML_INCLUDE_DIRS
+ ${LIBS_OPEN_DIR}/llxml
+ ${EXPAT_INCLUDE_DIRS}
+ )
+
+set(LLXML_LIBRARIES
+ llxml
+ ${EXPAT_LIBRARIES}
+ )
diff --git a/indra/cmake/LScript.cmake b/indra/cmake/LScript.cmake
new file mode 100644
index 0000000000..227e4aaeda
--- /dev/null
+++ b/indra/cmake/LScript.cmake
@@ -0,0 +1,13 @@
+# -*- cmake -*-
+
+set(LSCRIPT_INCLUDE_DIRS
+ ${LIBS_OPEN_DIR}/lscript
+ ${LIBS_OPEN_DIR}/lscript/lscript_compile
+ ${LIBS_OPEN_DIR}/lscript/lscript_execute
+ )
+
+set(LSCRIPT_LIBRARIES
+ lscript_compile
+ lscript_execute
+ lscript_library
+ )
diff --git a/indra/cmake/Linking.cmake b/indra/cmake/Linking.cmake
new file mode 100644
index 0000000000..3146016b9a
--- /dev/null
+++ b/indra/cmake/Linking.cmake
@@ -0,0 +1,43 @@
+# -*- cmake -*-
+
+if (NOT STANDALONE)
+ if (WINDOWS)
+ set(ARCH_PREBUILT_DIRS ${LIBS_PREBUILT_DIR}/${LL_ARCH_DIR}/lib)
+ set(ARCH_PREBUILT_DIRS_RELEASE ${LIBS_PREBUILT_DIR}/${LL_ARCH_DIR}/lib/release)
+ set(ARCH_PREBUILT_DIRS_DEBUG ${LIBS_PREBUILT_DIR}/${LL_ARCH_DIR}/lib/debug)
+ elseif (LINUX)
+ if (VIEWER)
+ set(ARCH_PREBUILT_DIRS
+ ${LIBS_PREBUILT_DIR}/${LL_ARCH_DIR}/lib_release_client)
+ else (VIEWER)
+ set(ARCH_PREBUILT_DIRS ${LIBS_PREBUILT_DIR}/${LL_ARCH_DIR}/lib_release)
+ endif (VIEWER)
+ elseif (DARWIN)
+ set(ARCH_PREBUILT_DIRS_RELEASE ${LIBS_PREBUILT_DIR}/${LL_ARCH_DIR}/lib_release)
+ set(ARCH_PREBUILT_DIRS_DEBUG ${LIBS_PREBUILT_DIR}/${LL_ARCH_DIR}/lib_debug)
+ endif (WINDOWS)
+endif (NOT STANDALONE)
+
+link_directories(${ARCH_PREBUILT_DIRS})
+
+if (LINUX)
+ set(DL_LIBRARY dl)
+ set(PTHREAD_LIBRARY pthread)
+else (LINUX)
+ set(DL_LIBRARY "")
+ set(PTHREAD_LIBRARY "")
+endif (LINUX)
+
+if (WINDOWS)
+ set(WINDOWS_LIBRARIES
+ ws2_32
+ mswsock
+ psapi
+ winmm
+ netapi32
+ )
+else (WINDOWS)
+ set(WINDOWS_LIBRARIES "")
+endif (WINDOWS)
+
+mark_as_advanced(DL_LIBRARY PTHREAD_LIBRARY WINDOWS_LIBRARIES)
diff --git a/indra/cmake/MySQL.cmake b/indra/cmake/MySQL.cmake
new file mode 100644
index 0000000000..7dc638ec57
--- /dev/null
+++ b/indra/cmake/MySQL.cmake
@@ -0,0 +1,20 @@
+# -*- cmake -*-
+include(Linking)
+# We don't prebuild our own MySQL client library.
+
+set(MYSQL_FIND_QUIETLY ON)
+set(MYSQL_FIND_REQUIRED ON)
+
+if (WINDOWS)
+ set(MYSQL_LIBRARIES mysqlclient)
+ set(MYSQL_INCLUDE_DIR ${LIBS_PREBUILT_DIR}/${LL_ARCH_DIR}/include)
+elseif (DARWIN)
+ set(MYSQL_INCLUDE_DIR ${LIBS_PREBUILT_DIR}/${LL_ARCH_DIR}/include)
+ set(MYSQL_LIBRARIES
+ optimized ${LIBS_PREBUILT_DIRS_RELEASE}/mysqlclient
+ debug ${LIBS_PREBUILT_DIRS_DEBUG}/mysqlclient
+ )
+else (WINDOWS)
+ set(MYSQL_FIND_REQUIRED)
+ include(FindMySQL)
+endif (WINDOWS)
diff --git a/indra/cmake/NDOF.cmake b/indra/cmake/NDOF.cmake
new file mode 100644
index 0000000000..22e9787653
--- /dev/null
+++ b/indra/cmake/NDOF.cmake
@@ -0,0 +1,11 @@
+# -*- cmake -*-
+
+if (WINDOWS OR DARWIN)
+ add_definitions(-DLIB_NDOF=1)
+endif (WINDOWS OR DARWIN)
+
+if (WINDOWS)
+ set(NDOF_LIBRARY libndofdev)
+elseif (DARWIN)
+ set(NDOF_LIBRARY ndofdev)
+endif (WINDOWS)
diff --git a/indra/cmake/OpenGL.cmake b/indra/cmake/OpenGL.cmake
new file mode 100644
index 0000000000..7395d478fe
--- /dev/null
+++ b/indra/cmake/OpenGL.cmake
@@ -0,0 +1,5 @@
+# -*- cmake -*-
+
+if (NOT STANDALONE)
+ set(GLEXT_INCLUDE_DIR ${LIBS_PREBUILT_DIR}/${LL_ARCH_DIR}/include)
+endif (NOT STANDALONE) \ No newline at end of file
diff --git a/indra/cmake/OpenJPEG.cmake b/indra/cmake/OpenJPEG.cmake
new file mode 100644
index 0000000000..32dcb505aa
--- /dev/null
+++ b/indra/cmake/OpenJPEG.cmake
@@ -0,0 +1,20 @@
+# -*- cmake -*-
+
+set(OPENJPEG_FIND_QUIETLY ON)
+set(OPENJPEG_FIND_REQUIRED ON)
+
+if (STANDALONE)
+ include(FindOpenJPEG)
+else (STANDALONE)
+
+ if(WINDOWS)
+ # Windows has differently named release and debug openjpeg(d) libs.
+ set(OPENJPEG_LIBRARIES
+ debug openjpegd
+ optimized openjpeg)
+ else(WINDOWS)
+ set(OPENJPEG_LIBRARIES openjpeg)
+ endif(WINDOWS)
+
+ set(OPENJPEG_INCLUDE_DIR ${LIBS_PREBUILT_DIR}/include/openjpeg)
+endif (STANDALONE)
diff --git a/indra/cmake/OpenSSL.cmake b/indra/cmake/OpenSSL.cmake
new file mode 100644
index 0000000000..715af3ba54
--- /dev/null
+++ b/indra/cmake/OpenSSL.cmake
@@ -0,0 +1,21 @@
+# -*- cmake -*-
+
+set(OpenSSL_FIND_QUIETLY ON)
+set(OpenSSL_FIND_REQUIRED ON)
+
+if (STANDALONE)
+ include(FindOpenSSL)
+else (STANDALONE)
+ if (WINDOWS)
+ set(OPENSSL_LIBRARIES ssleay32 libeay32)
+ else (WINDOWS)
+ set(OPENSSL_LIBRARIES ssl)
+ endif (WINDOWS)
+ set(OPENSSL_INCLUDE_DIRS ${LIBS_PREBUILT_DIR}/${LL_ARCH_DIR}/include)
+endif (STANDALONE)
+
+if (LINUX)
+ set(CRYPTO_LIBRARIES crypto)
+elseif (DARWIN)
+ set(CRYPTO_LIBRARIES llcrypto)
+endif (LINUX)
diff --git a/indra/cmake/PNG.cmake b/indra/cmake/PNG.cmake
new file mode 100644
index 0000000000..b4f7e5e66b
--- /dev/null
+++ b/indra/cmake/PNG.cmake
@@ -0,0 +1,11 @@
+# -*- cmake -*-
+
+set(PNG_FIND_QUIETLY ON)
+set(PNG_FIND_REQUIRED ON)
+
+if (STANDALONE)
+ include(FindPNG)
+else (STANDALONE)
+ set(PNG_LIBRARIES png12)
+ set(PNG_INCLUDE_DIRS ${LIBS_PREBUILT_DIR}/include)
+endif (STANDALONE)
diff --git a/indra/cmake/Prebuilt.cmake b/indra/cmake/Prebuilt.cmake
new file mode 100644
index 0000000000..2f4fbd05c7
--- /dev/null
+++ b/indra/cmake/Prebuilt.cmake
@@ -0,0 +1,17 @@
+# -*- cmake -*-
+
+include(Python)
+
+macro (use_prebuilt_library _lib)
+ if (NOT STANDALONE)
+ exec_program(${PYTHON_EXECUTABLE} ${CMAKE_SOURCE_DIR}
+ ARGS
+ --install-dir=${LIBS_PREBUILT_DIR} ${_lib}/${ARCH}
+ RETURN_VALUE _installed
+ )
+ if (NOT _installed)
+ message(FATAL_ERROR
+ "Failed to download or unpack prebuilt ${_lib} for ${ARCH}")
+ endif (NOT _installed)
+ endif (NOT STANDALONE)
+endmacro (use_prebuilt_library _lib)
diff --git a/indra/cmake/Python.cmake b/indra/cmake/Python.cmake
new file mode 100644
index 0000000000..895b353dbd
--- /dev/null
+++ b/indra/cmake/Python.cmake
@@ -0,0 +1,32 @@
+# -*- cmake -*-
+
+set(PYTHONINTERP_FOUND)
+
+if (WINDOWS)
+ # On Windows, explicitly avoid Cygwin Python.
+
+ find_program(PYTHON_EXECUTABLE
+ NAMES python25.exe python23.exe python.exe
+ NO_DEFAULT_PATH # added so that cmake does not find cygwin python
+ PATHS
+ [HKEY_LOCAL_MACHINE\\SOFTWARE\\Python\\PythonCore\\2.5\\InstallPath]
+ [HKEY_LOCAL_MACHINE\\SOFTWARE\\Python\\PythonCore\\2.4\\InstallPath]
+ [HKEY_LOCAL_MACHINE\\SOFTWARE\\Python\\PythonCore\\2.3\\InstallPath]
+ )
+elseif (EXISTS /etc/debian_version)
+ # On Debian and Ubuntu, avoid Python 2.4 if possible.
+
+ find_program(PYTHON_EXECUTABLE python2.5 python2.3 python PATHS /usr/bin)
+
+ if (PYTHON_EXECUTABLE)
+ set(PYTHONINTERP_FOUND ON)
+ endif (PYTHON_EXECUTABLE)
+else (WINDOWS)
+ include(FindPythonInterp)
+endif (WINDOWS)
+
+if (NOT PYTHON_EXECUTABLE)
+ message(FATAL_ERROR "No Python interpreter found")
+endif (NOT PYTHON_EXECUTABLE)
+
+mark_as_advanced(PYTHON_EXECUTABLE)
diff --git a/indra/cmake/TemplateCheck.cmake b/indra/cmake/TemplateCheck.cmake
new file mode 100644
index 0000000000..3b73dc82df
--- /dev/null
+++ b/indra/cmake/TemplateCheck.cmake
@@ -0,0 +1,14 @@
+# -*- cmake -*-
+
+include(Python)
+
+macro (check_message_template _target)
+ add_custom_command(
+ TARGET ${_target}
+ PRE_LINK
+ COMMAND ${PYTHON_EXECUTABLE}
+ ARGS ${SCRIPTS_DIR}/template_verifier.py
+ --mode=development --cache_master
+ COMMENT "Verifying message template"
+ )
+endmacro (check_message_template)
diff --git a/indra/cmake/UI.cmake b/indra/cmake/UI.cmake
new file mode 100644
index 0000000000..7d2955ce36
--- /dev/null
+++ b/indra/cmake/UI.cmake
@@ -0,0 +1,62 @@
+# -*- cmake -*-
+
+if (STANDALONE)
+ include(FindPkgConfig)
+
+ if (LINUX)
+ set(PKGCONFIG_PACKAGES
+ atk
+ cairo
+ gdk-2.0
+ gdk-pixbuf-2.0
+ glib-2.0
+ gmodule-2.0
+ gtk+-2.0
+ gthread-2.0
+ libpng
+ pango
+ pangoft2
+ pangox
+ pangoxft
+ sdl
+ )
+ endif (LINUX)
+
+ foreach(pkg ${PKGCONFIG_PACKAGES})
+ pkg_check_modules(${pkg} REQUIRED ${pkg})
+ include_directories(${${pkg}_INCLUDE_DIRS})
+ link_directories(${${pkg}_LIBRARY_DIRS})
+ list(APPEND UI_LIBRARIES ${${pkg}_LIBRARIES})
+ add_definitions(${${pkg}_CFLAGS_OTHERS})
+ endforeach(pkg)
+else (STANDALONE)
+ if (LINUX)
+ set(UI_LIBRARIES
+ atk-1.0
+ gdk-x11-2.0
+ gdk_pixbuf-2.0
+ Xinerama
+ glib-2.0
+ gmodule-2.0
+ gobject-2.0
+ gthread-2.0
+ gtk-x11-2.0
+ pango-1.0
+ pangoft2-1.0
+ pangox-1.0
+ pangoxft-1.0
+ )
+ endif (LINUX)
+
+ include_directories (
+ ${LIBS_PREBUILT_DIR}/${LL_ARCH_DIR}/include
+ ${LIBS_PREBUILT_DIR}/include
+ )
+ foreach(include ${${LL_ARCH}_INCLUDES})
+ include_directories(${LIBS_PREBUILT_DIR}/${LL_ARCH_DIR}/include/${include})
+ endforeach(include)
+endif (STANDALONE)
+
+if (LINUX)
+ add_definitions(-DLL_GTK=1 -DLL_X11=1)
+endif (LINUX)
diff --git a/indra/cmake/UnixInstall.cmake b/indra/cmake/UnixInstall.cmake
new file mode 100644
index 0000000000..139be0a008
--- /dev/null
+++ b/indra/cmake/UnixInstall.cmake
@@ -0,0 +1,31 @@
+if (NOT ${viewer_VERSION})
+ MESSAGE(FATAL_ERROR "Viewer version not known!")
+endif (NOT ${viewer_VERSION})
+
+set(INSTALL OFF CACHE BOOL
+ "Generate install target.")
+
+if (INSTALL)
+ set(INSTALL_PREFIX /usr CACHE PATH
+ "Top-level installation directory.")
+
+ if (EXISTS /lib64)
+ set(_LIB lib64)
+ else (EXISTS /lib64)
+ set(_LIB lib)
+ endif (EXISTS /lib64)
+
+ set(INSTALL_LIBRARY_DIR ${INSTALL_PREFIX}/${_LIB} CACHE PATH
+ "Installation directory for read-only shared files.")
+
+ set(INSTALL_SHARE_DIR ${INSTALL_PREFIX}/share CACHE PATH
+ "Installation directory for read-only shared files.")
+
+ set(APP_BINARY_DIR ${INSTALL_LIBRARY_DIR}/secondlife-${viewer_VERSION}
+ CACHE PATH
+ "Installation directory for binaries.")
+
+ set(APP_SHARE_DIR ${INSTALL_SHARE_DIR}/secondlife-${viewer_VERSION}
+ CACHE PATH
+ "Installation directory for read-only data files.")
+endif (INSTALL)
diff --git a/indra/cmake/Variables.cmake b/indra/cmake/Variables.cmake
new file mode 100644
index 0000000000..7e10f27418
--- /dev/null
+++ b/indra/cmake/Variables.cmake
@@ -0,0 +1,81 @@
+# -*- cmake -*-
+#
+# Definitions of variables used throughout the Second Life build
+# process.
+#
+# Platform variables:
+#
+# DARWIN - Mac OS X
+# LINUX - Linux
+# WINDOWS - Windows
+#
+# What to build:
+#
+# VIEWER - viewer and other viewer-side components
+# SERVER - simulator and other server-side bits
+
+
+# Relative and absolute paths to subtrees.
+
+set(LIBS_CLOSED_PREFIX)
+set(LIBS_OPEN_PREFIX)
+set(LIBS_SERVER_PREFIX)
+set(SCRIPTS_PREFIX ../scripts)
+set(SERVER_PREFIX)
+set(VIEWER_PREFIX)
+
+set(LIBS_CLOSED_DIR ${CMAKE_SOURCE_DIR}/${LIBS_CLOSED_PREFIX})
+set(LIBS_OPEN_DIR ${CMAKE_SOURCE_DIR}/${LIBS_OPEN_PREFIX})
+set(LIBS_SERVER_DIR ${CMAKE_SOURCE_DIR}/${LIBS_SERVER_PREFIX})
+set(SCRIPTS_DIR ${CMAKE_SOURCE_DIR}/${SCRIPTS_PREFIX})
+set(SERVER_DIR ${CMAKE_SOURCE_DIR}/${SERVER_PREFIX})
+set(VIEWER_DIR ${CMAKE_SOURCE_DIR}/${VIEWER_PREFIX})
+
+set(LIBS_PREBUILT_DIR ${CMAKE_SOURCE_DIR}/../libraries CACHE PATH
+ "Location of prebuilt libraries.")
+
+
+if (${CMAKE_SYSTEM_NAME} MATCHES "Windows")
+ set(WINDOWS ON BOOL FORCE)
+ set(ARCH i686)
+ set(LL_ARCH ${ARCH}_win32)
+ set(LL_ARCH_DIR ${ARCH}-win32)
+endif (${CMAKE_SYSTEM_NAME} MATCHES "Windows")
+
+if (${CMAKE_SYSTEM_NAME} MATCHES "Linux")
+ set(LINUX ON BOOl FORCE)
+ execute_process(COMMAND uname -m COMMAND sed s/i.86/i686/
+ OUTPUT_VARIABLE ARCH OUTPUT_STRIP_TRAILING_WHITESPACE)
+ set(LL_ARCH ${ARCH}_linux)
+ set(LL_ARCH_DIR ${ARCH}-linux)
+endif (${CMAKE_SYSTEM_NAME} MATCHES "Linux")
+
+if (${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
+ set(DARWIN 1)
+ set(ARCH universal)
+ set(LL_ARCH ${ARCH}_darwin)
+ set(LL_ARCH_DIR ${ARCH}-darwin)
+ set(CMAKE_OSX_ARCHITECTURES i386;ppc)
+ set(CMAKE_OSX_SYSROOT /Developer/SDKs/MacOSX10.4u.sdk)
+endif (${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
+
+
+set(VIEWER ON CACHE BOOL "Build Second Life viewer.")
+
+
+set(STANDALONE OFF CACHE BOOL "Do not use Linden-supplied prebuilt libraries.")
+
+if (NOT STANDALONE AND EXISTS ${LIBS_PREBUILT_DIR}/include/havok)
+ set(SERVER ON CACHE BOOL "Build Second Life server software.")
+endif (NOT STANDALONE AND EXISTS ${LIBS_PREBUILT_DIR}/include/havok)
+
+if (LINUX AND SERVER AND VIEWER)
+ MESSAGE(FATAL_ERROR "
+The indra source does not currently support building SERVER and VIEWER at the same time.
+Please set one of these values to OFF in your CMake cache file.
+(either by running ccmake or by editing CMakeCache.txt by hand)
+For more information, please see JIRA DEV-14943 - Cmake Linux cannot build both VIEWER and SERVER in one build environment
+ ")
+endif (LINUX AND SERVER AND VIEWER)
+
+source_group("CMake Rules" FILES CMakeLists.txt)
diff --git a/indra/cmake/XmlRpcEpi.cmake b/indra/cmake/XmlRpcEpi.cmake
new file mode 100644
index 0000000000..3fd6f80eb9
--- /dev/null
+++ b/indra/cmake/XmlRpcEpi.cmake
@@ -0,0 +1,15 @@
+# -*- cmake -*-
+
+set(XMLRPCEPI_FIND_QUIETLY ON)
+set(XMLRPCEPI_FIND_REQUIRED ON)
+
+if (STANDALONE)
+ include(FindXmlRpcEpi)
+else (STANDALONE)
+ if (WINDOWS)
+ set(XMLRPCEPI_LIBRARIES xmlrpcepi)
+ else (WINDOWS)
+ set(XMLRPCEPI_LIBRARIES xmlrpc-epi)
+ endif (WINDOWS)
+ set(XMLRPCEPI_INCLUDE_DIRS ${LIBS_PREBUILT_DIR}/include)
+endif (STANDALONE)
diff --git a/indra/cmake/ZLIB.cmake b/indra/cmake/ZLIB.cmake
new file mode 100644
index 0000000000..3740103a72
--- /dev/null
+++ b/indra/cmake/ZLIB.cmake
@@ -0,0 +1,15 @@
+# -*- cmake -*-
+
+set(ZLIB_FIND_QUIETLY ON)
+set(ZLIB_FIND_REQUIRED ON)
+
+if (STANDALONE)
+ include(FindZLIB)
+else (STANDALONE)
+ if (WINDOWS)
+ set(ZLIB_LIBRARIES zlib)
+ else (WINDOWS)
+ set(ZLIB_LIBRARIES z)
+ endif (WINDOWS)
+ set(ZLIB_INCLUDE_DIRS ${LIBS_PREBUILT_DIR}/include)
+endif (STANDALONE)
diff --git a/indra/cmake/cmake_dummy.cpp b/indra/cmake/cmake_dummy.cpp
new file mode 100644
index 0000000000..183bd746d1
--- /dev/null
+++ b/indra/cmake/cmake_dummy.cpp
@@ -0,0 +1,29 @@
+/**
+ * @file cmake_dummy.cpp
+ *
+ * $LicenseInfo:firstyear=2008&license=viewergpl$
+ *
+ * Copyright (c) 2008, Linden Research, Inc.
+ *
+ * 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://secondlife.com/developers/opensource/gplv2
+ *
+ * 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://secondlife.com/developers/opensource/flossexception
+ *
+ * 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.
+ *
+ * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
+ * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
+ * COMPLETENESS OR PERFORMANCE.
+ * $/LicenseInfo$
+ */