Skip to content

Commit

Permalink
Add vcpkg 3rdParty for manager osx
Browse files Browse the repository at this point in the history
  • Loading branch information
talregev committed Nov 29, 2024
1 parent 7cc54fc commit 38a9e1e
Show file tree
Hide file tree
Showing 28 changed files with 1,081 additions and 3 deletions.
17 changes: 15 additions & 2 deletions .github/workflows/osx.yml
Original file line number Diff line number Diff line change
Expand Up @@ -126,8 +126,12 @@ jobs:
path: deploy/macos_apps_arm64.7z

cmake-build:
name: cmake-build
name: ${{matrix.type}}-build
runs-on: macos-latest
strategy:
matrix:
type: [manager-vcpkg, libs-cmake]
fail-fast: false
steps:
- uses: maxim-lobanov/setup-xcode@60606e260d2fc5762a71e64e74b2174e8ea3c8bd
with:
Expand All @@ -146,8 +150,17 @@ jobs:
echo "VCPKG_BINARY_SOURCES=clear;x-aws-config,no-sign-request;x-aws,s3://vcpkg.cache.boinc/,read" >> $GITHUB_ENV
- name: libs cmake
if: matrix.type == 'libs-cmake'
run: osx/ci_build_libs_cmake.sh

- name: install vcpkg dependencies
if: matrix.type == 'manager-vcpkg'
run: ./osx/build_vcpkg_3rdparty_for_manager.sh

- name: vcpkg make manager
if: success() && matrix.type == 'manager-vcpkg'
run: ./mac_build/buildMacBOINC-CI.sh --no_shared_headers --cache_dir $(pwd)/3rdParty/osx/mac_vcpkg --vcpkg

- name: Prepare logs on failure
if: ${{ failure() }}
run: python3 ./deploy/prepare_deployment.py logs
Expand All @@ -156,5 +169,5 @@ jobs:
if: ${{ failure() }}
uses: actions/upload-artifact@b4b15b8c7c6ac21ea08fcf65892d2ee8f75cf882
with:
name: osx_logs_cmake-build_${{ github.event.pull_request.head.sha }}
name: osx_logs_${{ matrix.type }}_${{ github.event.pull_request.head.sha }}
path: deploy/logs.7z
16 changes: 16 additions & 0 deletions 3rdParty/vcpkg_ports/configs/manager/osx/vcpkg.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
{
"name": "boinc-manager",
"dependencies":
[
"ftgl",
{
"name": "curl",
"features": ["openssl","c-ares"],
"default-features": false
},
{
"name": "wxwidgets",
"default-features": false
}
]
}
33 changes: 33 additions & 0 deletions 3rdParty/vcpkg_ports/ports/mac/pcre2/no-static-suffix.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
diff --git a/CMakeLists.txt b/CMakeLists.txt
index fa2181e..3bf5317 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -711,8 +711,8 @@ IF(PCRE2_BUILD_PCRE2_8)
SET(targets ${targets} pcre2-posix-static)

IF(MSVC)
- SET_TARGET_PROPERTIES(pcre2-8-static PROPERTIES OUTPUT_NAME pcre2-8-static)
- SET_TARGET_PROPERTIES(pcre2-posix-static PROPERTIES OUTPUT_NAME pcre2-posix-static)
+ SET_TARGET_PROPERTIES(pcre2-8-static PROPERTIES OUTPUT_NAME pcre2-8)
+ SET_TARGET_PROPERTIES(pcre2-posix-static PROPERTIES OUTPUT_NAME pcre2-posix)
ELSE(MSVC)
SET_TARGET_PROPERTIES(pcre2-8-static PROPERTIES OUTPUT_NAME pcre2-8)
SET_TARGET_PROPERTIES(pcre2-posix-static PROPERTIES OUTPUT_NAME pcre2-posix)
@@ -777,7 +777,7 @@ IF(PCRE2_BUILD_PCRE2_16)
SET(targets ${targets} pcre2-16-static)

