From f5ab6e11f13699c03a696611f67f8384434130a1 Mon Sep 17 00:00:00 2001 From: Erik Kundiman Date: Tue, 13 May 2025 10:22:54 +0800 Subject: Not rely on (LL_)USESYSTEMLIBS macro & CMake setting but the fact that we keep on using as many system libraries as we can (and only resort to other sources in certain cases), hasn't changed, of course. Also stop having to set USE_AUTOBUILD_3P to OFF. Lines are reindented, and when a system library can be found for a dependency, then that should be the way. If later we find out that using some other way is better, than stick to that. So, one option at a time, whichever is best for the situation. GLEXT hasn't been used, and in order to be not having to hack its .cmake file, we bypass it and refer to GLH (which is still used) right away in LLWindow. CMake commands that need to be bypassed, if it's a one-liner then it's just commented out, but if it's multiple lines, then scope them with if (FALSE) to minimise difference. --- indra/cmake/APR.cmake | 14 ++-- indra/cmake/Audio.cmake | 14 ++-- indra/cmake/Boost.cmake | 49 ++++++------- indra/cmake/CMakeLists.txt | 1 - indra/cmake/CURL.cmake | 10 ++- indra/cmake/FMODSTUDIO.cmake | 8 +-- indra/cmake/FreeType.cmake | 15 ++-- indra/cmake/GLEXT.cmake | 7 +- indra/cmake/GLH.cmake | 4 +- indra/cmake/GLM.cmake | 11 ++- indra/cmake/LLPrimitive.cmake | 144 +++++++++++++++++++-------------------- indra/cmake/LLWindow.cmake | 4 +- indra/cmake/LibVLCPlugin.cmake | 77 +++++++++------------ indra/cmake/Meshoptimizer.cmake | 17 ++--- indra/cmake/NDOF.cmake | 7 +- indra/cmake/OPENAL.cmake | 16 ++--- indra/cmake/OpenJPEG.cmake | 8 +-- indra/cmake/OpenSSL.cmake | 16 ++--- indra/cmake/Prebuilt.cmake | 85 ++++++++++++----------- indra/cmake/UI.cmake | 5 +- indra/cmake/ViewerMiscLibs.cmake | 10 +-- indra/cmake/VulkanGltf.cmake | 2 - indra/cmake/ZLIBNG.cmake | 12 ++-- indra/cmake/xxHash.cmake | 8 +-- 24 files changed, 248 insertions(+), 296 deletions(-) (limited to 'indra/cmake') diff --git a/indra/cmake/APR.cmake b/indra/cmake/APR.cmake index 78c536e9d4..cf31027c9a 100644 --- a/indra/cmake/APR.cmake +++ b/indra/cmake/APR.cmake @@ -5,14 +5,12 @@ include_guard() add_library( ll::apr INTERFACE IMPORTED ) -if (USESYSTEMLIBS) - 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 () +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 () use_system_binary( apr apr-util ) use_prebuilt_binary(apr_suite) diff --git a/indra/cmake/Audio.cmake b/indra/cmake/Audio.cmake index 514d283e76..c569fba4e8 100644 --- a/indra/cmake/Audio.cmake +++ b/indra/cmake/Audio.cmake @@ -5,14 +5,12 @@ include(Prebuilt) include_guard() add_library( ll::vorbis INTERFACE IMPORTED ) -if (USESYSTEMLIBS) - 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 () +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 () use_system_binary(vorbis) use_prebuilt_binary(ogg_vorbis) diff --git a/indra/cmake/Boost.cmake b/indra/cmake/Boost.cmake index c9688d0fe0..ba2eaccf63 100644 --- a/indra/cmake/Boost.cmake +++ b/indra/cmake/Boost.cmake @@ -4,34 +4,35 @@ 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() -elseif( NOT USE_AUTOBUILD_3P ) - if (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) - elseif (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) - else (WINDOWS) - find_package( Boost REQUIRED ) - endif (WINDOWS) - 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() use_prebuilt_binary(boost) diff --git a/indra/cmake/CMakeLists.txt b/indra/cmake/CMakeLists.txt index 5525ac9f24..746d242560 100644 --- a/indra/cmake/CMakeLists.txt +++ b/indra/cmake/CMakeLists.txt @@ -24,7 +24,6 @@ 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 9e9bbce47b..5868d41849 100644 --- a/indra/cmake/CURL.cmake +++ b/indra/cmake/CURL.cmake @@ -5,10 +5,8 @@ include(Linking) include_guard() add_library( ll::libcurl INTERFACE IMPORTED ) -if (NOT USESYSTEMLIBS) -use_system_binary(libcurl) -endif (NOT USESYSTEMLIBS) -if (LINUX AND CMAKE_SYSTEM_PROCESSOR MATCHES x86_64 OR DARWIN OR NOT USESYSTEMLIBS) +#use_system_binary(libcurl) +if (LINUX AND CMAKE_SYSTEM_PROCESSOR MATCHES x86_64 OR DARWIN) use_prebuilt_binary(curl) if (DARWIN) execute_process( @@ -86,8 +84,8 @@ elseif (${PREBUILD_TRACKING_DIR}/sentinel_installed IS_NEWER_THAN ${PREBUILD_TRA ${ARCH_PREBUILT_DIRS}/libssl.a ) file(WRITE ${PREBUILD_TRACKING_DIR}/curl_installed "${curl_installed}") -endif (LINUX AND CMAKE_SYSTEM_PROCESSOR MATCHES x86_64 OR DARWIN OR NOT USESYSTEMLIBS) -if (WINDOWS AND NOT USESYSTEMLIBS) +endif () +if (WINDOWS) target_link_libraries(ll::libcurl INTERFACE ${ARCH_PREBUILT_DIRS_RELEASE}/libcurl.lib ll::openssl diff --git a/indra/cmake/FMODSTUDIO.cmake b/indra/cmake/FMODSTUDIO.cmake index 35ce932c1a..4ed9f94caf 100644 --- a/indra/cmake/FMODSTUDIO.cmake +++ b/indra/cmake/FMODSTUDIO.cmake @@ -30,7 +30,7 @@ if (USE_FMODSTUDIO) # Note: if you're not using INSTALL_PROPRIETARY, the package URL should be local (file:/// URL) # as accessing the private LL location will fail if you don't have the credential include(Prebuilt) - if (USESYSTEMLIBS AND (${PREBUILD_TRACKING_DIR}/sentinel_installed IS_NEWER_THAN ${PREBUILD_TRACKING_DIR}/fmodstudio_installed OR NOT ${fmodstudio_installed} EQUAL 0)) + if (${PREBUILD_TRACKING_DIR}/sentinel_installed IS_NEWER_THAN ${PREBUILD_TRACKING_DIR}/fmodstudio_installed OR NOT ${fmodstudio_installed} EQUAL 0) file(MAKE_DIRECTORY ${ARCH_PREBUILT_DIRS_RELEASE}) if (DARWIN) execute_process( @@ -100,9 +100,9 @@ if (USE_FMODSTUDIO) endif (CMAKE_SYSTEM_PROCESSOR MATCHES aarch64) file(WRITE ${PREBUILD_TRACKING_DIR}/fmodstudio_installed "0") endif (DARWIN) - else (USESYSTEMLIBS AND (${PREBUILD_TRACKING_DIR}/sentinel_installed IS_NEWER_THAN ${PREBUILD_TRACKING_DIR}/fmodstudio_installed OR NOT ${fmodstudio_installed} EQUAL 0)) - use_prebuilt_binary(fmodstudio) - endif (USESYSTEMLIBS AND (${PREBUILD_TRACKING_DIR}/sentinel_installed IS_NEWER_THAN ${PREBUILD_TRACKING_DIR}/fmodstudio_installed OR NOT ${fmodstudio_installed} EQUAL 0)) + endif () + + #use_prebuilt_binary(fmodstudio) if (WINDOWS) target_link_libraries( ll::fmodstudio INTERFACE fmod_vc) elseif (DARWIN) diff --git a/indra/cmake/FreeType.cmake b/indra/cmake/FreeType.cmake index 7683fe364a..d5c7891032 100644 --- a/indra/cmake/FreeType.cmake +++ b/indra/cmake/FreeType.cmake @@ -5,14 +5,13 @@ include(Linking) include_guard() add_library( ll::freetype INTERFACE IMPORTED ) -if (USESYSTEMLIBS) - 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 (USESYSTEMLIBS) +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 () + 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 ea349237d3..a780966f0c 100644 --- a/indra/cmake/GLEXT.cmake +++ b/indra/cmake/GLEXT.cmake @@ -3,10 +3,7 @@ include(Prebuilt) include(GLH) add_library( ll::glext INTERFACE IMPORTED ) - -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 648a08454b..ac86f385c6 100644 --- a/indra/cmake/GLH.cmake +++ b/indra/cmake/GLH.cmake @@ -4,7 +4,5 @@ include(Prebuilt) add_library( ll::glh_linear INTERFACE IMPORTED ) target_include_directories( ll::glh_linear SYSTEM INTERFACE ${LIBS_PREBUILT_DIR}/include) -if (NOT USESYSTEMLIBS) -use_system_binary( glh_linear ) -endif (NOT USESYSTEMLIBS) +#use_system_binary( glh_linear ) use_prebuilt_binary(glh_linear) diff --git a/indra/cmake/GLM.cmake b/indra/cmake/GLM.cmake index d411c049ec..fcf5e77cae 100644 --- a/indra/cmake/GLM.cmake +++ b/indra/cmake/GLM.cmake @@ -3,12 +3,9 @@ include(Prebuilt) add_library( ll::glm INTERFACE IMPORTED ) -if (NOT USESYSTEMLIBS) -use_system_binary( glm ) -elseif (NOT (${LINUX_DISTRO} MATCHES debian OR (${LINUX_DISTRO} MATCHES ubuntu) OR (${LINUX_DISTRO} MATCHES opensuse-tumbleweed))) - find_package( glm REQUIRED ) -endif (NOT USESYSTEMLIBS) - -if (${LINUX_DISTRO} MATCHES debian OR (${LINUX_DISTRO} MATCHES ubuntu) OR (${LINUX_DISTRO} MATCHES opensuse-tumbleweed) OR NOT USESYSTEMLIBS) +#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 () + find_package( glm REQUIRED ) endif () diff --git a/indra/cmake/LLPrimitive.cmake b/indra/cmake/LLPrimitive.cmake index 335c2a9258..21952713ca 100644 --- a/indra/cmake/LLPrimitive.cmake +++ b/indra/cmake/LLPrimitive.cmake @@ -18,81 +18,81 @@ if( USE_CONAN ) "${CONAN_INCLUDE_DIRS_COLLADADOM}/collada-dom/1.4/" ) endif() -if( USESYSTEMLIBS ) - 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 ) - # Build of the collada-dom for Linux and FreeBSD is done in - # indra/llprimitive/CMakeLists.txt - return () - else( WINDOWS ) - include(FindPkgConfig) - pkg_check_modules(Minizip REQUIRED minizip) - pkg_check_modules(Libxml2 REQUIRED libxml-2.0) - target_link_libraries( ll::minizip-ng INTERFACE ${Minizip_LIBRARIES} ) - target_link_libraries( ll::libxml INTERFACE ${Libxml2_LIBRARIES} ) - if( ${PREBUILD_TRACKING_DIR}/sentinel_installed IS_NEWER_THAN ${PREBUILD_TRACKING_DIR}/colladadom_installed OR NOT ${colladadom_installed} EQUAL 0 ) - if( NOT EXISTS ${CMAKE_BINARY_DIR}/3p-colladadom-2.3-r8.tar.gz ) - file(DOWNLOAD - https://github.com/secondlife/3p-colladadom/archive/refs/tags/v2.3-r8.tar.gz - ${CMAKE_BINARY_DIR}/3p-colladadom-2.3-r8.tar.gz - ) - endif( NOT EXISTS ${CMAKE_BINARY_DIR}/3p-colladadom-2.3-r8.tar.gz ) - file(ARCHIVE_EXTRACT - INPUT ${CMAKE_BINARY_DIR}/3p-colladadom-2.3-r8.tar.gz - DESTINATION ${CMAKE_BINARY_DIR} +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 ) + # Build of the collada-dom for Linux and FreeBSD is done in + # indra/llprimitive/CMakeLists.txt + return() +else() + include(FindPkgConfig) + pkg_check_modules(Minizip REQUIRED minizip) + pkg_check_modules(Libxml2 REQUIRED libxml-2.0) + target_link_libraries( ll::minizip-ng INTERFACE ${Minizip_LIBRARIES} ) + target_link_libraries( ll::libxml INTERFACE ${Libxml2_LIBRARIES} ) + if( ${PREBUILD_TRACKING_DIR}/sentinel_installed IS_NEWER_THAN ${PREBUILD_TRACKING_DIR}/colladadom_installed OR NOT ${colladadom_installed} EQUAL 0 ) + if( NOT EXISTS ${CMAKE_BINARY_DIR}/3p-colladadom-2.3-r8.tar.gz ) + file(DOWNLOAD + https://github.com/secondlife/3p-colladadom/archive/refs/tags/v2.3-r8.tar.gz + ${CMAKE_BINARY_DIR}/3p-colladadom-2.3-r8.tar.gz ) + endif() + file(ARCHIVE_EXTRACT + 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( 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() + try_compile(COLLADADOM_RESULT + PROJECT colladadom + SOURCE_DIR ${CMAKE_BINARY_DIR}/3p-colladadom-2.3-r8 + BINARY_DIR ${CMAKE_BINARY_DIR}/3p-colladadom-2.3-r8 + TARGET collada14dom + CMAKE_FLAGS + -DCMAKE_BUILD_TYPE:STRING=${CMAKE_BUILD_TYPE} + -DCMAKE_OSX_ARCHITECTURES:STRING=${CMAKE_OSX_ARCHITECTURES} + -DCMAKE_OSX_DEPLOYMENT_TARGET:STRING=${CMAKE_OSX_DEPLOYMENT_TARGET} + -DCMAKE_INSTALL_PREFIX:PATH=${LIBS_PREBUILT_DIR} + -DCMAKE_CXX_STANDARD:STRING=17 + -DCMAKE_CXX_FLAGS:STRING=-I${Minizip_INCLUDE_DIRS} + -DBoost_CFLAGS:STRING=${BOOST_CFLAGS} + -DEXTRA_COMPILE_FLAGS:STRING=-I${Libxml2_INCLUDE_DIRS} + "-DCMAKE_SHARED_LINKER_FLAGS:STRING=-L${Minizip_LIBRARY_DIRS} ${BOOST_LIBS}" + -DBoost_FILESYSTEM_LIBRARY:STRING=boost_filesystem${BOOST_LIBRARY_SUFFIX} + -DBoost_SYSTEM_LIBRARY:STRING=boost_system${BOOST_LIBRARY_SUFFIX} + -DZLIB_LIBRARIES:STRING=${Libxml2_LIBRARIES} + -DOPT_COLLADA14:BOOL=ON + -DCOLLADA_DOM_INCLUDE_INSTALL_DIR:PATH=${LIBS_PREBUILT_DIR}/include/collada + ) + if( ${COLLADADOM_RESULT} ) 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 + COMMAND ${CMAKE_MAKE_PROGRAM} install + WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/3p-colladadom-2.3-r8 + OUTPUT_VARIABLE colladadom_installed ) - 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() - try_compile(COLLADADOM_RESULT - PROJECT colladadom - SOURCE_DIR ${CMAKE_BINARY_DIR}/3p-colladadom-2.3-r8 - BINARY_DIR ${CMAKE_BINARY_DIR}/3p-colladadom-2.3-r8 - TARGET collada14dom - CMAKE_FLAGS - -DCMAKE_BUILD_TYPE:STRING=${CMAKE_BUILD_TYPE} - -DCMAKE_OSX_ARCHITECTURES:STRING=${CMAKE_OSX_ARCHITECTURES} - -DCMAKE_OSX_DEPLOYMENT_TARGET:STRING=${CMAKE_OSX_DEPLOYMENT_TARGET} - -DCMAKE_INSTALL_PREFIX:PATH=${LIBS_PREBUILT_DIR} - -DCMAKE_CXX_STANDARD:STRING=17 - -DCMAKE_CXX_FLAGS:STRING=-I${Minizip_INCLUDE_DIRS} - -DBoost_CFLAGS:STRING=${BOOST_CFLAGS} - -DEXTRA_COMPILE_FLAGS:STRING=-I${Libxml2_INCLUDE_DIRS} - "-DCMAKE_SHARED_LINKER_FLAGS:STRING=-L${Minizip_LIBRARY_DIRS} ${BOOST_LIBS}" - -DBoost_FILESYSTEM_LIBRARY:STRING=boost_filesystem${BOOST_LIBRARY_SUFFIX} - -DBoost_SYSTEM_LIBRARY:STRING=boost_system${BOOST_LIBRARY_SUFFIX} - -DZLIB_LIBRARIES:STRING=${Libxml2_LIBRARIES} - -DOPT_COLLADA14:BOOL=ON - -DCOLLADA_DOM_INCLUDE_INSTALL_DIR:PATH=${LIBS_PREBUILT_DIR}/include/collada + file(RENAME + ${ARCH_PREBUILT_DIRS}/libcollada14dom.a + ${ARCH_PREBUILT_DIRS_RELEASE}/libcollada14dom.a ) - if( ${COLLADADOM_RESULT} ) - execute_process( - COMMAND ${CMAKE_MAKE_PROGRAM} install - WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/3p-colladadom-2.3-r8 - OUTPUT_VARIABLE colladadom_installed - ) - file(RENAME - ${ARCH_PREBUILT_DIRS}/libcollada14dom.a - ${ARCH_PREBUILT_DIRS_RELEASE}/libcollada14dom.a - ) - file(WRITE ${PREBUILD_TRACKING_DIR}/colladadom_installed "${colladadom_installed}") - endif( ${COLLADADOM_RESULT} ) - endif( ${PREBUILD_TRACKING_DIR}/sentinel_installed IS_NEWER_THAN ${PREBUILD_TRACKING_DIR}/colladadom_installed OR NOT ${colladadom_installed} EQUAL 0 ) - endif( WINDOWS ) -else( USESYSTEMLIBS ) + file(WRITE ${PREBUILD_TRACKING_DIR}/colladadom_installed "${colladadom_installed}") + endif() + endif() +endif() + +if( FALSE ) use_system_binary( colladadom ) use_prebuilt_binary(colladadom) @@ -110,7 +110,7 @@ if (WINDOWS) else() target_link_libraries( ll::libxml INTERFACE ${ARCH_PREBUILT_DIRS_RELEASE}/libxml2.a) endif() -endif( USESYSTEMLIBS ) +endif( FALSE ) target_include_directories( ll::colladadom SYSTEM INTERFACE ${LIBS_PREBUILT_DIR}/include/collada diff --git a/indra/cmake/LLWindow.cmake b/indra/cmake/LLWindow.cmake index 31907d31df..00bf0b8ef7 100644 --- a/indra/cmake/LLWindow.cmake +++ b/indra/cmake/LLWindow.cmake @@ -1,13 +1,13 @@ # -*- cmake -*- include(Variables) -include(GLEXT) +include(GLH) include(Prebuilt) include_guard() add_library( ll::SDL INTERFACE IMPORTED ) -if (USESYSTEMLIBS AND NOT (WINDOWS OR DARWIN)) +if (NOT (WINDOWS OR DARWIN)) include(FindPkgConfig) pkg_check_modules(Sdl2 REQUIRED sdl2) target_compile_definitions( ll::SDL INTERFACE LL_SDL=1) diff --git a/indra/cmake/LibVLCPlugin.cmake b/indra/cmake/LibVLCPlugin.cmake index 779576a485..5ed77af0c2 100644 --- a/indra/cmake/LibVLCPlugin.cmake +++ b/indra/cmake/LibVLCPlugin.cmake @@ -5,56 +5,41 @@ include(Prebuilt) include_guard() add_library( ll::libvlc INTERFACE IMPORTED ) -if (USESYSTEMLIBS) - if (DARWIN) - if (CMAKE_OSX_ARCHITECTURES MATCHES arm64) - if (${PREBUILD_TRACKING_DIR}/sentinel_installed IS_NEWER_THAN ${PREBUILD_TRACKING_DIR}/vlc_installed OR NOT ${vlc_installed} EQUAL 0) - if (NOT EXISTS ${CMAKE_BINARY_DIR}/vlc-3.0.21-arm64.dmg) - file(DOWNLOAD - https://get.videolan.org/vlc/3.0.21/macosx/vlc-3.0.21-arm64.dmg - ${CMAKE_BINARY_DIR}/vlc-3.0.21-arm64.dmg - ) - endif (NOT EXISTS ${CMAKE_BINARY_DIR}/vlc-3.0.21-arm64.dmg) - file(WRITE ${PREBUILD_TRACKING_DIR}/vlc_installed "0") - endif (${PREBUILD_TRACKING_DIR}/sentinel_installed IS_NEWER_THAN ${PREBUILD_TRACKING_DIR}/vlc_installed OR NOT ${vlc_installed} EQUAL 0) - execute_process( - COMMAND hdiutil attach -noverify vlc-3.0.21-arm64.dmg - WORKING_DIRECTORY ${CMAKE_BINARY_DIR} +if (DARWIN) + if (CMAKE_OSX_ARCHITECTURES MATCHES x86_64) + set(ARCHITECTURE intel64) + else () + set(ARCHITECTURE ${CMAKE_OSX_ARCHITECTURES}) + endif () + if (${PREBUILD_TRACKING_DIR}/sentinel_installed IS_NEWER_THAN ${PREBUILD_TRACKING_DIR}/vlc_installed OR NOT ${vlc_installed} EQUAL 0) + if (NOT EXISTS ${CMAKE_BINARY_DIR}/vlc-3.0.21-${ARCHITECTURE}.dmg) + file(DOWNLOAD + https://get.videolan.org/vlc/3.0.21/macosx/vlc-3.0.21-${ARCHITECTURE}.dmg + ${CMAKE_BINARY_DIR}/vlc-3.0.21-${ARCHITECTURE}.dmg ) - else (CMAKE_OSX_ARCHITECTURES MATCHES arm64) - if (${PREBUILD_TRACKING_DIR}/sentinel_installed IS_NEWER_THAN ${PREBUILD_TRACKING_DIR}/vlc_installed OR NOT ${vlc_installed} EQUAL 0) - if (NOT EXISTS ${CMAKE_BINARY_DIR}/vlc-3.0.21-intel64.dmg) - file(DOWNLOAD - https://get.videolan.org/vlc/3.0.21/macosx/vlc-3.0.21-intel64.dmg - ${CMAKE_BINARY_DIR}/vlc-3.0.21-intel64.dmg - ) - endif (NOT EXISTS ${CMAKE_BINARY_DIR}/vlc-3.0.21-intel64.dmg) - file(WRITE ${PREBUILD_TRACKING_DIR}/vlc_installed "0") - endif (${PREBUILD_TRACKING_DIR}/sentinel_installed IS_NEWER_THAN ${PREBUILD_TRACKING_DIR}/vlc_installed OR NOT ${vlc_installed} EQUAL 0) - execute_process( - COMMAND hdiutil attach -noverify vlc-3.0.21-intel64.dmg - WORKING_DIRECTORY ${CMAKE_BINARY_DIR} - ) - endif (CMAKE_OSX_ARCHITECTURES MATCHES arm64) - target_include_directories( ll::libvlc SYSTEM INTERFACE /Volumes/VLC\ media\ player/VLC.app/Contents/MacOS/include) - target_link_directories( ll::libvlc INTERFACE /Volumes/VLC\ media\ player/VLC.app/Contents/MacOS/lib) - target_link_libraries( ll::libvlc INTERFACE vlc vlccore ) - else (DARWIN) - 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 (DARWIN) - set(LIBVLCPLUGIN ON CACHE BOOL - "LIBVLCPLUGIN support for the llplugin/llmedia test apps.") - return() -else (USESYSTEMLIBS) + endif () + file(WRITE ${PREBUILD_TRACKING_DIR}/vlc_installed "0") + endif () + execute_process( + COMMAND hdiutil attach -noverify vlc-3.0.21-${ARCHITECTURE}.dmg + WORKING_DIRECTORY ${CMAKE_BINARY_DIR} + ) + target_include_directories( ll::libvlc SYSTEM INTERFACE /Volumes/VLC\ media\ player/VLC.app/Contents/MacOS/include) + target_link_directories( ll::libvlc INTERFACE /Volumes/VLC\ media\ player/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 () -use_prebuilt_binary(vlc-bin) +#use_prebuilt_binary(vlc-bin) set(LIBVLCPLUGIN ON CACHE BOOL "LIBVLCPLUGIN support for the llplugin/llmedia test apps.") -endif (USESYSTEMLIBS) + +return() if (WINDOWS) target_link_libraries( ll::libvlc INTERFACE diff --git a/indra/cmake/Meshoptimizer.cmake b/indra/cmake/Meshoptimizer.cmake index d5c6598d94..24be3a256d 100644 --- a/indra/cmake/Meshoptimizer.cmake +++ b/indra/cmake/Meshoptimizer.cmake @@ -6,15 +6,12 @@ include(Prebuilt) include_guard() add_library( ll::meshoptimizer INTERFACE IMPORTED ) -if (NOT USESYSTEMLIBS) -use_system_binary(meshoptimizer) -elseif (${LINUX_DISTRO} MATCHES debian OR (${LINUX_DISTRO} MATCHES ubuntu) OR CMAKE_SYSTEM_NAME MATCHES FreeBSD) +#use_system_binary(meshoptimizer) +if (${LINUX_DISTRO} MATCHES debian OR (${LINUX_DISTRO} MATCHES ubuntu) OR CMAKE_SYSTEM_NAME MATCHES FreeBSD) find_package(meshoptimizer) target_link_libraries( ll::meshoptimizer INTERFACE meshoptimizer) return () -endif (NOT USESYSTEMLIBS) - -if (LINUX AND CMAKE_SYSTEM_PROCESSOR MATCHES x86_64 AND NOT (${LINUX_DISTRO} MATCHES gentoo) OR NOT USESYSTEMLIBS) +elseif (LINUX AND CMAKE_SYSTEM_PROCESSOR MATCHES x86_64 AND NOT (${LINUX_DISTRO} MATCHES gentoo)) use_prebuilt_binary(meshoptimizer) elseif (${PREBUILD_TRACKING_DIR}/sentinel_installed IS_NEWER_THAN ${PREBUILD_TRACKING_DIR}/meshoptimizer_installed OR NOT ${meshoptimizer_installed} EQUAL 0) if (NOT EXISTS ${CMAKE_BINARY_DIR}/meshoptimizer-0.21.tar.gz) @@ -48,12 +45,12 @@ elseif (${PREBUILD_TRACKING_DIR}/sentinel_installed IS_NEWER_THAN ${PREBUILD_TRA ) file(WRITE ${PREBUILD_TRACKING_DIR}/meshoptimizer_installed "${meshoptimizer_installed}") endif (${MESHOPTIMIZER_RESULT}) -endif (LINUX AND CMAKE_SYSTEM_PROCESSOR MATCHES x86_64 AND NOT (${LINUX_DISTRO} MATCHES gentoo) OR NOT USESYSTEMLIBS) +endif () -if (NOT USESYSTEMLIBS AND WINDOWS) +if (WINDOWS) target_link_libraries( ll::meshoptimizer INTERFACE meshoptimizer.lib) -else (NOT USESYSTEMLIBS AND WINDOWS) +else () target_link_libraries( ll::meshoptimizer INTERFACE libmeshoptimizer.a) -endif (NOT USESYSTEMLIBS AND WINDOWS) +endif (WINDOWS) target_include_directories( ll::meshoptimizer SYSTEM INTERFACE ${LIBS_PREBUILT_DIR}/include/meshoptimizer) diff --git a/indra/cmake/NDOF.cmake b/indra/cmake/NDOF.cmake index 24fb23a0e3..4e93c1f9ca 100644 --- a/indra/cmake/NDOF.cmake +++ b/indra/cmake/NDOF.cmake @@ -8,9 +8,8 @@ add_library( ll::ndof INTERFACE IMPORTED ) if (NDOF) if (WINDOWS OR DARWIN) - if (NOT USESYSTEMLIBS) - use_prebuilt_binary(libndofdev) - elseif (DARWIN AND (${PREBUILD_TRACKING_DIR}/sentinel_installed IS_NEWER_THAN ${PREBUILD_TRACKING_DIR}/libndofdev_installed OR NOT ${libndofdev_installed} EQUAL 0)) + #use_prebuilt_binary(libndofdev) + if (DARWIN AND (${PREBUILD_TRACKING_DIR}/sentinel_installed IS_NEWER_THAN ${PREBUILD_TRACKING_DIR}/libndofdev_installed OR NOT ${libndofdev_installed} EQUAL 0)) file(DOWNLOAD https://github.com/secondlife/3p-libndofdev/archive/refs/tags/v0.1.8e9edc7.tar.gz ${CMAKE_BINARY_DIR}/3p-libndofdev-0.1.8e9edc7.tar.gz @@ -42,7 +41,7 @@ if (NDOF) ) file(WRITE ${PREBUILD_TRACKING_DIR}/libndofdev_installed "${libndofdev_installed}") endif (${LIBNDOFDEV_RESULT}) - endif (NOT USESYSTEMLIBS) + endif () elseif (LINUX) use_prebuilt_binary(open-libndofdev) endif (WINDOWS OR DARWIN) diff --git a/indra/cmake/OPENAL.cmake b/indra/cmake/OPENAL.cmake index f2eb956e2e..f63e55cdf3 100644 --- a/indra/cmake/OPENAL.cmake +++ b/indra/cmake/OPENAL.cmake @@ -19,15 +19,13 @@ endif() if (USE_OPENAL) add_library( ll::openal INTERFACE IMPORTED ) - if (USESYSTEMLIBS) - 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_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 () target_include_directories( ll::openal SYSTEM INTERFACE "${LIBS_PREBUILT_DIR}/include/AL") target_compile_definitions( ll::openal INTERFACE LL_OPENAL=1) diff --git a/indra/cmake/OpenJPEG.cmake b/indra/cmake/OpenJPEG.cmake index cf008faebf..6b65145174 100644 --- a/indra/cmake/OpenJPEG.cmake +++ b/indra/cmake/OpenJPEG.cmake @@ -4,10 +4,8 @@ include(Prebuilt) include_guard() add_library( ll::openjpeg INTERFACE IMPORTED ) -if (NOT USESYSTEMLIBS) -use_system_binary(openjpeg) -endif (NOT USESYSTEMLIBS) -if (LINUX AND CMAKE_SYSTEM_PROCESSOR MATCHES x86_64 OR NOT USESYSTEMLIBS) +#use_system_binary(openjpeg) +if (LINUX AND CMAKE_SYSTEM_PROCESSOR MATCHES x86_64) use_prebuilt_binary(openjpeg) elseif (${PREBUILD_TRACKING_DIR}/sentinel_installed IS_NEWER_THAN ${PREBUILD_TRACKING_DIR}/openjpeg_installed OR NOT ${openjpeg_installed} EQUAL 0) if (NOT EXISTS ${CMAKE_BINARY_DIR}/3p-openjpeg-2.5.0.ea12248.tar.gz) @@ -54,7 +52,7 @@ elseif (${PREBUILD_TRACKING_DIR}/sentinel_installed IS_NEWER_THAN ${PREBUILD_TRA ) file(WRITE ${PREBUILD_TRACKING_DIR}/openjpeg_installed "${openjpeg_installed}") endif (${OPENJPEG_RESULT}) -endif (LINUX AND CMAKE_SYSTEM_PROCESSOR MATCHES x86_64 OR NOT USESYSTEMLIBS) +endif () target_link_libraries(ll::openjpeg INTERFACE openjp2 ) target_include_directories( ll::openjpeg SYSTEM INTERFACE ${LIBS_PREBUILT_DIR}/include) diff --git a/indra/cmake/OpenSSL.cmake b/indra/cmake/OpenSSL.cmake index 8b9c737325..ecc9e30ac3 100644 --- a/indra/cmake/OpenSSL.cmake +++ b/indra/cmake/OpenSSL.cmake @@ -5,10 +5,8 @@ include(Linking) include_guard() add_library( ll::openssl INTERFACE IMPORTED ) -if (NOT USESYSTEMLIBS) -use_system_binary(openssl) -endif (NOT USESYSTEMLIBS) -if (LINUX AND CMAKE_SYSTEM_PROCESSOR MATCHES x86_64 OR DARWIN OR NOT USESYSTEMLIBS) +#use_system_binary(openssl) +if (LINUX AND CMAKE_SYSTEM_PROCESSOR MATCHES x86_64 OR DARWIN) use_prebuilt_binary(openssl) if (DARWIN) execute_process( @@ -67,15 +65,15 @@ elseif (${PREBUILD_TRACKING_DIR}/sentinel_installed IS_NEWER_THAN ${PREBUILD_TRA RESULT_VARIABLE openssl_installed ) file(WRITE ${PREBUILD_TRACKING_DIR}/openssl_installed "${openssl_installed}") -endif (LINUX AND CMAKE_SYSTEM_PROCESSOR MATCHES x86_64 OR DARWIN OR NOT USESYSTEMLIBS) -if (WINDOWS AND NOT USESYSTEMLIBS) +endif () +if (WINDOWS) target_link_libraries(ll::openssl INTERFACE ${ARCH_PREBUILT_DIRS_RELEASE}/libssl.lib ${ARCH_PREBUILT_DIRS_RELEASE}/libcrypto.lib Crypt32.lib) elseif (LINUX) target_link_libraries(ll::openssl INTERFACE ${ARCH_PREBUILT_DIRS_RELEASE}/libssl.a ${ARCH_PREBUILT_DIRS_RELEASE}/libcrypto.a dl) else() target_link_libraries(ll::openssl INTERFACE ssl crypto) -endif (WINDOWS AND NOT USESYSTEMLIBS) -if (NOT (WINDOWS AND USESYSTEMLIBS)) +endif (WINDOWS) +if (NOT WINDOWS) target_include_directories( ll::openssl SYSTEM INTERFACE ${LIBS_PREBUILT_DIR}/include) -endif (NOT (WINDOWS AND USESYSTEMLIBS)) +endif () diff --git a/indra/cmake/Prebuilt.cmake b/indra/cmake/Prebuilt.cmake index 751e83051f..2d5eb5d805 100644 --- a/indra/cmake/Prebuilt.cmake +++ b/indra/cmake/Prebuilt.cmake @@ -40,38 +40,37 @@ macro (use_prebuilt_binary _binary) --install-dir=${AUTOBUILD_INSTALL_DIR} ${_binary} ") endif(DEBUG_PREBUILT) - if(USESYSTEMLIBS) + execute_process(COMMAND xmllint + --xpath + "//map/map/map/map/map/map/string[contains(text(),'${_binary}')][contains(text(),'common')]/text()" autobuild.xml + WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/.. + OUTPUT_VARIABLE package_url + OUTPUT_STRIP_TRAILING_WHITESPACE + ) + if ("${package_url}" STREQUAL "") + string(TOLOWER ${CMAKE_SYSTEM_NAME} system_name) + if (${system_name} MATCHES freebsd) + set(system_name "linux") + endif (${system_name} MATCHES freebsd) execute_process(COMMAND xmllint --xpath - "//map/map/map/map/map/map/string[contains(text(),'${_binary}')][contains(text(),'common')]/text()" autobuild.xml + "//map/map/map/map/map/map/string[contains(text(),'${_binary}')][contains(text(),'${system_name}')]/text()" autobuild.xml WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/.. OUTPUT_VARIABLE package_url OUTPUT_STRIP_TRAILING_WHITESPACE ) - if ("${package_url}" STREQUAL "") - string(TOLOWER ${CMAKE_SYSTEM_NAME} system_name) - if (${system_name} MATCHES freebsd) - set(system_name "linux") - endif (${system_name} MATCHES freebsd) - execute_process(COMMAND xmllint - --xpath - "//map/map/map/map/map/map/string[contains(text(),'${_binary}')][contains(text(),'${system_name}')]/text()" autobuild.xml - WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/.. - OUTPUT_VARIABLE package_url - OUTPUT_STRIP_TRAILING_WHITESPACE - ) - endif ("${package_url}" STREQUAL "") - string(REGEX REPLACE "^https?://(megapahit.net/downloads|github.com/secondlife|automated-builds-secondlife-com.s3.amazonaws.com/ct2).*/" "" package_name ${package_url}) - file(DOWNLOAD - ${package_url} - ${CMAKE_BINARY_DIR}/${package_name} - ) - file(ARCHIVE_EXTRACT - INPUT ${CMAKE_BINARY_DIR}/${package_name} - DESTINATION ${AUTOBUILD_INSTALL_DIR} - ) - set(${_binary}_installed 0) - else(USESYSTEMLIBS) + endif ("${package_url}" STREQUAL "") + string(REGEX REPLACE "^https?://(megapahit.net/downloads|github.com/secondlife|automated-builds-secondlife-com.s3.amazonaws.com/ct2).*/" "" package_name ${package_url}) + file(DOWNLOAD + ${package_url} + ${CMAKE_BINARY_DIR}/${package_name} + ) + file(ARCHIVE_EXTRACT + INPUT ${CMAKE_BINARY_DIR}/${package_name} + DESTINATION ${AUTOBUILD_INSTALL_DIR} + ) + set(${_binary}_installed 0) + if(FALSE) execute_process(COMMAND "${AUTOBUILD_EXECUTABLE}" install --install-dir=${AUTOBUILD_INSTALL_DIR} @@ -79,7 +78,7 @@ macro (use_prebuilt_binary _binary) WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}" RESULT_VARIABLE ${_binary}_installed ) - endif(USESYSTEMLIBS) + endif() file(WRITE ${PREBUILD_TRACKING_DIR}/${_binary}_installed "${${_binary}_installed}") endif(${PREBUILD_TRACKING_DIR}/sentinel_installed IS_NEWER_THAN ${PREBUILD_TRACKING_DIR}/${_binary}_installed OR NOT ${${_binary}_installed} EQUAL 0) @@ -92,6 +91,22 @@ endmacro (use_prebuilt_binary _binary) #Sadly we need a macro here, otherwise the return() will not properly work macro ( use_system_binary package ) + 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() + if( USE_CONAN ) target_link_libraries( ll::${package} INTERFACE CONAN_PKG::${package} ) foreach( extra_pkg "${ARGN}" ) @@ -100,22 +115,6 @@ 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/UI.cmake b/indra/cmake/UI.cmake index a3423bb895..f1cde54807 100644 --- a/indra/cmake/UI.cmake +++ b/indra/cmake/UI.cmake @@ -6,9 +6,6 @@ include(GLIB) add_library( ll::uilibraries INTERFACE IMPORTED ) if (LINUX OR CMAKE_SYSTEM_NAME MATCHES "FreeBSD") - if (NOT USESYSTEMLIBS) - use_prebuilt_binary(fltk) - endif () target_compile_definitions(ll::uilibraries INTERFACE LL_FLTK=1 LL_X11=1 ) if( USE_CONAN ) @@ -48,7 +45,7 @@ if( WINDOWS ) ) endif() -if (NOT USESYSTEMLIBS) +if (FALSE) target_include_directories( ll::uilibraries SYSTEM INTERFACE ${LIBS_PREBUILT_DIR}/include ) diff --git a/indra/cmake/ViewerMiscLibs.cmake b/indra/cmake/ViewerMiscLibs.cmake index 13f5ebf862..d8b94d5fba 100644 --- a/indra/cmake/ViewerMiscLibs.cmake +++ b/indra/cmake/ViewerMiscLibs.cmake @@ -8,16 +8,16 @@ if (NOT (WINDOWS OR DARWIN)) target_link_libraries( ll::fontconfig INTERFACE Fontconfig::Fontconfig ) endif (NOT (WINDOWS OR DARWIN)) -if( USE_AUTOBUILD_3P ) +if (FALSE) +if( NOT USE_CONAN ) use_prebuilt_binary(libhunspell) endif() -if (NOT USESYSTEMLIBS) use_prebuilt_binary(slvoice) -endif (NOT USESYSTEMLIBS) +endif (FALSE) -if ((${LINUX_DISTRO} MATCHES debian OR WINDOWS OR DARWIN) OR NOT USESYSTEMLIBS) +if (${LINUX_DISTRO} MATCHES debian OR DARWIN OR WINDOWS) use_prebuilt_binary(nanosvg) -endif ((${LINUX_DISTRO} MATCHES debian OR WINDOWS OR DARWIN) OR NOT USESYSTEMLIBS) +endif () use_prebuilt_binary(viewer-fonts) use_prebuilt_binary(emoji_shortcodes) diff --git a/indra/cmake/VulkanGltf.cmake b/indra/cmake/VulkanGltf.cmake index d7083a33c9..94541d5307 100644 --- a/indra/cmake/VulkanGltf.cmake +++ b/indra/cmake/VulkanGltf.cmake @@ -1,7 +1,5 @@ # -*- cmake -*- include(Prebuilt) -if (NOT USESYSTEMLIBS) use_prebuilt_binary(vulkan_gltf) -endif () diff --git a/indra/cmake/ZLIBNG.cmake b/indra/cmake/ZLIBNG.cmake index 5aa54b0152..7c2c59a68d 100644 --- a/indra/cmake/ZLIBNG.cmake +++ b/indra/cmake/ZLIBNG.cmake @@ -5,15 +5,15 @@ include(Prebuilt) include_guard() add_library( ll::zlib-ng INTERFACE IMPORTED ) +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() + 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 7e113feda2..84f4f4e0f2 100644 --- a/indra/cmake/xxHash.cmake +++ b/indra/cmake/xxHash.cmake @@ -6,10 +6,8 @@ set (XXHASH_CMAKE_INCLUDED TRUE) include(Prebuilt) -if (USESYSTEMLIBS) - include(FindPkgConfig) - pkg_check_modules(Xxhash REQUIRED libxxhash) - return () -endif () +include(FindPkgConfig) +pkg_check_modules(Xxhash REQUIRED libxxhash) +return () use_prebuilt_binary(xxhash) -- cgit v1.2.3 From 793bdbf972eca4c032813d6e2c4ef4e79d1628eb Mon Sep 17 00:00:00 2001 From: Erik Kundiman Date: Tue, 13 May 2025 10:48:20 +0800 Subject: Empty CMake elses & endifs parentheses to make it more flexible the next time a value in the if's parentheses gets changed again, and also to reduce duplicate pattern matches when grepping those CMake files with certain keywords. --- indra/cmake/CURL.cmake | 10 +++++----- indra/cmake/FMODSTUDIO.cmake | 6 +++--- indra/cmake/Meshoptimizer.cmake | 4 ++-- indra/cmake/NDOF.cmake | 2 +- indra/cmake/OpenJPEG.cmake | 4 ++-- indra/cmake/OpenSSL.cmake | 6 +++--- indra/cmake/UI.cmake | 2 +- indra/cmake/ViewerMiscLibs.cmake | 4 ++-- 8 files changed, 19 insertions(+), 19 deletions(-) (limited to 'indra/cmake') diff --git a/indra/cmake/CURL.cmake b/indra/cmake/CURL.cmake index 5868d41849..b301819536 100644 --- a/indra/cmake/CURL.cmake +++ b/indra/cmake/CURL.cmake @@ -23,15 +23,15 @@ use_prebuilt_binary(curl) -output libcurl.a WORKING_DIRECTORY ${ARCH_PREBUILT_DIRS_RELEASE} ) - endif (NOT ${curl_archs} STREQUAL ${CMAKE_OSX_ARCHITECTURES}) - endif (DARWIN) + endif () + endif () elseif (${PREBUILD_TRACKING_DIR}/sentinel_installed IS_NEWER_THAN ${PREBUILD_TRACKING_DIR}/curl_installed OR NOT ${curl_installed} EQUAL 0) if (NOT EXISTS ${CMAKE_BINARY_DIR}/3p-curl-7.54.1-r1.tar.gz) file(DOWNLOAD https://github.com/secondlife/3p-curl/archive/refs/tags/v7.54.1-r1.tar.gz ${CMAKE_BINARY_DIR}/3p-curl-7.54.1-r1.tar.gz ) - endif (NOT EXISTS ${CMAKE_BINARY_DIR}/3p-curl-7.54.1-r1.tar.gz) + endif () file(ARCHIVE_EXTRACT INPUT ${CMAKE_BINARY_DIR}/3p-curl-7.54.1-r1.tar.gz DESTINATION ${CMAKE_BINARY_DIR} @@ -55,7 +55,7 @@ elseif (${PREBUILD_TRACKING_DIR}/sentinel_installed IS_NEWER_THAN ${PREBUILD_TRA execute_process(COMMAND sudo mv /usr/lib/libcrypto.so /usr/lib/libcrypto.so.3) execute_process(COMMAND sudo mv /usr/lib/libssl.a /usr/lib/libssl.a.3) execute_process(COMMAND sudo mv /usr/lib/libssl.so /usr/lib/libssl.so.3) - endif (CMAKE_SYSTEM_NAME MATCHES FreeBSD) + endif () set(ENV{CFLAGS} "-std=c90") execute_process( COMMAND ./configure --disable-alt-svc --disable-dict --disable-doh --disable-file --disable-gopher --disable-headers-api --disable-hsts --disable-imap --disable-ldap --disable-ldaps --disable-libcurl-option --disable-manual --disable-mqtt --disable-ntlm --disable-ntlm-wb --disable-pop3 --disable-rtsp --disable-shared --disable-smb --disable-smtp --disable-sspi --disable-telnet --disable-tftp --disable-tls-srp --disable-unix-sockets --disable-verbose --disable-versioned-symbols --enable-threaded-resolver --with-ssl=${LIBS_PREBUILT_DIR} --without-libidn2 --without-libpsl --without-libssh2 --prefix=${LIBS_PREBUILT_DIR} --libdir=${ARCH_PREBUILT_DIRS_RELEASE} @@ -78,7 +78,7 @@ elseif (${PREBUILD_TRACKING_DIR}/sentinel_installed IS_NEWER_THAN ${PREBUILD_TRA execute_process(COMMAND sudo mv /usr/lib/libssl.a.3 /usr/lib/libssl.a) execute_process(COMMAND sudo mv /usr/lib/libssl.so.3 /usr/lib/libssl.so) message("OpenSSL3 header directory and library names have been restored.") - endif (CMAKE_SYSTEM_NAME MATCHES FreeBSD) + endif () file(REMOVE ${ARCH_PREBUILT_DIRS}/libcrypto.a ${ARCH_PREBUILT_DIRS}/libssl.a diff --git a/indra/cmake/FMODSTUDIO.cmake b/indra/cmake/FMODSTUDIO.cmake index 4ed9f94caf..fb4734fe7b 100644 --- a/indra/cmake/FMODSTUDIO.cmake +++ b/indra/cmake/FMODSTUDIO.cmake @@ -62,7 +62,7 @@ if (USE_FMODSTUDIO) RESULT_VARIABLE fmodstudio_installed ) file(WRITE ${PREBUILD_TRACKING_DIR}/fmodstudio_installed "${fmodstudio_installed}") - else (DARWIN) + else () file(ARCHIVE_EXTRACT INPUT $ENV{HOME}/Downloads/fmodstudioapi20228linux.tar.gz DESTINATION ${CMAKE_BINARY_DIR} @@ -97,9 +97,9 @@ if (USE_FMODSTUDIO) DESTINATION ${ARCH_PREBUILT_DIRS_RELEASE} FOLLOW_SYMLINK_CHAIN ) - endif (CMAKE_SYSTEM_PROCESSOR MATCHES aarch64) + endif () file(WRITE ${PREBUILD_TRACKING_DIR}/fmodstudio_installed "0") - endif (DARWIN) + endif () endif () #use_prebuilt_binary(fmodstudio) diff --git a/indra/cmake/Meshoptimizer.cmake b/indra/cmake/Meshoptimizer.cmake index 24be3a256d..4b428e4b83 100644 --- a/indra/cmake/Meshoptimizer.cmake +++ b/indra/cmake/Meshoptimizer.cmake @@ -19,7 +19,7 @@ elseif (${PREBUILD_TRACKING_DIR}/sentinel_installed IS_NEWER_THAN ${PREBUILD_TRA https://github.com/zeux/meshoptimizer/archive/refs/tags/v0.21.tar.gz ${CMAKE_BINARY_DIR}/meshoptimizer-0.21.tar.gz ) - endif (NOT EXISTS ${CMAKE_BINARY_DIR}/meshoptimizer-0.21.tar.gz) + endif () file(ARCHIVE_EXTRACT INPUT ${CMAKE_BINARY_DIR}/meshoptimizer-0.21.tar.gz DESTINATION ${CMAKE_BINARY_DIR} @@ -44,7 +44,7 @@ elseif (${PREBUILD_TRACKING_DIR}/sentinel_installed IS_NEWER_THAN ${PREBUILD_TRA OUTPUT_VARIABLE meshoptimizer_installed ) file(WRITE ${PREBUILD_TRACKING_DIR}/meshoptimizer_installed "${meshoptimizer_installed}") - endif (${MESHOPTIMIZER_RESULT}) + endif () endif () if (WINDOWS) diff --git a/indra/cmake/NDOF.cmake b/indra/cmake/NDOF.cmake index 4e93c1f9ca..d6e5e53ac9 100644 --- a/indra/cmake/NDOF.cmake +++ b/indra/cmake/NDOF.cmake @@ -40,7 +40,7 @@ if (NDOF) DESTINATION ${ARCH_PREBUILT_DIRS_RELEASE} ) file(WRITE ${PREBUILD_TRACKING_DIR}/libndofdev_installed "${libndofdev_installed}") - endif (${LIBNDOFDEV_RESULT}) + endif () endif () elseif (LINUX) use_prebuilt_binary(open-libndofdev) diff --git a/indra/cmake/OpenJPEG.cmake b/indra/cmake/OpenJPEG.cmake index 6b65145174..781298afbd 100644 --- a/indra/cmake/OpenJPEG.cmake +++ b/indra/cmake/OpenJPEG.cmake @@ -13,7 +13,7 @@ elseif (${PREBUILD_TRACKING_DIR}/sentinel_installed IS_NEWER_THAN ${PREBUILD_TRA https://github.com/secondlife/3p-openjpeg/archive/refs/tags/v2.5.0.ea12248.tar.gz ${CMAKE_BINARY_DIR}/3p-openjpeg-2.5.0.ea12248.tar.gz ) - endif (NOT EXISTS ${CMAKE_BINARY_DIR}/3p-openjpeg-2.5.0.ea12248.tar.gz) + endif () file(ARCHIVE_EXTRACT INPUT ${CMAKE_BINARY_DIR}/3p-openjpeg-2.5.0.ea12248.tar.gz DESTINATION ${CMAKE_BINARY_DIR} @@ -51,7 +51,7 @@ elseif (${PREBUILD_TRACKING_DIR}/sentinel_installed IS_NEWER_THAN ${PREBUILD_TRA DESTINATION ${LIBS_PREBUILT_DIR}/include/openjpeg ) file(WRITE ${PREBUILD_TRACKING_DIR}/openjpeg_installed "${openjpeg_installed}") - endif (${OPENJPEG_RESULT}) + endif () endif () target_link_libraries(ll::openjpeg INTERFACE openjp2 ) diff --git a/indra/cmake/OpenSSL.cmake b/indra/cmake/OpenSSL.cmake index ecc9e30ac3..7cb59b04c3 100644 --- a/indra/cmake/OpenSSL.cmake +++ b/indra/cmake/OpenSSL.cmake @@ -23,7 +23,7 @@ use_prebuilt_binary(openssl) -output libcrypto.a WORKING_DIRECTORY ${ARCH_PREBUILT_DIRS_RELEASE} ) - endif (NOT ${crypto_archs} STREQUAL ${CMAKE_OSX_ARCHITECTURES}) + endif () execute_process( COMMAND lipo -archs libssl.a WORKING_DIRECTORY ${ARCH_PREBUILT_DIRS_RELEASE} @@ -38,8 +38,8 @@ use_prebuilt_binary(openssl) -output libssl.a WORKING_DIRECTORY ${ARCH_PREBUILT_DIRS_RELEASE} ) - endif (NOT ${ssl_archs} STREQUAL ${CMAKE_OSX_ARCHITECTURES}) - endif (DARWIN) + endif () + endif () elseif (${PREBUILD_TRACKING_DIR}/sentinel_installed IS_NEWER_THAN ${PREBUILD_TRACKING_DIR}/openssl_installed OR NOT ${openssl_installed} EQUAL 0) if (NOT EXISTS ${CMAKE_BINARY_DIR}/OpenSSL_1_1_1w.tar.gz) file(DOWNLOAD diff --git a/indra/cmake/UI.cmake b/indra/cmake/UI.cmake index f1cde54807..ada5b6da3b 100644 --- a/indra/cmake/UI.cmake +++ b/indra/cmake/UI.cmake @@ -27,7 +27,7 @@ if (LINUX OR CMAKE_SYSTEM_NAME MATCHES "FreeBSD") ll::gio ) -endif (LINUX OR CMAKE_SYSTEM_NAME MATCHES "FreeBSD") +endif () if( WINDOWS ) target_link_libraries( ll::uilibraries INTERFACE opengl32 diff --git a/indra/cmake/ViewerMiscLibs.cmake b/indra/cmake/ViewerMiscLibs.cmake index d8b94d5fba..4ab69e30aa 100644 --- a/indra/cmake/ViewerMiscLibs.cmake +++ b/indra/cmake/ViewerMiscLibs.cmake @@ -1,12 +1,12 @@ # -*- cmake -*- include(Prebuilt) -if (NOT (WINDOWS OR DARWIN)) +if (NOT (DARWIN OR WINDOWS)) add_library( ll::fontconfig INTERFACE IMPORTED ) find_package(Fontconfig REQUIRED) target_link_libraries( ll::fontconfig INTERFACE Fontconfig::Fontconfig ) -endif (NOT (WINDOWS OR DARWIN)) +endif () if (FALSE) if( NOT USE_CONAN ) -- cgit v1.2.3 From bdc8a1845666565c5e30228d7d57532df339bc94 Mon Sep 17 00:00:00 2001 From: Erik Kundiman Date: Tue, 13 May 2025 10:57:30 +0800 Subject: Lose the not really required double quotes on the CMake string match tests. --- indra/cmake/LLWindow.cmake | 3 +-- indra/cmake/UI.cmake | 2 +- 2 files changed, 2 insertions(+), 3 deletions(-) (limited to 'indra/cmake') diff --git a/indra/cmake/LLWindow.cmake b/indra/cmake/LLWindow.cmake index 00bf0b8ef7..34df3ad33b 100644 --- a/indra/cmake/LLWindow.cmake +++ b/indra/cmake/LLWindow.cmake @@ -13,14 +13,13 @@ if (NOT (WINDOWS OR DARWIN)) 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") + 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 target_compile_definitions( ll::SDL INTERFACE LL_SDL_VERSION=2 LL_SDL) diff --git a/indra/cmake/UI.cmake b/indra/cmake/UI.cmake index ada5b6da3b..85e74f03e4 100644 --- a/indra/cmake/UI.cmake +++ b/indra/cmake/UI.cmake @@ -5,7 +5,7 @@ include(GLIB) add_library( ll::uilibraries INTERFACE IMPORTED ) -if (LINUX OR CMAKE_SYSTEM_NAME MATCHES "FreeBSD") +if (LINUX OR CMAKE_SYSTEM_NAME MATCHES FreeBSD) target_compile_definitions(ll::uilibraries INTERFACE LL_FLTK=1 LL_X11=1 ) if( USE_CONAN ) -- cgit v1.2.3 From 90a13441c31ffe3e5afc0a2ea1b50b3182241992 Mon Sep 17 00:00:00 2001 From: Erik Kundiman Date: Tue, 13 May 2025 14:38:19 +0800 Subject: Include Expat *before* APR when configuring deps On some platforms where there's no such system library, and no prebuilt binaries for them, Expat needs to be built first before APR, because apr-util depends on Expat. --- indra/cmake/LLCommon.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'indra/cmake') diff --git a/indra/cmake/LLCommon.cmake b/indra/cmake/LLCommon.cmake index dd43ca4916..91e376352f 100644 --- a/indra/cmake/LLCommon.cmake +++ b/indra/cmake/LLCommon.cmake @@ -1,8 +1,8 @@ # -*- cmake -*- +include(EXPAT) include(APR) include(Boost) -include(EXPAT) include(Tracy) include(xxHash) include(ZLIBNG) -- cgit v1.2.3 From 060bebcd3cbb5fbf6045bd777364947a2d8963d3 Mon Sep 17 00:00:00 2001 From: Erik Kundiman Date: Wed, 14 May 2025 11:43:15 +0800 Subject: Revert "Revert to LL's OpenJPEG fork" This reverts commit 3a36cdf6ebd9d2795bdcd14162f38df568d51796. --- indra/cmake/OpenJPEG.cmake | 89 +++++++++++++++++++++++++++------------------- 1 file changed, 52 insertions(+), 37 deletions(-) (limited to 'indra/cmake') diff --git a/indra/cmake/OpenJPEG.cmake b/indra/cmake/OpenJPEG.cmake index 781298afbd..5729f6a10e 100644 --- a/indra/cmake/OpenJPEG.cmake +++ b/indra/cmake/OpenJPEG.cmake @@ -5,54 +5,69 @@ include_guard() add_library( ll::openjpeg INTERFACE IMPORTED ) #use_system_binary(openjpeg) -if (LINUX AND CMAKE_SYSTEM_PROCESSOR MATCHES x86_64) -use_prebuilt_binary(openjpeg) -elseif (${PREBUILD_TRACKING_DIR}/sentinel_installed IS_NEWER_THAN ${PREBUILD_TRACKING_DIR}/openjpeg_installed OR NOT ${openjpeg_installed} EQUAL 0) - if (NOT EXISTS ${CMAKE_BINARY_DIR}/3p-openjpeg-2.5.0.ea12248.tar.gz) +#use_prebuilt_binary(openjpeg) + +if (${PREBUILD_TRACKING_DIR}/sentinel_installed IS_NEWER_THAN ${PREBUILD_TRACKING_DIR}/openjpeg_installed OR NOT ${openjpeg_installed} EQUAL 0) + if (NOT EXISTS ${CMAKE_BINARY_DIR}/openjpeg-2.5.3.tar.gz) file(DOWNLOAD - https://github.com/secondlife/3p-openjpeg/archive/refs/tags/v2.5.0.ea12248.tar.gz - ${CMAKE_BINARY_DIR}/3p-openjpeg-2.5.0.ea12248.tar.gz + https://github.com/uclouvain/openjpeg/archive/refs/tags/v2.5.3.tar.gz + ${CMAKE_BINARY_DIR}/openjpeg-2.5.3.tar.gz ) endif () file(ARCHIVE_EXTRACT - INPUT ${CMAKE_BINARY_DIR}/3p-openjpeg-2.5.0.ea12248.tar.gz + INPUT ${CMAKE_BINARY_DIR}/openjpeg-2.5.3.tar.gz DESTINATION ${CMAKE_BINARY_DIR} ) - try_compile(OPENJPEG_RESULT - PROJECT OPENJPEG - SOURCE_DIR ${CMAKE_BINARY_DIR}/3p-openjpeg-2.5.0.ea12248/openjpeg - BINARY_DIR ${CMAKE_BINARY_DIR}/3p-openjpeg-2.5.0.ea12248/openjpeg - TARGET openjp2 - CMAKE_FLAGS - -DCMAKE_BUILD_TYPE:STRING=${CMAKE_BUILD_TYPE} - -DCMAKE_OSX_ARCHITECTURES:STRING=${CMAKE_OSX_ARCHITECTURES} - -DCMAKE_OSX_DEPLOYMENT_TARGET:STRING=${CMAKE_OSX_DEPLOYMENT_TARGET} - -DCMAKE_INSTALL_PREFIX:PATH=${LIBS_PREBUILT_DIR} - -DCMAKE_INSTALL_LIBDIR:PATH=${ARCH_PREBUILT_DIRS_RELEASE} - -DCMAKE_BUILD_WITH_INSTALL_RPATH:BOOL=ON - -DBUILD_SHARED_LIBS:BOOL=${BUILD_SHARED_LIBS} - -DBUILD_CODEC:BOOL=OFF - ) - if (${OPENJPEG_RESULT}) + + if (${LINUX_DISTRO} MATCHES debian OR (${LINUX_DISTRO} MATCHES ubuntu)) + try_compile(OPENJPEG_RESULT + PROJECT OPENJPEG + SOURCE_DIR ${CMAKE_BINARY_DIR}/openjpeg-2.5.3 + BINARY_DIR ${CMAKE_BINARY_DIR}/openjpeg-2.5.3 + TARGET openjp2 + CMAKE_FLAGS + -DCMAKE_BUILD_TYPE:STRING=${CMAKE_BUILD_TYPE} + -DCMAKE_OSX_ARCHITECTURES:STRING=${CMAKE_OSX_ARCHITECTURES} + -DCMAKE_OSX_DEPLOYMENT_TARGET:STRING=${CMAKE_OSX_DEPLOYMENT_TARGET} + -DCMAKE_INSTALL_PREFIX:PATH=${LIBS_PREBUILT_DIR} + -DCMAKE_INSTALL_LIBDIR:PATH=${ARCH_PREBUILT_DIRS_RELEASE} + -DCMAKE_BUILD_WITH_INSTALL_RPATH:BOOL=ON + -DBUILD_SHARED_LIBS:BOOL=${BUILD_SHARED_LIBS} + -DBUILD_CODEC:BOOL=OFF + ) + if (${OPENJPEG_RESULT}) + execute_process( + COMMAND ${CMAKE_MAKE_PROGRAM} install + WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/openjpeg-2.5.3 + OUTPUT_VARIABLE openjpeg_installed + ) + endif () + + else () execute_process( - COMMAND ${CMAKE_MAKE_PROGRAM} install - WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/3p-openjpeg-2.5.0.ea12248/openjpeg + COMMAND ${CMAKE_COMMAND} -DCMAKE_BUILD_TYPE:STRING=${CMAKE_BUILD_TYPE} -DCMAKE_OSX_ARCHITECTURES:STRING=${CMAKE_OSX_ARCHITECTURES} -DCMAKE_OSX_DEPLOYMENT_TARGET:STRING=${CMAKE_OSX_DEPLOYMENT_TARGET} -DCMAKE_INSTALL_PREFIX:PATH=${LIBS_PREBUILT_DIR} -DCMAKE_INSTALL_LIBDIR:PATH=${ARCH_PREBUILT_DIRS_RELEASE} -DCMAKE_BUILD_WITH_INSTALL_RPATH:BOOL=ON -DBUILD_SHARED_LIBS:BOOL=${BUILD_SHARED_LIBS} -DBUILD_CODEC:BOOL=OFF + WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/openjpeg-2.5.3 OUTPUT_VARIABLE openjpeg_installed ) - file(RENAME - ${LIBS_PREBUILT_DIR}/include/openjpeg-2.5 - ${LIBS_PREBUILT_DIR}/include/openjpeg - ) - file( - COPY - ${CMAKE_BINARY_DIR}/3p-openjpeg-2.5.0.ea12248/openjpeg/src/lib/openjp2/cio.h - ${CMAKE_BINARY_DIR}/3p-openjpeg-2.5.0.ea12248/openjpeg/src/lib/openjp2/event.h - ${CMAKE_BINARY_DIR}/3p-openjpeg-2.5.0.ea12248/openjpeg/src/lib/openjp2/opj_config_private.h - DESTINATION ${LIBS_PREBUILT_DIR}/include/openjpeg - ) - file(WRITE ${PREBUILD_TRACKING_DIR}/openjpeg_installed "${openjpeg_installed}") endif () + + file( + COPY + ${CMAKE_BINARY_DIR}/openjpeg-2.5.3/src/lib/openjp2/cio.h + ${CMAKE_BINARY_DIR}/openjpeg-2.5.3/src/lib/openjp2/event.h + ${CMAKE_BINARY_DIR}/openjpeg-2.5.3/src/lib/openjp2/opj_config_private.h + DESTINATION ${LIBS_PREBUILT_DIR}/include/openjpeg-2.5 + ) + file(WRITE ${PREBUILD_TRACKING_DIR}/openjpeg_installed "${openjpeg_installed}") endif () +if (${LINUX_DISTRO} MATCHES debian OR (${LINUX_DISTRO} MATCHES ubuntu)) target_link_libraries(ll::openjpeg INTERFACE openjp2 ) +else () + 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}) +endif () target_include_directories( ll::openjpeg SYSTEM INTERFACE ${LIBS_PREBUILT_DIR}/include) -- cgit v1.2.3