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 419 additions and 370 deletions
......@@ -18,36 +18,56 @@ set(addrsfx "-x${ADDRESS_SIZE}")
if (WINDOWS)
target_link_libraries( ll::boost INTERFACE
libboost_context-mt${addrsfx}
libboost_fiber-mt${addrsfx}
libboost_filesystem-mt${addrsfx}
libboost_program_options-mt${addrsfx}
libboost_regex-mt${addrsfx}
libboost_system-mt${addrsfx}
libboost_thread-mt${addrsfx})
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
boost_context-mt${addrsfx}
boost_fiber-mt${addrsfx}
boost_filesystem-mt${addrsfx}
boost_program_options-mt${addrsfx}
boost_regex-mt${addrsfx}
boost_signals-mt${addrsfx}
boost_system-mt${addrsfx}
boost_thread-mt${addrsfx})
${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
boost_context-mt${addrsfx}
boost_fiber-mt${addrsfx}
boost_filesystem-mt${addrsfx}
boost_program_options-mt${addrsfx}
boost_regex-mt${addrsfx}
boost_system-mt${addrsfx}
boost_thread-mt${addrsfx})
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)
if (LINUX)
set(BOOST_SYSTEM_LIBRARY ${BOOST_SYSTEM_LIBRARY} rt)
set(BOOST_THREAD_LIBRARY ${BOOST_THREAD_LIBRARY} rt)
endif (LINUX)
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}" "${AUTOBUILD_INSTALL_DIR}" > 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}")
if(REVISION_FROM_VCS)
find_package(Git)
endif()
elseif (DEFINED ENV{AUTOBUILD_BUILD_ID})
set(VIEWER_VERSION_REVISION $ENV{AUTOBUILD_BUILD_ID})
message(STATUS "Revision (from autobuild environment): ${VIEWER_VERSION_REVISION}")
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)
else (DEFINED ENV{revision})
find_program(GIT git)
if (DEFINED GIT )
execute_process(
COMMAND ${GIT} rev-list --count HEAD
OUTPUT_VARIABLE VIEWER_VERSION_REVISION
OUTPUT_STRIP_TRAILING_WHITESPACE
)
if ("${VIEWER_VERSION_REVISION}" MATCHES "^[0-9]+$")
message(STATUS "Revision (from git) ${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 (DEFINED GIT )
message(STATUS "Revision not set: 'git' found; using 0")
if(GIT_REV_LIST_COUNT)
set(VIEWER_VERSION_REVISION ${GIT_REV_LIST_COUNT})
else(GIT_REV_LIST_COUNT)
set(VIEWER_VERSION_REVISION 0)
endif (DEFINED GIT)
endif (DEFINED ENV{revision})
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}"
)
......@@ -10,9 +10,9 @@ target_include_directories( ll::cef SYSTEM INTERFACE ${LIBS_PREBUILT_DIR}/inclu
if (WINDOWS)
target_link_libraries( ll::cef INTERFACE
libcef.lib
libcef_dll_wrapper.lib
dullahan.lib
${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)
......@@ -20,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()
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 "")
......
......@@ -10,16 +10,14 @@ set(cmake_SOURCE_FILES
APR.cmake
Audio.cmake
Boost.cmake
bugsplat.cmake
BuildPackagesInfo.cmake
BuildVersion.cmake
CEFPlugin.cmake
CEFPlugin.cmake
CMakeCopyIfDifferent.cmake
ConfigurePkgConfig.cmake
CURL.cmake
Copy3rdPartyLibs.cmake
DBusGlib.cmake
DeploySharedLibs.cmake
DiscordSDK.cmake
DragDrop.cmake
EXPAT.cmake
FindAutobuild.cmake
......@@ -27,10 +25,9 @@ set(cmake_SOURCE_FILES
FreeType.cmake
GLEXT.cmake
GLH.cmake
GoogleMock.cmake
Havok.cmake
GLM.cmake
Hunspell.cmake
JsonCpp.cmake
LibXML2.cmake
LLAddBuildTest.cmake
LLAppearance.cmake
LLAudio.cmake
......@@ -43,8 +40,8 @@ set(cmake_SOURCE_FILES
LLTestCommand.cmake
LLWindow.cmake
Linking.cmake
Meshoptimizer.cmake
NDOF.cmake
NVAPI.cmake
OPENAL.cmake
OpenGL.cmake
OpenJPEG.cmake
......@@ -53,17 +50,20 @@ set(cmake_SOURCE_FILES
PluginAPI.cmake
Prebuilt.cmake
PulseAudio.cmake
Python.cmake
SDBusCPP.cmake
SDL2.cmake
Sentry.cmake
TemplateCheck.cmake
TinyEXR.cmake
TinyGLTF.cmake
Tracy.cmake
Tut.cmake
UI.cmake
UnixInstall.cmake
URIPARSER.cmake
Variables.cmake
ViewerMiscLibs.cmake
VisualLeakDetector.cmake
LibVLCPlugin.cmake
XmlRpcEpi.cmake
WebP.cmake
WebRTC.cmake
XXHash.cmake
ZLIBNG.cmake
)
......
# -*- cmake -*-
include(Prebuilt)
include(Linking)
include_guard()
add_library( ll::libcurl INTERFACE IMPORTED )
......@@ -7,8 +8,31 @@ add_library( ll::libcurl INTERFACE IMPORTED )
use_system_binary(libcurl)
use_prebuilt_binary(curl)
if (WINDOWS)
target_link_libraries(ll::libcurl INTERFACE libcurl.lib)
else (WINDOWS)
target_link_libraries(ll::libcurl INTERFACE libcurl.a)
endif (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)
......@@ -5,9 +5,12 @@
# VisualStudio.
include(CMakeCopyIfDifferent)
include(Linking)
include(OPENAL)
include(Prebuilt)
include(FMODSTUDIO)
include(OPENAL)
include(DiscordSDK)
include(Sentry)
include(InstallRequiredSystemLibraries)
# When we copy our dependent libraries, we almost always want to copy them to
# both the Release and the RelWithDebInfo staging directories. This has
......@@ -33,8 +36,8 @@ if(WINDOWS)
# ND, it seems there is no such thing defined. At least when building a viewer
# Does this maybe matter on some LL buildserver? Otherwise this and the snippet using slvoice_src_dir
# can all go
if( ARCH_PREBUILT_BIN_RELEASE )
set(slvoice_src_dir "${ARCH_PREBUILT_BIN_RELEASE}")
if( ARCH_PREBUILT_BIN_DIRS_RELEASE )
set(slvoice_src_dir "${ARCH_PREBUILT_BIN_DIRS_RELEASE}")
endif()
set(slvoice_files SLVoice.exe )
if (ADDRESS_SIZE EQUAL 64)
......@@ -52,49 +55,38 @@ if(WINDOWS)
#*******************************
# Misc shared libs
set(addrsfx "-x${ADDRESS_SIZE}")
set(debug_src_dir "${ARCH_PREBUILT_DIRS_DEBUG}")
set(debug_files
openjp2.dll
)
set(release_src_dir "${ARCH_PREBUILT_DIRS_RELEASE}")
set(release_files
openjp2.dll
libapr-1.dll
libaprutil-1.dll
libapriconv-1.dll
nghttp2.dll
libhunspell.dll
uriparser.dll
)
# OpenSSL
if(ADDRESS_SIZE EQUAL 64)
set(release_files ${release_files} libcrypto-1_1-x64.dll)
set(release_files ${release_files} libssl-1_1-x64.dll)
else(ADDRESS_SIZE EQUAL 64)
set(release_files ${release_files} libcrypto-1_1.dll)
set(release_files ${release_files} libssl-1_1.dll)
endif(ADDRESS_SIZE EQUAL 64)
# Filenames are different for 32/64 bit BugSplat file and we don't
# have any control over them so need to branch.
if (USE_BUGSPLAT)
if(ADDRESS_SIZE EQUAL 32)
set(release_files ${release_files} BugSplat.dll)
set(release_files ${release_files} BugSplatRc.dll)
set(release_files ${release_files} BsSndRpt.exe)
else(ADDRESS_SIZE EQUAL 32)
set(release_files ${release_files} BugSplat64.dll)
set(release_files ${release_files} BugSplatRc64.dll)
set(release_files ${release_files} BsSndRpt64.exe)
endif(ADDRESS_SIZE EQUAL 32)
endif (USE_BUGSPLAT)
if (TARGET al::sentry)
list(APPEND release_files sentry.dll)
endif ()
if (TARGET ll::fmodstudio)
set(debug_files ${debug_files} fmodL.dll)
set(release_files ${release_files} fmod.dll)
list(APPEND debug_files fmodL.dll)
list(APPEND release_files fmod.dll)
endif ()
if (TARGET ll::openal)
list(APPEND release_files openal32.dll alut.dll)
list(APPEND debug_files OpenAL32.dll alut.dll)
list(APPEND release_files OpenAL32.dll alut.dll)
endif ()
if(TARGET al::discord-gamesdk)
list(APPEND release_files discord_game_sdk.dll)
endif()
#*******************************
# Copy MS C runtime dlls, required for packaging.
if (MSVC80)
......@@ -107,46 +99,39 @@ if(WINDOWS)
set(MSVC_VER 140)
elseif (MSVC_VERSION GREATER_EQUAL 1920 AND MSVC_VERSION LESS 1930) # Visual Studio 2019
set(MSVC_VER 140)
elseif (MSVC_VERSION GREATER_EQUAL 1930 AND MSVC_VERSION LESS 1940) # Visual Studio 2022
elseif (MSVC_VERSION GREATER_EQUAL 1930 AND MSVC_VERSION LESS 1950) # Visual Studio 2022
set(MSVC_VER 140)
else (MSVC80)
MESSAGE(WARNING "New MSVC_VERSION ${MSVC_VERSION} of MSVC: adapt Copy3rdPartyLibs.cmake")
endif (MSVC80)
if(ADDRESS_SIZE EQUAL 32)
# this folder contains the 32bit DLLs.. (yes really!)
set(registry_find_path "[HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Control\\Windows;Directory]/SysWOW64")
else(ADDRESS_SIZE EQUAL 32)
# this folder contains the 64bit DLLs.. (yes really!)
set(registry_find_path "[HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Control\\Windows;Directory]/System32")
endif(ADDRESS_SIZE EQUAL 32)
# Having a string containing the system registry path is a start, but to
# get CMake to actually read the registry, we must engage some other
# operation.
get_filename_component(registry_path "${registry_find_path}" ABSOLUTE)
# These are candidate DLL names. Empirically, VS versions before 2015 have
# msvcp*.dll and msvcr*.dll. VS 2017 has msvcp*.dll and vcruntime*.dll.
# Check each of them.
foreach(release_msvc_file
concrt${MSVC_VER}.dll
msvcp${MSVC_VER}.dll
msvcr${MSVC_VER}.dll
msvcp${MSVC_VER}_1.dll
msvcp${MSVC_VER}_2.dll
msvcp${MSVC_VER}_atomic_wait.dll
msvcp${MSVC_VER}_codecvt_ids.dll
vccorlib${MSVC_VER}.dll
vcruntime${MSVC_VER}.dll
vcruntime${MSVC_VER}_1.dll
vcruntime${MSVC_VER}_threads.dll
)
if(EXISTS "${registry_path}/${release_msvc_file}")
to_staging_dirs(
${registry_path}
third_party_targets
${release_msvc_file})
else()
# This isn't a WARNING because, as noted above, every VS version
# we've observed has only a subset of the specified DLL names.
MESSAGE(STATUS "Redist lib ${release_msvc_file} not found")
endif()
if(EXISTS "${MSVC_CRT_DIR}/${release_msvc_file}") # MSVC_CRT_DIR set in InstallRequiredSystemLibraries.cmake
to_staging_dirs(
${MSVC_CRT_DIR}
third_party_targets
${release_msvc_file})
else()
# This isn't a WARNING because, as noted above, every VS version
# we've observed has only a subset of the specified DLL names.
MESSAGE(STATUS "Redist lib ${release_msvc_file} not found")
endif()
endforeach()
MESSAGE(STATUS "Will copy redist files for MSVC ${MSVC_VER}:")
MESSAGE(STATUS "Will copy redist files for MSVC ${MSVC_VER} from ${MSVC_CRT_DIR}:")
foreach(target ${third_party_targets})
MESSAGE(STATUS "${target}")
endforeach()
......@@ -163,33 +148,19 @@ elseif(DARWIN)
)
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
${EXPAT_COPY}
libhunspell-1.3.0.dylib
libndofdev.dylib
libnghttp2.dylib
libnghttp2.14.dylib
libnghttp2.14.19.0.dylib
liburiparser.dylib
liburiparser.1.dylib
liburiparser.1.0.27.dylib
)
if (TARGET ll::fmodstudio)
set(debug_files ${debug_files} libfmodL.dylib)
set(release_files ${release_files} libfmod.dylib)
list(APPEND debug_files libfmodL.dylib)
list(APPEND release_files libfmod.dylib)
endif ()
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}")
if(TARGET al::discord-gamesdk)
list(APPEND release_files discord_game_sdk.dylib)
endif()
elseif(LINUX)
set(vivox_lib_dir "${ARCH_PREBUILT_DIRS_RELEASE}")
set(vivox_libs
libsndfile.so.1
......@@ -212,29 +183,15 @@ elseif(LINUX)
${EXPAT_COPY}
)
if( USE_AUTOBUILD_3P )
list( APPEND release_files
libapr-1.so.0
libaprutil-1.so.0
libatk-1.0.so
libfreetype.so.6.6.2
libfreetype.so.6
libhunspell-1.3.so.0.0.0
libopenjp2.so
libuuid.so.16
libuuid.so.16.0.22
libfontconfig.so.1.8.0
libfontconfig.so.1
libgmodule-2.0.so
libgobject-2.0.so
)
endif()
if (TARGET ll::fmodstudio)
set(debug_files ${debug_files} "libfmodL.so")
set(release_files ${release_files} "libfmod.so")
list(APPEND debug_files libfmodL.so)
list(APPEND release_files libfmod.so)
endif ()
if(TARGET al::discord-gamesdk)
list(APPEND release_files libdiscord_game_sdk.so)
endif()
else(WINDOWS)
message(STATUS "WARNING: unrecognized platform for staging 3rd party libs, skipping...")
set(vivox_lib_dir "${CMAKE_SOURCE_DIR}/newview/vivox-runtime/i686-linux")
......@@ -267,7 +224,7 @@ endif(WINDOWS)
if( slvoice_src_dir )
copy_if_different(
${slvoice_src_dir}
"${SHARED_LIB_STAGING_DIR_RELEASE}"
"${SHARED_LIB_STAGING_DIR}"
out_targets
${slvoice_files}
)
......@@ -290,12 +247,3 @@ add_custom_target(
stage_third_party_libs ALL
DEPENDS ${third_party_targets}
)
if(DARWIN)
# Support our "@executable_path/../Resources" load path for executables
# that end up in any of the above SHARED_LIB_STAGING_DIR_MUMBLE
# directories.
add_custom_command( TARGET stage_third_party_libs POST_BUILD
COMMAND ${CMAKE_COMMAND} -E create_symlink ${SHARED_LIB_STAGING_DIR} ${CMAKE_BINARY_DIR}/sharedlibs/Resources
)
endif()
......@@ -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)
add_library( ll::dbus INTERFACE IMPORTED)
if( LINUX )
# Only define this when not using the prebuild 3ps, lls prebuild is broken
if( NOT USE_AUTOBUILD_3P )
target_compile_definitions( ll::dbus INTERFACE LL_DBUS_ENABLED )
endif()
use_system_binary(dbus)
use_prebuilt_binary(dbus_glib)
endif()
......@@ -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)
......@@ -7,14 +7,13 @@ add_library( ll::expat INTERFACE IMPORTED )
use_system_binary(expat)
use_prebuilt_binary(expat)
if (WINDOWS)
target_link_libraries( ll::expat INTERFACE libexpatMT )
set(EXPAT_COPY libexpatMT.dll)
else (WINDOWS)
target_link_libraries( ll::expat INTERFACE expat )
if (DARWIN)
set(EXPAT_COPY libexpat.1.dylib libexpat.dylib)
else ()
set(EXPAT_COPY libexpat.so.1 libexpat.so)
endif ()
endif (WINDOWS)
target_compile_definitions( ll::expat INTERFACE XML_STATIC=1)
target_link_libraries( ll::expat INTERFACE
debug ${ARCH_PREBUILT_DIRS_DEBUG}/libexpatd.lib
optimized ${ARCH_PREBUILT_DIRS_RELEASE}/libexpat.lib)
else ()
target_link_libraries( ll::expat INTERFACE
debug ${ARCH_PREBUILT_DIRS_DEBUG}/libexpat.a
optimized ${ARCH_PREBUILT_DIRS_RELEASE}/libexpat.a)
endif ()
target_include_directories( ll::expat SYSTEM INTERFACE ${LIBS_PREBUILT_DIR}/include )
......@@ -2,7 +2,7 @@
include_guard()
# FMODSTUDIO can be set when launching the make using the argument -DFMODSTUDIO:BOOL=ON
# FMODSTUDIO can be set when launching the make using the argument -DUSE_FMODSTUDIO:BOOL=ON
# When building using proprietary binaries though (i.e. having access to LL private servers),
# we always build with FMODSTUDIO.
if (INSTALL_PROPRIETARY)
......@@ -32,7 +32,9 @@ if (USE_FMODSTUDIO)
include(Prebuilt)
use_prebuilt_binary(fmodstudio)
if (WINDOWS)
target_link_libraries( ll::fmodstudio INTERFACE fmod_vc)
target_link_libraries( ll::fmodstudio INTERFACE
debug ${ARCH_PREBUILT_DIRS_DEBUG}/fmodL_vc.lib
optimized ${ARCH_PREBUILT_DIRS_RELEASE}/fmod_vc.lib)
elseif (DARWIN)
#despite files being called libfmod.dylib, we are searching for fmod
target_link_libraries( ll::fmodstudio INTERFACE fmod)
......
......@@ -22,11 +22,11 @@ IF (NOT AUTOBUILD_EXECUTABLE)
SET(AUTOBUILD_EXECUTABLE)
FIND_PROGRAM(
AUTOBUILD_EXECUTABLE
AUTOBUILD_EXECUTABLE
NAMES ${AUTOBUILD_EXE_NAMES}
PATHS
PATHS
ENV PATH
${CMAKE_SOURCE_DIR}/..
${CMAKE_SOURCE_DIR}/..
${CMAKE_SOURCE_DIR}/../..
${CMAKE_SOURCE_DIR}/../../..
PATH_SUFFIXES "/autobuild/bin/"
......
# -*- cmake -*-
#
# Find the OpenSSH scp ("secure copy") or Putty pscp command.
#
# Input variables:
# SCP_FIND_REQUIRED - set this if configuration should fail without scp
#
# Output variables:
#
# SCP_FOUND - set if scp was found
# SCP_EXECUTABLE - path to scp or pscp executable
# SCP_BATCH_FLAG - how to put scp/pscp into batch mode
SET(SCP_EXECUTABLE)
IF (WINDOWS)
FIND_PROGRAM(SCP_EXECUTABLE NAMES pscp pscp.exe)
ELSE (WINDOWS)
FIND_PROGRAM(SCP_EXECUTABLE NAMES scp scp.exe)
ENDIF (WINDOWS)
IF (SCP_EXECUTABLE)
SET(SCP_FOUND ON)
ELSE (SCP_EXECUTABLE)
SET(SCP_FOUND OFF)
ENDIF (SCP_EXECUTABLE)
IF (SCP_FOUND)
GET_FILENAME_COMPONENT(_scp_name ${SCP_EXECUTABLE} NAME_WE)
IF (_scp_name STREQUAL scp)
SET(SCP_BATCH_FLAG -B)
ELSE (_scp_name STREQUAL scp)
SET(SCP_BATCH_FLAG -batch)
ENDIF (_scp_name STREQUAL scp)
ELSE (SCP_FOUND)
IF (SCP_FIND_REQUIRED)
MESSAGE(FATAL_ERROR "Could not find scp or pscp executable")
ENDIF (SCP_FIND_REQUIRED)
ENDIF (SCP_FOUND)
MARK_AS_ADVANCED(SCP_EXECUTABLE SCP_FOUND SCP_BATCH_FLAG)
......@@ -2,10 +2,42 @@
include(Prebuilt)
include_guard()
option(USE_SYSTEM_FREETYPE "Enable usage of the AVX2 instruction set" OFF)
add_library( ll::freetype INTERFACE IMPORTED )
use_system_binary(freetype)
use_prebuilt_binary(freetype)
target_include_directories( ll::freetype SYSTEM INTERFACE ${LIBS_PREBUILT_DIR}/include/freetype2/)
target_link_libraries( ll::freetype INTERFACE freetype )
if(NOT USE_SYSTEM_FREETYPE)
use_system_binary(freetype)
use_prebuilt_binary(freetype)
target_include_directories( ll::freetype SYSTEM INTERFACE ${LIBS_PREBUILT_DIR}/include/freetype2/)
if (WINDOWS)
target_link_libraries( ll::freetype INTERFACE
debug ${ARCH_PREBUILT_DIRS_DEBUG}/freetyped.lib
optimized ${ARCH_PREBUILT_DIRS_RELEASE}/freetype.lib
debug ${ARCH_PREBUILT_DIRS_DEBUG}/harfbuzz.lib
optimized ${ARCH_PREBUILT_DIRS_RELEASE}/harfbuzz.lib)
elseif (LINUX)
target_link_libraries( ll::freetype INTERFACE
${ARCH_PREBUILT_DIRS}/libfreetype.a
${ARCH_PREBUILT_DIRS}/libharfbuzz.a)
else()
target_link_libraries( ll::freetype INTERFACE
debug ${ARCH_PREBUILT_DIRS_DEBUG}/libfreetyped.a
optimized ${ARCH_PREBUILT_DIRS_RELEASE}/libfreetype.a
debug ${ARCH_PREBUILT_DIRS_DEBUG}/libharfbuzz.a
optimized ${ARCH_PREBUILT_DIRS_RELEASE}/libharfbuzz.a)
endif()
endif()
if(LINUX)
include(FindPkgConfig)
if (USE_SYSTEM_FREETYPE)
pkg_check_modules(freetype2 REQUIRED IMPORTED_TARGET freetype2)
target_link_libraries( ll::freetype INTERFACE PkgConfig::freetype2)
endif()
pkg_check_modules(fontconfig REQUIRED IMPORTED_TARGET fontconfig)
target_link_libraries( ll::freetype INTERFACE PkgConfig::fontconfig)
endif()
# -*- cmake -*-
include(Prebuilt)
include(GLH)
include(GLM)
include(SDL2)
add_library( ll::glext INTERFACE IMPORTED )
if (WINDOWS OR LINUX)
if(NOT SDL_FOUND)
use_system_binary(glext)
use_prebuilt_binary(glext)
endif (WINDOWS OR LINUX)
endif()
# -*- cmake -*-
include(Prebuilt)
add_library( ll::glm INTERFACE IMPORTED )
use_system_binary(glm)
use_prebuilt_binary(glm)