Skip to content
Snippets Groups Projects
Commit ef006cb3 authored by Rye Mutt's avatar Rye Mutt :bread:
Browse files

More cmake fixes

parent 5683813a
No related branches found
No related tags found
No related merge requests found
......@@ -26,7 +26,25 @@ variables:
options:
- "FALSE"
- "TRUE"
description: "Enable sentry crash reporting module. Set to 'TRUE' by default."
description: "Enable Sentry crash reporting. Set to 'TRUE' by default."
USE_DISCORD:
value: "TRUE"
options:
- "FALSE"
- "TRUE"
description: "Enable Discord integrations. Set to 'TRUE' by default."
USE_HAVOK:
value: "TRUE"
options:
- "FALSE"
- "TRUE"
description: "Enable Havok integrations. Set to 'TRUE' by default."
USE_LTO:
value: "TRUE"
options:
- "FALSE"
- "TRUE"
description: "Enable Link Time Optimization. Set to 'TRUE' by default."
AUTOBUILD_BUILD_ID: $CI_PIPELINE_ID
AUTOBUILD_GITLAB_TOKEN: $CI_JOB_TOKEN
AUTOBUILD_INSTALLABLE_CACHE: "$CI_PROJECT_DIR/.cache/autobuild"
......@@ -51,7 +69,7 @@ variables:
- .\.venv\Scripts\Activate.ps1
- pip install --upgrade llbase autobuild certifi sentry-cli cmake
script:
- autobuild configure -c Release -- -DUSE_LTO=ON -DDISABLE_FATAL_WARNINGS=ON -DREVISION_FROM_VCS=FALSE -DENABLE_DELTA_GEN=ON
- autobuild configure -c Release -- -DUSE_LTO=${USE_LTO} -DHAVOK_TPV=${USE_HAVOK} -DDISABLE_FATAL_WARNINGS=ON -DREVISION_FROM_VCS=FALSE -DENABLE_DELTA_GEN=ON
- autobuild build -c Release --no-configure
- autobuild graph -c Release --graph-file alchemy-windows${AUTOBUILD_ADDRSIZE}-dependencies.svg build-vc-64/autobuild-package.xml
- $AlchemyPdbPath = Resolve-Path build-vc-*/newview/Release/Alchemy*.pdb
......@@ -91,7 +109,7 @@ variables:
- source .venv/bin/activate
- pip3 install --upgrade llbase autobuild dmgbuild certifi sentry-cli cmake
script:
- autobuild configure -c Release -- -DENABLE_SIGNING=ON -DUSE_LTO=ON -DDISABLE_FATAL_WARNINGS=ON -DREVISION_FROM_VCS=FALSE
- autobuild configure -c Release -- -DENABLE_SIGNING=ON -DUSE_LTO=${USE_LTO} -DHAVOK_TPV=${USE_HAVOK} -DDISABLE_FATAL_WARNINGS=ON -DREVISION_FROM_VCS=FALSE
- autobuild build -c Release --no-configure
- autobuild graph -c Release --graph-file alchemy-darwin${AUTOBUILD_ADDRSIZE}-dependencies.svg build-darwin-64/autobuild-package.xml
- if [ "$USE_SENTRY" = "TRUE" ]; then sentry-cli difutil bundle-sources build-darwin-*/newview/Release/*.app.dSYM/Contents/Resources/DWARF/*; fi
......@@ -133,7 +151,7 @@ variables:
- source .venv/bin/activate
- pip3 install --upgrade llbase autobuild certifi sentry-cli cmake ninja
script:
- autobuild configure -c Release -- -DUSE_LTO=ON -DDISABLE_FATAL_WARNINGS=ON -DREVISION_FROM_VCS=FALSE
- autobuild configure -c Release -- -DUSE_LTO=${USE_LTO} -DDISABLE_FATAL_WARNINGS=ON -DREVISION_FROM_VCS=FALSE
- autobuild build -c Release --no-configure
- autobuild graph -c Release --graph-file alchemy-linuxs${AUTOBUILD_ADDRSIZE}-dependencies.svg build-linux-${AUTOBUILD_ADDRSIZE}/autobuild-package.xml
- if [ "$USE_SENTRY" = "TRUE" ]; then sentry-cli difutil bundle-sources build-linux-*/newview/alchemy-bin; fi
......
......@@ -17,5 +17,5 @@ add_custom_command(OUTPUT packages-info.txt
COMMAND ${Python3_EXECUTABLE}
${CMAKE_SOURCE_DIR}/cmake/run_build_test.py -DAUTOBUILD_ADDRSIZE=${ADDRESS_SIZE} -DAUTOBUILD=${AUTOBUILD_EXECUTABLE}
${Python3_EXECUTABLE}
${CMAKE_SOURCE_DIR}/../scripts/packages-formatter.py "${VIEWER_CHANNEL}" "${VIEWER_SHORT_VERSION}" "${AUTOBUILD_INSTALL_DIR}" > packages-info.txt
${CMAKE_SOURCE_DIR}/../scripts/packages-formatter.py "${VIEWER_CHANNEL}" "${VIEWER_SHORT_VERSION}" "${LIBS_PREBUILT_DIR}" > packages-info.txt
)
......@@ -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)
......@@ -4,7 +4,9 @@ include(Prebuilt)
include_guard()
#Discord Integration
option(USE_DISCORD "Enable Discord client integration" OFF)
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)
......@@ -12,13 +14,8 @@ else()
set(DISCORD_CLIENTID "" CACHE STRING "Discord Client ID")
endif()
if (INSTALL_PROPRIETARY)
set(USE_DISCORD ON CACHE BOOL "Use Discord SDK" FORCE)
if (DISCORD_CLIENTID)
set(USE_DISCORD ON CACHE BOOL "Use Discord SDK" FORCE)
else ()
set(USE_DISCORD OFF CACHE BOOL "Use Discord SDK" FORCE)
endif ()
if (INSTALL_PROPRIETARY AND NOT DISCORD_CLIENTID STREQUAL "")
set(USE_DISCORD ON CACHE BOOL "Enable Discord client integration")
endif ()
if (USE_DISCORD)
......
......@@ -2,4 +2,4 @@
use_prebuilt_binary(jpegencoderbasic)
# Main JS file
configure_file("${AUTOBUILD_INSTALL_DIR}/js/jpeg_encoder_basic.js" "${CMAKE_SOURCE_DIR}/newview/skins/default/html/common/equirectangular/js/jpeg_encoder_basic.js" COPYONLY)
configure_file("${LIBS_PREBUILT_DIR}/js/jpeg_encoder_basic.js" "${CMAKE_SOURCE_DIR}/newview/skins/default/html/common/equirectangular/js/jpeg_encoder_basic.js" COPYONLY)
......@@ -28,6 +28,6 @@ if (USE_KDU)
endif (WINDOWS)
target_include_directories( ll::kdu SYSTEM INTERFACE
${AUTOBUILD_INSTALL_DIR}/include/kdu
${LIBS_PREBUILT_DIR}/include/kdu
)
endif (USE_KDU)
......@@ -8,9 +8,9 @@ include(Prebuilt)
# - 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)
set(HAVOK_TPV ON CACHE BOOL "Use Havok physics library" FORCE)
endif ()
# if (INSTALL_PROPRIETARY AND NOT LINUX)
# set(HAVOK_TPV ON CACHE BOOL "Use Havok physics library")
# endif ()
include_guard()
add_library( llphysicsextensions_impl INTERFACE IMPORTED )
......@@ -52,9 +52,9 @@ else (HAVOK)
endif ()
target_include_directories( llphysicsextensions_impl INTERFACE ${LIBS_PREBUILT_DIR}/include/)
else()
use_prebuilt_binary(llphysicsextensions_stub)
set(LLPHYSICSEXTENSIONS_SRC_DIR ${LIBS_PREBUILT_DIR}/llphysicsextensions/stub)
target_link_libraries( llphysicsextensions_impl INTERFACE llphysicsextensionsstub)
target_include_directories( llphysicsextensions_impl INTERFACE ${LIBS_PREBUILT_DIR}/include/llphysicsextensions)
use_prebuilt_binary(llphysicsextensions_stub)
set(LLPHYSICSEXTENSIONS_SRC_DIR ${LIBS_PREBUILT_DIR}/llphysicsextensions/stub)
target_link_libraries( llphysicsextensions_impl INTERFACE llphysicsextensionsstub)
target_include_directories( llphysicsextensions_impl INTERFACE ${LIBS_PREBUILT_DIR}/include/llphysicsextensions)
endif()
endif ()
......@@ -13,7 +13,7 @@ set(ARCH_PREBUILT_BIN_DIRS_DEBUG ${LIBS_PREBUILT_DIR}/bin/debug)
include(FindAutobuild)
set(PREBUILD_TRACKING_DIR ${AUTOBUILD_INSTALL_DIR}/cmake_tracking)
set(PREBUILD_TRACKING_DIR ${LIBS_PREBUILT_DIR}/cmake_tracking)
# For the library installation process;
# see cmake/Prebuild.cmake for the counterpart code.
if ("${CMAKE_SOURCE_DIR}/../autobuild.xml" IS_NEWER_THAN "${PREBUILD_TRACKING_DIR}/sentinel_installed")
......@@ -44,14 +44,14 @@ macro (use_prebuilt_binary _binary)
if(${PREBUILD_TRACKING_DIR}/sentinel_installed IS_NEWER_THAN ${PREBUILD_TRACKING_DIR}/${_binary}_installed OR NOT ${${_binary}_installed} EQUAL 0)
if(DEBUG_PREBUILT)
message(STATUS "cd ${CMAKE_SOURCE_DIR} && ${AUTOBUILD_EXECUTABLE} install
--install-dir=${AUTOBUILD_INSTALL_DIR}
--install-dir=${LIBS_PREBUILT_DIR}
${_binary} ")
endif(DEBUG_PREBUILT)
execute_process(COMMAND "${AUTOBUILD_EXECUTABLE}"
install
-A${ADDRESS_SIZE}
--skip-source-environment
--install-dir=${AUTOBUILD_INSTALL_DIR}
--install-dir=${LIBS_PREBUILT_DIR}
${_binary}
WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}"
RESULT_VARIABLE ${_binary}_installed
......
......@@ -7,6 +7,19 @@ include(OpenSSL)
include(ZLIBNG)
include_guard()
if (DEFINED ENV{USE_SENTRY})
set(USE_SENTRY $ENV{USE_SENTRY} CACHE BOOL "" FORCE)
endif()
if(DEFINED ENV{SENTRY_DSN})
set(SENTRY_DSN $ENV{SENTRY_DSN} CACHE STRING "Sentry DSN" FORCE)
else()
set(SENTRY_DSN "" CACHE STRING "Sentry DSN")
endif()
if (INSTALL_PROPRIETARY AND NOT SENTRY_DSN STREQUAL "")
set(USE_SENTRY ON CACHE BOOL "Use the Sentry crash reporting system")
endif ()
if (USE_SENTRY)
add_library( al::sentry INTERFACE IMPORTED )
......
......@@ -2,7 +2,7 @@
use_prebuilt_binary(threejs)
# Main three.js file
configure_file("${AUTOBUILD_INSTALL_DIR}/js/three.min.js" "${CMAKE_SOURCE_DIR}/newview/skins/default/html/common/equirectangular/js/three.min.js" COPYONLY)
configure_file("${LIBS_PREBUILT_DIR}/js/three.min.js" "${CMAKE_SOURCE_DIR}/newview/skins/default/html/common/equirectangular/js/three.min.js" COPYONLY)
# Controls to move around the scene using mouse or keyboard
configure_file("${AUTOBUILD_INSTALL_DIR}/js/OrbitControls.js" "${CMAKE_SOURCE_DIR}/newview/skins/default/html/common/equirectangular/js/OrbitControls.js" COPYONLY)
configure_file("${LIBS_PREBUILT_DIR}/js/OrbitControls.js" "${CMAKE_SOURCE_DIR}/newview/skins/default/html/common/equirectangular/js/OrbitControls.js" COPYONLY)
......@@ -34,7 +34,6 @@ option(ENABLE_MEDIA_PLUGINS "Turn off building media plugins if they are importe
# Compiler and toolchain options
option(INCREMENTAL_LINK "Use incremental linking on win32 builds (enable for faster links on some machines)" OFF)
option(USE_LTO "Enable global and interprocedural optimizations" OFF)
option(FULL_DEBUG_SYMS "Enable Generation of full pdb on msvc or dsym on macos" OFF)
option(USE_ASAN "Enable address sanitizer for detection of memory issues" OFF)
option(USE_LEAKSAN "Enable address sanitizer for detection of memory leaks" OFF)
option(USE_UBSAN "Enable undefined behavior sanitizer" OFF)
......@@ -49,28 +48,6 @@ set(VIEWER_SYMBOL_FILE "" CACHE STRING "Name of tarball into which to place symb
option(USE_CEF "Enable CEF media plugin" ON)
option(USE_VLC "Enable VLC media plugin" ON)
#Crash reporting
option(USE_SENTRY "Use the Sentry crash reporting system" OFF)
if(DEFINED ENV{SENTRY_DSN})
set(SENTRY_DSN $ENV{SENTRY_DSN} CACHE STRING "Sentry DSN" FORCE)
endif()
if (INSTALL_PROPRIETARY)
# Note that viewer_manifest.py makes decision based on SENTRY_DSN and not USE_SENTRY
if (SENTRY_DSN)
set(USE_SENTRY ON CACHE BOOL "Use the Sentry crash reporting system" FORCE)
else ()
set(USE_SENTRY OFF CACHE BOOL "Use the Sentry crash reporting system" FORCE)
endif ()
else ()
set(USE_SENTRY OFF CACHE BOOL "Use the Sentry crash reporting system" FORCE)
endif ()
if (DEFINED ENV{USE_SENTRY})
set(USE_SENTRY $ENV{USE_SENTRY} CACHE BOOL "" FORCE)
endif()
if(LIBS_CLOSED_DIR)
file(TO_CMAKE_PATH "${LIBS_CLOSED_DIR}" LIBS_CLOSED_DIR)
else(LIBS_CLOSED_DIR)
......@@ -169,11 +146,8 @@ if (${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
set(CMAKE_OSX_DEPLOYMENT_TARGET 10.15)
set(CMAKE_XCODE_ATTRIBUTE_GCC_GENERATE_DEBUGGING_SYMBOLS YES)
if(FULL_DEBUG_SYMS OR USE_SENTRY)
set(CMAKE_XCODE_ATTRIBUTE_DEBUG_INFORMATION_FORMAT dwarf-with-dsym)
else()
set(CMAKE_XCODE_ATTRIBUTE_DEBUG_INFORMATION_FORMAT dwarf)
endif()
set(CMAKE_XCODE_ATTRIBUTE_DEBUG_INFORMATION_FORMAT dwarf-with-dsym)
# Obj-C
set(CMAKE_XCODE_ATTRIBUTE_CLANG_ENABLE_OBJC_ARC YES)
set(CMAKE_XCODE_ATTRIBUTE_CLANG_ENABLE_OBJC_WEAK YES)
......
......@@ -76,21 +76,21 @@ add_custom_command(TARGET llimage_libtest POST_BUILD
# if (DARWIN)
# # Copy the required libraries to the package app
# add_custom_command(TARGET llimage_libtest POST_BUILD
# COMMAND ${CMAKE_COMMAND} -E copy ${AUTOBUILD_INSTALL_DIR}/lib/release/libapr-1.0.dylib ${LLIMAGE_LIBTEST_DESTINATION_DIR}
# DEPENDS ${AUTOBUILD_INSTALL_DIR}/lib/release/libapr-1.0.dylib
# COMMAND ${CMAKE_COMMAND} -E copy ${LIBS_PREBUILT_DIR}/lib/release/libapr-1.0.dylib ${LLIMAGE_LIBTEST_DESTINATION_DIR}
# DEPENDS ${LIBS_PREBUILT_DIR}/lib/release/libapr-1.0.dylib
# )
# add_custom_command(TARGET llimage_libtest POST_BUILD
# COMMAND ${CMAKE_COMMAND} -E copy ${AUTOBUILD_INSTALL_DIR}/lib/release/libaprutil-1.0.dylib ${LLIMAGE_LIBTEST_DESTINATION_DIR}
# DEPENDS ${AUTOBUILD_INSTALL_DIR}/lib/release/libaprutil-1.0.dylib
# COMMAND ${CMAKE_COMMAND} -E copy ${LIBS_PREBUILT_DIR}/lib/release/libaprutil-1.0.dylib ${LLIMAGE_LIBTEST_DESTINATION_DIR}
# DEPENDS ${LIBS_PREBUILT_DIR}/lib/release/libaprutil-1.0.dylib
# )
# add_custom_command(TARGET llimage_libtest POST_BUILD
# COMMAND ${CMAKE_COMMAND} -E copy ${AUTOBUILD_INSTALL_DIR}/lib/release/libexception_handler.dylib ${LLIMAGE_LIBTEST_DESTINATION_DIR}
# DEPENDS ${AUTOBUILD_INSTALL_DIR}/lib/release/libexception_handler.dylib
# COMMAND ${CMAKE_COMMAND} -E copy ${LIBS_PREBUILT_DIR}/lib/release/libexception_handler.dylib ${LLIMAGE_LIBTEST_DESTINATION_DIR}
# DEPENDS ${LIBS_PREBUILT_DIR}/lib/release/libexception_handler.dylib
# )
# foreach(expat ${EXPAT_COPY})
# add_custom_command(TARGET llimage_libtest POST_BUILD
# COMMAND ${CMAKE_COMMAND} -E copy ${AUTOBUILD_INSTALL_DIR}/lib/release/${expat} ${LLIMAGE_LIBTEST_DESTINATION_DIR}
# DEPENDS ${AUTOBUILD_INSTALL_DIR}/lib/release/${expat}
# COMMAND ${CMAKE_COMMAND} -E copy ${LIBS_PREBUILT_DIR}/lib/release/${expat} ${LLIMAGE_LIBTEST_DESTINATION_DIR}
# DEPENDS ${LIBS_PREBUILT_DIR}/lib/release/${expat}
# )
# endforeach(expat)
# endif (DARWIN)
......
......@@ -1599,27 +1599,27 @@ if (WINDOWS)
message(STATUS "Copying icons for ${ICON_PATH}")
execute_process(
COMMAND ${CMAKE_COMMAND} -E copy_if_different
"${AUTOBUILD_INSTALL_DIR}/branding/viewer/icons/${ICON_PATH}/alchemy.ico"
"${LIBS_PREBUILT_DIR}/branding/viewer/icons/${ICON_PATH}/alchemy.ico"
"${CMAKE_CURRENT_SOURCE_DIR}/res/ll_icon.ico"
)
execute_process(
COMMAND ${CMAKE_COMMAND} -E copy_if_different
"${AUTOBUILD_INSTALL_DIR}/branding/viewer/icons/${ICON_PATH}/alchemy_256.BMP"
"${LIBS_PREBUILT_DIR}/branding/viewer/icons/${ICON_PATH}/alchemy_256.BMP"
"${CMAKE_CURRENT_SOURCE_DIR}/res/ll_icon.BMP"
)
execute_process(
COMMAND ${CMAKE_COMMAND} -E copy_if_different
"${AUTOBUILD_INSTALL_DIR}/branding/viewer/icons/${ICON_PATH}/alchemy_256.BMP"
"${LIBS_PREBUILT_DIR}/branding/viewer/icons/${ICON_PATH}/alchemy_256.BMP"
"${CMAKE_CURRENT_SOURCE_DIR}/res-sdl/ll_icon.BMP"
)
execute_process(
COMMAND ${CMAKE_COMMAND} -E copy_if_different
"${AUTOBUILD_INSTALL_DIR}/branding/installer/icons/install_icon.ico"
"${LIBS_PREBUILT_DIR}/branding/installer/icons/install_icon.ico"
"${CMAKE_CURRENT_SOURCE_DIR}/installers/windows/install_icon.ico"
)
execute_process(
COMMAND ${CMAKE_COMMAND} -E copy_if_different
"${AUTOBUILD_INSTALL_DIR}/branding/installer/splash/${ICON_PATH}/install_splash.gif"
"${LIBS_PREBUILT_DIR}/branding/installer/splash/${ICON_PATH}/install_splash.gif"
"${CMAKE_CURRENT_SOURCE_DIR}/installers/windows/install_splash.gif"
)
......@@ -1887,7 +1887,7 @@ if (WINDOWS)
#${SHARED_LIB_STAGING_DIR}/${LL_INTDIR}/SLVoice.exe
#${SHARED_LIB_STAGING_DIR}/${LL_INTDIR}/libsndfile-1.dll
#${SHARED_LIB_STAGING_DIR}/${LL_INTDIR}/vivoxoal.dll
${AUTOBUILD_INSTALL_DIR}/ca-bundle.crt
${LIBS_PREBUILT_DIR}/ca-bundle.crt
${CMAKE_CURRENT_SOURCE_DIR}/licenses-win32.txt
${CMAKE_CURRENT_SOURCE_DIR}/featuretable.txt
${viewer_APPSETTINGS_FILES}
......
......@@ -1245,8 +1245,8 @@ def construct(self):
' '.join((("'%s'" % arg) if ' ' in arg else arg) for arg in sys.argv))))
# fmodstudio and openal can be used simultaneously and controled by environment
extra_arguments = [
dict(name='discord', description="""Enable Discord integration""", default=''),
dict(name='sentry', description="""Enable Sentry crash report system""", default=''),
dict(name='discord', description="""Enable Discord integration""", default='OFF'),
dict(name='sentry', description="""Enable Sentry crash report system""", default='OFF'),
dict(name='fmodstudio', description="""Indication if fmod studio libraries are needed""", default='OFF'),
dict(name='openal', description="""Indication if openal libraries are needed""", default='OFF'),
dict(name='kdu', description="""Indication if kdu libraries are needed""", default='OFF'),
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment