add MacOS ARM64 to CI builds

This commit is contained in:
milek7
2021-01-18 23:04:00 +01:00
parent bba6c8410c
commit 5fcd108b3d
6 changed files with 162 additions and 124 deletions

View File

@@ -6,8 +6,10 @@ if(POLICY CMP0074)
cmake_policy(SET CMP0074 NEW)
endif()
set(CMAKE_FIND_PACKAGE_PREFER_CONFIG TRUE)
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/CMake_modules/")
include(cotire)
#include(cotire)
set(DEPS_DIR ${DEPS_DIR} "${CMAKE_SOURCE_DIR}/ref")
project("eu07")
@@ -333,9 +335,8 @@ if (WITH_OPENVR)
target_link_libraries(${PROJECT_NAME} ${OPENVR_LIBRARY})
endif()
find_package(GLFW3 REQUIRED)
include_directories(${GLFW3_INCLUDE_DIR})
target_link_libraries(${PROJECT_NAME} ${GLFW3_LIBRARIES})
find_package(glfw3 REQUIRED)
target_link_libraries(${PROJECT_NAME} glfw)
find_package(PythonLibs 2 REQUIRED)
include_directories(${PYTHON_INCLUDE_DIRS})
@@ -356,12 +357,15 @@ find_package(GLM REQUIRED)
include_directories(${GLM_INCLUDE_DIR})
find_package(OpenAL REQUIRED)
include_directories(${OPENAL_INCLUDE_DIR})
target_link_libraries(${PROJECT_NAME} ${OPENAL_LIBRARY})
if (TARGET OpenAL::OpenAL)
target_link_libraries(${PROJECT_NAME} OpenAL::OpenAL)
else()
include_directories(${OPENAL_INCLUDE_DIR})
target_link_libraries(${PROJECT_NAME} ${OPENAL_LIBRARY})
endif()
find_package(libsndfile REQUIRED)
include_directories(${LIBSNDFILE_INCLUDE_DIR})
target_link_libraries(${PROJECT_NAME} ${LIBSNDFILE_LIBRARY})
find_package(SndFile REQUIRED)
target_link_libraries(${PROJECT_NAME} SndFile::sndfile)
find_package(LuaJIT REQUIRED)
include_directories(${LUAJIT_INCLUDE_DIR})
@@ -374,7 +378,7 @@ if (WITH_UART)
endif()
find_package(ASIO REQUIRED)
target_link_libraries(${PROJECT_NAME} ASIO::ASIO)
target_link_libraries(${PROJECT_NAME} asio::asio)
if (WIN32)
target_link_libraries(${PROJECT_NAME} ws2_32)

View File