IF(MSVC)
- SET_TARGET_PROPERTIES(pcre2-16-static PROPERTIES OUTPUT_NAME pcre2-16-static)
+ SET_TARGET_PROPERTIES(pcre2-16-static PROPERTIES OUTPUT_NAME pcre2-16)
ELSE(MSVC)
SET_TARGET_PROPERTIES(pcre2-16-static PROPERTIES OUTPUT_NAME pcre2-16)
ENDIF(MSVC)
@@ -829,7 +829,7 @@ IF(PCRE2_BUILD_PCRE2_32)
SET(targets ${targets} pcre2-32-static)

IF(MSVC)
- SET_TARGET_PROPERTIES(pcre2-32-static PROPERTIES OUTPUT_NAME pcre2-32-static)
+ SET_TARGET_PROPERTIES(pcre2-32-static PROPERTIES OUTPUT_NAME pcre2-32)
ELSE(MSVC)
SET_TARGET_PROPERTIES(pcre2-32-static PROPERTIES OUTPUT_NAME pcre2-32)
ENDIF(MSVC)
10 changes: 10 additions & 0 deletions 3rdParty/vcpkg_ports/ports/mac/pcre2/pcre2-10.35_fix-uwp.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
--- a/CMakeLists.txt 2020-05-09 16:43:10.000000000 +0200
+++ b/CMakeLists.txt 2020-06-03 20:57:17.026182500 +0200
@@ -619,6 +619,7 @@

IF(MSVC)
ADD_DEFINITIONS(-D_CRT_SECURE_NO_DEPRECATE -D_CRT_SECURE_NO_WARNINGS)
+ add_compile_options(/wd4146)
ENDIF(MSVC)

SET(CMAKE_INCLUDE_CURRENT_DIR 1)
76 changes: 76 additions & 0 deletions 3rdParty/vcpkg_ports/ports/mac/pcre2/portfile.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO PCRE2Project/pcre2
REF pcre2-10.40
SHA512 098c21d60ecb3bb8449173f50c9ab8e6018fafd5d55548be08b15df37f8e08bcd4f851d75758c4d22505db30a3444bb65783d83cd876c63fdf0de2850815ef93
HEAD_REF master
PATCHES
pcre2-10.35_fix-uwp.patch
no-static-suffix.patch
)

string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" BUILD_STATIC)
string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" INSTALL_PDB)
string(COMPARE EQUAL "${VCPKG_CRT_LINKAGE}" "static" BUILD_STATIC_CRT)

set(JIT ON)
if(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "Emscripten" OR VCPKG_CMAKE_SYSTEM_NAME STREQUAL "iOS")
set(JIT OFF)
endif()

if(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND VCPKG_TARGET_ARCHITECTURE STREQUAL "arm64")
set(JIT OFF)
endif()

vcpkg_cmake_configure(
SOURCE_PATH "${SOURCE_PATH}"
OPTIONS
-DBUILD_STATIC_LIBS=${BUILD_STATIC}
-DPCRE2_STATIC_RUNTIME=${BUILD_STATIC_CRT}
-DPCRE2_BUILD_PCRE2_8=ON
-DPCRE2_BUILD_PCRE2_16=ON
-DPCRE2_BUILD_PCRE2_32=ON
-DPCRE2_SUPPORT_JIT=${JIT}
-DPCRE2_SUPPORT_UNICODE=ON
-DPCRE2_BUILD_TESTS=OFF
-DPCRE2_BUILD_PCRE2GREP=OFF
-DCMAKE_DISABLE_FIND_PACKAGE_Readline=ON
-DCMAKE_DISABLE_FIND_PACKAGE_Editline=ON
-DINSTALL_MSVC_PDB=${INSTALL_PDB}
-DCMAKE_REQUIRE_FIND_PACKAGE_BZip2=ON
-DCMAKE_REQUIRE_FIND_PACKAGE_ZLIB=ON
)

vcpkg_cmake_install()
vcpkg_copy_pdbs()

