Fix FMOD Ex packaging

This commit is contained in:
Siana Gearz
2012-08-19 19:04:22 +02:00
parent 95b7842e31
commit 23b34aeb92
3 changed files with 39 additions and 20 deletions

View File

@@ -53,6 +53,11 @@ find_path(FMODEX_INCLUDE_DIR fmod.h
${FMODEX_SDK_DIR} ${FMODEX_SDK_DIR}
) )
if(DARWIN)
set(FMODEX_ORIG_LIBRARY "${FMODEX_LIBRARY}")
set(FMODEX_LIBRARY "${CMAKE_CURRENT_BINARY_DIR}/libfmodex.dylib")
endif(DARWIN)
if (FMODEX_LIBRARY AND FMODEX_INCLUDE_DIR) if (FMODEX_LIBRARY AND FMODEX_INCLUDE_DIR)
set(FMODEX ON CACHE BOOL "Use closed source FMOD Ex sound library.") set(FMODEX ON CACHE BOOL "Use closed source FMOD Ex sound library.")
else (FMODEX_LIBRARY AND FMODEX_INCLUDE_DIR) else (FMODEX_LIBRARY AND FMODEX_INCLUDE_DIR)

View File

@@ -1371,12 +1371,9 @@ if (FMOD OR FMODEX)
endif (FMOD) endif (FMOD)
if (DARWIN) if (DARWIN)
#if(FMOD) # FIXME: This makes no sense, we can't nest an if(FMODEX) and it's senseless to check for FMOD again. if(FMOD)
set(fmodwrapper_SOURCE_FILES fmodwrapper.cpp) set(fmodwrapper_SOURCE_FILES fmodwrapper.cpp)
add_library(fmodwrapper SHARED ${fmodwrapper_SOURCE_FILES}) add_library(fmodwrapper SHARED ${fmodwrapper_SOURCE_FILES})
if (FMODEX)
set(fmodwrapper_needed_LIBRARIES ${FMODEX_LIBRARY} ${CARBON_LIBRARY})
endif (FMODEX)
if (FMOD) if (FMOD)
set(fmodwrapper_needed_LIBRARIES ${FMOD_LIBRARY} ${CARBON_LIBRARY}) set(fmodwrapper_needed_LIBRARIES ${FMOD_LIBRARY} ${CARBON_LIBRARY})
endif (FMOD) endif (FMOD)
@@ -1389,7 +1386,7 @@ if (FMOD OR FMODEX)
) )
set(FMODWRAPPER_LIBRARY fmodwrapper) set(FMODWRAPPER_LIBRARY fmodwrapper)
target_link_libraries(fmodwrapper ${fmodwrapper_needed_LIBRARIES}) target_link_libraries(fmodwrapper ${fmodwrapper_needed_LIBRARIES})
#endif(FMOD) # FIXME! endif(FMOD)
if(FMODEX) if(FMODEX)
set(FMODWRAPPER_LIBRARY ${FMODEX_LIBRARY}) set(FMODWRAPPER_LIBRARY ${FMODEX_LIBRARY})
endif(FMODEX) endif(FMODEX)
@@ -1441,21 +1438,21 @@ if (WINDOWS)
set(release_flags "/MAP:Release/${VIEWER_BINARY_NAME}.map") set(release_flags "/MAP:Release/${VIEWER_BINARY_NAME}.map")
endif() endif()
if (FMOD) if (FMOD)
if(MANIFEST_LIBRARIES) if(MANIFEST_LIBRARIES)
set(MANIFEST_LIBRARIES "${MANIFEST_LIBRARIES}|${FMOD_BINARY_DIR}/fmod.dll") set(MANIFEST_LIBRARIES "${MANIFEST_LIBRARIES}|${FMOD_BINARY_DIR}/fmod.dll")
else(MANIFEST_LIBRARIES) else(MANIFEST_LIBRARIES)
set(MANIFEST_LIBRARIES "--extra_libraries=${FMOD_BINARY_DIR}/fmod.dll") set(MANIFEST_LIBRARIES "--extra_libraries=${FMOD_BINARY_DIR}/fmod.dll")
endif(MANIFEST_LIBRARIES) endif(MANIFEST_LIBRARIES)
endif (FMOD) endif (FMOD)
if (FMODEX) if (FMODEX)
if(MANIFEST_LIBRARIES) if(MANIFEST_LIBRARIES)
set(MANIFEST_LIBRARIES "${MANIFEST_LIBRARIES}|${FMODEX_BINARY_DIR}/fmodex.dll") set(MANIFEST_LIBRARIES "${MANIFEST_LIBRARIES}|${FMODEX_BINARY_DIR}/fmodex.dll")
else(MANIFEST_LIBRARIES) else(MANIFEST_LIBRARIES)
set(MANIFEST_LIBRARIES "--extra_libraries=${FMODEX_BINARY_DIR}/fmodex.dll") set(MANIFEST_LIBRARIES "--extra_libraries=${FMODEX_BINARY_DIR}/fmodex.dll")
endif(MANIFEST_LIBRARIES) endif(MANIFEST_LIBRARIES)
set(EXTRA_LINKER_FLAGS "/DELAYLOAD:fmodex.dll") set(EXTRA_LINKER_FLAGS "/DELAYLOAD:fmodex.dll")
endif (FMODEX) endif (FMODEX)
set_target_properties(${VIEWER_BINARY_NAME} set_target_properties(${VIEWER_BINARY_NAME}
PROPERTIES PROPERTIES
@@ -1668,6 +1665,15 @@ if (DARWIN)
add_dependencies(${VIEWER_BINARY_NAME} SLPlugin media_plugin_quicktime media_plugin_webkit basic_plugin_filepicker) add_dependencies(${VIEWER_BINARY_NAME} SLPlugin media_plugin_quicktime media_plugin_webkit basic_plugin_filepicker)
if (FMODEX)
add_custom_command(OUTPUT "${FMODEX_LIBRARY}"
COMMAND cp "${FMODEX_ORIG_LIBRARY}" "${FMODEX_LIBRARY}"
COMMAND install_name_tool -id "@executable_path/../Resources/libfmodex.dylib" ${FMODEX_LIBRARY}
DEPENDS "${FMODEX_ORIG_LIBRARY}")
add_custom_target(fmodex_modified_library DEPENDS "${FMODEX_LIBRARY}")
add_dependencies(${VIEWER_BINARY_NAME} fmodex_modified_library)
endif (FMODEX)
if (PACKAGE) if (PACKAGE)
add_custom_target(package ALL DEPENDS ${VIEWER_BINARY_NAME}) add_custom_target(package ALL DEPENDS ${VIEWER_BINARY_NAME})
add_dependencies(package mac-updater mac-crash-logger) add_dependencies(package mac-updater mac-crash-logger)

View File

@@ -525,6 +525,14 @@ class DarwinManifest(ViewerManifest):
print "Skipping libfmodwrapper.dylib - not found" print "Skipping libfmodwrapper.dylib - not found"
pass pass
# And now FMOD Ex!
try:
self.path("libfmodex.dylib", "libfmodex.dylib")
pass
except:
print "Skipping libfmodex.dylib - not found"
pass
# our apps # our apps
try: try:
self.path("../mac_crash_logger/" + self.args['configuration'] + "/mac-crash-logger.app", "mac-crash-logger.app") self.path("../mac_crash_logger/" + self.args['configuration'] + "/mac-crash-logger.app", "mac-crash-logger.app")