diff --git a/indra/cmake/00-Common.cmake b/indra/cmake/00-Common.cmake index 5eaca5c32..12009e570 100644 --- a/indra/cmake/00-Common.cmake +++ b/indra/cmake/00-Common.cmake @@ -23,28 +23,32 @@ set(CMAKE_CONFIGURATION_TYPES "RelWithDebInfo;Release;Debug" CACHE STRING # Platform-specific compilation flags. if (WINDOWS) + # Various libs are compiler specific, generate some variables here we can just use + # when we require them instead of reimplementing the test each time. + if (MSVC10) + set(MSVC_DIR 10.0) + set(MSVC_SUFFIX 100) + endif (MSVC10) + # Remove default /Zm1000 flag that cmake inserts string (REPLACE "/Zm1000" " " CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS}) # Don't build DLLs. set(BUILD_SHARED_LIBS OFF) - set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} /Od /Zi /MDd /arch:SSE2" + set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} /Od /Zi /MDd" CACHE STRING "C++ compiler debug options" FORCE) set(CMAKE_CXX_FLAGS_RELWITHDEBINFO - "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} /Od /Zi /MD /MP /arch:SSE2" + "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} /Od /Zi /MD /MP" CACHE STRING "C++ compiler release-with-debug options" FORCE) set(CMAKE_CXX_FLAGS_RELEASE - "${CMAKE_CXX_FLAGS_RELEASE} ${LL_CXX_FLAGS} /O2 /Zi /MD /MP /arch:SSE2 /fp:fast" + "${CMAKE_CXX_FLAGS_RELEASE} ${LL_CXX_FLAGS} /O2 /Zi /MD /MP /fp:fast -D_SECURE_STL=0 -D_HAS_ITERATOR_DEBUGGING=0" CACHE STRING "C++ compiler release options" FORCE) set(CMAKE_C_FLAGS_RELEASE - "${CMAKE_C_FLAGS_RELEASE} ${LL_C_FLAGS} /O2 /Zi /MD /MP /arch:SSE2 /fp:fast" + "${CMAKE_C_FLAGS_RELEASE} ${LL_C_FLAGS} /O2 /Zi /MD /MP /fp:fast" CACHE STRING "C compiler release options" FORCE) + set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /LARGEADDRESSAWARE") - if(NOT CMAKE_EXE_LINKER_FLAGS_RELEASE MATCHES LARGEADDRESSAWARE) - set(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} /LARGEADDRESSAWARE") - endif() - set(CMAKE_CXX_STANDARD_LIBRARIES "") set(CMAKE_C_STANDARD_LIBRARIES "") @@ -57,54 +61,25 @@ if (WINDOWS) /W3 /c /Zc:forScope + /Zc:wchar_t- /nologo /Oy- + /arch:SSE2 ) - + # configure win32 API for windows XP+ compatibility set(WINVER "0x0501" CACHE STRING "Win32 API Target version (see http://msdn.microsoft.com/en-us/library/aa383745%28v=VS.85%29.aspx)") add_definitions("/DWINVER=${WINVER}" "/D_WIN32_WINNT=${WINVER}") - if(MSVC80 OR MSVC90 OR MSVC10) - set(CMAKE_CXX_FLAGS_RELEASE - "${CMAKE_CXX_FLAGS_RELEASE} -D_SECURE_STL=0 -D_HAS_ITERATOR_DEBUGGING=0" - CACHE STRING "C++ compiler release options" FORCE) - set(CMAKE_C_FLAGS_RELEASE - "${CMAKE_C_FLAGS_RELEASE}" CACHE STRING "C compiler release options" FORCE) - add_definitions( - /Zc:wchar_t- - ) - endif (MSVC80 OR MSVC90 OR MSVC10) - # Are we using the crummy Visual Studio KDU build workaround? if (NOT DISABLE_FATAL_WARNINGS) add_definitions(/WX) endif (NOT DISABLE_FATAL_WARNINGS) - - # Various libs are compiler specific, generate some variables here we can just use - # when we require them instead of reimplementing the test each time. - - if (MSVC71) - set(MSVC_DIR 7.1) - set(MSVC_SUFFIX 71) - elseif (MSVC80) - set(MSVC_DIR 8.0) - set(MSVC_SUFFIX 80) - elseif (MSVC90) - set(MSVC_DIR 9.0) - set(MSVC_SUFFIX 90) - elseif (MSVC10) - set(MSVC_DIR 10.0) - set(MSVC_SUFFIX 100) - endif (MSVC71) - if (MSVC10) - SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /MANIFEST:NO") - SET(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} /MANIFEST:NO") - SET(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} /MANIFEST:NO") - endif(MSVC10) + SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /MANIFEST:NO") + SET(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} /MANIFEST:NO") + SET(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} /MANIFEST:NO") - endif (WINDOWS) set (GCC_EXTRA_OPTIMIZATIONS "-ffast-math") diff --git a/indra/develop.py b/indra/develop.py index 5e94ca125..60bc7f387 100755 --- a/indra/develop.py +++ b/indra/develop.py @@ -473,26 +473,11 @@ class DarwinSetup(UnixSetup): class WindowsSetup(PlatformSetup): gens = { - 'vc71' : { - 'gen' : r'Visual Studio 7 .NET 2003', - 'ver' : r'7.1' - }, - 'vc80' : { - 'gen' : r'Visual Studio 8 2005', - 'ver' : r'8.0' - }, - 'vc90' : { - 'gen' : r'Visual Studio 9 2008', - 'ver' : r'9.0' - }, 'vc100' : { 'gen' : r'Visual Studio 10', 'ver' : r'10.0' } } - gens['vs2003'] = gens['vc71'] - gens['vs2005'] = gens['vc80'] - gens['vs2008'] = gens['vc90'] gens['vs2010'] = gens['vc100'] search_path = r'C:\windows' @@ -505,21 +490,21 @@ class WindowsSetup(PlatformSetup): def _get_generator(self): if self._generator is None: - for version in 'vc80 vc90 vc100 vc71'.split(): + for version in 'vc100'.split(): if self.find_visual_studio(version): self._generator = version print 'Building with ', self.gens[version]['gen'] break else: print >> sys.stderr, 'Cannot find a Visual Studio installation, testing for express editions' - for version in 'vc80 vc90 vc100 vc71'.split(): + for version in 'vc100'.split(): if self.find_visual_studio_express(version): self._generator = version self.using_express = True print 'Building with ', self.gens[version]['gen'] , "Express edition" break else: - for version in 'vc80 vc90 vc100 vc71'.split(): + for version in 'vc100'.split(): if self.find_visual_studio_express_single(version): self._generator = version self.using_express = True @@ -768,8 +753,7 @@ Options: -m32 | -m64 build architecture (32-bit or 64-bit) -N | --no-distcc disable use of distcc -G | --generator=NAME generator name - Windows: VC71 or VS2003 (default), VC80 (VS2005) - VC90 (VS2008), or VC100 (VS2010) + Windows: VC100 (VS2010) (default) Mac OS X: Xcode (default), Unix Makefiles Linux: Unix Makefiles (default), KDevelop3 -p | --project=NAME set the root project name. (Doesn't effect makefiles)