aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/linden/indra/cmake/00-Common.cmake
diff options
context:
space:
mode:
authorMcCabe Maxsted2011-07-13 19:22:52 -0700
committerMcCabe Maxsted2011-09-08 16:33:50 -0700
commitdffdf95bbfa5b071063a43281a330e741cf60e8c (patch)
treeb173172c0b9844aac9cb63f2804e1f1729bc86f5 /linden/indra/cmake/00-Common.cmake
parentAdded basic copying of symbol files when the windows package project is run. ... (diff)
downloadmeta-impy-dffdf95bbfa5b071063a43281a330e741cf60e8c.zip
meta-impy-dffdf95bbfa5b071063a43281a330e741cf60e8c.tar.gz
meta-impy-dffdf95bbfa5b071063a43281a330e741cf60e8c.tar.bz2
meta-impy-dffdf95bbfa5b071063a43281a330e741cf60e8c.tar.xz
Ported SSE2 build target from Singularity, patch by Shyotl. Note that the package project still currently only supports 'Release'
Diffstat (limited to 'linden/indra/cmake/00-Common.cmake')
-rw-r--r--linden/indra/cmake/00-Common.cmake41
1 files changed, 35 insertions, 6 deletions
diff --git a/linden/indra/cmake/00-Common.cmake b/linden/indra/cmake/00-Common.cmake
index 1a24a41..7d50f25 100644
--- a/linden/indra/cmake/00-Common.cmake
+++ b/linden/indra/cmake/00-Common.cmake
@@ -1,6 +1,6 @@
1# -*- cmake -*- 1# -*- cmake -*-
2# 2#
3# Compilation options shared by all Second Life components. 3# Compilation options shared by all viewer components.
4 4
5include(Variables) 5include(Variables)
6 6
@@ -10,6 +10,8 @@ include(Variables)
10set(CMAKE_CXX_FLAGS_DEBUG "-D_DEBUG -DLL_DEBUG=1") 10set(CMAKE_CXX_FLAGS_DEBUG "-D_DEBUG -DLL_DEBUG=1")
11set(CMAKE_CXX_FLAGS_RELEASE 11set(CMAKE_CXX_FLAGS_RELEASE
12 "-DLL_RELEASE=1 -DLL_RELEASE_FOR_DOWNLOAD=1 -D_SECURE_SCL=0 -DLL_SEND_CRASH_REPORTS=1 -DNDEBUG") 12 "-DLL_RELEASE=1 -DLL_RELEASE_FOR_DOWNLOAD=1 -D_SECURE_SCL=0 -DLL_SEND_CRASH_REPORTS=1 -DNDEBUG")
13set(CMAKE_CXX_FLAGS_RELEASESSE2
14 "-DLL_RELEASE=1 -DLL_RELEASE_FOR_DOWNLOAD=1 -D_SECURE_SCL=0 -DLL_SEND_CRASH_REPORTS=1 -DNDEBUG")
13set(CMAKE_CXX_FLAGS_RELWITHDEBINFO 15set(CMAKE_CXX_FLAGS_RELWITHDEBINFO
14 "-DLL_RELEASE=1 -D_SECURE_SCL=0 -DLL_SEND_CRASH_REPORTS=0 -DNDEBUG -DLL_RELEASE_WITH_DEBUG_INFO=1") 16 "-DLL_RELEASE=1 -D_SECURE_SCL=0 -DLL_SEND_CRASH_REPORTS=0 -DNDEBUG -DLL_RELEASE_WITH_DEBUG_INFO=1")
15 17
@@ -17,7 +19,7 @@ set(CMAKE_CXX_FLAGS_RELWITHDEBINFO
17# Available build types / configurations. 19# Available build types / configurations.
18# Add our current build type first, to coax Xcode into selecting it by default. 20# Add our current build type first, to coax Xcode into selecting it by default.
19 21
20set(TYPES ${CMAKE_BUILD_TYPE} RelWithDebInfo Release Debug) 22set(TYPES ${CMAKE_BUILD_TYPE} RelWithDebInfo Release ReleaseSSE2 Debug)
21list(REMOVE_DUPLICATES TYPES) 23list(REMOVE_DUPLICATES TYPES)
22set(CMAKE_CONFIGURATION_TYPES ${TYPES} CACHE STRING "Supported build types." FORCE) 24set(CMAKE_CONFIGURATION_TYPES ${TYPES} CACHE STRING "Supported build types." FORCE)
23unset(TYPES) 25unset(TYPES)
@@ -44,12 +46,18 @@ if (WINDOWS)
44 CACHE STRING "C++ compiler release-with-debug options" FORCE) 46 CACHE STRING "C++ compiler release-with-debug options" FORCE)
45 if (MSVC80) 47 if (MSVC80)
46 set(CMAKE_CXX_FLAGS_RELEASE 48 set(CMAKE_CXX_FLAGS_RELEASE
47 "${CMAKE_CXX_FLAGS_RELEASE} /O2 /Ob2 /Oi /Ot /GT /Zi /MD" 49 "${CMAKE_CXX_FLAGS_RELEASE} /O2 /Ob2 /Oi /Ot /GT /Zi /MD"
48 CACHE STRING "C++ compiler release options" FORCE) 50 CACHE STRING "C++ compiler release options" FORCE)
51 set(CMAKE_CXX_FLAGS_RELEASESSE2
52 "${CMAKE_CXX_FLAGS_RELEASESSE2} /O2 /Ob2 /Oi /Ot /GT /Zi /MD /arch:SSE2"
53 CACHE STRING "C++ compiler release (SSE2 optimized) options" FORCE)
49 else (MSVC80) 54 else (MSVC80)
50 set(CMAKE_CXX_FLAGS_RELEASE 55 set(CMAKE_CXX_FLAGS_RELEASE
51 "${CMAKE_CXX_FLAGS_RELEASE} ${LL_CXX_FLAGS} /O2 /Zi /MD" 56 "${CMAKE_CXX_FLAGS_RELEASE} ${LL_CXX_FLAGS} /O2 /Zi /MD"
52 CACHE STRING "C++ compiler release options" FORCE) 57 CACHE STRING "C++ compiler release options" FORCE)
58 set(CMAKE_CXX_FLAGS_RELEASESSE2
59 "${CMAKE_CXX_FLAGS_RELEASESSE2} ${LL_CXX_FLAGS} /O2 /Zi /MD /arch:SSE2"
60 CACHE STRING "C++ compiler release (SSE2 optimized) options" FORCE)
53 endif (MSVC80) 61 endif (MSVC80)
54 62
55 set(CMAKE_CXX_STANDARD_LIBRARIES "") 63 set(CMAKE_CXX_STANDARD_LIBRARIES "")
@@ -73,6 +81,9 @@ if (WINDOWS)
73 set(CMAKE_CXX_FLAGS_RELEASE 81 set(CMAKE_CXX_FLAGS_RELEASE
74 "${CMAKE_CXX_FLAGS_RELEASE} -D_SECURE_STL=0 -D_HAS_ITERATOR_DEBUGGING=0" 82 "${CMAKE_CXX_FLAGS_RELEASE} -D_SECURE_STL=0 -D_HAS_ITERATOR_DEBUGGING=0"
75 CACHE STRING "C++ compiler release options" FORCE) 83 CACHE STRING "C++ compiler release options" FORCE)
84 set(CMAKE_CXX_FLAGS_RELEASESSE2
85 "${CMAKE_CXX_FLAGS_RELEASESSE2} -D_SECURE_STL=0 -D_HAS_ITERATOR_DEBUGGING=0"
86 CACHE STRING "C++ compiler release (SSE2 optimized) options" FORCE)
76 87
77 add_definitions( 88 add_definitions(
78 /Zc:wchar_t- 89 /Zc:wchar_t-
@@ -186,10 +197,12 @@ if (LINUX)
186 add_definitions(-DLINUX64=1 -pipe) 197 add_definitions(-DLINUX64=1 -pipe)
187 set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -fomit-frame-pointer -mmmx -msse -mfpmath=sse -msse2 -ffast-math -ftree-vectorize -fweb -fexpensive-optimizations -frename-registers") 198 set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -fomit-frame-pointer -mmmx -msse -mfpmath=sse -msse2 -ffast-math -ftree-vectorize -fweb -fexpensive-optimizations -frename-registers")
188 endif (${ARCH} STREQUAL "x86_64") 199 endif (${ARCH} STREQUAL "x86_64")
200 set(CMAKE_CXX_FLAGS_RELEASESSE2 "${CMAKE_CXX_FLAGS_RELEASESSE2} -mfpmath=sse2 -msse2")
189 endif (VIEWER) 201 endif (VIEWER)
190 202
191 set(CMAKE_CXX_FLAGS_DEBUG "-fno-inline ${CMAKE_CXX_FLAGS_DEBUG}") 203 set(CMAKE_CXX_FLAGS_DEBUG "-fno-inline ${CMAKE_CXX_FLAGS_DEBUG}")
192 set(CMAKE_CXX_FLAGS_RELEASE "-O2 ${CMAKE_CXX_FLAGS_RELEASE}") 204 set(CMAKE_CXX_FLAGS_RELEASE "-O2 ${CMAKE_CXX_FLAGS_RELEASE}")
205 set(CMAKE_CXX_FLAGS_RELEASESSE2 "-O2 ${CMAKE_CXX_FLAGS_RELEASESSE2}")
193endif (LINUX) 206endif (LINUX)
194 207
195 208
@@ -203,6 +216,8 @@ if (DARWIN)
203 # NOTE: it's critical to have both CXX_FLAGS and C_FLAGS covered. 216 # NOTE: it's critical to have both CXX_FLAGS and C_FLAGS covered.
204 set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "-O0 ${CMAKE_CXX_FLAGS_RELWITHDEBINFO}") 217 set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "-O0 ${CMAKE_CXX_FLAGS_RELWITHDEBINFO}")
205 set(CMAKE_C_FLAGS_RELWITHDEBINFO "-O0 ${CMAKE_C_FLAGS_RELWITHDEBINFO}") 218 set(CMAKE_C_FLAGS_RELWITHDEBINFO "-O0 ${CMAKE_C_FLAGS_RELWITHDEBINFO}")
219 set(CMAKE_CXX_FLAGS_RELEASESSE2 "-msse2 -mfpmath=sse ${CMAKE_CXX_FLAGS_RELEASESSE2}")
220 set(CMAKE_C_FLAGS_RELEASESSE2 "-msse2 -mfpmath=sse ${CMAKE_C_FLAGS_RELEASESSE2}")
206endif (DARWIN) 221endif (DARWIN)
207 222
208 223
@@ -255,3 +270,17 @@ endif (STANDALONE)
255if(SERVER) 270if(SERVER)
256 include_directories(${LIBS_PREBUILT_DIR}/include/havok) 271 include_directories(${LIBS_PREBUILT_DIR}/include/havok)
257endif(SERVER) 272endif(SERVER)
273
274SET(CMAKE_EXE_LINKER_FLAGS_RELEASESSE2
275 "${CMAKE_EXE_LINKER_FLAGS_RELEASE}" CACHE STRING
276 "Flags used for linking binaries under SSE2 optimized build."
277 FORCE )
278SET(CMAKE_SHARED_LINKER_FLAGS_RELEASESSE2
279 "${CMAKE_SHARED_LINKER_FLAGS_RELEASE}" CACHE STRING
280 "Flags used by the shared libraries linker under SSE2 optimized build."
281 FORCE )
282MARK_AS_ADVANCED(
283 CMAKE_CXX_FLAGS_RELEASESSE2
284 CMAKE_C_FLAGS_RELEASESSE2
285 CMAKE_EXE_LINKER_FLAGS_RELEASESSE2
286 CMAKE_SHARED_LINKER_FLAGS_RELEASESSE2 )