summaryrefslogtreecommitdiff
path: root/indra/cmake
diff options
context:
space:
mode:
authorErik Kundiman <erik@megapahit.org>2024-08-31 07:45:27 +0800
committerErik Kundiman <erik@megapahit.org>2024-08-31 07:50:30 +0800
commit6bc9ec41ddd0191748ef938909a3ed192c9e59cd (patch)
treeef4fad8f8f00ece8f25c919313d9e0fd42063448 /indra/cmake
parentd604302d942d26ccfd8e0e5de548fa437d1425d5 (diff)
Revert Linux/BSD to use system Collada DOM for now
Turns out getting 2.3 compiled on those platforms need a lot more attention. Apart from that, the compilation result variable name got fixed, the prebuilt include directory got fixed, and pkg-config-ing minizip, libpcrecpp and libxml-2.0 so we can make have generic variable arguments to pass to Collada DOM's CMake settings.
Diffstat (limited to 'indra/cmake')
-rw-r--r--indra/cmake/LLPrimitive.cmake40
1 files changed, 29 insertions, 11 deletions
diff --git a/indra/cmake/LLPrimitive.cmake b/indra/cmake/LLPrimitive.cmake
index 8174e8a851..ed57d6ed89 100644
--- a/indra/cmake/LLPrimitive.cmake
+++ b/indra/cmake/LLPrimitive.cmake
@@ -18,6 +18,16 @@ if( USE_CONAN )
"${CONAN_INCLUDE_DIRS_COLLADADOM}/collada-dom/1.4/" )
endif()
+if(LINUX OR CMAKE_SYSTEM_NAME MATCHES FreeBSD )
+ 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(LINUX OR CMAKE_SYSTEM_NAME MATCHES FreeBSD )
+
if( (${PREBUILD_TRACKING_DIR}/sentinel_installed IS_NEWER_THAN ${PREBUILD_TRACKING_DIR}/colladadom_installed OR NOT ${colladadom_installed} EQUAL 0) AND USESYSTEMLIBS )
if (NOT EXISTS ${CMAKE_BINARY_DIR}/3p-colladadom-2.3-r4.tar.gz)
file(DOWNLOAD
@@ -29,6 +39,12 @@ if( (${PREBUILD_TRACKING_DIR}/sentinel_installed IS_NEWER_THAN ${PREBUILD_TRACKI
INPUT ${CMAKE_BINARY_DIR}/3p-colladadom-2.3-r4.tar.gz
DESTINATION ${CMAKE_BINARY_DIR}
)
+
+ file(MAKE_DIRECTORY ${LIBS_PREBUILT_DIR}/include/collada/1.4)
+ include(FindPkgConfig)
+ pkg_check_modules(Minizip REQUIRED minizip)
+ pkg_check_modules(Libxml2 REQUIRED libxml-2.0)
+ pkg_check_modules(Libpcrecpp libpcrecpp)
if (DARWIN)
try_compile(COLLADADOM_RESULT
PROJECT colladadom
@@ -38,16 +54,14 @@ if( (${PREBUILD_TRACKING_DIR}/sentinel_installed IS_NEWER_THAN ${PREBUILD_TRACKI
CMAKE_FLAGS
-DCMAKE_BUILD_TYPE:STRING=${CMAKE_BUILD_TYPE}
-DOPT_COLLADA14:BOOL=ON
- -DCOLLADA_DOM_INCLUDE_INSTALL_DIR:FILEPATH=${LIBS_PREBUILT_DIR}/include/colladadom
+ -DCOLLADA_DOM_INCLUDE_INSTALL_DIR:FILEPATH=${LIBS_PREBUILT_DIR}/include/collada
-DCOLLADA_DOM_SOVERSION:STRING=0
-DCOLLADA_DOM_VERSION:STRING=2.3-r4
- -Dlibpcrecpp_LIBRARIES:STRING=pcrecpp
- -DZLIB_LIBRARIES:STRING=xml2
+ -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="${Libpcrecpp_LIBRARIES}"
-DBoost_FILESYSTEM_LIBRARY:STRING=boost_filesystem-mt
-DBoost_SYSTEM_LIBRARY:STRING=boost_system-mt
- -DEXTRA_COMPILE_FLAGS:STRING=-I/opt/local/include/minizip
- -DBoost_CFLAGS:STRING=-I/opt/local/include
- -DCMAKE_SHARED_LINKER_FLAGS:STRING=-L/opt/local/lib
-DCMAKE_OSX_ARCHITECTURES:STRING=${CMAKE_OSX_ARCHITECTURES}
-DCMAKE_OSX_DEPLOYMENT_TARGET:STRING=10.15
OUTPUT_VARIABLE colladadom_installed
@@ -61,25 +75,29 @@ if( (${PREBUILD_TRACKING_DIR}/sentinel_installed IS_NEWER_THAN ${PREBUILD_TRACKI
CMAKE_FLAGS
-DCMAKE_BUILD_TYPE:STRING=${CMAKE_BUILD_TYPE}
-DOPT_COLLADA14:BOOL=ON
- -DCOLLADA_DOM_INCLUDE_INSTALL_DIR:FILEPATH=${LIBS_PREBUILT_DIR}/include/colladadom
+ -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
- -DZLIB_LIBRARIES:STRING=xml2
+ -DBoost_FILESYSTEM_LIBRARY:STRING=boost_filesystem
+ -DBoost_SYSTEM_LIBRARY:STRING=boost_system
OUTPUT_VARIABLE colladadom_installed
)
endif (DARWIN)
- if (${MESHOPTIMIZER_RESULT})
+ if (${COLLADADOM_RESULT})
+ file(REMOVE_RECURSE ${LIBS_PREBUILT_DIR}/include/collada)
file(
COPY ${CMAKE_BINARY_DIR}/3p-colladadom-2.3-r4/dom/include
- DESTINATION ${LIBS_PREBUILT_DIR}/include/colladadom
+ DESTINATION ${LIBS_PREBUILT_DIR}/include/collada
)
file(
COPY ${CMAKE_BINARY_DIR}/3p-colladadom-2.3-r4/dom/libcollada14dom.a
DESTINATION ${LIBS_PREBUILT_DIR}/lib/release
)
file(WRITE ${PREBUILD_TRACKING_DIR}/colladadom_installed "0")
- endif (${MESHOPTIMIZER_RESULT})
+ endif (${COLLADADOM_RESULT})
else( (${PREBUILD_TRACKING_DIR}/sentinel_installed IS_NEWER_THAN ${PREBUILD_TRACKING_DIR}/colladadom_installed OR NOT ${colladadom_installed} EQUAL 0) AND USESYSTEMLIBS )
use_system_binary( colladadom )