54 lines
2.1 KiB
CMake
54 lines
2.1 KiB
CMake
set(cmake_version $ENV{CMAKE_VERSION})
|
|
set(ninja_version $ENV{NINJA_VERSION})
|
|
|
|
if(RUNNER_OS STREQUAL "Windows")
|
|
set(ninja_suffix "win.zip")
|
|
set(cmake_suffix "win64-x64.zip")
|
|
set(cmake_dir "cmake-${cmake_version}-win64-x64/bin")
|
|
elseif(RUNNER_OS STREQUAL "Linux")
|
|
set(ninja_suffix "linux.zip")
|
|
set(cmake_suffix "Linux-x86_64.tar.gz")
|
|
set(cmake_dir "cmake-${cmake_version}-Linux-x86_64/bin")
|
|
elseif(RUNNER_OS STREQUAL "macOS")
|
|
set(ninja_suffix "mac.zip")
|
|
set(cmake_suffix "Darwin-x86_64.tar.gz")
|
|
set(cmake_dir "cmake-${cmake_version}-Darwin-x86_64/CMake.app/Contents/bin")
|
|
endif()
|
|
|
|
set(cmake_url "https://github.com/Kitware/CMake/releases/download/v${cmake_version}/cmake-${cmake_version}-${cmake_suffix}")
|
|
file(DOWNLOAD "${cmake_url}" ./cmake.zip)
|
|
execute_process(COMMAND ${CMAKE_COMMAND} -E tar xvf ./cmake.zip OUTPUT_QUIET)
|
|
message(STATUS "Installed CMake")
|
|
|
|
set(ninja_url "https://github.com/ninja-build/ninja/releases/download/v${ninja_version}/ninja-${ninja_suffix}")
|
|
file(DOWNLOAD "${ninja_url}" ./ninja.zip)
|
|
execute_process(COMMAND ${CMAKE_COMMAND} -E tar xvf ./ninja.zip OUTPUT_QUIET)
|
|
message(STATUS "Installed Ninja")
|
|
|
|
set(export_script "#!/bin/sh\n")
|
|
|
|
file(TO_CMAKE_PATH "${CMAKE_SOURCE_DIR}/${cmake_dir}" cmake_dir)
|
|
file(TO_CMAKE_PATH "${CMAKE_SOURCE_DIR}/ninja" ninja_out)
|
|
|
|
function(echo MESSAGE)
|
|
execute_process(COMMAND ${CMAKE_COMMAND} -E echo "${MESSAGE}")
|
|
endfunction()
|
|
|
|
set(export_script "${export_script}export CTEST=\"${cmake_dir}/ctest\"\n")
|
|
echo("::set-output name=ctest::${cmake_dir}/ctest")
|
|
message(STATUS "ctest path: ${cmake_dir}/ctest")
|
|
|
|
set(export_script "${export_script}export CMAKE=\"${cmake_dir}/cmake\"\n")
|
|
echo("::set-output name=cmake::${cmake_dir}/cmake")
|
|
message(STATUS "cmake path: ${cmake_dir}/cmake")
|
|
|
|
set(export_script "${export_script}export NINJA=\"${ninja_out}\"\n")
|
|
echo("::set-output name=ninja::${ninja_out}")
|
|
message(STATUS "ninja path: ${ninja_out}")
|
|
|
|
file(WRITE export.sh "${export_script}")
|
|
|
|
if (NOT RUNNER_OS STREQUAL "Windows")
|
|
execute_process(COMMAND chmod +x ninja export.sh "${cmake_dir}/cmake" "${cmake_dir}/ctest")
|
|
endif()
|