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)