Moved build dirs out of indra directory. installed.xml and prebuilts are now per-build-target. Added support for v3 prebuilt package layout.

This commit is contained in:
Shyotl
2014-12-03 22:36:42 -06:00
parent 7ddef751ef
commit 958031dbaf
44 changed files with 502 additions and 458 deletions

View File

@@ -46,7 +46,6 @@ include(GLOD)
include(LLAppearance)
if (WINDOWS)
include(CopyWinLibs)
set(CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP)
include(InstallRequiredSystemLibraries)
endif (WINDOWS)
@@ -1309,18 +1308,26 @@ if (WINDOWS)
if(FMODEX)
list(APPEND viewer_LIBRARIES ${FMODEX_LIBRARY})
endif(FMODEX)
find_library(DEBUG_INTEL_MEMOPS_LIBRARY ll_intel_memops
PATHS
${LIBS_PREBUILT_DIR}/lib/debug
${LIBS_PREBUILT_LEGACY_DIR}/lib/debug
"${QUICKTIME_SDK_DIR}\\libraries"
)
find_library(INTEL_MEMOPS_LIBRARY
NAMES ll_intel_memops
PATHS
optimized ${ARCH_PREBUILT_DIRS_RELEASE}
debug ${ARCH_PREBUILT_DIRS_DEBUG}
)
mark_as_advanced(INTEL_MEMOPS_LIBRARY)
find_library(RELEASE_INTEL_MEMOPS_LIBRARY ll_intel_memops
PATHS
${LIBS_PREBUILT_DIR}/lib/release
${LIBS_PREBUILT_LEGACY_DIR}/lib/release
"${QUICKTIME_SDK_DIR}\\libraries"
)
if (INTEL_MEMOPS_LIBRARY)
list(APPEND viewer_LIBRARIES ${INTEL_MEMOPS_LIBRARY})
endif (INTEL_MEMOPS_LIBRARY)
if (DEBUG_INTEL_MEMOPS_LIBRARY AND RELEASE_INTEL_MEMOPS_LIBRARY)
list(APPEND viewer_LIBRARIES optimized ${RELEASE_INTEL_MEMOPS_LIBRARY})
list(APPEND viewer_LIBRARIES debug ${DEBUG_INTEL_MEMOPS_LIBRARY})
mark_as_advanced(RELEASE_INTEL_MEMOPS_LIBRARY)
mark_as_advanced(DEBUG_INTEL_MEMOPS_LIBRARY)
endif (DEBUG_INTEL_MEMOPS_LIBRARY AND RELEASE_INTEL_MEMOPS_LIBRARY)
endif (WINDOWS)
# Add the xui files. This is handy for searching for xui elements
@@ -1449,9 +1456,9 @@ if (WINDOWS)
endif (WORD_SIZE EQUAL 32)
if(MANIFEST_LIBRARIES)
set(MANIFEST_LIBRARIES "${MANIFEST_LIBRARIES}|${FMODSTUDIO_BINARY_DIR}/${fmodstudio_dll_file}")
set(MANIFEST_LIBRARIES "${MANIFEST_LIBRARIES}|${fmodstudio_dll_file}")
else(MANIFEST_LIBRARIES)
set(MANIFEST_LIBRARIES "--extra_libraries=${FMODSTUDIO_BINARY_DIR}/${fmodstudio_dll_file}")
set(MANIFEST_LIBRARIES "--extra_libraries=${fmodstudio_dll_file}")
endif(MANIFEST_LIBRARIES)
set(EXTRA_LINKER_FLAGS "/DELAYLOAD:${fmodstudio_dll_file}")
endif (FMODSTUDIO)
@@ -1464,9 +1471,9 @@ if (WINDOWS)
endif (WORD_SIZE EQUAL 32)
if(MANIFEST_LIBRARIES)
set(MANIFEST_LIBRARIES "${MANIFEST_LIBRARIES}|${FMODEX_BINARY_DIR}/${fmodex_dll_file}")
set(MANIFEST_LIBRARIES "${MANIFEST_LIBRARIES}|${fmodex_dll_file}")
else(MANIFEST_LIBRARIES)
set(MANIFEST_LIBRARIES "--extra_libraries=${FMODEX_BINARY_DIR}/${fmodex_dll_file}")
set(MANIFEST_LIBRARIES "--extra_libraries=${fmodex_dll_file}")
endif(MANIFEST_LIBRARIES)
set(EXTRA_LINKER_FLAGS "/DELAYLOAD:${fmodex_dll_file}")
endif (FMODEX)
@@ -1515,8 +1522,6 @@ if (WINDOWS)
COMMENT "Copying message.xml to the runtime folder."
)
add_dependencies(${VIEWER_BINARY_NAME} copy_win_libs)
if (EXISTS ${CMAKE_SOURCE_DIR}/copy_win_scripts)
add_dependencies(${VIEWER_BINARY_NAME} copy_win_scripts)
endif (EXISTS ${CMAKE_SOURCE_DIR}/copy_win_scripts)
@@ -1567,7 +1572,11 @@ if (WINDOWS)
COMMENT "Performing viewer_manifest copy"
)
add_dependencies(${VIEWER_BINARY_NAME} SLPlugin media_plugin_quicktime media_plugin_webkit basic_plugin_filepicker winmm_shim)
add_dependencies(${VIEWER_BINARY_NAME} SLPlugin media_plugin_quicktime media_plugin_webkit basic_plugin_filepicker)
if(WORD_SIZE EQUAL 32)
add_dependencies(${VIEWER_BINARY_NAME} winmm_shim)
endif(WORD_SIZE EQUAL 32)
if (PACKAGE)
add_custom_target(package_viewer ALL DEPENDS ${CMAKE_CFG_INTDIR}/touched.bat)
@@ -1802,7 +1811,7 @@ if (PACKAGE)
# set(VIEWER_EXE_GLOBS "${VIEWER_BINARY_NAME}${CMAKE_EXECUTABLE_SUFFIX} slplugin.exe")
set(VIEWER_EXE_GLOBS "${VIEWER_BINARY_NAME}${CMAKE_EXECUTABLE_SUFFIX}")
set(VIEWER_LIB_GLOB "*${CMAKE_SHARED_MODULE_SUFFIX}")
set(VIEWER_COPY_MANIFEST copy_w_viewer_manifest)
set(VIEWER_DUMP_SYMS dump_syms.exe)
endif (WINDOWS)
if (DARWIN)
list(APPEND SYMBOL_SEARCH_DIRS "${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}")
@@ -1814,6 +1823,7 @@ if (PACKAGE)
set(VIEWER_SYMBOL_FILE "${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/secondlife-symbols-darwin.tar.bz2")
set(VIEWER_EXE_GLOBS "'${VIEWER_BRANDING_NAME}' SLPlugin")
set(VIEWER_LIB_GLOB "*.dylib")
set(VIEWER_DUMP_SYMS dump_syms)
endif (DARWIN)
if (LINUX)
list(APPEND SYMBOL_SEARCH_DIRS "${CMAKE_CURRENT_BINARY_DIR}/packaged")
@@ -1821,6 +1831,7 @@ if (PACKAGE)
set(VIEWER_EXE_GLOBS "${VIEWER_BRANDING_ID}-do-not-run-directly SLPlugin")
set(VIEWER_LIB_GLOB "*${CMAKE_SHARED_MODULE_SUFFIX}*")
set(VIEWER_COPY_MANIFEST copy_l_viewer_manifest)
set(VIEWER_DUMP_SYMS dump_syms)
endif (LINUX)
if(RELEASE_CRASH_REPORTING OR NON_RELEASE_CRASH_REPORTING)
@@ -1839,13 +1850,16 @@ if (PACKAGE)
"${SYMBOL_SEARCH_DIRS}"
"${VIEWER_EXE_GLOBS}"
"${VIEWER_LIB_GLOB}"
"${LIBS_PREBUILT_DIR}/${LL_ARCH_DIR}/bin/dump_syms"
"${LIBS_PREBUILT_DIR}/bin/${VIEWER_DUMP_SYMS}|${LIBS_PREBUILT_LEGACY_DIR}/bin/${VIEWER_DUMP_SYMS}"
"${VIEWER_SYMBOL_FILE}"
DEPENDS generate_breakpad_symbols.py
VERBATIM)
add_custom_target(generate_breakpad_symbols DEPENDS "${VIEWER_SYMBOL_FILE}")
add_dependencies(generate_breakpad_symbols "${VIEWER_BINARY_NAME}" "${VIEWER_COPY_MANIFEST}")
add_dependencies(generate_breakpad_symbols ${VIEWER_BINARY_NAME})
if(VIEWER_COPY_MANIFEST)
add_dependencies(generate_breakpad_symbols ${VIEWER_COPY_MANIFEST})
endif(VIEWER_COPY_MANIFEST)
add_dependencies(package_viewer generate_breakpad_symbols)
endif(RELEASE_CRASH_REPORTING OR NON_RELEASE_CRASH_REPORTING)
endif (PACKAGE)

