Reorder Variables.cmake for mergeability Renames CMake Variables: FMODSTUDIO->USE_FMODSTUDIO, NVAPI->USE_NVAPI, VIEWER_CHANNEL_BASE->VIEWER_CHANNEL_TYPE VIEWER_BRANDING_ID->VIEWER_BINARY_NAME, VIEWER_PRODUCT_NAME->VIEWER_CHANNEL_BASE Remove unused variables: VIEWER_PACKAGE_ID, VIEWER_EXE_STRING, VIEWER_SHORTCUT_STRING, VERSION_BUILD PACKAGE now defaults to on, USE_FMODSTUDIO now defaults to off Use list append instead of set in some more places Adds support for Project channels.
283 lines
8.3 KiB
CMake
283 lines
8.3 KiB
CMake
# -*- cmake -*-
|
|
|
|
# The copy_win_libs folder contains file lists and a script used to
|
|
# copy dlls, exes and such needed to run the SecondLife from within
|
|
# VisualStudio.
|
|
|
|
include(CMakeCopyIfDifferent)
|
|
include(Linking)
|
|
include(Variables)
|
|
include(LLCommon)
|
|
|
|
###################################################################
|
|
# set up platform specific lists of files that need to be copied
|
|
###################################################################
|
|
if(WINDOWS)
|
|
set(CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP TRUE)
|
|
set(CMAKE_INSTALL_UCRT_LIBRARIES TRUE)
|
|
include(InstallRequiredSystemLibrariesAL)
|
|
|
|
set(SHARED_LIB_STAGING_DIR_DEBUG "${SHARED_LIB_STAGING_DIR}/Debug")
|
|
set(SHARED_LIB_STAGING_DIR_RELWITHDEBINFO "${SHARED_LIB_STAGING_DIR}/RelWithDebInfo")
|
|
set(SHARED_LIB_STAGING_DIR_RELEASE "${SHARED_LIB_STAGING_DIR}/Release")
|
|
|
|
#*******************************
|
|
# VIVOX - *NOTE: no debug version
|
|
set(vivox_src_dir "${ARCH_PREBUILT_DIRS_RELEASE}")
|
|
set(vivox_files
|
|
SLVoice.exe
|
|
vivoxplatform.dll
|
|
)
|
|
if (ADDRESS_SIZE EQUAL 64)
|
|
list(APPEND vivox_files
|
|
vivoxsdk_x64.dll
|
|
ortp_x64.dll
|
|
)
|
|
else (ADDRESS_SIZE EQUAL 64)
|
|
list(APPEND vivox_files
|
|
vivoxsdk.dll
|
|
ortp.dll
|
|
)
|
|
endif (ADDRESS_SIZE EQUAL 64)
|
|
|
|
#*******************************
|
|
# Misc shared libs
|
|
|
|
set(debug_src_dir "${ARCH_PREBUILT_DIRS_DEBUG}")
|
|
set(debug_files
|
|
libapr-1.dll
|
|
libaprutil-1.dll
|
|
libapriconv-1.dll
|
|
glod.dll
|
|
libhunspell.dll
|
|
)
|
|
|
|
set(release_src_dir "${ARCH_PREBUILT_DIRS_RELEASE}")
|
|
set(release_files
|
|
libapr-1.dll
|
|
libaprutil-1.dll
|
|
libapriconv-1.dll
|
|
glod.dll
|
|
libhunspell.dll
|
|
)
|
|
|
|
if(ADDRESS_SIZE EQUAL 64)
|
|
list(APPEND debug_files
|
|
libcrypto-1_1-x64.dll
|
|
libssl-1_1-x64.dll
|
|
)
|
|
list(APPEND release_files
|
|
libcrypto-1_1-x64.dll
|
|
libssl-1_1-x64.dll
|
|
)
|
|
else(ADDRESS_SIZE EQUAL 64)
|
|
list(APPEND debug_files
|
|
libcrypto-1_1.dll
|
|
libssl-1_1.dll
|
|
)
|
|
list(APPEND release_files
|
|
libcrypto-1_1.dll
|
|
libssl-1_1.dll
|
|
)
|
|
endif(ADDRESS_SIZE EQUAL 64)
|
|
|
|
if(NOT DISABLE_TCMALLOC)
|
|
list(APPEND debug_files libtcmalloc_minimal-debug.dll)
|
|
list(APPEND release_files libtcmalloc_minimal.dll)
|
|
endif(NOT DISABLE_TCMALLOC)
|
|
|
|
if(OPENAL)
|
|
list(APPEND debug_files alut.dll OpenAL32.dll)
|
|
list(APPEND release_files alut.dll OpenAL32.dll)
|
|
endif(OPENAL)
|
|
|
|
if (USE_FMODSTUDIO)
|
|
list(APPEND debug_files fmodL.dll)
|
|
list(APPEND release_files fmod.dll)
|
|
endif (USE_FMODSTUDIO)
|
|
|
|
foreach(redistfullfile IN LISTS CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS)
|
|
get_filename_component(redistfilepath ${redistfullfile} DIRECTORY )
|
|
get_filename_component(redistfilename ${redistfullfile} NAME)
|
|
copy_if_different(
|
|
${redistfilepath}
|
|
"${SHARED_LIB_STAGING_DIR_RELEASE}"
|
|
out_targets
|
|
${redistfilename}
|
|
)
|
|
set(third_party_targets ${third_party_targets} ${out_targets})
|
|
|
|
copy_if_different(
|
|
${redistfilepath}
|
|
"${SHARED_LIB_STAGING_DIR_RELWITHDEBINFO}"
|
|
out_targets
|
|
${redistfilename}
|
|
)
|
|
set(third_party_targets ${third_party_targets} ${out_targets})
|
|
endforeach()
|
|
|
|
elseif(DARWIN)
|
|
set(SHARED_LIB_STAGING_DIR_DEBUG "${SHARED_LIB_STAGING_DIR}/Debug/Resources")
|
|
set(SHARED_LIB_STAGING_DIR_RELWITHDEBINFO "${SHARED_LIB_STAGING_DIR}/RelWithDebInfo/Resources")
|
|
set(SHARED_LIB_STAGING_DIR_RELEASE "${SHARED_LIB_STAGING_DIR}/Release/Resources")
|
|
|
|
set(vivox_src_dir "${ARCH_PREBUILT_DIRS_RELEASE}")
|
|
set(vivox_files
|
|
SLVoice
|
|
ca-bundle.crt
|
|
libsndfile.dylib
|
|
libvivoxoal.dylib
|
|
libortp.dylib
|
|
libvivoxplatform.dylib
|
|
libvivoxsdk.dylib
|
|
)
|
|
set(debug_src_dir "${ARCH_PREBUILT_DIRS_DEBUG}")
|
|
set(debug_files
|
|
)
|
|
set(release_src_dir "${ARCH_PREBUILT_DIRS_RELEASE}")
|
|
set(release_files
|
|
libapr-1.0.dylib
|
|
libapr-1.dylib
|
|
libaprutil-1.0.dylib
|
|
libaprutil-1.dylib
|
|
libexception_handler.dylib
|
|
libexpat.1.5.2.dylib
|
|
libexpat.dylib
|
|
libGLOD.dylib
|
|
libhunspell-1.3.0.dylib
|
|
libndofdev.dylib
|
|
)
|
|
|
|
if (FMODSTUDIO)
|
|
list(APPEND debug_files libfmodL.dylib)
|
|
list(APPEND release_files libfmod.dylib)
|
|
endif (FMODSTUDIO)
|
|
|
|
elseif(LINUX)
|
|
# linux is weird, multiple side by side configurations aren't supported
|
|
# and we don't seem to have any debug shared libs built yet anyways...
|
|
set(SHARED_LIB_STAGING_DIR_DEBUG "${SHARED_LIB_STAGING_DIR}")
|
|
set(SHARED_LIB_STAGING_DIR_RELWITHDEBINFO "${SHARED_LIB_STAGING_DIR}")
|
|
set(SHARED_LIB_STAGING_DIR_RELEASE "${SHARED_LIB_STAGING_DIR}")
|
|
|
|
set(vivox_src_dir "${ARCH_PREBUILT_DIRS_RELEASE}")
|
|
set(vivox_files
|
|
libsndfile.so.1
|
|
libortp.so
|
|
libvivoxoal.so.1
|
|
libvivoxplatform.so
|
|
libvivoxsdk.so
|
|
SLVoice
|
|
)
|
|
# *TODO - update this to use LIBS_PREBUILT_DIR and LL_ARCH_DIR variables
|
|
# or ARCH_PREBUILT_DIRS
|
|
set(debug_src_dir "${ARCH_PREBUILT_DIRS_DEBUG}")
|
|
set(debug_files
|
|
)
|
|
# *TODO - update this to use LIBS_PREBUILT_DIR and LL_ARCH_DIR variables
|
|
# or ARCH_PREBUILT_DIRS
|
|
set(release_src_dir "${ARCH_PREBUILT_DIRS_RELEASE}")
|
|
# *FIX - figure out what to do with duplicate libalut.so here -brad
|
|
set(release_files
|
|
libapr-1.so.0
|
|
libaprutil-1.so.0
|
|
libatk-1.0.so
|
|
libexpat.so
|
|
libexpat.so.1
|
|
libGLOD.so
|
|
libgmodule-2.0.so
|
|
libgobject-2.0.so
|
|
libopenal.so
|
|
)
|
|
|
|
if (USE_TCMALLOC)
|
|
list(APPEND release_files "libtcmalloc_minimal.so")
|
|
endif (USE_TCMALLOC)
|
|
|
|
if (USE_FMODSTUDIO)
|
|
list(APPEND debug_files "libfmodL.so")
|
|
list(APPEND release_files "libfmod.so")
|
|
endif (USE_FMODSTUDIO)
|
|
|
|
else(WINDOWS)
|
|
message(STATUS "WARNING: unrecognized platform for staging 3rd party libs, skipping...")
|
|
set(vivox_src_dir "${CMAKE_SOURCE_DIR}/newview/vivox-runtime/i686-linux")
|
|
set(vivox_files "")
|
|
# *TODO - update this to use LIBS_PREBUILT_DIR and LL_ARCH_DIR variables
|
|
# or ARCH_PREBUILT_DIRS
|
|
set(debug_src_dir "${CMAKE_SOURCE_DIR}/../libraries/i686-linux/lib/debug")
|
|
set(debug_files "")
|
|
# *TODO - update this to use LIBS_PREBUILT_DIR and LL_ARCH_DIR variables
|
|
# or ARCH_PREBUILT_DIRS
|
|
set(release_src_dir "${CMAKE_SOURCE_DIR}/../libraries/i686-linux/lib/release")
|
|
set(release_files "")
|
|
|
|
set(debug_llkdu_src "")
|
|
set(debug_llkdu_dst "")
|
|
set(release_llkdu_src "")
|
|
set(release_llkdu_dst "")
|
|
set(relwithdebinfo_llkdu_dst "")
|
|
endif(WINDOWS)
|
|
|
|
|
|
################################################################
|
|
# Done building the file lists, now set up the copy commands.
|
|
################################################################
|
|
|
|
copy_if_different(
|
|
${vivox_src_dir}
|
|
"${SHARED_LIB_STAGING_DIR_DEBUG}"
|
|
out_targets
|
|
${vivox_files}
|
|
)
|
|
set(third_party_targets ${third_party_targets} ${out_targets})
|
|
|
|
copy_if_different(
|
|
${vivox_src_dir}
|
|
"${SHARED_LIB_STAGING_DIR_RELEASE}"
|
|
out_targets
|
|
${vivox_files}
|
|
)
|
|
set(third_party_targets ${third_party_targets} ${out_targets})
|
|
|
|
copy_if_different(
|
|
${vivox_src_dir}
|
|
"${SHARED_LIB_STAGING_DIR_RELWITHDEBINFO}"
|
|
out_targets
|
|
${vivox_files}
|
|
)
|
|
set(third_party_targets ${third_party_targets} ${out_targets})
|
|
|
|
|
|
|
|
#copy_if_different(
|
|
# ${debug_src_dir}
|
|
# "${SHARED_LIB_STAGING_DIR_DEBUG}"
|
|
# out_targets
|
|
# ${debug_files}
|
|
# )
|
|
#set(third_party_targets ${third_party_targets} ${out_targets})
|
|
|
|
copy_if_different(
|
|
${release_src_dir}
|
|
"${SHARED_LIB_STAGING_DIR_RELEASE}"
|
|
out_targets
|
|
${release_files}
|
|
)
|
|
set(third_party_targets ${third_party_targets} ${out_targets})
|
|
|
|
copy_if_different(
|
|
${release_src_dir}
|
|
"${SHARED_LIB_STAGING_DIR_RELWITHDEBINFO}"
|
|
out_targets
|
|
${release_files}
|
|
)
|
|
set(third_party_targets ${third_party_targets} ${out_targets})
|
|
|
|
if(NOT USESYSTEMLIBS)
|
|
add_custom_target(
|
|
stage_third_party_libs ALL
|
|
DEPENDS ${third_party_targets}
|
|
)
|
|
endif(NOT USESYSTEMLIBS)
|