From 2678d0f99e108bb1a1562e1877dbe1a4a3307b53 Mon Sep 17 00:00:00 2001 From: Shyotl Date: Thu, 8 Jan 2015 00:49:42 -0600 Subject: [PATCH] Trying fmodstudio as a prebuilt. (pushed to test on linux buildserver) --- indra/cmake/FMODSTUDIO.cmake | 121 +++++++++++++++++++++---------- indra/newview/viewer_manifest.py | 32 ++++---- install.xml | 49 ++++++++++++- 3 files changed, 150 insertions(+), 52 deletions(-) diff --git a/indra/cmake/FMODSTUDIO.cmake b/indra/cmake/FMODSTUDIO.cmake index 688d28e97..b2460cc79 100644 --- a/indra/cmake/FMODSTUDIO.cmake +++ b/indra/cmake/FMODSTUDIO.cmake @@ -10,24 +10,17 @@ unset(FMOD_LIBRARY_RELEASE CACHE) unset(FMOD_LIBRARY_DEBUG CACHE) unset(FMOD_INCLUDE_DIR CACHE) -if (NOT FMODSTUDIO_SDK_DIR AND WINDOWS) - GET_FILENAME_COMPONENT(REG_DIR [HKEY_CURRENT_USER\\Software\\FMOD\ Studio\ API\ Windows] ABSOLUTE) - set(FMODSTUDIO_SDK_DIR ${REG_DIR} CACHE PATH "Path to the FMOD Studio SDK." FORCE) -endif (NOT FMODSTUDIO_SDK_DIR AND WINDOWS) +if(STANDALONE) + if (NOT FMODSTUDIO_SDK_DIR AND WINDOWS) + GET_FILENAME_COMPONENT(REG_DIR [HKEY_CURRENT_USER\\Software\\FMOD\ Studio\ API\ Windows] ABSOLUTE) + set(FMODSTUDIO_SDK_DIR ${REG_DIR} CACHE PATH "Path to the FMOD Studio SDK." FORCE) + endif (NOT FMODSTUDIO_SDK_DIR AND WINDOWS) + if(NOT FMODSTUDIO_SDK_DIR) + message(FATAL_ERROR "FMODSTUDIO_SDK_DIR not set!") + endif(NOT FMODSTUDIO_SDK_DIR) +endif(STANDALONE) -set(release_fmod_lib_paths - ${LIBS_PREBUILT_DIR}/release/lib/ - ${LIBS_PREBUILT_LEGACY_DIR}/release/lib) -set(debug_fmod_lib_paths - ${LIBS_PREBUILT_DIR}/debug/lib - ${LIBS_PREBUILT_LEGACY_DIR}/debug/lib) -set(fmod_inc_paths - ${LIBS_PREBUILT_DIR}/include/fmodstudio - ${LIBS_PREBUILT_LEGACY_DIR}/include/fmodstudio) - - - -if (FMODSTUDIO_SDK_DIR) +if(FMODSTUDIO_SDK_DIR) if(LINUX AND WORD_SIZE EQUAL 32) set(release_lib_paths ${release_fmod_lib_paths} "${FMODSTUDIO_SDK_DIR}/api/lowlevel/x86/lib" ) set(debug__lib_paths ${debug_fmod_lib_paths} "${FMODSTUDIO_SDK_DIR}/api/lowlevel/x86/lib") @@ -39,30 +32,82 @@ if (FMODSTUDIO_SDK_DIR) set(debug_fmod_lib_paths ${debug_fmod_lib_paths} "${FMODSTUDIO_SDK_DIR}/api/lowlevel/lib") endif(LINUX AND WORD_SIZE EQUAL 32) set(fmod_inc_paths ${fmod_inc_paths} "${FMODSTUDIO_SDK_DIR}/api/lowlevel/inc") + + if(LINUX AND WORD_SIZE EQUAL 32) + set(release_lib_paths "${FMODSTUDIO_SDK_DIR}/api/lowlevel/lib/x86" ) + set(debug__lib_paths "${FMODSTUDIO_SDK_DIR}/api/lowlevel/lig/x86") + elseif(LINUX) + set(release__lib_paths "${FMODSTUDIO_SDK_DIR}/api/lowlevel/lib/x86_64") + set(debug_fmod_lib_paths "${FMODSTUDIO_SDK_DIR}/api/lowlevel/lib/x86_64") + else(LINUX AND WORD_SIZE EQUAL 32) + set(release_fmod_lib_paths "${FMODSTUDIO_SDK_DIR}/api/lowlevel/lib") + set(debug_fmod_lib_paths "${FMODSTUDIO_SDK_DIR}/api/lowlevel/lib") + endif(LINUX AND WORD_SIZE EQUAL 32) + set(fmod_inc_paths "${FMODSTUDIO_SDK_DIR}/api/lowlevel/inc") + + if(WINDOWS) + set(CMAKE_FIND_LIBRARY_SUFFIXES_OLD ${CMAKE_FIND_LIBRARY_SUFFIXES}) + set(CMAKE_FIND_LIBRARY_SUFFIXES .dll) + endif(WINDOWS) + if(WORD_SIZE EQUAL 64 AND WINDOWS) + find_library(FMOD_LIBRARY_RELEASE fmod64 PATHS ${release_fmod_lib_paths}) + find_library(FMOD_LIBRARY_DEBUG fmodL64 PATHS ${debug_fmod_lib_paths}) + else(WORD_SIZE EQUAL 64 AND WINDOWS)#Check if CMAKE_FIND_LIBRARY_PREFIXES is set to 'lib' for darwin. + find_library(FMOD_LIBRARY_RELEASE fmod PATHS ${release_fmod_lib_paths}) + find_library(FMOD_LIBRARY_DEBUG fmodL PATHS ${debug_fmod_lib_paths}) + endif(WORD_SIZE EQUAL 64 AND WINDOWS) + if(WINDOWS) + set(CMAKE_FIND_LIBRARY_SUFFIXES ${CMAKE_FIND_LIBRARY_SUFFIXES_OLD}) + string(REPLACE ".dll" "_vc.lib" FMOD_LINK_LIBRARY_RELEASE ${FMOD_LIBRARY_RELEASE}) + string(REPLACE ".dll" "_vc.lib" FMOD_LINK_LIBRARY_DEBUG ${FMOD_LIBRARY_DEBUG}) + else(WINDOWS) + set(FMOD_LINK_LIBRARY_RELEASE ${FMOD_LIBRARY_RELEASE}) + set(FMOD_LINK_LIBRARY_DEBUG ${FMOD_LIBRARY_DEBUG}) + endif(WINDOWS) + find_path(FMOD_INCLUDE_DIR fmod.hpp ${fmod_inc_paths}) + if(NOT FMOD_LIBRARY_RELEASE OR NOT FMOD_INCLUDE_DIR) + if(STANDALONE) + message(FATAL_ERROR "Provided FMODSTUDIO_SDK_DIR path not found '{$FMODSTUDIO_SDK_DIR}'") + else(STANDALONE) + message(STATUS "Provided FMODSTUDIO_SDK_DIR path not found '${FMODSTUDIO_SDK_DIR}'. Falling back to prebuilts") + endif(STANDALONE) + else(NOT FMOD_LIBRARY_RELEASE OR NOT FMOD_INCLUDE_DIR) + message(STATUS "Using system-provided FMOD Studio Libraries") + endif(NOT FMOD_LIBRARY_RELEASE OR NOT FMOD_INCLUDE_DIR) endif (FMODSTUDIO_SDK_DIR) -if(WINDOWS) - set(CMAKE_FIND_LIBRARY_SUFFIXES_OLD ${CMAKE_FIND_LIBRARY_SUFFIXES}) - set(CMAKE_FIND_LIBRARY_SUFFIXES .dll) -endif(WINDOWS) -if(WORD_SIZE EQUAL 32) #Check if CMAKE_FIND_LIBRARY_PREFIXES is set to 'lib' for darwin. - find_library(FMOD_LIBRARY_RELEASE fmod PATHS ${release_fmod_lib_paths}) - find_library(FMOD_LIBRARY_DEBUG fmodL PATHS ${debug_fmod_lib_paths}) -elseif(WORD_SIZE EQUAL 64) - find_library(FMOD_LIBRARY_RELEASE fmod64 PATHS ${release_fmod_lib_paths}) - find_library(FMOD_LIBRARY_DEBUG fmodL64 PATHS ${debug_fmod_lib_paths}) -endif (WORD_SIZE EQUAL 32) -if(WINDOWS) - set(CMAKE_FIND_LIBRARY_SUFFIXES ${CMAKE_FIND_LIBRARY_SUFFIXES_OLD}) - string(REPLACE ".dll" "_vc.lib" FMOD_LINK_LIBRARY_RELEASE ${FMOD_LIBRARY_RELEASE}) - string(REPLACE ".dll" "_vc.lib" FMOD_LINK_LIBRARY_DEBUG ${FMOD_LIBRARY_DEBUG}) -else(WINDOWS) - set(FMODSTUDIO_LINK_LIBRARY_RELEASE ${FMODSTUDIO_LIBRARY_RELEASE}) - set(FMODSTUDIO_LINK_LIBRARY_DEBUG ${FMODSTUDIO_LIBRARY_DEBUG}) -endif(WINDOWS) -find_path(FMOD_INCLUDE_DIR fmod.hpp ${fmod_inc_paths}) +if (NOT FMOD_LIBRARY_RELEASE OR NOT FMOD_INCLUDE_DIR) + if(WINDOWS) + set(lib_suffix .dll) + elseif(DARWIN) + set(lib_suffix .dynlib) + else(WINDOWS) + set(lib_suffix .so) + endif(WINDOWS) + if(WINDOWS) + if(WORD_SIZE EQUAL 64) + set(FMOD_LIBRARY_RELEASE ${LIBS_PREBUILT_DIR}/lib/release/fmod64${lib_suffix}) + set(FMOD_LIBRARY_DEBUG ${LIBS_PREBUILT_DIR}/lib/debug/fmodL64${lib_suffix}) + else(WORD_SIZE EQUAL 64) + set(FMOD_LIBRARY_RELEASE ${LIBS_PREBUILT_DIR}/lib/release/fmod${lib_suffix}) + set(FMOD_LIBRARY_DEBUG ${LIBS_PREBUILT_DIR}/lib/debug/fmodL${lib_suffix}) + endif(WORD_SIZE EQUAL 64) + else(WINDOWS) + set(FMOD_LIBRARY_RELEASE ${LIBS_PREBUILT_DIR}/lib/release/libfmod${lib_suffix}) + set(FMOD_LIBRARY_DEBUG ${LIBS_PREBUILT_DIR}/lib/debug/libfmodL${lib_suffix}) + endif(WINDOWS) + set(FMOD_LINK_LIBRARY_RELEASE ${FMOD_LIBRARY_RELEASE}) + set(FMOD_LINK_LIBRARY_DEBUG ${FMOD_LIBRARY_DEBUG}) + if(WINDOWS) + string(REPLACE ".dll" "_vc.lib" FMOD_LINK_LIBRARY_RELEASE ${FMOD_LIBRARY_RELEASE}) + string(REPLACE ".dll" "_vc.lib" FMOD_LINK_LIBRARY_DEBUG ${FMOD_LIBRARY_DEBUG}) + endif(WINDOWS) + use_prebuilt_binary(fmodstudio) + set(FMOD_INCLUDE_DIR + ${LIBS_PREBUILT_DIR}/include/fmodstudio) +endif(NOT FMOD_LIBRARY_RELEASE OR NOT FMOD_INCLUDE_DIR) -if (FMOD_LIBRARY_RELEASE AND FMOD_INCLUDE_DIR) +if(FMOD_LIBRARY_RELEASE AND FMOD_INCLUDE_DIR) set(FMOD ON) if (NOT FMOD_LIBRARY_DEBUG) #Use release library in debug configuration if debug library is absent. set(FMOD_LIBRARY_DEBUG ${FMOD_LIBRARY_RELEASE}) diff --git a/indra/newview/viewer_manifest.py b/indra/newview/viewer_manifest.py index 3bdcc22d3..5d95a4d5e 100755 --- a/indra/newview/viewer_manifest.py +++ b/indra/newview/viewer_manifest.py @@ -576,8 +576,10 @@ class DarwinManifest(ViewerManifest): ): self.path(libfile) - dylibs += self.add_extra_libraries() + self.end_prefix() + if self.prefix(src=self.args['configuration'], alt_build=libdir): + dylibs += self.add_extra_libraries() self.end_prefix() # our apps @@ -876,18 +878,20 @@ class Linux_i686Manifest(LinuxManifest): self.path("libboost_system-mt.so.*") self.path("libboost_thread-mt.so.*") - self.add_extra_libraries() - self.end_prefix("lib") + + if (not self.standalone()) and self.prefix(src=self.args['configuration'], alt_build="../packages/lib/release", dst="lib"): + dylibs += self.add_extra_libraries() + self.end_prefix() - # Vivox runtimes - if self.prefix(src="../packages/lib/release", dst="bin"): - self.path("SLVoice") - self.end_prefix("bin") - if self.prefix(src="../packages/lib/release", dst="lib"): - self.path("libortp.so") - self.path("libvivoxsdk.so") - self.end_prefix("lib") + # Vivox runtimes + if self.prefix(src="../packages/lib/release", dst="bin"): + self.path("SLVoice") + self.end_prefix("bin") + if self.prefix(src="../packages/lib/release", dst="lib"): + self.path("libortp.so") + self.path("libvivoxsdk.so") + self.end_prefix("lib") class Linux_x86_64Manifest(LinuxManifest): def construct(self): @@ -926,10 +930,12 @@ class Linux_x86_64Manifest(LinuxManifest): self.path("libboost_system-mt.so.*") self.path("libboost_thread-mt.so.*") - self.add_extra_libraries() - self.end_prefix("lib") + if (not self.standalone()) and self.prefix(src=self.args['configuration'], alt_build="../packages/lib/release", dst="lib"): + dylibs += self.add_extra_libraries() + self.end_prefix() + # Vivox runtimes if self.prefix(src="../packages/lib/release", dst="bin"): self.path("SLVoice") diff --git a/install.xml b/install.xml index 963a1b361..055d6ca05 100644 --- a/install.xml +++ b/install.xml @@ -450,6 +450,53 @@ https://bitbucket.org/SingularityViewer/libraries/downloads/expat-2.1.0-windows64-vs12-20140709.tar.bz2 + + fmodstudio + + copyright + Copyright © 1994-2014 Firelight Technologies Pty, Ltd. + description + FMOD Studio programmer’s API's low level component. For simple sounds/channels/dsp/geometry. + license + fmod + packages + + darwin + + md5sum + 93ebcfcaf0572427593cdb38d7c7435b + url + https://bitbucket.org/SingularityViewer/libraries/downloads/fmodstudio-1.05.09-darwin-20150106.tar.bz2 + + linux + + md5sum + b75bcb905747b6aa9c288924379741d4 + url + https://bitbucket.org/SingularityViewer/libraries/downloads/fmodstudio-1.05.09-linux-20150106.tar.bz2 + + linux64 + + md5sum + 0d50965abbd4ed317f221761abc25b55 + url + https://bitbucket.org/SingularityViewer/libraries/downloads/fmodstudio-1.05.09-linux64-20150106.tar.bz2 + + windows + + md5sum + c24c02a6130cd9032077c08905e89e88 + url + https://bitbucket.org/SingularityViewer/libraries/downloads/fmodstudio-1.05.09-windows-20150106.tar.bz2 + + windows64 + + md5sum + 72065eb2a8ebb7d4ef12c320f1f85780 + url + https://bitbucket.org/SingularityViewer/libraries/downloads/fmodstudio-1.05.09-windows64-20150106.tar.bz2 + + fontconfig @@ -1721,7 +1768,7 @@ your work. fmod url - http://www.fmod.org/ifmodlicense.html + http://www.fmod.com/files/public/LICENSE.TXT freetype