summaryrefslogtreecommitdiff
path: root/indra/cmake/Meshoptimizer.cmake
diff options
context:
space:
mode:
authorErik Kundiman <erik@megapahit.org>2024-08-13 11:29:14 +0800
committerErik Kundiman <erik@megapahit.org>2024-08-13 12:18:37 +0800
commit3d2c32c80562106169b78305315e2bd5945fdf09 (patch)
tree71dbac8c55b78f0daa361109f3c064d9d92a000d /indra/cmake/Meshoptimizer.cmake
parent07420ece4ae38c446ad58c3c3959cce5e00a6cf1 (diff)
CMake file & try_compile replacing execute_process
file(DOWNLOAD) replacing execute_process(COMMAND curl), file(ARCHIVE_EXTRACT) replacing execute_process(COMMAND tar xf), file(MAKE_DIRECTORY) replacing execute_process(COMMAND mkdir -p), file(COPY) replacing execute_process(COMMAND cp), file(RENAME) replacing execute_process(COMMAND mv), try_compile replacing execute_process(COMMAND cmake/make), LIBS_PREBUILT_DIR replacing AUTOBUILD_INSTALL_DIR, 0 replacing ${${_binary}_installed} where appropriate, no FMOD reinstallation when it's already installed, and archives & unarchived source/build directories are in CMake root binary directory, instead of /tmp. SHOW_PROGRESS is on for downloading Dullahan from the Megapahit website cause it can be slow.
Diffstat (limited to 'indra/cmake/Meshoptimizer.cmake')
-rw-r--r--indra/cmake/Meshoptimizer.cmake70
1 files changed, 36 insertions, 34 deletions
diff --git a/indra/cmake/Meshoptimizer.cmake b/indra/cmake/Meshoptimizer.cmake
index 1e95dfdc01..9098dc38e1 100644
--- a/indra/cmake/Meshoptimizer.cmake
+++ b/indra/cmake/Meshoptimizer.cmake
@@ -18,47 +18,49 @@ endif (NOT USESYSTEMLIBS)
if (${LINUX_DISTRO} MATCHES fedora OR DARWIN OR NOT USESYSTEMLIBS)
if (USESYSTEMLIBS)
if (${PREBUILD_TRACKING_DIR}/sentinel_installed IS_NEWER_THAN ${PREBUILD_TRACKING_DIR}/meshoptimizer_installed OR NOT ${meshoptimizer_installed} EQUAL 0)
- execute_process(
- COMMAND mkdir -p ${AUTOBUILD_INSTALL_DIR}/include/meshoptimizer
- COMMAND curl
- -L https://github.com/zeux/meshoptimizer/archive/refs/tags/v0.21.tar.gz
- -o meshoptimizer-0.21.tar.gz
- WORKING_DIRECTORY $ENV{HOME}/Downloads
+ file(MAKE_DIRECTORY ${LIBS_PREBUILT_DIR}/include/meshoptimizer)
+ file(DOWNLOAD
+ https://github.com/zeux/meshoptimizer/archive/refs/tags/v0.21.tar.gz
+ ${CMAKE_BINARY_DIR}/meshoptimizer-0.21.tar.gz
)
- execute_process(
- COMMAND tar xf $ENV{HOME}/Downloads/meshoptimizer-0.21.tar.gz
- WORKING_DIRECTORY /tmp
- )
- execute_process(
- COMMAND cmake
- -DCMAKE_BUILD_TYPE:STRING=${CMAKE_BUILD_TYPE}
- .
- WORKING_DIRECTORY /tmp/meshoptimizer-0.21
+ file(ARCHIVE_EXTRACT
+ INPUT ${CMAKE_BINARY_DIR}/meshoptimizer-0.21.tar.gz
+ DESTINATION ${CMAKE_BINARY_DIR}
)
if (DARWIN)
- execute_process(
- COMMAND cmake
+ try_compile(MESHOPTIMIZER_RESULT
+ PROJECT meshoptimizer
+ SOURCE_DIR ${CMAKE_BINARY_DIR}/meshoptimizer-0.21
+ BINARY_DIR ${CMAKE_BINARY_DIR}/meshoptimizer-0.21
+ TARGET meshoptimizer
+ CMAKE_FLAGS
+ -DCMAKE_BUILD_TYPE:STRING=${CMAKE_BUILD_TYPE}
-DCMAKE_OSX_ARCHITECTURES:STRING=${CMAKE_OSX_ARCHITECTURES}
-DCMAKE_OSX_DEPLOYMENT_TARGET:STRING=10.15
- .
- WORKING_DIRECTORY /tmp/meshoptimizer-0.21
+ OUTPUT_VARIABLE meshoptimizer_installed
+ )
+ else (DARWIN)
+ try_compile(MESHOPTIMIZER_RESULT
+ PROJECT meshoptimizer
+ SOURCE_DIR ${CMAKE_BINARY_DIR}/meshoptimizer-0.21
+ BINARY_DIR ${CMAKE_BINARY_DIR}/meshoptimizer-0.21
+ TARGET meshoptimizer
+ CMAKE_FLAGS
+ -DCMAKE_BUILD_TYPE:STRING=${CMAKE_BUILD_TYPE}
+ OUTPUT_VARIABLE meshoptimizer_installed
)
endif (DARWIN)
- execute_process(
- COMMAND make -j${MAKE_JOBS}
- WORKING_DIRECTORY /tmp/meshoptimizer-0.21
- )
- execute_process(
- COMMAND cp src/meshoptimizer.h ${AUTOBUILD_INSTALL_DIR}/include/meshoptimizer/
- COMMAND cp libmeshoptimizer.a ${AUTOBUILD_INSTALL_DIR}/lib/release/
- WORKING_DIRECTORY /tmp/meshoptimizer-0.21
- )
- execute_process(
- COMMAND rm -rf meshoptimizer-0.21
- WORKING_DIRECTORY /tmp
- RESULT_VARIABLE meshoptimizer_installed
- )
- file(WRITE ${PREBUILD_TRACKING_DIR}/meshoptimizer_installed "${meshoptimizer_installed}")
+ if (${MESHOPTIMIZER_RESULT})
+ file(
+ COPY ${CMAKE_BINARY_DIR}/meshoptimizer-0.21/src/meshoptimizer.h
+ DESTINATION ${LIBS_PREBUILT_DIR}/include/meshoptimizer
+ )
+ file(
+ COPY ${CMAKE_BINARY_DIR}/meshoptimizer-0.21/libmeshoptimizer.a
+ DESTINATION ${LIBS_PREBUILT_DIR}/lib/release
+ )
+ file(WRITE ${PREBUILD_TRACKING_DIR}/meshoptimizer_installed "${meshoptimizer_installed}")
+ endif (${MESHOPTIMIZER_RESULT})
endif (${PREBUILD_TRACKING_DIR}/sentinel_installed IS_NEWER_THAN ${PREBUILD_TRACKING_DIR}/meshoptimizer_installed OR NOT ${meshoptimizer_installed} EQUAL 0)
else (USESYSTEMLIBS)
use_prebuilt_binary(meshoptimizer)