Cmake version bump, cleanup, typo fixes, rewrite of fmodex.cmake.

This commit is contained in:
Shyotl
2015-01-22 02:39:45 -06:00
parent c708408f64
commit ca98523c41
7 changed files with 137 additions and 107 deletions

View File

@@ -4,7 +4,7 @@
# other commands to guarantee full compatibility # other commands to guarantee full compatibility
# with the version specified # with the version specified
cmake_minimum_required(VERSION 2.8.8 FATAL_ERROR) cmake_minimum_required(VERSION 2.8.10 FATAL_ERROR)
# Eventually the third-party support modules (cmake/*.cmake) should # Eventually the third-party support modules (cmake/*.cmake) should
# know the full path to all libraries. Until that happens we need # know the full path to all libraries. Until that happens we need

View File

@@ -3,71 +3,114 @@
include(Linking) include(Linking)
if (FMODEX AND FMODSTUDIO) if (FMODEX AND FMODSTUDIO)
message( FATAL_ERROR "You can not enable two FMOD variants at the same time." ) message( FATAL_ERROR "You can not enable two FMOD variants at the same time." )
endif (FMODEX AND FMODSTUDIO) endif (FMODEX AND FMODSTUDIO)
unset(FMOD_LIBRARY_RELEASE CACHE) unset(FMOD_LIBRARY_RELEASE CACHE)
unset(FMOD_LIBRARY_DEBUG CACHE) unset(FMOD_LIBRARY_DEBUG CACHE)
unset(FMOD_INCLUDE_DIR CACHE) unset(FMOD_INCLUDE_DIR CACHE)
if (NOT FMODEX_SDK_DIR AND WINDOWS) set(FMOD_EXTERNAL_LIB OFF)
GET_FILENAME_COMPONENT(REG_DIR [HKEY_CURRENT_USER\\Software\\FMOD\ Programmers\ API\ Windows] ABSOLUTE)
set(FMODEX_SDK_DIR ${REG_DIR} CACHE PATH "Path to the FMOD Ex SDK." FORCE)
endif (NOT FMODEX_SDK_DIR AND WINDOWS)
set(release_fmod_lib_paths if(STANDALONE OR WINDOWS)
${LIBS_PREBUILT_DIR}/release/lib/ if (NOT FMODEX_SDK_DIR AND WINDOWS)
${LIBS_PREBUILT_LEGACY_DIR}/release/lib) GET_FILENAME_COMPONENT(REG_DIR [HKEY_CURRENT_USER\\Software\\FMOD\ Programmers\ API\ Windows] ABSOLUTE)
set(debug_fmod_lib_paths set(FMODEX_SDK_DIR ${REG_DIR} CACHE PATH "Path to the FMOD Ex SDK." FORCE)
${LIBS_PREBUILT_DIR}/debug/lib endif (NOT FMODEX_SDK_DIR AND WINDOWS)
${LIBS_PREBUILT_LEGACY_DIR}/debug/lib) if(NOT FMODEX_SDK_DIR AND STANDALONE)
set(fmod_inc_paths message(FATAL_ERROR "FMODEX_SDK_DIR not set!")
${LIBS_PREBUILT_DIR}/include/fmodex endif(NOT FMODEX_SDK_DIR AND STANDALONE)
${LIBS_PREBUILT_LEGACY_DIR}/include/fmodex) endif(STANDALONE OR WINDOWS)
if (FMODEX_SDK_DIR) if(FMODEX_SDK_DIR)
set(release_fmod_lib_paths ${release_fmod_lib_paths} "${FMODEX_SDK_DIR}/api" "${FMODEX_SDK_DIR}/api/lib") set(fmod_lib_paths "${FMODEX_SDK_DIR}/api" "${FMODEX_SDK_DIR}/api/lib" )
set(debug_fmod_lib_paths ${debug_fmod_lib_paths} "${FMODEX_SDK_DIR}/api" "${FMODEX_SDK_DIR}/api/lib") set(fmod_inc_paths "${FMODEX_SDK_DIR}/api/inc")
set(fmod_inc_paths ${fmod_inc_paths} "${FMODEX_SDK_DIR}/api/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)
find_library(FMOD_LIBRARY_RELEASE fmodex64 PATHS ${fmod_lib_paths} NO_DEFAULT_PATH)
find_library(FMOD_LIBRARY_DEBUG fmodexL64 PATHS ${fmod_lib_paths} NO_DEFAULT_PATH)
else(WORD_SIZE EQUAL 64)#Check if CMAKE_FIND_LIBRARY_PREFIXES is set to 'lib' for darwin.
find_library(FMOD_LIBRARY_RELEASE fmodex PATHS ${fmod_lib_paths} NO_DEFAULT_PATH)
find_library(FMOD_LIBRARY_DEBUG fmodexL PATHS ${fmod_lib_paths} NO_DEFAULT_PATH)
endif(WORD_SIZE EQUAL 64)
if(WINDOWS)
set(CMAKE_FIND_LIBRARY_SUFFIXES ${CMAKE_FIND_LIBRARY_SUFFIXES_OLD})
if(WORD_SIZE EQUAL 64)
find_library(FMOD_LINK_LIBRARY_RELEASE fmodex64_vc PATHS ${fmod_lib_paths} NO_DEFAULT_PATH)
find_library(FMOD_LINK_LIBRARY_DEBUG fmodexL64_vc PATHS ${fmod_lib_paths} NO_DEFAULT_PATH)
else(WORD_SIZE EQUAL 64)#Check if CMAKE_FIND_LIBRARY_PREFIXES is set to 'lib' for darwin.
find_library(FMOD_LINK_LIBRARY_RELEASE fmodex_vc PATHS ${fmod_lib_paths} NO_DEFAULT_PATH)
find_library(FMOD_LINK_LIBRARY_DEBUG fmodexL_vc PATHS ${fmod_lib_paths} NO_DEFAULT_PATH)
endif(WORD_SIZE EQUAL 64)
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 FMODEX_SDK_DIR path not found '{$FMODEX_SDK_DIR}'")
else(STANDALONE)
message(STATUS "Provided FMODEX_SDK_DIR path not found '${FMODEX_SDK_DIR}'. Falling back to prebuilts")
endif(STANDALONE)
else(NOT FMOD_LIBRARY_RELEASE OR NOT FMOD_INCLUDE_DIR)
message(STATUS "Using system-provided FMOD Ex Libraries")
set(FMOD_EXTERNAL_LIB ON)
endif(NOT FMOD_LIBRARY_RELEASE OR NOT FMOD_INCLUDE_DIR)
endif (FMODEX_SDK_DIR) endif (FMODEX_SDK_DIR)
if(WINDOWS) if (NOT FMOD_LIBRARY_RELEASE OR NOT FMOD_INCLUDE_DIR)
set(CMAKE_FIND_LIBRARY_SUFFIXES_OLD ${CMAKE_FIND_LIBRARY_SUFFIXES}) if(WINDOWS)
set(CMAKE_FIND_LIBRARY_SUFFIXES .dll) set(lib_suffix .dll)
endif(WINDOWS) elseif(DARWIN)
if(WORD_SIZE EQUAL 32) #Check if CMAKE_FIND_LIBRARY_PREFIXES is set to 'lib' for darwin. set(lib_suffix .dynlib)
find_library(FMOD_LIBRARY_RELEASE fmodex PATHS ${release_fmod_lib_paths}) else(WINDOWS)
find_library(FMOD_LIBRARY_DEBUG fmodexL PATHS ${debug_fmod_lib_paths}) set(lib_suffix .so)
elseif(WORD_SIZE EQUAL 64) endif(WINDOWS)
find_library(FMOD_LIBRARY_RELEASE fmodex64 PATHS ${release_fmod_lib_paths}) if(WINDOWS)
find_library(FMOD_LIBRARY_DEBUG fmodLex64 PATHS ${debug_fmod_lib_paths}) if(WORD_SIZE EQUAL 64)
endif (WORD_SIZE EQUAL 32) set(FMOD_LIBRARY_RELEASE ${LIBS_PREBUILT_DIR}/lib/release/fmodex64${lib_suffix})
if(WINDOWS) set(FMOD_LIBRARY_DEBUG ${LIBS_PREBUILT_DIR}/lib/debug/fmodexL64${lib_suffix})
set(CMAKE_FIND_LIBRARY_SUFFIXES ${CMAKE_FIND_LIBRARY_SUFFIXES_OLD}) else(WORD_SIZE EQUAL 64)
if(WORD_SIZE EQUAL 32) set(FMOD_LIBRARY_RELEASE ${LIBS_PREBUILT_DIR}/lib/release/fmodex${lib_suffix})
find_library(FMOD_LINK_LIBRARY_RELEASE fmodex_vc PATHS ${release_fmod_lib_paths}) set(FMOD_LIBRARY_DEBUG ${LIBS_PREBUILT_DIR}/lib/debug/fmodexL${lib_suffix})
find_library(FMOD_LINK_LIBRARY_DEBUG fmodexL_vc PATHS ${debug_fmod_lib_paths}) endif(WORD_SIZE EQUAL 64)
elseif(WORD_SIZE EQUAL 64) else(WINDOWS)
find_library(FMOD_LINK_LIBRARY_RELEASE fmodex64_vc PATHS ${release_fmod_lib_paths}) if(WORD_SIZE EQUAL 64)
find_library(FMOD_LINK_LIBRARY_DEBUG fmodLex64_vc PATHS ${debug_fmod_lib_paths}) set(FMOD_LIBRARY_RELEASE ${LIBS_PREBUILT_DIR}/lib/release/libfmodex64${lib_suffix})
endif (WORD_SIZE EQUAL 32) set(FMOD_LIBRARY_DEBUG ${LIBS_PREBUILT_DIR}/lib/debug/libfmodex64L${lib_suffix})
else(WINDOWS) else(WORD_SIZE EQUAL 64)
set(FMOD_LINK_LIBRARY_RELEASE ${FMODSTUDIO_LIBRARY_RELEASE}) set(FMOD_LIBRARY_RELEASE ${LIBS_PREBUILT_DIR}/lib/release/libfmodex${lib_suffix})
set(FMOD_LINK_LIBRARY_DEBUG ${FMODSTUDIO_LIBRARY_DEBUG}) set(FMOD_LIBRARY_DEBUG ${LIBS_PREBUILT_DIR}/lib/debug/libfmodexL${lib_suffix})
endif(WINDOWS) endif(WORD_SIZE EQUAL 64)
find_path(FMOD_INCLUDE_DIR fmod.hpp ${fmod_inc_paths}) 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(fmodex)
set(FMOD_INCLUDE_DIR
${LIBS_PREBUILT_DIR}/include/fmodex)
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) set(FMOD ON)
if (NOT FMOD_LIBRARY_DEBUG) #Use release library in debug configuration if debug library is absent. if (NOT FMOD_LIBRARY_DEBUG) #Use release library in debug configuration if debug library is absent.
set(FMOD_LIBRARY_DEBUG ${FMOD_LIBRARY_RELEASE}) set(FMOD_LIBRARY_DEBUG ${FMOD_LIBRARY_RELEASE})
endif (NOT FMOD_LIBRARY_DEBUG) endif (NOT FMOD_LIBRARY_DEBUG)
else (FMOD_LIBRARY_RELEASE AND FMOD_INCLUDE_DIR) else (FMOD_LIBRARY_RELEASE AND FMOD_INCLUDE_DIR)
message(STATUS "No support for FMOD Ex audio (need to set FMODEX_SDK_DIR?)") message(STATUS "No support for FMOD EX audio (need to set FMODEX_SDK_DIR?)")
set(FMOD OFF) set(FMOD OFF)
set(FMODEX OFF) set(FMODEX OFF)
endif (FMOD_LIBRARY_RELEASE AND FMOD_INCLUDE_DIR) endif (FMOD_LIBRARY_RELEASE AND FMOD_INCLUDE_DIR)
if (FMOD) if (FMOD)
message(STATUS "Building with FMOD Ex audio support") message(STATUS "Building with FMOD Ex audio support")
set(LLSTARTUP_COMPILE_FLAGS "${LLSTARTUP_COMPILE_FLAGS} -DLL_FMODEX")
endif (FMOD) endif (FMOD)

