aboutsummaryrefslogtreecommitdiff
path: root/vcpkg/ports/boinc
diff options
context:
space:
mode:
Diffstat (limited to 'vcpkg/ports/boinc')
-rw-r--r--vcpkg/ports/boinc/CMakeLists.txt247
-rw-r--r--vcpkg/ports/boinc/fix-android-build.patch32
-rw-r--r--vcpkg/ports/boinc/fix-mingw-build.patch13
-rw-r--r--vcpkg/ports/boinc/portfile.cmake62
-rw-r--r--vcpkg/ports/boinc/vcpkg.json20
5 files changed, 374 insertions, 0 deletions
diff --git a/vcpkg/ports/boinc/CMakeLists.txt b/vcpkg/ports/boinc/CMakeLists.txt
new file mode 100644
index 0000000..c4a111a
--- /dev/null
+++ b/vcpkg/ports/boinc/CMakeLists.txt
@@ -0,0 +1,247 @@
+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/boinc_stdio.h
+ lib/cal_boinc.h
+ lib/cc_config.h
+ lib/cert_sig.h
+ lib/cl_boinc.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()
+
+# currently this is for MinGW only
+set(build_options "")
+if(HAVE_STRCASECMP)
+ list(APPEND build_options "-DHAVE_STRCASECMP")
+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
+ ${build_options}
+ )
+
+ target_compile_definitions(boincapi PUBLIC
+ -D_CRT_SECURE_NO_WARNINGS
+ -DWIN32
+ -D_CONSOLE
+ ${build_options}
+ )
+
+ 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
+)
+
+target_link_libraries(boincapi PRIVATE
+ boinc
+)
+
+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)
diff --git a/vcpkg/ports/boinc/fix-android-build.patch b/vcpkg/ports/boinc/fix-android-build.patch
new file mode 100644
index 0000000..44abf23
--- /dev/null
+++ b/vcpkg/ports/boinc/fix-android-build.patch
@@ -0,0 +1,32 @@
+diff --git a/configure.ac b/configure.ac
+index fd30579c4b3..61382a61365 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -734,10 +734,10 @@ sse3_flags="-msse3"
+ avx_flags="-mavx"
+ CXXFLAGS="${save_cxxflags} ${sse3_flags}"
+ CPPFLAGS="${save_cppflags} ${sse3_flags}"
+-AC_LINK_IFELSE([AC_LANG_PROGRAM([],)], [], [sse_flags=""])
++AC_COMPILE_IFELSE([AC_LANG_PROGRAM([],)], [], [sse_flags=""])
+ CXXFLAGS="${save_cxxflags} ${avx_flags}"
+ CPPFLAGS="${save_cppflags} ${avx_flags}"
+-AC_LINK_IFELSE([AC_LANG_PROGRAM([],)], [], [avx_flags=""])
++AC_COMPILE_IFELSE([AC_LANG_PROGRAM([],)], [], [avx_flags=""])
+ CXXFLAGS="${save_cxxflags} ${sse3_flags}"
+ CXXFLAGS="${save_cxxflags} ${sse3_flags}"
+ AC_CHECK_HEADERS([intrin.h x86intrin.h pmmintrin.h xmmintrin.h emmintrin.h])
+diff --git a/lib/diagnostics.cpp b/lib/diagnostics.cpp
+index d92d0b6cf36..911b627b189 100644
+--- a/lib/diagnostics.cpp
++++ b/lib/diagnostics.cpp
+@@ -42,6 +42,10 @@
+ #include "mac_backtrace.h"
+ #endif
+
++#if defined(ANDROID) && __ANDROID_API__ < 33
++#undef HAVE_EXECINFO_H
++#endif
++
+ #ifdef HAVE_EXECINFO_H
+ #include <execinfo.h>
+ #endif
diff --git a/vcpkg/ports/boinc/fix-mingw-build.patch b/vcpkg/ports/boinc/fix-mingw-build.patch
new file mode 100644
index 0000000..fcdf725
--- /dev/null
+++ b/vcpkg/ports/boinc/fix-mingw-build.patch
@@ -0,0 +1,13 @@
+diff --git a/lib/hostinfo.cpp b/lib/hostinfo.cpp
+index c1fde8a348..7302f1b526 100644
+--- a/lib/hostinfo.cpp
++++ b/lib/hostinfo.cpp
+@@ -448,7 +448,7 @@ bool HOST_INFO::get_docker_compose_version_string(
+ bool HOST_INFO::have_docker() {
+ #ifdef _WIN32
+ for (WSL_DISTRO &wd: wsl_distros.distros) {
+- if (!empty(wd.docker_version)) return true;
++ if (!wd.docker_version.empty()) return true;
+ }
+ return false;
+ #else
diff --git a/vcpkg/ports/boinc/portfile.cmake b/vcpkg/ports/boinc/portfile.cmake
new file mode 100644
index 0000000..2ff140e
--- /dev/null
+++ b/vcpkg/ports/boinc/portfile.cmake
@@ -0,0 +1,62 @@
+vcpkg_check_linkage(ONLY_STATIC_LIBRARY)
+string(REGEX REPLACE "^([0-9]*[.][0-9]*)[.].*" "\\1" MAJOR_MINOR "${VERSION}")
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO BOINC/boinc
+ REF "client_release/${MAJOR_MINOR}/${VERSION}"
+ SHA512 1cb7a4d5a411fe703137f5c8127e03ce70e01a9d1c9d23e19b9d4231c833fabad779cf52dc7b85500ff54121c4b5e900ea1634c312ee1d72cfdf4c2051703c38
+ HEAD_REF master
+ PATCHES
+ fix-android-build.patch
+ fix-mingw-build.patch
+)
+
+file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH})
+
+if(VCPKG_TARGET_IS_LINUX OR VCPKG_TARGET_IS_ANDROID)
+ 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()
+
+set(build_options "")
+if(VCPKG_TARGET_IS_MINGW)
+ list(APPEND build_options "-DHAVE_STRCASECMP=ON")
+endif()
+
+vcpkg_cmake_configure(
+ SOURCE_PATH ${SOURCE_PATH}
+ OPTIONS
+ ${build_options}
+)
+
+vcpkg_cmake_install()
+
+vcpkg_cmake_config_fixup()
+file(READ "${CURRENT_PACKAGES_DIR}/share/boinc/boinc-config.cmake" BOINC_CONFIG)
+file(WRITE "${CURRENT_PACKAGES_DIR}/share/boinc/boinc-config.cmake" "
+include(CMakeFindDependencyMacro)
+find_dependency(OpenSSL)
+${BOINC_CONFIG}
+")
+
+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)
diff --git a/vcpkg/ports/boinc/vcpkg.json b/vcpkg/ports/boinc/vcpkg.json
new file mode 100644
index 0000000..20b6c5c
--- /dev/null
+++ b/vcpkg/ports/boinc/vcpkg.json
@@ -0,0 +1,20 @@
+{
+ "name": "boinc",
+ "version": "8.2.5",
+ "port-version": 1,
+ "description": "Open-source software for volunteer computing and grid computing.",
+ "homepage": "https://boinc.berkeley.edu/",
+ "license": "LGPL-3.0-or-later",
+ "supports": "!(windows & arm) & !uwp & !xbox",
+ "dependencies": [
+ "openssl",
+ {
+ "name": "vcpkg-cmake",
+ "host": true
+ },
+ {
+ "name": "vcpkg-cmake-config",
+ "host": true
+ }
+ ]
+}