diff --git a/dummy-port/portfile.cmake b/dummy-port/portfile.cmake new file mode 100644 index 00000000..065116c2 --- /dev/null +++ b/dummy-port/portfile.cmake @@ -0,0 +1 @@ +set(VCPKG_POLICY_EMPTY_PACKAGE enabled) diff --git a/macos_build.sh b/macos_build.sh new file mode 100755 index 00000000..92f69e27 --- /dev/null +++ b/macos_build.sh @@ -0,0 +1,17 @@ +#!/bin/zsh + +easy_install --user pyyaml + +git clone -q https://github.com/Microsoft/vcpkg.git +git -C vcpkg apply ../vcpkg_fixup_pkgconfig.cmake.diff + +vcpkg/bootstrap-vcpkg.sh + +TRIPLET="--overlay-triplets=. --triplet=x64-osx-openrct2" +LIBRARIES="duktape freetype[core,zlib,bzip2,png] libpng libzip[core] nlohmann-json openssl sdl2 speexdsp discord-rpc" +vcpkg/vcpkg install ${=TRIPLET} ${=LIBRARIES} + +( + cd vcpkg/installed/x64-osx-openrct2 && + zip -rXy ../../../openrct2-libs-v${version}-x64-macos-dylibs.zip * -x '*/.*' +) diff --git a/macos_pkgconfig/bzip2.pc b/macos_pkgconfig/bzip2.pc new file mode 100644 index 00000000..e24fcee1 --- /dev/null +++ b/macos_pkgconfig/bzip2.pc @@ -0,0 +1,12 @@ +prefix=/usr + +exec_prefix=${prefix} +libdir=${prefix}/lib +includedir=${prefix}/include + +Name: bzip2 +Description: bzip2 +Version: 1.0.5 +Requires: +Libs: -L${libdir} -lbz2 +Cflags: -I${includedir} diff --git a/macos_pkgconfig/zlib.pc b/macos_pkgconfig/zlib.pc new file mode 100644 index 00000000..14fd50a0 --- /dev/null +++ b/macos_pkgconfig/zlib.pc @@ -0,0 +1,14 @@ +prefix=/usr + +exec_prefix=${prefix} +libdir=${prefix}/lib +sharedlibdir=${prefix}/lib +includedir=${prefix}/include + +Name: zlib +Description: zlib compression library +Version: 1.2.11 + +Requires: +Libs: -L${libdir} -L${sharedlibdir} -lz +Cflags: -I${includedir} diff --git a/vcpkg_fixup_pkgconfig.cmake.diff b/vcpkg_fixup_pkgconfig.cmake.diff new file mode 100644 index 00000000..9d7d02c1 --- /dev/null +++ b/vcpkg_fixup_pkgconfig.cmake.diff @@ -0,0 +1,28 @@ +diff --git a/scripts/cmake/vcpkg_fixup_pkgconfig.cmake b/scripts/cmake/vcpkg_fixup_pkgconfig.cmake +index baccef100..7f0dc464d 100644 +--- a/scripts/cmake/vcpkg_fixup_pkgconfig.cmake ++++ b/scripts/cmake/vcpkg_fixup_pkgconfig.cmake +@@ -50,8 +50,8 @@ function(vcpkg_fixup_pkgconfig_check_files pkg_cfg_cmd _file _config _system_lib + set(PKGCONFIG_PACKAGES_DIR "${_VCPKG_PACKAGES_PKGCONF}${PATH_SUFFIX_${_config}}/lib/pkgconfig") + set(PKGCONFIG_PACKAGES_SHARE_DIR "${_VCPKG_PACKAGES_PKGCONF}/share/pkgconfig") + +- if(ENV{PKG_CONFIG_PATH}) +- set(BACKUP_ENV_PKG_CONFIG_PATH_${_config} $ENV{PKG_CONFIG_PATH}) ++ if(DEFINED ENV{PKG_CONFIG_PATH}) ++ set(BACKUP_ENV_PKG_CONFIG_PATH_${_config} "$ENV{PKG_CONFIG_PATH}") + set(ENV{PKG_CONFIG_PATH} "${PKGCONFIG_INSTALLED_DIR}${VCPKG_HOST_PATH_SEPARATOR}${PKGCONFIG_INSTALLED_SHARE_DIR}${VCPKG_HOST_PATH_SEPARATOR}${PKGCONFIG_PACKAGES_DIR}${VCPKG_HOST_PATH_SEPARATOR}${PKGCONFIG_PACKAGES_SHARE_DIR}${VCPKG_HOST_PATH_SEPARATOR}$ENV{PKG_CONFIG_PATH}") + else() + set(ENV{PKG_CONFIG_PATH} "${PKGCONFIG_INSTALLED_DIR}${VCPKG_HOST_PATH_SEPARATOR}${PKGCONFIG_INSTALLED_SHARE_DIR}${VCPKG_HOST_PATH_SEPARATOR}${PKGCONFIG_PACKAGES_DIR}${VCPKG_HOST_PATH_SEPARATOR}${PKGCONFIG_PACKAGES_SHARE_DIR}") +@@ -237,6 +237,12 @@ function(vcpkg_fixup_pkgconfig_check_files pkg_cfg_cmd _file _config _system_lib + endforeach() + + set(CMAKE_FIND_LIBRARY_SUFFIXES ${CMAKE_FIND_LIBRARY_SUFFIXES_BACKUP}) ++ if(DEFINED BACKUP_ENV_PKG_CONFIG_PATH_${_config}) ++ set(ENV{PKG_CONFIG_PATH} "${BACKUP_ENV_PKG_CONFIG_PATH_${_config}}") ++ unset(BACKUP_ENV_PKG_CONFIG_PATH_${_config}) ++ else() ++ unset(ENV{PKG_CONFIG_PATH}) ++ endif() + endfunction() + + function(vcpkg_fixup_pkgconfig) diff --git a/x64-osx-openrct2.cmake b/x64-osx-openrct2.cmake new file mode 100644 index 00000000..595460fa --- /dev/null +++ b/x64-osx-openrct2.cmake @@ -0,0 +1,21 @@ +cmake_policy(SET CMP0057 NEW) + +set(VCPKG_TARGET_ARCHITECTURE x64) +set(VCPKG_CRT_LINKAGE dynamic) +set(VCPKG_LIBRARY_LINKAGE dynamic) + +set(VCPKG_CMAKE_SYSTEM_NAME Darwin) +set(VCPKG_OSX_DEPLOYMENT_TARGET "10.13") +set(VCPKG_BUILD_TYPE release) + +if(DEFINED ENV{PKG_CONFIG_PATH}) + set(ENV{PKG_CONFIG_PATH} "${CMAKE_CURRENT_LIST_DIR}/macos_pkgconfig:$ENV{PKG_CONFIG_PATH}") +else() + set(ENV{PKG_CONFIG_PATH} "${CMAKE_CURRENT_LIST_DIR}/macos_pkgconfig") +endif() + +list(APPEND VCPKG_SYSTEM_LIBRARIES "z" "bz2") +set(OPENRCT2_SYSTEM_PACKAGES "zlib" "bzip2") +if(PORT IN_LIST OPENRCT2_SYSTEM_PACKAGES) + set(CURRENT_PORT_DIR "${CMAKE_CURRENT_LIST_DIR}/dummy-port") +endif()