file(READ "${CURRENT_PACKAGES_DIR}/include/pcre2.h" PCRE2_H)
if(BUILD_STATIC)
string(REPLACE "defined(PCRE2_STATIC)" "1" PCRE2_H "${PCRE2_H}")
else()
string(REPLACE "defined(PCRE2_STATIC)" "0" PCRE2_H "${PCRE2_H}")
endif()
file(WRITE "${CURRENT_PACKAGES_DIR}/include/pcre2.h" "${PCRE2_H}")

vcpkg_fixup_pkgconfig()

# The cmake file provided by pcre2 has some problems, so don't use it for now.
#vcpkg_cmake_config_fixup(CONFIG_PATH cmake)
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/cmake" "${CURRENT_PACKAGES_DIR}/debug/cmake")

file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/man")
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/share/doc")
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include")
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/man")
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share")

if(BUILD_STATIC)
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/bin" "${CURRENT_PACKAGES_DIR}/debug/bin")
elseif(VCPKG_TARGET_IS_WINDOWS)
vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/bin/pcre2-config" "${CURRENT_PACKAGES_DIR}" "`dirname $0`/..")
if(EXISTS "${CURRENT_PACKAGES_DIR}/debug/bin/pcre2-config")
vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/debug/bin/pcre2-config" "${CURRENT_PACKAGES_DIR}" "`dirname $0`/../..")
endif()
endif()

file(INSTALL "${SOURCE_PATH}/COPYING" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright)
23 changes: 23 additions & 0 deletions 3rdParty/vcpkg_ports/ports/mac/pcre2/vcpkg.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
{
"name": "pcre2",
"version": "10.40",
"port-version": 1,
"description": "Regular Expression pattern matching using the same syntax and semantics as Perl 5.",
"homepage": "https://github.com/PCRE2Project/pcre2",
"license": "BSD-3-Clause",
"dependencies": [
{
"name": "bzip2",
"default-features": false
},
{
"name": "vcpkg-cmake",
"host": true
},
{
"name": "vcpkg-cmake-config",
"host": true
},
"zlib"
]
}
59 changes: 59 additions & 0 deletions 3rdParty/vcpkg_ports/ports/mac/wxwidgets/boinc_SetItemBitmap.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
diff --git a/include/wx/osx/choice.h b/include/wx/osx/choice.h
index 37486f8a7c..d80bf53766 100644
--- a/include/wx/osx/choice.h
+++ b/include/wx/osx/choice.h
@@ -73,6 +73,7 @@ public:
virtual int FindString(const wxString& s, bool bCase = false) const wxOVERRIDE;
virtual wxString GetString(unsigned int n) const wxOVERRIDE;
virtual void SetString(unsigned int pos, const wxString& s) wxOVERRIDE;
+ void SetItemBitmap(unsigned int n, const wxBitmap& bitmap);
// osx specific event handling common for all osx-ports

virtual bool OSXHandleClicked(double timestampsec) wxOVERRIDE;
diff --git a/include/wx/osx/core/private.h b/include/wx/osx/core/private.h
index 429c8f7401..cae9f9eebe 100644
--- a/include/wx/osx/core/private.h
+++ b/include/wx/osx/core/private.h
@@ -820,6 +820,7 @@ public :
}

virtual void SetItem(int pos, const wxString& item) = 0;
+ virtual void SetItemBitmap(unsigned int n, const wxBitmap& bitmap) = 0;
};


diff --git a/src/osx/choice_osx.cpp b/src/osx/choice_osx.cpp
index 6df17b34e5..1fcb2a5fc4 100644
--- a/src/osx/choice_osx.cpp
+++ b/src/osx/choice_osx.cpp
@@ -217,6 +217,13 @@ wxString wxChoice::GetString(unsigned int n) const
return m_strings[n] ;
}

