Added MS Azure Dev Ops CI integration (#162)
* Do not build for i386 on macOS Use ARCHS_STANDARD to avoid the error “The i386 architecture is deprecated. You should update your ARCHS build setting to remove the i386 architecture.” * Fixed missing include The Visual Studio solution was not compiling * Fixed isnan ambigious refernce Ambigious reference when compiling on travis https://stackoverflow.com/questions/33770374/why-is-isnan-ambiguous-and-how-to-avoid-it * Set MSVC warning level to 3 Too many warnings were generated when building a Release build making Travis job to fail because of too much output * Use default toolset for Visual Studio AppVeyor recommends to set the default toolset * #include <cstdint> * Use MSVC ToolsVersion="14.0" # Conflicts: # xpcPlugin/xpcPlugin/xpcPlugin.vcxproj * Removed binaries from repository # Conflicts: # xpcPlugin/XPlaneConnect/64/win.xpl # xpcPlugin/XPlaneConnect/win.xpl * Added ms azure ci xcode linux linux + macos linux + macos removed branch filter win tests win tests Test all platfroms artifacts tests * output all binaries to ‘XPlaneConnect’ All platforms produce a binary in xpcPlugin/XPlaneConnect/ xpcPlugin/XPlaneConnect/64/ * Added ms azure GH deploy deploy stage GH release test trigger tags * Clean up yml file - Added variables - Added job decriptions * Ignore script to ignore .exp files + fixed output path * Renamed ms azure GH connection
This commit is contained in:
committed by
Jason Watkins
parent
c018d6c3be
commit
1c082d7730
165
azure-pipelines.yml
Normal file
165
azure-pipelines.yml
Normal file
@@ -0,0 +1,165 @@
|
||||
# Xcode
|
||||
# Build, test, and archive an Xcode workspace on macOS.
|
||||
# Add steps that install certificates, test, sign, and distribute an app, save build artifacts, and more:
|
||||
# https://docs.microsoft.com/azure/devops/pipelines/languages/xcode
|
||||
|
||||
trigger:
|
||||
branches:
|
||||
include:
|
||||
# Build all branches starting with 'ms-' This is useful when making and testing chanes made to this file
|
||||
- ms-*
|
||||
tags:
|
||||
include:
|
||||
- '*'
|
||||
# pr:
|
||||
# - '*'
|
||||
variables:
|
||||
xpcBuildOutputPath: xpcPlugin/XPlaneConnect/
|
||||
xpcArtifactNameLinux: xpc-linux
|
||||
xpcArtifactNameMac: xpc-macos
|
||||
xpcArtifactNameWindows: xpc-windows
|
||||
xpcPackageName: XPlaneConnect
|
||||
|
||||
# The Github Release tasks requires a GH 'service connection' to be setup in the MS Azure Account
|
||||
# This connection must be setup in with a GH token in the MS Azure Project Settings
|
||||
#
|
||||
# https://docs.microsoft.com/en-us/azure/devops/pipelines/tasks/utility/github-release?view=azure-devops
|
||||
# https://docs.microsoft.com/en-us/azure/devops/pipelines/library/service-endpoints?view=azure-devops&tabs=yaml#sep-github
|
||||
xpcGitHubConnection: xpc_gh
|
||||
|
||||
|
||||
stages:
|
||||
- stage: Build
|
||||
jobs:
|
||||
- job: macOS
|
||||
pool:
|
||||
vmImage: 'macos-latest'
|
||||
|
||||
steps:
|
||||
- task: Xcode@5
|
||||
inputs:
|
||||
actions: 'build'
|
||||
scheme: ''
|
||||
sdk: 'macosx10.14'
|
||||
configuration: 'Release'
|
||||
xcWorkspacePath: 'xpcPlugin/xpcPlugin.xcodeproj'
|
||||
xcodeVersion: 'default' # Options: 8, 9, 10, default, specifyPath
|
||||
- task: PublishPipelineArtifact@0
|
||||
inputs:
|
||||
artifactName: '$(xpcArtifactNameMac)'
|
||||
targetPath: '$(xpcBuildOutputPath)'
|
||||
|
||||
- job: Linux
|
||||
pool:
|
||||
vmImage: 'ubuntu-latest'
|
||||
|
||||
steps:
|
||||
- script: |
|
||||
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
|
||||
sudo apt-get update
|
||||
sudo apt-get install -y g++-5 mesa-common-dev g++-multilib g++-5-multilib
|
||||
displayName: 'apt install'
|
||||
|
||||
- script: |
|
||||
cd xpcPlugin
|
||||
cmake .
|
||||
make
|
||||
displayName: 'make'
|
||||
|
||||
- task: PublishPipelineArtifact@0
|
||||
inputs:
|
||||
artifactName: 'xpc-linux'
|
||||
targetPath: '$(xpcBuildOutputPath)'
|
||||
|
||||
- job: Windows
|
||||
pool:
|
||||
vmImage: 'vs2017-win2016'
|
||||
|
||||
variables:
|
||||
solution: 'xpcPlugin/xpcPlugin/xpcPlugin.sln'
|
||||
buildPlatform: 'Win32|x64'
|
||||
buildConfiguration: 'Release'
|
||||
appxPackageDir: '$(build.artifactStagingDirectory)\AppxPackages\\'
|
||||
|
||||
steps:
|
||||
- task: NuGetToolInstaller@0
|
||||
|
||||
- task: NuGetCommand@2
|
||||
inputs:
|
||||
restoreSolution: '$(solution)'
|
||||
|
||||
- task: VSBuild@1
|
||||
inputs:
|
||||
platform: 'Win32'
|
||||
solution: '$(solution)'
|
||||
configuration: '$(buildConfiguration)'
|
||||
msbuildArgs: '/p:AppxBundlePlatforms="$(buildPlatform)" /p:AppxPackageDir="$(appxPackageDir)" /p:AppxBundle=Always /p:UapAppxPackageBuildMode=StoreUpload'
|
||||
|
||||
- task: VSBuild@1
|
||||
inputs:
|
||||
platform: 'x64'
|
||||
solution: '$(solution)'
|
||||
configuration: '$(buildConfiguration)'
|
||||
msbuildArgs: '/p:AppxBundlePlatforms="$(buildPlatform)" /p:AppxPackageDir="$(appxPackageDir)" /p:AppxBundle=Always /p:UapAppxPackageBuildMode=StoreUpload'
|
||||
|
||||
- task: Bash@3
|
||||
inputs:
|
||||
targetType: 'inline'
|
||||
script: |
|
||||
rm $(xpcBuildOutputPath)/win.exp
|
||||
rm $(xpcBuildOutputPath)/win.lib
|
||||
rm $(xpcBuildOutputPath)/64/win.exp
|
||||
rm $(xpcBuildOutputPath)/64/win.lib
|
||||
|
||||
- task: PublishPipelineArtifact@0
|
||||
inputs:
|
||||
artifactName: '$(xpcArtifactNameWindows)'
|
||||
targetPath: '$(xpcBuildOutputPath)'
|
||||
|
||||
- stage: Deploy
|
||||
jobs:
|
||||
- job: Package_Binaries
|
||||
displayName: 'Package Binaries'
|
||||
pool:
|
||||
vmImage: 'ubuntu-latest'
|
||||
|
||||
steps:
|
||||
- task: DownloadPipelineArtifact@0
|
||||
inputs:
|
||||
artifactName: '$(xpcArtifactNameMac)'
|
||||
targetPath: $(System.DefaultWorkingDirectory)/$(xpcPackageName)
|
||||
- task: DownloadPipelineArtifact@0
|
||||
inputs:
|
||||
artifactName: '$(xpcArtifactNameLinux)'
|
||||
targetPath: $(System.DefaultWorkingDirectory)/$(xpcPackageName)
|
||||
|
||||
- task: DownloadPipelineArtifact@0
|
||||
inputs:
|
||||
artifactName: '$(xpcArtifactNameWindows)'
|
||||
targetPath: $(System.DefaultWorkingDirectory)/$(xpcPackageName)
|
||||
|
||||
- task: PublishPipelineArtifact@0
|
||||
inputs:
|
||||
artifactName: '$(xpcPackageName)'
|
||||
targetPath: $(System.DefaultWorkingDirectory)/$(xpcPackageName)
|
||||
|
||||
# Archive Files
|
||||
- task: ArchiveFiles@2
|
||||
inputs:
|
||||
rootFolderOrFile: '$(System.DefaultWorkingDirectory)/$(xpcPackageName)'
|
||||
includeRootFolder: true
|
||||
archiveType: 'zip'
|
||||
archiveFile: '$(Build.ArtifactStagingDirectory)/$(xpcPackageName).zip'
|
||||
|
||||
# Uploads the .zip to GitHub and creates a new "Release" with the commit tag
|
||||
# This tasks runs only on pushed tags
|
||||
- task: GitHubRelease@0
|
||||
inputs:
|
||||
gitHubConnection: '$(xpcGitHubConnection)'
|
||||
repositoryName: '$(Build.Repository.Name)'
|
||||
action: 'create'
|
||||
target: '$(Build.SourceVersion)'
|
||||
tagSource: 'auto'
|
||||
tag: $(tagName)
|
||||
assets: '$(Build.ArtifactStagingDirectory)/$(xpcPackageName).zip'
|
||||
isPreRelease: true
|
||||
@@ -12,6 +12,9 @@ SET(CMAKE_C_COMPILER gcc)
|
||||
SET(CMAKE_CXX_COMPILER g++)
|
||||
SET(CMAKE_CXX_STANDARD 11)
|
||||
|
||||
SET(XPC_OUTPUT_DIR "XPlaneConnect")
|
||||
SET(XPC_OUTPUT_NAME "lin")
|
||||
|
||||
add_library(xpc64 SHARED XPCPlugin.cpp
|
||||
DataManager.cpp
|
||||
Drawing.cpp
|
||||
@@ -21,6 +24,8 @@ add_library(xpc64 SHARED XPCPlugin.cpp
|
||||
Timer.cpp
|
||||
UDPSocket.cpp)
|
||||
set_target_properties(xpc64 PROPERTIES PREFIX "" SUFFIX ".xpl")
|
||||
set_target_properties(xpc64 PROPERTIES LIBRARY_OUTPUT_DIRECTORY ${XPC_OUTPUT_DIR}/64)
|
||||
set_target_properties(xpc64 PROPERTIES OUTPUT_NAME ${XPC_OUTPUT_NAME})
|
||||
set_target_properties(xpc64 PROPERTIES COMPILE_FLAGS "-m64 -fno-stack-protector" LINK_FLAGS "-shared -rdynamic -nodefaultlibs -undefined_warning -m64 -fno-stack-protector")
|
||||
|
||||
add_library(xpc32 SHARED XPCPlugin.cpp
|
||||
@@ -32,6 +37,8 @@ add_library(xpc32 SHARED XPCPlugin.cpp
|
||||
Timer.cpp
|
||||
UDPSocket.cpp)
|
||||
set_target_properties(xpc32 PROPERTIES PREFIX "" SUFFIX ".xpl")
|
||||
set_target_properties(xpc32 PROPERTIES LIBRARY_OUTPUT_DIRECTORY ${XPC_OUTPUT_DIR})
|
||||
set_target_properties(xpc32 PROPERTIES OUTPUT_NAME ${XPC_OUTPUT_NAME})
|
||||
set_target_properties(xpc32 PROPERTIES COMPILE_FLAGS "-m32 -fno-stack-protector" LINK_FLAGS "-shared -rdynamic -nodefaultlibs -undefined_warning -m32 -fno-stack-protector")
|
||||
|
||||
# Switch install targets when uncommenting the 32 bit line above.
|
||||
|
||||
@@ -522,7 +522,7 @@ namespace XPC
|
||||
Log::FormatLine(LOG_ERROR, "DMAN", "ERROR: invalid DREF %s", dref.c_str());
|
||||
return;
|
||||
}
|
||||
if (isnan(values[0]))
|
||||
if (std::isnan(values[0]))
|
||||
{
|
||||
Log::WriteLine(LOG_ERROR, "DMAN", "ERROR: Value must be a number (NaN received)");
|
||||
return;
|
||||
@@ -632,7 +632,7 @@ namespace XPC
|
||||
Log::WriteLine(LOG_INFO, "DMAN", "Not actually setting gear because of default value");
|
||||
return;
|
||||
}
|
||||
if (isnan(gear) || gear < 0 || gear > 1)
|
||||
if (std::isnan(gear) || gear < 0 || gear > 1)
|
||||
{
|
||||
Log::WriteLine(LOG_ERROR, "DMAN", "ERROR: Gear value must be between 0 and 1");
|
||||
return;
|
||||
@@ -662,7 +662,7 @@ namespace XPC
|
||||
{
|
||||
Log::FormatLine(LOG_INFO, "DMAN", "Setting position (%f, %f, %f) for aircraft %i",
|
||||
pos[0], pos[1], pos[2], aircraft);
|
||||
if (isnan(pos[0] + pos[1] + pos[2]))
|
||||
if (std::isnan(pos[0] + pos[1] + pos[2]))
|
||||
{
|
||||
Log::WriteLine(LOG_ERROR, "DMAN", "ERROR: Position must be a number (NaN received)");
|
||||
return;
|
||||
@@ -712,7 +712,7 @@ namespace XPC
|
||||
{
|
||||
Log::FormatLine(LOG_INFO, "DMAN", "Setting orientation (%f, %f, %f) for aircraft %i",
|
||||
orient[0], orient[1], orient[2], aircraft);
|
||||
if (isnan(orient[0] + orient[1] + orient[2]))
|
||||
if (std::isnan(orient[0] + orient[1] + orient[2]))
|
||||
{
|
||||
Log::WriteLine(LOG_ERROR, "DMAN", "ERROR: Orientation must be a number (NaN received)");
|
||||
return;
|
||||
@@ -763,7 +763,7 @@ namespace XPC
|
||||
{
|
||||
Log::FormatLine(LOG_INFO, "DMAN", "Setting flaps (value:%f)", value);
|
||||
|
||||
if (isnan(value))
|
||||
if (std::isnan(value))
|
||||
{
|
||||
Log::WriteLine(LOG_ERROR, "DMAN", "ERROR: Flap value must be a number (NaN received)");
|
||||
return;
|
||||
|
||||
@@ -25,6 +25,7 @@
|
||||
|
||||
#include <cmath>
|
||||
#include <cstring>
|
||||
#include <cstdint>
|
||||
|
||||
#define MULTICAST_GROUP "239.255.1.1"
|
||||
#define MULITCAST_PORT 49710
|
||||
|
||||
@@ -7,6 +7,7 @@
|
||||
#include <stdio.h>
|
||||
#include <iostream>
|
||||
#include <thread>
|
||||
#include <atomic>
|
||||
#include <chrono>
|
||||
#include <functional>
|
||||
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -304,12 +304,14 @@
|
||||
D607B19C09A556E400699BC3 /* Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ARCHS = "$(ARCHS_STANDARD)";
|
||||
CLANG_CXX_LANGUAGE_STANDARD = "c++0x";
|
||||
CLANG_ENABLE_MODULES = YES;
|
||||
CLANG_LINK_OBJC_RUNTIME = NO;
|
||||
CLANG_WARN_CXX0X_EXTENSIONS = YES;
|
||||
CLANG_WARN_EMPTY_BODY = YES;
|
||||
CLANG_WARN_SUSPICIOUS_IMPLICIT_CONVERSION = NO;
|
||||
CONFIGURATION_BUILD_DIR = ./XPlaneConnect/;
|
||||
CURRENT_PROJECT_VERSION = 0.24;
|
||||
GCC_ENABLE_OBJC_EXCEPTIONS = NO;
|
||||
GCC_TREAT_IMPLICIT_FUNCTION_DECLARATIONS_AS_ERRORS = NO;
|
||||
@@ -344,12 +346,14 @@
|
||||
D607B19D09A556E400699BC3 /* Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ARCHS = "$(ARCHS_STANDARD)";
|
||||
CLANG_CXX_LANGUAGE_STANDARD = "c++0x";
|
||||
CLANG_ENABLE_MODULES = YES;
|
||||
CLANG_LINK_OBJC_RUNTIME = NO;
|
||||
CLANG_WARN_CXX0X_EXTENSIONS = YES;
|
||||
CLANG_WARN_EMPTY_BODY = YES;
|
||||
CLANG_WARN_SUSPICIOUS_IMPLICIT_CONVERSION = NO;
|
||||
CONFIGURATION_BUILD_DIR = ./XPlaneConnect/;
|
||||
CURRENT_PROJECT_VERSION = 0.24;
|
||||
GCC_ENABLE_OBJC_EXCEPTIONS = NO;
|
||||
GCC_TREAT_IMPLICIT_FUNCTION_DECLARATIONS_AS_ERRORS = NO;
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
|
||||
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||
# Visual Studio 2013
|
||||
VisualStudioVersion = 12.0.31101.0
|
||||
# Visual Studio 2015
|
||||
VisualStudioVersion = 15.0.28307.168
|
||||
MinimumVisualStudioVersion = 10.0.40219.1
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "xpcPlugin", "xpcPlugin.vcxproj", "{6AEF5D28-2701-44FF-AE10-1DEF07C5CAEA}"
|
||||
EndProject
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup Label="ProjectConfigurations">
|
||||
<ProjectConfiguration Include="Debug|Win32">
|
||||
<Configuration>Debug</Configuration>
|
||||
@@ -28,25 +28,25 @@
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
||||
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
||||
<UseDebugLibraries>true</UseDebugLibraries>
|
||||
<PlatformToolset>v140</PlatformToolset>
|
||||
<PlatformToolset>$(DefaultPlatformToolset)</PlatformToolset>
|
||||
<CharacterSet>MultiByte</CharacterSet>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
||||
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
||||
<UseDebugLibraries>true</UseDebugLibraries>
|
||||
<PlatformToolset>v140</PlatformToolset>
|
||||
<PlatformToolset>$(DefaultPlatformToolset)</PlatformToolset>
|
||||
<CharacterSet>MultiByte</CharacterSet>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
|
||||
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
||||
<UseDebugLibraries>true</UseDebugLibraries>
|
||||
<PlatformToolset>v140</PlatformToolset>
|
||||
<PlatformToolset>$(DefaultPlatformToolset)</PlatformToolset>
|
||||
<CharacterSet>MultiByte</CharacterSet>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
|
||||
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
||||
<UseDebugLibraries>true</UseDebugLibraries>
|
||||
<PlatformToolset>v140</PlatformToolset>
|
||||
<PlatformToolset>$(DefaultPlatformToolset)</PlatformToolset>
|
||||
<CharacterSet>MultiByte</CharacterSet>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||
@@ -121,7 +121,7 @@
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
<ClCompile>
|
||||
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
||||
<WarningLevel>EnableAllWarnings</WarningLevel>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<Optimization>Full</Optimization>
|
||||
<PreprocessorDefinitions>IBM=1;XPLM200;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<DebugInformationFormat>OldStyle</DebugInformationFormat>
|
||||
@@ -171,7 +171,7 @@
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||
<ClCompile>
|
||||
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
||||
<WarningLevel>EnableAllWarnings</WarningLevel>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<Optimization>Full</Optimization>
|
||||
<PreprocessorDefinitions>IBM=1;XPLM200;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<SDLCheck>
|
||||
|
||||
Reference in New Issue
Block a user