diff options
author | McCabe Maxsted | 2011-07-13 19:22:52 -0700 |
---|---|---|
committer | McCabe Maxsted | 2011-09-08 16:33:50 -0700 |
commit | dffdf95bbfa5b071063a43281a330e741cf60e8c (patch) | |
tree | b173172c0b9844aac9cb63f2804e1f1729bc86f5 /linden/indra/cmake/00-Common.cmake | |
parent | Added basic copying of symbol files when the windows package project is run. ... (diff) | |
download | meta-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.cmake | 41 |
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 | ||
5 | include(Variables) | 5 | include(Variables) |
6 | 6 | ||
@@ -10,6 +10,8 @@ include(Variables) | |||
10 | set(CMAKE_CXX_FLAGS_DEBUG "-D_DEBUG -DLL_DEBUG=1") | 10 | set(CMAKE_CXX_FLAGS_DEBUG "-D_DEBUG -DLL_DEBUG=1") |
11 | set(CMAKE_CXX_FLAGS_RELEASE | 11 | set(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") |
13 | set(CMAKE_CXX_FLAGS_RELEASESSE2 | ||
14 | "-DLL_RELEASE=1 -DLL_RELEASE_FOR_DOWNLOAD=1 -D_SECURE_SCL=0 -DLL_SEND_CRASH_REPORTS=1 -DNDEBUG") | ||
13 | set(CMAKE_CXX_FLAGS_RELWITHDEBINFO | 15 | set(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 | ||
20 | set(TYPES ${CMAKE_BUILD_TYPE} RelWithDebInfo Release Debug) | 22 | set(TYPES ${CMAKE_BUILD_TYPE} RelWithDebInfo Release ReleaseSSE2 Debug) |
21 | list(REMOVE_DUPLICATES TYPES) | 23 | list(REMOVE_DUPLICATES TYPES) |
22 | set(CMAKE_CONFIGURATION_TYPES ${TYPES} CACHE STRING "Supported build types." FORCE) | 24 | set(CMAKE_CONFIGURATION_TYPES ${TYPES} CACHE STRING "Supported build types." FORCE) |
23 | unset(TYPES) | 25 | unset(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}") | ||
193 | endif (LINUX) | 206 | endif (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}") | ||
206 | endif (DARWIN) | 221 | endif (DARWIN) |
207 | 222 | ||
208 | 223 | ||
@@ -255,3 +270,17 @@ endif (STANDALONE) | |||
255 | if(SERVER) | 270 | if(SERVER) |
256 | include_directories(${LIBS_PREBUILT_DIR}/include/havok) | 271 | include_directories(${LIBS_PREBUILT_DIR}/include/havok) |
257 | endif(SERVER) | 272 | endif(SERVER) |
273 | |||
274 | SET(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 ) | ||
278 | SET(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 ) | ||
282 | MARK_AS_ADVANCED( | ||
283 | CMAKE_CXX_FLAGS_RELEASESSE2 | ||
284 | CMAKE_C_FLAGS_RELEASESSE2 | ||
285 | CMAKE_EXE_LINKER_FLAGS_RELEASESSE2 | ||
286 | CMAKE_SHARED_LINKER_FLAGS_RELEASESSE2 ) | ||