[boinc] Add new port (#19659)

Signed-off-by: Vitalii Koshura <lestat.de.lionkur@gmail.com>
This commit is contained in:
Vitalii Koshura 2021-09-10 22:37:39 +02:00 committed by GitHub
parent 6676fce90e
commit e0aee0ddcf
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 313 additions and 0 deletions

233
ports/boinc/CMakeLists.txt Normal file
View File

@ -0,0 +1,233 @@
cmake_minimum_required(VERSION 3.20)
project(boinc)
find_package(OpenSSL REQUIRED)
set(LIBBOINC_HEADERS_WIN
lib/boinc_win.h
lib/diagnostics_win.h
lib/idlemon.h
lib/stackwalker_imports.h
lib/stackwalker_win.h
)
set(LIBBOINC_HEADERS_UNIX
lib/synch.h
lib/unix_util.h
)
set(LIBBOINC_HEADERS_APPLE
lib/mac/dyld_gdb.h
lib/mac/mac_backtrace.h
lib/mac/mac_spawn.h
lib/mac/QBacktrace.h
lib/mac/QCrashReport.h
lib/mac/QMachOImage.h
lib/mac/QMachOImageList.h
lib/mac/QSymbols.h
lib/mac/QTaskMemory.h
lib/mac/mac_branding.h
)
set(LIBBOINC_HEADERS_GENERIC
lib/app_ipc.h
lib/base64.h
lib/cal_boinc.h
lib/cc_config.h
lib/cert_sig.h
lib/common_defs.h
lib/coproc.h
lib/crypt.h
lib/diagnostics.h
lib/error_numbers.h
lib/filesys.h
lib/hostinfo.h
lib/keyword.h
lib/md5.h
lib/md5_file.h
lib/mem_usage.h
lib/mfile.h
lib/miofile.h
lib/network.h
lib/notice.h
lib/opencl_boinc.h
lib/parse.h
lib/prefs.h
lib/proc_control.h
lib/procinfo.h
lib/project_init.h
lib/proxy_info.h
lib/std_fixes.h
lib/str_replace.h
lib/str_util.h
lib/url.h
lib/util.h
lib/win_util.h
lib/wslinfo.h
)
set(LIBBOINC_SOURCES_WIN
lib/boinc_win.cpp
lib/diagnostics_win.cpp
lib/idlemon_win.cpp
lib/procinfo_win.cpp
lib/stackwalker_win.cpp
lib/win_util.cpp
)
set(LIBBOINC_SOURCES_UNIX
lib/procinfo_unix.cpp
lib/synch.cpp
lib/unix_util.cpp
)
set(LIBBOINC_SOURCES_APPLE
lib/procinfo_mac.cpp
lib/mac/mac_backtrace.cpp
lib/mac/mac_spawn.cpp
lib/mac/QBacktrace.c
lib/mac/QCrashReport.c
lib/mac/QMachOImage.c
lib/mac/QMachOImageList.c
lib/mac/QSymbols.c
lib/mac/QTaskMemory.c
lib/mac/mac_branding.cpp
)
set(LIBBOINC_SOURCES_GENERIC
lib/app_ipc.cpp
lib/base64.cpp
lib/cc_config.cpp
lib/cert_sig.cpp
lib/coproc.cpp
lib/crypt.cpp
lib/diagnostics.cpp
lib/filesys.cpp
lib/hostinfo.cpp
lib/keyword.cpp
lib/md5.cpp
lib/md5_file.cpp
lib/mem_usage.cpp
lib/mfile.cpp
lib/miofile.cpp
lib/network.cpp
lib/notice.cpp
lib/opencl_boinc.cpp
lib/parse.cpp
lib/prefs.cpp
lib/proc_control.cpp
lib/procinfo.cpp
lib/project_init.cpp
lib/proxy_info.cpp
lib/shmem.cpp
lib/str_util.cpp
lib/url.cpp
lib/util.cpp
lib/wslinfo.cpp
)
set(LIBBOINCAPI_HEADERS
api/boinc_api.h
)
set(LIBBOINCAPI_SOURCES_WIN
lib/boinc_win.cpp
)
set(LIBBOINCAPI_SOURCES_GENERIC
api/boinc_api.cpp
)
if(APPLE)
set(LIBBOINC_HEADERS ${LIBBOINC_HEADERS_GENERIC} ${LIBBOINC_HEADERS_APPLE})
set(LIBBOINC_SOURCES ${LIBBOINC_SOURCES_GENERIC} ${LIBBOINC_SOURCES_APPLE})
set(LIBBOINCAPI_SOURCES ${LIBBOINCAPI_SOURCES_GENERIC})
elseif(WIN32)
set(LIBBOINC_HEADERS ${LIBBOINC_HEADERS_GENERIC} ${LIBBOINC_HEADERS_WIN})
set(LIBBOINC_SOURCES ${LIBBOINC_SOURCES_GENERIC} ${LIBBOINC_SOURCES_WIN})
set(LIBBOINCAPI_SOURCES ${LIBBOINCAPI_SOURCES_GENERIC} ${LIBBOINCAPI_SOURCES_WIN})
elseif(UNIX)
set(LIBBOINC_HEADERS ${LIBBOINC_HEADERS_GENERIC} ${LIBBOINC_HEADERS_UNIX})
set(LIBBOINC_SOURCES ${LIBBOINC_SOURCES_GENERIC} ${LIBBOINC_SOURCES_UNIX})
set(LIBBOINCAPI_SOURCES ${LIBBOINCAPI_SOURCES_GENERIC})
endif()
add_library(boinc ${LIBBOINC_SOURCES})
add_library(boincapi ${LIBBOINCAPI_SOURCES})
if(WIN32 OR APPLE)
set_target_properties(boinc PROPERTIES PREFIX "lib")
set_target_properties(boinc PROPERTIES IMPORT_PREFIX "lib")
set_target_properties(boincapi PROPERTIES PREFIX "lib")
set_target_properties(boincapi PROPERTIES IMPORT_PREFIX "lib")
endif()
if(APPLE)
target_include_directories(boinc PUBLIC
$<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/lib/mac>
$<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/clientgui/mac>
)
target_include_directories(boincapi PUBLIC
$<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/lib/mac>
$<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/clientgui/mac>
)
elseif(WIN32)
target_compile_definitions(boinc PUBLIC
-D_CRT_SECURE_NO_WARNINGS
-DWIN32
-D_CONSOLE
)
target_compile_definitions(boincapi PUBLIC
-D_CRT_SECURE_NO_WARNINGS
-DWIN32
-D_CONSOLE
)
target_include_directories(boinc PUBLIC
$<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/win_build>
)
target_include_directories(boincapi PUBLIC
$<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/win_build>
)
elseif(UNIX)
target_include_directories(boinc PUBLIC
$<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/config-h-${CMAKE_BUILD_TYPE}>
)
target_include_directories(boincapi PUBLIC
$<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/config-h-${CMAKE_BUILD_TYPE}>
)
endif()
target_include_directories(boinc PUBLIC
$<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}>
$<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/lib>
$<INSTALL_INTERFACE:include>
)
target_include_directories(boincapi PUBLIC
$<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}>
$<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}>/lib
$<INSTALL_INTERFACE:include>
)
target_link_libraries(boinc PRIVATE
OpenSSL::SSL
OpenSSL::Crypto
)
install(TARGETS boinc boincapi EXPORT boinc-config
RUNTIME DESTINATION bin
ARCHIVE DESTINATION lib
LIBRARY DESTINATION lib
)
install(FILES ${LIBBOINC_HEADERS} ${LIBBOINCAPI_HEADERS} DESTINATION include/boinc)
install(EXPORT boinc-config NAMESPACE unofficial::boinc:: DESTINATION share/boinc)

