diff options
Diffstat (limited to 'indra/cmake')
| -rw-r--r-- | indra/cmake/BerkeleyDB.cmake | 7 | ||||
| -rw-r--r-- | indra/cmake/CMakeLists.txt | 1 | ||||
| -rw-r--r-- | indra/cmake/FindJsonCpp.cmake | 5 | ||||
| -rw-r--r-- | indra/cmake/FindLLQtWebkit.cmake | 62 | ||||
| -rw-r--r-- | indra/cmake/FindNDOF.cmake | 39 | ||||
| -rw-r--r-- | indra/cmake/FindTut.cmake | 7 | ||||
| -rw-r--r-- | indra/cmake/FindZLIB.cmake | 46 | ||||
| -rw-r--r-- | indra/cmake/LLAddBuildTest.cmake | 3 | ||||
| -rw-r--r-- | indra/cmake/LLCommon.cmake | 9 | ||||
| -rw-r--r-- | indra/cmake/LLPlugin.cmake | 8 | ||||
| -rw-r--r-- | indra/cmake/NDOF.cmake | 34 | ||||
| -rw-r--r-- | indra/cmake/Tut.cmake | 1 | ||||
| -rw-r--r-- | indra/cmake/WebKitLibPlugin.cmake | 25 | 
13 files changed, 230 insertions, 17 deletions
| diff --git a/indra/cmake/BerkeleyDB.cmake b/indra/cmake/BerkeleyDB.cmake index d98e79179d..e3ca0fd77d 100644 --- a/indra/cmake/BerkeleyDB.cmake +++ b/indra/cmake/BerkeleyDB.cmake @@ -6,6 +6,11 @@ set(DB_FIND_REQUIRED ON)  if (STANDALONE)    include(FindBerkeleyDB)  else (STANDALONE) -  set(DB_LIBRARIES db-4.2) +  if (LINUX) +    # Need to add dependency pthread explicitely to support ld.gold. +    set(DB_LIBRARIES db-4.2 pthread) +  else (LINUX) +    set(DB_LIBRARIES db-4.2) +  endif (LINUX)    set(DB_INCLUDE_DIRS ${LIBS_PREBUILT_DIR}/include)  endif (STANDALONE) diff --git a/indra/cmake/CMakeLists.txt b/indra/cmake/CMakeLists.txt index 6470836286..3f421b270b 100644 --- a/indra/cmake/CMakeLists.txt +++ b/indra/cmake/CMakeLists.txt @@ -33,6 +33,7 @@ set(cmake_SOURCE_FILES      FindMySQL.cmake      FindOpenJPEG.cmake      FindXmlRpcEpi.cmake +    FindZLIB.cmake      FMOD.cmake      FreeType.cmake      GStreamer010Plugin.cmake diff --git a/indra/cmake/FindJsonCpp.cmake b/indra/cmake/FindJsonCpp.cmake index 9d16f2aaab..cf84b309c1 100644 --- a/indra/cmake/FindJsonCpp.cmake +++ b/indra/cmake/FindJsonCpp.cmake @@ -21,7 +21,12 @@ EXEC_PROGRAM(${CMAKE_CXX_COMPILER}              OUTPUT_STRIP_TRAILING_WHITESPACE              ) +# Try to find a library that was compiled with the same compiler version as we currently use.  SET(JSONCPP_NAMES ${JSONCPP_NAMES} libjson_linux-gcc-${_gcc_COMPILER_VERSION}_libmt.so) +IF (STANDALONE) +	# On standalone, assume that the system installed library was compiled with the used compiler. +	SET(JSONCPP_NAMES ${JSONCPP_NAMES} libjson.so) +ENDIF (STANDALONE)  FIND_LIBRARY(JSONCPP_LIBRARY    NAMES ${JSONCPP_NAMES}    PATHS /usr/lib /usr/local/lib diff --git a/indra/cmake/FindLLQtWebkit.cmake b/indra/cmake/FindLLQtWebkit.cmake new file mode 100644 index 0000000000..c747ec32a2 --- /dev/null +++ b/indra/cmake/FindLLQtWebkit.cmake @@ -0,0 +1,62 @@ +# -*- cmake -*- + +# - Find llqtwebkit +# Find the llqtwebkit includes and library +# This module defines +#  LLQTWEBKIT_INCLUDE_DIR, where to find llqtwebkit.h, etc. +#  LLQTWEBKIT_LIBRARY, the llqtwebkit library with full path. +#  LLQTWEBKIT_FOUND, If false, do not try to use llqtwebkit. +# also defined, but not for general use are +#  LLQTWEBKIT_LIBRARIES, the libraries needed to use llqtwebkit. +#  LLQTWEBKIT_LIBRARY_DIRS, where to find the llqtwebkit library. +#  LLQTWEBKIT_DEFINITIONS - You should add_definitions(${LLQTWEBKIT_DEFINITIONS}) +#      before compiling code that includes llqtwebkit library files. + +# Try to use pkg-config first. +# This allows to have two different libllqtwebkit packages installed: +# one for viewer 2.x and one for viewer 1.x. +include(FindPkgConfig) +if (PKG_CONFIG_FOUND) +    if (LLQtWebkit_FIND_REQUIRED AND LLQtWebkit_FIND_VERSION) +        set(_PACKAGE_ARGS libllqtwebkit>=${LLQtWebkit_FIND_VERSION} REQUIRED) +    else (LLQtWebkit_FIND_REQUIRED AND LLQtWebkit_FIND_VERSION) +        set(_PACKAGE_ARGS libllqtwebkit) +    endif (LLQtWebkit_FIND_REQUIRED AND LLQtWebkit_FIND_VERSION) +    if (NOT "${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION}" VERSION_LESS "2.8") +      # As virtually nobody will have a pkg-config file for this, do this check always quiet. +      # Unfortunately cmake 2.8 or higher is required for pkg_check_modules to have a 'QUIET'. +      set(_PACKAGE_ARGS ${_PACKAGE_ARGS} QUIET) +    endif () +    pkg_check_modules(LLQTWEBKIT ${_PACKAGE_ARGS}) +endif (PKG_CONFIG_FOUND) +set(LLQTWEBKIT_DEFINITIONS ${LLQTWEBKIT_CFLAGS_OTHER}) + +find_path(LLQTWEBKIT_INCLUDE_DIR llqtwebkit.h NO_SYSTEM_ENVIRONMENT_PATH HINTS ${LLQTWEBKIT_INCLUDE_DIRS}) + +find_library(LLQTWEBKIT_LIBRARY NAMES llqtwebkit NO_SYSTEM_ENVIRONMENT_PATH HINTS ${LLQTWEBKIT_LIBRARY_DIRS}) + +if (NOT PKG_CONFIG_FOUND OR NOT LLQTWEBKIT_FOUND)	# If pkg-config couldn't find it, pretend we don't have pkg-config. +   set(LLQTWEBKIT_LIBRARIES llqtwebkit) +   get_filename_component(LLQTWEBKIT_LIBRARY_DIRS ${LLQTWEBKIT_LIBRARY} PATH) +endif (NOT PKG_CONFIG_FOUND OR NOT LLQTWEBKIT_FOUND) + +# Handle the QUIETLY and REQUIRED arguments and set LLQTWEBKIT_FOUND +# to TRUE if all listed variables are TRUE. +include(FindPackageHandleStandardArgs) +find_package_handle_standard_args( +  LLQTWEBKIT +  DEFAULT_MSG +  LLQTWEBKIT_LIBRARY +  LLQTWEBKIT_INCLUDE_DIR +  LLQTWEBKIT_LIBRARIES +  LLQTWEBKIT_LIBRARY_DIRS +  ) + +mark_as_advanced( +  LLQTWEBKIT_LIBRARY +  LLQTWEBKIT_INCLUDE_DIR +  LLQTWEBKIT_LIBRARIES +  LLQTWEBKIT_LIBRARY_DIRS +  LLQTWEBKIT_DEFINITIONS +  ) + diff --git a/indra/cmake/FindNDOF.cmake b/indra/cmake/FindNDOF.cmake new file mode 100644 index 0000000000..6dcf590a53 --- /dev/null +++ b/indra/cmake/FindNDOF.cmake @@ -0,0 +1,39 @@ +# -*- cmake -*- + +# - Find NDOF +# Find the NDOF includes and library +# This module defines +#  NDOF_INCLUDE_DIR, where to find ndofdev_external.h, etc. +#  NDOF_LIBRARY, the library needed to use NDOF. +#  NDOF_FOUND, If false, do not try to use NDOF. + +find_path(NDOF_INCLUDE_DIR ndofdev_external.h +  PATH_SUFFIXES ndofdev +  ) + +set(NDOF_NAMES ${NDOF_NAMES} ndofdev libndofdev) +find_library(NDOF_LIBRARY +  NAMES ${NDOF_NAMES} +  ) + +if (NDOF_LIBRARY AND NDOF_INCLUDE_DIR) +  set(NDOF_FOUND "YES") +else (NDOF_LIBRARY AND NDOF_INCLUDE_DIR) +  set(NDOF_FOUND "NO") +endif (NDOF_LIBRARY AND NDOF_INCLUDE_DIR) + + +if (NDOF_FOUND) +  if (NOT NDOF_FIND_QUIETLY) +    message(STATUS "Found NDOF: Library in '${NDOF_LIBRARY}' and header in '${NDOF_INCLUDE_DIR}' ") +  endif (NOT NDOF_FIND_QUIETLY) +else (NDOF_FOUND) +  if (NDOF_FIND_REQUIRED) +    message(FATAL_ERROR " * * *\nCould not find NDOF library!\nIf you don't need Space Navigator Joystick support you can skip this test by configuring with -DNDOF:BOOL=OFF\n * * *") +  endif (NDOF_FIND_REQUIRED) +endif (NDOF_FOUND) + +mark_as_advanced( +  NDOF_LIBRARY +  NDOF_INCLUDE_DIR +  ) diff --git a/indra/cmake/FindTut.cmake b/indra/cmake/FindTut.cmake index b5d58f6396..c2a9f43053 100644 --- a/indra/cmake/FindTut.cmake +++ b/indra/cmake/FindTut.cmake @@ -3,12 +3,11 @@  # - Find Tut  # Find the Tut unit test framework includes and library  # This module defines -#  TUT_INCLUDE_DIR, where to find tut.h, etc. +#  TUT_INCLUDE_DIR, where to find tut/tut.hpp.  #  TUT_FOUND, If false, do not try to use Tut. -find_path(TUT_INCLUDE_DIR tut.h -    /usr/local/include/ -    /usr/include +find_path(TUT_INCLUDE_DIR tut/tut.hpp +    NO_SYSTEM_ENVIRONMENT_PATH      )  if (TUT_INCLUDE_DIR) diff --git a/indra/cmake/FindZLIB.cmake b/indra/cmake/FindZLIB.cmake new file mode 100644 index 0000000000..6d630f1ba9 --- /dev/null +++ b/indra/cmake/FindZLIB.cmake @@ -0,0 +1,46 @@ +# -*- cmake -*- + +# - Find zlib +# Find the ZLIB includes and library +# This module defines +#  ZLIB_INCLUDE_DIRS, where to find zlib.h, etc. +#  ZLIB_LIBRARIES, the libraries needed to use zlib. +#  ZLIB_FOUND, If false, do not try to use zlib. +# +# This FindZLIB is about 43 times as fast the one provided with cmake (2.8.x), +# because it doesn't look up the version of zlib, resulting in a dramatic +# speed up for configure (from 4 minutes 22 seconds to 6 seconds). +# +# Note: Since this file is only used for standalone, the windows +# specific parts were left out. + +FIND_PATH(ZLIB_INCLUDE_DIR zlib.h +  NO_SYSTEM_ENVIRONMENT_PATH +  ) + +FIND_LIBRARY(ZLIB_LIBRARY z) + +if (ZLIB_LIBRARY AND ZLIB_INCLUDE_DIR) +  SET(ZLIB_INCLUDE_DIRS ${ZLIB_INCLUDE_DIR}) +  SET(ZLIB_LIBRARIES ${ZLIB_LIBRARY}) +  SET(ZLIB_FOUND "YES") +else (ZLIB_LIBRARY AND ZLIB_INCLUDE_DIR) +  SET(ZLIB_FOUND "NO") +endif (ZLIB_LIBRARY AND ZLIB_INCLUDE_DIR) + +if (ZLIB_FOUND) +  if (NOT ZLIB_FIND_QUIETLY) +	message(STATUS "Found ZLIB: ${ZLIB_LIBRARIES}") +	SET(ZLIB_FIND_QUIETLY TRUE) +  endif (NOT ZLIB_FIND_QUIETLY) +else (ZLIB_FOUND) +  if (ZLIB_FIND_REQUIRED) +	message(FATAL_ERROR "Could not find ZLIB library") +  endif (ZLIB_FIND_REQUIRED) +endif (ZLIB_FOUND) + +mark_as_advanced( +  ZLIB_LIBRARY +  ZLIB_INCLUDE_DIR +  ) + diff --git a/indra/cmake/LLAddBuildTest.cmake b/indra/cmake/LLAddBuildTest.cmake index 29e2492551..62b764bb30 100644 --- a/indra/cmake/LLAddBuildTest.cmake +++ b/indra/cmake/LLAddBuildTest.cmake @@ -205,6 +205,9 @@ FUNCTION(LL_ADD_INTEGRATION_TEST    endif(TEST_DEBUG)
    ADD_EXECUTABLE(INTEGRATION_TEST_${testname} ${source_files})
    SET_TARGET_PROPERTIES(INTEGRATION_TEST_${testname} PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${EXE_STAGING_DIR}")
 +  if(STANDALONE)
 +    SET_TARGET_PROPERTIES(INTEGRATION_TEST_${testname} PROPERTIES COMPILE_FLAGS -I"${TUT_INCLUDE_DIR}")
 +  endif(STANDALONE)
    # Add link deps to the executable
    if(TEST_DEBUG)
 diff --git a/indra/cmake/LLCommon.cmake b/indra/cmake/LLCommon.cmake index d1ab264a41..17e211cb99 100644 --- a/indra/cmake/LLCommon.cmake +++ b/indra/cmake/LLCommon.cmake @@ -13,7 +13,14 @@ set(LLCOMMON_INCLUDE_DIRS      ${Boost_INCLUDE_DIRS}      ) -set(LLCOMMON_LIBRARIES llcommon) +if (LINUX) +    # In order to support using ld.gold on linux, we need to explicitely +    # specify all libraries that llcommon uses. +    # llcommon uses `clock_gettime' which is provided by librt on linux. +    set(LLCOMMON_LIBRARIES llcommon rt) +else (LINUX) +    set(LLCOMMON_LIBRARIES llcommon) +endif (LINUX)  add_definitions(${TCMALLOC_FLAG}) diff --git a/indra/cmake/LLPlugin.cmake b/indra/cmake/LLPlugin.cmake index 9722f16c3c..7ee404b9bd 100644 --- a/indra/cmake/LLPlugin.cmake +++ b/indra/cmake/LLPlugin.cmake @@ -5,4 +5,10 @@ set(LLPLUGIN_INCLUDE_DIRS      ${LIBS_OPEN_DIR}/llplugin      ) -set(LLPLUGIN_LIBRARIES llplugin) +if (LINUX) +    # In order to support using ld.gold on linux, we need to explicitely +    # specify all libraries that llplugin uses. +	set(LLPLUGIN_LIBRARIES llplugin pthread) +else (LINUX) +	set(LLPLUGIN_LIBRARIES llplugin) +endif (LINUX) diff --git a/indra/cmake/NDOF.cmake b/indra/cmake/NDOF.cmake index dad74e99b1..7a463d1190 100644 --- a/indra/cmake/NDOF.cmake +++ b/indra/cmake/NDOF.cmake @@ -1,14 +1,32 @@  # -*- cmake -*-  include(Prebuilt) -use_prebuilt_binary(ndofdev) +set(NDOF ON CACHE BOOL "Use NDOF space navigator joystick library.") -if (WINDOWS OR DARWIN OR LINUX) +if (NDOF) +  if (STANDALONE) +	set(NDOF_FIND_REQUIRED ON) +	include(FindNDOF) +  else (STANDALONE) +	use_prebuilt_binary(ndofdev) + +	if (WINDOWS) +	  set(NDOF_LIBRARY libndofdev) +	elseif (DARWIN OR LINUX) +	  set(NDOF_LIBRARY ndofdev) +	endif (WINDOWS) + +	set(NDOF_INCLUDE_DIR ${ARCH_PREBUILT_DIRS}/include/ndofdev) +	set(NDOF_FOUND 1) +  endif (STANDALONE) +endif (NDOF) + +if (NDOF_FOUND)    add_definitions(-DLIB_NDOF=1) -endif (WINDOWS OR DARWIN OR LINUX) +  include_directories(${NDOF_INCLUDE_DIR}) +else (NDOF_FOUND) +  message(STATUS "Building without N-DoF joystick support") +  set(NDOF_INCLUDE_DIR "") +  set(NDOF_LIBRARY "") +endif (NDOF_FOUND) -if (WINDOWS) -  set(NDOF_LIBRARY libndofdev) -elseif (DARWIN OR LINUX) -  set(NDOF_LIBRARY ndofdev) -endif (WINDOWS) diff --git a/indra/cmake/Tut.cmake b/indra/cmake/Tut.cmake index 784560471d..738c08c42f 100644 --- a/indra/cmake/Tut.cmake +++ b/indra/cmake/Tut.cmake @@ -6,7 +6,6 @@ set(TUT_FIND_QUIETLY TRUE)  if (STANDALONE)    include(FindTut) -  include_directories(${TUT_INCLUDE_DIR})  else (STANDALONE)    use_prebuilt_binary(tut)  endif (STANDALONE) diff --git a/indra/cmake/WebKitLibPlugin.cmake b/indra/cmake/WebKitLibPlugin.cmake index 12ba1b1b35..1f5b0f5d84 100644 --- a/indra/cmake/WebKitLibPlugin.cmake +++ b/indra/cmake/WebKitLibPlugin.cmake @@ -3,6 +3,29 @@ include(Linking)  include(Prebuilt)  if (STANDALONE) +  # The minimal version, 4.4.3, is rather arbitrary: it's the version in Debian/Lenny. +  find_package(Qt4 4.4.3 COMPONENTS QtCore QtGui QtNetwork QtOpenGL QtWebKit REQUIRED) +  include(${QT_USE_FILE}) +  set(QTDIR $ENV{QTDIR}) +  if (QTDIR AND NOT "${QT_BINARY_DIR}" STREQUAL "${QTDIR}/bin") +	message(FATAL_ERROR "\"${QT_BINARY_DIR}\" is unequal \"${QTDIR}/bin\"; " +	  "Qt is found by looking for qmake in your PATH. " +	  "Please set your PATH such that 'qmake' is found in \$QTDIR/bin, " +	  "or unset QTDIR if the found Qt is correct.") +	endif (QTDIR AND NOT "${QT_BINARY_DIR}" STREQUAL "${QTDIR}/bin") +  find_package(LLQtWebkit REQUIRED QUIET) +  # Add the plugins. +  set(QT_PLUGIN_LIBRARIES) +  foreach(qlibname qgif qjpeg) +	find_library(QT_PLUGIN_${qlibname} ${qlibname} PATHS ${QT_PLUGINS_DIR}/imageformats NO_DEFAULT_PATH) +	if (QT_PLUGIN_${qlibname}) +	  list(APPEND QT_PLUGIN_LIBRARIES ${QT_PLUGIN_${qlibname}}) +	else (QT_PLUGIN_${qtlibname}) +	  message(FATAL_ERROR "Could not find the Qt plugin ${qlibname} in \"${QT_PLUGINS_DIR}/imageformats\"!") +	endif (QT_PLUGIN_${qlibname}) +  endforeach(qlibname) +  # qjpeg depends on libjpeg +  list(APPEND QT_PLUGIN_LIBRARIES jpeg)    set(WEBKITLIBPLUGIN OFF CACHE BOOL        "WEBKITLIBPLUGIN support for the llplugin/llmedia test apps.")  else (STANDALONE) @@ -35,7 +58,7 @@ elseif (DARWIN)        )  elseif (LINUX)    if (STANDALONE)  -    set(WEBKIT_PLUGIN_LIBRARIES llqtwebkit) +    set(WEBKIT_PLUGIN_LIBRARIES ${LLQTWEBKIT_LIBRARY} ${QT_LIBRARIES} ${QT_PLUGIN_LIBRARIES})    else (STANDALONE)      set(WEBKIT_PLUGIN_LIBRARIES          llqtwebkit | 
