summaryrefslogtreecommitdiff
path: root/indra/cmake
diff options
context:
space:
mode:
Diffstat (limited to 'indra/cmake')
-rw-r--r--indra/cmake/00-Common.cmake15
-rw-r--r--indra/cmake/APR.cmake9
-rw-r--r--indra/cmake/Audio.cmake9
-rw-r--r--indra/cmake/Boost.cmake15
-rw-r--r--indra/cmake/BuildVersion.cmake6
-rw-r--r--indra/cmake/CEFPlugin.cmake9
-rw-r--r--indra/cmake/ConfigurePkgConfig.cmake2
-rw-r--r--indra/cmake/FreeType.cmake9
-rw-r--r--indra/cmake/GLEXT.cmake7
-rw-r--r--indra/cmake/GLH.cmake6
-rw-r--r--indra/cmake/Hunspell.cmake2
-rw-r--r--indra/cmake/ICU4C.cmake8
-rw-r--r--indra/cmake/LLPhysicsExtensions.cmake3
-rw-r--r--indra/cmake/LLPrimitive.cmake10
-rw-r--r--indra/cmake/LLWindow.cmake13
-rw-r--r--indra/cmake/LibVLCPlugin.cmake17
-rw-r--r--indra/cmake/LibraryInstall.cmake13
-rw-r--r--indra/cmake/Linking.cmake2
-rw-r--r--indra/cmake/Meshoptimizer.cmake6
-rw-r--r--indra/cmake/OPENAL.cmake11
-rw-r--r--indra/cmake/OpenJPEG.cmake15
-rw-r--r--indra/cmake/OpenSSL.cmake6
-rw-r--r--indra/cmake/Prebuilt.cmake16
-rw-r--r--indra/cmake/TinyGLTF.cmake4
-rw-r--r--indra/cmake/UI.cmake13
-rw-r--r--indra/cmake/UnixInstall.cmake18
-rw-r--r--indra/cmake/ViewerMiscLibs.cmake5
-rw-r--r--indra/cmake/VulkanGltf.cmake2
-rw-r--r--indra/cmake/XmlRpcEpi.cmake12
-rw-r--r--indra/cmake/ZLIBNG.cmake6
-rw-r--r--indra/cmake/xxHash.cmake7
31 files changed, 254 insertions, 22 deletions
diff --git a/indra/cmake/00-Common.cmake b/indra/cmake/00-Common.cmake
index 24534c98d9..2ac6cd4bc2 100644
--- a/indra/cmake/00-Common.cmake
+++ b/indra/cmake/00-Common.cmake
@@ -106,7 +106,7 @@ if (WINDOWS)
endif (WINDOWS)
-if (LINUX)
+if (LINUX OR CMAKE_SYSTEM_NAME MATCHES "FreeBSD")
set(CMAKE_SKIP_RPATH TRUE)
# EXTERNAL_TOS
@@ -120,10 +120,14 @@ if (LINUX)
add_compile_definitions(
_REENTRANT
_FORTIFY_SOURCE=2
- EXTERNAL_TOS
APPID=secondlife
LL_IGNORE_SIGCHLD
)
+
+ if (CMAKE_SYSTEM_NAME MATCHES "FreeBSD")
+ add_compile_definitions(EXTERNAL_TOS)
+ endif (CMAKE_SYSTEM_NAME MATCHES "FreeBSD")
+
add_compile_options(
-fexceptions
-fno-math-errno
@@ -134,9 +138,12 @@ if (LINUX)
-pthread
-Wno-parentheses
-Wno-deprecated
- -fvisibility=hidden
)
+ if (NOT BUILD_SHARED_LIBS)
+ add_compile_options(-fvisibility=hidden)
+ endif (NOT BUILD_SHARED_LIBS)
+
if (ADDRESS_SIZE EQUAL 32)
add_compile_options(-march=pentium4)
endif (ADDRESS_SIZE EQUAL 32)
@@ -147,7 +154,7 @@ if (LINUX)
set(CMAKE_CXX_LINK_FLAGS "-Wl,--no-keep-memory")
set(CMAKE_CXX_FLAGS_DEBUG "-fno-inline ${CMAKE_CXX_FLAGS_DEBUG}")
-endif (LINUX)
+endif (LINUX OR CMAKE_SYSTEM_NAME MATCHES "FreeBSD")
if (DARWIN)
diff --git a/indra/cmake/APR.cmake b/indra/cmake/APR.cmake
index 21139319c3..72486f110d 100644
--- a/indra/cmake/APR.cmake
+++ b/indra/cmake/APR.cmake
@@ -5,6 +5,15 @@ include_guard()
add_library( ll::apr INTERFACE IMPORTED )
+if (NOT (USE_AUTOBUILD_3P OR USE_CONAN))
+ include(FindPkgConfig)
+ pkg_check_modules(Apr REQUIRED apr-1 apr-util-1)
+ target_include_directories(ll::apr SYSTEM INTERFACE ${Apr_INCLUDE_DIRS})
+ target_link_directories(ll::apr INTERFACE ${Apr_LIBRARY_DIRS})
+ target_link_libraries(ll::apr INTERFACE ${Apr_LIBRARIES})
+ return ()
+endif ()
+
use_system_binary( apr apr-util )
use_prebuilt_binary(apr_suite)
diff --git a/indra/cmake/Audio.cmake b/indra/cmake/Audio.cmake
index 38547bb017..4c1a141dc5 100644
--- a/indra/cmake/Audio.cmake
+++ b/indra/cmake/Audio.cmake
@@ -4,6 +4,15 @@ include(Prebuilt)
include_guard()
add_library( ll::vorbis INTERFACE IMPORTED )
+if (NOT (USE_AUTOBUILD_3P OR USE_CONAN))
+ include(FindPkgConfig)
+ pkg_check_modules(Vorbis REQUIRED ogg vorbis vorbisenc vorbisfile)
+ target_include_directories(ll::vorbis SYSTEM INTERFACE ${Vorbis_INCLUDE_DIRS})
+ target_link_directories(ll::vorbis INTERFACE ${Vorbis_LIBRARY_DIRS})
+ target_link_libraries(ll::vorbis INTERFACE ${Vorbis_LIBRARIES})
+ return ()
+endif ()
+
use_system_binary(vorbis)
use_prebuilt_binary(ogg_vorbis)
target_include_directories( ll::vorbis SYSTEM INTERFACE ${LIBS_PREBUILT_DIR}/include )
diff --git a/indra/cmake/Boost.cmake b/indra/cmake/Boost.cmake
index 601a23a86d..0c5abd885c 100644
--- a/indra/cmake/Boost.cmake
+++ b/indra/cmake/Boost.cmake
@@ -8,6 +8,21 @@ 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()
+elseif( NOT USE_AUTOBUILD_3P )
+ find_package( Boost REQUIRED )
+ target_compile_definitions( ll::boost INTERFACE BOOST_BIND_GLOBAL_PLACEHOLDERS )
+ if (DARWIN)
+ set(sfx "-mt")
+ endif()
+ target_link_libraries( ll::boost INTERFACE
+ boost_context${sfx}
+ boost_fiber${sfx}
+ boost_filesystem${sfx}
+ boost_program_options${sfx}
+ boost_regex${sfx}
+ boost_system${sfx}
+ boost_thread${sfx})
+ return()
endif()
use_prebuilt_binary(boost)
diff --git a/indra/cmake/BuildVersion.cmake b/indra/cmake/BuildVersion.cmake
index b531f29ee2..a56829bf14 100644
--- a/indra/cmake/BuildVersion.cmake
+++ b/indra/cmake/BuildVersion.cmake
@@ -55,4 +55,10 @@ if (NOT DEFINED VIEWER_SHORT_VERSION) # will be true in indra/, false in indra/n
"LL_VIEWER_VERSION_BUILD=${VIEWER_VERSION_REVISION}"
"LLBUILD_CONFIG=\"${CMAKE_BUILD_TYPE}\""
)
+if (PACKAGE)
+ include(CPack)
+ set(CPACK_PACKAGE_VERSION
+ ${VIEWER_VERSION_MAJOR}.${VIEWER_VERSION_MINOR}.${VIEWER_VERSION_PATCH}.${VIEWER_VERSION_REVISION}
+ CACHE STRING "Viewer major.minor.patch.revision versions.")
+endif (PACKAGE)
endif (NOT DEFINED VIEWER_SHORT_VERSION)
diff --git a/indra/cmake/CEFPlugin.cmake b/indra/cmake/CEFPlugin.cmake
index 9b77becf29..2a1d30e548 100644
--- a/indra/cmake/CEFPlugin.cmake
+++ b/indra/cmake/CEFPlugin.cmake
@@ -5,8 +5,8 @@ include(Prebuilt)
include_guard()
add_library( ll::cef INTERFACE IMPORTED )
-use_prebuilt_binary(dullahan)
-target_include_directories( ll::cef SYSTEM INTERFACE ${LIBS_PREBUILT_DIR}/include/cef)
+#use_prebuilt_binary(dullahan)
+target_include_directories( ll::cef SYSTEM INTERFACE ${LIBS_PREBUILT_DIR}/include ${LIBS_PREBUILT_DIR}/include/cef)
if (WINDOWS)
target_link_libraries( ll::cef INTERFACE
@@ -33,4 +33,9 @@ elseif (DARWIN)
)
elseif (LINUX)
+ target_link_libraries( ll::cef INTERFACE
+ dullahan
+ cef_dll_wrapper
+ cef
+ )
endif (WINDOWS)
diff --git a/indra/cmake/ConfigurePkgConfig.cmake b/indra/cmake/ConfigurePkgConfig.cmake
index 55d865392e..a2d5b31e25 100644
--- a/indra/cmake/ConfigurePkgConfig.cmake
+++ b/indra/cmake/ConfigurePkgConfig.cmake
@@ -14,7 +14,7 @@ IF("$ENV{PKG_CONFIG_LIBDIR}" STREQUAL "")
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_GUESS /usr/lib/x86_64-linux-gnu)
SET(PKG_CONFIG_MULTI_LOCAL_GUESS /usr/local/lib/x86_64-linux-gnu)
endif (ADDRESS_SIZE EQUAL 32)
diff --git a/indra/cmake/FreeType.cmake b/indra/cmake/FreeType.cmake
index 77140af641..fbf188d100 100644
--- a/indra/cmake/FreeType.cmake
+++ b/indra/cmake/FreeType.cmake
@@ -4,6 +4,15 @@ include(Prebuilt)
include_guard()
add_library( ll::freetype INTERFACE IMPORTED )
+if (NOT (USE_AUTOBUILD_3P OR USE_CONAN))
+ include(FindPkgConfig)
+ pkg_check_modules(Freetype REQUIRED freetype2)
+ target_include_directories( ll::freetype SYSTEM INTERFACE ${Freetype_INCLUDE_DIRS} )
+ target_link_directories( ll::freetype INTERFACE ${Freetype_LIBRARY_DIRS} )
+ target_link_libraries( ll::freetype INTERFACE ${Freetype_LIBRARIES} )
+ return ()
+endif ()
+
use_system_binary(freetype)
use_prebuilt_binary(freetype)
target_include_directories( ll::freetype SYSTEM INTERFACE ${LIBS_PREBUILT_DIR}/include/freetype2/)
diff --git a/indra/cmake/GLEXT.cmake b/indra/cmake/GLEXT.cmake
index a780966f0c..ea349237d3 100644
--- a/indra/cmake/GLEXT.cmake
+++ b/indra/cmake/GLEXT.cmake
@@ -3,7 +3,10 @@ include(Prebuilt)
include(GLH)
add_library( ll::glext INTERFACE IMPORTED )
-use_system_binary(glext)
-use_prebuilt_binary(glext)
+if (USESYSTEMLIBS)
+ return ()
+endif ()
+use_system_binary(glext)
+use_prebuilt_binary(glext)
diff --git a/indra/cmake/GLH.cmake b/indra/cmake/GLH.cmake
index 0cefc3543a..09f7d568be 100644
--- a/indra/cmake/GLH.cmake
+++ b/indra/cmake/GLH.cmake
@@ -3,5 +3,11 @@ include(Prebuilt)
add_library( ll::glh_linear INTERFACE IMPORTED )
+if (USESYSTEMLIBS)
+ target_include_directories(ll::glh_linear SYSTEM INTERFACE
+ ${CMAKE_SYSROOT}/usr/local/include)
+ return ()
+endif ()
+
use_system_binary( glh_linear )
use_prebuilt_binary(glh_linear)
diff --git a/indra/cmake/Hunspell.cmake b/indra/cmake/Hunspell.cmake
index bb037c0237..96c75ad262 100644
--- a/indra/cmake/Hunspell.cmake
+++ b/indra/cmake/Hunspell.cmake
@@ -2,7 +2,9 @@
include(Prebuilt)
include_guard()
+if (USE_AUTOBUILD_3P OR USE_CONAN)
use_prebuilt_binary(dictionaries)
+endif ()
add_library( ll::hunspell INTERFACE IMPORTED )
use_system_binary(hunspell)
diff --git a/indra/cmake/ICU4C.cmake b/indra/cmake/ICU4C.cmake
index 7b27665483..f4b2a5d85f 100644
--- a/indra/cmake/ICU4C.cmake
+++ b/indra/cmake/ICU4C.cmake
@@ -5,6 +5,14 @@ include_guard()
add_library( ll::icu4c INTERFACE IMPORTED )
+if (USESYSTEMLIBS)
+ include(FindPkgConfig)
+ pkg_check_modules(Icuuc REQUIRED icu-uc)
+ target_include_directories(ll::icu4c SYSTEM INTERFACE ${Icuuc_INCLUDE_DIRS})
+ target_link_directories(ll::icu4c INTERFACE ${Icuuc_LIBRARY_DIRS})
+ target_link_libraries(ll::icu4c INTERFACE ${Icuuc_LIBRARIES})
+ return ()
+endif ()
use_system_binary(icu4c)
use_prebuilt_binary(icu4c)
diff --git a/indra/cmake/LLPhysicsExtensions.cmake b/indra/cmake/LLPhysicsExtensions.cmake
index 36821447c9..b2151dc781 100644
--- a/indra/cmake/LLPhysicsExtensions.cmake
+++ b/indra/cmake/LLPhysicsExtensions.cmake
@@ -26,6 +26,9 @@ if (HAVOK)
elseif (HAVOK_TPV)
use_prebuilt_binary(llphysicsextensions_tpv)
target_link_libraries( llphysicsextensions_impl INTERFACE llphysicsextensions_tpv)
+elseif (NOT (USE_AUTOBUILD_3P OR USE_CONAN))
+ target_link_libraries( llphysicsextensions_impl INTERFACE llphysicsextensionsstub)
+ return ()
else (HAVOK)
use_prebuilt_binary(llphysicsextensions_stub)
set(LLPHYSICSEXTENSIONS_SRC_DIR ${LIBS_PREBUILT_DIR}/llphysicsextensions/stub)
diff --git a/indra/cmake/LLPrimitive.cmake b/indra/cmake/LLPrimitive.cmake
index 3d8499cbc3..387cae61d8 100644
--- a/indra/cmake/LLPrimitive.cmake
+++ b/indra/cmake/LLPrimitive.cmake
@@ -11,6 +11,16 @@ add_library( ll::minizip-ng INTERFACE IMPORTED )
add_library( ll::libxml INTERFACE IMPORTED )
add_library( ll::colladadom INTERFACE IMPORTED )
+if ( NOT (USE_AUTOBUILD_3P OR USE_CONAN) )
+ include(FindPkgConfig)
+ pkg_check_modules(Colladadom REQUIRED collada-dom)
+ target_compile_definitions( ll::colladadom INTERFACE COLLADA_DOM_SUPPORT141 )
+ target_include_directories( ll::colladadom SYSTEM INTERFACE ${Colladadom_INCLUDE_DIRS} ${Colladadom_INCLUDE_DIRS}/1.4 )
+ target_link_directories( ll::colladadom INTERFACE ${Colladadom_LIBRARY_DIRS} )
+ target_link_libraries( ll::colladadom INTERFACE ${Colladadom_LIBRARIES} )
+ return ()
+endif ()
+
# ND, needs fixup in collada conan pkg
if( USE_CONAN )
target_include_directories( ll::colladadom SYSTEM INTERFACE
diff --git a/indra/cmake/LLWindow.cmake b/indra/cmake/LLWindow.cmake
index b36e970560..8cb383d718 100644
--- a/indra/cmake/LLWindow.cmake
+++ b/indra/cmake/LLWindow.cmake
@@ -7,6 +7,19 @@ include(Prebuilt)
include_guard()
add_library( ll::SDL INTERFACE IMPORTED )
+if (USESYSTEMLIBS)
+ include(FindPkgConfig)
+ pkg_check_modules(Sdl2 REQUIRED sdl2)
+ target_compile_definitions( ll::SDL INTERFACE LL_SDL=1)
+ target_include_directories(ll::SDL SYSTEM INTERFACE ${Sdl2_INCLUDE_DIRS})
+ target_link_directories(ll::SDL INTERFACE ${Sdl2_LIBRARY_DIRS})
+ if (LINUX OR CMAKE_SYSTEM_NAME MATCHES "FreeBSD")
+ list(APPEND Sdl2_LIBRARIES X11)
+ endif ()
+ target_link_libraries(ll::SDL INTERFACE ${Sdl2_LIBRARIES})
+ return ()
+endif ()
+
if (LINUX)
#Must come first as use_system_binary can exit this file early
diff --git a/indra/cmake/LibVLCPlugin.cmake b/indra/cmake/LibVLCPlugin.cmake
index 599ce02844..66dc13d126 100644
--- a/indra/cmake/LibVLCPlugin.cmake
+++ b/indra/cmake/LibVLCPlugin.cmake
@@ -5,9 +5,26 @@ include(Prebuilt)
include_guard()
add_library( ll::libvlc INTERFACE IMPORTED )
+if (USE_AUTOBUILD_3P OR USE_CONAN)
use_prebuilt_binary(vlc-bin)
set(LIBVLCPLUGIN ON CACHE BOOL
"LIBVLCPLUGIN support for the llplugin/llmedia test apps.")
+else ()
+ if (DARWIN)
+ target_include_directories( ll::libvlc SYSTEM INTERFACE /Applications/VLC.app/Contents/MacOS/include)
+ target_link_directories( ll::libvlc INTERFACE /Applications/VLC.app/Contents/MacOS/lib)
+ target_link_libraries( ll::libvlc INTERFACE vlc vlccore )
+ else ()
+ include(FindPkgConfig)
+ pkg_check_modules(Libvlc REQUIRED libvlc vlc-plugin)
+ target_include_directories( ll::libvlc SYSTEM INTERFACE ${Libvlc_INCLUDE_DIRS} )
+ target_link_directories( ll::libvlc INTERFACE ${Libvlc_LIBRARY_DIRS} )
+ target_link_libraries( ll::libvlc INTERFACE ${Libvlc_LIBRARIES} )
+ endif ()
+ set(LIBVLCPLUGIN ON CACHE BOOL
+ "LIBVLCPLUGIN support for the llplugin/llmedia test apps.")
+ return()
+endif ()
if (WINDOWS)
target_link_libraries( ll::libvlc INTERFACE
diff --git a/indra/cmake/LibraryInstall.cmake b/indra/cmake/LibraryInstall.cmake
new file mode 100644
index 0000000000..b94841897c
--- /dev/null
+++ b/indra/cmake/LibraryInstall.cmake
@@ -0,0 +1,13 @@
+list(REMOVE_ITEM ${PROJECT_NAME}_HEADER_FILES CMakeLists.txt)
+#install(FILES ${${PROJECT_NAME}_HEADER_FILES}
+# DESTINATION include/${PROJECT_NAME})
+if (BUILD_SHARED_LIBS)
+ if (EXISTS ${CMAKE_SYSROOT}/usr/lib/${ARCH}-linux-gnu)
+ set(_LIB lib/${ARCH}-linux-gnu)
+ elseif (EXISTS /lib64)
+ set(_LIB lib64)
+ else ()
+ set(_LIB lib)
+ endif ()
+ install(TARGETS ${PROJECT_NAME} DESTINATION ${_LIB})
+endif ()
diff --git a/indra/cmake/Linking.cmake b/indra/cmake/Linking.cmake
index 1ce21c11f9..65f333b30a 100644
--- a/indra/cmake/Linking.cmake
+++ b/indra/cmake/Linking.cmake
@@ -65,7 +65,7 @@ elseif (WINDOWS)
rpcrt4.lib
legacy_stdio_definitions
)
-else()
+elseif (DARWIN)
include(CMakeFindFrameworks)
find_library(COREFOUNDATION_LIBRARY CoreFoundation)
find_library(CARBON_LIBRARY Carbon)
diff --git a/indra/cmake/Meshoptimizer.cmake b/indra/cmake/Meshoptimizer.cmake
index fd144d2b97..70b3a2c088 100644
--- a/indra/cmake/Meshoptimizer.cmake
+++ b/indra/cmake/Meshoptimizer.cmake
@@ -6,6 +6,12 @@ include(Prebuilt)
include_guard()
add_library( ll::meshoptimizer INTERFACE IMPORTED )
+if (NOT (USE_AUTOBUILD_3P OR USE_CONAN))
+ target_include_directories( ll::meshoptimizer SYSTEM INTERFACE ${CMAKE_SYSROOT}/usr/local/include )
+ target_link_libraries( ll::meshoptimizer INTERFACE meshoptimizer)
+ return ()
+endif ()
+
use_system_binary(meshoptimizer)
use_prebuilt_binary(meshoptimizer)
diff --git a/indra/cmake/OPENAL.cmake b/indra/cmake/OPENAL.cmake
index 0b6a7c2853..cc7deac2d9 100644
--- a/indra/cmake/OPENAL.cmake
+++ b/indra/cmake/OPENAL.cmake
@@ -18,6 +18,17 @@ endif()
if (USE_OPENAL)
add_library( ll::openal INTERFACE IMPORTED )
+
+ if (NOT (USE_AUTOBUILD_3P OR USE_CONAN))
+ target_compile_definitions( ll::openal INTERFACE LL_OPENAL=1)
+ include(FindPkgConfig)
+ pkg_check_modules(Openal REQUIRED freealut)
+ target_include_directories(ll::openal SYSTEM INTERFACE ${Openal_INCLUDE_DIRS})
+ target_link_directories(ll::openal INTERFACE ${Openal_LIBRARY_DIRS})
+ target_link_libraries(ll::openal INTERFACE ${Openal_LIBRARIES})
+ return ()
+ endif ()
+
target_include_directories( ll::openal SYSTEM INTERFACE "${LIBS_PREBUILT_DIR}/include/AL")
target_compile_definitions( ll::openal INTERFACE LL_OPENAL=1)
use_prebuilt_binary(openal)
diff --git a/indra/cmake/OpenJPEG.cmake b/indra/cmake/OpenJPEG.cmake
index c4aab2e9e5..6fa4cad9c2 100644
--- a/indra/cmake/OpenJPEG.cmake
+++ b/indra/cmake/OpenJPEG.cmake
@@ -4,8 +4,17 @@ include(Prebuilt)
include_guard()
add_library( ll::openjpeg INTERFACE IMPORTED )
-use_system_binary(openjpeg)
-use_prebuilt_binary(openjpeg)
+#if (USESYSTEMLIBS)
+# include(FindPkgConfig)
+# pkg_check_modules(Openjpeg REQUIRED libopenjp2)
+# target_include_directories(ll::openjpeg SYSTEM INTERFACE ${Openjpeg_INCLUDE_DIRS})
+# target_link_directories(ll::openjpeg INTERFACE ${Openjpeg_LIBRARY_DIRS})
+# target_link_libraries(ll::openjpeg INTERFACE ${Openjpeg_LIBRARIES})
+# return ()
+#endif ()
+
+#use_system_binary(openjpeg)
+#use_prebuilt_binary(openjpeg)
target_link_libraries(ll::openjpeg INTERFACE openjp2 )
-target_include_directories( ll::openjpeg SYSTEM INTERFACE ${LIBS_PREBUILT_DIR}/include/openjpeg)
+target_include_directories( ll::openjpeg SYSTEM INTERFACE ${LIBS_PREBUILT_DIR}/include)
diff --git a/indra/cmake/OpenSSL.cmake b/indra/cmake/OpenSSL.cmake
index 3387c74f45..c9147f1d5e 100644
--- a/indra/cmake/OpenSSL.cmake
+++ b/indra/cmake/OpenSSL.cmake
@@ -4,8 +4,11 @@ include(Prebuilt)
include_guard()
add_library( ll::openssl INTERFACE IMPORTED )
+if (USE_AUTOBUILD_3P OR USE_CONAN)
use_system_binary(openssl)
use_prebuilt_binary(openssl)
+endif ()
+
if (WINDOWS)
target_link_libraries(ll::openssl INTERFACE libssl libcrypto)
elseif (LINUX)
@@ -13,5 +16,6 @@ elseif (LINUX)
else()
target_link_libraries(ll::openssl INTERFACE ssl crypto)
endif (WINDOWS)
+if (USE_AUTOBUILD_3P OR USE_CONAN)
target_include_directories( ll::openssl SYSTEM INTERFACE ${LIBS_PREBUILT_DIR}/include)
-
+endif ()
diff --git a/indra/cmake/Prebuilt.cmake b/indra/cmake/Prebuilt.cmake
index 634cc15c21..b0acae279b 100644
--- a/indra/cmake/Prebuilt.cmake
+++ b/indra/cmake/Prebuilt.cmake
@@ -67,6 +67,22 @@ macro ( use_system_binary package )
endif()
endforeach()
return()
+ elseif( NOT USE_AUTOBUILD_3P )
+ include(FindPkgConfig)
+ pkg_check_modules(${package} ${package})
+ if( ${package}_FOUND )
+ target_link_directories( ll::${package} INTERFACE ${${package}_LIBRARY_DIRS} )
+ else()
+ pkg_check_modules(${package} lib${package})
+ if( ${package}_FOUND )
+ target_link_directories( ll::${package} INTERFACE ${${package}_LIBRARY_DIRS} )
+ else()
+ find_package( ${package} REQUIRED )
+ endif()
+ endif()
+ target_include_directories( ll::${package} SYSTEM INTERFACE ${${package}_INCLUDE_DIRS} )
+ target_link_libraries( ll::${package} INTERFACE ${${package}_LIBRARIES} )
+ return()
endif()
endmacro()
diff --git a/indra/cmake/TinyGLTF.cmake b/indra/cmake/TinyGLTF.cmake
index bb731637a0..58ba5620bf 100644
--- a/indra/cmake/TinyGLTF.cmake
+++ b/indra/cmake/TinyGLTF.cmake
@@ -1,7 +1,11 @@
# -*- cmake -*-
include(Prebuilt)
+if (NOT USESYSTEMLIBS)
+
use_prebuilt_binary(tinygltf)
set(TINYGLTF_INCLUDE_DIR ${LIBS_PREBUILT_DIR}/include/tinygltf)
+endif (NOT USESYSTEMLIBS)
+
diff --git a/indra/cmake/UI.cmake b/indra/cmake/UI.cmake
index 8b70192efc..03bdf4e434 100644
--- a/indra/cmake/UI.cmake
+++ b/indra/cmake/UI.cmake
@@ -4,12 +4,19 @@ include(FreeType)
add_library( ll::uilibraries INTERFACE IMPORTED )
-if (LINUX)
+if (LINUX OR CMAKE_SYSTEM_NAME MATCHES "FreeBSD")
target_compile_definitions(ll::uilibraries INTERFACE LL_GTK=1 LL_X11=1 )
if( USE_CONAN )
target_link_libraries( ll::uilibraries INTERFACE CONAN_PKG::gtk )
return()
+ elseif( NOT USE_AUTOBUILD_3P )
+ include(FindPkgConfig)
+ pkg_check_modules(Gtk2 REQUIRED gtk+-2.0)
+ target_include_directories( ll::uilibraries SYSTEM INTERFACE ${Gtk2_INCLUDE_DIRS} )
+ target_link_directories( ll::uilibraries INTERFACE ${Gtk2_LIBRARY_DIRS} )
+ target_link_libraries( ll::uilibraries INTERFACE ${Gtk2_LIBRARIES} )
+ return()
endif()
use_prebuilt_binary(gtk-atk-pango-glib)
@@ -30,7 +37,7 @@ if (LINUX)
Xinerama
ll::freetype
)
-endif (LINUX)
+endif (LINUX OR CMAKE_SYSTEM_NAME MATCHES "FreeBSD")
if( WINDOWS )
target_link_libraries( ll::uilibraries INTERFACE
opengl32
@@ -48,7 +55,9 @@ if( WINDOWS )
)
endif()
+if (USE_AUTOBUILD_3P OR USE_CONAN)
target_include_directories( ll::uilibraries SYSTEM INTERFACE
${LIBS_PREBUILT_DIR}/include
)
+endif ()
diff --git a/indra/cmake/UnixInstall.cmake b/indra/cmake/UnixInstall.cmake
index 139be0a008..a748237c5b 100644
--- a/indra/cmake/UnixInstall.cmake
+++ b/indra/cmake/UnixInstall.cmake
@@ -6,14 +6,16 @@ set(INSTALL OFF CACHE BOOL
"Generate install target.")
if (INSTALL)
- set(INSTALL_PREFIX /usr CACHE PATH
+ set(INSTALL_PREFIX ${CMAKE_INSTALL_PREFIX} CACHE PATH
"Top-level installation directory.")
- if (EXISTS /lib64)
+ if (EXISTS ${CMAKE_SYSROOT}/usr/lib/${ARCH}-linux-gnu)
+ set(_LIB lib/${ARCH}-linux-gnu)
+ elseif (EXISTS /lib64)
set(_LIB lib64)
- else (EXISTS /lib64)
+ else ()
set(_LIB lib)
- endif (EXISTS /lib64)
+ endif ()
set(INSTALL_LIBRARY_DIR ${INSTALL_PREFIX}/${_LIB} CACHE PATH
"Installation directory for read-only shared files.")
@@ -21,11 +23,15 @@ if (INSTALL)
set(INSTALL_SHARE_DIR ${INSTALL_PREFIX}/share CACHE PATH
"Installation directory for read-only shared files.")
- set(APP_BINARY_DIR ${INSTALL_LIBRARY_DIR}/secondlife-${viewer_VERSION}
+ set(APP_BINARY_DIR ${INSTALL_PREFIX}/bin
CACHE PATH
"Installation directory for binaries.")
- set(APP_SHARE_DIR ${INSTALL_SHARE_DIR}/secondlife-${viewer_VERSION}
+ set(APP_SHARE_DIR ${INSTALL_SHARE_DIR}/${VIEWER_BINARY_NAME}
CACHE PATH
"Installation directory for read-only data files.")
+
+ set(APP_LIBEXEC_DIR ${INSTALL_PREFIX}/libexec/${VIEWER_BINARY_NAME}
+ CACHE PATH
+ "Installation directory for non-manual executables.")
endif (INSTALL)
diff --git a/indra/cmake/ViewerMiscLibs.cmake b/indra/cmake/ViewerMiscLibs.cmake
index cae68fbc11..04a4c72d5f 100644
--- a/indra/cmake/ViewerMiscLibs.cmake
+++ b/indra/cmake/ViewerMiscLibs.cmake
@@ -1,6 +1,11 @@
# -*- cmake -*-
include(Prebuilt)
+if (NOT (USE_AUTOBUILD_3P OR USE_CONAN))
+ add_library( ll::fontconfig INTERFACE IMPORTED )
+ use_system_binary(fontconfig)
+endif ()
+
if (LINUX)
#use_prebuilt_binary(libuuid)
add_library( ll::fontconfig INTERFACE IMPORTED )
diff --git a/indra/cmake/VulkanGltf.cmake b/indra/cmake/VulkanGltf.cmake
index 94541d5307..d7083a33c9 100644
--- a/indra/cmake/VulkanGltf.cmake
+++ b/indra/cmake/VulkanGltf.cmake
@@ -1,5 +1,7 @@
# -*- cmake -*-
include(Prebuilt)
+if (NOT USESYSTEMLIBS)
use_prebuilt_binary(vulkan_gltf)
+endif ()
diff --git a/indra/cmake/XmlRpcEpi.cmake b/indra/cmake/XmlRpcEpi.cmake
index 6409f9d6e2..994df3d128 100644
--- a/indra/cmake/XmlRpcEpi.cmake
+++ b/indra/cmake/XmlRpcEpi.cmake
@@ -4,8 +4,20 @@ include(Prebuilt)
include_guard()
add_library( ll::xmlrpc-epi INTERFACE IMPORTED )
+if (USE_AUTOBUILD_3P OR USE_CONAN)
use_system_binary( xmlrpc-epi )
use_prebuilt_binary(xmlrpc-epi)
+endif ()
+
target_link_libraries(ll::xmlrpc-epi INTERFACE xmlrpc-epi )
+
+if (USE_AUTOBUILD_3P OR USE_CONAN)
target_include_directories( ll::xmlrpc-epi SYSTEM INTERFACE ${LIBS_PREBUILT_DIR}/include)
+elseif (LINUX)
+ target_include_directories( ll::xmlrpc-epi SYSTEM INTERFACE
+ ${CMAKE_SYSROOT}/usr/include/xmlrpc-epi)
+elseif (DARWIN)
+ target_include_directories( ll::xmlrpc-epi SYSTEM INTERFACE /usr/local/include)
+ target_link_directories( ll::xmlrpc-epi INTERFACE /usr/local/lib)
+endif ()
diff --git a/indra/cmake/ZLIBNG.cmake b/indra/cmake/ZLIBNG.cmake
index 5d99cd9709..60164116dd 100644
--- a/indra/cmake/ZLIBNG.cmake
+++ b/indra/cmake/ZLIBNG.cmake
@@ -8,6 +8,12 @@ add_library( ll::zlib-ng INTERFACE IMPORTED )
if(USE_CONAN )
target_link_libraries( ll::zlib-ng INTERFACE CONAN_PKG::zlib )
return()
+elseif(NOT USE_AUTOBUILD_3P)
+ pkg_check_modules(Zlib REQUIRED zlib)
+ target_include_directories( ll::zlib-ng SYSTEM INTERFACE ${Zlib_INCLUDE_DIRS})
+ target_link_directories( ll::zlib-ng INTERFACE ${Zlib_LIBRARY_DIRS} )
+ target_link_libraries( ll::zlib-ng INTERFACE ${Zlib_LIBRARIES})
+ return()
endif()
use_prebuilt_binary(zlib-ng)
diff --git a/indra/cmake/xxHash.cmake b/indra/cmake/xxHash.cmake
index a7c1cba62c..2dcab005ba 100644
--- a/indra/cmake/xxHash.cmake
+++ b/indra/cmake/xxHash.cmake
@@ -5,4 +5,11 @@ endif (XXHASH_CMAKE_INCLUDED)
set (XXHASH_CMAKE_INCLUDED TRUE)
include(Prebuilt)
+
+if (NOT (USE_AUTOBUILD_3P OR USE_CONAN))
+ include(FindPkgConfig)
+ pkg_check_modules(Xxhash REQUIRED libxxhash)
+ return ()
+endif ()
+
use_prebuilt_binary(xxhash)