diff --git a/indra/cmake/00-Common.cmake b/indra/cmake/00-Common.cmake
index 6a6f7c222..0c4386784 100644
--- a/indra/cmake/00-Common.cmake
+++ b/indra/cmake/00-Common.cmake
@@ -246,44 +246,39 @@ endif (LINUX)
if (DARWIN)
- add_definitions(-DLL_DARWIN=1 -D_XOPEN_SOURCE)
- set(CMAKE_CXX_LINK_FLAGS "-Wl,-headerpad_max_install_names,-search_paths_first")
+ add_definitions(-DLL_DARWIN=1)
+ set(CMAKE_CXX_LINK_FLAGS "-Wl,-no_compact_unwind -Wl,-headerpad_max_install_names,-search_paths_first")
set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_CXX_LINK_FLAGS}")
-
- if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU")
- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mlong-branch")
- set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mlong-branch")
- # NOTE: it's critical that the optimization flag is put in front.
- # NOTE: it's critical to have both CXX_FLAGS and C_FLAGS covered.
- set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -O3 -msse3 -mtune=generic -mfpmath=sse ${GCC_EXTRA_OPTIMIZATIONS}")
- set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -O3 -msse3 -mtune=generic -mfpmath=sse ${GCC_EXTRA_OPTIMIZATIONS}")
- set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} -O3 -msse3 -mtune=generic -mfpmath=sse ${GCC_EXTRA_OPTIMIZATIONS}")
- set(CMAKE_C_FLAGS_RELWITHDEBINFO "${CMAKE_C_FLAGS_RELWITHDEBINFO} -O3 -msse3 -mtune=generic -mfpmath=sse ${GCC_EXTRA_OPTIMIZATIONS}")
- elseif ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
- # NOTE: it's critical that the optimization flag is put in front.
- # NOTE: it's critical to have both CXX_FLAGS and C_FLAGS covered.
- set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -O3 -msse3")
- set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -O3 -msse3")
- set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} -O3 -msse3")
- set(CMAKE_C_FLAGS_RELWITHDEBINFO "${CMAKE_C_FLAGS_RELWITHDEBINFO} -O3 -msse3")
- endif()
+ set(DARWIN_extra_cstar_flags "-g")
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${DARWIN_extra_cstar_flags} -ftemplate-depth=256")
+ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${DARWIN_extra_cstar_flags}")
+ # NOTE: it's critical that the optimization flag is put in front.
+ # NOTE: it's critical to have both CXX_FLAGS and C_FLAGS covered.
+ set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "-O0 ${CMAKE_CXX_FLAGS_RELWITHDEBINFO}")
+ set(CMAKE_C_FLAGS_RELWITHDEBINFO "-O0 ${CMAKE_C_FLAGS_RELWITHDEBINFO}")
+ set(CMAKE_XCODE_ATTRIBUTE_CLANG_X86_VECTOR_INSTRUCTIONS SSE3)
+ set(CMAKE_XCODE_ATTRIBUTE_GCC_OPTIMIZATION_LEVEL -O3)
+ set(CMAKE_CXX_FLAGS_RELEASE "-O3 -msse3 ${CMAKE_CXX_FLAGS_RELEASE}")
+ set(CMAKE_C_FLAGS_RELEASE "-O3 -msse3 ${CMAKE_C_FLAGS_RELEASE}")
+ if (XCODE_VERSION GREATER 4.2)
+ set(ENABLE_SIGNING TRUE)
+ set(SIGNING_IDENTITY "Developer ID Application: Linden Research, Inc.")
+ endif (XCODE_VERSION GREATER 4.2)
endif (DARWIN)
+
if (LINUX OR DARWIN)
+ set(GCC_WARNINGS "-Wall -Wno-sign-compare -Wno-trigraphs")
+
if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU")
add_definitions(-DLL_GNUC=1)
- set(UNIX_WARNINGS "-Wall -Wno-sign-compare -Wno-trigraphs")
- set(UNIX_CXX_WARNINGS "${UNIX_WARNINGS} -Wno-reorder -Wno-non-virtual-dtor -Woverloaded-virtual")
elseif ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
add_definitions(-DLL_CLANG=1)
- set(UNIX_WARNINGS "-Wall -Wno-sign-compare -Wno-trigraphs -Wno-tautological-compare -Wno-char-subscripts -Wno-gnu -Wno-logical-op-parentheses -Wno-non-virtual-dtor")
- set(UNIX_WARNINGS "${UNIX_WARNINGS} -Woverloaded-virtual -Wno-parentheses-equality -Wno-reorder -Wno-unused-function -Wno-unused-value -Wno-unused-variable")
- set(UNIX_CXX_WARNINGS "${UNIX_WARNINGS}")
+ set(UNIX_WARNINGS "${UNIX_WARNINGS} -Wno-deprecated")
+ set(UNIX_CXX_WARNINGS "${UNIX_CXX_WARNINGS} -Wno-deprecated -Wno-reorder -Wno-tautological-compare")
elseif ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Intel")
add_definitions(-DLL_ICC=1)
- set(UNIX_WARNINGS "-wd327 -wd597 -wd858")
- set(UNIX_CXX_WARNINGS "${UNIX_WARNINGS}")
endif ()
if (NOT DISABLE_FATAL_WARNINGS)
diff --git a/indra/cmake/Variables.cmake b/indra/cmake/Variables.cmake
index 5848b8934..a8df1d307 100644
--- a/indra/cmake/Variables.cmake
+++ b/indra/cmake/Variables.cmake
@@ -97,24 +97,54 @@ endif (${CMAKE_SYSTEM_NAME} MATCHES "Linux")
if (${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
set(DARWIN 1)
- if(${CMAKE_GENERATOR} MATCHES "Xcode")
- #SDK Compiler and Deployment targets for XCode
- if (${XCODE_VERSION} VERSION_LESS 4.0.0)
- set(CMAKE_OSX_SYSROOT /Developer/SDKs/MacOSX10.5.sdk)
- set(CMAKE_OSX_DEPLOYMENT_TARGET 10.5)
- else (${XCODE_VERSION} VERSION_LESS 4.0.0)
- set(CMAKE_OSX_SYSROOT /Developer/SDKs/MacOSX10.6.sdk)
- set(CMAKE_OSX_DEPLOYMENT_TARGET 10.6)
- endif (${XCODE_VERSION} VERSION_LESS 4.0.0)
- else(${CMAKE_GENERATOR} MATCHES "Xcode")
- set(CMAKE_OSX_SYSROOT /Developer/SDKs/MacOSX10.6.sdk)
- set(CMAKE_OSX_DEPLOYMENT_TARGET 10.6)
- endif(${CMAKE_GENERATOR} MATCHES "Xcode")
+ execute_process(
+ COMMAND sh -c "xcodebuild -version | grep Xcode | cut -d ' ' -f2 | cut -d'.' -f1-2"
+ OUTPUT_VARIABLE XCODE_VERSION )
+ string(REGEX REPLACE "(\r?\n)+$" "" XCODE_VERSION "${XCODE_VERSION}")
+
+# # To support a different SDK update these Xcode settings:
+# if (XCODE_VERSION GREATER 4.9) # (Which would be 5.0+)
+# set(CMAKE_OSX_DEPLOYMENT_TARGET 10.8)
+# set(CMAKE_OSX_SYSROOT macosx10.9)
+# else (XCODE_VERION GREATER 4.9)
+# if (XCODE_VERSION GREATER 4.5)
+# set(CMAKE_OSX_DEPLOYMENT_TARGET 10.7)
+# set(CMAKE_OSX_SYSROOT macosx10.8)
+# else (XCODE_VERSION GREATER 4.5)
+# if (XCODE_VERSION GREATER 4.2)
+# set(CMAKE_OSX_DEPLOYMENT_TARGET 10.6)
+# set(CMAKE_OSX_SYSROOT macosx10.7)
+# else (XCODE_VERSION GREATER 4.2)
+# set(CMAKE_OSX_DEPLOYMENT_TARGET 10.6)
+# set(CMAKE_OSX_SYSROOT macosx10.7)
+# endif (XCODE_VERSION GREATER 4.2)
+# endif (XCODE_VERSION GREATER 4.5)
+# endif (XCODE_VERSION GREATER 4.9)
- set(CMAKE_XCODE_ATTRIBUTE_GCC_VERSION "com.apple.compilers.llvmgcc42")
+ # Hardcode SDK we build against until we can test and allow newer ones
+ # as autodetected in the code above
+ set(CMAKE_OSX_DEPLOYMENT_TARGET 10.6)
+ set(CMAKE_OSX_SYSROOT macosx10.6)
+
+ # Support for Unix Makefiles generator
+ if (CMAKE_GENERATOR STREQUAL "Unix Makefiles")
+ execute_process(COMMAND xcodebuild -version -sdk "${CMAKE_OSX_SYSROOT}" Path | head -n 1 OUTPUT_VARIABLE CMAKE_OSX_SYSROOT)
+ string(REGEX REPLACE "(\r?\n)+$" "" CMAKE_OSX_SYSROOT "${CMAKE_OSX_SYSROOT}")
+ endif (CMAKE_GENERATOR STREQUAL "Unix Makefiles")
+
+ # LLVM-GCC has been removed in Xcode5
+ if (XCODE_VERSION GREATER 4.9)
+ set(CMAKE_XCODE_ATTRIBUTE_GCC_VERSION "com.apple.compilers.llvm.clang.1_0")
+ else (XCODE_VERSION GREATER 4.9)
+ set(CMAKE_XCODE_ATTRIBUTE_GCC_VERSION "com.apple.compilers.llvmgcc42")
+ endif (XCODE_VERSION GREATER 4.9)
set(CMAKE_XCODE_ATTRIBUTE_DEBUG_INFORMATION_FORMAT dwarf-with-dsym)
+ message(STATUS "Xcode version: ${XCODE_VERSION}")
+ message(STATUS "OSX sysroot: ${CMAKE_OSX_SYSROOT}")
+ message(STATUS "OSX deployment target: ${CMAKE_OSX_DEPLOYMENT_TARGET}")
+
# Build only for i386 by default, system default on MacOSX 10.6 is x86_64
set(CMAKE_OSX_ARCHITECTURES i386)
set(ARCH i386)
diff --git a/install.xml b/install.xml
index 2ce264078..27e009721 100644
--- a/install.xml
+++ b/install.xml
@@ -202,9 +202,9 @@
darwin
linux