summaryrefslogtreecommitdiff
path: root/indra/cmake
diff options
context:
space:
mode:
Diffstat (limited to 'indra/cmake')
-rw-r--r--indra/cmake/APR.cmake17
-rw-r--r--indra/cmake/Boost.cmake52
-rw-r--r--indra/cmake/CMakeLists.txt1
-rw-r--r--indra/cmake/CURL.cmake2
-rw-r--r--indra/cmake/GLEXT.cmake4
-rw-r--r--indra/cmake/GLM.cmake2
-rw-r--r--indra/cmake/LLPrimitive.cmake35
-rw-r--r--indra/cmake/LLWindow.cmake2
-rw-r--r--indra/cmake/Meshoptimizer.cmake6
-rw-r--r--indra/cmake/OpenSSL.cmake2
-rw-r--r--indra/cmake/WebRTC.cmake14
11 files changed, 77 insertions, 60 deletions
diff --git a/indra/cmake/APR.cmake b/indra/cmake/APR.cmake
index cf31027c9a..58a00c74da 100644
--- a/indra/cmake/APR.cmake
+++ b/indra/cmake/APR.cmake
@@ -5,11 +5,18 @@ include_guard()
add_library( ll::apr INTERFACE IMPORTED )
-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})
+if (WINDOWS)
+ target_include_directories(ll::apr SYSTEM INTERFACE ${prefix_result}/../include)
+ target_link_directories(ll::apr INTERFACE ${prefix_result})
+ target_link_libraries(ll::apr INTERFACE libapr-1 libaprutil-1)
+else ()
+ 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})
+endif ()
+
return ()
use_system_binary( apr apr-util )
diff --git a/indra/cmake/Boost.cmake b/indra/cmake/Boost.cmake
index ba2eaccf63..2c4ec193e7 100644
--- a/indra/cmake/Boost.cmake
+++ b/indra/cmake/Boost.cmake
@@ -4,38 +4,40 @@ include(Prebuilt)
include_guard()
add_library( ll::boost INTERFACE IMPORTED )
-
-if (DARWIN)
- set(sfx -mt)
- target_include_directories( ll::boost SYSTEM INTERFACE /opt/local/libexec/boost/1.87/include)
- target_link_directories( ll::boost INTERFACE /opt/local/libexec/boost/1.87/lib)
-elseif (WINDOWS)
- set(sfx -mt)
- target_include_directories( ll::boost SYSTEM INTERFACE /opt/local/x86_64-w64-mingw32/include)
- target_link_directories( ll::boost INTERFACE /opt/local/x86_64-w64-mingw32/lib)
-else ()
- find_package( Boost REQUIRED )
-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}
- boost_url${sfx}
- )
-target_compile_definitions( ll::boost INTERFACE BOOST_BIND_GLOBAL_PLACEHOLDERS )
-return()
-
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()
+if (WINDOWS)
use_prebuilt_binary(boost)
+ target_include_directories( ll::boost SYSTEM INTERFACE ${LIBS_PREBUILT_DIR}/include)
+else ()
+ if (DARWIN)
+ target_include_directories( ll::boost SYSTEM INTERFACE /opt/local/libexec/boost/1.87/include)
+ target_link_directories( ll::boost INTERFACE /opt/local/libexec/boost/1.87/lib)
+ set(sfx -mt)
+ elseif (WINDOWS)
+ target_include_directories( ll::boost SYSTEM INTERFACE ${prefix_result}/../include)
+ target_link_directories( ll::boost INTERFACE ${prefix_result})
+ set(sfx -vc143-mt-x64-1_88)
+ else ()
+ find_package( Boost REQUIRED )
+ 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}
+ boost_url${sfx}
+ )
+ target_compile_definitions( ll::boost INTERFACE BOOST_BIND_GLOBAL_PLACEHOLDERS )
+ return()
+endif ()
# As of sometime between Boost 1.67 and 1.72, Boost libraries are suffixed
# with the address size.
diff --git a/indra/cmake/CMakeLists.txt b/indra/cmake/CMakeLists.txt
index 746d242560..5525ac9f24 100644
--- a/indra/cmake/CMakeLists.txt
+++ b/indra/cmake/CMakeLists.txt
@@ -24,6 +24,7 @@ set(cmake_SOURCE_FILES
FindAutobuild.cmake
FMODSTUDIO.cmake
FreeType.cmake
+ GLEXT.cmake
GLH.cmake
GLM.cmake
Havok.cmake
diff --git a/indra/cmake/CURL.cmake b/indra/cmake/CURL.cmake
index b301819536..06d5927174 100644
--- a/indra/cmake/CURL.cmake
+++ b/indra/cmake/CURL.cmake
@@ -6,7 +6,7 @@ include_guard()
add_library( ll::libcurl INTERFACE IMPORTED )
#use_system_binary(libcurl)
-if (LINUX AND CMAKE_SYSTEM_PROCESSOR MATCHES x86_64 OR DARWIN)
+if (LINUX AND CMAKE_SYSTEM_PROCESSOR MATCHES x86_64 OR DARWIN OR WINDOWS)
use_prebuilt_binary(curl)
if (DARWIN)
execute_process(
diff --git a/indra/cmake/GLEXT.cmake b/indra/cmake/GLEXT.cmake
index a780966f0c..f45b27e7b8 100644
--- a/indra/cmake/GLEXT.cmake
+++ b/indra/cmake/GLEXT.cmake
@@ -3,7 +3,9 @@ include(Prebuilt)
include(GLH)
add_library( ll::glext INTERFACE IMPORTED )
-use_system_binary(glext)
+#use_system_binary(glext)
+if (WINDOWS)
use_prebuilt_binary(glext)
+endif ()
diff --git a/indra/cmake/GLM.cmake b/indra/cmake/GLM.cmake
index fcf5e77cae..db6acc065e 100644
--- a/indra/cmake/GLM.cmake
+++ b/indra/cmake/GLM.cmake
@@ -6,6 +6,6 @@ add_library( ll::glm INTERFACE IMPORTED )
#use_system_binary( glm )
if (${LINUX_DISTRO} MATCHES debian OR (${LINUX_DISTRO} MATCHES ubuntu) OR (${LINUX_DISTRO} MATCHES opensuse-tumbleweed))
use_prebuilt_binary(glm)
-else ()
+elseif (NOT WINDOWS)
find_package( glm REQUIRED )
endif ()
diff --git a/indra/cmake/LLPrimitive.cmake b/indra/cmake/LLPrimitive.cmake
index 21952713ca..3429a744f5 100644
--- a/indra/cmake/LLPrimitive.cmake
+++ b/indra/cmake/LLPrimitive.cmake
@@ -18,19 +18,11 @@ if( USE_CONAN )
"${CONAN_INCLUDE_DIRS_COLLADADOM}/collada-dom/1.4/" )
endif()
-if( WINDOWS )
- include(FindPkgConfig)
- pkg_check_modules(Colladadom REQUIRED collada-dom-141)
- target_compile_definitions( ll::colladadom INTERFACE COLLADA_DOM_SUPPORT141 )
- target_include_directories( ll::colladadom SYSTEM INTERFACE ${Colladadom_INCLUDE_DIRS} )
- target_link_directories( ll::colladadom INTERFACE ${Colladadom_LIBRARY_DIRS} )
- target_link_libraries( ll::colladadom INTERFACE ${Colladadom_LIBRARIES} )
- return()
-elseif( LINUX OR CMAKE_SYSTEM_NAME MATCHES FreeBSD )
+if( LINUX OR CMAKE_SYSTEM_NAME MATCHES FreeBSD )
# Build of the collada-dom for Linux and FreeBSD is done in
# indra/llprimitive/CMakeLists.txt
return()
-else()
+elseif ( NOT WINDOWS )
include(FindPkgConfig)
pkg_check_modules(Minizip REQUIRED minizip)
pkg_check_modules(Libxml2 REQUIRED libxml-2.0)
@@ -47,15 +39,24 @@ else()
INPUT ${CMAKE_BINARY_DIR}/3p-colladadom-2.3-r8.tar.gz
DESTINATION ${CMAKE_BINARY_DIR}
)
- execute_process(
- COMMAND sed -i "" -e "s/SHARED/STATIC/g" CMakeLists.txt
- WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/3p-colladadom-2.3-r8/src/1.4
- )
+ if ( WINDOWS )
+ execute_process(
+ COMMAND sed -i "s/SHARED/STATIC/g" CMakeLists.txt
+ WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/3p-colladadom-2.3-r8/src/1.4
+ )
+ set(BOOST_LIBRARY_SUFFIX -vc143-mt-x64-1_88)
+ else ()
+ execute_process(
+ COMMAND sed -i "" -e "s/SHARED/STATIC/g" CMakeLists.txt
+ WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/3p-colladadom-2.3-r8/src/1.4
+ )
+ endif ()
if( DARWIN )
set(BOOST_CFLAGS -I${Libxml2_LIBRARY_DIRS}exec/boost/1.87/include)
set(BOOST_LIBS -L${Minizip_LIBRARY_DIRS}exec/boost/1.87/lib)
set(BOOST_LIBRARY_SUFFIX -mt)
endif()
+ file(MAKE_DIRECTORY ${LIBS_PREBUILT_DIR}/include/collada/1.4)
try_compile(COLLADADOM_RESULT
PROJECT colladadom
SOURCE_DIR ${CMAKE_BINARY_DIR}/3p-colladadom-2.3-r8
@@ -92,10 +93,12 @@ else()
endif()
endif()
-if( FALSE )
-use_system_binary( colladadom )
+#use_system_binary( colladadom )
+if (WINDOWS)
use_prebuilt_binary(colladadom)
+endif ()
+if( FALSE )
use_prebuilt_binary(minizip-ng) # needed for colladadom
use_prebuilt_binary(libxml2)
diff --git a/indra/cmake/LLWindow.cmake b/indra/cmake/LLWindow.cmake
index 34df3ad33b..007b8dfba6 100644
--- a/indra/cmake/LLWindow.cmake
+++ b/indra/cmake/LLWindow.cmake
@@ -1,7 +1,7 @@
# -*- cmake -*-
include(Variables)
-include(GLH)
+include(GLEXT)
include(Prebuilt)
include_guard()
diff --git a/indra/cmake/Meshoptimizer.cmake b/indra/cmake/Meshoptimizer.cmake
index 4b428e4b83..5058614580 100644
--- a/indra/cmake/Meshoptimizer.cmake
+++ b/indra/cmake/Meshoptimizer.cmake
@@ -7,8 +7,10 @@ include_guard()
add_library( ll::meshoptimizer INTERFACE IMPORTED )
#use_system_binary(meshoptimizer)
-if (${LINUX_DISTRO} MATCHES debian OR (${LINUX_DISTRO} MATCHES ubuntu) OR CMAKE_SYSTEM_NAME MATCHES FreeBSD)
- find_package(meshoptimizer)
+if (${LINUX_DISTRO} MATCHES debian OR (${LINUX_DISTRO} MATCHES ubuntu) OR CMAKE_SYSTEM_NAME MATCHES FreeBSD OR WINDOWS)
+ if (NOT WINDOWS)
+ find_package(meshoptimizer)
+ endif ()
target_link_libraries( ll::meshoptimizer INTERFACE meshoptimizer)
return ()
elseif (LINUX AND CMAKE_SYSTEM_PROCESSOR MATCHES x86_64 AND NOT (${LINUX_DISTRO} MATCHES gentoo))
diff --git a/indra/cmake/OpenSSL.cmake b/indra/cmake/OpenSSL.cmake
index 7cb59b04c3..ef90068993 100644
--- a/indra/cmake/OpenSSL.cmake
+++ b/indra/cmake/OpenSSL.cmake
@@ -6,7 +6,7 @@ include_guard()
add_library( ll::openssl INTERFACE IMPORTED )
#use_system_binary(openssl)
-if (LINUX AND CMAKE_SYSTEM_PROCESSOR MATCHES x86_64 OR DARWIN)
+if (LINUX AND CMAKE_SYSTEM_PROCESSOR MATCHES x86_64 OR DARWIN OR WINDOWS)
use_prebuilt_binary(openssl)
if (DARWIN)
execute_process(
diff --git a/indra/cmake/WebRTC.cmake b/indra/cmake/WebRTC.cmake
index 19457924d8..454ed8c0a1 100644
--- a/indra/cmake/WebRTC.cmake
+++ b/indra/cmake/WebRTC.cmake
@@ -6,9 +6,9 @@ include_guard()
add_library( ll::webrtc INTERFACE IMPORTED )
target_include_directories( ll::webrtc SYSTEM INTERFACE "${LIBS_PREBUILT_DIR}/include/webrtc" "${LIBS_PREBUILT_DIR}/include/webrtc/third_party/abseil-cpp")
-if (${LINUX_DISTRO} MATCHES debian OR CMAKE_OSX_ARCHITECTURES MATCHES x86_64)
+if (${LINUX_DISTRO} MATCHES debian OR CMAKE_OSX_ARCHITECTURES MATCHES x86_64 OR WINDOWS)
use_prebuilt_binary(webrtc)
-elseif (NOT (WINDOWS OR CMAKE_SYSTEM_NAME MATCHES FreeBSD))
+elseif (NOT CMAKE_SYSTEM_NAME MATCHES FreeBSD)
target_compile_definitions(ll::webrtc INTERFACE CM_WEBRTC=1)
if (${PREBUILD_TRACKING_DIR}/sentinel_installed IS_NEWER_THAN ${PREBUILD_TRACKING_DIR}/webrtc_installed OR NOT ${webrtc_installed} EQUAL 0)
if (DARWIN)
@@ -17,14 +17,14 @@ elseif (NOT (WINDOWS OR CMAKE_SYSTEM_NAME MATCHES FreeBSD))
set(WEBRTC_PLATFORM linux-arm64)
else ()
set(WEBRTC_PLATFORM linux-x64)
- endif (DARWIN)
+ endif ()
if (NOT EXISTS ${CMAKE_BINARY_DIR}/libwebrtc-${WEBRTC_PLATFORM}.tar.xz)
file(DOWNLOAD
https://github.com/crow-misia/libwebrtc-bin/releases/download/114.5735.6.1/libwebrtc-${WEBRTC_PLATFORM}.tar.xz
${CMAKE_BINARY_DIR}/libwebrtc-${WEBRTC_PLATFORM}.tar.xz
SHOW_PROGRESS
)
- endif (NOT EXISTS ${CMAKE_BINARY_DIR}/libwebrtc-${WEBRTC_PLATFORM}.tar.xz)
+ endif ()
file(ARCHIVE_EXTRACT
INPUT ${CMAKE_BINARY_DIR}/libwebrtc-${WEBRTC_PLATFORM}.tar.xz
DESTINATION ${LIBS_PREBUILT_DIR}
@@ -74,10 +74,10 @@ elseif (NOT (WINDOWS OR CMAKE_SYSTEM_NAME MATCHES FreeBSD))
${ARCH_PREBUILT_DIRS_RELEASE}/WebRTC.framework
)
file(REMOVE_RECURSE ${LIBS_PREBUILT_DIR}/Frameworks)
- endif (CMAKE_OSX_ARCHITECTURES MATCHES arm64)
+ endif ()
file(WRITE ${PREBUILD_TRACKING_DIR}/webrtc_installed "0")
- endif (${PREBUILD_TRACKING_DIR}/sentinel_installed IS_NEWER_THAN ${PREBUILD_TRACKING_DIR}/webrtc_installed OR NOT ${webrtc_installed} EQUAL 0)
-endif (${LINUX_DISTRO} MATCHES debian OR CMAKE_OSX_ARCHITECTURES MATCHES x86_64)
+ endif ()
+endif ()
if (WINDOWS)
target_link_libraries( ll::webrtc INTERFACE webrtc.lib )