diff --git a/build_nano.cmake b/build_nano.cmake new file mode 100644 index 0000000..9297827 --- /dev/null +++ b/build_nano.cmake @@ -0,0 +1,41 @@ +# download, build, install nano text editor +# requires Autotools and GNU Make + +cmake_minimum_required(VERSION 3.19) + +set(CMAKE_EXECUTE_PROCESS_COMMAND_ECHO STDOUT) + +file(READ ${CMAKE_CURRENT_LIST_DIR}/scripts/versions.json _j) +string(JSON version GET ${_j} "nano") + +set(stem nano-${version}) +set(prefix "~/${stem}") +get_filename_component(prefix ${prefix} ABSOLUTE) + +option(CMAKE_TLS_VERIFY "verify certificates" true) + +execute_process(COMMAND mktemp -d OUTPUT_VARIABLE bindir OUTPUT_STRIP_TRAILING_WHITESPACE) + +set(name ${stem}.tar.xz) +set(url https://nano-editor.org/dist/latest/${name}) +set(archive ${bindir}/${name}) + +if(NOT EXISTS ${archive}) + message(STATUS "${url} => ${archive}") + file(DOWNLOAD ${url} ${archive} INACTIVITY_TIMEOUT 60) + file(ARCHIVE_EXTRACT INPUT ${archive} DESTINATION ${bindir}) +endif() + +set(src ${bindir}/${stem}) + +execute_process(COMMAND ${src}/configure --prefix ${prefix} +WORKING_DIRECTORY ${src} +COMMAND_ERROR_IS_FATAL ANY +) +# need WORKING_DIRECTORY to generate Makefile appropriately + +execute_process(COMMAND make -j -C ${src} COMMAND_ERROR_IS_FATAL ANY) + +execute_process(COMMAND make -j -C ${src} install COMMAND_ERROR_IS_FATAL ANY) + +message(STATUS "Please add ${prefix}/bin to environment variable PATH") diff --git a/build_zstd.cmake b/build_zstd.cmake index ea60464..04b7738 100644 --- a/build_zstd.cmake +++ b/build_zstd.cmake @@ -1,6 +1,6 @@ cmake_minimum_required(VERSION 3.21) -file(READ ${CMAKE_CURRENT_LIST_DIR}/versions.json _j) +file(READ ${CMAKE_CURRENT_LIST_DIR}/scripts/versions.json _j) string(JSON zstd_version GET ${_j} zstd) cmake_path(SET prefix "~/zstd-${zstd_version}") diff --git a/oneapi_cmake.cmake b/oneapi.cmake similarity index 100% rename from oneapi_cmake.cmake rename to oneapi.cmake diff --git a/scripts/versions.json b/scripts/versions.json index 0464db2..4a43c4a 100644 --- a/scripts/versions.json +++ b/scripts/versions.json @@ -28,5 +28,6 @@ "3.1": "3.1.3" }, "ninja": "1.11.1", - "zstd": "1.5.2" + "nano": "7.2", + "zstd": "1.5.5" }