Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • alchemy/viewer
  • Miezhiko/alchemy-next
  • JennaHuntsman/xdg-integration
  • logue/alchemy-next
  • FelixWolf/alchemy-viewer
  • XenHat/xdg-integration
6 results
Show changes
Showing
with 555 additions and 729 deletions
# -*- cmake -*-
include(Prebuilt)
use_prebuilt_binary(libatmosphere)
set(LIBATMOSPHERE_LIBRARIES atmosphere)
set(LIBATMOSPHERE_INCLUDE_DIR ${LIBS_PREBUILT_DIR}/include/atmosphere)
# -*- cmake -*-
include(Linking)
include(Prebuilt)
if (USESYSTEMLIBS)
include(FindPkgConfig)
pkg_check_modules(OGG REQUIRED ogg)
pkg_check_modules(VORBIS REQUIRED vorbis)
pkg_check_modules(VORBISENC REQUIRED vorbisenc)
pkg_check_modules(VORBISFILE REQUIRED vorbisfile)
else (USESYSTEMLIBS)
use_prebuilt_binary(ogg_vorbis)
set(VORBIS_INCLUDE_DIRS ${LIBS_PREBUILT_DIR}/include)
set(VORBISENC_INCLUDE_DIRS ${VORBIS_INCLUDE_DIRS})
set(VORBISFILE_INCLUDE_DIRS ${VORBIS_INCLUDE_DIRS})
include_guard()
add_library( ll::vorbis INTERFACE IMPORTED )
if (WINDOWS)
set(OGG_LIBRARIES
optimized ogg_static
debug ogg_static_d)
set(VORBIS_LIBRARIES
optimized vorbis_static
debug vorbis_static_d)
set(VORBISENC_LIBRARIES
optimized vorbisenc_static
debug vorbisenc_static_d)
set(VORBISFILE_LIBRARIES
optimized vorbisfile_static
debug vorbisfile_static_d)
else (WINDOWS)
set(OGG_LIBRARIES ogg)
set(VORBIS_LIBRARIES vorbis)
set(VORBISENC_LIBRARIES vorbisenc)
set(VORBISFILE_LIBRARIES vorbisfile)
endif (WINDOWS)
endif (USESYSTEMLIBS)
use_system_binary(vorbis)
use_prebuilt_binary(ogg_vorbis)
target_include_directories( ll::vorbis SYSTEM INTERFACE ${LIBS_PREBUILT_DIR}/include )
link_directories(
${VORBIS_LIBRARY_DIRS}
${VORBISENC_LIBRARY_DIRS}
${VORBISFILE_LIBRARY_DIRS}
${OGG_LIBRARY_DIRS}
if (WINDOWS)
target_link_libraries(ll::vorbis INTERFACE
optimized ${ARCH_PREBUILT_DIRS_RELEASE}/libogg.lib
debug ${ARCH_PREBUILT_DIRS_DEBUG}/libogg.lib
optimized ${ARCH_PREBUILT_DIRS_RELEASE}/libvorbis.lib
debug ${ARCH_PREBUILT_DIRS_DEBUG}/libvorbis.lib
optimized ${ARCH_PREBUILT_DIRS_RELEASE}/libvorbisfile.lib
debug ${ARCH_PREBUILT_DIRS_DEBUG}/libvorbisfile.lib
)
else (WINDOWS)
target_link_libraries(ll::vorbis INTERFACE
optimized ${ARCH_PREBUILT_DIRS_RELEASE}/libvorbisenc.a
debug ${ARCH_PREBUILT_DIRS_DEBUG}/libvorbisenc.a
optimized ${ARCH_PREBUILT_DIRS_RELEASE}/libvorbisfile.a
debug ${ARCH_PREBUILT_DIRS_DEBUG}/libvorbisfile.a
optimized ${ARCH_PREBUILT_DIRS_RELEASE}/libvorbis.a
debug ${ARCH_PREBUILT_DIRS_DEBUG}/libvorbis.a
optimized ${ARCH_PREBUILT_DIRS_RELEASE}/libogg.a
debug ${ARCH_PREBUILT_DIRS_DEBUG}/libogg.a
)
endif (WINDOWS)
# -*- cmake -*-
include(Prebuilt)
set(Boost_FIND_QUIETLY ON)
set(Boost_FIND_REQUIRED ON)
include_guard()
if (USESYSTEMLIBS)
include(FindBoost)
add_library( ll::boost INTERFACE IMPORTED )
if( USE_CONAN )
target_link_libraries( ll::boost INTERFACE CONAN_PKG::boost )
target_compile_definitions( ll::boost INTERFACE BOOST_ALLOW_DEPRECATED_HEADERS BOOST_BIND_GLOBAL_PLACEHOLDERS )
return()
endif()
set(BOOST_CONTEXT_LIBRARY boost_context-mt)
set(BOOST_FIBER_LIBRARY boost_fiber-mt)
set(BOOST_FILESYSTEM_LIBRARY boost_filesystem-mt)
set(BOOST_PROGRAM_OPTIONS_LIBRARY boost_program_options-mt)
set(BOOST_REGEX_LIBRARY boost_regex-mt)
set(BOOST_SIGNALS_LIBRARY boost_signals-mt)
set(BOOST_SYSTEM_LIBRARY boost_system-mt)
set(BOOST_THREAD_LIBRARY boost_thread-mt)
else (USESYSTEMLIBS)
use_prebuilt_binary(boost)
set(Boost_INCLUDE_DIRS ${LIBS_PREBUILT_DIR}/include)
use_prebuilt_binary(boost)
# As of sometime between Boost 1.67 and 1.72, Boost libraries are suffixed
# with the address size.
set(addrsfx "-x${ADDRESS_SIZE}")
# As of sometime between Boost 1.67 and 1.72, Boost libraries are suffixed
# with the address size.
set(addrsfx "-x${ADDRESS_SIZE}")
if (WINDOWS)
set(BOOST_CONTEXT_LIBRARY
optimized libboost_context-mt${addrsfx}
debug libboost_context-mt${addrsfx}-gd)
set(BOOST_FIBER_LIBRARY
optimized libboost_fiber-mt${addrsfx}
debug libboost_fiber-mt${addrsfx}-gd)
set(BOOST_FILESYSTEM_LIBRARY
optimized libboost_filesystem-mt${addrsfx}
debug libboost_filesystem-mt${addrsfx}-gd)
set(BOOST_PROGRAM_OPTIONS_LIBRARY
optimized libboost_program_options-mt${addrsfx}
debug libboost_program_options-mt${addrsfx}-gd)
set(BOOST_REGEX_LIBRARY
optimized libboost_regex-mt${addrsfx}
debug libboost_regex-mt${addrsfx}-gd)
set(BOOST_SIGNALS_LIBRARY
optimized libboost_signals-mt${addrsfx}
debug libboost_signals-mt${addrsfx}-gd)
set(BOOST_SYSTEM_LIBRARY
optimized libboost_system-mt${addrsfx}
debug libboost_system-mt${addrsfx}-gd)
set(BOOST_THREAD_LIBRARY
optimized libboost_thread-mt${addrsfx}
debug libboost_thread-mt${addrsfx}-gd)
elseif (LINUX)
set(BOOST_CONTEXT_LIBRARY
optimized boost_context-mt${addrsfx}
debug boost_context-mt${addrsfx}-d)
set(BOOST_FIBER_LIBRARY
optimized boost_fiber-mt${addrsfx}
debug boost_fiber-mt${addrsfx}-d)
set(BOOST_FILESYSTEM_LIBRARY
optimized boost_filesystem-mt${addrsfx}
debug boost_filesystem-mt${addrsfx}-d)
set(BOOST_PROGRAM_OPTIONS_LIBRARY
optimized boost_program_options-mt${addrsfx}
debug boost_program_options-mt${addrsfx}-d)
set(BOOST_REGEX_LIBRARY
optimized boost_regex-mt${addrsfx}
debug boost_regex-mt${addrsfx}-d)
set(BOOST_SIGNALS_LIBRARY
optimized boost_signals-mt${addrsfx}
debug boost_signals-mt${addrsfx}-d)
set(BOOST_SYSTEM_LIBRARY
optimized boost_system-mt${addrsfx}
debug boost_system-mt${addrsfx}-d)
set(BOOST_THREAD_LIBRARY
optimized boost_thread-mt${addrsfx}
debug boost_thread-mt${addrsfx}-d)
elseif (DARWIN)
set(BOOST_CONTEXT_LIBRARY
optimized boost_context-mt${addrsfx}
debug boost_context-mt${addrsfx})
set(BOOST_FIBER_LIBRARY
optimized boost_fiber-mt${addrsfx}
debug boost_fiber-mt${addrsfx})
set(BOOST_FILESYSTEM_LIBRARY
optimized boost_filesystem-mt${addrsfx}
debug boost_filesystem-mt${addrsfx})
set(BOOST_PROGRAM_OPTIONS_LIBRARY
optimized boost_program_options-mt${addrsfx}
debug boost_program_options-mt${addrsfx})
set(BOOST_REGEX_LIBRARY
optimized boost_regex-mt${addrsfx}
debug boost_regex-mt${addrsfx})
set(BOOST_SIGNALS_LIBRARY
optimized boost_signals-mt${addrsfx}
debug boost_signals-mt${addrsfx})
set(BOOST_SYSTEM_LIBRARY
optimized boost_system-mt${addrsfx}
debug boost_system-mt${addrsfx})
set(BOOST_THREAD_LIBRARY
optimized boost_thread-mt${addrsfx}
debug boost_thread-mt${addrsfx})
endif (WINDOWS)
endif (USESYSTEMLIBS)
if (LINUX)
set(BOOST_SYSTEM_LIBRARY ${BOOST_SYSTEM_LIBRARY} rt)
set(BOOST_THREAD_LIBRARY ${BOOST_THREAD_LIBRARY} rt)
endif (LINUX)
if (WINDOWS)
target_link_libraries( ll::boost INTERFACE
optimized ${ARCH_PREBUILT_DIRS_RELEASE}/libboost_context-mt${addrsfx}.lib
debug ${ARCH_PREBUILT_DIRS_DEBUG}/libboost_context-mt-gd${addrsfx}.lib
optimized ${ARCH_PREBUILT_DIRS_RELEASE}/libboost_fiber-mt${addrsfx}.lib
debug ${ARCH_PREBUILT_DIRS_DEBUG}/libboost_fiber-mt-gd${addrsfx}.lib
optimized ${ARCH_PREBUILT_DIRS_RELEASE}/libboost_filesystem-mt${addrsfx}.lib
debug ${ARCH_PREBUILT_DIRS_DEBUG}/libboost_filesystem-mt-gd${addrsfx}.lib
optimized ${ARCH_PREBUILT_DIRS_RELEASE}/libboost_program_options-mt${addrsfx}.lib
debug ${ARCH_PREBUILT_DIRS_DEBUG}/libboost_program_options-mt-gd${addrsfx}.lib
optimized ${ARCH_PREBUILT_DIRS_RELEASE}/libboost_regex-mt${addrsfx}.lib
debug ${ARCH_PREBUILT_DIRS_DEBUG}/libboost_regex-mt-gd${addrsfx}.lib
optimized ${ARCH_PREBUILT_DIRS_RELEASE}/libboost_stacktrace_windbg-mt${addrsfx}.lib
debug ${ARCH_PREBUILT_DIRS_DEBUG}/libboost_stacktrace_windbg-mt-gd${addrsfx}.lib
optimized ${ARCH_PREBUILT_DIRS_RELEASE}/libboost_system-mt${addrsfx}.lib
debug ${ARCH_PREBUILT_DIRS_DEBUG}/libboost_system-mt-gd${addrsfx}.lib
optimized ${ARCH_PREBUILT_DIRS_RELEASE}/libboost_thread-mt${addrsfx}.lib
debug ${ARCH_PREBUILT_DIRS_DEBUG}/libboost_thread-mt-gd${addrsfx}.lib
optimized ${ARCH_PREBUILT_DIRS_RELEASE}/libboost_wave-mt${addrsfx}.lib
debug ${ARCH_PREBUILT_DIRS_DEBUG}/libboost_wave-mt-gd${addrsfx}.lib
)
elseif (LINUX)
target_link_libraries( ll::boost INTERFACE
${ARCH_PREBUILT_DIRS}/libboost_fiber-mt${addrsfx}.a
${ARCH_PREBUILT_DIRS}/libboost_context-mt${addrsfx}.a
${ARCH_PREBUILT_DIRS}/libboost_filesystem-mt${addrsfx}.a
${ARCH_PREBUILT_DIRS}/libboost_program_options-mt${addrsfx}.a
${ARCH_PREBUILT_DIRS}/libboost_regex-mt${addrsfx}.a
${ARCH_PREBUILT_DIRS}/libboost_thread-mt${addrsfx}.a
${ARCH_PREBUILT_DIRS}/libboost_wave-mt${addrsfx}.a
${ARCH_PREBUILT_DIRS}/libboost_system-mt${addrsfx}.a
rt
)
elseif (DARWIN)
target_link_libraries( ll::boost INTERFACE
optimized boost_context-mt
debug boost_context-mt-d
optimized boost_fiber-mt
debug boost_fiber-mt-d
optimized boost_filesystem-mt
debug boost_filesystem-mt-d
optimized boost_program_options-mt
debug boost_program_options-mt-d
optimized boost_regex-mt
debug boost_regex-mt-d
optimized boost_system-mt
debug boost_system-mt-d
optimized boost_thread-mt
debug boost_thread-mt-d
optimized boost_wave-mt
debug boost_wave-mt-d
)
endif (WINDOWS)
target_compile_definitions( ll::boost INTERFACE BOOST_ALLOW_DEPRECATED_HEADERS=1 BOOST_CONFIG_SUPPRESS_OUTDATED_MESSAGE=1 BOOST_BIND_GLOBAL_PLACEHOLDERS=1)
# -*- cmake -*-
# Construct the version and copyright information based on package data.
include(Python)
include(FindAutobuild)
include_guard()
# packages-formatter.py runs autobuild install --versions, which needs to know
# the build_directory, which (on Windows) depends on AUTOBUILD_ADDRSIZE.
# Within an autobuild build, AUTOBUILD_ADDRSIZE is already set. But when
......@@ -13,8 +14,8 @@ add_custom_command(OUTPUT packages-info.txt
MAIN_DEPENDENCY ${CMAKE_SOURCE_DIR}/../autobuild.xml
DEPENDS ${CMAKE_SOURCE_DIR}/../scripts/packages-formatter.py
${CMAKE_SOURCE_DIR}/../autobuild.xml
COMMAND ${PYTHON_EXECUTABLE}
COMMAND ${Python3_EXECUTABLE}
${CMAKE_SOURCE_DIR}/cmake/run_build_test.py -DAUTOBUILD_ADDRSIZE=${ADDRESS_SIZE} -DAUTOBUILD=${AUTOBUILD_EXECUTABLE}
${PYTHON_EXECUTABLE}
${CMAKE_SOURCE_DIR}/../scripts/packages-formatter.py "${VIEWER_CHANNEL}" "${VIEWER_SHORT_VERSION}.${VIEWER_VERSION_REVISION}" > packages-info.txt
${Python3_EXECUTABLE}
${CMAKE_SOURCE_DIR}/../scripts/packages-formatter.py "${VIEWER_CHANNEL}" "${VIEWER_SHORT_VERSION}.${VIEWER_VERSION_REVISION}" "${LIBS_PREBUILT_DIR}" > packages-info.txt
)
# -*- cmake -*-
# Construct the viewer version number based on the indra/VIEWER_VERSION file
if (NOT DEFINED VIEWER_SHORT_VERSION) # will be true in indra/, false in indra/newview/
set(VIEWER_VERSION_BASE_FILE "${CMAKE_CURRENT_SOURCE_DIR}/newview/VIEWER_VERSION.txt")
include_guard()
option(REVISION_FROM_VCS "Get current revision from vcs" ON)
# Construct the viewer channel from environment variables or defaults
if(NOT DEFINED VIEWER_CHANNEL)
if(DEFINED ENV{VIEWER_CHANNEL_BASE})
set(VIEWER_CHANNEL_BASE
$ENV{VIEWER_CHANNEL_BASE}
CACHE STRING "Viewer Channel Base Name" FORCE)
else()
set(VIEWER_CHANNEL_BASE
"Alchemy"
CACHE STRING "Viewer Channel Base Name")
endif()
if(DEFINED ENV{VIEWER_CHANNEL_TYPE})
set(VIEWER_CHANNEL_TYPE
$ENV{VIEWER_CHANNEL_TYPE}
CACHE STRING "Viewer Channel Type Name" FORCE)
else()
set(VIEWER_CHANNEL_TYPE
"Test"
CACHE STRING "Viewer Channel Type Name")
endif()
if(DEFINED ENV{VIEWER_CHANNEL_CODENAME})
set(VIEWER_CHANNEL_CODENAME_INTERNAL $ENV{VIEWER_CHANNEL_CODENAME})
elseif(DEFINED VIEWER_CHANNEL_CODENAME)
set(VIEWER_CHANNEL_CODENAME_INTERNAL ${VIEWER_CHANNEL_CODENAME})
else()
set(VIEWER_CHANNEL_CODENAME_FILE "${CMAKE_SOURCE_DIR}/newview/VIEWER_PROJECT_CODENAME.txt")
if(EXISTS ${VIEWER_CHANNEL_CODENAME_FILE})
file(STRINGS ${VIEWER_CHANNEL_CODENAME_FILE} VIEWER_CHANNEL_CODENAME_INTERNAL)
else()
set(VIEWER_CHANNEL_CODENAME_INTERNAL "Default")
endif()
endif()
if("${VIEWER_CHANNEL_TYPE}" STREQUAL "Project")
set(VIEWER_CHANNEL "${VIEWER_CHANNEL_BASE} ${VIEWER_CHANNEL_TYPE} ${VIEWER_CHANNEL_CODENAME_INTERNAL}")
else()
set(VIEWER_CHANNEL "${VIEWER_CHANNEL_BASE} ${VIEWER_CHANNEL_TYPE}")
endif()
endif()
if ( EXISTS ${VIEWER_VERSION_BASE_FILE} )
if(DEFINED VIEWER_CHANNEL)
string(REPLACE " " "" VIEWER_CHANNEL_ONEWORD ${VIEWER_CHANNEL})
endif()
# Construct the viewer version number based on the indra/VIEWER_VERSION file
if(NOT DEFINED VIEWER_SHORT_VERSION) # will be true in indra/, false in indra/newview/
set(VIEWER_VERSION_BASE_FILE "${CMAKE_SOURCE_DIR}/newview/VIEWER_VERSION.txt")
if(EXISTS ${VIEWER_VERSION_BASE_FILE})
file(STRINGS ${VIEWER_VERSION_BASE_FILE} VIEWER_SHORT_VERSION REGEX "^[0-9]+\\.[0-9]+\\.[0-9]+")
string(REGEX REPLACE "^([0-9]+)\\.[0-9]+\\.[0-9]+" "\\1" VIEWER_VERSION_MAJOR ${VIEWER_SHORT_VERSION})
string(REGEX REPLACE "^[0-9]+\\.([0-9]+)\\.[0-9]+" "\\1" VIEWER_VERSION_MINOR ${VIEWER_SHORT_VERSION})
string(REGEX REPLACE "^[0-9]+\\.[0-9]+\\.([0-9]+)" "\\1" VIEWER_VERSION_PATCH ${VIEWER_SHORT_VERSION})
if (DEFINED ENV{revision})
set(VIEWER_VERSION_REVISION $ENV{revision})
message(STATUS "Revision (from environment): ${VIEWER_VERSION_REVISION}")
elseif (DEFINED ENV{AUTOBUILD_BUILD_ID})
set(VIEWER_VERSION_REVISION $ENV{AUTOBUILD_BUILD_ID})
message(STATUS "Revision (from autobuild environment): ${VIEWER_VERSION_REVISION}")
else (DEFINED ENV{revision})
find_program(MERCURIAL
NAMES hg
PATHS [HKEY_LOCAL_MACHINE\\Software\\TortoiseHG]
PATH_SUFFIXES Mercurial)
mark_as_advanced(MERCURIAL)
if (MERCURIAL)
execute_process(COMMAND ${MERCURIAL} identify --num --rev tip
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
RESULT_VARIABLE hg_id_result
ERROR_VARIABLE hg_id_error
OUTPUT_VARIABLE VIEWER_VERSION_REVISION
OUTPUT_STRIP_TRAILING_WHITESPACE)
if (NOT ${hg_id_result} EQUAL 0)
message(SEND_ERROR "Revision number generation failed with output:\n${hg_id_error}")
else (NOT ${hg_id_result} EQUAL 0)
string(REGEX REPLACE "[^0-9a-f]" "" VIEWER_VERSION_REVISION ${VIEWER_VERSION_REVISION})
endif (NOT ${hg_id_result} EQUAL 0)
if ("${VIEWER_VERSION_REVISION}" MATCHES "^[0-9]+$")
message(STATUS "Revision (from hg) ${VIEWER_VERSION_REVISION}")
else ("${VIEWER_VERSION_REVISION}" MATCHES "^[0-9]+$")
message(STATUS "Revision not set (repository not found?); using 0")
set(VIEWER_VERSION_REVISION 0 )
endif ("${VIEWER_VERSION_REVISION}" MATCHES "^[0-9]+$")
else (MERCURIAL)
message(STATUS "Revision not set: mercurial not found; using 0")
set(VIEWER_VERSION_REVISION 0)
endif (MERCURIAL)
endif (DEFINED ENV{revision})
if(REVISION_FROM_VCS)
find_package(Git)
endif()
if((NOT REVISION_FROM_VCS) AND DEFINED ENV{CI_PIPELINE_ID})
set(VIEWER_VERSION_REVISION $ENV{CI_PIPELINE_ID})
message(STATUS "Revision (from environment): ${VIEWER_VERSION_REVISION}")
elseif((NOT REVISION_FROM_VCS) AND DEFINED ENV{AUTOBUILD_BUILD_ID})
set(VIEWER_VERSION_REVISION $ENV{AUTOBUILD_BUILD_ID})
message(STATUS "Revision (from autobuild environment): ${VIEWER_VERSION_REVISION}")
elseif(Git_FOUND)
execute_process(
COMMAND ${GIT_EXECUTABLE} rev-list HEAD --count
OUTPUT_VARIABLE GIT_REV_LIST_COUNT
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
OUTPUT_STRIP_TRAILING_WHITESPACE)
if(GIT_REV_LIST_COUNT)
set(VIEWER_VERSION_REVISION ${GIT_REV_LIST_COUNT})
else(GIT_REV_LIST_COUNT)
set(VIEWER_VERSION_REVISION 0)
endif(GIT_REV_LIST_COUNT)
else()
set(VIEWER_VERSION_REVISION 0)
endif()
message(STATUS "Building '${VIEWER_CHANNEL}' Version ${VIEWER_SHORT_VERSION}.${VIEWER_VERSION_REVISION}")
else ( EXISTS ${VIEWER_VERSION_BASE_FILE} )
message(SEND_ERROR "Cannot get viewer version from '${VIEWER_VERSION_BASE_FILE}'")
endif ( EXISTS ${VIEWER_VERSION_BASE_FILE} )
if ("${VIEWER_VERSION_REVISION}" STREQUAL "")
message(STATUS "Ultimate fallback, revision was blank or not set: will use 0")
set(VIEWER_VERSION_REVISION 0)
endif ("${VIEWER_VERSION_REVISION}" STREQUAL "")
set(VIEWER_CHANNEL_VERSION_DEFINES
"LL_VIEWER_CHANNEL=${VIEWER_CHANNEL}"
"LL_VIEWER_VERSION_MAJOR=${VIEWER_VERSION_MAJOR}"
"LL_VIEWER_VERSION_MINOR=${VIEWER_VERSION_MINOR}"
"LL_VIEWER_VERSION_PATCH=${VIEWER_VERSION_PATCH}"
"LL_VIEWER_VERSION_BUILD=${VIEWER_VERSION_REVISION}"
"LLBUILD_CONFIG=\"${CMAKE_BUILD_TYPE}\""
)
endif (NOT DEFINED VIEWER_SHORT_VERSION)
else(EXISTS ${VIEWER_VERSION_BASE_FILE})
message(SEND_ERROR "Cannot get viewer version from '${VIEWER_VERSION_BASE_FILE}'")
endif(EXISTS ${VIEWER_VERSION_BASE_FILE})
if("${VIEWER_VERSION_REVISION}" STREQUAL "")
message(STATUS "Ultimate fallback, revision was blank or not set: will use 0")
set(VIEWER_VERSION_REVISION 0)
endif("${VIEWER_VERSION_REVISION}" STREQUAL "")
set(VIEWER_VERSION_AND_CHANNEL "${VIEWER_CHANNEL} ${VIEWER_SHORT_VERSION}.${VIEWER_VERSION_REVISION}")
endif(NOT DEFINED VIEWER_SHORT_VERSION)
if (NOT DEFINED VIEWER_COMMIT_LONG_SHA)
if((NOT REVISION_FROM_VCS) AND DEFINED ENV{CI_COMMIT_SHA})
set(VIEWER_COMMIT_LONG_SHA $ENV{CI_COMMIT_SHA})
message(STATUS "Long SHA (from environment): ${VIEWER_COMMIT_LONG_SHA}")
elseif(Git_FOUND)
execute_process(COMMAND ${GIT_EXECUTABLE} rev-parse HEAD
OUTPUT_VARIABLE GIT_COMMIT_SHA
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
OUTPUT_STRIP_TRAILING_WHITESPACE
)
if(GIT_COMMIT_SHA)
set(VIEWER_COMMIT_LONG_SHA ${GIT_COMMIT_SHA})
else()
set(VIEWER_COMMIT_LONG_SHA 0)
endif()
message(STATUS "Long SHA: ${VIEWER_COMMIT_LONG_SHA}")
else()
set(VIEWER_COMMIT_LONG_SHA 0)
endif()
endif (NOT DEFINED VIEWER_COMMIT_LONG_SHA)
if (NOT DEFINED VIEWER_COMMIT_SHORT_SHA)
if((NOT REVISION_FROM_VCS) AND DEFINED ENV{CI_COMMIT_SHORT_SHA})
set(VIEWER_COMMIT_SHORT_SHA $ENV{CI_COMMIT_SHORT_SHA})
message(STATUS "Short SHA (from environment): ${VIEWER_COMMIT_SHORT_SHA}")
elseif(Git_FOUND)
execute_process(COMMAND ${GIT_EXECUTABLE} rev-parse --short HEAD
OUTPUT_VARIABLE GIT_COMMIT_SHORT_SHA
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
OUTPUT_STRIP_TRAILING_WHITESPACE
)
if(GIT_COMMIT_SHORT_SHA)
set(VIEWER_COMMIT_SHORT_SHA ${GIT_COMMIT_SHORT_SHA})
else()
set(VIEWER_COMMIT_SHORT_SHA 0)
endif()
message(STATUS "Short SHA: ${VIEWER_COMMIT_SHORT_SHA}")
else()
set(VIEWER_COMMIT_SHORT_SHA 0)
endif()
endif (NOT DEFINED VIEWER_COMMIT_SHORT_SHA)
add_library( ll::versioninfo INTERFACE IMPORTED )
target_compile_definitions( ll::versioninfo INTERFACE
$<$<CONFIG:Debug>:LLBUILD_CONFIG="Debug">
$<$<CONFIG:RelWithDebInfo>:LLBUILD_CONFIG="RelWithDebInfo">
$<$<CONFIG:Release>:LLBUILD_CONFIG="Release">
LL_VIEWER_CHANNEL="${VIEWER_CHANNEL}"
LL_VIEWER_CHANNEL_CODENAME="${VIEWER_CHANNEL_CODENAME_INTERNAL}"
LL_VIEWER_CHANNEL_AND_VERSION="${VIEWER_VERSION_AND_CHANNEL}"
LL_VIEWER_VERSION_MAJOR=${VIEWER_VERSION_MAJOR}
LL_VIEWER_VERSION_MINOR=${VIEWER_VERSION_MINOR}
LL_VIEWER_VERSION_PATCH=${VIEWER_VERSION_PATCH}
LL_VIEWER_VERSION_BUILD=${VIEWER_VERSION_REVISION}
LL_VIEWER_COMMIT_SHA="${VIEWER_COMMIT_LONG_SHA}"
LL_VIEWER_COMMIT_SHORT_SHA="${VIEWER_COMMIT_SHORT_SHA}"
)
......@@ -2,21 +2,17 @@
include(Linking)
include(Prebuilt)
if (USESYSTEMLIBS)
set(CEFPLUGIN OFF CACHE BOOL
"CEFPLUGIN support for the llplugin/llmedia test apps.")
else (USESYSTEMLIBS)
use_prebuilt_binary(dullahan)
set(CEFPLUGIN ON CACHE BOOL
"CEFPLUGIN support for the llplugin/llmedia test apps.")
set(CEF_INCLUDE_DIR ${LIBS_PREBUILT_DIR}/include/cef)
endif (USESYSTEMLIBS)
include_guard()
add_library( ll::cef INTERFACE IMPORTED )
use_prebuilt_binary(dullahan)
target_include_directories( ll::cef SYSTEM INTERFACE ${LIBS_PREBUILT_DIR}/include/cef)
if (WINDOWS)
set(CEF_PLUGIN_LIBRARIES
libcef.lib
libcef_dll_wrapper.lib
dullahan.lib
target_link_libraries( ll::cef INTERFACE
${ARCH_PREBUILT_DIRS_RELEASE}/libcef.lib
${ARCH_PREBUILT_DIRS_RELEASE}/libcef_dll_wrapper.lib
${ARCH_PREBUILT_DIRS_RELEASE}/dullahan.lib
)
elseif (DARWIN)
FIND_LIBRARY(APPKIT_LIBRARY AppKit)
......@@ -24,17 +20,16 @@ elseif (DARWIN)
message(FATAL_ERROR "AppKit not found")
endif()
set(CEF_LIBRARY "'${ARCH_PREBUILT_DIRS_RELEASE}/Chromium\ Embedded\ Framework.framework'")
if (NOT CEF_LIBRARY)
message(FATAL_ERROR "CEF not found")
endif()
set(CEF_PLUGIN_LIBRARIES
target_link_libraries( ll::cef INTERFACE
${ARCH_PREBUILT_DIRS_RELEASE}/libcef_dll_wrapper.a
${ARCH_PREBUILT_DIRS_RELEASE}/libdullahan.a
${APPKIT_LIBRARY}
"-F ${CEF_LIBRARY}"
)
elseif (LINUX)
target_link_libraries( ll::cef INTERFACE
dullahan
cef
cef_dll_wrapper.a
)
endif (WINDOWS)
......@@ -10,20 +10,20 @@
MACRO(COPY_IF_DIFFERENT FROM_DIR TO_DIR TARGETS)
# Macro to implement copy_if_different for a list of files
# Arguments -
# Arguments -
# FROM_DIR - this is the source directory
# TO_DIR - this is the destination directory
# TARGETS - A variable to receive a list of targets
# FILES - names of the files to copy
# TODO: add globing.
# FILES - names of the files to copy
# TODO: add globing.
SET(AddTargets "")
FOREACH(SRC ${ARGN})
GET_FILENAME_COMPONENT(SRCFILE ${SRC} NAME)
GET_FILENAME_COMPONENT(SRCFILE ${SRC} NAME)
IF("${FROM_DIR}" STREQUAL "")
SET(FROM ${SRC})
ELSE("${FROM_DIR}" STREQUAL "")
SET(FROM ${FROM_DIR}/${SRC})
ENDIF("${FROM_DIR}" STREQUAL "")
ENDIF("${FROM_DIR}" STREQUAL "")
IF("${TO_DIR}" STREQUAL "")
SET(TO ${SRCFILE})
ELSE("${TO_DIR}" STREQUAL "")
......
......@@ -5,109 +5,78 @@ include(00-Common)
project(cmake)
set(cmake_SOURCE_FILES
CMakeLists.txt
00-Common.cmake
APR.cmake
Audio.cmake
Boost.cmake
bugsplat.cmake
BuildVersion.cmake
CEFPlugin.cmake
CEFPlugin.cmake
CMakeCopyIfDifferent.cmake
ConfigurePkgConfig.cmake
CURL.cmake
Copy3rdPartyLibs.cmake
DBusGlib.cmake
DeploySharedLibs.cmake
DragDrop.cmake
EXPAT.cmake
FindAPR.cmake
FindAutobuild.cmake
FindGLH.cmake
FindHUNSPELL.cmake
FindJsonCpp.cmake
FindNDOF.cmake
FindOpenJPEG.cmake
FindSCP.cmake
FindURIPARSER.cmake
FindXmlRpcEpi.cmake
FindZLIBNG.cmake
FMODSTUDIO.cmake
FreeType.cmake
GLEXT.cmake
GLH.cmake
## GStreamer010Plugin.cmake
GoogleMock.cmake
Havok.cmake
Hunspell.cmake
JPEG.cmake
JsonCpp.cmake
LLAddBuildTest.cmake
LLAppearance.cmake
LLAudio.cmake
LLCharacter.cmake
LLCommon.cmake
LLCrashLogger.cmake
LLImage.cmake
LLImageJ2COJ.cmake
LLInventory.cmake
LLKDU.cmake
LLLogin.cmake
LLMath.cmake
LLMeshOptimizer.cmake
LLMessage.cmake
LLPhysicsExtensions.cmake
LLPlugin.cmake
LLPrimitive.cmake
LLRender.cmake
LLSharedLibs.cmake
LLTestCommand.cmake
LLUI.cmake
LLFileSystem.cmake
LLWindow.cmake
LLXML.cmake
Linking.cmake
MediaPluginBase.cmake
MESHOPTIMIZER.cmake
NDOF.cmake
OPENAL.cmake
OpenGL.cmake
OpenJPEG.cmake
OpenSSL.cmake
PNG.cmake
PluginAPI.cmake
Prebuilt.cmake
PulseAudio.cmake
Python.cmake
TemplateCheck.cmake
Tut.cmake
UI.cmake
UnixInstall.cmake
URIPARSER.cmake
Variables.cmake
ViewerMiscLibs.cmake
VisualLeakDetector.cmake
LibVLCPlugin.cmake
XmlRpcEpi.cmake
xxHash.cmake
ZLIBNG.cmake
)
CMakeLists.txt
00-Common.cmake
APR.cmake
Audio.cmake
Boost.cmake
BuildPackagesInfo.cmake
BuildVersion.cmake
CEFPlugin.cmake
CMakeCopyIfDifferent.cmake
CURL.cmake
Copy3rdPartyLibs.cmake
DeploySharedLibs.cmake
DiscordSDK.cmake
DragDrop.cmake
EXPAT.cmake
FindAutobuild.cmake
FMODSTUDIO.cmake
FreeType.cmake
GLEXT.cmake
GLH.cmake
GLM.cmake
Hunspell.cmake
LibXML2.cmake
LLAddBuildTest.cmake
LLAppearance.cmake
LLAudio.cmake
LLCommon.cmake
LLImage.cmake
LLKDU.cmake
LLPhysicsExtensions.cmake
LLPrimitive.cmake
LLSharedLibs.cmake
LLTestCommand.cmake
LLWindow.cmake
Linking.cmake
NDOF.cmake
NVAPI.cmake
OPENAL.cmake
OpenGL.cmake
OpenJPEG.cmake
OpenSSL.cmake
PNG.cmake
PluginAPI.cmake
Prebuilt.cmake
PulseAudio.cmake
SDBusCPP.cmake
SDL2.cmake
Sentry.cmake
TemplateCheck.cmake
TinyEXR.cmake
TinyGLTF.cmake
Tracy.cmake
Tut.cmake
UI.cmake
UnixInstall.cmake
URIPARSER.cmake
WebP.cmake
WebRTC.cmake
XXHash.cmake
ZLIBNG.cmake
)
source_group("Shared Rules" FILES ${cmake_SOURCE_FILES})
set(master_SOURCE_FILES
../CMakeLists.txt
)
../CMakeLists.txt
)
source_group("Master Rules" FILES ${master_SOURCE_FILES})
set_source_files_properties(${cmake_SOURCE_FILES} ${master_SOURCE_FILES}
PROPERTIES HEADER_FILE_ONLY TRUE)
add_library(cmake
cmake_dummy.cpp
${cmake_SOURCE_FILES}
${master_SOURCE_FILES}
)
cmake_dummy.cpp
${cmake_SOURCE_FILES}
${master_SOURCE_FILES}
)
# -*- cmake -*-
include(Prebuilt)
include(Linking)
set(CURL_FIND_QUIETLY ON)
set(CURL_FIND_REQUIRED ON)
include_guard()
add_library( ll::libcurl INTERFACE IMPORTED )
if (USESYSTEMLIBS)
include(FindCURL)
else (USESYSTEMLIBS)
use_prebuilt_binary(curl)
if (WINDOWS)
set(CURL_LIBRARIES
debug libcurld.lib
optimized libcurl.lib)
else (WINDOWS)
set(CURL_LIBRARIES libcurl.a)
endif (WINDOWS)
set(CURL_INCLUDE_DIRS ${LIBS_PREBUILT_DIR}/include)
endif (USESYSTEMLIBS)
use_system_binary(libcurl)
use_prebuilt_binary(curl)
if (WINDOWS)
target_link_libraries(ll::libcurl INTERFACE
debug ${ARCH_PREBUILT_DIRS_DEBUG}/libcurld.lib
optimized ${ARCH_PREBUILT_DIRS_RELEASE}/libcurl.lib
ll::openssl
ll::nghttp2
ll::zlib-ng
Normaliz.lib
Iphlpapi.lib
)
target_compile_definitions( ll::libcurl INTERFACE CURL_STATICLIB=1)
elseif(DARWIN)
target_link_libraries(ll::libcurl INTERFACE
debug ${ARCH_PREBUILT_DIRS_DEBUG}/libcurld.a
optimized ${ARCH_PREBUILT_DIRS_RELEASE}/libcurl.a
ll::openssl
ll::nghttp2
ll::zlib-ng
resolv
)
else ()
target_link_libraries(ll::libcurl INTERFACE
${ARCH_PREBUILT_DIRS}/libcurl.a
ll::openssl
ll::nghttp2
ll::zlib-ng
)
endif ()
target_include_directories( ll::libcurl SYSTEM INTERFACE ${LIBS_PREBUILT_DIR}/include)
# -*- cmake -*-
SET(DEBUG_PKG_CONFIG "YES")
# Don't change this if manually set by user.
IF("$ENV{PKG_CONFIG_LIBDIR}" STREQUAL "")
# Guess at architecture-specific system library paths.
if (ADDRESS_SIZE EQUAL 32)
SET(PKG_CONFIG_NO_MULTI_GUESS /usr/lib32 /usr/lib)
SET(PKG_CONFIG_NO_MULTI_LOCAL_GUESS /usr/local/lib32 /usr/local/lib)
SET(PKG_CONFIG_MULTI_GUESS /usr/lib/i386-linux-gnu)
SET(PKG_CONFIG_MULTI_LOCAL_GUESS /usr/local/lib/i386-linux-gnu)
else (ADDRESS_SIZE EQUAL 32)
SET(PKG_CONFIG_NO_MULTI_GUESS /usr/lib64 /usr/lib)
SET(PKG_CONFIG_NO_MULTI_LOCAL_GUESS /usr/local/lib64 /usr/local/lib)
SET(PKG_CONFIG_MULTI_GUESS /usr/local/lib/x86_64-linux-gnu)
SET(PKG_CONFIG_MULTI_LOCAL_GUESS /usr/local/lib/x86_64-linux-gnu)
endif (ADDRESS_SIZE EQUAL 32)
# Use DPKG architecture, if available.
IF (${DPKG_ARCH})
SET(PKG_CONFIG_MULTI_GUESS /usr/lib/${DPKG_ARCH})
SET(PKG_CONFIG_MULTI_LOCAL_GUESS /usrlocal/lib/${DPKG_ARCH})
ENDIF (${DPKG_ARCH})
# Explicitly include anything listed in PKG_CONFIG_PATH
string(REPLACE ":" ";" PKG_CONFIG_PATH_LIST "$ENV{PKG_CONFIG_PATH}")
FOREACH(PKG_CONFIG_DIR ${PKG_CONFIG_PATH_LIST})
SET(VALID_PKG_LIBDIRS "${VALID_PKG_LIBDIRS}:${PKG_CONFIG_DIR}/pkgconfig")
ENDFOREACH(PKG_CONFIG_DIR)
# Look for valid pkgconfig directories.
FIND_PATH(PKG_CONFIG_ENV pkgconfig ENV LD_LIBRARY_PATH)
FIND_PATH(PKG_CONFIG_MULTI pkgconfig HINT ${PKG_CONFIG_MULTI_GUESS})
FIND_PATH(PKG_CONFIG_MULTI_LOCAL pkgconfig HINT ${PKG_CONFIG_MULTI_LOCAL_GUESS})
FIND_PATH(PKG_CONFIG_NO_MULTI pkgconfig HINT ${PKG_CONFIG_NO_MULTI_GUESS})
FIND_PATH(PKG_CONFIG_NO_MULTI_LOCAL pkgconfig HINT ${PKG_CONFIG_NO_MULTI_LOCAL_GUESS})
# Add anything we found to our list.
IF(NOT PKG_CONFIG_ENV STREQUAL PKG_CONFIG_ENV-NOTFOUND)
SET(VALID_PKG_LIBDIRS "${VALID_PKG_LIBDIRS}:${PKG_CONFIG_ENV}/pkgconfig")
ENDIF(NOT PKG_CONFIG_ENV STREQUAL PKG_CONFIG_ENV-NOTFOUND)
IF(NOT PKG_CONFIG_MULTI STREQUAL PKG_CONFIG_MULTI-NOTFOUND)
SET(VALID_PKG_LIBDIRS "${VALID_PKG_LIBDIRS}:${PKG_CONFIG_MULTI}/pkgconfig")
ENDIF(NOT PKG_CONFIG_MULTI STREQUAL PKG_CONFIG_MULTI-NOTFOUND)
IF(NOT PKG_CONFIG_MULTI_LOCAL STREQUAL PKG_CONFIG_MULTI_LOCAL-NOTFOUND)
SET(VALID_PKG_LIBDIRS "${VALID_PKG_LIBDIRS}:${PKG_CONFIG_MULTI_LOCAL}/pkgconfig")
ENDIF(NOT PKG_CONFIG_MULTI_LOCAL STREQUAL PKG_CONFIG_MULTI_LOCAL-NOTFOUND)
IF(NOT PKG_CONFIG_NO_MULTI STREQUAL PKG_CONFIG_NO_MULTI-NOTFOUND)
SET(VALID_PKG_LIBDIRS "${VALID_PKG_LIBDIRS}:${PKG_CONFIG_NO_MULTI}/pkgconfig")
ENDIF(NOT PKG_CONFIG_NO_MULTI STREQUAL PKG_CONFIG_NO_MULTI-NOTFOUND)
IF(NOT PKG_CONFIG_NO_MULTI_LOCAL STREQUAL PKG_CONFIG_NO_MULTI_LOCAL-NOTFOUND)
SET(VALID_PKG_LIBDIRS "${VALID_PKG_LIBDIRS}:${PKG_CONFIG_NO_MULTI_LOCAL}/pkgconfig")
ENDIF(NOT PKG_CONFIG_NO_MULTI_LOCAL STREQUAL PKG_CONFIG_NO_MULTI_LOCAL-NOTFOUND)
# Also add some non-architecture specific package locations.
SET(VALID_PKG_LIBDIRS "${VALID_PKG_LIBDIRS}:/usr/share/pkgconfig:/usr/local/share/pkgconfig")
# Remove first unwanted ':'
string(SUBSTRING ${VALID_PKG_LIBDIRS} 1 -1 VALID_PKG_LIBDIRS)
# Set PKG_CONFIG_LIBDIR environment.
SET(ENV{PKG_CONFIG_LIBDIR} ${VALID_PKG_LIBDIRS})
ENDIF("$ENV{PKG_CONFIG_LIBDIR}" STREQUAL "")
IF(DEBUG_PKG_CONFIG)
MESSAGE(STATUS "Using PKG_CONFIG_LIBDIR=$ENV{PKG_CONFIG_LIBDIR}")
ENDIF(DEBUG_PKG_CONFIG)
This diff is collapsed.
......@@ -2,4 +2,4 @@
use_prebuilt_binary(cubemaptoequirectangular)
# Main JS file
configure_file("${AUTOBUILD_INSTALL_DIR}/js/CubemapToEquirectangular.js" "${CMAKE_SOURCE_DIR}/newview/skins/default/html/common/equirectangular/js/CubemapToEquirectangular.js" COPYONLY)
configure_file("${LIBS_PREBUILT_DIR}/js/CubemapToEquirectangular.js" "${CMAKE_SOURCE_DIR}/newview/skins/default/html/common/equirectangular/js/CubemapToEquirectangular.js" COPYONLY)
# -*- cmake -*-
include(Prebuilt)
if (USESYSTEMLIBS)
include(FindPkgConfig)
pkg_check_modules(DBUSGLIB REQUIRED dbus-glib-1)
elseif (LINUX)
use_prebuilt_binary(dbus_glib)
set(DBUSGLIB_FOUND ON FORCE BOOL)
set(DBUSGLIB_INCLUDE_DIRS
${LIBS_PREBUILT_DIR}/include/dbus
)
# We don't need to explicitly link against dbus-glib itself, because
# the viewer probes for the system's copy at runtime.
set(DBUSGLIB_LIBRARIES
gobject-2.0
glib-2.0
)
endif (USESYSTEMLIBS)
if (DBUSGLIB_FOUND)
set(DBUSGLIB ON CACHE BOOL "Build with dbus-glib message bus support.")
endif (DBUSGLIB_FOUND)
if (DBUSGLIB)
add_definitions(-DLL_DBUS_ENABLED=1)
endif (DBUSGLIB)
......@@ -5,7 +5,7 @@
# This script requires a few cmake variable to be set on the command line:
# BIN_NAME= The full path the the binary to search for dependecies.
# SEARCH_DIRS= The full paths to dirs to search for dependencies.
# DST_PATH= The full path where the dependecies will be copied.
# DST_PATH= The full path where the dependecies will be copied.
include(GetPrerequisites)
......
# -*- cmake -*-
include(Prebuilt)
include_guard()
#Discord Integration
if (DEFINED ENV{USE_DISCORD})
set(USE_DISCORD $ENV{USE_DISCORD} CACHE BOOL "Enable Discord client integration" FORCE)
endif()
if(DEFINED ENV{DISCORD_CLIENTID})
set(DISCORD_CLIENTID $ENV{DISCORD_CLIENTID} CACHE STRING "Discord Client ID" FORCE)
else()
set(DISCORD_CLIENTID "564763931009220608" CACHE STRING "Discord Client ID")
endif()
if (INSTALL_PROPRIETARY AND NOT DISCORD_CLIENTID STREQUAL "")
set(USE_DISCORD ON CACHE BOOL "Enable Discord client integration")
endif ()
if (USE_DISCORD)
add_library( al::discord-gamesdk INTERFACE IMPORTED )
use_prebuilt_binary(discord-gamesdk)
if (WINDOWS)
target_link_libraries( al::discord-gamesdk INTERFACE
${ARCH_PREBUILT_DIRS_RELEASE}/discordgamesdk.lib
${ARCH_PREBUILT_DIRS_RELEASE}/discord_game_sdk.dll.lib)
elseif (DARWIN)
target_link_libraries( al::discord-gamesdk INTERFACE
${ARCH_PREBUILT_DIRS_RELEASE}/libdiscordgamesdk.a
${ARCH_PREBUILT_DIRS_RELEASE}/discord_game_sdk.dylib)
elseif (LINUX)
target_link_libraries( al::discord-gamesdk INTERFACE
optimized ${ARCH_PREBUILT_DIRS_RELEASE}/libdiscordgamesdk.a
optimized ${ARCH_PREBUILT_DIRS_RELEASE}/libdiscord_game_sdk.so )
endif (WINDOWS)
target_include_directories( al::discord-gamesdk SYSTEM INTERFACE ${LIBS_PREBUILT_DIR}/include/discord/)
if(DISCORD_CLIENTID STREQUAL "")
message(FATAL_ERROR "You must set a ClientID with -DDISCORD_CLIENTID= to enable Discord integration")
endif()
target_compile_definitions( al::discord-gamesdk INTERFACE AL_DISCORD=1 DISCORD_CLIENTID=${DISCORD_CLIENTID})
endif (USE_DISCORD)
This diff is collapsed.
This diff is collapsed.
......@@ -2,15 +2,5 @@
include(Linking)
include(Prebuilt)
if (USESYSTEMLIBS)
set(EXAMPLEPLUGIN OFF CACHE BOOL
set(EXAMPLEPLUGIN ON CACHE BOOL
"EXAMPLEPLUGIN support for the llplugin/llmedia test apps.")
else (USESYSTEMLIBS)
set(EXAMPLEPLUGIN ON CACHE BOOL
"EXAMPLEPLUGIN support for the llplugin/llmedia test apps.")
endif (USESYSTEMLIBS)
if (WINDOWS)
elseif (DARWIN)
elseif (LINUX)
endif (WINDOWS)
This diff is collapsed.
This diff is collapsed.