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

View File

@@ -12,7 +12,7 @@
set(ASIO_FOUND FALSE) set(ASIO_FOUND FALSE)
if(TARGET ASIO::ASIO) if(TARGET asio::asio)
set(ASIO_FOUND TRUE) set(ASIO_FOUND TRUE)
else() else()
find_package(Threads QUIET) find_package(Threads QUIET)
@@ -38,12 +38,12 @@ else()
endif() endif()
endif() endif()
else() else()
add_library(ASIO::ASIO INTERFACE IMPORTED GLOBAL) add_library(asio::asio INTERFACE IMPORTED GLOBAL)
set_target_properties(ASIO::ASIO PROPERTIES set_target_properties(asio::asio PROPERTIES
INTERFACE_COMPILE_DEFINITIONS "ASIO_STANDALONE" INTERFACE_COMPILE_DEFINITIONS "ASIO_STANDALONE"
INTERFACE_INCLUDE_DIRECTORIES "${ASIO_ROOT}/include" 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) set(ASIO_FOUND TRUE)
endif() endif()
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 # - Try to find GLFW3
# #
# If no pkgconfig, define GLFW_ROOT to installation tree # If no pkgconfig, define GLFW_ROOT to installation tree
# Will define the following: # Will define the following:
# GLFW3_FOUND # GLFW3_FOUND
# GLFW3_INCLUDE_DIR # GLFW3_INCLUDE_DIR
# GLFW3_LIBRARIES # GLFW3_LIBRARIES
IF(PKG_CONFIG_FOUND) IF(PKG_CONFIG_FOUND)
IF(APPLE) IF(APPLE)
# homebrew or macports pkgconfig locations # homebrew or macports pkgconfig locations
SET(ENV{PKG_CONFIG_PATH} "/usr/local/opt/glfw3/lib/pkgconfig:/opt/local/lib/pkgconfig") SET(ENV{PKG_CONFIG_PATH} "/usr/local/opt/glfw3/lib/pkgconfig:/opt/local/lib/pkgconfig")
ENDIF() ENDIF()
SET(ENV{PKG_CONFIG_PATH} "${DEPENDS_DIR}/glfw/lib/pkgconfig:$ENV{PKG_CONFIG_PATH}") SET(ENV{PKG_CONFIG_PATH} "${DEPENDS_DIR}/glfw/lib/pkgconfig:$ENV{PKG_CONFIG_PATH}")
PKG_CHECK_MODULES(GLFW3 glfw3) PKG_CHECK_MODULES(GLFW3 glfw3)
FIND_LIBRARY(GLFW3_LIBRARY FIND_LIBRARY(GLFW3_LIBRARY
NAMES ${GLFW3_LIBRARIES} NAMES ${GLFW3_LIBRARIES}
HINTS ${GLFW3_LIBRARY_DIR} HINTS ${GLFW3_LIBRARY_DIR}
) )
SET(GLFW3_LIBRARIES ${GLFW3_LIBRARY}) SET(GLFW3_LIBRARIES ${GLFW3_LIBRARY})
RETURN() RETURN()
ENDIF() ENDIF()
FIND_PATH(GLFW3_INCLUDE_DIR FIND_PATH(GLFW3_INCLUDE_DIR
GLFW/glfw3.h GLFW/glfw3.h
DOC "GLFW include directory " DOC "GLFW include directory "
PATHS PATHS
"${DEPENDS_DIR}/glfw" "${DEPENDS_DIR}/glfw"
"$ENV{ProgramW6432}/glfw" "$ENV{ProgramW6432}/glfw"
${GLFW3_ROOT_PATH} ${GLFW3_ROOT_PATH}
PATH_SUFFIXES PATH_SUFFIXES
include include
) )
# directories in the official binary package # directories in the official binary package
IF(MINGW) IF(MINGW)
SET(_SUFFIX lib-mingw) SET(_SUFFIX lib-mingw)
ELSEIF(MSVC11) ELSEIF(MSVC11)
SET(_SUFFIX lib-vc2012) SET(_SUFFIX lib-vc2012)
ELSEIF(MSVC12) ELSEIF(MSVC12)
SET(_SUFFIX lib-vc2013) SET(_SUFFIX lib-vc2013)
ELSEIF(MSVC14) ELSEIF(MSVC14)
SET(_SUFFIX lib-vc2015) SET(_SUFFIX lib-vc2015)
ELSEIF(MSVC) ELSEIF(MSVC)
SET(_SUFFIX lib-vc2012) SET(_SUFFIX lib-vc2012)
ENDIF() ENDIF()
FIND_LIBRARY(GLFW3_LIBRARIES FIND_LIBRARY(GLFW3_LIBRARIES
NAMES glfw3dll glfw3 glfw NAMES glfw3dll glfw3 glfw
PATHS PATHS
"${DEPENDS_DIR}/glfw" "${DEPENDS_DIR}/glfw"
"$ENV{ProgramW6432}/glfw" "$ENV{ProgramW6432}/glfw"
${GLFW3_ROOT_PATH} ${GLFW3_ROOT_PATH}
PATH_SUFFIXES PATH_SUFFIXES
lib lib
${_SUFFIX} ${_SUFFIX}
) )
IF(WIN32) IF(WIN32)
FIND_FILE(GLFW3_DLL FIND_FILE(GLFW3_DLL
glfw3.dll glfw3.dll
PATHS PATHS
"${DEPENDS_DIR}/glfw" "${DEPENDS_DIR}/glfw"
"$ENV{ProgramW6432}/glfw" "$ENV{ProgramW6432}/glfw"
${GLFW3_ROOT_PATH} ${GLFW3_ROOT_PATH}
PATH_SUFFIXES PATH_SUFFIXES
${_SUFFIX} ${_SUFFIX}
) )
ENDIF() ENDIF()
INCLUDE(FindPackageHandleStandardArgs) INCLUDE(FindPackageHandleStandardArgs)
FIND_PACKAGE_HANDLE_STANDARD_ARGS(GLFW3 FOUND_VAR GLFW3_FOUND FIND_PACKAGE_HANDLE_STANDARD_ARGS(glfw3 FOUND_VAR GLFW3_FOUND
REQUIRED_VARS GLFW3_LIBRARIES GLFW3_INCLUDE_DIR) 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 - job: macos1015
pool: pool:
vmImage: 'macOS-10.15' vmImage: 'macOS-10.15'
displayName: 'MacOS 10.15' displayName: 'MacOS 10.15 x86-64'
steps: steps:
- script: | - script: |
sudo xcode-select -s /Applications/Xcode_12.3.app sudo xcode-select -s /Applications/Xcode_12.3.app
@@ -49,6 +49,38 @@ jobs:
artifactName: binaries_macos artifactName: binaries_macos
displayName: 'Publish binaries' 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 - job: windows_x64
pool: pool:
vmImage: 'vs2017-win2016' vmImage: 'vs2017-win2016'