mirror of
https://github.com/MaSzyna-EU07/maszyna.git
synced 2026-03-22 15:05:03 +01:00
add MacOS ARM64 to CI builds
This commit is contained in:
@@ -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)
|
||||||
|
|||||||
@@ -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()
|
||||||
|
|||||||
30
CMake_modules/FindSndFile.cmake
Normal file
30
CMake_modules/FindSndFile.cmake
Normal 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)
|
||||||
@@ -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}
|
||||||
|
)
|
||||||
@@ -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)
|
|
||||||
@@ -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'
|
||||||
|
|||||||
Reference in New Issue
Block a user