View File

@@ -3,45 +3,32 @@
include(Linking) include(Linking)
if (FMODEX AND FMODSTUDIO) if (FMODEX AND FMODSTUDIO)
message( FATAL_ERROR "You can not enable two FMOD variants at the same time." ) message( FATAL_ERROR "You can not enable two FMOD variants at the same time." )
endif (FMODEX AND FMODSTUDIO) endif (FMODEX AND FMODSTUDIO)
unset(FMOD_LIBRARY_RELEASE CACHE) unset(FMOD_LIBRARY_RELEASE CACHE)
unset(FMOD_LIBRARY_DEBUG CACHE) unset(FMOD_LIBRARY_DEBUG CACHE)
unset(FMOD_INCLUDE_DIR CACHE) unset(FMOD_INCLUDE_DIR CACHE)
if(STANDALONE) set(FMOD_EXTERNAL_LIB OFF)
if (NOT FMODSTUDIO_SDK_DIR AND WINDOWS)
GET_FILENAME_COMPONENT(REG_DIR [HKEY_CURRENT_USER\\Software\\FMOD\ Studio\ API\ Windows] ABSOLUTE) if(STANDALONE OR WINDOWS)
set(FMODSTUDIO_SDK_DIR ${REG_DIR} CACHE PATH "Path to the FMOD Studio SDK." FORCE) if (NOT FMODSTUDIO_SDK_DIR AND WINDOWS)
endif (NOT FMODSTUDIO_SDK_DIR AND WINDOWS) GET_FILENAME_COMPONENT(REG_DIR [HKEY_CURRENT_USER\\Software\\FMOD\ Studio\ API\ Windows] ABSOLUTE)
if(NOT FMODSTUDIO_SDK_DIR) set(FMODSTUDIO_SDK_DIR ${REG_DIR} CACHE PATH "Path to the FMOD Studio SDK." FORCE)
message(FATAL_ERROR "FMODSTUDIO_SDK_DIR not set!") endif (NOT FMODSTUDIO_SDK_DIR AND WINDOWS)
endif(NOT FMODSTUDIO_SDK_DIR) if(NOT FMODSTUDIO_SDK_DIR)
endif(STANDALONE) message(FATAL_ERROR "FMODSTUDIO_SDK_DIR not set!")
endif(NOT FMODSTUDIO_SDK_DIR)
endif(STANDALONE OR WINDOWS)
if(FMODSTUDIO_SDK_DIR) if(FMODSTUDIO_SDK_DIR)
if(LINUX AND WORD_SIZE EQUAL 32) if(LINUX AND WORD_SIZE EQUAL 32)
set(release_lib_paths ${release_fmod_lib_paths} "${FMODSTUDIO_SDK_DIR}/api/lowlevel/x86/lib" ) set(fmod_lib_paths "${FMODSTUDIO_SDK_DIR}/api/lowlevel/lib/x86" )
set(debug__lib_paths ${debug_fmod_lib_paths} "${FMODSTUDIO_SDK_DIR}/api/lowlevel/x86/lib")
elseif(LINUX) elseif(LINUX)
set(release__lib_paths ${release_fmod_lib_paths} "${FMODSTUDIO_SDK_DIR}/api/lowlevel/x86_64/lib") set(fmod_lib_paths "${FMODSTUDIO_SDK_DIR}/api/lowlevel/lib/x86_64")
set(debug_fmod_lib_paths ${debug_fmod_lib_paths} "${FMODSTUDIO_SDK_DIR}/api/lowlevel/x86_64/lib")
else(LINUX AND WORD_SIZE EQUAL 32) else(LINUX AND WORD_SIZE EQUAL 32)
set(release_fmod_lib_paths ${release_fmod_lib_paths} "${FMODSTUDIO_SDK_DIR}/api/lowlevel/lib") set(fmod_lib_paths "${FMODSTUDIO_SDK_DIR}/api/lowlevel/lib")
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) endif(LINUX AND WORD_SIZE EQUAL 32)
set(fmod_inc_paths "${FMODSTUDIO_SDK_DIR}/api/lowlevel/inc") set(fmod_inc_paths "${FMODSTUDIO_SDK_DIR}/api/lowlevel/inc")
@@ -50,16 +37,16 @@ if(FMODSTUDIO_SDK_DIR)
set(CMAKE_FIND_LIBRARY_SUFFIXES .dll) set(CMAKE_FIND_LIBRARY_SUFFIXES .dll)
endif(WINDOWS) endif(WINDOWS)
if(WORD_SIZE EQUAL 64 AND WINDOWS) if(WORD_SIZE EQUAL 64 AND WINDOWS)
find_library(FMOD_LIBRARY_RELEASE fmod64 PATHS ${release_fmod_lib_paths}) find_library(FMOD_LIBRARY_RELEASE fmod64 PATHS ${fmod_lib_paths} NO_DEFAULT_PATH)
find_library(FMOD_LIBRARY_DEBUG fmodL64 PATHS ${debug_fmod_lib_paths}) find_library(FMOD_LIBRARY_DEBUG fmodL64 PATHS ${fmod_lib_paths} NO_DEFAULT_PATH)
else(WORD_SIZE EQUAL 64 AND WINDOWS)#Check if CMAKE_FIND_LIBRARY_PREFIXES is set to 'lib' for darwin. 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_RELEASE fmod PATHS ${fmod_lib_paths} NO_DEFAULT_PATH)
find_library(FMOD_LIBRARY_DEBUG fmodL PATHS ${debug_fmod_lib_paths}) find_library(FMOD_LIBRARY_DEBUG fmodL PATHS ${fmod_lib_paths} NO_DEFAULT_PATH)
endif(WORD_SIZE EQUAL 64 AND WINDOWS) endif(WORD_SIZE EQUAL 64 AND WINDOWS)
if(WINDOWS) if(WINDOWS)
set(CMAKE_FIND_LIBRARY_SUFFIXES ${CMAKE_FIND_LIBRARY_SUFFIXES_OLD}) 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_RELEASE ${FMOD_LIBRARY_RELEASE})
string(REPLACE ".dll" "_vc.lib" FMOD_LINK_LIBRARY_DEBUG ${FMOD_LIBRARY_DEBUG}) string(REPLACE ".dll" "_vc.lib" FMOD_LINK_LIBRARY_DEBUG ${FMOD_LIBRARY_DEBUG})
else(WINDOWS) else(WINDOWS)
set(FMOD_LINK_LIBRARY_RELEASE ${FMOD_LIBRARY_RELEASE}) set(FMOD_LINK_LIBRARY_RELEASE ${FMOD_LIBRARY_RELEASE})
set(FMOD_LINK_LIBRARY_DEBUG ${FMOD_LIBRARY_DEBUG}) set(FMOD_LINK_LIBRARY_DEBUG ${FMOD_LIBRARY_DEBUG})
@@ -68,11 +55,12 @@ if(FMODSTUDIO_SDK_DIR)
if(NOT FMOD_LIBRARY_RELEASE OR NOT FMOD_INCLUDE_DIR) if(NOT FMOD_LIBRARY_RELEASE OR NOT FMOD_INCLUDE_DIR)
if(STANDALONE) if(STANDALONE)
message(FATAL_ERROR "Provided FMODSTUDIO_SDK_DIR path not found '{$FMODSTUDIO_SDK_DIR}'") message(FATAL_ERROR "Provided FMODSTUDIO_SDK_DIR path not found '{$FMODSTUDIO_SDK_DIR}'")
else(STANDALONE) else(STANDALONE)
message(STATUS "Provided FMODSTUDIO_SDK_DIR path not found '${FMODSTUDIO_SDK_DIR}'. Falling back to prebuilts") message(STATUS "Provided FMODSTUDIO_SDK_DIR path not found '${FMODSTUDIO_SDK_DIR}'. Falling back to prebuilts")
endif(STANDALONE) endif(STANDALONE)
else(NOT FMOD_LIBRARY_RELEASE OR NOT FMOD_INCLUDE_DIR) else(NOT FMOD_LIBRARY_RELEASE OR NOT FMOD_INCLUDE_DIR)
message(STATUS "Using system-provided FMOD Studio Libraries") message(STATUS "Using system-provided FMOD Studio Libraries")
set(FMOD_EXTERNAL_LIB ON)
endif(NOT FMOD_LIBRARY_RELEASE OR NOT FMOD_INCLUDE_DIR) endif(NOT FMOD_LIBRARY_RELEASE OR NOT FMOD_INCLUDE_DIR)
endif (FMODSTUDIO_SDK_DIR) endif (FMODSTUDIO_SDK_DIR)
@@ -88,10 +76,10 @@ if (NOT FMOD_LIBRARY_RELEASE OR NOT FMOD_INCLUDE_DIR)
if(WORD_SIZE EQUAL 64) if(WORD_SIZE EQUAL 64)
set(FMOD_LIBRARY_RELEASE ${LIBS_PREBUILT_DIR}/lib/release/fmod64${lib_suffix}) set(FMOD_LIBRARY_RELEASE ${LIBS_PREBUILT_DIR}/lib/release/fmod64${lib_suffix})
set(FMOD_LIBRARY_DEBUG ${LIBS_PREBUILT_DIR}/lib/debug/fmodL64${lib_suffix}) set(FMOD_LIBRARY_DEBUG ${LIBS_PREBUILT_DIR}/lib/debug/fmodL64${lib_suffix})
else(WORD_SIZE EQUAL 64) else(WORD_SIZE EQUAL 64)
set(FMOD_LIBRARY_RELEASE ${LIBS_PREBUILT_DIR}/lib/release/fmod${lib_suffix}) set(FMOD_LIBRARY_RELEASE ${LIBS_PREBUILT_DIR}/lib/release/fmod${lib_suffix})
set(FMOD_LIBRARY_DEBUG ${LIBS_PREBUILT_DIR}/lib/debug/fmodL${lib_suffix}) set(FMOD_LIBRARY_DEBUG ${LIBS_PREBUILT_DIR}/lib/debug/fmodL${lib_suffix})
endif(WORD_SIZE EQUAL 64) endif(WORD_SIZE EQUAL 64)
else(WINDOWS) else(WINDOWS)
set(FMOD_LIBRARY_RELEASE ${LIBS_PREBUILT_DIR}/lib/release/libfmod${lib_suffix}) set(FMOD_LIBRARY_RELEASE ${LIBS_PREBUILT_DIR}/lib/release/libfmod${lib_suffix})
set(FMOD_LIBRARY_DEBUG ${LIBS_PREBUILT_DIR}/lib/debug/libfmodL${lib_suffix}) set(FMOD_LIBRARY_DEBUG ${LIBS_PREBUILT_DIR}/lib/debug/libfmodL${lib_suffix})
@@ -99,8 +87,8 @@ if (NOT FMOD_LIBRARY_RELEASE OR NOT FMOD_INCLUDE_DIR)
set(FMOD_LINK_LIBRARY_RELEASE ${FMOD_LIBRARY_RELEASE}) set(FMOD_LINK_LIBRARY_RELEASE ${FMOD_LIBRARY_RELEASE})
set(FMOD_LINK_LIBRARY_DEBUG ${FMOD_LIBRARY_DEBUG}) set(FMOD_LINK_LIBRARY_DEBUG ${FMOD_LIBRARY_DEBUG})
if(WINDOWS) if(WINDOWS)
string(REPLACE ".dll" "_vc.lib" FMOD_LINK_LIBRARY_RELEASE ${FMOD_LIBRARY_RELEASE}) string(REPLACE ".dll" "_vc.lib" FMOD_LINK_LIBRARY_RELEASE ${FMOD_LIBRARY_RELEASE})
string(REPLACE ".dll" "_vc.lib" FMOD_LINK_LIBRARY_DEBUG ${FMOD_LIBRARY_DEBUG}) string(REPLACE ".dll" "_vc.lib" FMOD_LINK_LIBRARY_DEBUG ${FMOD_LIBRARY_DEBUG})
endif(WINDOWS) endif(WINDOWS)
use_prebuilt_binary(fmodstudio) use_prebuilt_binary(fmodstudio)
set(FMOD_INCLUDE_DIR set(FMOD_INCLUDE_DIR
@@ -120,4 +108,5 @@ endif (FMOD_LIBRARY_RELEASE AND FMOD_INCLUDE_DIR)
if (FMOD) if (FMOD)
message(STATUS "Building with FMOD Studio audio support") message(STATUS "Building with FMOD Studio audio support")
set(LLSTARTUP_COMPILE_FLAGS "${LLSTARTUP_COMPILE_FLAGS} -DLL_FMODSTUDIO")
endif (FMOD) endif (FMOD)

View File

@@ -2,6 +2,7 @@
include(Linking) include(Linking)
include(Prebuilt) include(Prebuilt)
if(NOT FMOD)
if (LINUX) if (LINUX)
set(OPENAL ON CACHE BOOL "Enable OpenAL") set(OPENAL ON CACHE BOOL "Enable OpenAL")
else (LINUX) else (LINUX)
@@ -29,4 +30,6 @@ endif (OPENAL)
if (OPENAL) if (OPENAL)
message(STATUS "Building with OpenAL audio support") message(STATUS "Building with OpenAL audio support")
set(LLSTARTUP_COMPILE_FLAGS "${LLSTARTUP_COMPILE_FLAGS} -DLL_OPENAL")
endif (OPENAL) endif (OPENAL)
endif(NOT FMOD)

View File

@@ -815,10 +815,12 @@ Commands:
Command-options for "configure": Command-options for "configure":
We use cmake variables to change the build configuration. We use cmake variables to change the build configuration.
-DPACKAGE:BOOL=ON Create "package" target to make installers -DPACKAGE:BOOL=ON Create "package" target to make installers
-DLOCALIZESETUP:BOOL=ON Create one win_setup target per supported language
-DLL_TESTS:BOOL=OFF Don't generate unit test projects -DLL_TESTS:BOOL=OFF Don't generate unit test projects
-DEXAMPLEPLUGIN:BOOL=OFF Don't generate example plugin project -DEXAMPLEPLUGIN:BOOL=OFF Don't generate example plugin project
-DDISABLE_TCMALLOC:BOOL=ON Disable linkage of TCMalloc. (64bit builds automatically disable TCMalloc) -DDISABLE_TCMALLOC:BOOL=ON Disable linkage of TCMalloc. (64bit builds automatically disable TCMalloc)
-DRELEASE_CRASH_REPORTING:BOOL=ON Enable Google Breakpad crash reporting
-DFMODSTUDIO:BOOL=ON Use FMOD Studio audio libraries
-DFMODEX:BOOL=ON Use FMOD Ex audio libraries
Examples: Examples:
Set up a Visual Studio 2010 project with "package" target: Set up a Visual Studio 2010 project with "package" target:

View File

@@ -1402,16 +1402,6 @@ if (WINDOWS)
list(APPEND viewer_SOURCE_FILES ${viewer_INSTALLER_FILES}) list(APPEND viewer_SOURCE_FILES ${viewer_INSTALLER_FILES})
endif (WINDOWS) endif (WINDOWS)
if (FMODSTUDIO)
set(LLSTARTUP_COMPILE_FLAGS "${LLSTARTUP_COMPILE_FLAGS} -DLL_FMODSTUDIO")
endif (FMODSTUDIO)
if (FMODEX)
set(LLSTARTUP_COMPILE_FLAGS "${LLSTARTUP_COMPILE_FLAGS} -DLL_FMODEX")
endif (FMODEX)
if (OPENAL)
set(LLSTARTUP_COMPILE_FLAGS "${LLSTARTUP_COMPILE_FLAGS} -DLL_OPENAL")
endif (OPENAL)
set_source_files_properties(llstartup.cpp PROPERTIES COMPILE_FLAGS "${LLSTARTUP_COMPILE_FLAGS}") set_source_files_properties(llstartup.cpp PROPERTIES COMPILE_FLAGS "${LLSTARTUP_COMPILE_FLAGS}")
list(APPEND viewer_SOURCE_FILES ${viewer_HEADER_FILES}) list(APPEND viewer_SOURCE_FILES ${viewer_HEADER_FILES})
@@ -1442,9 +1432,9 @@ if(FMOD_LIBRARY_RELEASE)
add_custom_target(fmod_lib_copy DEPENDS fmod_lib.marker prepare) add_custom_target(fmod_lib_copy DEPENDS fmod_lib.marker prepare)
if(DARWIN) if(DARWIN)
add_custom_command(OUTPUT fmod_lib_install.marker add_custom_command(OUTPUT fmod_lib_install.marker
COMMAND install_name_tool -id "@executable_path/../Resources/$<$<NOT:$<CONFIG:debug>>:${fmod_lib_rel_name}>$<$<CONFIG:debug>:${FMOD_LIBRARY_DEBUG}>" "${CMAKE_CFG_INTDIR}/$<$<NOT:$<CONFIG:debug>>:${fmod_lib_rel_name}>$<$<CONFIG:debug>:${fmod_lib_deb_name}>" COMMAND install_name_tool -id "@executable_path/../Resources/$<$<NOT:$<CONFIG:debug>>:${fmod_lib_rel_name}>$<$<CONFIG:debug>:${FMOD_LIBRARY_DEBUG}>" "${CMAKE_CFG_INTDIR}/$<$<NOT:$<CONFIG:debug>>:${fmod_lib_rel_name}>$<$<CONFIG:debug>:${fmod_lib_deb_name}>"
DEPENDS fmod_lib.marker) DEPENDS fmod_lib.marker)
add_dependencies(fmod_lib_copy fmod_lib_install.marker) add_dependencies(fmod_lib_copy fmod_lib_install.marker)
endif(DARWIN) endif(DARWIN)
add_dependencies(${VIEWER_BINARY_NAME} fmod_lib_copy) add_dependencies(${VIEWER_BINARY_NAME} fmod_lib_copy)

View File

@@ -210,7 +210,7 @@ class ViewerManifest(LLManifest):
except: except:
config, file = (None, None) config, file = (None, None)
if(config == 'optimized'): if(config == 'optimized'):
if(self.args['configuration'].lower() != 'release' and self.args['configuration'].lower() != 'relwithdebinfo'): if(self.args['configuration'].lower() != 'release' and self.args['configuration'].lower() != 'relwithdebinfo' and self.args['configuration'].lower() != 'universal'):
continue continue
cur_path = file cur_path = file
if(config == 'debug'): if(config == 'debug'):
@@ -218,7 +218,10 @@ class ViewerManifest(LLManifest):
continue continue
cur_path = file cur_path = file
if(cur_path != ''): if(cur_path != ''):
found_libs += self.path_optional(cur_path) if sys.platform == "linux" or sys.platform == "linux2":
found_libs += self.path_optional(cur_path+"*")
else:
found_libs += self.path_optional(cur_path)
return found_libs return found_libs
class WindowsManifest(ViewerManifest): class WindowsManifest(ViewerManifest):
@@ -578,7 +581,7 @@ class DarwinManifest(ViewerManifest):
self.end_prefix() self.end_prefix()
if self.prefix(src=self.args['configuration'], alt_build=libdir): if self.prefix(src= '' if self.args['configuration'].lower() == 'universal' else self.args['configuration'], alt_build=libdir):
dylibs += self.add_extra_libraries() dylibs += self.add_extra_libraries()
self.end_prefix() self.end_prefix()
@@ -880,7 +883,7 @@ class Linux_i686Manifest(LinuxManifest):
self.end_prefix("lib") self.end_prefix("lib")
if (not self.standalone()) and self.prefix(src=self.args['configuration'], alt_build="../packages/lib/release", dst="lib"): if (not self.standalone()) and self.prefix(src='', alt_build="../packages/lib/release", dst="lib"):
self.add_extra_libraries() self.add_extra_libraries()
self.end_prefix() self.end_prefix()
@@ -932,7 +935,7 @@ class Linux_x86_64Manifest(LinuxManifest):
self.end_prefix("lib") self.end_prefix("lib")
if (not self.standalone()) and self.prefix(src=self.args['configuration'], alt_build="../packages/lib/release", dst="lib"): if (not self.standalone()) and self.prefix(src='', alt_build="../packages/lib/release", dst="lib"):
self.add_extra_libraries() self.add_extra_libraries()
self.end_prefix() self.end_prefix()