# cmake/FetchDependenciesLinux.cmake set(THIRDPARTY_DIR "${CMAKE_CURRENT_LIST_DIR}/../thirdparty") if(NOT EXISTS "${THIRDPARTY_DIR}") file(MAKE_DIRECTORY "${THIRDPARTY_DIR}") endif() macro(check_and_download URL ARCHIVE_NAME EXTRACTED_DIR_NAME CHECK_FILE) set(ARCHIVE_PATH "${THIRDPARTY_DIR}/${ARCHIVE_NAME}") set(SRC_PATH "${THIRDPARTY_DIR}/${EXTRACTED_DIR_NAME}") if(NOT EXISTS "${ARCHIVE_PATH}") message(STATUS "Downloading ${ARCHIVE_NAME}...") file(DOWNLOAD "${URL}" "${ARCHIVE_PATH}" SHOW_PROGRESS) endif() if(NOT EXISTS "${SRC_PATH}/${CHECK_FILE}") message(STATUS "Extracting ${ARCHIVE_NAME}...") execute_process( COMMAND ${CMAKE_COMMAND} -E tar xvf "${ARCHIVE_PATH}" WORKING_DIRECTORY "${THIRDPARTY_DIR}" ) endif() endmacro() # 1) sol2 (header-only C++ bindings for Lua) check_and_download("https://github.com/ThePhD/sol2/archive/refs/tags/v3.3.0.zip" "sol2-v3.3.0.zip" "sol2-3.3.0" "include/sol/sol.hpp")