From 6a9cac28d3eff616806b32c795b67bc29e329344 Mon Sep 17 00:00:00 2001 From: oov Date: Thu, 8 Feb 2024 06:41:12 +0900 Subject: [PATCH] improve compatibility and usability --- .github/workflows/releaser.yml | 2 +- build.bash | 23 +++++++++++++++++++++++ src/docs/CMakeLists.txt | 28 ++++++++++++++++++++++++---- 3 files changed, 48 insertions(+), 5 deletions(-) diff --git a/.github/workflows/releaser.yml b/.github/workflows/releaser.yml index 8089ad4..4c59db5 100644 --- a/.github/workflows/releaser.yml +++ b/.github/workflows/releaser.yml @@ -23,7 +23,7 @@ jobs: - name: Build shell: bash run: | - docker run --net host --rm -i -v .:/root/repo -w /root/repo ubuntu:22.04 /bin/bash -c 'apt update && apt install -y git curl unzip pandoc && git config --system --add safe.directory "*" && LANG="C.UTF-8" TZ=JST-9 bash build.bash --skip-tests --zip' + docker run --net host --rm -i -v .:/root/repo -w /root/repo ubuntu:22.04 /bin/bash -c 'apt update && apt install -y git curl unzip && git config --system --add safe.directory "*" && LANG="C.UTF-8" TZ=JST-9 bash build.bash --skip-tests --zip' mv build/Release/dist/Release_package.zip build/Release/dist/psdtoolkit_${{ steps.get_version.outputs.tag }}.zip mv build/Release/dist/Release_package_en.zip build/Release/dist/psdtoolkit_${{ steps.get_version.outputs.tag }}_enpatched.zip - name: Create Release diff --git a/build.bash b/build.bash index 1090320..00fdb90 100644 --- a/build.bash +++ b/build.bash @@ -12,6 +12,29 @@ if [ ! -e "setup-llvm-mingw.bash" ]; then fi . setup-llvm-mingw.bash --dir $PWD +case "$(uname -s)" in + MINGW64_NT* | MINGW32_NT*) + SEVENZIP_URL="https://www.7-zip.org/a/7z2301-extra.7z" + SEVENZIP_DIR="7z-windows" + if [ ! -d "${SEVENZIP_DIR}" ]; then + filename="$(basename "${SEVENZIP_URL}")" + if [ ! -f "${filename}" ]; then + echo "Downloading: ${SEVENZIP_URL}" + curl -sOL "$SEVENZIP_URL" + fi + mkdir -p "${SEVENZIP_DIR}" + cd "${SEVENZIP_DIR}" + cmake -E tar xf "../${filename}" + cd .. + fi + export PATH="${PWD}/${SEVENZIP_DIR}:$PATH" + ;; + *) + echo "Unsupported platform: $(uname -s)" + exit 1 + ;; +esac + cd .. REBUILD=0 diff --git a/src/docs/CMakeLists.txt b/src/docs/CMakeLists.txt index af83928..8b5f452 100644 --- a/src/docs/CMakeLists.txt +++ b/src/docs/CMakeLists.txt @@ -26,15 +26,35 @@ message(STATUS "git revision: ${_git_revision}") set(version "${_git_tag} \\( ${_git_revision} \\)") -find_program(DATE_EXECUTABLE date REQUIRED CMAKE_FIND_ROOT_PATH_BOTH) -execute_process(COMMAND ${DATE_EXECUTABLE} "+%Y-%m-%d %H:%M:%S" OUTPUT_VARIABLE datetime OUTPUT_STRIP_TRAILING_WHITESPACE) +string(TIMESTAMP datetime UTC) +message(STATUS "datetime: ${datetime}") add_custom_target(make_doc ALL COMMAND ${CMAKE_COMMAND} -E copy_directory "${CMAKE_CURRENT_SOURCE_DIR}/assets" "${EXPORT_DIR}/PSDToolKitDocs/assets" COMMAND ${CMAKE_COMMAND} -E copy "${CMAKE_CURRENT_SOURCE_DIR}/rootindex.html" "${EXPORT_DIR}/PSDToolKit説明書.html" ) -find_program(PANDOC_EXECUTABLE pandoc REQUIRED CMAKE_FIND_ROOT_PATH_BOTH) +set(PANDOC_VERSION "3.1.11.1") +set(PANDOC_DIR "${CMAKE_CURRENT_BINARY_DIR}/pandoc-${PANDOC_VERSION}") +if (CMAKE_HOST_WIN32) + set(PANDOC_URL "https://github.com/jgm/pandoc/releases/download/${PANDOC_VERSION}/pandoc-${PANDOC_VERSION}-windows-x86_64.zip") + set(PANDOC_EXE "${PANDOC_DIR}/pandoc.exe") +else() + set(PANDOC_URL "https://github.com/jgm/pandoc/releases/download/${PANDOC_VERSION}/pandoc-${PANDOC_VERSION}-linux-amd64.tar.gz") + set(PANDOC_EXE "${PANDOC_DIR}/bin/pandoc") +endif() +string(REGEX MATCH "[^/]+$" PANDOC_ARCHIVE_NAME "${PANDOC_URL}") +set(PANDOC_ARCHIVE_PATH "${CMAKE_CURRENT_BINARY_DIR}/${PANDOC_ARCHIVE_NAME}") +if(NOT EXISTS "${PANDOC_ARCHIVE_PATH}") + file(DOWNLOAD "${PANDOC_URL}" "${PANDOC_ARCHIVE_PATH}") +endif() +if(NOT EXISTS "${PANDOC_DIR}") + execute_process( + COMMAND ${CMAKE_COMMAND} -E tar xf ${PANDOC_ARCHIVE_PATH} + WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}" + ) +endif() + macro(add_page id title) if("${id}" STREQUAL "psd") set(additional_script "script=assets/script-builder.js") @@ -43,7 +63,7 @@ macro(add_page id title) endif() add_custom_target(make_doc_page_${id} COMMAND ${CMAKE_COMMAND} -E make_directory "${EXPORT_DIR}/PSDToolKitDocs/" - COMMAND ${PANDOC_EXECUTABLE} + COMMAND ${PANDOC_EXE} "${CMAKE_CURRENT_SOURCE_DIR}/${id}.md" -o "${EXPORT_DIR}/PSDToolKitDocs/${id}.html" -f gfm