diff options
Diffstat (limited to 'indra')
-rw-r--r-- | indra/cmake/LLPrimitive.cmake | 86 |
1 files changed, 44 insertions, 42 deletions
diff --git a/indra/cmake/LLPrimitive.cmake b/indra/cmake/LLPrimitive.cmake index 216f4d574a..9ea7ff899e 100644 --- a/indra/cmake/LLPrimitive.cmake +++ b/indra/cmake/LLPrimitive.cmake @@ -29,7 +29,7 @@ if(LINUX OR CMAKE_SYSTEM_NAME MATCHES FreeBSD ) endif(LINUX OR CMAKE_SYSTEM_NAME MATCHES FreeBSD ) if( USESYSTEMLIBS ) - if ( NOT DARWIN AND (${PREBUILD_TRACKING_DIR}/sentinel_installed IS_NEWER_THAN ${PREBUILD_TRACKING_DIR}/colladadom_installed OR NOT ${colladadom_installed} EQUAL 0) ) + 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-r4.tar.gz) file(DOWNLOAD https://github.com/secondlife/3p-colladadom/archive/refs/tags/v2.3-r4.tar.gz @@ -45,24 +45,47 @@ if( USESYSTEMLIBS ) pkg_check_modules(Minizip REQUIRED minizip) pkg_check_modules(Libxml2 REQUIRED libxml-2.0) pkg_check_modules(Libpcrecpp libpcrecpp) - try_compile(COLLADADOM_RESULT - PROJECT colladadom - SOURCE_DIR ${CMAKE_BINARY_DIR}/3p-colladadom-2.3-r4 - BINARY_DIR ${CMAKE_BINARY_DIR}/3p-colladadom-2.3-r4 - TARGET collada14dom - CMAKE_FLAGS - -DCMAKE_BUILD_TYPE:STRING=${CMAKE_BUILD_TYPE} - -DOPT_COLLADA14:BOOL=ON - -DCOLLADA_DOM_INCLUDE_INSTALL_DIR:FILEPATH=${LIBS_PREBUILT_DIR}/include/collada - -DCOLLADA_DOM_SOVERSION:STRING=0 - -DCOLLADA_DOM_VERSION:STRING=2.3-r4 - -DEXTRA_COMPILE_FLAGS:STRING="-I${Minizip_INCLUDE_DIRS} -I${Libxml2_INCLUDE_DIRS} -I${Libpcrecpp_INCLUDE_DIRS}" - -DCMAKE_SHARED_LINKER_FLAGS:STRING="-L${Libxml2_LIBRARY_DIRS} -l${Libxml2_LIBRARIES}" - -Dlibpcrecpp_LIBRARIES:STRING=pcrecpp - -DBoost_FILESYSTEM_LIBRARY:STRING=boost_filesystem - -DBoost_SYSTEM_LIBRARY:STRING=boost_system - OUTPUT_VARIABLE colladadom_installed - ) + if (DARWIN) + try_compile(COLLADADOM_RESULT + PROJECT colladadom + SOURCE_DIR ${CMAKE_BINARY_DIR}/3p-colladadom-2.3-r4 + BINARY_DIR ${CMAKE_BINARY_DIR}/3p-colladadom-2.3-r4 + TARGET collada14dom + CMAKE_FLAGS + -DCMAKE_BUILD_TYPE:STRING=${CMAKE_BUILD_TYPE} + -DOPT_COLLADA14:BOOL=ON + -DCOLLADA_DOM_INCLUDE_INSTALL_DIR:FILEPATH=${LIBS_PREBUILT_DIR}/include/collada + -DCOLLADA_DOM_SOVERSION:STRING=0 + -DCOLLADA_DOM_VERSION:STRING=2.3-r4 + -DEXTRA_COMPILE_FLAGS:STRING="-I${Minizip_INCLUDE_DIRS} -I${Libxml2_INCLUDE_DIRS}" + -DCMAKE_SHARED_LINKER_FLAGS:STRING="-L${Libxml2_LIBRARY_DIRS} -l${Libxml2_LIBRARIES}" + -Dlibpcrecpp_LIBRARIES:STRING=pcrecpp + -DBoost_FILESYSTEM_LIBRARY:STRING=boost_filesystem-mt + -DBoost_SYSTEM_LIBRARY:STRING=boost_system-mt + -DCMAKE_OSX_ARCHITECTURES:STRING=${CMAKE_OSX_ARCHITECTURES} + -DCMAKE_OSX_DEPLOYMENT_TARGET:STRING=10.15 + OUTPUT_VARIABLE colladadom_installed + ) + else (DARWIN) + try_compile(COLLADADOM_RESULT + PROJECT colladadom + SOURCE_DIR ${CMAKE_BINARY_DIR}/3p-colladadom-2.3-r4 + BINARY_DIR ${CMAKE_BINARY_DIR}/3p-colladadom-2.3-r4 + TARGET collada14dom + CMAKE_FLAGS + -DCMAKE_BUILD_TYPE:STRING=${CMAKE_BUILD_TYPE} + -DOPT_COLLADA14:BOOL=ON + -DCOLLADA_DOM_INCLUDE_INSTALL_DIR:FILEPATH=${LIBS_PREBUILT_DIR}/include/collada + -DCOLLADA_DOM_SOVERSION:STRING=0 + -DCOLLADA_DOM_VERSION:STRING=2.3-r4 + -DEXTRA_COMPILE_FLAGS:STRING="-I${Minizip_INCLUDE_DIRS} -I${Libxml2_INCLUDE_DIRS} -I${Libpcrecpp_INCLUDE_DIRS}" + -DCMAKE_SHARED_LINKER_FLAGS:STRING="-L${Libxml2_LIBRARY_DIRS} -l${Libxml2_LIBRARIES}" + -Dlibpcrecpp_LIBRARIES:STRING=pcrecpp + -DBoost_FILESYSTEM_LIBRARY:STRING=boost_filesystem + -DBoost_SYSTEM_LIBRARY:STRING=boost_system + OUTPUT_VARIABLE colladadom_installed + ) + endif (DARWIN) if (${COLLADADOM_RESULT}) file(REMOVE_RECURSE ${LIBS_PREBUILT_DIR}/include/collada) file( @@ -75,36 +98,15 @@ if( USESYSTEMLIBS ) ) file(WRITE ${PREBUILD_TRACKING_DIR}/colladadom_installed "0") endif (${COLLADADOM_RESULT}) - endif ( NOT DARWIN AND (${PREBUILD_TRACKING_DIR}/sentinel_installed IS_NEWER_THAN ${PREBUILD_TRACKING_DIR}/colladadom_installed OR NOT ${colladadom_installed} EQUAL 0) ) + endif( ${PREBUILD_TRACKING_DIR}/sentinel_installed IS_NEWER_THAN ${PREBUILD_TRACKING_DIR}/colladadom_installed OR NOT ${colladadom_installed} EQUAL 0 ) else( USESYSTEMLIBS ) use_system_binary( colladadom ) -endif( USESYSTEMLIBS ) -if( DARWIN OR NOT USESYSTEMLIBS ) use_prebuilt_binary(colladadom) - if( DARWIN ) - execute_process( - COMMAND lipo -archs libcollada14dom.2.3-r4.dylib - WORKING_DIRECTORY ${LIBS_PREBUILT_DIR}/lib/release - OUTPUT_VARIABLE colladadom_archs - OUTPUT_STRIP_TRAILING_WHITESPACE - ) - if( NOT ${colladadom_archs} STREQUAL ${CMAKE_OSX_ARCHITECTURES} ) - execute_process( - COMMAND lipo - libcollada14dom.2.3-r4.dylib - -thin ${CMAKE_OSX_ARCHITECTURES} - -output libcollada14dom.2.3-r4.dylib - WORKING_DIRECTORY ${LIBS_PREBUILT_DIR}/lib/release - ) - endif( NOT ${colladadom_archs} STREQUAL ${CMAKE_OSX_ARCHITECTURES} ) - endif( DARWIN ) -endif( DARWIN OR NOT USESYSTEMLIBS ) -if( NOT USESYSTEMLIBS ) use_prebuilt_binary(minizip-ng) # needed for colladadom use_prebuilt_binary(pcre) use_prebuilt_binary(libxml2) -endif( NOT USESYSTEMLIBS ) +endif( USESYSTEMLIBS ) target_link_libraries( ll::pcre INTERFACE pcrecpp pcre ) |