diff options
Diffstat (limited to 'vcpkg/ports/boinc')
| -rw-r--r-- | vcpkg/ports/boinc/CMakeLists.txt | 247 | ||||
| -rw-r--r-- | vcpkg/ports/boinc/fix-android-build.patch | 32 | ||||
| -rw-r--r-- | vcpkg/ports/boinc/fix-mingw-build.patch | 13 | ||||
| -rw-r--r-- | vcpkg/ports/boinc/portfile.cmake | 62 | ||||
| -rw-r--r-- | vcpkg/ports/boinc/vcpkg.json | 20 |
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 + } + ] +} |