View File

@@ -83,10 +83,15 @@ def main(configuration, search_dirs, viewer_exes, libs_suffix, dump_syms_tool, v
def dump_module(m):
print "dumping module '%s' with '%s'..." % (m, dump_syms_tool)
dsym_full_path = m
child = subprocess.Popen([dump_syms_tool, dsym_full_path] , stdout=subprocess.PIPE)
out, err = child.communicate()
return (m,child.returncode, out, err)
tools = dump_syms_tool.split('|')
for tool in tools:
if tool:
if os.path.isfile(tool):
child = subprocess.Popen([tool, dsym_full_path] , stdout=subprocess.PIPE)
out, err = child.communicate()
return (m,child.returncode, out, err)
raise IOError('Failed to find dump_syms tool!')
modules = {}

View File

@@ -187,11 +187,8 @@ class WindowsManifest(ViewerManifest):
# the final exe is complicated because we're not sure where it's coming from,
# nor do we have a fixed name for the executable
self.path(src='%s/secondlife-bin.exe' % self.args['configuration'], dst=self.final_exe())
if self.is_win64():
release_lib_dir = "../../libraries/x86_64-win/lib/release"
else:
release_lib_dir = "../../libraries/i686-win32/lib/release"
release_lib_dir = "Release"
# Plugin host application
self.path(os.path.join(os.pardir,
@@ -256,7 +253,7 @@ class WindowsManifest(ViewerManifest):
self.end_prefix()
# For WebKit/Qt plugin runtimes
if self.prefix(src=release_lib_dir, dst="llplugin"):
if self.prefix(src=release_lib_dir+"/llplugin", dst="llplugin"):
self.path("libeay32.dll")
self.path("qtcore4.dll")
self.path("qtgui4.dll")
@@ -268,7 +265,7 @@ class WindowsManifest(ViewerManifest):
self.end_prefix()
# For WebKit/Qt plugin runtimes (image format plugins)
if self.prefix(src=release_lib_dir+"/imageformats", dst="llplugin/imageformats"):
if self.prefix(src=release_lib_dir+"/llplugin/imageformats", dst="llplugin/imageformats"):
self.path("qgif4.dll")
self.path("qico4.dll")
self.path("qjpeg4.dll")
@@ -277,7 +274,7 @@ class WindowsManifest(ViewerManifest):
self.path("qtiff4.dll")
self.end_prefix()
if self.prefix(src=release_lib_dir+"/codecs", dst="llplugin/codecs"):
if self.prefix(src=release_lib_dir+"/llplugin/codecs", dst="llplugin/codecs"):
self.path("qcncodecs4.dll")
self.path("qjpcodecs4.dll")
self.path("qkrcodecs4.dll")
@@ -311,7 +308,7 @@ class WindowsManifest(ViewerManifest):
self.path("msvc*.dll")
except:
try:
if self.prefix(release_lib_dir+"/msvcrt", dst=""):
if self.prefix(src=release_lib_dir+"/msvcrt", dst=""):
self.path("*.dll")
self.path("*.manifest")
self.end_prefix()
@@ -319,7 +316,7 @@ class WindowsManifest(ViewerManifest):
pass
# Vivox runtimes
if self.prefix(src="vivox-runtime/i686-win32", dst=""):
if self.prefix(src=release_lib_dir, dst=""):
self.path("SLVoice.exe")
self.path("ca-bundle.crt")
self.path("libsndfile-1.dll")
@@ -334,9 +331,8 @@ class WindowsManifest(ViewerManifest):
print self.args['extra_libraries']
path_list = self.args['extra_libraries'].split('|')
for path in path_list:
path_pair = path.rsplit('/', 1)
if self.prefix(src=path_pair[0], dst=""):
self.path(path_pair[1])
if self.prefix(src=release_lib_dir, dst=""):
self.path(path)
self.end_prefix()
self.package_file = 'none'