summaryrefslogtreecommitdiff
path: root/indra/cmake/Variables.cmake
diff options
context:
space:
mode:
Diffstat (limited to 'indra/cmake/Variables.cmake')
-rw-r--r--indra/cmake/Variables.cmake146
1 files changed, 146 insertions, 0 deletions
diff --git a/indra/cmake/Variables.cmake b/indra/cmake/Variables.cmake
new file mode 100644
index 0000000000..230e228c62
--- /dev/null
+++ b/indra/cmake/Variables.cmake
@@ -0,0 +1,146 @@
+# -*- 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(INTEGRATION_TESTS_PREFIX)
+set(LL_TESTS ON CACHE BOOL "Build and run unit and integration tests (disable for build timing runs to reduce variation")
+
+set(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 (EXISTS ${CMAKE_SOURCE_DIR}/Server.cmake)
+ # We use this as a marker that you can try to use the proprietary libraries.
+ set(INSTALL_PROPRIETARY ON CACHE BOOL "Install proprietary binaries")
+endif (EXISTS ${CMAKE_SOURCE_DIR}/Server.cmake)
+
+
+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)
+ set(WORD_SIZE 32)
+endif (${CMAKE_SYSTEM_NAME} MATCHES "Windows")
+
+if (${CMAKE_SYSTEM_NAME} MATCHES "Linux")
+ set(LINUX ON BOOl FORCE)
+
+ # If someone has specified a word size, use that to determine the
+ # architecture. Otherwise, let the compiler specify the word size.
+ # Using uname will break under chroots and other cross arch compiles. RC
+ if (WORD_SIZE EQUAL 32)
+ set(ARCH i686)
+ elseif (WORD_SIZE EQUAL 64)
+ set(ARCH x86_64)
+ else (WORD_SIZE EQUAL 32)
+ if(CMAKE_SIZEOF_VOID_P MATCHES 4)
+ set(ARCH i686)
+ set(WORD_SIZE 32)
+ else(CMAKE_SIZEOF_VOID_P MATCHES 4)
+ set(ARCH x86_64)
+ set(WORD_SIZE 64)
+ endif(CMAKE_SIZEOF_VOID_P MATCHES 4)
+ endif (WORD_SIZE EQUAL 32)
+
+ set(LL_ARCH ${ARCH}_linux)
+ set(LL_ARCH_DIR ${ARCH}-linux)
+endif (${CMAKE_SYSTEM_NAME} MATCHES "Linux")
+
+if (${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
+ set(DARWIN 1)
+
+ # 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'
+ # 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")
+ if (${CMAKE_SYSTEM_PROCESSOR} MATCHES "ppc")
+ set(ARCH ppc)
+ else (${CMAKE_SYSTEM_PROCESSOR} MATCHES "ppc")
+ 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)
+endif (${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
+
+# Default deploy grid
+set(GRID agni CACHE STRING "Target Grid")
+
+set(VIEWER ON CACHE BOOL "Build Second Life viewer.")
+set(VIEWER_CHANNEL "LindenDeveloper" CACHE STRING "Viewer Channel Name")
+set(VIEWER_LOGIN_CHANNEL ${VIEWER_CHANNEL} CACHE STRING "Fake login channel for A/B Testing")
+
+set(STANDALONE OFF CACHE BOOL "Do not use Linden-supplied prebuilt libraries.")
+
+if (NOT STANDALONE AND EXISTS ${CMAKE_SOURCE_DIR}/llphysics)
+ set(SERVER ON CACHE BOOL "Build Second Life server software.")
+endif (NOT STANDALONE AND EXISTS ${CMAKE_SOURCE_DIR}/llphysics)
+
+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)
+
+
+set(USE_PRECOMPILED_HEADERS ON CACHE BOOL "Enable use of precompiled header directives where supported.")
+
+source_group("CMake Rules" FILES CMakeLists.txt)