+void wxChoice::SetItemBitmap(unsigned int n, const wxBitmap& bitmap)
+{
+ wxCHECK_RET( IsValid(n), wxT("wxChoice::SetItemBitmap(): invalid index") );
+
+ dynamic_cast<wxChoiceWidgetImpl*>(GetPeer())->SetItemBitmap(n, bitmap);
+}
+
// ----------------------------------------------------------------------------
// client data
// ----------------------------------------------------------------------------
diff --git a/src/osx/cocoa/choice.mm b/src/osx/cocoa/choice.mm
index 2f0eb4ba51..52eb85c17d 100644
--- a/src/osx/cocoa/choice.mm
+++ b/src/osx/cocoa/choice.mm
@@ -93,6 +93,12 @@ public:
m_popUpMenu->FindItemByPosition( pos )->SetItemLabel( s ) ;
}

+ void SetItemBitmap(unsigned int n, const wxBitmap& bitmap)
+ {
+ if ( bitmap.Ok() )
+ m_popUpMenu->FindItemByPosition( n )->SetBitmap( bitmap ); ;
+ }
+
private:
wxMenu* m_popUpMenu;
};
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
diff --git a/build/cmake/init.cmake b/build/cmake/init.cmake
index 0bc4f934b9..ec703ad19b 100644
--- a/build/cmake/init.cmake
+++ b/build/cmake/init.cmake
@@ -12,6 +12,9 @@ if(DEFINED wxBUILD_CXX_STANDARD AND NOT wxBUILD_CXX_STANDARD STREQUAL COMPILER_D
set(CMAKE_CXX_STANDARD ${wxBUILD_CXX_STANDARD})
endif()

+set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fvisibility=hidden")
+set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fvisibility=hidden -fvisibility-inlines-hidden")
+
if(MSVC)
# Determine MSVC runtime library flag
set(MSVC_LIB_USE "/MD")
31 changes: 31 additions & 0 deletions 3rdParty/vcpkg_ports/ports/mac/wxwidgets/example/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
cmake_minimum_required(VERSION 3.7)

project(wxwidgets-example)

add_executable(main WIN32 popup.cpp)

find_package(wxWidgets REQUIRED)
target_compile_definitions(main PRIVATE ${wxWidgets_DEFINITIONS} "$<$<CONFIG:DEBUG>:${wxWidgets_DEFINITIONS_DEBUG}>")
target_include_directories(main PRIVATE ${wxWidgets_INCLUDE_DIRS})
target_link_libraries(main PRIVATE ${wxWidgets_LIBRARIES})

add_executable(main2 WIN32 popup.cpp)

find_package(wxWidgets CONFIG REQUIRED)
target_link_libraries(main2 PRIVATE wx::core wx::base)

option(USE_WXRC "Use the wxrc resource compiler" ON)
if(USE_WXRC)
execute_process(
COMMAND "${wxWidgets_wxrc_EXECUTABLE}" --help
RESULTS_VARIABLE error_result
)
if(error_result)
message(FATAL_ERROR "Failed to run wxWidgets_wxrc_EXECUTABLE (${wxWidgets_wxrc_EXECUTABLE})")
endif()
endif()

set(PRINT_VARS "" CACHE STRING "Variables to print at the end of configuration")
foreach(var IN LISTS PRINT_VARS)
message(STATUS "${var}:=${${var}}")
endforeach()
21 changes: 21 additions & 0 deletions 3rdParty/vcpkg_ports/ports/mac/wxwidgets/fix-libs-export.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
diff --git a/build/cmake/config.cmake b/build/cmake/config.cmake
index b359560..7504458 100644
--- a/build/cmake/config.cmake
+++ b/build/cmake/config.cmake
@@ -39,8 +39,14 @@ macro(wx_get_dependencies var lib)
else()
# For the value like $<$<CONFIG:DEBUG>:LIB_PATH>
# Or $<$<NOT:$<CONFIG:DEBUG>>:LIB_PATH>
- string(REGEX REPLACE "^.+>:(.+)>$" "\\1" dep_name ${dep})
- if (NOT dep_name)
+ if(dep MATCHES "^(.+>):(.+)>$")
+ if(CMAKE_BUILD_TYPE STREQUAL "Debug" AND CMAKE_MATCH_1 STREQUAL [[$<$<NOT:$<CONFIG:DEBUG>>]])
+ continue()
+ elseif(CMAKE_BUILD_TYPE STREQUAL "Release" AND CMAKE_MATCH_1 STREQUAL [[$<$<CONFIG:DEBUG>]])
+ continue()
+ endif()
+ set(dep_name "${CMAKE_MATCH_2}")
+ else()
set(dep_name ${dep})
endif()
endif()
19 changes: 19 additions & 0 deletions 3rdParty/vcpkg_ports/ports/mac/wxwidgets/fix-nanosvg.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
diff --git "a/build/cmake/config.cmake" "b/build/cmake/config.cmake"
index b68d167dac..5de1fd19ad 100644
--- "a/build/cmake/config.cmake"
+++ "b/build/cmake/config.cmake"
@@ -40,6 +40,14 @@ macro(wx_get_dependencies var lib)
else()
get_target_property(dep_name ${dep} OUTPUT_NAME)
endif()
+ if(NOT dep_name)
+ set(prop_suffix)
+ if (CMAKE_BUILD_TYPE)
+ string(TOUPPER "${CMAKE_BUILD_TYPE}" prop_suffix)
+ set(prop_suffix "_${prop_suffix}")
+ endif()
+ get_target_property(dep_name ${dep} LOCATION${prop_suffix})
+ endif()
else()
# For the value like $<$<CONFIG:DEBUG>:LIB_PATH>
# Or $<$<NOT:$<CONFIG:DEBUG>>:LIB_PATH>
23 changes: 23 additions & 0 deletions 3rdParty/vcpkg_ports/ports/mac/wxwidgets/fix-pcre2.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
diff --git a/build/cmake/modules/FindPCRE2.cmake b/build/cmake/modules/FindPCRE2.cmake
index a27693a..455675a 100644
--- a/build/cmake/modules/FindPCRE2.cmake
+++ b/build/cmake/modules/FindPCRE2.cmake
@@ -24,7 +24,10 @@ set(PCRE2_CODE_UNIT_WIDTH_USED "${PCRE2_CODE_UNIT_WIDTH}" CACHE INTERNAL "")

find_package(PkgConfig QUIET)
pkg_check_modules(PC_PCRE2 QUIET libpcre2-${PCRE2_CODE_UNIT_WIDTH})
+set(PCRE2_LIBRARIES ${PC_PCRE2_LINK_LIBRARIES})
+set(PCRE2_INCLUDE_DIRS ${PC_PCRE2_INCLUDE_DIRS})

+if (0)
find_path(PCRE2_INCLUDE_DIRS
NAMES pcre2.h
HINTS ${PC_PCRE2_INCLUDEDIR}
@@ -36,6 +39,7 @@ find_library(PCRE2_LIBRARIES
HINTS ${PC_PCRE2_LIBDIR}
${PC_PCRE2_LIBRARY_DIRS}
)
+endif()

include(FindPackageHandleStandardArgs)
FIND_PACKAGE_HANDLE_STANDARD_ARGS(PCRE2 REQUIRED_VARS PCRE2_LIBRARIES PCRE2_INCLUDE_DIRS VERSION_VAR PC_PCRE2_VERSION)
13 changes: 13 additions & 0 deletions 3rdParty/vcpkg_ports/ports/mac/wxwidgets/fix_include.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
diff --git a/src/stc/scintilla/include/Scintilla.h b/src/stc/scintilla/include/Scintilla.h
index 8c57520e1..54ffb27d2 100644
--- a/src/stc/scintilla/include/Scintilla.h
+++ b/src/stc/scintilla/include/Scintilla.h
@@ -27,7 +27,7 @@ int Scintilla_LinkLexers(void);
#endif

// Include header that defines basic numeric types.
-#if defined(_MSC_VER)
+#if defined(_MSC_VER) && !defined(__clang__)
// Older releases of MSVC did not have stdint.h.
#include <stddef.h>
#elif defined( __VMS )
Loading

0 comments on commit 38a9e1e

Please sign in to comment.