• Husky Cmake is broken

    From Nil A@2:5015/46 to All on Sat Dec 30 23:53:16 2023
    Hello, All!

    В коем-то веке решил хаски собрать. Так то у меня были cmake свои, но мёрдж не случился, слишком много поменялось в репе.
    Думал, ну кто-то взялся починить, должно всё работать, а тут такие косяки сразу, во всех репозиториях.

    fatal: not a git repository (or any of the parent directories): .git
    CMake Error at fidoconf/CMakeLists.txt:175 (string):
    string sub-command REGEX, mode REPLACE needs at least 6 arguments total to
    command.

    Вот здесь
    string(REGEX REPLACE "-" "" CPACK_PACKAGE_VERSION_PATCH ${CPACK_PACKAGE_VERSION_PATCH})

    % cmake --version
    cmake version 3.28.1

    P.S. Я написал корневой CMakeLists.txt, который тупо делает
    project(husky VERSION 1.9 LANGUAGES C)
    add_compile_options(тут всяко разно)
    add_subdirectory(areafix)
    add_subdirectory(fidoconf)
    add_subdirectory(hpt)
    add_subdirectory(hptzip)
    add_subdirectory(htick)
    add_subdirectory(huskylib)
    add_subdirectory(smapi)
    add_subdirectory(sqpack)

    Всё что мне требуется от husky чтобы собирать бинари.

    P.P.S. Ещё я использую хаски как библиотеку, тогда я её к себе в проект затаскиваю примерно так
    # Import Husky libraries
    include(FetchContent)
    message(STATUS "Importing huskylib library from github")
    FetchContent_Declare(
    huskylib
    GIT_REPOSITORY https://github.com/huskyproject/huskylib.git
    GIT_TAG 624f968239f5c0dac48ac25bc14c2557472afb52
    # Patch command will ru-run every cmake reload, so the patch should not return an error.
    # This fix won't work in Windows environment.
    #PATCH_COMMAND patch -Np1 < ${CMAKE_CURRENT_LIST_DIR}/huskylib.patch
    PATCH_COMMAND ${GIT_EXECUTABLE} apply --ignore-whitespace "${CMAKE_CURRENT_LIST_DIR}/huskylib.patch" || true
    )
    FetchContent_Populate(huskylib)
    # replace the cmake file
    #file(COPY_FILE CMakeLists_huskylib.txt ${huskylib_SOURCE_DIR}/CMakeLists.txt) # requires newer cmake
    configure_file(CMakeLists_huskylib.txt ${huskylib_SOURCE_DIR}/CMakeLists.txt COPYONLY)
    # generate the date file, content is not that important
    file(WRITE ${huskylib_SOURCE_DIR}/cvsdate.h "char cvs_date[]=\"2023-01-01\";") # delete the version file which confuses the MacOSX12.sdk/usr/include/c++/v1/cstddef
    file(REMOVE ${huskylib_SOURCE_DIR}/version) add_subdirectory(${huskylib_SOURCE_DIR} huskylib)

    Понятно, что мне приходится патчить cmake, потому из-коробки он не срабатывает как библиотека, но зато потом я просто
    target_link_libraries(мой_бинарь PRIVATE smapi huskylib)

    Best Regards, Nil
    --- GoldED+/LNX 1.1.5
    * Origin: Linux 2.6.32-042stab145.3 (2:5015/46)