View File

@ -0,0 +1,49 @@
vcpkg_check_linkage(ONLY_STATIC_LIBRARY)
if(VCPKG_TARGET_IS_WINDOWS)
vcpkg_fail_port_install(ON_TARGET "UWP" ON_ARCH "arm")
endif()
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO BOINC/boinc
REF client_release/7.18/7.18.1
SHA512 200587a0896aec6a7e7247132811141909aa333cb2bb9350c5ba016ffdf056413b1c5346361b311c087634b2d29cdbb204486385d8561a299b68739244c5a532
HEAD_REF master
)
file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH})
if(VCPKG_TARGET_IS_LINUX)
vcpkg_configure_make(
SOURCE_PATH ${SOURCE_PATH}
AUTOCONFIG
NO_ADDITIONAL_PATHS
OPTIONS
${OPTIONS}
--disable-server
--disable-client
--disable-manager
)
if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release")
file(COPY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/config.h DESTINATION ${SOURCE_PATH}/config-h-Release)
endif()
if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug")
file(COPY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/config.h DESTINATION ${SOURCE_PATH}/config-h-Debug)
endif()
endif()
vcpkg_cmake_configure(
SOURCE_PATH ${SOURCE_PATH}
)
vcpkg_cmake_install()
vcpkg_cmake_config_fixup()
vcpkg_copy_pdbs()
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include")
file(INSTALL "${SOURCE_PATH}/COPYING.LESSER" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright)
file(INSTALL "${SOURCE_PATH}/COPYRIGHT" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME license)

18
ports/boinc/vcpkg.json Normal file
View File

@ -0,0 +1,18 @@
{
"name": "boinc",
"version": "7.18.1",
"description": "Open-source software for volunteer computing and grid computing.",
"homepage": "https://boinc.berkeley.edu/",
"supports": "!(windows & arm) & !uwp",
"dependencies": [
"openssl",
{
"name": "vcpkg-cmake",
"host": true
},
{
"name": "vcpkg-cmake-config",
"host": true
}
]
}

9
versions/b-/boinc.json Normal file
View File

@ -0,0 +1,9 @@
{
"versions": [
{
"git-tree": "9fcf80005012082801212b0761a61a53f92b6104",
"version": "7.18.1",
"port-version": 0
}
]
}

View File

@ -452,6 +452,10 @@
"baseline": "1.18.1",
"port-version": 2
},
"boinc": {
"baseline": "7.18.1",
"port-version": 0
},
"bond": {
"baseline": "9.0.3",
"port-version": 2