@@ -12,7 +12,7 @@
set(ASIO_FOUND FALSE)
if(TARGET ASIO::ASIO)
if(TARGET asio::asio)
set(ASIO_FOUND TRUE)
else()
find_package(Threads QUIET)
@@ -38,12 +38,12 @@ else()
endif()
endif()
else()
add_library(ASIO::ASIO INTERFACE IMPORTED GLOBAL)
set_target_properties(ASIO::ASIO PROPERTIES
add_library(asio::asio INTERFACE IMPORTED GLOBAL)
set_target_properties(asio::asio PROPERTIES
INTERFACE_COMPILE_DEFINITIONS "ASIO_STANDALONE"
INTERFACE_INCLUDE_DIRECTORIES "${ASIO_ROOT}/include"
)
target_link_libraries(ASIO::ASIO INTERFACE Threads::Threads)
target_link_libraries(asio::asio INTERFACE Threads::Threads)
set(ASIO_FOUND TRUE)
endif()
endif()

View File

@@ -0,0 +1,30 @@
# - Try to find libsndfile
# Use pkg-config to get hints about paths
find_package(PkgConfig QUIET)
if(PKG_CONFIG_FOUND)
pkg_check_modules(LIBSNDFILE_PKGCONF sndfile)
endif(PKG_CONFIG_FOUND)
# Include dir
find_path(LIBSNDFILE_INCLUDE_DIR
NAMES sndfile.h
PATHS ${LIBSNDFILE_PKGCONF_INCLUDE_DIRS}
)
# Library
find_library(LIBSNDFILE_LIBRARY
NAMES sndfile libsndfile-1
PATHS ${LIBSNDFILE_PKGCONF_LIBRARY_DIRS}
)
find_package(PackageHandleStandardArgs)
find_package_handle_standard_args(SndFile DEFAULT_MSG LIBSNDFILE_LIBRARY LIBSNDFILE_INCLUDE_DIR)
if(SNDFILE_FOUND)
add_library(SndFile::sndfile INTERFACE IMPORTED GLOBAL)
set_target_properties(SndFile::sndfile PROPERTIES
INTERFACE_LINK_LIBRARIES ${LIBSNDFILE_LIBRARY}
INTERFACE_INCLUDE_DIRECTORIES ${LIBSNDFILE_INCLUDE_DIR}
)
endif(SNDFILE_FOUND)

View File

@@ -1,75 +1,81 @@
# - Try to find GLFW3
#
# If no pkgconfig, define GLFW_ROOT to installation tree
# Will define the following:
# GLFW3_FOUND
# GLFW3_INCLUDE_DIR
# GLFW3_LIBRARIES
IF(PKG_CONFIG_FOUND)
IF(APPLE)
# homebrew or macports pkgconfig locations
SET(ENV{PKG_CONFIG_PATH} "/usr/local/opt/glfw3/lib/pkgconfig:/opt/local/lib/pkgconfig")
ENDIF()
SET(ENV{PKG_CONFIG_PATH} "${DEPENDS_DIR}/glfw/lib/pkgconfig:$ENV{PKG_CONFIG_PATH}")
PKG_CHECK_MODULES(GLFW3 glfw3)
FIND_LIBRARY(GLFW3_LIBRARY
NAMES ${GLFW3_LIBRARIES}
HINTS ${GLFW3_LIBRARY_DIR}
)
SET(GLFW3_LIBRARIES ${GLFW3_LIBRARY})
RETURN()
ENDIF()
FIND_PATH(GLFW3_INCLUDE_DIR
GLFW/glfw3.h
DOC "GLFW include directory "
PATHS
"${DEPENDS_DIR}/glfw"
"$ENV{ProgramW6432}/glfw"
${GLFW3_ROOT_PATH}
PATH_SUFFIXES
include
)
# directories in the official binary package
IF(MINGW)
SET(_SUFFIX lib-mingw)
ELSEIF(MSVC11)
SET(_SUFFIX lib-vc2012)
ELSEIF(MSVC12)
SET(_SUFFIX lib-vc2013)
ELSEIF(MSVC14)
SET(_SUFFIX lib-vc2015)
ELSEIF(MSVC)
SET(_SUFFIX lib-vc2012)
ENDIF()
FIND_LIBRARY(GLFW3_LIBRARIES
NAMES glfw3dll glfw3 glfw
PATHS
"${DEPENDS_DIR}/glfw"
"$ENV{ProgramW6432}/glfw"
${GLFW3_ROOT_PATH}
PATH_SUFFIXES
lib
${_SUFFIX}
)
IF(WIN32)
FIND_FILE(GLFW3_DLL
glfw3.dll
PATHS
"${DEPENDS_DIR}/glfw"
"$ENV{ProgramW6432}/glfw"
${GLFW3_ROOT_PATH}
PATH_SUFFIXES
${_SUFFIX}
)
ENDIF()
INCLUDE(FindPackageHandleStandardArgs)
FIND_PACKAGE_HANDLE_STANDARD_ARGS(GLFW3 FOUND_VAR GLFW3_FOUND
REQUIRED_VARS GLFW3_LIBRARIES GLFW3_INCLUDE_DIR)
# - Try to find GLFW3
#
# If no pkgconfig, define GLFW_ROOT to installation tree
# Will define the following:
# GLFW3_FOUND
# GLFW3_INCLUDE_DIR
# GLFW3_LIBRARIES
IF(PKG_CONFIG_FOUND)
IF(APPLE)
# homebrew or macports pkgconfig locations
SET(ENV{PKG_CONFIG_PATH} "/usr/local/opt/glfw3/lib/pkgconfig:/opt/local/lib/pkgconfig")
ENDIF()
SET(ENV{PKG_CONFIG_PATH} "${DEPENDS_DIR}/glfw/lib/pkgconfig:$ENV{PKG_CONFIG_PATH}")
PKG_CHECK_MODULES(GLFW3 glfw3)
FIND_LIBRARY(GLFW3_LIBRARY
NAMES ${GLFW3_LIBRARIES}
HINTS ${GLFW3_LIBRARY_DIR}
)
SET(GLFW3_LIBRARIES ${GLFW3_LIBRARY})
RETURN()
ENDIF()
FIND_PATH(GLFW3_INCLUDE_DIR
GLFW/glfw3.h
DOC "GLFW include directory "
PATHS
"${DEPENDS_DIR}/glfw"
"$ENV{ProgramW6432}/glfw"
${GLFW3_ROOT_PATH}
PATH_SUFFIXES
include
)
# directories in the official binary package
IF(MINGW)
SET(_SUFFIX lib-mingw)
ELSEIF(MSVC11)
SET(_SUFFIX lib-vc2012)
ELSEIF(MSVC12)
SET(_SUFFIX lib-vc2013)
ELSEIF(MSVC14)
SET(_SUFFIX lib-vc2015)
ELSEIF(MSVC)
SET(_SUFFIX lib-vc2012)
ENDIF()
FIND_LIBRARY(GLFW3_LIBRARIES
NAMES glfw3dll glfw3 glfw
PATHS
"${DEPENDS_DIR}/glfw"
"$ENV{ProgramW6432}/glfw"
${GLFW3_ROOT_PATH}
PATH_SUFFIXES
lib
${_SUFFIX}
)
IF(WIN32)
FIND_FILE(GLFW3_DLL
glfw3.dll
PATHS
"${DEPENDS_DIR}/glfw"
"$ENV{ProgramW6432}/glfw"
${GLFW3_ROOT_PATH}
PATH_SUFFIXES
${_SUFFIX}
)
ENDIF()
INCLUDE(FindPackageHandleStandardArgs)
FIND_PACKAGE_HANDLE_STANDARD_ARGS(glfw3 FOUND_VAR GLFW3_FOUND
REQUIRED_VARS GLFW3_LIBRARIES GLFW3_INCLUDE_DIR)
add_library(glfw INTERFACE IMPORTED GLOBAL)
set_target_properties(glfw PROPERTIES
INTERFACE_LINK_LIBRARIES ${GLFW3_LIBRARIES}
INTERFACE_INCLUDE_DIRECTORIES ${GLFW3_INCLUDE_DIR}
)

View File

@@ -1,34 +0,0 @@
# - Try to find libsndfile
# Once done, this will define
#
# LIBSNDFILE_FOUND - system has libsndfile
# LIBSNDFILE_INCLUDE_DIRS - the libsndfile include directories
# LIBSNDFILE_LIBRARIES - link these to use libsndfile
# Use pkg-config to get hints about paths
find_package(PkgConfig QUIET)
if(PKG_CONFIG_FOUND)
pkg_check_modules(LIBSNDFILE_PKGCONF sndfile)
endif(PKG_CONFIG_FOUND)
# Include dir
find_path(LIBSNDFILE_INCLUDE_DIR
NAMES sndfile.h
PATHS ${LIBSNDFILE_PKGCONF_INCLUDE_DIRS}
)
# Library
find_library(LIBSNDFILE_LIBRARY
NAMES sndfile libsndfile-1
PATHS ${LIBSNDFILE_PKGCONF_LIBRARY_DIRS}
)
find_package(PackageHandleStandardArgs)
find_package_handle_standard_args(libsndfile DEFAULT_MSG LIBSNDFILE_LIBRARY LIBSNDFILE_INCLUDE_DIR)
if(LIBSNDFILE_FOUND)
set(LIBSNDFILE_LIBRARIES ${LIBSNDFILE_LIBRARY})
set(LIBSNDFILE_INCLUDE_DIRS ${LIBSNDFILE_INCLUDE_DIR})
endif(LIBSNDFILE_FOUND)
mark_as_advanced(LIBSNDFILE_LIBRARY LIBSNDFILE_LIBRARIES LIBSNDFILE_INCLUDE_DIR LIBSNDFILE_INCLUDE_DIRS)

View File

@@ -29,7 +29,7 @@ jobs:
- job: macos1015
pool:
vmImage: 'macOS-10.15'
displayName: 'MacOS 10.15'
displayName: 'MacOS 10.15 x86-64'
steps:
- script: |
sudo xcode-select -s /Applications/Xcode_12.3.app
@@ -49,6 +49,38 @@ jobs:
artifactName: binaries_macos
displayName: 'Publish binaries'
- job: macos1015_arm64
pool:
vmImage: 'macOS-10.15'
displayName: 'MacOS 10.15 ARM64'
steps:
- script: |
sudo xcode-select -s /Applications/Xcode_12.3.app
displayName: 'Setup Xcode'
- script: |
cd /tmp
git clone https://github.com/microsoft/vcpkg
cd vcpkg
git remote add milek https://github.com/Milek7/vcpkg
git fetch milek
git checkout c0020eb4
./bootstrap-vcpkg.sh
./vcpkg install glfw3:arm64-osx libpng:arm64-osx libsndfile:arm64-osx asio:arm64-osx
git cherry-pick 9b7f342
./vcpkg install luajit:arm64-osx
displayName: 'Install dependencies'
- script: |
mkdir build
cd build
cmake .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_OSX_ARCHITECTURES=arm64 -DCMAKE_TOOLCHAIN_FILE=/tmp/vcpkg/scripts/buildsystems/vcpkg.cmake -DVCPKG_TARGET_TRIPLET=arm64-osx -DWITH_ZMQ=OFF -DWITH_OPENVR=OFF -DWITH_UART=OFF
cmake --build .
displayName: 'Build'
- task: PublishBuildArtifacts@1
inputs:
pathtoPublish: 'build/bin'
artifactName: binaries_macos_arm64
displayName: 'Publish binaries'
- job: windows_x64
pool:
vmImage: 'vs2017-win2016'