diff --git a/.hgignore b/.hgignore index ab5fbc41c59a9c2558cd0da359e94ba3fe010a40..ea4903e471953675e5ec8420217e85e2f33bd3d6 100755 --- a/.hgignore +++ b/.hgignore @@ -15,10 +15,10 @@ LICENSES indra/.distcc build-linux-* build-darwin-* -build-vc80/ -build-vc100/ -build-vc110/ -build-vc120/ +build-vc80* +build-vc100* +build-vc110* +build-vc120* qtcreator-build/ indra/build-vc[0-9]* indra/CMakeFiles diff --git a/indra/cmake/00-Common.cmake b/indra/cmake/00-Common.cmake index 9c28299e18b552c074b9d0adc1794e086be6eebe..6bc2c2288b74880cc2a0c0f7c69fa8103caefb41 100755 --- a/indra/cmake/00-Common.cmake +++ b/indra/cmake/00-Common.cmake @@ -75,10 +75,15 @@ if (WINDOWS) /nologo /Oy- /Zc:wchar_t- - /arch:SSE2 /fp:fast ) - + + if (WORD_SIZE EQUAL 32) + add_definitions( + /arch:SSE2 + ) + endif (WORD_SIZE EQUAL 32) + # Are we using the crummy Visual Studio KDU build workaround? if (NOT VS_DISABLE_FATAL_WARNINGS) add_definitions(/WX) diff --git a/indra/cmake/FMODEX.cmake b/indra/cmake/FMODEX.cmake index 65bc1cabeb8fd77340ea80cf78d50dd1c7bd5d75..db97276173f2b0edd9ba6015ad1c6717693c2550 100644 --- a/indra/cmake/FMODEX.cmake +++ b/indra/cmake/FMODEX.cmake @@ -26,9 +26,15 @@ if (FMODEX) include(Prebuilt) use_prebuilt_binary(fmodex) if (WINDOWS) - set(FMODEX_LIBRARY - debug fmodexL_vc - optimized fmodex_vc) + if (WORD_SIZE EQUAL 32) + set(FMODEX_LIBRARY + debug fmodexL_vc + optimized fmodex_vc) + elseif (WORD_SIZE EQUAL 64) + set(FMODEX_LIBRARY + debug fmodexL64_vc + optimized fmodex64_vc) + endif(WORD_SIZE EQUAL 32) elseif (DARWIN) set(FMODEX_LIBRARY debug fmodexL diff --git a/indra/cmake/Variables.cmake b/indra/cmake/Variables.cmake index 014a2eb328cbd3df30f4dd1a0a4df15642ed3135..8d26932a9779fc63ecd8e88a1a716015ae81ab27 100755 --- a/indra/cmake/Variables.cmake +++ b/indra/cmake/Variables.cmake @@ -61,10 +61,17 @@ endif (NOT CMAKE_BUILD_TYPE) 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) + if (WORD_SIZE EQUAL 64) + set(ARCH x86_64) + set(LL_ARCH ${ARCH}_win64) + set(LL_ARCH_DIR ${ARCH}-win64) + set(WORD_SIZE 64) + else (WORD_SIZE EQUAL 64) + set(ARCH i686) + set(LL_ARCH ${ARCH}_win32) + set(LL_ARCH_DIR ${ARCH}-win32) + set(WORD_SIZE 32) + endif (WORD_SIZE EQUAL 64) endif (${CMAKE_SYSTEM_NAME} MATCHES "Windows") if (${CMAKE_SYSTEM_NAME} MATCHES "Linux") diff --git a/indra/newview/CMakeLists.txt b/indra/newview/CMakeLists.txt index bb224393d5f177de13a25a9f125bf4e528cc4498..b510e20461ba7d8135cce1b235c1f36a48ae5a35 100755 --- a/indra/newview/CMakeLists.txt +++ b/indra/newview/CMakeLists.txt @@ -1756,6 +1756,7 @@ if (WINDOWS) COMMAND ${PYTHON_EXECUTABLE} ARGS ${CMAKE_CURRENT_SOURCE_DIR}/viewer_manifest.py + --arch=${ARCH} --actions=copy --artwork=${ARTWORK_DIR} --build=${CMAKE_CURRENT_BINARY_DIR} diff --git a/indra/newview/viewer_manifest.py b/indra/newview/viewer_manifest.py index dee56b3e08f21e250e6f63db9d9ef47cde798065..2e16762babde09f4f9720039abe75a65d9f4dc96 100755 --- a/indra/newview/viewer_manifest.py +++ b/indra/newview/viewer_manifest.py @@ -363,15 +363,6 @@ class WindowsManifest(ViewerManifest): print err.message print "Skipping COLLADA and GLOD libraries (assumming linked statically)" - # Get fmodex dll, continue if missing - try: - if self.args['configuration'].lower() == 'debug': - self.path("fmodexL.dll") - else: - self.path("fmodex.dll") - except: - print "Skipping fmodex audio library(assuming other audio engine)" - # For textures if self.args['configuration'].lower() == 'debug': self.path("openjpegd.dll") @@ -650,6 +641,40 @@ class WindowsManifest(ViewerManifest): self.package_file = installer_file +class Windows_i686Manifest(WindowsManifest): + def construct(self): + super(Windows_i686Manifest, self).construct() + + # Get shared libs from the shared libs staging directory + if self.prefix(src=os.path.join(os.pardir, 'sharedlibs', self.args['configuration']), + dst=""): + # Get fmodex dll, continue if missing + try: + if self.args['configuration'].lower() == 'debug': + self.path("fmodexL.dll") + else: + self.path("fmodex.dll") + except: + print "Skipping fmodex audio library(assuming other audio engine)" + + +class Windows_x86_64Manifest(WindowsManifest): + def construct(self): + super(Windows_x86_64Manifest, self).construct() + + # Get shared libs from the shared libs staging directory + if self.prefix(src=os.path.join(os.pardir, 'sharedlibs', self.args['configuration']), + dst=""): + # Get fmodex dll, continue if missing + try: + if self.args['configuration'].lower() == 'debug': + self.path("fmodexL64.dll") + else: + self.path("fmodex64.dll") + except: + print "Skipping fmodex audio library(assuming other audio engine)" + + class DarwinManifest(ViewerManifest): def is_packaging_viewer(self): # darwin requires full app bundle packaging even for debugging.