├── .github └── workflows │ └── GitHub2ADO.yml ├── .gitignore ├── CONTRIBUTING.md ├── LICENSE.md ├── README.md ├── azure-pipelines-vcpkg.yml ├── azure-pipelines.yml ├── build.cmd ├── build_dotnet.cmd ├── build_nuget.cmd ├── build_tools.repos ├── build_upm.cmd ├── example ├── uwp_cpp │ ├── App.xaml │ ├── App.xaml.cpp │ ├── App.xaml.h │ ├── Assets │ │ ├── LockScreenLogo.scale-200.png │ │ ├── SplashScreen.scale-200.png │ │ ├── Square150x150Logo.scale-200.png │ │ ├── Square44x44Logo.scale-200.png │ │ ├── Square44x44Logo.targetsize-24_altform-unplated.png │ │ ├── StoreLogo.png │ │ └── Wide310x150Logo.scale-200.png │ ├── MainPage.xaml │ ├── MainPage.xaml.cpp │ ├── MainPage.xaml.h │ ├── Package.appxmanifest │ ├── packages.config │ ├── pch.cpp │ ├── pch.h │ ├── uwp_cpp.sln │ ├── uwp_cpp.vcxproj │ └── uwp_cpp.vcxproj.filters └── uwp_cs │ ├── App.xaml │ ├── App.xaml.cs │ ├── Assets │ ├── LockScreenLogo.scale-200.png │ ├── SplashScreen.scale-200.png │ ├── Square150x150Logo.scale-200.png │ ├── Square44x44Logo.scale-200.png │ ├── Square44x44Logo.targetsize-24_altform-unplated.png │ ├── StoreLogo.png │ └── Wide310x150Logo.scale-200.png │ ├── MainPage.xaml │ ├── MainPage.xaml.cs │ ├── Package.appxmanifest │ ├── Properties │ ├── AssemblyInfo.cs │ └── Default.rd.xml │ ├── uwp_cs.csproj │ └── uwp_cs.sln ├── inittools.cmd ├── inittree.cmd ├── initvcpkg.cmd ├── nuget ├── Microsoft.ROS.MRTK.Foxy.arm.nuspec ├── Microsoft.ROS.MRTK.Foxy.arm64.nuspec ├── Microsoft.ROS.MRTK.Foxy.nuspec ├── Microsoft.ROS.MRTK.Foxy.unity.nuspec ├── Microsoft.ROS.MRTK.Foxy.x64.nuspec ├── Microsoft.ROS.MRTK.Foxy.x86.nuspec ├── Microsoft.ROS.MRTK.targets ├── build_meta.cmd ├── genmeta.ps1 ├── nuget.exe ├── wsa_arm64_meta.txt ├── wsa_x64_meta.txt └── x86_64_meta.txt ├── ros2_uwp.repos └── upm ├── .npmignore ├── build_upm.ps1 ├── com.microsoft.ros_mrtk_native ├── LICENSE.md ├── README.md ├── THIRDPARTYNOTICES.md └── package.json ├── folder_meta.txt ├── wsa_arm64_meta.txt ├── wsa_x64_meta.txt └── x86_64_meta.txt /.github/workflows/GitHub2ADO.yml: -------------------------------------------------------------------------------- 1 | name: GitHub2ADO 2 | 3 | on: 4 | issues: 5 | types: 6 | [opened, edited, deleted, closed, reopened, labeled, unlabeled, assigned] 7 | issue_comment: 8 | types: [created, edited, deleted] 9 | 10 | jobs: 11 | alert: 12 | runs-on: ubuntu-latest 13 | steps: 14 | - uses: danhellem/github-actions-issue-to-work-item@master 15 | env: 16 | ado_token: "${{ secrets.ADO_PERSONAL_ACCESS_TOKEN }}" 17 | github_token: "${{ secrets.GH_PERSONAL_ACCESS_TOKEN }}" 18 | ado_organization: "${{ secrets.ADO_ORGANIZATION_TOKEN }}" 19 | ado_project: "${{ secrets.ADO_PROJECT_TOKEN }}" 20 | ado_area_path: "${{ secrets.ADO_AREA_PATH_TOKEN }}" 21 | ado_wit: "Issue" 22 | ado_new_state: "New" 23 | ado_active_state: "Active" 24 | ado_close_state: "Closed" 25 | ado_bypassrules: false 26 | log_level: 100 27 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | ## Ignore Visual Studio temporary files, build results, and 2 | ## files generated by popular Visual Studio add-ons. 3 | ## 4 | ## Get latest from https://github.com/github/gitignore/blob/master/VisualStudio.gitignore 5 | 6 | # User-specific files 7 | *.rsuser 8 | *.suo 9 | *.user 10 | *.userosscache 11 | *.sln.docstates 12 | 13 | **/target/ 14 | **/tools/ 15 | **/src/build/ 16 | **/upm/com.microsoft.ros_mrtk_native/Plugins/ 17 | **/nuget/nuget.exe 18 | 19 | # User-specific files (MonoDevelop/Xamarin Studio) 20 | *.userprefs 21 | 22 | # Mono auto generated files 23 | mono_crash.* 24 | 25 | # Build results 26 | [Dd]ebug/ 27 | [Dd]ebugPublic/ 28 | [Rr]elease/ 29 | [Rr]eleases/ 30 | x64/ 31 | x86/ 32 | [Aa][Rr][Mm]/ 33 | [Aa][Rr][Mm]64/ 34 | bld/ 35 | [Bb]in/ 36 | [Oo]bj/ 37 | [Ll]og/ 38 | [Ll]ogs/ 39 | 40 | # Visual Studio 2015/2017 cache/options directory 41 | .vs/ 42 | .vscode/ 43 | 44 | # Uncomment if you have tasks that create the project's static files in wwwroot 45 | #wwwroot/ 46 | 47 | # Visual Studio 2017 auto generated files 48 | Generated\ Files/ 49 | 50 | # MSTest test Results 51 | [Tt]est[Rr]esult*/ 52 | [Bb]uild[Ll]og.* 53 | 54 | # NUnit 55 | *.VisualState.xml 56 | TestResult.xml 57 | nunit-*.xml 58 | 59 | # Build Results of an ATL Project 60 | [Dd]ebugPS/ 61 | [Rr]eleasePS/ 62 | dlldata.c 63 | 64 | # Benchmark Results 65 | BenchmarkDotNet.Artifacts/ 66 | 67 | # .NET Core 68 | project.lock.json 69 | project.fragment.lock.json 70 | artifacts/ 71 | 72 | # StyleCop 73 | StyleCopReport.xml 74 | 75 | # Files built by Visual Studio 76 | *_i.c 77 | *_p.c 78 | *_h.h 79 | *.ilk 80 | *.meta 81 | *.obj 82 | *.iobj 83 | *.pch 84 | *.pdb 85 | *.ipdb 86 | *.pgc 87 | *.pgd 88 | *.rsp 89 | *.sbr 90 | *.tlb 91 | *.tli 92 | *.tlh 93 | *.tmp 94 | *.tmp_proj 95 | *_wpftmp.csproj 96 | *.log 97 | *.vspscc 98 | *.vssscc 99 | .builds 100 | *.pidb 101 | *.svclog 102 | *.scc 103 | 104 | # Chutzpah Test files 105 | _Chutzpah* 106 | 107 | # Visual C++ cache files 108 | ipch/ 109 | *.aps 110 | *.ncb 111 | *.opendb 112 | *.opensdf 113 | *.sdf 114 | *.cachefile 115 | *.VC.db 116 | *.VC.VC.opendb 117 | 118 | # Visual Studio profiler 119 | *.psess 120 | *.vsp 121 | *.vspx 122 | *.sap 123 | 124 | # Visual Studio Trace Files 125 | *.e2e 126 | 127 | # TFS 2012 Local Workspace 128 | $tf/ 129 | 130 | # Guidance Automation Toolkit 131 | *.gpState 132 | 133 | # ReSharper is a .NET coding add-in 134 | _ReSharper*/ 135 | *.[Rr]e[Ss]harper 136 | *.DotSettings.user 137 | 138 | # TeamCity is a build add-in 139 | _TeamCity* 140 | 141 | # DotCover is a Code Coverage Tool 142 | *.dotCover 143 | 144 | # AxoCover is a Code Coverage Tool 145 | .axoCover/* 146 | !.axoCover/settings.json 147 | 148 | # Visual Studio code coverage results 149 | *.coverage 150 | *.coveragexml 151 | 152 | # NCrunch 153 | _NCrunch_* 154 | .*crunch*.local.xml 155 | nCrunchTemp_* 156 | 157 | # MightyMoose 158 | *.mm.* 159 | AutoTest.Net/ 160 | 161 | # Web workbench (sass) 162 | .sass-cache/ 163 | 164 | # Installshield output folder 165 | [Ee]xpress/ 166 | 167 | # DocProject is a documentation generator add-in 168 | DocProject/buildhelp/ 169 | DocProject/Help/*.HxT 170 | DocProject/Help/*.HxC 171 | DocProject/Help/*.hhc 172 | DocProject/Help/*.hhk 173 | DocProject/Help/*.hhp 174 | DocProject/Help/Html2 175 | DocProject/Help/html 176 | 177 | # Click-Once directory 178 | publish/ 179 | 180 | # Publish Web Output 181 | *.[Pp]ublish.xml 182 | *.azurePubxml 183 | # Note: Comment the next line if you want to checkin your web deploy settings, 184 | # but database connection strings (with potential passwords) will be unencrypted 185 | *.pubxml 186 | *.publishproj 187 | 188 | # Microsoft Azure Web App publish settings. Comment the next line if you want to 189 | # checkin your Azure Web App publish settings, but sensitive information contained 190 | # in these scripts will be unencrypted 191 | PublishScripts/ 192 | 193 | # NuGet Packages 194 | *.nupkg 195 | # NuGet Symbol Packages 196 | *.snupkg 197 | # The packages folder can be ignored because of Package Restore 198 | **/[Pp]ackages/* 199 | # except build/, which is used as an MSBuild target. 200 | !**/[Pp]ackages/build/ 201 | # Uncomment if necessary however generally it will be regenerated when needed 202 | #!**/[Pp]ackages/repositories.config 203 | # NuGet v3's project.json files produces more ignorable files 204 | *.nuget.props 205 | *.nuget.targets 206 | 207 | # Microsoft Azure Build Output 208 | csx/ 209 | *.build.csdef 210 | 211 | # Microsoft Azure Emulator 212 | ecf/ 213 | rcf/ 214 | 215 | # Windows Store app package directories and files 216 | AppPackages/ 217 | BundleArtifacts/ 218 | Package.StoreAssociation.xml 219 | _pkginfo.txt 220 | *.appx 221 | *.appxbundle 222 | *.appxupload 223 | 224 | # Visual Studio cache files 225 | # files ending in .cache can be ignored 226 | *.[Cc]ache 227 | # but keep track of directories ending in .cache 228 | !?*.[Cc]ache/ 229 | 230 | # Others 231 | ClientBin/ 232 | ~$* 233 | *~ 234 | *.dbmdl 235 | *.dbproj.schemaview 236 | *.jfm 237 | *.pfx 238 | *.publishsettings 239 | orleans.codegen.cs 240 | 241 | # Including strong name files can present a security risk 242 | # (https://github.com/github/gitignore/pull/2483#issue-259490424) 243 | #*.snk 244 | 245 | # Since there are multiple workflows, uncomment next line to ignore bower_components 246 | # (https://github.com/github/gitignore/pull/1529#issuecomment-104372622) 247 | #bower_components/ 248 | 249 | # RIA/Silverlight projects 250 | Generated_Code/ 251 | 252 | # Backup & report files from converting an old project file 253 | # to a newer Visual Studio version. Backup files are not needed, 254 | # because we have git ;-) 255 | _UpgradeReport_Files/ 256 | Backup*/ 257 | UpgradeLog*.XML 258 | UpgradeLog*.htm 259 | ServiceFabricBackup/ 260 | *.rptproj.bak 261 | 262 | # SQL Server files 263 | *.mdf 264 | *.ldf 265 | *.ndf 266 | 267 | # Business Intelligence projects 268 | *.rdl.data 269 | *.bim.layout 270 | *.bim_*.settings 271 | *.rptproj.rsuser 272 | *- [Bb]ackup.rdl 273 | *- [Bb]ackup ([0-9]).rdl 274 | *- [Bb]ackup ([0-9][0-9]).rdl 275 | 276 | # Microsoft Fakes 277 | FakesAssemblies/ 278 | 279 | # GhostDoc plugin setting file 280 | *.GhostDoc.xml 281 | 282 | # Node.js Tools for Visual Studio 283 | .ntvs_analysis.dat 284 | node_modules/ 285 | 286 | # Visual Studio 6 build log 287 | *.plg 288 | 289 | # Visual Studio 6 workspace options file 290 | *.opt 291 | 292 | # Visual Studio 6 auto-generated workspace file (contains which files were open etc.) 293 | *.vbw 294 | 295 | # Visual Studio LightSwitch build output 296 | **/*.HTMLClient/GeneratedArtifacts 297 | **/*.DesktopClient/GeneratedArtifacts 298 | **/*.DesktopClient/ModelManifest.xml 299 | **/*.Server/GeneratedArtifacts 300 | **/*.Server/ModelManifest.xml 301 | _Pvt_Extensions 302 | 303 | # Paket dependency manager 304 | .paket/paket.exe 305 | paket-files/ 306 | 307 | # FAKE - F# Make 308 | .fake/ 309 | 310 | # CodeRush personal settings 311 | .cr/personal 312 | 313 | # Python Tools for Visual Studio (PTVS) 314 | __pycache__/ 315 | *.pyc 316 | 317 | # Cake - Uncomment if you are using it 318 | # tools/** 319 | # !tools/packages.config 320 | 321 | # Tabs Studio 322 | *.tss 323 | 324 | # Telerik's JustMock configuration file 325 | *.jmconfig 326 | 327 | # BizTalk build output 328 | *.btp.cs 329 | *.btm.cs 330 | *.odx.cs 331 | *.xsd.cs 332 | 333 | # OpenCover UI analysis results 334 | OpenCover/ 335 | 336 | # Azure Stream Analytics local run output 337 | ASALocalRun/ 338 | 339 | # MSBuild Binary and Structured Log 340 | *.binlog 341 | 342 | # NVidia Nsight GPU debugger configuration file 343 | *.nvuser 344 | 345 | # MFractors (Xamarin productivity tool) working folder 346 | .mfractor/ 347 | 348 | # Local History for Visual Studio 349 | .localhistory/ 350 | 351 | # BeatPulse healthcheck temp database 352 | healthchecksdb 353 | 354 | # Backup folder for Package Reference Convert tool in Visual Studio 2017 355 | MigrationBackup/ 356 | 357 | # Ionide (cross platform F# VS Code tools) working folder 358 | .ionide/ 359 | -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | 2 | # Debugging on Hololens 3 | Please read the discussion on [Microsoft's MR & Unity Debugging site](https://docs.microsoft.com/en-us/windows/mixed-reality/develop/unity/managed-debugging-with-unity-il2cpp). 4 | ## Capabilities 5 | To ensure that you can debug a C# application running on the Hololens, you need to select `Internet (Client &Server)` and `Private Networks (Client & Server)` in the appxmanifest of the application - not just in Unity. 6 | 7 | ## Firewall 8 | If you are unable to attach the unity debugger to the application running on the hololens, you may need to adjust your firewall settings. 9 | 10 | From your Start Menu, select `Windows Defender Firewall with Advanced Security`, select `inbound rules`, and ensure that the Microsoft Visual Studio rules are enabled. 11 | 12 | 13 | # Contributing 14 | 15 | This project welcomes contributions and suggestions. Most contributions require you to agree to a 16 | Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us 17 | the rights to use your contribution. For details, visit https://cla.microsoft.com. 18 | 19 | When you submit a pull request, a CLA-bot will automatically determine whether you need to provide 20 | a CLA and decorate the PR appropriately (e.g., label, comment). Simply follow the instructions 21 | provided by the bot. You will only need to do this once across all repos using our CLA. 22 | 23 | This project has adopted the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/). 24 | For more information see the [Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) or 25 | contact [opencode@microsoft.com](mailto:opencode@microsoft.com) with any additional questions or comments. -------------------------------------------------------------------------------- /LICENSE.md: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2020 Cameron E Baird 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # ROS2 Native for UWP & Hololens [**Preview**] 2 | > NOTE: This project is under active development. 3 | 4 | This repository builds the native components as a nuget package or Unity Package Manager package required to support ROS2 on UWP devices and Hololens. The related project [ros_msft_mrtk](https://aka.ms/ros/mrtk), contains a Unity Project, ROS2.net utilities, and Mixed Reality Toolkit assets for Robotics. These projects can be used independently. 5 | 6 | ## Using the ROS2 Nuget in your UWP application 7 | This project builds a nuget package named Microsoft.ROS.MRTK. available from the github release on this repository. 8 | 9 | To consume the nuget package from a UWP application: 10 | 11 | 1. Download the native nuget package from the github release. 12 | 1. Move the downloaded nuget package to a folder on your computer. 13 | 1. In Visual Studio, Create a `local` Nuget Feed by selecting `Tools` -> `Nuget Package Manager` -> `Package Manager Settings`, then selecting `Package Sources`. 14 | 1. Locate Microsoft.ROS.MRTK.Foxy, and install it from the Nubet Package Manager. 15 | 1. Now you can initialize it and perform pub/sub or use Action Client. 16 | 17 | A Native sample project for consuming the nuget package is available in the `examples` directory, allowing a UWP native application to consume ROS2 libraries directly. 18 | 19 | ## Using ROS2 from Unity 20 | This project also builds and publishes a Unity Package Manager package to the npm compatible Azure Artifact Feed for ROS 21 | To consume the output from a Unity application, follow the instructions on the [Unity documentation for adding a new feed](https://docs.unity3d.com/Manual/upm-ui.html), and installing `Microsoft.ROS.MRTK.Foxy` into your project. 22 | 23 | # Building from Source 24 | Building ROS2 & ROS2.net for UWP requires multiple passes, ultimately generating a nuget package or Unity package manager package. 25 | 26 | ## Prerequistes 27 | Please [install ROS2 Foxy for Windows](http://aka.ms/ros/setup_ros2) according to the instructions. (Some of the ROS tooling is required and referenced during the builds.) 28 | 29 | Create a shortcut for building *without a ROS2* environment, such as: 30 | ```cmd 31 | C:\Windows\System32\cmd.exe /k "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Common7\Tools\VsDevCmd.bat" -arch=amd64 -host_arch=amd64 32 | ``` 33 | 34 | ## VCPKG 35 | This repo depends on vcpkg being checked out into `c:\opt`: 36 | 37 | ``` cmd 38 | mkdir c:\opt 39 | cd c:\opt 40 | git clone https://github.com/ooeygui/vcpkg 41 | ``` 42 | 43 | ## Initializing your source tree. 44 | ``` cmd 45 | mkdir c:\ws 46 | cd c:\ws 47 | git clone -b foxy https://github.com/ms-iot/ros_msft_mrtk_native 48 | cd c:\ws\ros_msft_mrtk_native 49 | inittree.cmd 50 | ``` 51 | 52 | ## Building the tools 53 | If you only intend to target one architecture, you can pass one of `/x86`, `/x64`, `/arm`, `/arm64`, `/unity`. Passing no argument will instruct the build scripts to generate binaries for all platforms. The `/unity` flag creates a build of ROS2 which works within the Unity Editor or Windows Desktop Mixed Reality Application. 54 | 55 | 56 | ``` cmd 57 | initvcpkg.cmd [/x86 | /x64 | /arm | /arm64 | /unity] 58 | inittools.cmd [/x86 | /x64 | /arm | /arm64 | /unity] 59 | ``` 60 | 61 | ## Building ROS2 & ROS2.net 62 | > NOTE: there is a sequencing problem with message generation and the .net generator; you may need to build the tree twice to generate messages. 63 | 64 | ``` cmd 65 | build.cmd [/x86 | /x64 | /arm | /arm64 | /unity] 66 | ``` 67 | 68 | ## Building Nuget 69 | 70 | ``` cmd 71 | build_nuget.cmd [/x86 | /x64 | /arm | /arm64 | /unity] 72 | ``` 73 | 74 | ## Building UPM for Unity 75 | 76 | ``` cmd 77 | build_upm.cmd [/x86 | /x64 | /arm | /arm64 | /unity] 78 | ``` 79 | 80 | # Contributing 81 | 82 | This project welcomes contributions and suggestions. Most contributions require you to agree to a 83 | Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us 84 | the rights to use your contribution. For details, visit https://cla.microsoft.com. 85 | 86 | When you submit a pull request, a CLA-bot will automatically determine whether you need to provide 87 | a CLA and decorate the PR appropriately (e.g., label, comment). Simply follow the instructions 88 | provided by the bot. You will only need to do this once across all repos using our CLA. 89 | 90 | This project has adopted the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/). 91 | For more information see the [Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) or 92 | contact [opencode@microsoft.com](mailto:opencode@microsoft.com) with any additional questions or comments. 93 | 94 | # Special Thanks 95 | This project is built on the amazing work by Open Robotics, the ROS2 technical steering committee, eProsima, the ROS2.net developers, and the ROS community. 96 | -------------------------------------------------------------------------------- /azure-pipelines-vcpkg.yml: -------------------------------------------------------------------------------- 1 | trigger: none 2 | pr: none 3 | 4 | jobs: 5 | - job: VCPKGbuild 6 | pool: 7 | vmImage: 'windows-2019' 8 | timeoutInMinutes: 360 9 | steps: 10 | - checkout: self 11 | submodules: recursive 12 | - task: CopyFiles@2 13 | inputs: 14 | targetFolder: '$(Build.StagingDirectory)\_' 15 | - script: | 16 | call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Auxiliary\Build\vcvars64.bat" 17 | call initvcpkg.cmd 18 | displayName: Build ROS2.net dependencies 19 | workingDirectory: '$(Build.StagingDirectory)\_' 20 | - script: | 21 | mkdir %Build_ArtifactStagingDirectory%\zip 22 | 7z a -tzip %Build_ArtifactStagingDirectory%\zip\vcpkg.zip c:\opt\vcpkg -v512m 23 | displayName: Create VCPKG Archive 24 | - task: PublishBuildArtifacts@1 25 | inputs: 26 | pathtoPublish: $(Build.ArtifactStagingDirectory)\zip 27 | artifactName: 'ros2vcpkg' 28 | displayName: Publish vcpkg 29 | -------------------------------------------------------------------------------- /azure-pipelines.yml: -------------------------------------------------------------------------------- 1 | trigger: 2 | - master 3 | 4 | jobs: 5 | - job: Nugetbuild 6 | pool: 7 | vmImage: 'windows-2019' 8 | timeoutInMinutes: 240 9 | steps: 10 | - checkout: self 11 | submodules: recursive 12 | - task: CopyFiles@2 13 | inputs: 14 | targetFolder: '$(Build.StagingDirectory)\_' 15 | - task: UseDotNet@2 16 | displayName: 'Use dotnet sdk 3.x' 17 | inputs: 18 | version: 3.x 19 | - task: DownloadBuildArtifacts@0 20 | inputs: 21 | buildType: 'specific' # Options: current, specific 22 | project: 'mrtk_ros' # Required when source == Specific 23 | pipeline: 141 # Required when source == Specific 24 | buildVersionToDownload: 'latest' # Required when source == Specific# Options: latest, latestFromBranch, specific 25 | artifactName: 'ros2vcpkg' 26 | - script: | 27 | mkdir c:\opt\vcpkg 28 | 7z x %System_ArtifactsDirectory%\ros2vcpkg\vcpkg.zip.001 -oc:\opt 29 | displayName: Initialize vcpkg 30 | - script: | 31 | call inittree.cmd 32 | call inittools.cmd /x64 33 | displayName: Init Tree 34 | continueOnError: true 35 | workingDirectory: '$(Build.StagingDirectory)\_' 36 | - script: | 37 | pushd src 38 | : BUGBUG need to build twice due to the dotnet generator 39 | build.cmd /x64 40 | popd 41 | displayName: Build ROS2 Components x64 (Pass 0) 42 | continueOnError: true 43 | workingDirectory: '$(Build.StagingDirectory)\_' 44 | - script: | 45 | pushd src 46 | : BUGBUG need to build twice due to the dotnet generator 47 | build.cmd /x64 48 | popd 49 | displayName: Build ROS2 Components Unity (Pass 1) 50 | continueOnError: false 51 | workingDirectory: '$(Build.StagingDirectory)\_' 52 | - task: PublishBuildArtifacts@1 53 | inputs: 54 | pathtoPublish: $(Build.StagingDirectory)\_\target\log 55 | artifactName: 'ros2dotnet-log' 56 | condition: always() 57 | - task: NuGetCommand@2 58 | displayName: 'NuGet pack x64' 59 | inputs: 60 | command: pack 61 | basePath: $(Build.StagingDirectory)\_\nuget 62 | packagesToPack: $(Build.StagingDirectory)\_\nuget\Microsoft.ROS.MRTK.Foxy.x64.nuspec 63 | packDestination: '$(Build.ArtifactStagingDirectory)/nuget' 64 | - task: PublishBuildArtifacts@1 65 | displayName: 'NuGet publish x64' 66 | inputs: 67 | pathtoPublish: $(Build.ArtifactStagingDirectory)/nuget 68 | artifactName: 'ros2dotnet-nuget-x64' 69 | - task: NuGetCommand@2 70 | displayName: 'NuGet push all' 71 | inputs: 72 | command: push 73 | packagesToPush: '$(Build.ArtifactStagingDirectory)/nuget/*.nupkg' 74 | publishVstsFeed: $(ROSWinPublicFeedId) 75 | allowPackageConflicts: true 76 | -------------------------------------------------------------------------------- /build.cmd: -------------------------------------------------------------------------------- 1 | : @echo off 2 | setlocal enableextensions disabledelayedexpansion 3 | 4 | if "%VSINSTALLDIR%" == "" ( 5 | if exist "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community" ( 6 | set "VSINSTALLDIR=C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\" 7 | ) 8 | if exist "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise" ( 9 | set "VSINSTALLDIR=C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\" 10 | ) 11 | ) 12 | echo "VSInstallDir is %VSINSTALLDIR%" 13 | 14 | set clean=false 15 | set DEBUG_CMD= 16 | : Call to build the isolated ROS2 build system 17 | set ChocolateyInstall=c:\opt\chocolatey 18 | 19 | set CMAKE_PREFIX_PATH_ORIG=%CMAKE_PREFIX_PATH% 20 | set PATH=c:\opt\chocolatey\bin;C:\opt\python37amd64\;C:\opt\python37amd64\Scripts;C:\opt\python37amd64\DLLs;%PATH% 21 | set PATH_ORIG=%PATH% 22 | 23 | set VCPKG_ROOT=c:\opt\vcpkg 24 | set PYTHONHOME=C:\opt\python37amd64\ 25 | 26 | 27 | :: Parse options 28 | :GETOPTS 29 | if /I "%~1" == "/?" goto USAGE 30 | if /I "%~1" == "/Help" goto USAGE 31 | if /I "%~1" == "/x86" set BUILD=x86 32 | if /I "%~1" == "/x64" set BUILD=x64 33 | if /I "%~1" == "/arm64" set BUILD=arm64 34 | if /I "%~1" == "/arm" set BUILD=arm 35 | if /I "%~1" == "/unity" set BUILD=unity 36 | if /I "%~1" == "/clean" set clean=true 37 | shift 38 | if not (%1)==() goto GETOPTS 39 | 40 | if "%BUILD%"=="x86" goto :build_x86 41 | if "%BUILD%"=="x64" goto :build_x64 42 | if "%BUILD%"=="unity" goto :build_unity 43 | if "%BUILD%"=="arm" goto :build_arm 44 | if "%BUILD%"=="arm64" goto :build_arm64 45 | 46 | :build_unity 47 | setlocal 48 | set ROS2_ARCH=x64 49 | call tools\unity\local_setup.bat 50 | 51 | pushd target 52 | set CMAKE_PREFIX_PATH=C:/opt/vcpkg/installed/x64-windows;%CMAKE_PREFIX_PATH_ORIG% 53 | set PATH=c:\opt\vcpkg;c:\opt\vcpkg\installed\x64-windows\bin;%PATH_ORIG% 54 | call "%VSINSTALLDIR%\VC\Auxiliary\Build\vcvars64.bat" 55 | 56 | if "%clean%"=="true" ( 57 | if exist unity_build rd /s /q unity_build 58 | if exist unity rd /s /q unity 59 | ) 60 | 61 | : Disable Shared Memory when running under unity 62 | : TODO: figure out why shared memory isn't happy 63 | call colcon build --event-handlers console_cohesion+ --merge-install --build-base .\unity_build --install-base .\unity --packages-ignore tf2_bullet tf2_py examples_tf2_py rmw_fastrtps_dynamic_cpp rcl_logging_log4cxx rcl_logging_spdlog ros2trace tracetools_launch tracetools_read tracetools_test tracetools_trace rcldotnet_examples --cmake-args -A %ROS2_ARCH% -DCSHARP_PLATFORM=x64 -DDOTNET_CORE_ARCH=x64 -DCMAKE_SYSTEM_VERSION=10.0 -DTHIRDPARTY=ON -DINSTALL_EXAMPLES=OFF -DBUILD_TESTING=OFF -DSHM_TRANSPORT_DEFAULT=OFF -DRCL_LOGGING_IMPLEMENTATION=rcl_logging_noop --no-warn-unused-cli -DCMAKE_BUILD_TYPE=RelWithDebInfo -Wno-dev 64 | if "%ERRORLEVEL%" NEQ "0" goto :build_fail 65 | if "%BUILD%"=="unity" goto :build_succeeded 66 | 67 | :build_x64 68 | setlocal 69 | set ROS2_ARCH=x64 70 | call tools\x64\local_setup.bat 71 | 72 | pushd target 73 | set CMAKE_PREFIX_PATH=C:/opt/vcpkg/installed/x64-uwp;%CMAKE_PREFIX_PATH_ORIG% 74 | set PATH=c:\opt\vcpkg;c:\opt\vcpkg\installed\x64-uwp\bin;%PATH_ORIG% 75 | call "%VSINSTALLDIR%\VC\Auxiliary\Build\vcvars64.bat" 76 | 77 | if "%clean%"=="true" ( 78 | if exist x64_build rd /s /q x64_build 79 | if exist x64 rd /s /q x64 80 | ) 81 | 82 | call colcon build --event-handlers console_cohesion+ --merge-install --build-base .\x64_build --install-base .\x64 --packages-ignore tf2_bullet tf2_py examples_tf2_py rmw_fastrtps_dynamic_cpp rcl_logging_log4cxx rcl_logging_spdlog ros2trace tracetools_launch tracetools_read tracetools_test tracetools_trace rcldotnet_examples --cmake-args -A %ROS2_ARCH% -DCSHARP_PLATFORM=x64 -DDOTNET_CORE_ARCH=x64 -DCMAKE_SYSTEM_NAME=WindowsStore -DCMAKE_SYSTEM_VERSION=10.0 -DTHIRDPARTY=ON -DINSTALL_EXAMPLES=OFF -DBUILD_TESTING=OFF -DRCL_LOGGING_IMPLEMENTATION=rcl_logging_noop --no-warn-unused-cli -DCMAKE_BUILD_TYPE=RelWithDebInfo -Wno-dev 83 | if "%ERRORLEVEL%" NEQ "0" goto :build_fail 84 | if "%BUILD%"=="x64" goto :build_succeeded 85 | 86 | :build_arm64 87 | setlocal 88 | set ROS2_ARCH=arm64 89 | call tools\arm64\local_setup.bat 90 | 91 | pushd target 92 | set CMAKE_PREFIX_PATH=C:/opt/vcpkg/installed/arm64-uwp;%CMAKE_PREFIX_PATH_ORIG% 93 | set PATH=c:\opt\vcpkg;c:\opt\vcpkg\installed\arm64-uwp\bin;%PATH_ORIG% 94 | call "%VSINSTALLDIR%\VC\Auxiliary\Build\vcvarsamd64_arm64.bat" 95 | 96 | if "%clean%"=="true" ( 97 | if exist arm64_build rd /s /q arm64_build 98 | if exist install rd /s /q install 99 | ) 100 | 101 | call colcon build --event-handlers console_cohesion+ --merge-install --build-base .\arm64_build --install-base .\arm64 --packages-ignore tf2_bullet tf2_py examples_tf2_py rmw_fastrtps_dynamic_cpp rcl_logging_log4cxx rcl_logging_spdlog ros2trace tracetools_launch tracetools_read tracetools_test tracetools_trace rcldotnet_examples --cmake-args -A %ROS2_ARCH% -DCSHARP_PLATFORM=arm64 -DDOTNET_CORE_ARCH=arm64 -DCMAKE_SYSTEM_NAME=WindowsStore -DCMAKE_SYSTEM_VERSION=10.0 -DINSTALL_EXAMPLES=OFF -DBUILD_TESTING=OFF -DRCL_LOGGING_IMPLEMENTATION=rcl_logging_noop --no-warn-unused-cli -DCMAKE_BUILD_TYPE=RelWithDebInfo -Wno-dev 102 | if "%ERRORLEVEL%" NEQ "0" goto :build_fail 103 | if "%BUILD%"=="arm64" goto :build_succeeded 104 | 105 | 106 | 107 | :build_arm 108 | setlocal 109 | set ROS2_ARCH=arm 110 | call tools\arm\local_setup.bat 111 | 112 | pushd target 113 | set CMAKE_PREFIX_PATH=C:/opt/vcpkg/installed/arm-uwp;%CMAKE_PREFIX_PATH_ORIG% 114 | set PATH=c:\opt\vcpkg;c:\opt\vcpkg\installed\arm-uwp\bin;%PATH_ORIG% 115 | call "%VSINSTALLDIR%\VC\Auxiliary\Build\vcvarsamd64_arm.bat" 116 | 117 | if "%clean%"=="true" ( 118 | if exist arm64_build rd /s /q arm64_build 119 | if exist install rd /s /q install 120 | ) 121 | 122 | call colcon build --event-handlers console_cohesion+ --merge-install --build-base .\arm_build --install-base .\arm --packages-ignore tf2_bullet tf2_py examples_tf2_py rmw_fastrtps_dynamic_cpp rcl_logging_log4cxx rcl_logging_spdlog ros2trace tracetools_launch tracetools_read tracetools_test tracetools_trace rcldotnet_examples --cmake-args -A %ROS2_ARCH% -DCSHARP_PLATFORM=arm -DDOTNET_CORE_ARCH=arm -DCMAKE_SYSTEM_NAME=WindowsStore -DCMAKE_SYSTEM_VERSION=10.0 -DINSTALL_EXAMPLES=OFF -DBUILD_TESTING=OFF -DRCL_LOGGING_IMPLEMENTATION=rcl_logging_noop --no-warn-unused-cli -DCMAKE_BUILD_TYPE=RelWithDebInfo -Wno-dev 123 | if "%ERRORLEVEL%" NEQ "0" goto :build_fail 124 | if "%BUILD%"=="arm" goto :build_succeeded 125 | 126 | : build x86 127 | :build_x86 128 | setlocal 129 | : x86 is called Win32 in cmakelandia 130 | set ROS2_ARCH=Win32 131 | call tools\x86\local_setup.bat 132 | 133 | pushd target 134 | set CMAKE_PREFIX_PATH=C:/opt/vcpkg/installed/x86-uwp;%CMAKE_PREFIX_PATH_ORIG% 135 | set PATH=c:\opt\vcpkg;c:\opt\vcpkg\installed\x86-uwp\bin;%PATH_ORIG% 136 | call "%VSINSTALLDIR%\VC\Auxiliary\Build\vcvarsamd64_x86.bat" 137 | 138 | if "%clean%"=="true" ( 139 | if exist x86_build rd /s /q x86_build 140 | if exist x86 rd /s /q x86 141 | ) 142 | 143 | call colcon build --event-handlers console_cohesion+ --merge-install --build-base .\x86_build --install-base .\x86 --packages-ignore tf2_py examples_tf2_py rmw_fastrtps_dynamic_cpp rcl_logging_log4cxx rcl_logging_spdlog ros2trace tracetools_launch tracetools_read tracetools_test tracetools_trace rcldotnet_examples --cmake-args -A %ROS2_ARCH% -DCSHARP_PLATFORM=x86 -DDOTNET_CORE_ARCH=x86 -DCMAKE_SYSTEM_NAME=WindowsStore -DCMAKE_SYSTEM_VERSION=10.0 -DTHIRDPARTY=ON -DINSTALL_EXAMPLES=OFF -DBUILD_TESTING=OFF -DRCL_LOGGING_IMPLEMENTATION=rcl_logging_noop --no-warn-unused-cli -DCMAKE_BUILD_TYPE=RelWithDebInfo -Wno-dev 144 | if "%ERRORLEVEL%" NEQ "0" goto :build_fail 145 | if "%BUILD%"=="x86" goto :build_succeeded 146 | 147 | goto :build_succeeded 148 | 149 | :build_fail 150 | popd 151 | goto :eof 152 | 153 | :USAGE 154 | echo "build [/x64|/x86|/arm64|/arm] [/clean]" 155 | goto :eof 156 | 157 | :build_succeeded 158 | endlocal 159 | popd -------------------------------------------------------------------------------- /build_dotnet.cmd: -------------------------------------------------------------------------------- 1 | : @echo off 2 | setlocal enableextensions disabledelayedexpansion 3 | 4 | if "%VSINSTALLDIR%" == "" ( 5 | if exist "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community" ( 6 | set "VSINSTALLDIR=C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\" 7 | ) 8 | if exist "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise" ( 9 | set "VSINSTALLDIR=C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\" 10 | ) 11 | ) 12 | echo "VSInstallDir is %VSINSTALLDIR%" 13 | 14 | set clean=false 15 | set DEBUG_CMD= 16 | : Call to build the isolated ROS2 build system 17 | set ChocolateyInstall=c:\opt\chocolatey 18 | 19 | set CMAKE_PREFIX_PATH_ORIG=%CMAKE_PREFIX_PATH% 20 | set PATH=c:\opt\chocolatey\bin;C:\opt\python37amd64\;C:\opt\python37amd64\Scripts;C:\opt\python37amd64\DLLs;%PATH% 21 | set PATH_ORIG=%PATH% 22 | 23 | set VCPKG_ROOT=c:\opt\vcpkg 24 | set PYTHONHOME=C:\opt\python37amd64\ 25 | 26 | 27 | :: Parse options 28 | :GETOPTS 29 | if /I "%~1" == "/?" goto USAGE 30 | if /I "%~1" == "/Help" goto USAGE 31 | if /I "%~1" == "/x86" set BUILD=x86 32 | if /I "%~1" == "/x64" set BUILD=x64 33 | if /I "%~1" == "/arm64" set BUILD=arm64 34 | if /I "%~1" == "/arm" set BUILD=arm 35 | if /I "%~1" == "/unity" set BUILD=unity 36 | if /I "%~1" == "/clean" set clean=true 37 | if /I "%~1" == "/debug" set DEBUG_CMD=-DCMAKE_BUILD_TYPE=RelWithDebInfo 38 | shift 39 | if not (%1)==() goto GETOPTS 40 | 41 | if "%BUILD%"=="x86" goto :build_x86 42 | if "%BUILD%"=="x64" goto :build_x64 43 | if "%BUILD%"=="unity" goto :build_unity 44 | if "%BUILD%"=="arm" goto :build_arm 45 | if "%BUILD%"=="arm64" goto :build_arm64 46 | 47 | :build_unity 48 | setlocal 49 | set ROS2_ARCH=x64 50 | call tools\unity\local_setup.bat 51 | call target\unity\local_setup.bat 52 | 53 | pushd ros2dotnet 54 | set CMAKE_PREFIX_PATH=C:/opt/vcpkg/installed/x64-windows;%CMAKE_PREFIX_PATH_ORIG% 55 | set PATH=c:\opt\vcpkg;c:\opt\vcpkg\installed\x64-windows\bin;%PATH_ORIG% 56 | call "%VSINSTALLDIR%\VC\Auxiliary\Build\vcvars64.bat" 57 | 58 | if "%clean%"=="true" ( 59 | if exist unity_build rd /s /q build 60 | if exist unity rd /s /q unity 61 | ) 62 | 63 | call colcon build --event-handlers console_cohesion+ --merge-install --build-base .\unity_build --install-base .\unity --cmake-args -A %ROS2_ARCH% -DCSHARP_PLATFORM=x64 -DDOTNET_CORE_ARCH=x64 -DCMAKE_SYSTEM_VERSION=10.0 -DTHIRDPARTY=ON -DINSTALL_EXAMPLES=OFF -DBUILD_TESTING=OFF -DRCL_LOGGING_IMPLEMENTATION=rcl_logging_noop --no-warn-unused-cli %DEBUG_CMD% -Wno-dev 64 | if "%ERRORLEVEL%" NEQ "0" goto :eof 65 | endlocal 66 | popd 67 | if "%BUILD%"=="unity" goto :eof 68 | 69 | :build_x64 70 | setlocal 71 | set ROS2_ARCH=x64 72 | call tools\x64\local_setup.bat 73 | call target\x64\local_setup.bat 74 | 75 | pushd ros2dotnet 76 | set CMAKE_PREFIX_PATH=C:/opt/vcpkg/installed/x64-uwp;%CMAKE_PREFIX_PATH_ORIG% 77 | set PATH=c:\opt\vcpkg;c:\opt\vcpkg\installed\x64-uwp\bin;%PATH_ORIG% 78 | call "%VSINSTALLDIR%\VC\Auxiliary\Build\vcvars64.bat" 79 | 80 | if "%clean%"=="true" ( 81 | if exist x64_build rd /s /q x64_build 82 | if exist x64 rd /s /q x64 83 | ) 84 | 85 | call colcon build --event-handlers console_cohesion+ --merge-install --build-base .\x64_build --install-base .\x64 --cmake-args -A %ROS2_ARCH% -DCSHARP_PLATFORM=x64 -DDOTNET_CORE_ARCH=x64 -DCMAKE_SYSTEM_NAME=WindowsStore -DCMAKE_SYSTEM_VERSION=10.0 -DTHIRDPARTY=ON -DINSTALL_EXAMPLES=OFF -DBUILD_TESTING=OFF -DRCL_LOGGING_IMPLEMENTATION=rcl_logging_noop --no-warn-unused-cli %DEBUG_CMD% -Wno-dev 86 | if "%ERRORLEVEL%" NEQ "0" goto :build_fail 87 | endlocal 88 | popd 89 | if "%BUILD%"=="x64" goto :eof 90 | 91 | :build_arm64 92 | setlocal 93 | set ROS2_ARCH=arm64 94 | call tools\arm64\local_setup.bat 95 | call target\arm64\local_setup.bat 96 | 97 | pushd ros2dotnet 98 | set CMAKE_PREFIX_PATH=C:/opt/vcpkg/installed/arm64-uwp;%CMAKE_PREFIX_PATH_ORIG% 99 | set PATH=c:\opt\vcpkg;c:\opt\vcpkg\installed\arm64-uwp\bin;%PATH_ORIG% 100 | call "%VSINSTALLDIR%\VC\Auxiliary\Build\vcvarsamd64_arm64.bat" 101 | 102 | if "%clean%"=="true" ( 103 | if exist arm64_build rd /s /q arm64_build 104 | if exist arm64 rd /s /q arm64 105 | ) 106 | 107 | call colcon build --event-handlers console_cohesion+ --merge-install --build-base .\arm64_build --install-base .\arm64 --cmake-args -A %ROS2_ARCH% -DCSHARP_PLATFORM=arm64 -DDOTNET_CORE_ARCH=arm64 -DCMAKE_SYSTEM_NAME=WindowsStore -DCMAKE_SYSTEM_VERSION=10.0 -DINSTALL_EXAMPLES=OFF -DBUILD_TESTING=OFF -DRCL_LOGGING_IMPLEMENTATION=rcl_logging_noop --no-warn-unused-cli %DEBUG_CMD% -Wno-dev 108 | if "%ERRORLEVEL%" NEQ "0" goto :build_fail 109 | endlocal 110 | popd 111 | if "%BUILD%"=="arm64" goto :eof 112 | 113 | 114 | 115 | :build_arm 116 | setlocal 117 | set ROS2_ARCH=arm 118 | call tools\arm\local_setup.bat 119 | call target\arm\local_setup.bat 120 | 121 | pushd ros2dotnet 122 | set CMAKE_PREFIX_PATH=C:/opt/vcpkg/installed/arm-uwp;%CMAKE_PREFIX_PATH_ORIG% 123 | set PATH=c:\opt\vcpkg;c:\opt\vcpkg\installed\arm-uwp\bin;%PATH_ORIG% 124 | call "%VSINSTALLDIR%\VC\Auxiliary\Build\vcvarsamd64_arm.bat" 125 | 126 | if "%clean%"=="true" ( 127 | if exist arm_build rd /s /q arm_build 128 | if exist arm rd /s /q arm 129 | ) 130 | 131 | call colcon build --event-handlers console_cohesion+ --merge-install --build-base .\arm_build --install-base .\arm--cmake-args -A %ROS2_ARCH% -DCSHARP_PLATFORM=arm -DDOTNET_CORE_ARCH=arm -DCMAKE_SYSTEM_NAME=WindowsStore -DCMAKE_SYSTEM_VERSION=10.0 -DINSTALL_EXAMPLES=OFF -DBUILD_TESTING=OFF -DRCL_LOGGING_IMPLEMENTATION=rcl_logging_noop --no-warn-unused-cli %DEBUG_CMD% -Wno-dev 132 | if "%ERRORLEVEL%" NEQ "0" goto :build_fail 133 | endlocal 134 | popd 135 | if "%BUILD%"=="arm" goto :eof 136 | 137 | : build x86 138 | :build_x86 139 | setlocal 140 | : x86 is called Win32 in cmakelandia 141 | set ROS2_ARCH=Win32 142 | call tools\x86\local_setup.bat 143 | call target\x86\local_setup.bat 144 | 145 | pushd ros2dotnet 146 | set CMAKE_PREFIX_PATH=C:/opt/vcpkg/installed/x86-uwp;%CMAKE_PREFIX_PATH_ORIG% 147 | set PATH=c:\opt\vcpkg;c:\opt\vcpkg\installed\x86-uwp\bin;%PATH_ORIG% 148 | call "%VSINSTALLDIR%\VC\Auxiliary\Build\vcvarsamd64_x86.bat" 149 | 150 | if "%clean%"=="true" ( 151 | if exist x86_build rd /s /q x86_build 152 | if exist x86 rd /s /q x86 153 | ) 154 | 155 | call colcon build --event-handlers console_cohesion+ --merge-install --build-base .\x86_build --install-base .\x86 --packages-ignore tf2_py examples_tf2_py rmw_fastrtps_dynamic_cpp rcl_logging_log4cxx rcl_logging_spdlog ros2trace tracetools_launch tracetools_read tracetools_test tracetools_trace rcldotnet_examples --cmake-args -A %ROS2_ARCH% -DCSHARP_PLATFORM=x86 -DDOTNET_CORE_ARCH=x86 -DCMAKE_SYSTEM_NAME=WindowsStore -DCMAKE_SYSTEM_VERSION=10.0 -DTHIRDPARTY=ON -DINSTALL_EXAMPLES=OFF -DBUILD_TESTING=OFF -DRCL_LOGGING_IMPLEMENTATION=rcl_logging_noop --no-warn-unused-cli %DEBUG_CMD% -Wno-dev 156 | if "%ERRORLEVEL%" NEQ "0" goto :build_fail 157 | endlocal 158 | popd 159 | if "%BUILD%"=="x86" goto :eof 160 | 161 | goto :eof 162 | 163 | :build_fail 164 | popd 165 | goto :eof 166 | 167 | :USAGE 168 | echo "build [/x64|/x86|/arm64|/arm] [/clean]" 169 | goto :eof 170 | -------------------------------------------------------------------------------- /build_nuget.cmd: -------------------------------------------------------------------------------- 1 | @echo off 2 | setlocal enableextensions disabledelayedexpansion 3 | 4 | if "%VSINSTALLDIR%" == "" ( 5 | if exist "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community" ( 6 | set "VSINSTALLDIR=C:\Program Files (x86)\Microsoft Visual Studio\2019\Community" 7 | ) 8 | if exist "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise" ( 9 | set "VSINSTALLDIR=C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise" 10 | ) 11 | ) 12 | echo "VSInstallDir is %VSINSTALLDIR%" 13 | 14 | call "%VSINSTALLDIR%\VC\Auxiliary\Build\vcvars64.bat" 15 | 16 | set NUSPEC="Microsoft.ROS.MRTK.Foxy" 17 | 18 | pushd nuget 19 | 20 | :: Parse options 21 | :GETOPTS 22 | if /I "%~1" == "/?" goto USAGE 23 | if /I "%~1" == "/Help" goto USAGE 24 | if /I "%~1" == "/clean" set CLEAN=1 25 | if /I "%~1" == "/nopack" set NOPACK=1 26 | if /I "%~1" == "/arm" set NUSPEC="Microsoft.ROS.MRTK.Foxy.arm" 27 | if /I "%~1" == "/x86" set NUSPEC="Microsoft.ROS.MRTK.Foxy.x86" 28 | if /I "%~1" == "/x64" set NUSPEC="Microsoft.ROS.MRTK.Foxy.x64" 29 | if /I "%~1" == "/arm64" set NUSPEC="Microsoft.ROS.MRTK.Foxy.arm64" 30 | if /I "%~1" == "/unity" set NUSPEC="Microsoft.ROS.MRTK.Foxy.unity" 31 | shift 32 | if not (%1)==() goto GETOPTS 33 | 34 | echo Cleaning outputs 35 | del %NUSPEC%.nupkg 2> NUL 36 | 37 | :: if a clean was requested, exit here 38 | if "%CLEAN%"=="1" goto end 39 | 40 | :: skip packaging step if requested 41 | if "%NOPACK%"=="1" goto end 42 | 43 | echo Creating NuGet Package 44 | nuget help > NUL 45 | IF ERRORLEVEL 1 ( 46 | echo Please install nuget.exe from http://nuget.org 47 | goto err 48 | ) 49 | 50 | nuget pack %NUSPEC%.nuspec -NoPackageAnalysis || goto err 51 | 52 | :end 53 | popd 54 | 55 | echo Success 56 | exit /b 0 57 | 58 | :err 59 | popd 60 | echo Script failed! 61 | exit /b 1 -------------------------------------------------------------------------------- /build_tools.repos: -------------------------------------------------------------------------------- 1 | repositories: 2 | ament/ament_cmake: 3 | type: git 4 | url: https://github.com/ament/ament_cmake.git 5 | version: foxy 6 | ament/ament_index: 7 | type: git 8 | url: https://github.com/ament/ament_index.git 9 | version: foxy 10 | ament/ament_lint: 11 | type: git 12 | url: https://github.com/ament/ament_lint.git 13 | version: foxy 14 | ament/ament_package: 15 | type: git 16 | url: https://github.com/ament/ament_package.git 17 | version: foxy 18 | -------------------------------------------------------------------------------- /build_upm.cmd: -------------------------------------------------------------------------------- 1 | @echo off 2 | pushd upm 3 | @"%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe" -NoProfile -InputFormat None -ExecutionPolicy Bypass -Command ".\build_upm.ps1" 4 | popd -------------------------------------------------------------------------------- /example/uwp_cpp/App.xaml: -------------------------------------------------------------------------------- 1 |  6 | 7 | 8 | -------------------------------------------------------------------------------- /example/uwp_cpp/App.xaml.cpp: -------------------------------------------------------------------------------- 1 | // 2 | // App.xaml.cpp 3 | // Implementation of the App class. 4 | // 5 | 6 | #include "pch.h" 7 | #include "MainPage.xaml.h" 8 | 9 | using namespace uwp_cpp; 10 | 11 | using namespace Platform; 12 | using namespace Windows::ApplicationModel; 13 | using namespace Windows::ApplicationModel::Activation; 14 | using namespace Windows::Foundation; 15 | using namespace Windows::Foundation::Collections; 16 | using namespace Windows::UI::Xaml; 17 | using namespace Windows::UI::Xaml::Controls; 18 | using namespace Windows::UI::Xaml::Controls::Primitives; 19 | using namespace Windows::UI::Xaml::Data; 20 | using namespace Windows::UI::Xaml::Input; 21 | using namespace Windows::UI::Xaml::Interop; 22 | using namespace Windows::UI::Xaml::Media; 23 | using namespace Windows::UI::Xaml::Navigation; 24 | 25 | /// 26 | /// Initializes the singleton application object. This is the first line of authored code 27 | /// executed, and as such is the logical equivalent of main() or WinMain(). 28 | /// 29 | App::App() 30 | { 31 | InitializeComponent(); 32 | Suspending += ref new SuspendingEventHandler(this, &App::OnSuspending); 33 | } 34 | 35 | /// 36 | /// Invoked when the application is launched normally by the end user. Other entry points 37 | /// will be used such as when the application is launched to open a specific file. 38 | /// 39 | /// Details about the launch request and process. 40 | void App::OnLaunched(Windows::ApplicationModel::Activation::LaunchActivatedEventArgs^ e) 41 | { 42 | auto rootFrame = dynamic_cast(Window::Current->Content); 43 | 44 | // Do not repeat app initialization when the Window already has content, 45 | // just ensure that the window is active 46 | if (rootFrame == nullptr) 47 | { 48 | // Create a Frame to act as the navigation context and associate it with 49 | // a SuspensionManager key 50 | rootFrame = ref new Frame(); 51 | 52 | rootFrame->NavigationFailed += ref new Windows::UI::Xaml::Navigation::NavigationFailedEventHandler(this, &App::OnNavigationFailed); 53 | 54 | if (e->PreviousExecutionState == ApplicationExecutionState::Terminated) 55 | { 56 | // TODO: Restore the saved session state only when appropriate, scheduling the 57 | // final launch steps after the restore is complete 58 | 59 | } 60 | 61 | if (e->PrelaunchActivated == false) 62 | { 63 | if (rootFrame->Content == nullptr) 64 | { 65 | // When the navigation stack isn't restored navigate to the first page, 66 | // configuring the new page by passing required information as a navigation 67 | // parameter 68 | rootFrame->Navigate(TypeName(MainPage::typeid), e->Arguments); 69 | } 70 | // Place the frame in the current Window 71 | Window::Current->Content = rootFrame; 72 | // Ensure the current window is active 73 | Window::Current->Activate(); 74 | } 75 | } 76 | else 77 | { 78 | if (e->PrelaunchActivated == false) 79 | { 80 | if (rootFrame->Content == nullptr) 81 | { 82 | // When the navigation stack isn't restored navigate to the first page, 83 | // configuring the new page by passing required information as a navigation 84 | // parameter 85 | rootFrame->Navigate(TypeName(MainPage::typeid), e->Arguments); 86 | } 87 | // Ensure the current window is active 88 | Window::Current->Activate(); 89 | } 90 | } 91 | 92 | 93 | try 94 | { 95 | rcutils_logging_set_logger_level("", 0); 96 | 97 | rclcpp::init(0, nullptr); 98 | auto minSubscriber = std::make_shared(); 99 | rclcpp::spin(minSubscriber); 100 | } 101 | catch (...) 102 | { 103 | rcl_error_string_t prev_error_string = rcl_get_error_string(); 104 | OutputDebugStringA(prev_error_string.str); 105 | OutputDebugStringA("\n"); 106 | 107 | } 108 | } 109 | 110 | /// 111 | /// Invoked when application execution is being suspended. Application state is saved 112 | /// without knowing whether the application will be terminated or resumed with the contents 113 | /// of memory still intact. 114 | /// 115 | /// The source of the suspend request. 116 | /// Details about the suspend request. 117 | void App::OnSuspending(Object^ sender, SuspendingEventArgs^ e) 118 | { 119 | (void) sender; // Unused parameter 120 | (void) e; // Unused parameter 121 | 122 | //TODO: Save application state and stop any background activity 123 | } 124 | 125 | /// 126 | /// Invoked when Navigation to a certain page fails 127 | /// 128 | /// The Frame which failed navigation 129 | /// Details about the navigation failure 130 | void App::OnNavigationFailed(Platform::Object ^sender, Windows::UI::Xaml::Navigation::NavigationFailedEventArgs ^e) 131 | { 132 | throw ref new FailureException("Failed to load Page " + e->SourcePageType.Name); 133 | } -------------------------------------------------------------------------------- /example/uwp_cpp/App.xaml.h: -------------------------------------------------------------------------------- 1 | // 2 | // App.xaml.h 3 | // Declaration of the App class. 4 | // 5 | 6 | #pragma once 7 | 8 | #include "App.g.h" 9 | 10 | namespace uwp_cpp 11 | { 12 | /// 13 | /// Provides application-specific behavior to supplement the default Application class. 14 | /// 15 | ref class App sealed 16 | { 17 | protected: 18 | virtual void OnLaunched(Windows::ApplicationModel::Activation::LaunchActivatedEventArgs^ e) override; 19 | 20 | internal: 21 | App(); 22 | 23 | private: 24 | void OnSuspending(Platform::Object^ sender, Windows::ApplicationModel::SuspendingEventArgs^ e); 25 | void OnNavigationFailed(Platform::Object ^sender, Windows::UI::Xaml::Navigation::NavigationFailedEventArgs ^e); 26 | }; 27 | } 28 | -------------------------------------------------------------------------------- /example/uwp_cpp/Assets/LockScreenLogo.scale-200.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ms-iot/ros_msft_mrtk_native/44b6f45669e2ff0f7554af7027ace5bc949139d8/example/uwp_cpp/Assets/LockScreenLogo.scale-200.png -------------------------------------------------------------------------------- /example/uwp_cpp/Assets/SplashScreen.scale-200.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ms-iot/ros_msft_mrtk_native/44b6f45669e2ff0f7554af7027ace5bc949139d8/example/uwp_cpp/Assets/SplashScreen.scale-200.png -------------------------------------------------------------------------------- /example/uwp_cpp/Assets/Square150x150Logo.scale-200.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ms-iot/ros_msft_mrtk_native/44b6f45669e2ff0f7554af7027ace5bc949139d8/example/uwp_cpp/Assets/Square150x150Logo.scale-200.png -------------------------------------------------------------------------------- /example/uwp_cpp/Assets/Square44x44Logo.scale-200.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ms-iot/ros_msft_mrtk_native/44b6f45669e2ff0f7554af7027ace5bc949139d8/example/uwp_cpp/Assets/Square44x44Logo.scale-200.png -------------------------------------------------------------------------------- /example/uwp_cpp/Assets/Square44x44Logo.targetsize-24_altform-unplated.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ms-iot/ros_msft_mrtk_native/44b6f45669e2ff0f7554af7027ace5bc949139d8/example/uwp_cpp/Assets/Square44x44Logo.targetsize-24_altform-unplated.png -------------------------------------------------------------------------------- /example/uwp_cpp/Assets/StoreLogo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ms-iot/ros_msft_mrtk_native/44b6f45669e2ff0f7554af7027ace5bc949139d8/example/uwp_cpp/Assets/StoreLogo.png -------------------------------------------------------------------------------- /example/uwp_cpp/Assets/Wide310x150Logo.scale-200.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ms-iot/ros_msft_mrtk_native/44b6f45669e2ff0f7554af7027ace5bc949139d8/example/uwp_cpp/Assets/Wide310x150Logo.scale-200.png -------------------------------------------------------------------------------- /example/uwp_cpp/MainPage.xaml: -------------------------------------------------------------------------------- 1 |  10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /example/uwp_cpp/MainPage.xaml.cpp: -------------------------------------------------------------------------------- 1 | // 2 | // MainPage.xaml.cpp 3 | // Implementation of the MainPage class. 4 | // 5 | 6 | #include "pch.h" 7 | #include "MainPage.xaml.h" 8 | 9 | using namespace uwp_cpp; 10 | using namespace Platform; 11 | using namespace Windows::Foundation; 12 | using namespace Windows::Foundation::Collections; 13 | using namespace Windows::UI::Xaml; 14 | using namespace Windows::UI::Xaml::Controls; 15 | using namespace Windows::UI::Xaml::Controls::Primitives; 16 | using namespace Windows::UI::Xaml::Data; 17 | using namespace Windows::UI::Xaml::Input; 18 | using namespace Windows::UI::Xaml::Media; 19 | using namespace Windows::UI::Xaml::Navigation; 20 | 21 | // The Blank Page item template is documented at https://go.microsoft.com/fwlink/?LinkId=402352&clcid=0x409 22 | const std::string minsub = "minimal_subscriber"; 23 | 24 | using std::placeholders::_1; 25 | MinimalSubscriber::MinimalSubscriber() 26 | : Node(minsub) 27 | { 28 | subscription_ = this->create_subscription( 29 | "/chatter", 10, std::bind(&MinimalSubscriber::topic_callback, this, _1)); 30 | } 31 | 32 | void MinimalSubscriber ::topic_callback(const std_msgs::msg::String::SharedPtr msg) const 33 | { 34 | OutputDebugStringA(msg->data.c_str()); 35 | OutputDebugStringA("\n"); 36 | } 37 | 38 | MainPage::MainPage() 39 | { 40 | InitializeComponent(); 41 | 42 | } 43 | -------------------------------------------------------------------------------- /example/uwp_cpp/MainPage.xaml.h: -------------------------------------------------------------------------------- 1 | // 2 | // MainPage.xaml.h 3 | // Declaration of the MainPage class. 4 | // 5 | 6 | #pragma once 7 | 8 | #include "MainPage.g.h" 9 | #include "rclcpp/rclcpp.hpp" 10 | #include "std_msgs/msg/string.hpp" 11 | 12 | namespace uwp_cpp 13 | { 14 | 15 | class MinimalSubscriber : public rclcpp::Node 16 | { 17 | rclcpp::Subscription::SharedPtr subscription_; 18 | void topic_callback(const std_msgs::msg::String::SharedPtr msg) const; 19 | 20 | public: 21 | MinimalSubscriber(); 22 | 23 | 24 | }; 25 | 26 | 27 | /// 28 | /// An empty page that can be used on its own or navigated to within a Frame. 29 | /// 30 | public ref class MainPage sealed 31 | { 32 | std::shared_ptr _minSubscriber; 33 | 34 | Concurrency::task _task; 35 | 36 | public: 37 | MainPage(); 38 | 39 | }; 40 | } 41 | -------------------------------------------------------------------------------- /example/uwp_cpp/Package.appxmanifest: -------------------------------------------------------------------------------- 1 |  2 | 3 | 8 | 9 | 13 | 14 | 15 | 16 | 17 | uwp_cpp 18 | lamadio 19 | Assets\StoreLogo.png 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 34 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | -------------------------------------------------------------------------------- /example/uwp_cpp/packages.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | -------------------------------------------------------------------------------- /example/uwp_cpp/pch.cpp: -------------------------------------------------------------------------------- 1 | // 2 | // pch.cpp 3 | // 4 | 5 | #include "pch.h" 6 | -------------------------------------------------------------------------------- /example/uwp_cpp/pch.h: -------------------------------------------------------------------------------- 1 | // 2 | // pch.h 3 | // 4 | 5 | #pragma once 6 | 7 | #include 8 | #include 9 | 10 | #include "App.xaml.h" 11 | -------------------------------------------------------------------------------- /example/uwp_cpp/uwp_cpp.sln: -------------------------------------------------------------------------------- 1 |  2 | Microsoft Visual Studio Solution File, Format Version 12.00 3 | # Visual Studio Version 16 4 | VisualStudioVersion = 16.0.31112.23 5 | MinimumVisualStudioVersion = 10.0.40219.1 6 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "uwp_cpp", "uwp_cpp.vcxproj", "{5C25076C-0A82-435F-9B46-9A902F066712}" 7 | EndProject 8 | Global 9 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 10 | Debug|ARM = Debug|ARM 11 | Debug|ARM64 = Debug|ARM64 12 | Debug|x64 = Debug|x64 13 | Debug|x86 = Debug|x86 14 | Release|ARM = Release|ARM 15 | Release|ARM64 = Release|ARM64 16 | Release|x64 = Release|x64 17 | Release|x86 = Release|x86 18 | EndGlobalSection 19 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 20 | {5C25076C-0A82-435F-9B46-9A902F066712}.Debug|ARM.ActiveCfg = Debug|ARM 21 | {5C25076C-0A82-435F-9B46-9A902F066712}.Debug|ARM.Build.0 = Debug|ARM 22 | {5C25076C-0A82-435F-9B46-9A902F066712}.Debug|ARM.Deploy.0 = Debug|ARM 23 | {5C25076C-0A82-435F-9B46-9A902F066712}.Debug|ARM64.ActiveCfg = Debug|ARM64 24 | {5C25076C-0A82-435F-9B46-9A902F066712}.Debug|ARM64.Build.0 = Debug|ARM64 25 | {5C25076C-0A82-435F-9B46-9A902F066712}.Debug|ARM64.Deploy.0 = Debug|ARM64 26 | {5C25076C-0A82-435F-9B46-9A902F066712}.Debug|x64.ActiveCfg = Debug|x64 27 | {5C25076C-0A82-435F-9B46-9A902F066712}.Debug|x64.Build.0 = Debug|x64 28 | {5C25076C-0A82-435F-9B46-9A902F066712}.Debug|x64.Deploy.0 = Debug|x64 29 | {5C25076C-0A82-435F-9B46-9A902F066712}.Debug|x86.ActiveCfg = Debug|Win32 30 | {5C25076C-0A82-435F-9B46-9A902F066712}.Debug|x86.Build.0 = Debug|Win32 31 | {5C25076C-0A82-435F-9B46-9A902F066712}.Debug|x86.Deploy.0 = Debug|Win32 32 | {5C25076C-0A82-435F-9B46-9A902F066712}.Release|ARM.ActiveCfg = Release|ARM 33 | {5C25076C-0A82-435F-9B46-9A902F066712}.Release|ARM.Build.0 = Release|ARM 34 | {5C25076C-0A82-435F-9B46-9A902F066712}.Release|ARM.Deploy.0 = Release|ARM 35 | {5C25076C-0A82-435F-9B46-9A902F066712}.Release|ARM64.ActiveCfg = Release|ARM64 36 | {5C25076C-0A82-435F-9B46-9A902F066712}.Release|ARM64.Build.0 = Release|ARM64 37 | {5C25076C-0A82-435F-9B46-9A902F066712}.Release|ARM64.Deploy.0 = Release|ARM64 38 | {5C25076C-0A82-435F-9B46-9A902F066712}.Release|x64.ActiveCfg = Release|x64 39 | {5C25076C-0A82-435F-9B46-9A902F066712}.Release|x64.Build.0 = Release|x64 40 | {5C25076C-0A82-435F-9B46-9A902F066712}.Release|x64.Deploy.0 = Release|x64 41 | {5C25076C-0A82-435F-9B46-9A902F066712}.Release|x86.ActiveCfg = Release|Win32 42 | {5C25076C-0A82-435F-9B46-9A902F066712}.Release|x86.Build.0 = Release|Win32 43 | {5C25076C-0A82-435F-9B46-9A902F066712}.Release|x86.Deploy.0 = Release|Win32 44 | EndGlobalSection 45 | GlobalSection(SolutionProperties) = preSolution 46 | HideSolutionNode = FALSE 47 | EndGlobalSection 48 | GlobalSection(ExtensibilityGlobals) = postSolution 49 | SolutionGuid = {E19015F3-30CA-40B9-85DF-DB0B53FB9646} 50 | EndGlobalSection 51 | EndGlobal 52 | -------------------------------------------------------------------------------- /example/uwp_cpp/uwp_cpp.vcxproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | {5c25076c-0a82-435f-9b46-9a902f066712} 5 | uwp_cpp 6 | en-US 7 | 14.0 8 | true 9 | Windows Store 10 | 10.0.19041.0 11 | 10.0.19041.0 12 | 10.0 13 | false 14 | 15 | 16 | 17 | 18 | Debug 19 | ARM 20 | 21 | 22 | Debug 23 | ARM64 24 | 25 | 26 | Debug 27 | Win32 28 | 29 | 30 | Debug 31 | x64 32 | 33 | 34 | Release 35 | ARM 36 | 37 | 38 | Release 39 | ARM64 40 | 41 | 42 | Release 43 | Win32 44 | 45 | 46 | Release 47 | x64 48 | 49 | 50 | 51 | Application 52 | true 53 | v142 54 | 55 | 56 | Application 57 | true 58 | v142 59 | 60 | 61 | Application 62 | true 63 | v142 64 | 65 | 66 | Application 67 | true 68 | v142 69 | true 70 | 71 | 72 | Application 73 | false 74 | true 75 | v142 76 | true 77 | 78 | 79 | Application 80 | false 81 | true 82 | v142 83 | true 84 | 85 | 86 | Application 87 | false 88 | true 89 | v142 90 | true 91 | 92 | 93 | Application 94 | false 95 | true 96 | v142 97 | true 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | /bigobj %(AdditionalOptions) 124 | 4453;28204 125 | 126 | 127 | 128 | 129 | /bigobj %(AdditionalOptions) 130 | 4453;28204 131 | 132 | 133 | 134 | 135 | /bigobj %(AdditionalOptions) 136 | 4453;28204 137 | 138 | 139 | 140 | 141 | /bigobj %(AdditionalOptions) 142 | 4453;28204 143 | 144 | 145 | 146 | 147 | /bigobj %(AdditionalOptions) 148 | 4453;28204 149 | 150 | 151 | 152 | 153 | /bigobj %(AdditionalOptions) 154 | 4453;28204 155 | 156 | 157 | 158 | 159 | /bigobj %(AdditionalOptions) 160 | 4453;28204 161 | stdcpp14 162 | 163 | 164 | WindowsApp.lib;%(AdditionalDependencies) 165 | C:\ws\ros_msft_mrtk_native\example\uwp_cpp\packages\Microsoft.ROS.MRTK.Foxy.x64.0.1.0\runtimes\win10-x64\native 166 | 167 | 168 | 169 | 170 | /bigobj %(AdditionalOptions) 171 | 4453;28204 172 | 173 | 174 | WindowsApp.lib;%(AdditionalDependencies) 175 | 176 | 177 | 178 | 179 | 180 | 181 | 182 | App.xaml 183 | 184 | 185 | MainPage.xaml 186 | 187 | 188 | 189 | 190 | Designer 191 | 192 | 193 | Designer 194 | 195 | 196 | 197 | 198 | Designer 199 | 200 | 201 | 202 | 203 | 204 | 205 | 206 | 207 | 208 | 209 | 210 | 211 | 212 | App.xaml 213 | 214 | 215 | MainPage.xaml 216 | 217 | 218 | Create 219 | Create 220 | Create 221 | Create 222 | Create 223 | Create 224 | Create 225 | Create 226 | 227 | 228 | 229 | 230 | 231 | 232 | 233 | 234 | 235 | 236 | 237 | This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. 238 | 239 | 240 | 241 | -------------------------------------------------------------------------------- /example/uwp_cpp/uwp_cpp.vcxproj.filters: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 5c25076c-0a82-435f-9b46-9a902f066712 6 | 7 | 8 | 19734fa7-794b-46b9-b469-4644ad5f659f 9 | bmp;fbx;gif;jpg;jpeg;tga;tiff;tif;png 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | Assets 24 | 25 | 26 | Assets 27 | 28 | 29 | Assets 30 | 31 | 32 | Assets 33 | 34 | 35 | Assets 36 | 37 | 38 | Assets 39 | 40 | 41 | Assets 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | -------------------------------------------------------------------------------- /example/uwp_cs/App.xaml: -------------------------------------------------------------------------------- 1 |  6 | 7 | 8 | -------------------------------------------------------------------------------- /example/uwp_cs/App.xaml.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.IO; 4 | using System.Linq; 5 | using System.Runtime.InteropServices.WindowsRuntime; 6 | using Windows.ApplicationModel; 7 | using Windows.ApplicationModel.Activation; 8 | using Windows.Foundation; 9 | using Windows.Foundation.Collections; 10 | using Windows.UI.Xaml; 11 | using Windows.UI.Xaml.Controls; 12 | using Windows.UI.Xaml.Controls.Primitives; 13 | using Windows.UI.Xaml.Data; 14 | using Windows.UI.Xaml.Input; 15 | using Windows.UI.Xaml.Media; 16 | using Windows.UI.Xaml.Navigation; 17 | 18 | namespace uwp_cs 19 | { 20 | /// 21 | /// Provides application-specific behavior to supplement the default Application class. 22 | /// 23 | sealed partial class App : Application 24 | { 25 | /// 26 | /// Initializes the singleton application object. This is the first line of authored code 27 | /// executed, and as such is the logical equivalent of main() or WinMain(). 28 | /// 29 | public App() 30 | { 31 | this.InitializeComponent(); 32 | this.Suspending += OnSuspending; 33 | } 34 | 35 | /// 36 | /// Invoked when the application is launched normally by the end user. Other entry points 37 | /// will be used such as when the application is launched to open a specific file. 38 | /// 39 | /// Details about the launch request and process. 40 | protected override void OnLaunched(LaunchActivatedEventArgs e) 41 | { 42 | Frame rootFrame = Window.Current.Content as Frame; 43 | 44 | // Do not repeat app initialization when the Window already has content, 45 | // just ensure that the window is active 46 | if (rootFrame == null) 47 | { 48 | // Create a Frame to act as the navigation context and navigate to the first page 49 | rootFrame = new Frame(); 50 | 51 | rootFrame.NavigationFailed += OnNavigationFailed; 52 | 53 | if (e.PreviousExecutionState == ApplicationExecutionState.Terminated) 54 | { 55 | //TODO: Load state from previously suspended application 56 | } 57 | 58 | // Place the frame in the current Window 59 | Window.Current.Content = rootFrame; 60 | } 61 | 62 | if (e.PrelaunchActivated == false) 63 | { 64 | if (rootFrame.Content == null) 65 | { 66 | // When the navigation stack isn't restored navigate to the first page, 67 | // configuring the new page by passing required information as a navigation 68 | // parameter 69 | rootFrame.Navigate(typeof(MainPage), e.Arguments); 70 | } 71 | // Ensure the current window is active 72 | Window.Current.Activate(); 73 | } 74 | } 75 | 76 | /// 77 | /// Invoked when Navigation to a certain page fails 78 | /// 79 | /// The Frame which failed navigation 80 | /// Details about the navigation failure 81 | void OnNavigationFailed(object sender, NavigationFailedEventArgs e) 82 | { 83 | throw new Exception("Failed to load Page " + e.SourcePageType.FullName); 84 | } 85 | 86 | /// 87 | /// Invoked when application execution is being suspended. Application state is saved 88 | /// without knowing whether the application will be terminated or resumed with the contents 89 | /// of memory still intact. 90 | /// 91 | /// The source of the suspend request. 92 | /// Details about the suspend request. 93 | private void OnSuspending(object sender, SuspendingEventArgs e) 94 | { 95 | var deferral = e.SuspendingOperation.GetDeferral(); 96 | //TODO: Save application state and stop any background activity 97 | deferral.Complete(); 98 | } 99 | } 100 | } 101 | -------------------------------------------------------------------------------- /example/uwp_cs/Assets/LockScreenLogo.scale-200.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ms-iot/ros_msft_mrtk_native/44b6f45669e2ff0f7554af7027ace5bc949139d8/example/uwp_cs/Assets/LockScreenLogo.scale-200.png -------------------------------------------------------------------------------- /example/uwp_cs/Assets/SplashScreen.scale-200.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ms-iot/ros_msft_mrtk_native/44b6f45669e2ff0f7554af7027ace5bc949139d8/example/uwp_cs/Assets/SplashScreen.scale-200.png -------------------------------------------------------------------------------- /example/uwp_cs/Assets/Square150x150Logo.scale-200.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ms-iot/ros_msft_mrtk_native/44b6f45669e2ff0f7554af7027ace5bc949139d8/example/uwp_cs/Assets/Square150x150Logo.scale-200.png -------------------------------------------------------------------------------- /example/uwp_cs/Assets/Square44x44Logo.scale-200.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ms-iot/ros_msft_mrtk_native/44b6f45669e2ff0f7554af7027ace5bc949139d8/example/uwp_cs/Assets/Square44x44Logo.scale-200.png -------------------------------------------------------------------------------- /example/uwp_cs/Assets/Square44x44Logo.targetsize-24_altform-unplated.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ms-iot/ros_msft_mrtk_native/44b6f45669e2ff0f7554af7027ace5bc949139d8/example/uwp_cs/Assets/Square44x44Logo.targetsize-24_altform-unplated.png -------------------------------------------------------------------------------- /example/uwp_cs/Assets/StoreLogo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ms-iot/ros_msft_mrtk_native/44b6f45669e2ff0f7554af7027ace5bc949139d8/example/uwp_cs/Assets/StoreLogo.png -------------------------------------------------------------------------------- /example/uwp_cs/Assets/Wide310x150Logo.scale-200.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ms-iot/ros_msft_mrtk_native/44b6f45669e2ff0f7554af7027ace5bc949139d8/example/uwp_cs/Assets/Wide310x150Logo.scale-200.png -------------------------------------------------------------------------------- /example/uwp_cs/MainPage.xaml: -------------------------------------------------------------------------------- 1 |  10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /example/uwp_cs/MainPage.xaml.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.IO; 4 | using System.Linq; 5 | using System.Threading.Tasks; 6 | using System.Runtime.InteropServices.WindowsRuntime; 7 | using Windows.Foundation; 8 | using Windows.Foundation.Collections; 9 | using Windows.UI.Xaml; 10 | using Windows.UI.Xaml.Controls; 11 | using Windows.UI.Xaml.Controls.Primitives; 12 | using Windows.UI.Xaml.Data; 13 | using Windows.UI.Xaml.Input; 14 | using Windows.UI.Xaml.Media; 15 | using Windows.UI.Xaml.Navigation; 16 | using ROS2; 17 | using ROS2.Utils; 18 | 19 | // The Blank Page item template is documented at https://go.microsoft.com/fwlink/?LinkId=402352&clcid=0x409 20 | 21 | namespace uwp_cs 22 | { 23 | /// 24 | /// An empty page that can be used on its own or navigated to within a Frame. 25 | /// 26 | public sealed partial class MainPage : Page 27 | { 28 | public MainPage() 29 | { 30 | this.InitializeComponent(); 31 | 32 | Task.Run(() => 33 | { 34 | RCLdotnet.Init(); 35 | 36 | Console.WriteLine($"ROS RMW: [{RCLdotnet.GetRMWIdentifier()}]"); 37 | 38 | INode node = RCLdotnet.CreateNode("listener"); 39 | 40 | ISubscription chatter_sub = node.CreateSubscription( 41 | "/chatter", msg => 42 | { 43 | Console.WriteLine($"I heard: [{msg.Data}]"); 44 | }); 45 | 46 | RCLdotnet.Spin(node); 47 | }); 48 | } 49 | 50 | 51 | } 52 | } 53 | -------------------------------------------------------------------------------- /example/uwp_cs/Package.appxmanifest: -------------------------------------------------------------------------------- 1 |  2 | 3 | 8 | 9 | 13 | 14 | 15 | 16 | 17 | uwp_cs 18 | lamadio 19 | Assets\StoreLogo.png 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 34 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | -------------------------------------------------------------------------------- /example/uwp_cs/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | // General Information about an assembly is controlled through the following 6 | // set of attributes. Change these attribute values to modify the information 7 | // associated with an assembly. 8 | [assembly: AssemblyTitle("uwp_cs")] 9 | [assembly: AssemblyDescription("")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyCompany("")] 12 | [assembly: AssemblyProduct("uwp_cs")] 13 | [assembly: AssemblyCopyright("Copyright © 2021")] 14 | [assembly: AssemblyTrademark("")] 15 | [assembly: AssemblyCulture("")] 16 | 17 | // Version information for an assembly consists of the following four values: 18 | // 19 | // Major Version 20 | // Minor Version 21 | // Build Number 22 | // Revision 23 | // 24 | // You can specify all the values or you can default the Build and Revision Numbers 25 | // by using the '*' as shown below: 26 | // [assembly: AssemblyVersion("1.0.*")] 27 | [assembly: AssemblyVersion("1.0.0.0")] 28 | [assembly: AssemblyFileVersion("1.0.0.0")] 29 | [assembly: ComVisible(false)] -------------------------------------------------------------------------------- /example/uwp_cs/Properties/Default.rd.xml: -------------------------------------------------------------------------------- 1 | 17 | 18 | 19 | 20 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | -------------------------------------------------------------------------------- /example/uwp_cs/uwp_cs.csproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | Debug 6 | x86 7 | {1ED2D3D9-925F-487D-ADF5-AC1AB2F1974B} 8 | AppContainerExe 9 | Properties 10 | uwp_cs 11 | uwp_cs 12 | en-US 13 | UAP 14 | 10.0.19041.0 15 | 10.0.19041.0 16 | 14 17 | 512 18 | {A5A43C5B-DE2A-4C0C-9213-0A381AF9435A};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} 19 | true 20 | false 21 | 22 | 23 | true 24 | bin\x86\Debug\ 25 | DEBUG;TRACE;NETFX_CORE;WINDOWS_UWP 26 | ;2008 27 | full 28 | x86 29 | false 30 | prompt 31 | true 32 | 33 | 34 | bin\x86\Release\ 35 | TRACE;NETFX_CORE;WINDOWS_UWP 36 | true 37 | ;2008 38 | pdbonly 39 | x86 40 | false 41 | prompt 42 | true 43 | true 44 | 45 | 46 | true 47 | bin\ARM\Debug\ 48 | DEBUG;TRACE;NETFX_CORE;WINDOWS_UWP 49 | ;2008 50 | full 51 | ARM 52 | false 53 | prompt 54 | true 55 | 56 | 57 | bin\ARM\Release\ 58 | TRACE;NETFX_CORE;WINDOWS_UWP 59 | true 60 | ;2008 61 | pdbonly 62 | ARM 63 | false 64 | prompt 65 | true 66 | true 67 | 68 | 69 | true 70 | bin\ARM64\Debug\ 71 | DEBUG;TRACE;NETFX_CORE;WINDOWS_UWP 72 | ;2008 73 | full 74 | ARM64 75 | false 76 | prompt 77 | true 78 | true 79 | 80 | 81 | bin\ARM64\Release\ 82 | TRACE;NETFX_CORE;WINDOWS_UWP 83 | true 84 | ;2008 85 | pdbonly 86 | ARM64 87 | false 88 | prompt 89 | true 90 | true 91 | 92 | 93 | true 94 | bin\x64\Debug\ 95 | DEBUG;TRACE;NETFX_CORE;WINDOWS_UWP 96 | ;2008 97 | full 98 | x64 99 | false 100 | prompt 101 | true 102 | 103 | 104 | bin\x64\Release\ 105 | TRACE;NETFX_CORE;WINDOWS_UWP 106 | true 107 | ;2008 108 | pdbonly 109 | x64 110 | false 111 | prompt 112 | true 113 | true 114 | 115 | 116 | PackageReference 117 | 118 | 119 | 120 | App.xaml 121 | 122 | 123 | MainPage.xaml 124 | 125 | 126 | 127 | 128 | 129 | Designer 130 | 131 | 132 | 133 | 134 | 135 | 136 | 137 | 138 | 139 | 140 | 141 | 142 | 143 | 144 | MSBuild:Compile 145 | Designer 146 | 147 | 148 | MSBuild:Compile 149 | Designer 150 | 151 | 152 | 153 | 154 | 6.2.11 155 | 156 | 157 | 0.1.0 158 | 159 | 160 | 161 | 14.0 162 | 163 | 164 | 171 | -------------------------------------------------------------------------------- /example/uwp_cs/uwp_cs.sln: -------------------------------------------------------------------------------- 1 |  2 | Microsoft Visual Studio Solution File, Format Version 12.00 3 | # Visual Studio Version 16 4 | VisualStudioVersion = 16.0.31409.214 5 | MinimumVisualStudioVersion = 10.0.40219.1 6 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "uwp_cs", "uwp_cs.csproj", "{1ED2D3D9-925F-487D-ADF5-AC1AB2F1974B}" 7 | EndProject 8 | Global 9 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 10 | Debug|ARM = Debug|ARM 11 | Debug|ARM64 = Debug|ARM64 12 | Debug|x64 = Debug|x64 13 | Debug|x86 = Debug|x86 14 | Release|ARM = Release|ARM 15 | Release|ARM64 = Release|ARM64 16 | Release|x64 = Release|x64 17 | Release|x86 = Release|x86 18 | EndGlobalSection 19 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 20 | {1ED2D3D9-925F-487D-ADF5-AC1AB2F1974B}.Debug|ARM.ActiveCfg = Debug|ARM 21 | {1ED2D3D9-925F-487D-ADF5-AC1AB2F1974B}.Debug|ARM.Build.0 = Debug|ARM 22 | {1ED2D3D9-925F-487D-ADF5-AC1AB2F1974B}.Debug|ARM.Deploy.0 = Debug|ARM 23 | {1ED2D3D9-925F-487D-ADF5-AC1AB2F1974B}.Debug|ARM64.ActiveCfg = Debug|ARM64 24 | {1ED2D3D9-925F-487D-ADF5-AC1AB2F1974B}.Debug|ARM64.Build.0 = Debug|ARM64 25 | {1ED2D3D9-925F-487D-ADF5-AC1AB2F1974B}.Debug|ARM64.Deploy.0 = Debug|ARM64 26 | {1ED2D3D9-925F-487D-ADF5-AC1AB2F1974B}.Debug|x64.ActiveCfg = Debug|x64 27 | {1ED2D3D9-925F-487D-ADF5-AC1AB2F1974B}.Debug|x64.Build.0 = Debug|x64 28 | {1ED2D3D9-925F-487D-ADF5-AC1AB2F1974B}.Debug|x64.Deploy.0 = Debug|x64 29 | {1ED2D3D9-925F-487D-ADF5-AC1AB2F1974B}.Debug|x86.ActiveCfg = Debug|x86 30 | {1ED2D3D9-925F-487D-ADF5-AC1AB2F1974B}.Debug|x86.Build.0 = Debug|x86 31 | {1ED2D3D9-925F-487D-ADF5-AC1AB2F1974B}.Debug|x86.Deploy.0 = Debug|x86 32 | {1ED2D3D9-925F-487D-ADF5-AC1AB2F1974B}.Release|ARM.ActiveCfg = Release|ARM 33 | {1ED2D3D9-925F-487D-ADF5-AC1AB2F1974B}.Release|ARM.Build.0 = Release|ARM 34 | {1ED2D3D9-925F-487D-ADF5-AC1AB2F1974B}.Release|ARM.Deploy.0 = Release|ARM 35 | {1ED2D3D9-925F-487D-ADF5-AC1AB2F1974B}.Release|ARM64.ActiveCfg = Release|ARM64 36 | {1ED2D3D9-925F-487D-ADF5-AC1AB2F1974B}.Release|ARM64.Build.0 = Release|ARM64 37 | {1ED2D3D9-925F-487D-ADF5-AC1AB2F1974B}.Release|ARM64.Deploy.0 = Release|ARM64 38 | {1ED2D3D9-925F-487D-ADF5-AC1AB2F1974B}.Release|x64.ActiveCfg = Release|x64 39 | {1ED2D3D9-925F-487D-ADF5-AC1AB2F1974B}.Release|x64.Build.0 = Release|x64 40 | {1ED2D3D9-925F-487D-ADF5-AC1AB2F1974B}.Release|x64.Deploy.0 = Release|x64 41 | {1ED2D3D9-925F-487D-ADF5-AC1AB2F1974B}.Release|x86.ActiveCfg = Release|x86 42 | {1ED2D3D9-925F-487D-ADF5-AC1AB2F1974B}.Release|x86.Build.0 = Release|x86 43 | {1ED2D3D9-925F-487D-ADF5-AC1AB2F1974B}.Release|x86.Deploy.0 = Release|x86 44 | EndGlobalSection 45 | GlobalSection(SolutionProperties) = preSolution 46 | HideSolutionNode = FALSE 47 | EndGlobalSection 48 | GlobalSection(ExtensibilityGlobals) = postSolution 49 | SolutionGuid = {23AD5550-A7E2-4610-930E-C93DB07C228E} 50 | EndGlobalSection 51 | EndGlobal 52 | -------------------------------------------------------------------------------- /inittools.cmd: -------------------------------------------------------------------------------- 1 | : @echo off 2 | setlocal enableextensions disabledelayedexpansion 3 | 4 | if "%VSINSTALLDIR%" == "" ( 5 | if exist "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community" ( 6 | set "VSINSTALLDIR=C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\" 7 | ) 8 | if exist "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise" ( 9 | set "VSINSTALLDIR=C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\" 10 | ) 11 | ) 12 | echo "VSInstallDir is %VSINSTALLDIR%" 13 | call "%VSINSTALLDIR%\VC\Auxiliary\Build\vcvars64.bat" 14 | 15 | set clean=false 16 | set DEBUG_CMD= 17 | 18 | :: Parse options 19 | :GETOPTS 20 | if /I "%~1" == "/?" goto USAGE 21 | if /I "%~1" == "/Help" goto USAGE 22 | if /I "%~1" == "/x86" set BUILD=x86 23 | if /I "%~1" == "/x64" set BUILD=x64 24 | if /I "%~1" == "/arm64" set BUILD=arm64 25 | if /I "%~1" == "/arm" set BUILD=arm 26 | if /I "%~1" == "/unity" set BUILD=unity 27 | if /I "%~1" == "/clean" set clean=true 28 | shift 29 | if not (%1)==() goto GETOPTS 30 | 31 | : Call to build the isolated ROS2 build system 32 | set ChocolateyInstall=c:\opt\chocolatey 33 | 34 | set CMAKE_PREFIX_PATH_ORIG=%CMAKE_PREFIX_PATH% 35 | set PATH=c:\opt\chocolatey\bin;C:\opt\python37amd64\;C:\opt\python37amd64\Scripts;C:\opt\python37amd64\DLLs;%PATH% 36 | set PATH_ORIG=%PATH% 37 | set VCPKG_ROOT=c:\opt\vcpkg 38 | set PYTHONHOME=C:\opt\python37amd64\ 39 | 40 | if "%BUILD%"=="x86" goto :build_x86 41 | if "%BUILD%"=="x64" goto :build_x64 42 | if "%BUILD%"=="unity" goto :build_unity 43 | if "%BUILD%"=="arm" goto :build_arm 44 | if "%BUILD%"=="arm64" goto :build_arm64 45 | 46 | :build_unity 47 | pushd tools 48 | setlocal 49 | set ROS2_ARCH=x64 50 | if "%clean%"=="true" ( 51 | if exist unity_build rd /s /q build 52 | if exist unity rd /s /q unity 53 | ) 54 | 55 | call colcon build --event-handlers console_cohesion+ --merge-install --build-base .\unity_build --install-base .\unity --cmake-args -A %ROS2_ARCH% -DCSHARP_PLATFORM=x64 -DDOTNET_CORE_ARCH=x64 -DCMAKE_SYSTEM_VERSION=10.0 --no-warn-unused-cli -DCMAKE_BUILD_TYPE=RelWithDebInfo -Wno-dev 56 | 57 | if "%ERRORLEVEL%" NEQ "0" goto :build_fail 58 | endlocal 59 | popd 60 | if "%BUILD%"=="unity" goto :eof 61 | 62 | :build_x64 63 | pushd tools 64 | setlocal 65 | set ROS2_ARCH=x64 66 | if "%clean%"=="true" ( 67 | if exist x64_build rd /s /q x64_build 68 | if exist x64 rd /s /q x64 69 | ) 70 | 71 | call colcon build --event-handlers console_cohesion+ --merge-install --build-base .\x64_build --install-base .\x64 --cmake-args -A %ROS2_ARCH% -DCSHARP_PLATFORM=x64 -DDOTNET_CORE_ARCH=x64 -DCMAKE_SYSTEM_NAME=WindowsStore -DCMAKE_SYSTEM_VERSION=10.0 --no-warn-unused-cli -DCMAKE_BUILD_TYPE=RelWithDebInfo -Wno-dev 72 | 73 | if "%ERRORLEVEL%" NEQ "0" goto :build_fail 74 | popd 75 | if "%BUILD%"=="x64" goto :eof 76 | 77 | 78 | :build_arm64 79 | pushd tools 80 | setlocal 81 | set ROS2_ARCH=arm64 82 | if "%clean%"=="true" ( 83 | if exist arm64_build rd /s /q arm64_build 84 | if exist arm64 rd /s /q arm64 85 | ) 86 | 87 | call colcon build --event-handlers console_cohesion+ --merge-install --build-base .\arm64_build --install-base .\arm64 --cmake-args -A %ROS2_ARCH% -DCSHARP_PLATFORM=arm64 -DDOTNET_CORE_ARCH=arm64 -DCMAKE_SYSTEM_NAME=WindowsStore -DCMAKE_SYSTEM_VERSION=10.0 --no-warn-unused-cli -DCMAKE_BUILD_TYPE=RelWithDebInfo -Wno-dev 88 | 89 | if "%ERRORLEVEL%" NEQ "0" goto :build_fail 90 | endlocal 91 | popd 92 | if "%BUILD%"=="arm64" goto :eof 93 | 94 | :build_arm 95 | pushd tools 96 | setlocal 97 | set ROS2_ARCH=arm 98 | if "%clean%"=="true" ( 99 | if exist arm_build rd /s /q arm_build 100 | if exist arm rd /s /q arm 101 | ) 102 | 103 | call colcon build --event-handlers console_cohesion+ --merge-install --build-base .\arm_build --install-base .\arm --cmake-args -A %ROS2_ARCH% -DCSHARP_PLATFORM=arm -DDOTNET_CORE_ARCH=arm -DCMAKE_SYSTEM_NAME=WindowsStore -DCMAKE_SYSTEM_VERSION=10.0 --no-warn-unused-cli -DCMAKE_BUILD_TYPE=RelWithDebInfo -Wno-dev 104 | 105 | if "%ERRORLEVEL%" NEQ "0" goto :build_fail 106 | endlocal 107 | popd 108 | if "%BUILD%"=="arm" goto :eof 109 | 110 | : build x86 111 | :build_x86 112 | pushd tools 113 | setlocal 114 | : x86 is called Win32 in cmakelandia 115 | set ROS2_ARCH=Win32 116 | 117 | if "%clean%"=="true" ( 118 | if exist x86_build rd /s /q x86_build 119 | if exist x86 rd /s /q x86 120 | ) 121 | 122 | call colcon build --event-handlers console_cohesion+ --merge-install --build-base .\x86_build --install-base .\x86 --cmake-args -A %ROS2_ARCH% -DCSHARP_PLATFORM=x86 -DDOTNET_CORE_ARCH=x86 -DCMAKE_SYSTEM_NAME=WindowsStore -DCMAKE_SYSTEM_VERSION=10.0 --no-warn-unused-cli -DCMAKE_BUILD_TYPE=RelWithDebInfo -Wno-dev 123 | if "%ERRORLEVEL%" NEQ "0" goto :build_fail 124 | endlocal 125 | popd 126 | if "%BUILD%"=="x86" goto :eof 127 | 128 | goto :eof 129 | 130 | :build_fail 131 | endlocal 132 | popd 133 | goto :eof 134 | 135 | :USAGE 136 | echo "build [/x86 | /arm64 | /unity | /arm]" 137 | goto :eof 138 | 139 | -------------------------------------------------------------------------------- /inittree.cmd: -------------------------------------------------------------------------------- 1 | : @echo off 2 | setlocal enableextensions disabledelayedexpansion 3 | 4 | if NOT EXIST "c:\opt\vcpkg\vcpkg.exe" goto :novcpkg 5 | 6 | if "%VSINSTALLDIR%" == "" ( 7 | if exist "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community" ( 8 | set "VSINSTALLDIR=C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\" 9 | ) 10 | if exist "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise" ( 11 | set "VSINSTALLDIR=C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\" 12 | ) 13 | ) 14 | echo "VSInstallDir is %VSINSTALLDIR%" 15 | call "%VSINSTALLDIR%\VC\Auxiliary\Build\vcvars64.bat" 16 | 17 | set VisualStudioVersion=16.0 18 | 19 | : Call to initialize the isolated ROS2 build system 20 | mkdir c:\opt\chocolatey 21 | set PYTHONHOME=C:\opt\python37amd64\ 22 | set ChocolateyInstall=c:\opt\chocolatey 23 | set PATH=c:\opt\chocolatey\bin;C:\opt\python37amd64\;C:\opt\python37amd64\Scripts;C:\opt\python37amd64\DLLs;%PATH% 24 | choco source add -n=ros-win -s="https://aka.ms/ros/public" --priority=1 25 | choco upgrade ros-colcon-tools -y --execution-timeout=0 --pre 26 | 27 | : choco upgrade ros_vcpkg -y --execution-timeout=0 --pre 28 | : include staged vcpkgs 29 | 30 | set VCPKG_ROOT=c:\opt\vcpkg 31 | 32 | call pip install vcstool 33 | call pip install lark-parser 34 | 35 | dir C:\opt\python37amd64\Scripts\ 36 | 37 | mkdir tools\src 38 | mkdir target\src 39 | 40 | pushd tools 41 | C:\opt\python37amd64\Scripts\vcs.exe import src < ..\build_tools.repos 42 | popd 43 | 44 | pushd target 45 | C:\opt\python37amd64\Scripts\vcs.exe import src < ..\ros2_uwp.repos 46 | xcopy /y src\ros2\orocos_kinematics_dynamics\orocos_kdl\config\FindEigen3.cmake src\ros2\eigen3_cmake_module\cmake\Modules 47 | popd 48 | 49 | pushd tools 50 | call colcon build --merge-install --cmake-args -DBUILD_TESTING=OFF 51 | popd 52 | 53 | goto :eof 54 | 55 | :novcpkg 56 | echo "VCPkg not found at c:\opt\vcpkg\vcpkg.exe" 57 | dir c:\opt 58 | 59 | exit /1 60 | -------------------------------------------------------------------------------- /initvcpkg.cmd: -------------------------------------------------------------------------------- 1 | @echo off 2 | setlocal enableextensions disabledelayedexpansion 3 | 4 | :: Parse options 5 | :GETOPTS 6 | if /I "%~1" == "/?" goto USAGE 7 | if /I "%~1" == "/Help" goto USAGE 8 | if /I "%~1" == "/x86" set BUILD=x86 9 | if /I "%~1" == "/arm64" set BUILD=arm64 10 | if /I "%~1" == "/arm" set BUILD=arm 11 | if /I "%~1" == "/x64" set BUILD=x64 12 | if /I "%~1" == "/unity" set BUILD=unity 13 | shift 14 | if not (%1)==() goto GETOPTS 15 | 16 | set PATH_ORIG=%PATH% 17 | set PATH=c:\opt\vcpkg;c:\opt\chocolatey\bin;C:\opt\python37amd64\;C:\opt\python37amd64\Scripts;C:\opt\python37amd64\DLLs;%PATH% 18 | set VCPKG_ROOT=c:\opt\vcpkg 19 | 20 | if exist "%VCPKG_ROOT%" goto :build_tools 21 | mkdir c:\opt 22 | pushd c:\opt 23 | git clone https://github.com/ooeygui/vcpkg 24 | call bootstrap-vcpkg.bat 25 | popd 26 | 27 | :build_tools 28 | : Build tooling 29 | vcpkg install protobuf:x86-windows 30 | vcpkg install foonathan-memory:x64-windows 31 | 32 | if "%BUILD%"=="x86" goto :build_x86 33 | if "%BUILD%"=="x64" goto :build_x64 34 | if "%BUILD%"=="arm64" goto :build_arm64 35 | if "%BUILD%"=="arm" goto :build_arm 36 | if "%BUILD%"=="unity" goto :build_unity 37 | 38 | :build_x86 39 | vcpkg install protobuf:x86-uwp 40 | : vcpkg install asio:x86-uwp 41 | vcpkg install eigen3:x86-uwp 42 | vcpkg install foonathan-memory:x86-uwp 43 | vcpkg install poco:x86-uwp 44 | if "%BUILD%"=="x86" goto :eof 45 | 46 | :build_arm64 47 | vcpkg install protobuf:arm64-uwp 48 | : vcpkg install asio:arm64-uwp 49 | vcpkg install tinyxml2:arm64-uwp 50 | vcpkg install eigen3:arm64-uwp 51 | vcpkg install foonathan-memory[core]:arm64-uwp 52 | vcpkg install poco:arm64-uwp 53 | if "%BUILD%"=="arm64" goto :eof 54 | 55 | :build_arm 56 | vcpkg install protobuf:arm-uwp 57 | : vcpkg install asio:arm-uwp 58 | vcpkg install tinyxml2:arm-uwp 59 | vcpkg install eigen3:arm-uwp 60 | vcpkg install foonathan-memory[core]:arm-uwp 61 | vcpkg install poco:arm-uwp 62 | if "%BUILD%"=="arm" goto :eof 63 | 64 | :build_x64 65 | vcpkg install protobuf:x64-uwp 66 | : vcpkg install asio:x64-uwp 67 | vcpkg install eigen3:x64-uwp 68 | vcpkg install foonathan-memory[core]:x64-uwp 69 | vcpkg install poco:x64-uwp 70 | if "%BUILD%"=="x64" goto :eof 71 | 72 | :build_unity 73 | vcpkg install protobuf:x64-windows 74 | : vcpkg install asio:x64-windows 75 | vcpkg install eigen3:x64-windows 76 | vcpkg install foonathan-memory:x64-windows 77 | vcpkg install poco:x64-windows 78 | if "%BUILD%"=="unity" goto :eof 79 | -------------------------------------------------------------------------------- /nuget/Microsoft.ROS.MRTK.Foxy.arm.nuspec: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Microsoft.ROS.MRTK.Foxy.arm 5 | 0.1.0 6 | Microsoft MRTK Extension for ROS 7 | Microsoft, Open Robotics, eProsima 8 | Microsoft 9 | https://www.apache.org/licenses/LICENSE-2.0 10 | https://github.com/ms-iot/ros_msft_mrtk_native 11 | false 12 | Use the Mixed Reality Toolkit for Unity with ROS Robots 13 | Microsoft Mixed Reality Toolkit for ROS 14 | 15 | Copyright 2020 16 | microsoft ROS native nativepackage 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | -------------------------------------------------------------------------------- /nuget/Microsoft.ROS.MRTK.Foxy.arm64.nuspec: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Microsoft.ROS.MRTK.Foxy.arm64 5 | 0.1.0 6 | Microsoft MRTK Extension for ROS 7 | Microsoft, Open Robotics, eProsima 8 | Microsoft 9 | https://www.apache.org/licenses/LICENSE-2.0 10 | https://github.com/ms-iot/ros_msft_mrtk_native 11 | false 12 | Use the Mixed Reality Toolkit for Unity with ROS Robots 13 | Microsoft Mixed Reality Toolkit for ROS 14 | 15 | Copyright 2020 16 | microsoft ROS native nativepackage 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | -------------------------------------------------------------------------------- /nuget/Microsoft.ROS.MRTK.Foxy.nuspec: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Microsoft.ROS.MRTK.Foxy 5 | 0.1.0 6 | Microsoft MRTK Extension for ROS 7 | Microsoft, Open Robotics, eProsima 8 | Microsoft 9 | https://www.apache.org/licenses/LICENSE-2.0 10 | https://github.com/ms-iot/ros_msft_mrtk_native 11 | false 12 | Use the Mixed Reality Toolkit for Unity with ROS Robots 13 | Microsoft Mixed Reality Toolkit for ROS 14 | 15 | Copyright 2020 16 | microsoft ROS native nativepackage 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | -------------------------------------------------------------------------------- /nuget/Microsoft.ROS.MRTK.Foxy.unity.nuspec: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Microsoft.ROS.MRTK.Foxy.Unity 5 | 0.1.0 6 | Microsoft MRTK Extension for ROS 7 | Microsoft, Open Robotics, eProsima 8 | Microsoft 9 | https://www.apache.org/licenses/LICENSE-2.0 10 | https://github.com/ms-iot/ros_msft_mrtk_native 11 | false 12 | Use the Mixed Reality Toolkit for Unity with ROS Robots 13 | Microsoft Mixed Reality Toolkit for ROS 14 | 15 | Copyright 2020 16 | microsoft ROS native nativepackage 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | -------------------------------------------------------------------------------- /nuget/Microsoft.ROS.MRTK.Foxy.x64.nuspec: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Microsoft.ROS.MRTK.Foxy.x64 5 | 0.1.0 6 | Microsoft MRTK Extension for ROS 7 | Microsoft, Open Robotics, eProsima 8 | Microsoft 9 | https://www.apache.org/licenses/LICENSE-2.0 10 | https://github.com/ms-iot/ros_msft_mrtk_native 11 | false 12 | Use the Mixed Reality Toolkit for Unity with ROS Robots 13 | Microsoft Mixed Reality Toolkit for ROS 14 | 15 | Copyright 2020 16 | Microsoft OpenRobotics ROS native nativepackage 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | -------------------------------------------------------------------------------- /nuget/Microsoft.ROS.MRTK.Foxy.x86.nuspec: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Microsoft.ROS.MRTK.Foxy.x86 5 | 0.1.0 6 | Microsoft MRTK Extension for ROS 7 | Microsoft, Open Robotics, eProsima 8 | Microsoft 9 | https://www.apache.org/licenses/LICENSE-2.0 10 | https://github.com/ms-iot/ros_msft_mrtk_native 11 | false 12 | Use the Mixed Reality Toolkit for Unity with ROS Robots 13 | Microsoft Mixed Reality Toolkit for ROS 14 | 15 | Copyright 2020 16 | microsoft ROS native nativepackage 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | -------------------------------------------------------------------------------- /nuget/Microsoft.ROS.MRTK.targets: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | x86 6 | $(Platform) 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | NOMINMAX;%(PreprocessorDefinitions); 16 | NoExtensions 17 | $(MSBuildThisFileDirectory)..\include;%(AdditionalIncludeDirectories) 18 | NotUsing 19 | 20 | 21 | $(MSBuildThisFileDirectory)..\include;%(AdditionalIncludeDirectories) 22 | 23 | 24 | actionlib_msgs__rosidl_generator_c.lib;actionlib_msgs__rosidl_typesupport_c.lib;actionlib_msgs__rosidl_typesupport_cpp.lib;actionlib_msgs__rosidl_typesupport_fastrtps_c.lib;actionlib_msgs__rosidl_typesupport_fastrtps_cpp.lib;actionlib_msgs__rosidl_typesupport_introspection_c.lib;actionlib_msgs__rosidl_typesupport_introspection_cpp.lib;action_msgs__rosidl_generator_c.lib;action_msgs__rosidl_typesupport_c.lib;action_msgs__rosidl_typesupport_cpp.lib;action_msgs__rosidl_typesupport_fastrtps_c.lib;action_msgs__rosidl_typesupport_fastrtps_cpp.lib;action_msgs__rosidl_typesupport_introspection_c.lib;action_msgs__rosidl_typesupport_introspection_cpp.lib;builtin_interfaces__rosidl_generator_c.lib;builtin_interfaces__rosidl_typesupport_c.lib;builtin_interfaces__rosidl_typesupport_cpp.lib;builtin_interfaces__rosidl_typesupport_fastrtps_c.lib;builtin_interfaces__rosidl_typesupport_fastrtps_cpp.lib;builtin_interfaces__rosidl_typesupport_introspection_c.lib;builtin_interfaces__rosidl_typesupport_introspection_cpp.lib;class_loader.lib;component_manager.lib;composition_interfaces__rosidl_generator_c.lib;composition_interfaces__rosidl_typesupport_c.lib;composition_interfaces__rosidl_typesupport_cpp.lib;composition_interfaces__rosidl_typesupport_fastrtps_c.lib;composition_interfaces__rosidl_typesupport_fastrtps_cpp.lib;composition_interfaces__rosidl_typesupport_introspection_c.lib;composition_interfaces__rosidl_typesupport_introspection_cpp.lib;console_bridge.lib;diagnostic_msgs__rosidl_generator_c.lib;diagnostic_msgs__rosidl_typesupport_c.lib;diagnostic_msgs__rosidl_typesupport_cpp.lib;diagnostic_msgs__rosidl_typesupport_fastrtps_c.lib;diagnostic_msgs__rosidl_typesupport_fastrtps_cpp.lib;diagnostic_msgs__rosidl_typesupport_introspection_c.lib;diagnostic_msgs__rosidl_typesupport_introspection_cpp.lib;example_interfaces__rosidl_generator_c.lib;example_interfaces__rosidl_typesupport_c.lib;example_interfaces__rosidl_typesupport_cpp.lib;example_interfaces__rosidl_typesupport_fastrtps_c.lib;example_interfaces__rosidl_typesupport_fastrtps_cpp.lib;example_interfaces__rosidl_typesupport_introspection_c.lib;example_interfaces__rosidl_typesupport_introspection_cpp.lib;fastcdr-1.0.lib;fastrtps-2.0.lib;geometry_msgs__rosidl_generator_c.lib;geometry_msgs__rosidl_typesupport_c.lib;geometry_msgs__rosidl_typesupport_cpp.lib;geometry_msgs__rosidl_typesupport_fastrtps_c.lib;geometry_msgs__rosidl_typesupport_fastrtps_cpp.lib;geometry_msgs__rosidl_typesupport_introspection_c.lib;geometry_msgs__rosidl_typesupport_introspection_cpp.lib;libstatistics_collector.lib;lifecycle_msgs__rosidl_generator_c.lib;lifecycle_msgs__rosidl_typesupport_c.lib;lifecycle_msgs__rosidl_typesupport_cpp.lib;lifecycle_msgs__rosidl_typesupport_fastrtps_c.lib;lifecycle_msgs__rosidl_typesupport_fastrtps_cpp.lib;lifecycle_msgs__rosidl_typesupport_introspection_c.lib;lifecycle_msgs__rosidl_typesupport_introspection_cpp.lib;message_filters.lib;nav_msgs__rosidl_generator_c.lib;nav_msgs__rosidl_typesupport_c.lib;nav_msgs__rosidl_typesupport_cpp.lib;nav_msgs__rosidl_typesupport_fastrtps_c.lib;nav_msgs__rosidl_typesupport_fastrtps_cpp.lib;nav_msgs__rosidl_typesupport_introspection_c.lib;nav_msgs__rosidl_typesupport_introspection_cpp.lib;orocos-kdl.lib;rcl.lib;rclcpp.lib;rclcpp_action.lib;rclcpp_lifecycle.lib;rcl_action.lib;rcl_interfaces__rosidl_generator_c.lib;rcl_interfaces__rosidl_typesupport_c.lib;rcl_interfaces__rosidl_typesupport_cpp.lib;rcl_interfaces__rosidl_typesupport_fastrtps_c.lib;rcl_interfaces__rosidl_typesupport_fastrtps_cpp.lib;rcl_interfaces__rosidl_typesupport_introspection_c.lib;rcl_interfaces__rosidl_typesupport_introspection_cpp.lib;rcl_lifecycle.lib;rcl_logging_noop.lib;rcl_yaml_param_parser.lib;rcpputils.lib;rcutils.lib;rmw.lib;rmw_dds_common.lib;rmw_dds_common__rosidl_generator_c.lib;rmw_dds_common__rosidl_typesupport_c.lib;rmw_dds_common__rosidl_typesupport_cpp.lib;rmw_dds_common__rosidl_typesupport_fastrtps_c.lib;rmw_dds_common__rosidl_typesupport_fastrtps_cpp.lib;rmw_dds_common__rosidl_typesupport_introspection_c.lib;rmw_dds_common__rosidl_typesupport_introspection_cpp.lib;rmw_fastrtps_cpp.lib;rmw_fastrtps_shared_cpp.lib;rosgraph_msgs__rosidl_generator_c.lib;rosgraph_msgs__rosidl_typesupport_c.lib;rosgraph_msgs__rosidl_typesupport_cpp.lib;rosgraph_msgs__rosidl_typesupport_fastrtps_c.lib;rosgraph_msgs__rosidl_typesupport_fastrtps_cpp.lib;rosgraph_msgs__rosidl_typesupport_introspection_c.lib;rosgraph_msgs__rosidl_typesupport_introspection_cpp.lib;rosidl_runtime_c.lib;rosidl_typesupport_c.lib;rosidl_typesupport_cpp.lib;rosidl_typesupport_fastrtps_c.lib;rosidl_typesupport_fastrtps_cpp.lib;rosidl_typesupport_introspection_c.lib;rosidl_typesupport_introspection_cpp.lib;sensor_msgs__rosidl_generator_c.lib;sensor_msgs__rosidl_typesupport_c.lib;sensor_msgs__rosidl_typesupport_cpp.lib;sensor_msgs__rosidl_typesupport_fastrtps_c.lib;sensor_msgs__rosidl_typesupport_fastrtps_cpp.lib;sensor_msgs__rosidl_typesupport_introspection_c.lib;sensor_msgs__rosidl_typesupport_introspection_cpp.lib;shape_msgs__rosidl_generator_c.lib;shape_msgs__rosidl_typesupport_c.lib;shape_msgs__rosidl_typesupport_cpp.lib;shape_msgs__rosidl_typesupport_fastrtps_c.lib;shape_msgs__rosidl_typesupport_fastrtps_cpp.lib;shape_msgs__rosidl_typesupport_introspection_c.lib;shape_msgs__rosidl_typesupport_introspection_cpp.lib;spdlog.lib;static_transform_broadcaster_node.lib;statistics_msgs__rosidl_generator_c.lib;statistics_msgs__rosidl_typesupport_c.lib;statistics_msgs__rosidl_typesupport_cpp.lib;statistics_msgs__rosidl_typesupport_fastrtps_c.lib;statistics_msgs__rosidl_typesupport_fastrtps_cpp.lib;statistics_msgs__rosidl_typesupport_introspection_c.lib;statistics_msgs__rosidl_typesupport_introspection_cpp.lib;std_msgs__rosidl_generator_c.lib;std_msgs__rosidl_typesupport_c.lib;std_msgs__rosidl_typesupport_cpp.lib;std_msgs__rosidl_typesupport_fastrtps_c.lib;std_msgs__rosidl_typesupport_fastrtps_cpp.lib;std_msgs__rosidl_typesupport_introspection_c.lib;std_msgs__rosidl_typesupport_introspection_cpp.lib;std_srvs__rosidl_generator_c.lib;std_srvs__rosidl_typesupport_c.lib;std_srvs__rosidl_typesupport_cpp.lib;std_srvs__rosidl_typesupport_fastrtps_c.lib;std_srvs__rosidl_typesupport_fastrtps_cpp.lib;std_srvs__rosidl_typesupport_introspection_c.lib;std_srvs__rosidl_typesupport_introspection_cpp.lib;stereo_msgs__rosidl_generator_c.lib;stereo_msgs__rosidl_typesupport_c.lib;stereo_msgs__rosidl_typesupport_cpp.lib;stereo_msgs__rosidl_typesupport_fastrtps_c.lib;stereo_msgs__rosidl_typesupport_fastrtps_cpp.lib;stereo_msgs__rosidl_typesupport_introspection_c.lib;stereo_msgs__rosidl_typesupport_introspection_cpp.lib;test_msgs__rosidl_generator_c.lib;test_msgs__rosidl_typesupport_c.lib;test_msgs__rosidl_typesupport_cpp.lib;test_msgs__rosidl_typesupport_fastrtps_c.lib;test_msgs__rosidl_typesupport_fastrtps_cpp.lib;test_msgs__rosidl_typesupport_introspection_c.lib;test_msgs__rosidl_typesupport_introspection_cpp.lib;tf2.lib;tf2_eigen_kdl.lib;tf2_msgs__rosidl_generator_c.lib;tf2_msgs__rosidl_typesupport_c.lib;tf2_msgs__rosidl_typesupport_cpp.lib;tf2_msgs__rosidl_typesupport_fastrtps_c.lib;tf2_msgs__rosidl_typesupport_fastrtps_cpp.lib;tf2_msgs__rosidl_typesupport_introspection_c.lib;tf2_msgs__rosidl_typesupport_introspection_cpp.lib;tf2_ros.lib;tracetools.lib;trajectory_msgs__rosidl_generator_c.lib;trajectory_msgs__rosidl_typesupport_c.lib;trajectory_msgs__rosidl_typesupport_cpp.lib;trajectory_msgs__rosidl_typesupport_fastrtps_c.lib;trajectory_msgs__rosidl_typesupport_fastrtps_cpp.lib;trajectory_msgs__rosidl_typesupport_introspection_c.lib;trajectory_msgs__rosidl_typesupport_introspection_cpp.lib;unique_identifier_msgs__rosidl_generator_c.lib;unique_identifier_msgs__rosidl_typesupport_c.lib;unique_identifier_msgs__rosidl_typesupport_cpp.lib;unique_identifier_msgs__rosidl_typesupport_fastrtps_c.lib;unique_identifier_msgs__rosidl_typesupport_fastrtps_cpp.lib;unique_identifier_msgs__rosidl_typesupport_introspection_c.lib;unique_identifier_msgs__rosidl_typesupport_introspection_cpp.lib;visualization_msgs__rosidl_generator_c.lib;visualization_msgs__rosidl_typesupport_c.lib;visualization_msgs__rosidl_typesupport_cpp.lib;visualization_msgs__rosidl_typesupport_fastrtps_c.lib;visualization_msgs__rosidl_typesupport_fastrtps_cpp.lib;visualization_msgs__rosidl_typesupport_introspection_c.lib;visualization_msgs__rosidl_typesupport_introspection_cpp.lib;yaml.lib;%(AdditionalDependencies) 25 | $(MSBuildThisFileDirectory)..\runtimes\win10-$(targetPlatform)\native;%(AdditionalLibraryDirectories) 26 | 27 | 28 | 29 | 30 | 31 | NotSet 32 | 33 | 34 | 35 | 36 | 37 | NotSet 38 | 39 | 40 | 41 | 42 | 43 | NotSet 44 | 45 | 46 | 47 | 48 | NotSet 49 | 50 | 51 | -------------------------------------------------------------------------------- /nuget/build_meta.cmd: -------------------------------------------------------------------------------- 1 | @"%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe" -NoProfile -InputFormat None -ExecutionPolicy Bypass -Command ".\genmeta.ps1" -------------------------------------------------------------------------------- /nuget/genmeta.ps1: -------------------------------------------------------------------------------- 1 | 2 | 3 | function GenerateUnityMeta 4 | { 5 | 6 | param 7 | ( 8 | $templateName, 9 | $folder 10 | ) 11 | 12 | $template = Get-Content $templateName -Raw 13 | 14 | $files = Get-ChildItem -Filter "*.dll" -Recurse $folder 15 | 16 | foreach ($file in $files) 17 | { 18 | $ext = [IO.Path]::GetExtension($file) 19 | if ($ext -notmatch ".meta") 20 | { 21 | $guidRaw = New-Guid 22 | $guid = $guidRaw.ToString().Replace("-", "") 23 | $newMetafilename = $file.FullName + ".meta" 24 | 25 | Write-Host "Generating $newMetafilename" 26 | 27 | $newMetafile = $template.Replace("@@newGuid@@", $guid) 28 | Set-Content $newMetafilename $newMetafile 29 | } 30 | } 31 | } 32 | 33 | GenerateUnityMeta -templateName 'wsa_arm64_meta.txt' -folder "..\target\arm64" 34 | GenerateUnityMeta -templateName 'wsa_x64_meta.txt' -folder "..\target\x64" 35 | GenerateUnityMeta -templateName 'x86_64_meta.txt' -folder "..\target\x86" 36 | 37 | GenerateUnityMeta -templateName 'wsa_arm64_meta.txt' -folder "C:\opt\vcpkg\installed\arm64-uwp\bin" 38 | GenerateUnityMeta -templateName 'wsa_x64_meta.txt' -folder "C:\opt\vcpkg\installed\x64-uwp\bin" 39 | GenerateUnityMeta -templateName 'x86_64_meta.txt' -folder "C:\opt\vcpkg\installed\x86-windows\bin" 40 | 41 | GenerateUnityMeta -templateName 'wsa_arm64_meta.txt' -folder "C:\opt\vcpkg\buildtrees\apriltag\arm64-uwp-rel\Release" 42 | GenerateUnityMeta -templateName 'wsa_x64_meta.txt' -folder "C:\opt\vcpkg\buildtrees\apriltag\x64-uwp-rel\Release" 43 | GenerateUnityMeta -templateName 'x86_64_meta.txt' -folder "C:\opt\vcpkg\buildtrees\apriltag\x86-windows-rel\Release" 44 | -------------------------------------------------------------------------------- /nuget/nuget.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ms-iot/ros_msft_mrtk_native/44b6f45669e2ff0f7554af7027ace5bc949139d8/nuget/nuget.exe -------------------------------------------------------------------------------- /nuget/wsa_arm64_meta.txt: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: @@newGuid@@ 3 | PluginImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | iconMap: {} 7 | executionOrder: {} 8 | defineConstraints: [] 9 | isPreloaded: 0 10 | isOverridable: 0 11 | isExplicitlyReferenced: 0 12 | validateReferences: 1 13 | platformData: 14 | - first: 15 | '': Any 16 | second: 17 | enabled: 0 18 | settings: 19 | Exclude Android: 1 20 | Exclude Editor: 1 21 | Exclude Linux: 1 22 | Exclude Linux64: 1 23 | Exclude LinuxUniversal: 1 24 | Exclude OSXUniversal: 1 25 | Exclude Win: 1 26 | Exclude Win64: 1 27 | Exclude WindowsStoreApps: 0 28 | Exclude iOS: 1 29 | - first: 30 | Android: Android 31 | second: 32 | enabled: 0 33 | settings: 34 | CPU: ARMv7 35 | - first: 36 | Any: 37 | second: 38 | enabled: 0 39 | settings: {} 40 | - first: 41 | Editor: Editor 42 | second: 43 | enabled: 0 44 | settings: 45 | CPU: AnyCPU 46 | DefaultValueInitialized: true 47 | OS: AnyOS 48 | - first: 49 | Facebook: Win 50 | second: 51 | enabled: 0 52 | settings: 53 | CPU: AnyCPU 54 | - first: 55 | Facebook: Win64 56 | second: 57 | enabled: 0 58 | settings: 59 | CPU: AnyCPU 60 | - first: 61 | Standalone: Linux 62 | second: 63 | enabled: 0 64 | settings: 65 | CPU: x86 66 | - first: 67 | Standalone: Linux64 68 | second: 69 | enabled: 0 70 | settings: 71 | CPU: AnyCPU 72 | - first: 73 | Standalone: LinuxUniversal 74 | second: 75 | enabled: 0 76 | settings: 77 | CPU: None 78 | - first: 79 | Standalone: OSXUniversal 80 | second: 81 | enabled: 0 82 | settings: 83 | CPU: AnyCPU 84 | - first: 85 | Standalone: Win 86 | second: 87 | enabled: 0 88 | settings: 89 | CPU: AnyCPU 90 | - first: 91 | Standalone: Win64 92 | second: 93 | enabled: 0 94 | settings: 95 | CPU: AnyCPU 96 | - first: 97 | Windows Store Apps: WindowsStoreApps 98 | second: 99 | enabled: 1 100 | settings: 101 | CPU: ARM64 102 | DontProcess: false 103 | PlaceholderPath: 104 | SDK: UWP 105 | ScriptingBackend: AnyScriptingBackend 106 | - first: 107 | iPhone: iOS 108 | second: 109 | enabled: 0 110 | settings: 111 | AddToEmbeddedBinaries: false 112 | CPU: AnyCPU 113 | CompileFlags: 114 | FrameworkDependencies: 115 | userData: 116 | assetBundleName: 117 | assetBundleVariant: 118 | -------------------------------------------------------------------------------- /nuget/wsa_x64_meta.txt: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: @@newGuid@@ 3 | PluginImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | iconMap: {} 7 | executionOrder: {} 8 | defineConstraints: [] 9 | isPreloaded: 0 10 | isOverridable: 0 11 | isExplicitlyReferenced: 0 12 | validateReferences: 1 13 | platformData: 14 | - first: 15 | '': Any 16 | second: 17 | enabled: 0 18 | settings: 19 | Exclude Android: 1 20 | Exclude Editor: 1 21 | Exclude Linux64: 1 22 | Exclude OSXUniversal: 1 23 | Exclude Win: 1 24 | Exclude Win64: 1 25 | Exclude WindowsStoreApps: 0 26 | Exclude iOS: 1 27 | - first: 28 | Android: Android 29 | second: 30 | enabled: 0 31 | settings: 32 | CPU: ARMv7 33 | - first: 34 | Any: 35 | second: 36 | enabled: 0 37 | settings: {} 38 | - first: 39 | Editor: Editor 40 | second: 41 | enabled: 0 42 | settings: 43 | CPU: x86_64 44 | DefaultValueInitialized: true 45 | OS: AnyOS 46 | - first: 47 | Facebook: Win 48 | second: 49 | enabled: 0 50 | settings: 51 | CPU: None 52 | - first: 53 | Facebook: Win64 54 | second: 55 | enabled: 0 56 | settings: 57 | CPU: AnyCPU 58 | - first: 59 | Standalone: Linux64 60 | second: 61 | enabled: 0 62 | settings: 63 | CPU: None 64 | - first: 65 | Standalone: OSXUniversal 66 | second: 67 | enabled: 0 68 | settings: 69 | CPU: None 70 | - first: 71 | Standalone: Win 72 | second: 73 | enabled: 0 74 | settings: 75 | CPU: None 76 | - first: 77 | Standalone: Win64 78 | second: 79 | enabled: 0 80 | settings: 81 | CPU: None 82 | - first: 83 | Windows Store Apps: WindowsStoreApps 84 | second: 85 | enabled: 1 86 | settings: 87 | CPU: X64 88 | DontProcess: false 89 | PlaceholderPath: 90 | SDK: UWP 91 | ScriptingBackend: AnyScriptingBackend 92 | - first: 93 | iPhone: iOS 94 | second: 95 | enabled: 0 96 | settings: 97 | AddToEmbeddedBinaries: false 98 | CPU: AnyCPU 99 | CompileFlags: 100 | FrameworkDependencies: 101 | userData: 102 | assetBundleName: 103 | assetBundleVariant: 104 | -------------------------------------------------------------------------------- /nuget/x86_64_meta.txt: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: @@newGuid@@ 3 | PluginImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | iconMap: {} 7 | executionOrder: {} 8 | defineConstraints: [] 9 | isPreloaded: 0 10 | isOverridable: 0 11 | isExplicitlyReferenced: 0 12 | validateReferences: 1 13 | platformData: 14 | - first: 15 | '': Any 16 | second: 17 | enabled: 0 18 | settings: 19 | Exclude Android: 1 20 | Exclude Editor: 0 21 | Exclude Linux64: 1 22 | Exclude OSXUniversal: 1 23 | Exclude Win: 0 24 | Exclude Win64: 0 25 | Exclude WindowsStoreApps: 1 26 | Exclude iOS: 1 27 | - first: 28 | Android: Android 29 | second: 30 | enabled: 0 31 | settings: 32 | CPU: ARMv7 33 | - first: 34 | Any: 35 | second: 36 | enabled: 0 37 | settings: {} 38 | - first: 39 | Editor: Editor 40 | second: 41 | enabled: 1 42 | settings: 43 | CPU: x86_64 44 | DefaultValueInitialized: true 45 | OS: Windows 46 | - first: 47 | Standalone: Linux64 48 | second: 49 | enabled: 0 50 | settings: 51 | CPU: None 52 | - first: 53 | Standalone: OSXUniversal 54 | second: 55 | enabled: 0 56 | settings: 57 | CPU: None 58 | - first: 59 | Standalone: Win 60 | second: 61 | enabled: 1 62 | settings: 63 | CPU: None 64 | - first: 65 | Standalone: Win64 66 | second: 67 | enabled: 1 68 | settings: 69 | CPU: x86_64 70 | - first: 71 | Windows Store Apps: WindowsStoreApps 72 | second: 73 | enabled: 0 74 | settings: 75 | CPU: X86 76 | DontProcess: false 77 | PlaceholderPath: 78 | SDK: AnySDK 79 | ScriptingBackend: AnyScriptingBackend 80 | - first: 81 | iPhone: iOS 82 | second: 83 | enabled: 0 84 | settings: 85 | AddToEmbeddedBinaries: false 86 | CPU: AnyCPU 87 | CompileFlags: 88 | FrameworkDependencies: 89 | userData: 90 | assetBundleName: 91 | assetBundleVariant: 92 | -------------------------------------------------------------------------------- /ros2_uwp.repos: -------------------------------------------------------------------------------- 1 | repositories: 2 | eProsima/Fast-CDR: 3 | type: git 4 | url: https://github.com/eProsima/Fast-CDR.git 5 | version: v1.0.17 6 | eProsima/Fast-DDS: 7 | type: git 8 | url: https://github.com/ms-iot/Fast-DDS.git 9 | version: foxy-uwp 10 | eProsima/foonathan_memory_vendor: 11 | type: git 12 | url: https://github.com/ms-iot/foonathan_memory_vendor.git 13 | version: v1.0.0 14 | micro-ROS/ros_tracing/ros2_tracing: 15 | type: git 16 | url: https://gitlab.com/micro-ROS/ros_tracing/ros2_tracing.git 17 | version: foxy 18 | ros2/ament_cmake_ros: 19 | type: git 20 | url: https://github.com/ros2/ament_cmake_ros.git 21 | version: foxy 22 | ros2/rcpputils: 23 | type: git 24 | url: https://github.com/ms-iot/rcpputils.git 25 | version: foxy 26 | ros2/rcutils: 27 | type: git 28 | url: https://github.com/ms-iot/rcutils.git 29 | version: foxy 30 | ros2/common_interfaces: 31 | type: git 32 | url: https://github.com/ros2/common_interfaces.git 33 | version: foxy 34 | ros2/example_interfaces: 35 | type: git 36 | url: https://github.com/ros2/example_interfaces.git 37 | version: foxy 38 | ros2/libyaml_vendor: 39 | type: git 40 | url: https://github.com/ms-iot/libyaml_vendor.git 41 | version: foxy 42 | ros2/rcl: 43 | type: git 44 | url: https://github.com/ms-iot/rcl.git 45 | version: foxy 46 | ros2/rcl_interfaces: 47 | type: git 48 | url: https://github.com/ros2/rcl_interfaces.git 49 | version: foxy 50 | ros2/rcl_logging: 51 | type: git 52 | url: https://github.com/ros2/rcl_logging.git 53 | version: foxy 54 | ros2/rmw: 55 | type: git 56 | url: https://github.com/ros2/rmw.git 57 | version: foxy 58 | ros2/rmw_fastrtps: 59 | type: git 60 | url: https://github.com/ros2/rmw_fastrtps.git 61 | version: foxy 62 | ros2/rmw_implementation: 63 | type: git 64 | url: https://github.com/ooeygui/rmw_implementation.git 65 | version: foxy 66 | ros2/rosidl: 67 | type: git 68 | url: https://github.com/ros2/rosidl.git 69 | version: foxy 70 | ros2/rosidl_dds: 71 | type: git 72 | url: https://github.com/ros2/rosidl_dds.git 73 | version: foxy 74 | ros2/rosidl_defaults: 75 | type: git 76 | url: https://github.com/ros2/rosidl_defaults.git 77 | version: foxy 78 | ros2/rosidl_typesupport: 79 | type: git 80 | url: https://github.com/ros2/rosidl_typesupport.git 81 | version: foxy 82 | ros2/rosidl_typesupport_fastrtps: 83 | type: git 84 | url: https://github.com/ros2/rosidl_typesupport_fastrtps.git 85 | version: foxy 86 | ros2/test_interface_files: 87 | type: git 88 | url: https://github.com/ros2/test_interface_files.git 89 | version: foxy 90 | ros2/tinydir_vendor: 91 | type: git 92 | url: https://github.com/ros2/tinydir_vendor.git 93 | version: eloquent 94 | ros2/unique_identifier_msgs: 95 | type: git 96 | url: https://github.com/ros2/unique_identifier_msgs.git 97 | version: foxy 98 | ros2/rclcpp: 99 | type: git 100 | url: https://github.com/ros2/rclcpp.git 101 | version: foxy 102 | ros2/poco_vendor: 103 | type: git 104 | url: https://github.com/ms-iot/poco_vendor.git 105 | version: master 106 | ros2/spdlog_vendor: 107 | type: git 108 | url: https://github.com/ros2/spdlog_vendor.git 109 | version: master 110 | ros2/geometry2: 111 | type: git 112 | url: https://github.com/ros2/geometry2.git 113 | version: foxy 114 | ros2/python_cmake_module: 115 | type: git 116 | url: https://github.com/ros2/python_cmake_module.git 117 | version: foxy 118 | ros2/console_bridge_vendor: 119 | type: git 120 | url: https://github.com/ros2/console_bridge_vendor.git 121 | version: foxy 122 | ros2/console_bridge: 123 | type: git 124 | url: https://github.com/ros/console_bridge.git 125 | version: master 126 | ros2/message_filters: 127 | type: git 128 | url: https://github.com/ros2/message_filters.git 129 | version: foxy 130 | ros2/orocos_kinematics_dynamics: 131 | type: git 132 | url: https://github.com/ros2/orocos_kinematics_dynamics.git 133 | version: foxy 134 | ros2/eigen3_cmake_module: 135 | type: git 136 | url: https://github.com/ros2/eigen3_cmake_module.git 137 | version: foxy 138 | ros2/rmw_dds_common: 139 | type: git 140 | url: https://github.com/ros2/rmw_dds_common.git 141 | version: foxy 142 | ros2/libstatistics_collector: 143 | type: git 144 | url: https://github.com/ros-tooling/libstatistics_collector.git 145 | version: foxy-devel 146 | ros2/class_loader: 147 | type: git 148 | url: https://github.com/ros/class_loader.git 149 | version: foxy 150 | ros2_dotnet/ros2_dotnet: 151 | type: git 152 | url: https://github.com/ms-iot/ros2_dotnet 153 | version: master 154 | ros2_dotnet/dotnet_cmake_module: 155 | type: git 156 | url: https://github.com/ros2-dotnet/dotnet_cmake_module.git 157 | version: master 158 | ros2_dotnet/ament_cmake_export_assemblies: 159 | type: git 160 | url: https://github.com/esteve/ament_cmake_export_assemblies.git 161 | version: master 162 | -------------------------------------------------------------------------------- /upm/.npmignore: -------------------------------------------------------------------------------- 1 | *.nuspec 2 | *.nuspec.meta 3 | *.tgz 4 | build_upm.cmd 5 | build_upm.ps1 6 | 7 | wsa_arm64_meta.txt 8 | wsa_x64_meta.txt 9 | x86_64_meta.txt -------------------------------------------------------------------------------- /upm/build_upm.ps1: -------------------------------------------------------------------------------- 1 | $filespecs = @( 2 | "..\target\@@sourcearch@@\Lib\builtin_interfaces\dotnet\builtin_interfaces_assemblies.*" 3 | "..\target\@@sourcearch@@\Lib\rcldotnet\dotnet\System.*" 4 | "..\target\@@sourcearch@@\Lib\rcldotnet\dotnet\rcldotnet_assemblies.*" 5 | "..\target\@@sourcearch@@\Lib\rcldotnet_common\dotnet\rcldotnet_common.*" 6 | "..\target\@@sourcearch@@\Lib\rclcppdotnet\dotnet\rclcppdotnet_assemblies.*" 7 | "..\target\@@sourcearch@@\Lib\rcl_interfaces\dotnet\rcl_interfaces_assemblies.*" 8 | "..\target\@@sourcearch@@\lib\actionlib_msgs\dotnet\actionlib_msgs_assemblies.*" 9 | "..\target\@@sourcearch@@\lib\actionlib_msgs\dotnet\std_msgs_assemblies.*" 10 | "..\target\@@sourcearch@@\lib\action_msgs\dotnet\action_msgs_assemblies.*" 11 | "..\target\@@sourcearch@@\lib\diagnostic_msgs\dotnet\diagnostic_msgs_assemblies.*" 12 | "..\target\@@sourcearch@@\lib\geometry_msgs\dotnet\geometry_msgs_assemblies.*" 13 | "..\target\@@sourcearch@@\lib\lifecycle_msgs\dotnet\lifecycle_msgs_assemblies.*" 14 | "..\target\@@sourcearch@@\lib\nav_msgs\dotnet\nav_msgs_assemblies.*" 15 | "..\target\@@sourcearch@@\lib\rosgraph_msgs\dotnet\rosgraph_msgs_assemblies.*" 16 | "..\target\@@sourcearch@@\lib\sensor_msgs\dotnet\sensor_msgs_assemblies.*" 17 | "..\target\@@sourcearch@@\lib\shape_msgs\dotnet\shape_msgs_assemblies.*" 18 | "..\target\@@sourcearch@@\lib\stereo_msgs\dotnet\stereo_msgs_assemblies.*" 19 | "..\target\@@sourcearch@@\lib\test_msgs\dotnet\test_msgs_assemblies.*" 20 | "..\target\@@sourcearch@@\lib\tf2_msgs\dotnet\tf2_msgs_assemblies.*" 21 | "..\target\@@sourcearch@@\lib\trajectory_msgs\dotnet\trajectory_msgs_assemblies.*" 22 | "..\target\@@sourcearch@@\lib\unique_identifier_msgs\dotnet\unique_identifier_msgs_assemblies.*" 23 | "..\target\@@sourcearch@@\lib\visualization_msgs\dotnet\visualization_msgs_assemblies.*" 24 | 25 | "..\target\@@sourcearch@@\bin\*.dll" 26 | "..\tools\@@sourcearch@@\bin\*.dll" 27 | "C:\opt\vcpkg\installed\@@arch@@-@@platform@@\bin\*.dll" 28 | "%VCToolsRedistDir%\onecore\@@arch@@\Microsoft.VC142.CRT\vcruntime140.dll" 29 | "%VCToolsRedistDir%\onecore\@@arch@@\Microsoft.VC142.CRT\vcruntime140_1.dll" 30 | "%VCToolsRedistDir%\onecore\@@arch@@\Microsoft.VC142.CRT\msvcp140.dll" 31 | "%VCToolsRedistDir%\onecore\@@arch@@\Microsoft.VC142.CRT\msvcp140.dll" 32 | ) 33 | 34 | 35 | 36 | function createMeta 37 | { 38 | param 39 | ( 40 | $forFile, 41 | $template 42 | ) 43 | 44 | $guidRaw = New-Guid 45 | $guid = $guidRaw.ToString().Replace("-", "") 46 | $newMetafilename = $forFile + ".meta" 47 | 48 | Write-Host "Generating $newMetafilename" 49 | 50 | $newMetafile = $template.Replace("@@newGuid@@", $guid) 51 | Set-Content $newMetafilename $newMetafile 52 | 53 | } 54 | 55 | function populateArchAndPlat 56 | { 57 | param 58 | ( 59 | $arch, 60 | $sourceArch, 61 | $templateName, 62 | $platform 63 | ) 64 | 65 | $vcredist = [System.Environment]::GetEnvironmentVariable('VCToolsRedistDir') 66 | 67 | $template = Get-Content $templateName -Raw 68 | $templateFolder = Get-Content "folder_meta.txt" -Raw 69 | 70 | $extSpecs = @("*.dll", "*.pdb") 71 | 72 | $currentDir = Get-Location 73 | $buildDir = Join-Path -Path $currentDir -ChildPath "com.microsoft.ros_mrtk_native\Plugins" 74 | New-Item -ItemType Directory -Force -Path $buildDir 75 | 76 | createMeta -forFile $buildDir -template $templateFolder 77 | 78 | $platDir = "$platform-$arch" 79 | $archDir = Join-Path -Path $buildDir -ChildPath $platDir 80 | New-Item -ItemType Directory -Force -Path $archDir 81 | createMeta -forFile $archDir -template $templateFolder 82 | 83 | foreach ($filespec in $filespecs) 84 | { 85 | $filespec = $filespec.Replace("@@sourcearch@@", $sourceArch) 86 | $filespec = $filespec.Replace("@@arch@@", $arch) 87 | $filespec = $filespec.Replace("@@platform@@", $platform) 88 | $filespec = $filespec.Replace("%VCToolsRedistDir%", $vcredist) 89 | 90 | foreach ($extSpec in $extSpecs) 91 | { 92 | $files = Get-Item $filespec -Filter $extSpec 93 | 94 | foreach ($file in $files) 95 | { 96 | $filename = Split-Path $file -leaf 97 | $destination = Join-Path -Path $archDir -ChildPath $filename 98 | 99 | # Copy-Item -Path 100 | Write-Host "Copy $file to $destination" 101 | Copy-Item $file -Destination $destination 102 | 103 | createMeta -forFile $destination -template $template 104 | } 105 | } 106 | } 107 | } 108 | 109 | function populate 110 | { 111 | populateArchAndPlat -arch "x64" -platform "Windows" -sourceArch "Unity" -templateName 'x86_64_meta.txt' 112 | #populateArchAndPlat -arch "x64" -platform "uwp" -sourceArch "x64" -templateName 'wsa_x64_meta.txt' 113 | #populateArchAndPlat -arch "x86" -platform "uwp" -sourceArch "x86" -templateName 'wsa_x86_meta.txt' 114 | populateArchAndPlat -arch "arm64" -platform "uwp" -sourceArch "arm64" -templateName 'wsa_arm64_meta.txt' 115 | } 116 | 117 | function GenerateUnityMeta 118 | { 119 | 120 | param 121 | ( 122 | $templateName, 123 | $folder 124 | ) 125 | 126 | $template = Get-Content $templateName -Raw 127 | 128 | $files = Get-ChildItem -Filter "*.dll" -Recurse $folder 129 | 130 | foreach ($file in $files) 131 | { 132 | $ext = [IO.Path]::GetExtension($file) 133 | if ($ext -notmatch ".meta") 134 | { 135 | $guidRaw = New-Guid 136 | $guid = $guidRaw.ToString().Replace("-", "") 137 | $newMetafilename = $file.FullName + ".meta" 138 | 139 | Write-Host "Generating $newMetafilename" 140 | 141 | $newMetafile = $template.Replace("@@newGuid@@", $guid) 142 | Set-Content $newMetafilename $newMetafile 143 | } 144 | } 145 | } 146 | 147 | populate 148 | 149 | <# 150 | GenerateUnityMeta -templateName 'wsa_arm64_meta.txt' -folder "..\target\arm64" 151 | GenerateUnityMeta -templateName 'wsa_x64_meta.txt' -folder "..\target\x64" 152 | GenerateUnityMeta -templateName 'x86_64_meta.txt' -folder "..\target\x86" 153 | 154 | GenerateUnityMeta -templateName 'wsa_arm64_meta.txt' -folder "C:\opt\vcpkg\installed\arm64-uwp\bin" 155 | GenerateUnityMeta -templateName 'wsa_x64_meta.txt' -folder "C:\opt\vcpkg\installed\x64-uwp\bin" 156 | GenerateUnityMeta -templateName 'x86_64_meta.txt' -folder "C:\opt\vcpkg\installed\x86-windows\bin" 157 | 158 | GenerateUnityMeta -templateName 'wsa_arm64_meta.txt' -folder "C:\opt\vcpkg\buildtrees\apriltag\arm64-uwp-rel\Release" 159 | GenerateUnityMeta -templateName 'wsa_x64_meta.txt' -folder "C:\opt\vcpkg\buildtrees\apriltag\x64-uwp-rel\Release" 160 | GenerateUnityMeta -templateName 'x86_64_meta.txt' -folder "C:\opt\vcpkg\buildtrees\apriltag\x86-windows-rel\Release" 161 | #> -------------------------------------------------------------------------------- /upm/com.microsoft.ros_mrtk_native/LICENSE.md: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2020 Microsoft Corp 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /upm/com.microsoft.ros_mrtk_native/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ms-iot/ros_msft_mrtk_native/44b6f45669e2ff0f7554af7027ace5bc949139d8/upm/com.microsoft.ros_mrtk_native/README.md -------------------------------------------------------------------------------- /upm/com.microsoft.ros_mrtk_native/THIRDPARTYNOTICES.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ms-iot/ros_msft_mrtk_native/44b6f45669e2ff0f7554af7027ace5bc949139d8/upm/com.microsoft.ros_mrtk_native/THIRDPARTYNOTICES.md -------------------------------------------------------------------------------- /upm/com.microsoft.ros_mrtk_native/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "com.microsoft.ros_mrtk_native", 3 | "version": "0.0.1", 4 | "displayName": "ROS2 and ROS2.net Native Components for Unity", 5 | "description": "Use ROS2 from within Unity!", 6 | "unity": "2019.1", 7 | "unityRelease": "0b5", 8 | "dependencies": { 9 | }, 10 | "keywords": [ 11 | "ROS", 12 | "ROS2", 13 | "Windows", 14 | "Hololens", 15 | "MRTK" 16 | ], 17 | "author": { 18 | "name": "Microsoft", 19 | "email": "riotsquad@microsoft.com", 20 | "url": "https://aka.ms/ros" 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /upm/folder_meta.txt: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: @@newGuid@@ 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: -------------------------------------------------------------------------------- /upm/wsa_arm64_meta.txt: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: @@newGuid@@ 3 | PluginImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | iconMap: {} 7 | executionOrder: {} 8 | defineConstraints: [] 9 | isPreloaded: 0 10 | isOverridable: 0 11 | isExplicitlyReferenced: 0 12 | validateReferences: 0 13 | platformData: 14 | - first: 15 | '': Any 16 | second: 17 | enabled: 0 18 | settings: 19 | Exclude Android: 1 20 | Exclude Editor: 1 21 | Exclude Linux: 1 22 | Exclude Linux64: 1 23 | Exclude LinuxUniversal: 1 24 | Exclude OSXUniversal: 1 25 | Exclude Win: 1 26 | Exclude Win64: 1 27 | Exclude WindowsStoreApps: 0 28 | Exclude iOS: 1 29 | - first: 30 | Android: Android 31 | second: 32 | enabled: 0 33 | settings: 34 | CPU: ARMv7 35 | - first: 36 | Any: 37 | second: 38 | enabled: 0 39 | settings: {} 40 | - first: 41 | Editor: Editor 42 | second: 43 | enabled: 0 44 | settings: 45 | CPU: AnyCPU 46 | DefaultValueInitialized: true 47 | OS: AnyOS 48 | - first: 49 | Facebook: Win 50 | second: 51 | enabled: 0 52 | settings: 53 | CPU: AnyCPU 54 | - first: 55 | Facebook: Win64 56 | second: 57 | enabled: 0 58 | settings: 59 | CPU: AnyCPU 60 | - first: 61 | Standalone: Linux 62 | second: 63 | enabled: 0 64 | settings: 65 | CPU: x86 66 | - first: 67 | Standalone: Linux64 68 | second: 69 | enabled: 0 70 | settings: 71 | CPU: AnyCPU 72 | - first: 73 | Standalone: LinuxUniversal 74 | second: 75 | enabled: 0 76 | settings: 77 | CPU: None 78 | - first: 79 | Standalone: OSXUniversal 80 | second: 81 | enabled: 0 82 | settings: 83 | CPU: AnyCPU 84 | - first: 85 | Standalone: Win 86 | second: 87 | enabled: 0 88 | settings: 89 | CPU: AnyCPU 90 | - first: 91 | Standalone: Win64 92 | second: 93 | enabled: 0 94 | settings: 95 | CPU: AnyCPU 96 | - first: 97 | Windows Store Apps: WindowsStoreApps 98 | second: 99 | enabled: 1 100 | settings: 101 | CPU: ARM64 102 | DontProcess: false 103 | PlaceholderPath: 104 | SDK: UWP 105 | ScriptingBackend: AnyScriptingBackend 106 | - first: 107 | iPhone: iOS 108 | second: 109 | enabled: 0 110 | settings: 111 | AddToEmbeddedBinaries: false 112 | CPU: AnyCPU 113 | CompileFlags: 114 | FrameworkDependencies: 115 | userData: 116 | assetBundleName: 117 | assetBundleVariant: 118 | -------------------------------------------------------------------------------- /upm/wsa_x64_meta.txt: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: @@newGuid@@ 3 | PluginImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | iconMap: {} 7 | executionOrder: {} 8 | defineConstraints: [] 9 | isPreloaded: 0 10 | isOverridable: 0 11 | isExplicitlyReferenced: 0 12 | validateReferences: 0 13 | platformData: 14 | - first: 15 | '': Any 16 | second: 17 | enabled: 0 18 | settings: 19 | Exclude Android: 1 20 | Exclude Editor: 1 21 | Exclude Linux64: 1 22 | Exclude OSXUniversal: 1 23 | Exclude Win: 1 24 | Exclude Win64: 1 25 | Exclude WindowsStoreApps: 0 26 | Exclude iOS: 1 27 | - first: 28 | Android: Android 29 | second: 30 | enabled: 0 31 | settings: 32 | CPU: ARMv7 33 | - first: 34 | Any: 35 | second: 36 | enabled: 0 37 | settings: {} 38 | - first: 39 | Editor: Editor 40 | second: 41 | enabled: 0 42 | settings: 43 | CPU: x86_64 44 | DefaultValueInitialized: true 45 | OS: AnyOS 46 | - first: 47 | Facebook: Win 48 | second: 49 | enabled: 0 50 | settings: 51 | CPU: None 52 | - first: 53 | Facebook: Win64 54 | second: 55 | enabled: 0 56 | settings: 57 | CPU: AnyCPU 58 | - first: 59 | Standalone: Linux64 60 | second: 61 | enabled: 0 62 | settings: 63 | CPU: None 64 | - first: 65 | Standalone: OSXUniversal 66 | second: 67 | enabled: 0 68 | settings: 69 | CPU: None 70 | - first: 71 | Standalone: Win 72 | second: 73 | enabled: 0 74 | settings: 75 | CPU: None 76 | - first: 77 | Standalone: Win64 78 | second: 79 | enabled: 0 80 | settings: 81 | CPU: None 82 | - first: 83 | Windows Store Apps: WindowsStoreApps 84 | second: 85 | enabled: 1 86 | settings: 87 | CPU: X64 88 | DontProcess: false 89 | PlaceholderPath: 90 | SDK: UWP 91 | ScriptingBackend: AnyScriptingBackend 92 | - first: 93 | iPhone: iOS 94 | second: 95 | enabled: 0 96 | settings: 97 | AddToEmbeddedBinaries: false 98 | CPU: AnyCPU 99 | CompileFlags: 100 | FrameworkDependencies: 101 | userData: 102 | assetBundleName: 103 | assetBundleVariant: 104 | -------------------------------------------------------------------------------- /upm/x86_64_meta.txt: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: @@newGuid@@ 3 | PluginImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | iconMap: {} 7 | executionOrder: {} 8 | defineConstraints: [] 9 | isPreloaded: 0 10 | isOverridable: 0 11 | isExplicitlyReferenced: 0 12 | validateReferences: 0 13 | platformData: 14 | - first: 15 | '': Any 16 | second: 17 | enabled: 0 18 | settings: 19 | Exclude Android: 1 20 | Exclude Editor: 0 21 | Exclude Linux64: 1 22 | Exclude OSXUniversal: 1 23 | Exclude Win: 0 24 | Exclude Win64: 0 25 | Exclude WindowsStoreApps: 1 26 | Exclude iOS: 1 27 | - first: 28 | Android: Android 29 | second: 30 | enabled: 0 31 | settings: 32 | CPU: ARMv7 33 | - first: 34 | Any: 35 | second: 36 | enabled: 0 37 | settings: {} 38 | - first: 39 | Editor: Editor 40 | second: 41 | enabled: 1 42 | settings: 43 | CPU: x86_64 44 | DefaultValueInitialized: true 45 | OS: Windows 46 | - first: 47 | Standalone: Linux64 48 | second: 49 | enabled: 0 50 | settings: 51 | CPU: None 52 | - first: 53 | Standalone: OSXUniversal 54 | second: 55 | enabled: 0 56 | settings: 57 | CPU: None 58 | - first: 59 | Standalone: Win 60 | second: 61 | enabled: 1 62 | settings: 63 | CPU: None 64 | - first: 65 | Standalone: Win64 66 | second: 67 | enabled: 1 68 | settings: 69 | CPU: x86_64 70 | - first: 71 | Windows Store Apps: WindowsStoreApps 72 | second: 73 | enabled: 0 74 | settings: 75 | CPU: X86 76 | DontProcess: false 77 | PlaceholderPath: 78 | SDK: AnySDK 79 | ScriptingBackend: AnyScriptingBackend 80 | - first: 81 | iPhone: iOS 82 | second: 83 | enabled: 0 84 | settings: 85 | AddToEmbeddedBinaries: false 86 | CPU: AnyCPU 87 | CompileFlags: 88 | FrameworkDependencies: 89 | userData: 90 | assetBundleName: 91 | assetBundleVariant: 92 | --------------------------------------------------------------------------------