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 127 additions and 60 deletions
......@@ -24,6 +24,8 @@ set(cmake_SOURCE_FILES
FMODSTUDIO.cmake
FreeType.cmake
GLEXT.cmake
GLH.cmake
GLM.cmake
Hunspell.cmake
LibXML2.cmake
LLAddBuildTest.cmake
......@@ -52,11 +54,15 @@ set(cmake_SOURCE_FILES
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
)
......
......@@ -19,7 +19,7 @@ if (WINDOWS)
)
target_compile_definitions( ll::libcurl INTERFACE CURL_STATICLIB=1)
elseif(DARWIN)
target_link_libraries(ll::libcurl INTERFACE
target_link_libraries(ll::libcurl INTERFACE
debug ${ARCH_PREBUILT_DIRS_DEBUG}/libcurld.a
optimized ${ARCH_PREBUILT_DIRS_RELEASE}/libcurl.a
ll::openssl
......@@ -29,8 +29,7 @@ elseif(DARWIN)
)
else ()
target_link_libraries(ll::libcurl INTERFACE
debug ${ARCH_PREBUILT_DIRS_DEBUG}/libcurld.a
optimized ${ARCH_PREBUILT_DIRS_RELEASE}/libcurl.a
${ARCH_PREBUILT_DIRS}/libcurl.a
ll::openssl
ll::nghttp2
ll::zlib-ng
......
......@@ -10,6 +10,7 @@ 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
......@@ -36,7 +37,7 @@ if(WINDOWS)
# Does this maybe matter on some LL buildserver? Otherwise this and the snippet using slvoice_src_dir
# can all go
if( ARCH_PREBUILT_BIN_DIRS_RELEASE )
set(slvoice_src_dir "${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)
......@@ -85,6 +86,56 @@ if(WINDOWS)
if(TARGET al::discord-gamesdk)
list(APPEND release_files discord_game_sdk.dll)
endif()
#*******************************
# Copy MS C runtime dlls, required for packaging.
if (MSVC80)
set(MSVC_VER 80)
elseif (MSVC_VERSION EQUAL 1600) # VisualStudio 2010
MESSAGE(STATUS "MSVC_VERSION ${MSVC_VERSION}")
elseif (MSVC_VERSION EQUAL 1800) # VisualStudio 2013, which is (sigh) VS 12
set(MSVC_VER 120)
elseif (MSVC_VERSION GREATER_EQUAL 1910 AND MSVC_VERSION LESS 1920) # Visual Studio 2017
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 1950) # Visual Studio 2022
set(MSVC_VER 140)
else (MSVC80)
MESSAGE(WARNING "New MSVC_VERSION ${MSVC_VERSION} of MSVC: adapt Copy3rdPartyLibs.cmake")
endif (MSVC80)
# 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
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 "${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} from ${MSVC_CRT_DIR}:")
foreach(target ${third_party_targets})
MESSAGE(STATUS "${target}")
endforeach()
elseif(DARWIN)
set(vivox_lib_dir "${ARCH_PREBUILT_DIRS_RELEASE}")
set(slvoice_files SLVoice)
......@@ -132,14 +183,6 @@ elseif(LINUX)
${EXPAT_COPY}
)
if( USE_AUTOBUILD_3P )
list( APPEND release_files
libjpeg.so
libjpeg.so.8
libjpeg.so.8.2.2
)
endif()
if (TARGET ll::fmodstudio)
list(APPEND debug_files libfmodL.so)
list(APPEND release_files libfmod.so)
......
......@@ -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)
......
......@@ -21,7 +21,7 @@ endif ()
if (USE_DISCORD)
add_library( al::discord-gamesdk INTERFACE IMPORTED )
use_prebuilt_binary(discord-gamesdk)
use_prebuilt_binary(discord-gamesdk)
if (WINDOWS)
target_link_libraries( al::discord-gamesdk INTERFACE
${ARCH_PREBUILT_DIRS_RELEASE}/discordgamesdk.lib
......
......@@ -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 -*-
include(Prebuilt)
use_prebuilt_binary(fonts)
......@@ -2,24 +2,42 @@
include(Prebuilt)
include_guard()
option(USE_SYSTEM_FREETYPE "Enable usage of the AVX2 instruction set" OFF)
add_library( ll::freetype INTERFACE IMPORTED )
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)
pkg_check_modules(freetype2 REQUIRED IMPORTED_TARGET freetype2)
pkg_check_modules(fontconfig REQUIRED IMPORTED_TARGET fontconfig)
target_link_libraries( ll::freetype INTERFACE PkgConfig::freetype2 PkgConfig::fontconfig)
return()
endif()
if (USE_SYSTEM_FREETYPE)
pkg_check_modules(freetype2 REQUIRED IMPORTED_TARGET freetype2)
target_link_libraries( ll::freetype INTERFACE PkgConfig::freetype2)
endif()
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)
else()
target_link_libraries( ll::freetype INTERFACE freetype)
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 )
......
# -*- cmake -*-
include(Prebuilt)
add_library( ll::glm INTERFACE IMPORTED )
use_system_binary(glm)
use_prebuilt_binary(glm)
......@@ -77,7 +77,7 @@ foreach(HAVOK_LIB ${HAVOK_LIBS})
find_library(HAVOK_DEBUG_LIB_${HAVOK_LIB} ${HAVOK_LIB} PATHS ${HAVOK_DEBUG_LIBRARY_PATH})
find_library(HAVOK_RELEASE_LIB_${HAVOK_LIB} ${HAVOK_LIB} PATHS ${HAVOK_RELEASE_LIBRARY_PATH})
find_library(HAVOK_RELWITHDEBINFO_LIB_${HAVOK_LIB} ${HAVOK_LIB} PATHS ${HAVOK_RELWITHDEBINFO_LIBRARY_PATH})
if(LINUX)
set(debug_dir "${HAVOK_DEBUG_LIBRARY_PATH}/${HAVOK_LIB}")
set(release_dir "${HAVOK_RELEASE_LIBRARY_PATH}/${HAVOK_LIB}")
......
......@@ -9,9 +9,9 @@ add_library( ll::libjpeg INTERFACE IMPORTED )
use_system_binary(libjpeg)
use_prebuilt_binary(libjpeg-turbo)
if (LINUX)
target_link_libraries( ll::libjpeg INTERFACE jpeg)
target_link_libraries( ll::libjpeg INTERFACE ${ARCH_PREBUILT_DIRS_RELEASE}/libjpeg.a)
elseif (DARWIN)
target_link_libraries( ll::libjpeg INTERFACE jpeg)
target_link_libraries( ll::libjpeg INTERFACE ${ARCH_PREBUILT_DIRS_RELEASE}/libjpeg.a)
elseif (WINDOWS)
target_link_libraries( ll::libjpeg INTERFACE
debug ${ARCH_PREBUILT_DIRS_DEBUG}/jpeg.lib
......
......@@ -96,7 +96,7 @@ MACRO(LL_ADD_PROJECT_UNIT_TESTS project sources)
set_target_properties(PROJECT_${project}_TEST_${name} PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${EXE_STAGING_DIR}")
if (DARWIN)
set_target_properties(PROJECT_${project}_TEST_${name}
set_target_properties(PROJECT_${project}_TEST_${name}
PROPERTIES
BUILD_WITH_INSTALL_RPATH 1
INSTALL_RPATH "@executable_path/Resources"
......
# -*- cmake -*-
include(Prebuilt)
# USE_KDU can be set when launching cmake as an option using the argument -DUSE_KDU:BOOL=ON
# When building using proprietary binaries though (i.e. having access to LL private servers),
# When building using proprietary binaries though (i.e. having access to LL private servers),
# we always build with KDU
#if (INSTALL_PROPRIETARY)
# option(USE_KDU "Use Kakadu library." ON)
......
......@@ -5,7 +5,7 @@ include(Prebuilt)
# There are three possible solutions to provide the llphysicsextensions:
# - The full source package, selected by -DHAVOK:BOOL=ON
# - The stub source package, selected by -DHAVOK:BOOL=OFF
# - The stub source package, selected by -DHAVOK:BOOL=OFF
# - The prebuilt package available to those with sublicenses, selected by -DHAVOK_TPV:BOOL=ON
# if (INSTALL_PROPRIETARY AND NOT LINUX)
......
......@@ -4,7 +4,6 @@
include(Prebuilt)
include(Boost)
include(LibXML2)
include(URIPARSER)
include(ZLIBNG)
include_guard()
......@@ -14,7 +13,7 @@ add_library( ll::colladadom INTERFACE IMPORTED )
# ND, needs fixup in collada conan pkg
if( USE_CONAN )
target_include_directories( ll::colladadom SYSTEM INTERFACE
"${CONAN_INCLUDE_DIRS_COLLADADOM}/collada-dom/"
"${CONAN_INCLUDE_DIRS_COLLADADOM}/collada-dom/"
"${CONAN_INCLUDE_DIRS_COLLADADOM}/collada-dom/1.4/" )
endif()
......@@ -26,12 +25,12 @@ target_include_directories( ll::colladadom SYSTEM INTERFACE
${LIBS_PREBUILT_DIR}/include/collada/1.4
)
if (WINDOWS)
target_link_libraries(ll::colladadom INTERFACE
debug ${ARCH_PREBUILT_DIRS_DEBUG}/libcollada14dom23-sd.lib
optimized ${ARCH_PREBUILT_DIRS_RELEASE}/libcollada14dom23-s.lib
ll::libxml2 ll::uriparser ll::minizip-ng )
target_link_libraries(ll::colladadom INTERFACE
debug ${ARCH_PREBUILT_DIRS_DEBUG}/libcollada14dom23-sd.lib
optimized ${ARCH_PREBUILT_DIRS_RELEASE}/libcollada14dom23-s.lib
ll::boost ll::libxml2 ll::minizip-ng )
elseif (DARWIN)
target_link_libraries(ll::colladadom INTERFACE collada14dom ll::libxml2 ll::uriparser ll::minizip-ng)
target_link_libraries(ll::colladadom INTERFACE collada14dom ll::boost ll::libxml2 ll::minizip-ng)
elseif (LINUX)
target_link_libraries(ll::colladadom INTERFACE collada14dom ll::libxml2 ll::uriparser ll::minizip-ng)
target_link_libraries(ll::colladadom INTERFACE ${ARCH_PREBUILT_DIRS}/libcollada14dom.a ll::boost ll::libxml2 ll::minizip-ng)
endif()
# ll_deploy_sharedlibs_command
# target_exe: the cmake target of the executable for which the shared libs will be deployed.
macro(ll_deploy_sharedlibs_command target_exe)
macro(ll_deploy_sharedlibs_command target_exe)
set(TARGET_LOCATION $<TARGET_FILE:${target_exe}>)
get_filename_component(OUTPUT_PATH ${TARGET_LOCATION} PATH)
......@@ -33,7 +33,7 @@ macro(ll_deploy_sharedlibs_command target_exe)
add_custom_command(
TARGET ${target_exe} POST_BUILD
COMMAND ${CMAKE_COMMAND}
COMMAND ${CMAKE_COMMAND}
ARGS
"-DBIN_NAME=\"${TARGET_LOCATION}\""
"-DSEARCH_DIRS=\"${SEARCH_DIRS}\""
......
......@@ -19,9 +19,8 @@ if (WINDOWS)
elseif(DARWIN)
target_link_libraries( ll::libxml2 INTERFACE xml2 iconv)
else()
target_link_libraries( ll::libxml2 INTERFACE
debug ${ARCH_PREBUILT_DIRS_DEBUG}/libxml2.a
optimized ${ARCH_PREBUILT_DIRS_RELEASE}/libxml2.a
target_link_libraries( ll::libxml2 INTERFACE
${ARCH_PREBUILT_DIRS}/libxml2.a
)
endif()
......
......@@ -7,7 +7,7 @@ if (WINDOWS OR DARWIN )
# Kludge for older cmake versions, 3.20+ is needed to use a genex in add_custom_command( OUTPUT <var> ... )
# Using this will work okay-ish, as Debug is not supported anyway. But for property multi config and also
# ninja support the genex version is preferred.
if(${CMAKE_VERSION} VERSION_LESS "3.20.0")
if(${CMAKE_VERSION} VERSION_LESS "3.20.0")
if(CMAKE_BUILD_TYPE MATCHES Release)
set(SHARED_LIB_STAGING_DIR ${CMAKE_BINARY_DIR}/sharedlibs/Release)
elseif (CMAKE_BUILD_TYPE MATCHES RelWithDebInfo)
......@@ -15,6 +15,7 @@ if (WINDOWS OR DARWIN )
endif()
else()
set(SHARED_LIB_STAGING_DIR ${CMAKE_BINARY_DIR}/sharedlibs/$<IF:$<BOOL:${LL_GENERATOR_IS_MULTI_CONFIG}>,$<CONFIG>,>)
set(SYMBOLS_STAGING_DIR ${CMAKE_BINARY_DIR}/symbols/$<IF:$<BOOL:${LL_GENERATOR_IS_MULTI_CONFIG}>,$<CONFIG>,>/${VIEWER_CHANNEL})
endif()
if( DARWIN )
......@@ -77,7 +78,6 @@ elseif (WINDOWS)
endif(ADDRESS_SIZE EQUAL 32)
endif(ASAN)
else()
include(CMakeFindFrameworks)
find_library(COREFOUNDATION_LIBRARY CoreFoundation)
find_library(CARBON_LIBRARY Carbon)
find_library(COCOA_LIBRARY Cocoa)
......
......@@ -12,12 +12,11 @@ if (WINDOWS)
optimized ${ARCH_PREBUILT_DIRS_RELEASE}/nghttp2.lib
)
elseif (LINUX)
target_link_libraries( ll::nghttp2 INTERFACE
debug ${ARCH_PREBUILT_DIRS_DEBUG}/libnghttp2.a
optimized ${ARCH_PREBUILT_DIRS_RELEASE}/libnghttp2.a
target_link_libraries( ll::nghttp2 INTERFACE
${ARCH_PREBUILT_DIRS}/libnghttp2.a
)
else ()
target_link_libraries( ll::nghttp2 INTERFACE
target_link_libraries( ll::nghttp2 INTERFACE
debug ${ARCH_PREBUILT_DIRS_DEBUG}/libnghttp2.a
optimized ${ARCH_PREBUILT_DIRS_RELEASE}/libnghttp2.a
)
......