3rdParty-devel/CMakeLists.txt: Use CMake for rhash

Upstream rhash relies on a configure script, which is not portable to
non-POSIX platforms such as Windows.

Note: CMake support in rhash is only experimental [1] and currently
relies on in-house patches introduced by previous commits.

[1]: https://github.com/rhash/RHash/pull/103


git-svn-id: https://svn.code.sf.net/p/speed-dreams/code/trunk@9570 30fe4595-0a0c-4342-8851-515496e4dcbd

Former-commit-id: f0888f552555ee6338877097ad5d98f2903886be
Former-commit-id: 0ff2548c35a6e833d74873cf8f34ab7fb61ff9fb
This commit is contained in:
xavi92 2024-10-27 07:46:09 +00:00
parent e31ceadeb0
commit 410222311e

View file

@ -588,24 +588,32 @@ else()
endif()
if(OPTION_RHASH)
set(RHASH_ARGS ${EXTERNALS_CMAKE_ARGS} -D CMAKE_DEBUG_POSTFIX='')
set(RHASH_ARGS ${EXTERNALS_CMAKE_ARGS} -D USE_GETTEXT=OFF)
ExternalProject_Add(${RHASH_PROJECT}
URL ${RHASH_URL}
URL_HASH ${RHASH_HASH}
BINARY_DIR
# rhash does not support out-of-tree builds.
${EXTERNALS_PREFIX}/Source/${RHASH_PROJECT}
CONFIGURE_COMMAND
./configure
--prefix=${EXTERNALS_INSTALL_DIR}
--cc=${CMAKE_C_COMPILER}
--enable-lib-shared
--disable-lib-static
BUILD_COMMAND
make lib-shared LIBRHASH_SHARED=librhash.dll
INSTALL_COMMAND
make install-lib-shared LIBRHASH_SHARED=librhash.dll
)
CMAKE_ARGS ${RHASH_ARGS})
ExternalProject_Add_Step(${RHASH_PROJECT} rhash_add_cmake
COMMAND ${CMAKE_COMMAND} -E copy_if_different
"${CMAKE_SOURCE_DIR}/patches/rhash/CMakeLists.txt"
"<SOURCE_DIR>/CMakeLists.txt"
DEPENDEES update # do after update
DEPENDERS patch) # do before patch
ExternalProject_Add_Step(${RHASH_PROJECT} rhash_add_rhash_tohex
COMMAND ${CMAKE_COMMAND} -E copy_if_different
"${CMAKE_SOURCE_DIR}/patches/rhash/rhash-tohex.cmake"
"<SOURCE_DIR>/rhash-tohex.cmake"
DEPENDEES update # do after update
DEPENDERS patch) # do before patch
ExternalProject_Add_Step(${RHASH_PROJECT} rhash_add_lib_cmake
COMMAND ${CMAKE_COMMAND} -E copy_if_different
"${CMAKE_SOURCE_DIR}/patches/rhash/librhash/CMakeLists.txt"
"<SOURCE_DIR>/librhash/CMakeLists.txt"
DEPENDEES update # do after update
DEPENDERS patch) # do before patch
else()
set(RHASH_PROJECT )
endif()