From 778e376b9f18a7806bdb04ad81b8aaf8ac6916fc Mon Sep 17 00:00:00 2001 From: David Garcia Ruiz Date: Tue, 8 Jul 2025 22:45:00 +0200 Subject: [PATCH 01/18] feat(example): add example project to test the engine library --- example/.gitignore | 43 ++ example/.metadata | 45 ++ example/README.md | 38 ++ example/analysis_options.yaml | 28 + example/android/.gitignore | 13 + example/android/app/build.gradle | 58 ++ .../android/app/src/debug/AndroidManifest.xml | 7 + .../android/app/src/main/AndroidManifest.xml | 45 ++ .../MainActivity.kt | 5 + .../res/drawable-v21/launch_background.xml | 12 + .../main/res/drawable/launch_background.xml | 12 + .../src/main/res/mipmap-hdpi/ic_launcher.png | Bin 0 -> 544 bytes .../src/main/res/mipmap-mdpi/ic_launcher.png | Bin 0 -> 442 bytes .../src/main/res/mipmap-xhdpi/ic_launcher.png | Bin 0 -> 721 bytes .../main/res/mipmap-xxhdpi/ic_launcher.png | Bin 0 -> 1031 bytes .../main/res/mipmap-xxxhdpi/ic_launcher.png | Bin 0 -> 1443 bytes .../app/src/main/res/values-night/styles.xml | 18 + .../app/src/main/res/values/styles.xml | 18 + .../app/src/profile/AndroidManifest.xml | 7 + example/android/build.gradle | 18 + example/android/gradle.properties | 3 + .../gradle/wrapper/gradle-wrapper.properties | 5 + example/android/settings.gradle | 25 + example/ios/.gitignore | 34 + example/ios/Flutter/AppFrameworkInfo.plist | 26 + example/ios/Flutter/Debug.xcconfig | 1 + example/ios/Flutter/Release.xcconfig | 1 + example/ios/Runner.xcodeproj/project.pbxproj | 619 ++++++++++++++++++ .../contents.xcworkspacedata | 7 + .../xcshareddata/IDEWorkspaceChecks.plist | 8 + .../xcshareddata/WorkspaceSettings.xcsettings | 8 + .../xcshareddata/xcschemes/Runner.xcscheme | 98 +++ .../contents.xcworkspacedata | 7 + .../xcshareddata/IDEWorkspaceChecks.plist | 8 + .../xcshareddata/WorkspaceSettings.xcsettings | 8 + example/ios/Runner/AppDelegate.swift | 13 + .../AppIcon.appiconset/Contents.json | 122 ++++ .../Icon-App-1024x1024@1x.png | Bin 0 -> 10932 bytes .../AppIcon.appiconset/Icon-App-20x20@1x.png | Bin 0 -> 295 bytes .../AppIcon.appiconset/Icon-App-20x20@2x.png | Bin 0 -> 406 bytes .../AppIcon.appiconset/Icon-App-20x20@3x.png | Bin 0 -> 450 bytes .../AppIcon.appiconset/Icon-App-29x29@1x.png | Bin 0 -> 282 bytes .../AppIcon.appiconset/Icon-App-29x29@2x.png | Bin 0 -> 462 bytes .../AppIcon.appiconset/Icon-App-29x29@3x.png | Bin 0 -> 704 bytes .../AppIcon.appiconset/Icon-App-40x40@1x.png | Bin 0 -> 406 bytes .../AppIcon.appiconset/Icon-App-40x40@2x.png | Bin 0 -> 586 bytes .../AppIcon.appiconset/Icon-App-40x40@3x.png | Bin 0 -> 862 bytes .../AppIcon.appiconset/Icon-App-60x60@2x.png | Bin 0 -> 862 bytes .../AppIcon.appiconset/Icon-App-60x60@3x.png | Bin 0 -> 1674 bytes .../AppIcon.appiconset/Icon-App-76x76@1x.png | Bin 0 -> 762 bytes .../AppIcon.appiconset/Icon-App-76x76@2x.png | Bin 0 -> 1226 bytes .../Icon-App-83.5x83.5@2x.png | Bin 0 -> 1418 bytes .../LaunchImage.imageset/Contents.json | 23 + .../LaunchImage.imageset/LaunchImage.png | Bin 0 -> 68 bytes .../LaunchImage.imageset/LaunchImage@2x.png | Bin 0 -> 68 bytes .../LaunchImage.imageset/LaunchImage@3x.png | Bin 0 -> 68 bytes .../LaunchImage.imageset/README.md | 5 + .../Runner/Base.lproj/LaunchScreen.storyboard | 37 ++ example/ios/Runner/Base.lproj/Main.storyboard | 26 + example/ios/Runner/Info.plist | 49 ++ example/ios/Runner/Runner-Bridging-Header.h | 1 + example/ios/RunnerTests/RunnerTests.swift | 12 + example/lib/main.dart | 69 ++ example/pubspec.yaml | 25 + 64 files changed, 1607 insertions(+) create mode 100644 example/.gitignore create mode 100644 example/.metadata create mode 100644 example/README.md create mode 100644 example/analysis_options.yaml create mode 100644 example/android/.gitignore create mode 100644 example/android/app/build.gradle create mode 100644 example/android/app/src/debug/AndroidManifest.xml create mode 100644 example/android/app/src/main/AndroidManifest.xml create mode 100644 example/android/app/src/main/kotlin/com/example/flutter_policy_engine_example/MainActivity.kt create mode 100644 example/android/app/src/main/res/drawable-v21/launch_background.xml create mode 100644 example/android/app/src/main/res/drawable/launch_background.xml create mode 100644 example/android/app/src/main/res/mipmap-hdpi/ic_launcher.png create mode 100644 example/android/app/src/main/res/mipmap-mdpi/ic_launcher.png create mode 100644 example/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png create mode 100644 example/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png create mode 100644 example/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png create mode 100644 example/android/app/src/main/res/values-night/styles.xml create mode 100644 example/android/app/src/main/res/values/styles.xml create mode 100644 example/android/app/src/profile/AndroidManifest.xml create mode 100644 example/android/build.gradle create mode 100644 example/android/gradle.properties create mode 100644 example/android/gradle/wrapper/gradle-wrapper.properties create mode 100644 example/android/settings.gradle create mode 100644 example/ios/.gitignore create mode 100644 example/ios/Flutter/AppFrameworkInfo.plist create mode 100644 example/ios/Flutter/Debug.xcconfig create mode 100644 example/ios/Flutter/Release.xcconfig create mode 100644 example/ios/Runner.xcodeproj/project.pbxproj create mode 100644 example/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata create mode 100644 example/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist create mode 100644 example/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings create mode 100644 example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme create mode 100644 example/ios/Runner.xcworkspace/contents.xcworkspacedata create mode 100644 example/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist create mode 100644 example/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings create mode 100644 example/ios/Runner/AppDelegate.swift create mode 100644 example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json create mode 100644 example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png create mode 100644 example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png create mode 100644 example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png create mode 100644 example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png create mode 100644 example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png create mode 100644 example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png create mode 100644 example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png create mode 100644 example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png create mode 100644 example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png create mode 100644 example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png create mode 100644 example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png create mode 100644 example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png create mode 100644 example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png create mode 100644 example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png create mode 100644 example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png create mode 100644 example/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json create mode 100644 example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png create mode 100644 example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png create mode 100644 example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png create mode 100644 example/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md create mode 100644 example/ios/Runner/Base.lproj/LaunchScreen.storyboard create mode 100644 example/ios/Runner/Base.lproj/Main.storyboard create mode 100644 example/ios/Runner/Info.plist create mode 100644 example/ios/Runner/Runner-Bridging-Header.h create mode 100644 example/ios/RunnerTests/RunnerTests.swift create mode 100644 example/lib/main.dart create mode 100644 example/pubspec.yaml diff --git a/example/.gitignore b/example/.gitignore new file mode 100644 index 0000000..29a3a50 --- /dev/null +++ b/example/.gitignore @@ -0,0 +1,43 @@ +# Miscellaneous +*.class +*.log +*.pyc +*.swp +.DS_Store +.atom/ +.buildlog/ +.history +.svn/ +migrate_working_dir/ + +# IntelliJ related +*.iml +*.ipr +*.iws +.idea/ + +# The .vscode folder contains launch configuration and tasks you configure in +# VS Code which you may wish to be included in version control, so this line +# is commented out by default. +#.vscode/ + +# Flutter/Dart/Pub related +**/doc/api/ +**/ios/Flutter/.last_build_id +.dart_tool/ +.flutter-plugins +.flutter-plugins-dependencies +.pub-cache/ +.pub/ +/build/ + +# Symbolication related +app.*.symbols + +# Obfuscation related +app.*.map.json + +# Android Studio will place build artifacts here +/android/app/debug +/android/app/profile +/android/app/release diff --git a/example/.metadata b/example/.metadata new file mode 100644 index 0000000..cbf1dc0 --- /dev/null +++ b/example/.metadata @@ -0,0 +1,45 @@ +# This file tracks properties of this Flutter project. +# Used by Flutter tool to assess capabilities and perform upgrades etc. +# +# This file should be version controlled and should not be manually edited. + +version: + revision: "a14f74ff3a1cbd521163c5f03d68113d50af93d3" + channel: "stable" + +project_type: app + +# Tracks metadata for the flutter migrate command +migration: + platforms: + - platform: root + create_revision: a14f74ff3a1cbd521163c5f03d68113d50af93d3 + base_revision: a14f74ff3a1cbd521163c5f03d68113d50af93d3 + - platform: android + create_revision: a14f74ff3a1cbd521163c5f03d68113d50af93d3 + base_revision: a14f74ff3a1cbd521163c5f03d68113d50af93d3 + - platform: ios + create_revision: a14f74ff3a1cbd521163c5f03d68113d50af93d3 + base_revision: a14f74ff3a1cbd521163c5f03d68113d50af93d3 + - platform: linux + create_revision: a14f74ff3a1cbd521163c5f03d68113d50af93d3 + base_revision: a14f74ff3a1cbd521163c5f03d68113d50af93d3 + - platform: macos + create_revision: a14f74ff3a1cbd521163c5f03d68113d50af93d3 + base_revision: a14f74ff3a1cbd521163c5f03d68113d50af93d3 + - platform: web + create_revision: a14f74ff3a1cbd521163c5f03d68113d50af93d3 + base_revision: a14f74ff3a1cbd521163c5f03d68113d50af93d3 + - platform: windows + create_revision: a14f74ff3a1cbd521163c5f03d68113d50af93d3 + base_revision: a14f74ff3a1cbd521163c5f03d68113d50af93d3 + + # User provided section + + # List of Local paths (relative to this file) that should be + # ignored by the migrate tool. + # + # Files that are not part of the templates will be ignored by default. + unmanaged_files: + - 'lib/main.dart' + - 'ios/Runner.xcodeproj/project.pbxproj' diff --git a/example/README.md b/example/README.md new file mode 100644 index 0000000..cd8fe2e --- /dev/null +++ b/example/README.md @@ -0,0 +1,38 @@ +# flutter_policy_engine_example + +A comprehensive example demonstrating how to use the `flutter_policy_engine` library for implementing Attribute-Based Access Control (ABAC) and Role-Based Access Control (RBAC) in Flutter applications. + +## Overview + +The `flutter_policy_engine` library provides a lightweight, extensible policy engine for Flutter applications. It allows you to define, manage, and evaluate access control rules declaratively using ABAC or RBAC models. + +## Features Demonstrated + +- **Attribute-Based Access Control (ABAC)**: Define policies based on user attributes, resource properties, and environmental factors +- **Role-Based Access Control (RBAC)**: Implement role-based permissions with hierarchical role structures +- **Declarative Rule Definitions**: Define policies using a clean, readable syntax +- **Extensible Design**: Easily extend the engine with custom evaluators and conditions +- **Flutter Integration**: Seamless integration with Flutter widgets and state management + +## Installation + +Add the `flutter_policy_engine` dependency to your `pubspec.yaml`: + +```yaml +dependencies: + flutter_policy_engine: ^0.0.1 +``` + +Then run: + +```bash +flutter pub get +``` + +## Basic Usage + +### 1. Import the Library + +```dart +import 'package:flutter_policy_engine/flutter_policy_engine.dart'; +``` diff --git a/example/analysis_options.yaml b/example/analysis_options.yaml new file mode 100644 index 0000000..0d29021 --- /dev/null +++ b/example/analysis_options.yaml @@ -0,0 +1,28 @@ +# This file configures the analyzer, which statically analyzes Dart code to +# check for errors, warnings, and lints. +# +# The issues identified by the analyzer are surfaced in the UI of Dart-enabled +# IDEs (https://dart.dev/tools#ides-and-editors). The analyzer can also be +# invoked from the command line by running `flutter analyze`. + +# The following line activates a set of recommended lints for Flutter apps, +# packages, and plugins designed to encourage good coding practices. +include: package:flutter_lints/flutter.yaml + +linter: + # The lint rules applied to this project can be customized in the + # section below to disable rules from the `package:flutter_lints/flutter.yaml` + # included above or to enable additional rules. A list of all available lints + # and their documentation is published at https://dart.dev/lints. + # + # Instead of disabling a lint rule for the entire project in the + # section below, it can also be suppressed for a single line of code + # or a specific dart file by using the `// ignore: name_of_lint` and + # `// ignore_for_file: name_of_lint` syntax on the line or in the file + # producing the lint. + rules: + # avoid_print: false # Uncomment to disable the `avoid_print` rule + # prefer_single_quotes: true # Uncomment to enable the `prefer_single_quotes` rule + +# Additional information about this file can be found at +# https://dart.dev/guides/language/analysis-options diff --git a/example/android/.gitignore b/example/android/.gitignore new file mode 100644 index 0000000..6f56801 --- /dev/null +++ b/example/android/.gitignore @@ -0,0 +1,13 @@ +gradle-wrapper.jar +/.gradle +/captures/ +/gradlew +/gradlew.bat +/local.properties +GeneratedPluginRegistrant.java + +# Remember to never publicly share your keystore. +# See https://flutter.dev/docs/deployment/android#reference-the-keystore-from-the-app +key.properties +**/*.keystore +**/*.jks diff --git a/example/android/app/build.gradle b/example/android/app/build.gradle new file mode 100644 index 0000000..228e102 --- /dev/null +++ b/example/android/app/build.gradle @@ -0,0 +1,58 @@ +plugins { + id "com.android.application" + id "kotlin-android" + // The Flutter Gradle Plugin must be applied after the Android and Kotlin Gradle plugins. + id "dev.flutter.flutter-gradle-plugin" +} + +def localProperties = new Properties() +def localPropertiesFile = rootProject.file("local.properties") +if (localPropertiesFile.exists()) { + localPropertiesFile.withReader("UTF-8") { reader -> + localProperties.load(reader) + } +} + +def flutterVersionCode = localProperties.getProperty("flutter.versionCode") +if (flutterVersionCode == null) { + flutterVersionCode = "1" +} + +def flutterVersionName = localProperties.getProperty("flutter.versionName") +if (flutterVersionName == null) { + flutterVersionName = "1.0" +} + +android { + namespace = "com.example.flutter_policy_engine_example" + compileSdk = flutter.compileSdkVersion + ndkVersion = flutter.ndkVersion + + compileOptions { + sourceCompatibility = JavaVersion.VERSION_1_8 + targetCompatibility = JavaVersion.VERSION_1_8 + } + + defaultConfig { + // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html). + applicationId = "com.example.flutter_policy_engine_example" + // You can update the following values to match your application needs. + // For more information, see: https://docs.flutter.dev/deployment/android#reviewing-the-gradle-build-configuration. + minSdk = flutter.minSdkVersion + targetSdk = flutter.targetSdkVersion + versionCode = flutterVersionCode.toInteger() + versionName = flutterVersionName + } + + buildTypes { + release { + // TODO: Add your own signing config for the release build. + // Signing with the debug keys for now, so `flutter run --release` works. + signingConfig = signingConfigs.debug + } + } +} + +flutter { + source = "../.." +} diff --git a/example/android/app/src/debug/AndroidManifest.xml b/example/android/app/src/debug/AndroidManifest.xml new file mode 100644 index 0000000..399f698 --- /dev/null +++ b/example/android/app/src/debug/AndroidManifest.xml @@ -0,0 +1,7 @@ + + + + diff --git a/example/android/app/src/main/AndroidManifest.xml b/example/android/app/src/main/AndroidManifest.xml new file mode 100644 index 0000000..6748261 --- /dev/null +++ b/example/android/app/src/main/AndroidManifest.xml @@ -0,0 +1,45 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/example/android/app/src/main/kotlin/com/example/flutter_policy_engine_example/MainActivity.kt b/example/android/app/src/main/kotlin/com/example/flutter_policy_engine_example/MainActivity.kt new file mode 100644 index 0000000..43ec488 --- /dev/null +++ b/example/android/app/src/main/kotlin/com/example/flutter_policy_engine_example/MainActivity.kt @@ -0,0 +1,5 @@ +package com.example.flutter_policy_engine_example + +import io.flutter.embedding.android.FlutterActivity + +class MainActivity: FlutterActivity() diff --git a/example/android/app/src/main/res/drawable-v21/launch_background.xml b/example/android/app/src/main/res/drawable-v21/launch_background.xml new file mode 100644 index 0000000..f74085f --- /dev/null +++ b/example/android/app/src/main/res/drawable-v21/launch_background.xml @@ -0,0 +1,12 @@ + + + + + + + + diff --git a/example/android/app/src/main/res/drawable/launch_background.xml b/example/android/app/src/main/res/drawable/launch_background.xml new file mode 100644 index 0000000..304732f --- /dev/null +++ b/example/android/app/src/main/res/drawable/launch_background.xml @@ -0,0 +1,12 @@ + + + + + + + + diff --git a/example/android/app/src/main/res/mipmap-hdpi/ic_launcher.png b/example/android/app/src/main/res/mipmap-hdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..db77bb4b7b0906d62b1847e87f15cdcacf6a4f29 GIT binary patch literal 544 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY3?!3`olAj~WQl7;NpOBzNqJ&XDuZK6ep0G} zXKrG8YEWuoN@d~6R2!h8bpbvhu0Wd6uZuB!w&u2PAxD2eNXD>P5D~Wn-+_Wa#27Xc zC?Zj|6r#X(-D3u$NCt}(Ms06KgJ4FxJVv{GM)!I~&n8Bnc94O7-Hd)cjDZswgC;Qs zO=b+9!WcT8F?0rF7!Uys2bs@gozCP?z~o%U|N3vA*22NaGQG zlg@K`O_XuxvZ&Ks^m&R!`&1=spLvfx7oGDKDwpwW`#iqdw@AL`7MR}m`rwr|mZgU`8P7SBkL78fFf!WnuYWm$5Z0 zNXhDbCv&49sM544K|?c)WrFfiZvCi9h0O)B3Pgg&ebxsLQ05GG~ AQ2+n{ literal 0 HcmV?d00001 diff --git a/example/android/app/src/main/res/mipmap-mdpi/ic_launcher.png b/example/android/app/src/main/res/mipmap-mdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..17987b79bb8a35cc66c3c1fd44f5a5526c1b78be GIT binary patch literal 442 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA3?vioaBc-sk|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*D5Xx&nMcT!A!W`0S9QKQy;}1Cl^CgaH=;G9cpY;r$Q>i*pfB zP2drbID<_#qf;rPZx^FqH)F_D#*k@@q03KywUtLX8Ua?`H+NMzkczFPK3lFz@i_kW%1NOn0|D2I9n9wzH8m|-tHjsw|9>@K=iMBhxvkv6m8Y-l zytQ?X=U+MF$@3 zt`~i=@j|6y)RWMK--}M|=T`o&^Ni>IoWKHEbBXz7?A@mgWoL>!*SXo`SZH-*HSdS+ yn*9;$7;m`l>wYBC5bq;=U}IMqLzqbYCidGC!)_gkIk_C@Uy!y&wkt5C($~2D>~)O*cj@FGjOCM)M>_ixfudOh)?xMu#Fs z#}Y=@YDTwOM)x{K_j*Q;dPdJ?Mz0n|pLRx{4n|)f>SXlmV)XB04CrSJn#dS5nK2lM zrZ9#~WelCp7&e13Y$jvaEXHskn$2V!!DN-nWS__6T*l;H&Fopn?A6HZ-6WRLFP=R` zqG+CE#d4|IbyAI+rJJ`&x9*T`+a=p|0O(+s{UBcyZdkhj=yS1>AirP+0R;mf2uMgM zC}@~JfByORAh4SyRgi&!(cja>F(l*O+nd+@4m$|6K6KDn_&uvCpV23&>G9HJp{xgg zoq1^2_p9@|WEo z*X_Uko@K)qYYv~>43eQGMdbiGbo>E~Q& zrYBH{QP^@Sti!`2)uG{irBBq@y*$B zi#&(U-*=fp74j)RyIw49+0MRPMRU)+a2r*PJ$L5roHt2$UjExCTZSbq%V!HeS7J$N zdG@vOZB4v_lF7Plrx+hxo7(fCV&}fHq)$ literal 0 HcmV?d00001 diff --git a/example/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/example/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..d5f1c8d34e7a88e3f88bea192c3a370d44689c3c GIT binary patch literal 1031 zcmeAS@N?(olHy`uVBq!ia0vp^6F``Q8Ax83A=Cw=BuiW)N`mv#O3D+9QW+dm@{>{( zJaZG%Q-e|yQz{EjrrIztFa`(sgt!6~Yi|1%a`XoT0ojZ}lNrNjb9xjc(B0U1_% zz5^97Xt*%oq$rQy4?0GKNfJ44uvxI)gC`h-NZ|&0-7(qS@?b!5r36oQ}zyZrNO3 zMO=Or+<~>+A&uN&E!^Sl+>xE!QC-|oJv`ApDhqC^EWD|@=#J`=d#Xzxs4ah}w&Jnc z$|q_opQ^2TrnVZ0o~wh<3t%W&flvYGe#$xqda2bR_R zvPYgMcHgjZ5nSA^lJr%;<&0do;O^tDDh~=pIxA#coaCY>&N%M2^tq^U%3DB@ynvKo}b?yu-bFc-u0JHzced$sg7S3zqI(2 z#Km{dPr7I=pQ5>FuK#)QwK?Y`E`B?nP+}U)I#c1+FM*1kNvWG|a(TpksZQ3B@sD~b zpQ2)*V*TdwjFOtHvV|;OsiDqHi=6%)o4b!)x$)%9pGTsE z-JL={-Ffv+T87W(Xpooq<`r*VzWQcgBN$$`u}f>-ZQI1BB8ykN*=e4rIsJx9>z}*o zo~|9I;xof literal 0 HcmV?d00001 diff --git a/example/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/example/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..4d6372eebdb28e45604e46eeda8dd24651419bc0 GIT binary patch literal 1443 zcmb`G{WsKk6vsdJTdFg%tJav9_E4vzrOaqkWF|A724Nly!y+?N9`YV6wZ}5(X(D_N(?!*n3`|_r0Hc?=PQw&*vnU?QTFY zB_MsH|!j$PP;I}?dppoE_gA(4uc!jV&0!l7_;&p2^pxNo>PEcNJv za5_RT$o2Mf!<+r?&EbHH6nMoTsDOa;mN(wv8RNsHpG)`^ymG-S5By8=l9iVXzN_eG%Xg2@Xeq76tTZ*dGh~Lo9vl;Zfs+W#BydUw zCkZ$o1LqWQO$FC9aKlLl*7x9^0q%0}$OMlp@Kk_jHXOjofdePND+j!A{q!8~Jn+s3 z?~~w@4?egS02}8NuulUA=L~QQfm;MzCGd)XhiftT;+zFO&JVyp2mBww?;QByS_1w! zrQlx%{^cMj0|Bo1FjwY@Q8?Hx0cIPF*@-ZRFpPc#bBw{5@tD(5%sClzIfl8WU~V#u zm5Q;_F!wa$BSpqhN>W@2De?TKWR*!ujY;Yylk_X5#~V!L*Gw~;$%4Q8~Mad z@`-kG?yb$a9cHIApZDVZ^U6Xkp<*4rU82O7%}0jjHlK{id@?-wpN*fCHXyXh(bLt* zPc}H-x0e4E&nQ>y%B-(EL=9}RyC%MyX=upHuFhAk&MLbsF0LP-q`XnH78@fT+pKPW zu72MW`|?8ht^tz$iC}ZwLp4tB;Q49K!QCF3@!iB1qOI=?w z7In!}F~ij(18UYUjnbmC!qKhPo%24?8U1x{7o(+?^Zu0Hx81|FuS?bJ0jgBhEMzf< zCgUq7r2OCB(`XkKcN-TL>u5y#dD6D!)5W?`O5)V^>jb)P)GBdy%t$uUMpf$SNV31$ zb||OojAbvMP?T@$h_ZiFLFVHDmbyMhJF|-_)HX3%m=CDI+ID$0^C>kzxprBW)hw(v zr!Gmda);ICoQyhV_oP5+C%?jcG8v+D@9f?Dk*!BxY}dazmrT@64UrP3hlslANK)bq z$67n83eh}OeW&SV@HG95P|bjfqJ7gw$e+`Hxo!4cx`jdK1bJ>YDSpGKLPZ^1cv$ek zIB?0S<#tX?SJCLWdMd{-ME?$hc7A$zBOdIJ)4!KcAwb=VMov)nK;9z>x~rfT1>dS+ zZ6#`2v@`jgbqq)P22H)Tx2CpmM^o1$B+xT6`(v%5xJ(?j#>Q$+rx_R|7TzDZe{J6q zG1*EcU%tE?!kO%^M;3aM6JN*LAKUVb^xz8-Pxo#jR5(-KBeLJvA@-gxNHx0M-ZJLl z;#JwQoh~9V?`UVo#}{6ka@II>++D@%KqGpMdlQ}?9E*wFcf5(#XQnP$Dk5~%iX^>f z%$y;?M0BLp{O3a(-4A?ewryHrrD%cx#Q^%KY1H zNre$ve+vceSLZcNY4U(RBX&)oZn*Py()h)XkE?PL$!bNb{N5FVI2Y%LKEm%yvpyTP z(1P?z~7YxD~Rf<(a@_y` literal 0 HcmV?d00001 diff --git a/example/android/app/src/main/res/values-night/styles.xml b/example/android/app/src/main/res/values-night/styles.xml new file mode 100644 index 0000000..06952be --- /dev/null +++ b/example/android/app/src/main/res/values-night/styles.xml @@ -0,0 +1,18 @@ + + + + + + + diff --git a/example/android/app/src/main/res/values/styles.xml b/example/android/app/src/main/res/values/styles.xml new file mode 100644 index 0000000..cb1ef88 --- /dev/null +++ b/example/android/app/src/main/res/values/styles.xml @@ -0,0 +1,18 @@ + + + + + + + diff --git a/example/android/app/src/profile/AndroidManifest.xml b/example/android/app/src/profile/AndroidManifest.xml new file mode 100644 index 0000000..399f698 --- /dev/null +++ b/example/android/app/src/profile/AndroidManifest.xml @@ -0,0 +1,7 @@ + + + + diff --git a/example/android/build.gradle b/example/android/build.gradle new file mode 100644 index 0000000..d2ffbff --- /dev/null +++ b/example/android/build.gradle @@ -0,0 +1,18 @@ +allprojects { + repositories { + google() + mavenCentral() + } +} + +rootProject.buildDir = "../build" +subprojects { + project.buildDir = "${rootProject.buildDir}/${project.name}" +} +subprojects { + project.evaluationDependsOn(":app") +} + +tasks.register("clean", Delete) { + delete rootProject.buildDir +} diff --git a/example/android/gradle.properties b/example/android/gradle.properties new file mode 100644 index 0000000..3b5b324 --- /dev/null +++ b/example/android/gradle.properties @@ -0,0 +1,3 @@ +org.gradle.jvmargs=-Xmx4G -XX:+HeapDumpOnOutOfMemoryError +android.useAndroidX=true +android.enableJetifier=true diff --git a/example/android/gradle/wrapper/gradle-wrapper.properties b/example/android/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 0000000..e1ca574 --- /dev/null +++ b/example/android/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,5 @@ +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-7.6.3-all.zip diff --git a/example/android/settings.gradle b/example/android/settings.gradle new file mode 100644 index 0000000..536165d --- /dev/null +++ b/example/android/settings.gradle @@ -0,0 +1,25 @@ +pluginManagement { + def flutterSdkPath = { + def properties = new Properties() + file("local.properties").withInputStream { properties.load(it) } + def flutterSdkPath = properties.getProperty("flutter.sdk") + assert flutterSdkPath != null, "flutter.sdk not set in local.properties" + return flutterSdkPath + }() + + includeBuild("$flutterSdkPath/packages/flutter_tools/gradle") + + repositories { + google() + mavenCentral() + gradlePluginPortal() + } +} + +plugins { + id "dev.flutter.flutter-plugin-loader" version "1.0.0" + id "com.android.application" version "7.3.0" apply false + id "org.jetbrains.kotlin.android" version "1.7.10" apply false +} + +include ":app" diff --git a/example/ios/.gitignore b/example/ios/.gitignore new file mode 100644 index 0000000..7a7f987 --- /dev/null +++ b/example/ios/.gitignore @@ -0,0 +1,34 @@ +**/dgph +*.mode1v3 +*.mode2v3 +*.moved-aside +*.pbxuser +*.perspectivev3 +**/*sync/ +.sconsign.dblite +.tags* +**/.vagrant/ +**/DerivedData/ +Icon? +**/Pods/ +**/.symlinks/ +profile +xcuserdata +**/.generated/ +Flutter/App.framework +Flutter/Flutter.framework +Flutter/Flutter.podspec +Flutter/Generated.xcconfig +Flutter/ephemeral/ +Flutter/app.flx +Flutter/app.zip +Flutter/flutter_assets/ +Flutter/flutter_export_environment.sh +ServiceDefinitions.json +Runner/GeneratedPluginRegistrant.* + +# Exceptions to above rules. +!default.mode1v3 +!default.mode2v3 +!default.pbxuser +!default.perspectivev3 diff --git a/example/ios/Flutter/AppFrameworkInfo.plist b/example/ios/Flutter/AppFrameworkInfo.plist new file mode 100644 index 0000000..7c56964 --- /dev/null +++ b/example/ios/Flutter/AppFrameworkInfo.plist @@ -0,0 +1,26 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + App + CFBundleIdentifier + io.flutter.flutter.app + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + App + CFBundlePackageType + FMWK + CFBundleShortVersionString + 1.0 + CFBundleSignature + ???? + CFBundleVersion + 1.0 + MinimumOSVersion + 12.0 + + diff --git a/example/ios/Flutter/Debug.xcconfig b/example/ios/Flutter/Debug.xcconfig new file mode 100644 index 0000000..592ceee --- /dev/null +++ b/example/ios/Flutter/Debug.xcconfig @@ -0,0 +1 @@ +#include "Generated.xcconfig" diff --git a/example/ios/Flutter/Release.xcconfig b/example/ios/Flutter/Release.xcconfig new file mode 100644 index 0000000..592ceee --- /dev/null +++ b/example/ios/Flutter/Release.xcconfig @@ -0,0 +1 @@ +#include "Generated.xcconfig" diff --git a/example/ios/Runner.xcodeproj/project.pbxproj b/example/ios/Runner.xcodeproj/project.pbxproj new file mode 100644 index 0000000..e9a11ae --- /dev/null +++ b/example/ios/Runner.xcodeproj/project.pbxproj @@ -0,0 +1,619 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 54; + objects = { + +/* Begin PBXBuildFile section */ + 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */ = {isa = PBXBuildFile; fileRef = 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */; }; + 331C808B294A63AB00263BE5 /* RunnerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 331C807B294A618700263BE5 /* RunnerTests.swift */; }; + 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */; }; + 74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 74858FAE1ED2DC5600515810 /* AppDelegate.swift */; }; + 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FA1CF9000F007C117D /* Main.storyboard */; }; + 97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FD1CF9000F007C117D /* Assets.xcassets */; }; + 97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 331C8085294A63A400263BE5 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 97C146E61CF9000F007C117D /* Project object */; + proxyType = 1; + remoteGlobalIDString = 97C146ED1CF9000F007C117D; + remoteInfo = Runner; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXCopyFilesBuildPhase section */ + 9705A1C41CF9048500538489 /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXCopyFilesBuildPhase section */ + +/* Begin PBXFileReference section */ + 1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GeneratedPluginRegistrant.h; sourceTree = ""; }; + 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GeneratedPluginRegistrant.m; sourceTree = ""; }; + 331C807B294A618700263BE5 /* RunnerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RunnerTests.swift; sourceTree = ""; }; + 331C8081294A63A400263BE5 /* RunnerTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = RunnerTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; + 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = AppFrameworkInfo.plist; path = Flutter/AppFrameworkInfo.plist; sourceTree = ""; }; + 74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Runner-Bridging-Header.h"; sourceTree = ""; }; + 74858FAE1ED2DC5600515810 /* AppDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; + 7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Release.xcconfig; path = Flutter/Release.xcconfig; sourceTree = ""; }; + 9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Debug.xcconfig; path = Flutter/Debug.xcconfig; sourceTree = ""; }; + 9740EEB31CF90195004384FC /* Generated.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Generated.xcconfig; path = Flutter/Generated.xcconfig; sourceTree = ""; }; + 97C146EE1CF9000F007C117D /* Runner.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Runner.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 97C146FB1CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; + 97C146FD1CF9000F007C117D /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; + 97C147001CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; + 97C147021CF9000F007C117D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 97C146EB1CF9000F007C117D /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 331C8082294A63A400263BE5 /* RunnerTests */ = { + isa = PBXGroup; + children = ( + 331C807B294A618700263BE5 /* RunnerTests.swift */, + ); + path = RunnerTests; + sourceTree = ""; + }; + 9740EEB11CF90186004384FC /* Flutter */ = { + isa = PBXGroup; + children = ( + 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */, + 9740EEB21CF90195004384FC /* Debug.xcconfig */, + 7AFA3C8E1D35360C0083082E /* Release.xcconfig */, + 9740EEB31CF90195004384FC /* Generated.xcconfig */, + ); + name = Flutter; + sourceTree = ""; + }; + 97C146E51CF9000F007C117D = { + isa = PBXGroup; + children = ( + 9740EEB11CF90186004384FC /* Flutter */, + 97C146F01CF9000F007C117D /* Runner */, + 97C146EF1CF9000F007C117D /* Products */, + 331C8082294A63A400263BE5 /* RunnerTests */, + ); + sourceTree = ""; + }; + 97C146EF1CF9000F007C117D /* Products */ = { + isa = PBXGroup; + children = ( + 97C146EE1CF9000F007C117D /* Runner.app */, + 331C8081294A63A400263BE5 /* RunnerTests.xctest */, + ); + name = Products; + sourceTree = ""; + }; + 97C146F01CF9000F007C117D /* Runner */ = { + isa = PBXGroup; + children = ( + 97C146FA1CF9000F007C117D /* Main.storyboard */, + 97C146FD1CF9000F007C117D /* Assets.xcassets */, + 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */, + 97C147021CF9000F007C117D /* Info.plist */, + 1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */, + 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */, + 74858FAE1ED2DC5600515810 /* AppDelegate.swift */, + 74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */, + ); + path = Runner; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 331C8080294A63A400263BE5 /* RunnerTests */ = { + isa = PBXNativeTarget; + buildConfigurationList = 331C8087294A63A400263BE5 /* Build configuration list for PBXNativeTarget "RunnerTests" */; + buildPhases = ( + 331C807D294A63A400263BE5 /* Sources */, + 331C807F294A63A400263BE5 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + 331C8086294A63A400263BE5 /* PBXTargetDependency */, + ); + name = RunnerTests; + productName = RunnerTests; + productReference = 331C8081294A63A400263BE5 /* RunnerTests.xctest */; + productType = "com.apple.product-type.bundle.unit-test"; + }; + 97C146ED1CF9000F007C117D /* Runner */ = { + isa = PBXNativeTarget; + buildConfigurationList = 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */; + buildPhases = ( + 9740EEB61CF901F6004384FC /* Run Script */, + 97C146EA1CF9000F007C117D /* Sources */, + 97C146EB1CF9000F007C117D /* Frameworks */, + 97C146EC1CF9000F007C117D /* Resources */, + 9705A1C41CF9048500538489 /* Embed Frameworks */, + 3B06AD1E1E4923F5004D2608 /* Thin Binary */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = Runner; + productName = Runner; + productReference = 97C146EE1CF9000F007C117D /* Runner.app */; + productType = "com.apple.product-type.application"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 97C146E61CF9000F007C117D /* Project object */ = { + isa = PBXProject; + attributes = { + BuildIndependentTargetsInParallel = YES; + LastUpgradeCheck = 1510; + ORGANIZATIONNAME = ""; + TargetAttributes = { + 331C8080294A63A400263BE5 = { + CreatedOnToolsVersion = 14.0; + TestTargetID = 97C146ED1CF9000F007C117D; + }; + 97C146ED1CF9000F007C117D = { + CreatedOnToolsVersion = 7.3.1; + LastSwiftMigration = 1100; + }; + }; + }; + buildConfigurationList = 97C146E91CF9000F007C117D /* Build configuration list for PBXProject "Runner" */; + compatibilityVersion = "Xcode 9.3"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + Base, + ); + mainGroup = 97C146E51CF9000F007C117D; + productRefGroup = 97C146EF1CF9000F007C117D /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 97C146ED1CF9000F007C117D /* Runner */, + 331C8080294A63A400263BE5 /* RunnerTests */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 331C807F294A63A400263BE5 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 97C146EC1CF9000F007C117D /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */, + 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */, + 97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */, + 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXShellScriptBuildPhase section */ + 3B06AD1E1E4923F5004D2608 /* Thin Binary */ = { + isa = PBXShellScriptBuildPhase; + alwaysOutOfDate = 1; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + "${TARGET_BUILD_DIR}/${INFOPLIST_PATH}", + ); + name = "Thin Binary"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" embed_and_thin"; + }; + 9740EEB61CF901F6004384FC /* Run Script */ = { + isa = PBXShellScriptBuildPhase; + alwaysOutOfDate = 1; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "Run Script"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" build"; + }; +/* End PBXShellScriptBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 331C807D294A63A400263BE5 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 331C808B294A63AB00263BE5 /* RunnerTests.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 97C146EA1CF9000F007C117D /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */, + 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXTargetDependency section */ + 331C8086294A63A400263BE5 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 97C146ED1CF9000F007C117D /* Runner */; + targetProxy = 331C8085294A63A400263BE5 /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin PBXVariantGroup section */ + 97C146FA1CF9000F007C117D /* Main.storyboard */ = { + isa = PBXVariantGroup; + children = ( + 97C146FB1CF9000F007C117D /* Base */, + ); + name = Main.storyboard; + sourceTree = ""; + }; + 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */ = { + isa = PBXVariantGroup; + children = ( + 97C147001CF9000F007C117D /* Base */, + ); + name = LaunchScreen.storyboard; + sourceTree = ""; + }; +/* End PBXVariantGroup section */ + +/* Begin XCBuildConfiguration section */ + 249021D3217E4FDB00AE95B9 /* Profile */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; + CLANG_ANALYZER_NONNULL = YES; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_USER_SCRIPT_SANDBOXING = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 12.0; + MTL_ENABLE_DEBUG_INFO = NO; + SDKROOT = iphoneos; + SUPPORTED_PLATFORMS = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + }; + name = Profile; + }; + 249021D4217E4FDB00AE95B9 /* Profile */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_MODULES = YES; + CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; + DEVELOPMENT_TEAM = 6US4A37RYF; + ENABLE_BITCODE = NO; + INFOPLIST_FILE = Runner/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = com.example.flutterPolicyEngineExample; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; + SWIFT_VERSION = 5.0; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = Profile; + }; + 331C8088294A63A400263BE5 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + GENERATE_INFOPLIST_FILE = YES; + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = com.example.flutterPolicyEngineExample.RunnerTests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Runner.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/Runner"; + }; + name = Debug; + }; + 331C8089294A63A400263BE5 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + GENERATE_INFOPLIST_FILE = YES; + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = com.example.flutterPolicyEngineExample.RunnerTests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 5.0; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Runner.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/Runner"; + }; + name = Release; + }; + 331C808A294A63A400263BE5 /* Profile */ = { + isa = XCBuildConfiguration; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + GENERATE_INFOPLIST_FILE = YES; + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = com.example.flutterPolicyEngineExample.RunnerTests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 5.0; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Runner.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/Runner"; + }; + name = Profile; + }; + 97C147031CF9000F007C117D /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; + CLANG_ANALYZER_NONNULL = YES; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + ENABLE_USER_SCRIPT_SANDBOXING = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 12.0; + MTL_ENABLE_DEBUG_INFO = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + 97C147041CF9000F007C117D /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; + CLANG_ANALYZER_NONNULL = YES; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_USER_SCRIPT_SANDBOXING = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 12.0; + MTL_ENABLE_DEBUG_INFO = NO; + SDKROOT = iphoneos; + SUPPORTED_PLATFORMS = iphoneos; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; + 97C147061CF9000F007C117D /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 9740EEB21CF90195004384FC /* Debug.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_MODULES = YES; + CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; + DEVELOPMENT_TEAM = 6US4A37RYF; + ENABLE_BITCODE = NO; + INFOPLIST_FILE = Runner/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = com.example.flutterPolicyEngineExample; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = Debug; + }; + 97C147071CF9000F007C117D /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_MODULES = YES; + CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; + DEVELOPMENT_TEAM = 6US4A37RYF; + ENABLE_BITCODE = NO; + INFOPLIST_FILE = Runner/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = com.example.flutterPolicyEngineExample; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; + SWIFT_VERSION = 5.0; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 331C8087294A63A400263BE5 /* Build configuration list for PBXNativeTarget "RunnerTests" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 331C8088294A63A400263BE5 /* Debug */, + 331C8089294A63A400263BE5 /* Release */, + 331C808A294A63A400263BE5 /* Profile */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 97C146E91CF9000F007C117D /* Build configuration list for PBXProject "Runner" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 97C147031CF9000F007C117D /* Debug */, + 97C147041CF9000F007C117D /* Release */, + 249021D3217E4FDB00AE95B9 /* Profile */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 97C147061CF9000F007C117D /* Debug */, + 97C147071CF9000F007C117D /* Release */, + 249021D4217E4FDB00AE95B9 /* Profile */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = 97C146E61CF9000F007C117D /* Project object */; +} diff --git a/example/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/example/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..919434a --- /dev/null +++ b/example/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/example/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/example/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 0000000..18d9810 --- /dev/null +++ b/example/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/example/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings b/example/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings new file mode 100644 index 0000000..f9b0d7c --- /dev/null +++ b/example/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings @@ -0,0 +1,8 @@ + + + + + PreviewsEnabled + + + diff --git a/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme new file mode 100644 index 0000000..8e3ca5d --- /dev/null +++ b/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme @@ -0,0 +1,98 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/example/ios/Runner.xcworkspace/contents.xcworkspacedata b/example/ios/Runner.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..1d526a1 --- /dev/null +++ b/example/ios/Runner.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/example/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/example/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 0000000..18d9810 --- /dev/null +++ b/example/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/example/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings b/example/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings new file mode 100644 index 0000000..f9b0d7c --- /dev/null +++ b/example/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings @@ -0,0 +1,8 @@ + + + + + PreviewsEnabled + + + diff --git a/example/ios/Runner/AppDelegate.swift b/example/ios/Runner/AppDelegate.swift new file mode 100644 index 0000000..9074fee --- /dev/null +++ b/example/ios/Runner/AppDelegate.swift @@ -0,0 +1,13 @@ +import Flutter +import UIKit + +@UIApplicationMain +@objc class AppDelegate: FlutterAppDelegate { + override func application( + _ application: UIApplication, + didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]? + ) -> Bool { + GeneratedPluginRegistrant.register(with: self) + return super.application(application, didFinishLaunchingWithOptions: launchOptions) + } +} diff --git a/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json b/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 0000000..d36b1fa --- /dev/null +++ b/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,122 @@ +{ + "images" : [ + { + "size" : "20x20", + "idiom" : "iphone", + "filename" : "Icon-App-20x20@2x.png", + "scale" : "2x" + }, + { + "size" : "20x20", + "idiom" : "iphone", + "filename" : "Icon-App-20x20@3x.png", + "scale" : "3x" + }, + { + "size" : "29x29", + "idiom" : "iphone", + "filename" : "Icon-App-29x29@1x.png", + "scale" : "1x" + }, + { + "size" : "29x29", + "idiom" : "iphone", + "filename" : "Icon-App-29x29@2x.png", + "scale" : "2x" + }, + { + "size" : "29x29", + "idiom" : "iphone", + "filename" : "Icon-App-29x29@3x.png", + "scale" : "3x" + }, + { + "size" : "40x40", + "idiom" : "iphone", + "filename" : "Icon-App-40x40@2x.png", + "scale" : "2x" + }, + { + "size" : "40x40", + "idiom" : "iphone", + "filename" : "Icon-App-40x40@3x.png", + "scale" : "3x" + }, + { + "size" : "60x60", + "idiom" : "iphone", + "filename" : "Icon-App-60x60@2x.png", + "scale" : "2x" + }, + { + "size" : "60x60", + "idiom" : "iphone", + "filename" : "Icon-App-60x60@3x.png", + "scale" : "3x" + }, + { + "size" : "20x20", + "idiom" : "ipad", + "filename" : "Icon-App-20x20@1x.png", + "scale" : "1x" + }, + { + "size" : "20x20", + "idiom" : "ipad", + "filename" : "Icon-App-20x20@2x.png", + "scale" : "2x" + }, + { + "size" : "29x29", + "idiom" : "ipad", + "filename" : "Icon-App-29x29@1x.png", + "scale" : "1x" + }, + { + "size" : "29x29", + "idiom" : "ipad", + "filename" : "Icon-App-29x29@2x.png", + "scale" : "2x" + }, + { + "size" : "40x40", + "idiom" : "ipad", + "filename" : "Icon-App-40x40@1x.png", + "scale" : "1x" + }, + { + "size" : "40x40", + "idiom" : "ipad", + "filename" : "Icon-App-40x40@2x.png", + "scale" : "2x" + }, + { + "size" : "76x76", + "idiom" : "ipad", + "filename" : "Icon-App-76x76@1x.png", + "scale" : "1x" + }, + { + "size" : "76x76", + "idiom" : "ipad", + "filename" : "Icon-App-76x76@2x.png", + "scale" : "2x" + }, + { + "size" : "83.5x83.5", + "idiom" : "ipad", + "filename" : "Icon-App-83.5x83.5@2x.png", + "scale" : "2x" + }, + { + "size" : "1024x1024", + "idiom" : "ios-marketing", + "filename" : "Icon-App-1024x1024@1x.png", + "scale" : "1x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} diff --git a/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png b/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png new file mode 100644 index 0000000000000000000000000000000000000000..dc9ada4725e9b0ddb1deab583e5b5102493aa332 GIT binary patch literal 10932 zcmeHN2~<R zh`|8`A_PQ1nSu(UMFx?8j8PC!!VDphaL#`F42fd#7Vlc`zIE4n%Y~eiz4y1j|NDpi z?<@|pSJ-HM`qifhf@m%MamgwK83`XpBA<+azdF#2QsT{X@z0A9Bq>~TVErigKH1~P zRX-!h-f0NJ4Mh++{D}J+K>~~rq}d%o%+4dogzXp7RxX4C>Km5XEI|PAFDmo;DFm6G zzjVoB`@qW98Yl0Kvc-9w09^PrsobmG*Eju^=3f?0o-t$U)TL1B3;sZ^!++3&bGZ!o-*6w?;oOhf z=A+Qb$scV5!RbG+&2S}BQ6YH!FKb0``VVX~T$dzzeSZ$&9=X$3)_7Z{SspSYJ!lGE z7yig_41zpQ)%5dr4ff0rh$@ky3-JLRk&DK)NEIHecf9c*?Z1bUB4%pZjQ7hD!A0r-@NF(^WKdr(LXj|=UE7?gBYGgGQV zidf2`ZT@pzXf7}!NH4q(0IMcxsUGDih(0{kRSez&z?CFA0RVXsVFw3^u=^KMtt95q z43q$b*6#uQDLoiCAF_{RFc{!H^moH_cmll#Fc^KXi{9GDl{>%+3qyfOE5;Zq|6#Hb zp^#1G+z^AXfRKaa9HK;%b3Ux~U@q?xg<2DXP%6k!3E)PA<#4$ui8eDy5|9hA5&{?v z(-;*1%(1~-NTQ`Is1_MGdQ{+i*ccd96ab$R$T3=% zw_KuNF@vI!A>>Y_2pl9L{9h1-C6H8<)J4gKI6{WzGBi<@u3P6hNsXG=bRq5c+z;Gc3VUCe;LIIFDmQAGy+=mRyF++u=drBWV8-^>0yE9N&*05XHZpPlE zxu@?8(ZNy7rm?|<+UNe0Vs6&o?l`Pt>P&WaL~M&#Eh%`rg@Mbb)J&@DA-wheQ>hRV z<(XhigZAT z>=M;URcdCaiO3d^?H<^EiEMDV+7HsTiOhoaMX%P65E<(5xMPJKxf!0u>U~uVqnPN7T!X!o@_gs3Ct1 zlZ_$5QXP4{Aj645wG_SNT&6m|O6~Tsl$q?nK*)(`{J4b=(yb^nOATtF1_aS978$x3 zx>Q@s4i3~IT*+l{@dx~Hst21fR*+5}S1@cf>&8*uLw-0^zK(+OpW?cS-YG1QBZ5q! zgTAgivzoF#`cSz&HL>Ti!!v#?36I1*l^mkrx7Y|K6L#n!-~5=d3;K<;Zqi|gpNUn_ z_^GaQDEQ*jfzh;`j&KXb66fWEk1K7vxQIMQ_#Wu_%3 z4Oeb7FJ`8I>Px;^S?)}2+4D_83gHEq>8qSQY0PVP?o)zAv3K~;R$fnwTmI-=ZLK`= zTm+0h*e+Yfr(IlH3i7gUclNH^!MU>id$Jw>O?2i0Cila#v|twub21@e{S2v}8Z13( zNDrTXZVgris|qYm<0NU(tAPouG!QF4ZNpZPkX~{tVf8xY690JqY1NVdiTtW+NqyRP zZ&;T0ikb8V{wxmFhlLTQ&?OP7 z;(z*<+?J2~z*6asSe7h`$8~Se(@t(#%?BGLVs$p``;CyvcT?7Y!{tIPva$LxCQ&4W z6v#F*);|RXvI%qnoOY&i4S*EL&h%hP3O zLsrFZhv&Hu5tF$Lx!8(hs&?!Kx5&L(fdu}UI5d*wn~A`nPUhG&Rv z2#ixiJdhSF-K2tpVL=)5UkXRuPAFrEW}7mW=uAmtVQ&pGE-&az6@#-(Te^n*lrH^m@X-ftVcwO_#7{WI)5v(?>uC9GG{lcGXYJ~Q8q zbMFl7;t+kV;|;KkBW2!P_o%Czhw&Q(nXlxK9ak&6r5t_KH8#1Mr-*0}2h8R9XNkr zto5-b7P_auqTJb(TJlmJ9xreA=6d=d)CVbYP-r4$hDn5|TIhB>SReMfh&OVLkMk-T zYf%$taLF0OqYF?V{+6Xkn>iX@TuqQ?&cN6UjC9YF&%q{Ut3zv{U2)~$>-3;Dp)*(? zg*$mu8^i=-e#acaj*T$pNowo{xiGEk$%DusaQiS!KjJH96XZ-hXv+jk%ard#fu=@Q z$AM)YWvE^{%tDfK%nD49=PI|wYu}lYVbB#a7wtN^Nml@CE@{Gv7+jo{_V?I*jkdLD zJE|jfdrmVbkfS>rN*+`#l%ZUi5_bMS<>=MBDNlpiSb_tAF|Zy`K7kcp@|d?yaTmB^ zo?(vg;B$vxS|SszusORgDg-*Uitzdi{dUV+glA~R8V(?`3GZIl^egW{a919!j#>f` znL1o_^-b`}xnU0+~KIFLQ)$Q6#ym%)(GYC`^XM*{g zv3AM5$+TtDRs%`2TyR^$(hqE7Y1b&`Jd6dS6B#hDVbJlUXcG3y*439D8MrK!2D~6gn>UD4Imctb z+IvAt0iaW73Iq$K?4}H`7wq6YkTMm`tcktXgK0lKPmh=>h+l}Y+pDtvHnG>uqBA)l zAH6BV4F}v$(o$8Gfo*PB>IuaY1*^*`OTx4|hM8jZ?B6HY;F6p4{`OcZZ(us-RVwDx zUzJrCQlp@mz1ZFiSZ*$yX3c_#h9J;yBE$2g%xjmGF4ca z&yL`nGVs!Zxsh^j6i%$a*I3ZD2SoNT`{D%mU=LKaEwbN(_J5%i-6Va?@*>=3(dQy` zOv%$_9lcy9+(t>qohkuU4r_P=R^6ME+wFu&LA9tw9RA?azGhjrVJKy&8=*qZT5Dr8g--d+S8zAyJ$1HlW3Olryt`yE zFIph~Z6oF&o64rw{>lgZISC6p^CBer9C5G6yq%?8tC+)7*d+ib^?fU!JRFxynRLEZ zj;?PwtS}Ao#9whV@KEmwQgM0TVP{hs>dg(1*DiMUOKHdQGIqa0`yZnHk9mtbPfoLx zo;^V6pKUJ!5#n`w2D&381#5#_t}AlTGEgDz$^;u;-vxDN?^#5!zN9ngytY@oTv!nc zp1Xn8uR$1Z;7vY`-<*?DfPHB;x|GUi_fI9@I9SVRv1)qETbNU_8{5U|(>Du84qP#7 z*l9Y$SgA&wGbj>R1YeT9vYjZuC@|{rajTL0f%N@>3$DFU=`lSPl=Iv;EjuGjBa$Gw zHD-;%YOE@<-!7-Mn`0WuO3oWuL6tB2cpPw~Nvuj|KM@))ixuDK`9;jGMe2d)7gHin zS<>k@!x;!TJEc#HdL#RF(`|4W+H88d4V%zlh(7#{q2d0OQX9*FW^`^_<3r$kabWAB z$9BONo5}*(%kx zOXi-yM_cmB3>inPpI~)duvZykJ@^^aWzQ=eQ&STUa}2uT@lV&WoRzkUoE`rR0)`=l zFT%f|LA9fCw>`enm$p7W^E@U7RNBtsh{_-7vVz3DtB*y#*~(L9+x9*wn8VjWw|Q~q zKFsj1Yl>;}%MG3=PY`$g$_mnyhuV&~O~u~)968$0b2!Jkd;2MtAP#ZDYw9hmK_+M$ zb3pxyYC&|CuAbtiG8HZjj?MZJBFbt`ryf+c1dXFuC z0*ZQhBzNBd*}s6K_G}(|Z_9NDV162#y%WSNe|FTDDhx)K!c(mMJh@h87@8(^YdK$&d*^WQe8Z53 z(|@MRJ$Lk-&ii74MPIs80WsOFZ(NX23oR-?As+*aq6b?~62@fSVmM-_*cb1RzZ)`5$agEiL`-E9s7{GM2?(KNPgK1(+c*|-FKoy}X(D_b#etO|YR z(BGZ)0Ntfv-7R4GHoXp?l5g#*={S1{u-QzxCGng*oWr~@X-5f~RA14b8~B+pLKvr4 zfgL|7I>jlak9>D4=(i(cqYf7#318!OSR=^`xxvI!bBlS??`xxWeg?+|>MxaIdH1U~#1tHu zB{QMR?EGRmQ_l4p6YXJ{o(hh-7Tdm>TAX380TZZZyVkqHNzjUn*_|cb?T? zt;d2s-?B#Mc>T-gvBmQZx(y_cfkXZO~{N zT6rP7SD6g~n9QJ)8F*8uHxTLCAZ{l1Y&?6v)BOJZ)=R-pY=Y=&1}jE7fQ>USS}xP#exo57uND0i*rEk@$;nLvRB@u~s^dwRf?G?_enN@$t* zbL%JO=rV(3Ju8#GqUpeE3l_Wu1lN9Y{D4uaUe`g>zlj$1ER$6S6@{m1!~V|bYkhZA z%CvrDRTkHuajMU8;&RZ&itnC~iYLW4DVkP<$}>#&(`UO>!n)Po;Mt(SY8Yb`AS9lt znbX^i?Oe9r_o=?})IHKHoQGKXsps_SE{hwrg?6dMI|^+$CeC&z@*LuF+P`7LfZ*yr+KN8B4{Nzv<`A(wyR@!|gw{zB6Ha ziwPAYh)oJ(nlqSknu(8g9N&1hu0$vFK$W#mp%>X~AU1ay+EKWcFdif{% z#4!4aoVVJ;ULmkQf!ke2}3hqxLK>eq|-d7Ly7-J9zMpT`?dxo6HdfJA|t)?qPEVBDv z{y_b?4^|YA4%WW0VZd8C(ZgQzRI5(I^)=Ub`Y#MHc@nv0w-DaJAqsbEHDWG8Ia6ju zo-iyr*sq((gEwCC&^TYBWt4_@|81?=B-?#P6NMff(*^re zYqvDuO`K@`mjm_Jd;mW_tP`3$cS?R$jR1ZN09$YO%_iBqh5ftzSpMQQtxKFU=FYmP zeY^jph+g<4>YO;U^O>-NFLn~-RqlHvnZl2yd2A{Yc1G@Ga$d+Q&(f^tnPf+Z7serIU};17+2DU_f4Z z@GaPFut27d?!YiD+QP@)T=77cR9~MK@bd~pY%X(h%L={{OIb8IQmf-!xmZkm8A0Ga zQSWONI17_ru5wpHg3jI@i9D+_Y|pCqVuHJNdHUauTD=R$JcD2K_liQisqG$(sm=k9;L* z!L?*4B~ql7uioSX$zWJ?;q-SWXRFhz2Jt4%fOHA=Bwf|RzhwqdXGr78y$J)LR7&3T zE1WWz*>GPWKZ0%|@%6=fyx)5rzUpI;bCj>3RKzNG_1w$fIFCZ&UR0(7S?g}`&Pg$M zf`SLsz8wK82Vyj7;RyKmY{a8G{2BHG%w!^T|Njr!h9TO2LaP^_f22Q1=l$QiU84ao zHe_#{S6;qrC6w~7{y(hs-?-j?lbOfgH^E=XcSgnwW*eEz{_Z<_xN#0001NP)t-s|Ns9~ z#rXRE|M&d=0au&!`~QyF`q}dRnBDt}*!qXo`c{v z{Djr|@Adh0(D_%#_&mM$D6{kE_x{oE{l@J5@%H*?%=t~i_`ufYOPkAEn!pfkr2$fs z652Tz0001XNklqeeKN4RM4i{jKqmiC$?+xN>3Apn^ z0QfuZLym_5b<*QdmkHjHlj811{If)dl(Z2K0A+ekGtrFJb?g|wt#k#pV-#A~bK=OT ts8>{%cPtyC${m|1#B1A6#u!Q;umknL1chzTM$P~L002ovPDHLkV1lTfnu!1a literal 0 HcmV?d00001 diff --git a/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png b/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..797d452e458972bab9d994556c8305db4c827017 GIT binary patch literal 406 zcmV;H0crk;P))>cdjpWt&rLJgVp-t?DREyuq1A%0Z4)6_WsQ7{nzjN zo!X zGXV)2i3kcZIL~_j>uIKPK_zib+3T+Nt3Mb&Br)s)UIaA}@p{wDda>7=Q|mGRp7pqY zkJ!7E{MNz$9nOwoVqpFb)}$IP24Wn2JJ=Cw(!`OXJBr45rP>>AQr$6c7slJWvbpNW z@KTwna6d?PP>hvXCcp=4F;=GR@R4E7{4VU^0p4F>v^#A|>07*qoM6N<$f*5nx ACIA2c literal 0 HcmV?d00001 diff --git a/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png b/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..6ed2d933e1120817fe9182483a228007b18ab6ae GIT binary patch literal 450 zcmV;z0X_bSP)iGWQ_5NJQ_~rNh*z)}eT%KUb z`7gNk0#AwF^#0T0?hIa^`~Ck;!}#m+_uT050aTR(J!bU#|IzRL%^UsMS#KsYnTF*!YeDOytlP4VhV?b} z%rz_<=#CPc)tU1MZTq~*2=8~iZ!lSa<{9b@2Jl;?IEV8)=fG217*|@)CCYgFze-x? zIFODUIA>nWKpE+bn~n7;-89sa>#DR>TSlqWk*!2hSN6D~Qb#VqbP~4Fk&m`@1$JGr zXPIdeRE&b2Thd#{MtDK$px*d3-Wx``>!oimf%|A-&-q*6KAH)e$3|6JV%HX{Hig)k suLT-RhftRq8b9;(V=235Wa|I=027H2wCDra;{X5v07*qoM6N<$f;9x^2LJ#7 literal 0 HcmV?d00001 diff --git a/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png b/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png new file mode 100644 index 0000000000000000000000000000000000000000..4cd7b0099ca80c806f8fe495613e8d6c69460d76 GIT binary patch literal 282 zcmV+#0p(^bcu7P-R4C8Q z&e;xxFbF_Vrezo%_kH*OKhshZ6BFpG-Y1e10`QXJKbND7AMQ&cMj60B5TNObaZxYybcN07*qoM6N<$g3m;S%K!iX literal 0 HcmV?d00001 diff --git a/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png b/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..fe730945a01f64a61e2235dbe3f45b08f7729182 GIT binary patch literal 462 zcmV;<0WtoGP)-}iV`2<;=$?g5M=KQbZ{F&YRNy7Nn@%_*5{gvDM0aKI4?ESmw z{NnZg)A0R`+4?NF_RZexyVB&^^ZvN!{I28tr{Vje;QNTz`dG&Jz0~Ek&f2;*Z7>B|cg}xYpxEFY+0YrKLF;^Q+-HreN0P{&i zK~zY`?b7ECf-n?@;d<&orQ*Q7KoR%4|C>{W^h6@&01>0SKS`dn{Q}GT%Qj_{PLZ_& zs`MFI#j-(>?bvdZ!8^xTwlY{qA)T4QLbY@j(!YJ7aXJervHy6HaG_2SB`6CC{He}f zHVw(fJWApwPq!6VY7r1w-Fs)@ox~N+q|w~e;JI~C4Vf^@d>Wvj=fl`^u9x9wd9 zR%3*Q+)t%S!MU_`id^@&Y{y7-r98lZX0?YrHlfmwb?#}^1b{8g&KzmkE(L>Z&)179 zp<)v6Y}pRl100G2FL_t(o!|l{-Q-VMg#&MKg7c{O0 z2wJImOS3Gy*Z2Qifdv~JYOp;v+U)a|nLoc7hNH;I$;lzDt$}rkaFw1mYK5_0Q(Sut zvbEloxON7$+HSOgC9Z8ltuC&0OSF!-mXv5caV>#bc3@hBPX@I$58-z}(ZZE!t-aOG zpjNkbau@>yEzH(5Yj4kZiMH32XI!4~gVXNnjAvRx;Sdg^`>2DpUEwoMhTs_st8pKG z(%SHyHdU&v%f36~uERh!bd`!T2dw;z6PrOTQ7Vt*#9F2uHlUVnb#ev_o^fh}Dzmq} zWtlk35}k=?xj28uO|5>>$yXadTUE@@IPpgH`gJ~Ro4>jd1IF|(+IX>8M4Ps{PNvmI zNj4D+XgN83gPt_Gm}`Ybv{;+&yu-C(Grdiahmo~BjG-l&mWM+{e5M1sm&=xduwgM9 z`8OEh`=F3r`^E{n_;%9weN{cf2%7=VzC@cYj+lg>+3|D|_1C@{hcU(DyQG_BvBWe? zvTv``=%b1zrol#=R`JB)>cdjpWt&rLJgVp-t?DREyuq1A%0Z4)6_WsQ7{nzjN zo!X zGXV)2i3kcZIL~_j>uIKPK_zib+3T+Nt3Mb&Br)s)UIaA}@p{wDda>7=Q|mGRp7pqY zkJ!7E{MNz$9nOwoVqpFb)}$IP24Wn2JJ=Cw(!`OXJBr45rP>>AQr$6c7slJWvbpNW z@KTwna6d?PP>hvXCcp=4F;=GR@R4E7{4VU^0p4F>v^#A|>07*qoM6N<$f*5nx ACIA2c literal 0 HcmV?d00001 diff --git a/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png b/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..502f463a9bc882b461c96aadf492d1729e49e725 GIT binary patch literal 586 zcmV-Q0=4~#P)+}#`wDE{8-2Mebf5<{{PqV{TgVcv*r8?UZ3{-|G?_}T*&y;@cqf{ z{Q*~+qr%%p!1pS*_Uicl#q9lc(D`!D`LN62sNwq{oYw(Wmhk)k<@f$!$@ng~_5)Ru z0Z)trIA5^j{DIW^c+vT2%lW+2<(RtE2wR;4O@)Tm`Xr*?A(qYoM}7i5Yxw>D(&6ou zxz!_Xr~yNF+waPe00049Nkl*;a!v6h%{rlvIH#gW3s8p;bFr=l}mRqpW2h zw=OA%hdyL~z+UHOzl0eKhEr$YYOL-c-%Y<)=j?(bzDweB7{b+%_ypvm_cG{SvM=DK zhv{K@m>#Bw>2W$eUI#iU)Wdgs8Y3U+A$Gd&{+j)d)BmGKx+43U_!tik_YlN)>$7G! zhkE!s;%oku3;IwG3U^2kw?z+HM)jB{@zFhK8P#KMSytSthr+4!c(5c%+^UBn`0X*2 zy3(k600_CSZj?O$Qu%&$;|TGUJrptR(HzyIx>5E(2r{eA(<6t3e3I0B)7d6s7?Z5J zZ!rtKvA{MiEBm&KFtoifx>5P^Z=vl)95XJn()aS5%ad(s?4-=Tkis9IGu{`Fy8r+H07*qoM6N<$f20Z)wqMt%V?S?~D#06};F zA3KcL`Wb+>5ObvgQIG&ig8(;V04hz?@cqy3{mSh8o!|U|)cI!1_+!fWH@o*8vh^CU z^ws0;(c$gI+2~q^tO#GDHf@=;DncUw00J^eL_t(&-tE|HQ`%4vfZ;WsBqu-$0nu1R zq^Vj;p$clf^?twn|KHO+IGt^q#a3X?w9dXC@*yxhv&l}F322(8Y1&=P&I}~G@#h6; z1CV9ecD9ZEe87{{NtI*)_aJ<`kJa z?5=RBtFF50s;jQLFil-`)m2wrb=6h(&brpj%nG_U&ut~$?8Rokzxi8zJoWr#2dto5 zOX_URcc<1`Iky+jc;A%Vzx}1QU{2$|cKPom2Vf1{8m`vja4{F>HS?^Nc^rp}xo+Nh zxd}eOm`fm3@MQC1< zIk&aCjb~Yh%5+Yq0`)D;q{#-Uqlv*o+Oor zE!I71Z@ASH3grl8&P^L0WpavHoP|UX4e?!igT`4?AZk$hu*@%6WJ;zDOGlw7kj@ zY5!B-0ft0f?Lgb>C;$Ke07*qoM6N<$f~t1N9smFU literal 0 HcmV?d00001 diff --git a/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png b/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..0ec303439225b78712f49115768196d8d76f6790 GIT binary patch literal 862 zcmV-k1EKthP)20Z)wqMt%V?S?~D#06};F zA3KcL`Wb+>5ObvgQIG&ig8(;V04hz?@cqy3{mSh8o!|U|)cI!1_+!fWH@o*8vh^CU z^ws0;(c$gI+2~q^tO#GDHf@=;DncUw00J^eL_t(&-tE|HQ`%4vfZ;WsBqu-$0nu1R zq^Vj;p$clf^?twn|KHO+IGt^q#a3X?w9dXC@*yxhv&l}F322(8Y1&=P&I}~G@#h6; z1CV9ecD9ZEe87{{NtI*)_aJ<`kJa z?5=RBtFF50s;jQLFil-`)m2wrb=6h(&brpj%nG_U&ut~$?8Rokzxi8zJoWr#2dto5 zOX_URcc<1`Iky+jc;A%Vzx}1QU{2$|cKPom2Vf1{8m`vja4{F>HS?^Nc^rp}xo+Nh zxd}eOm`fm3@MQC1< zIk&aCjb~Yh%5+Yq0`)D;q{#-Uqlv*o+Oor zE!I71Z@ASH3grl8&P^L0WpavHoP|UX4e?!igT`4?AZk$hu*@%6WJ;zDOGlw7kj@ zY5!B-0ft0f?Lgb>C;$Ke07*qoM6N<$f~t1N9smFU literal 0 HcmV?d00001 diff --git a/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png b/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..e9f5fea27c705180eb716271f41b582e76dcbd90 GIT binary patch literal 1674 zcmV;526g#~P){YQnis^a@{&-nmRmq)<&%Mztj67_#M}W?l>kYSliK<%xAp;0j{!}J0!o7b zE>q9${Lb$D&h7k=+4=!ek^n+`0zq>LL1O?lVyea53S5x`Nqqo2YyeuIrQrJj9XjOp z{;T5qbj3}&1vg1VK~#9!?b~^C5-}JC@Pyrv-6dSEqJqT}#j9#dJ@GzT@B8}x zU&J@bBI>f6w6en+CeI)3^kC*U?}X%OD8$Fd$H&LV$H&LV$H&LV#|K5~mLYf|VqzOc zkc7qL~0sOYuM{tG`rYEDV{DWY`Z8&)kW*hc2VkBuY+^Yx&92j&StN}Wp=LD zxoGxXw6f&8sB^u})h@b@z0RBeD`K7RMR9deyL(ZJu#39Z>rT)^>v}Khq8U-IbIvT> z?4pV9qGj=2)TNH3d)=De<+^w;>S7m_eFKTvzeaBeir45xY!^m!FmxnljbSS_3o=g( z->^wC9%qkR{kbGnW8MfFew_o9h3(r55Is`L$8KI@d+*%{=Nx+FXJ98L0PjFIu;rGnnfY zn1R5Qnp<{Jq0M1vX=X&F8gtLmcWv$1*M@4ZfF^9``()#hGTeKeP`1!iED ztNE(TN}M5}3Bbc*d=FIv`DNv&@|C6yYj{sSqUj5oo$#*0$7pu|Dd2TLI>t5%I zIa4Dvr(iayb+5x=j*Vum9&irk)xV1`t509lnPO0%skL8_1c#Xbamh(2@f?4yUI zhhuT5<#8RJhGz4%b$`PJwKPAudsm|at?u;*hGgnA zU1;9gnxVBC)wA(BsB`AW54N{|qmikJR*%x0c`{LGsSfa|NK61pYH(r-UQ4_JXd!Rsz)=k zL{GMc5{h138)fF5CzHEDM>+FqY)$pdN3}Ml+riTgJOLN0F*Vh?{9ESR{SVVg>*>=# zix;VJHPtvFFCRY$Ks*F;VX~%*r9F)W`PmPE9F!(&s#x07n2<}?S{(ygpXgX-&B&OM zONY&BRQ(#%0%jeQs?oJ4P!p*R98>qCy5p8w>_gpuh39NcOlp)(wOoz0sY-Qz55eB~ z7OC-fKBaD1sE3$l-6QgBJO!n?QOTza`!S_YK z_v-lm^7{VO^8Q@M_^8F)09Ki6%=s?2_5eupee(w1FB%aqSweusQ-T+CH0Xt{` zFjMvW{@C&TB)k25()nh~_yJ9coBRL(0oO@HK~z}7?bm5j;y@69;bvlHb2tf!$ReA~x{22wTq550 z?f?Hnw(;m3ip30;QzdV~7pi!wyMYhDtXW#cO7T>|f=bdFhu+F!zMZ2UFj;GUKX7tI z;hv3{q~!*pMj75WP_c}>6)IWvg5_yyg<9Op()eD1hWC19M@?_9_MHec{Z8n3FaF{8 z;u`Mw0ly(uE>*CgQYv{be6ab2LWhlaH1^iLIM{olnag$78^Fd}%dR7;JECQ+hmk|o z!u2&!3MqPfP5ChDSkFSH8F2WVOEf0(E_M(JL17G}Y+fg0_IuW%WQ zG(mG&u?|->YSdk0;8rc{yw2@2Z&GA}z{Wb91Ooz9VhA{b2DYE7RmG zjL}?eq#iX%3#k;JWMx_{^2nNax`xPhByFiDX+a7uTGU|otOvIAUy|dEKkXOm-`aWS z27pUzD{a)Ct<6p{{3)+lq@i`t@%>-wT4r?*S}k)58e09WZYP0{{R3FC5Sl00039P)t-s|Ns9~ z#rP?<_5oL$Q^olD{r_0T`27C={r>*`|Nj71npVa5OTzc(_WfbW_({R{p56NV{r*M2 z_xt?)2V0#0NsfV0u>{42ctGP(8vQj-Btk1n|O0ZD=YLwd&R{Ko41Gr9H= zY@z@@bOAMB5Ltl$E>bJJ{>JP30ZxkmI%?eW{k`b?Wy<&gOo;dS`~CR$Vwb@XWtR|N zi~t=w02?-0&j0TD{>bb6sNwsK*!p?V`RMQUl(*DVjk-9Cx+-z1KXab|Ka2oXhX5f% z`$|e!000AhNklrxs)5QTeTVRiEmz~MKK1WAjCw(c-JK6eox;2O)?`? zTG`AHia671e^vgmp!llKp|=5sVHk#C7=~epA~VAf-~%aPC=%Qw01h8mnSZ|p?hz91 z7p83F3%LVu9;S$tSI$C^%^yud1dfTM_6p2|+5Ejp$bd`GDvbR|xit>i!ZD&F>@CJrPmu*UjD&?DfZs=$@e3FQA(vNiU+$A*%a} z?`XcG2jDxJ_ZQ#Md`H{4Lpf6QBDp81_KWZ6Tk#yCy1)32zO#3<7>b`eT7UyYH1eGz z;O(rH$=QR*L%%ZcBpc=eGua?N55nD^K(8<#gl2+pN_j~b2MHs4#mcLmv%DkspS-3< zpI1F=^9siI0s-;IN_IrA;5xm~3?3!StX}pUv0vkxMaqm+zxrg7X7(I&*N~&dEd0kD z-FRV|g=|QuUsuh>-xCI}vD2imzYIOIdcCVV=$Bz@*u0+Bs<|L^)32nN*=wu3n%Ynw z@1|eLG>!8ruU1pFXUfb`j>(=Gy~?Rn4QJ-c3%3T|(Frd!bI`9u&zAnyFYTqlG#&J7 zAkD(jpw|oZLNiA>;>hgp1KX7-wxC~31II47gc zHcehD6Uxlf%+M^^uN5Wc*G%^;>D5qT{>=uxUhX%WJu^Z*(_Wq9y}npFO{Hhb>s6<9 zNi0pHXWFaVZnb)1+RS&F)xOv6&aeILcI)`k#0YE+?e)5&#r7J#c`3Z7x!LpTc01dx zrdC3{Z;joZ^KN&))zB_i)I9fWedoN>Zl-6_Iz+^G&*ak2jpF07*qoM6N<$f;w%0(f|Me literal 0 HcmV?d00001 diff --git a/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png b/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..0467bf12aa4d28f374bb26596605a46dcbb3e7c8 GIT binary patch literal 1418 zcmV;51$Fv~P)q zKfU)WzW*n(@|xWGCA9ScMt*e9`2kdxPQ&&>|-UCa7_51w+ zLUsW@ZzZSW0y$)Hp~e9%PvP|a03ks1`~K?q{u;6NC8*{AOqIUq{CL&;p56Lf$oQGq z^={4hPQv)y=I|4n+?>7Fim=dxt1 z2H+Dm+1+fh+IF>G0SjJMkQQre1x4|G*Z==(Ot&kCnUrL4I(rf(ucITwmuHf^hXiJT zkdTm&kdTm&kdTm&kdP`esgWG0BcWCVkVZ&2dUwN`cgM8QJb`Z7Z~e<&Yj2(}>Tmf` zm1{eLgw!b{bXkjWbF%dTkTZEJWyWOb##Lfw4EK2}<0d6%>AGS{po>WCOy&f$Tay_> z?NBlkpo@s-O;0V%Y_Xa-G#_O08q5LR*~F%&)}{}r&L%Sbs8AS4t7Y0NEx*{soY=0MZExqA5XHQkqi#4gW3 zqODM^iyZl;dvf)-bOXtOru(s)Uc7~BFx{w-FK;2{`VA?(g&@3z&bfLFyctOH!cVsF z7IL=fo-qBndRUm;kAdXR4e6>k-z|21AaN%ubeVrHl*<|s&Ax@W-t?LR(P-24A5=>a z*R9#QvjzF8n%@1Nw@?CG@6(%>+-0ASK~jEmCV|&a*7-GKT72W<(TbSjf)&Eme6nGE z>Gkj4Sq&2e+-G%|+NM8OOm5zVl9{Z8Dd8A5z3y8mZ=4Bv4%>as_{9cN#bm~;h>62( zdqY93Zy}v&c4n($Vv!UybR8ocs7#zbfX1IY-*w~)p}XyZ-SFC~4w>BvMVr`dFbelV{lLL0bx7@*ZZdebr3`sP;? zVImji)kG)(6Juv0lz@q`F!k1FE;CQ(D0iG$wchPbKZQELlsZ#~rt8#90Y_Xh&3U-< z{s<&cCV_1`^TD^ia9!*mQDq& zn2{r`j};V|uV%_wsP!zB?m%;FeaRe+X47K0e+KE!8C{gAWF8)lCd1u1%~|M!XNRvw zvtqy3iz0WSpWdhn6$hP8PaRBmp)q`#PCA`Vd#Tc$@f1tAcM>f_I@bC)hkI9|o(Iqv zo}Piadq!j76}004RBio<`)70k^`K1NK)q>w?p^C6J2ZC!+UppiK6&y3Kmbv&O!oYF z34$0Z;QO!JOY#!`qyGH<3Pd}Pt@q*A0V=3SVtWKRR8d8Z&@)3qLPA19LPA19LPEUC YUoZo%k(ykuW&i*H07*qoM6N<$f+CH{y8r+H literal 0 HcmV?d00001 diff --git a/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json b/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json new file mode 100644 index 0000000..0bedcf2 --- /dev/null +++ b/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json @@ -0,0 +1,23 @@ +{ + "images" : [ + { + "idiom" : "universal", + "filename" : "LaunchImage.png", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "LaunchImage@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "LaunchImage@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} diff --git a/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png b/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png new file mode 100644 index 0000000000000000000000000000000000000000..9da19eacad3b03bb08bbddbbf4ac48dd78b3d838 GIT binary patch literal 68 zcmeAS@N?(olHy`uVBq!ia0vp^j3CUx0wlM}@Gt=>Zci7-kcv6Uzs@r-FtIZ-&5|)J Q1PU{Fy85}Sb4q9e0B4a5jsO4v literal 0 HcmV?d00001 diff --git a/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png b/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..9da19eacad3b03bb08bbddbbf4ac48dd78b3d838 GIT binary patch literal 68 zcmeAS@N?(olHy`uVBq!ia0vp^j3CUx0wlM}@Gt=>Zci7-kcv6Uzs@r-FtIZ-&5|)J Q1PU{Fy85}Sb4q9e0B4a5jsO4v literal 0 HcmV?d00001 diff --git a/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png b/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..9da19eacad3b03bb08bbddbbf4ac48dd78b3d838 GIT binary patch literal 68 zcmeAS@N?(olHy`uVBq!ia0vp^j3CUx0wlM}@Gt=>Zci7-kcv6Uzs@r-FtIZ-&5|)J Q1PU{Fy85}Sb4q9e0B4a5jsO4v literal 0 HcmV?d00001 diff --git a/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md b/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md new file mode 100644 index 0000000..89c2725 --- /dev/null +++ b/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md @@ -0,0 +1,5 @@ +# Launch Screen Assets + +You can customize the launch screen with your own desired assets by replacing the image files in this directory. + +You can also do it by opening your Flutter project's Xcode project with `open ios/Runner.xcworkspace`, selecting `Runner/Assets.xcassets` in the Project Navigator and dropping in the desired images. \ No newline at end of file diff --git a/example/ios/Runner/Base.lproj/LaunchScreen.storyboard b/example/ios/Runner/Base.lproj/LaunchScreen.storyboard new file mode 100644 index 0000000..f2e259c --- /dev/null +++ b/example/ios/Runner/Base.lproj/LaunchScreen.storyboard @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/example/ios/Runner/Base.lproj/Main.storyboard b/example/ios/Runner/Base.lproj/Main.storyboard new file mode 100644 index 0000000..f3c2851 --- /dev/null +++ b/example/ios/Runner/Base.lproj/Main.storyboard @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/example/ios/Runner/Info.plist b/example/ios/Runner/Info.plist new file mode 100644 index 0000000..f6cf6ca --- /dev/null +++ b/example/ios/Runner/Info.plist @@ -0,0 +1,49 @@ + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleDisplayName + Flutter Policy Engine Example + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + flutter_policy_engine_example + CFBundlePackageType + APPL + CFBundleShortVersionString + $(FLUTTER_BUILD_NAME) + CFBundleSignature + ???? + CFBundleVersion + $(FLUTTER_BUILD_NUMBER) + LSRequiresIPhoneOS + + UILaunchStoryboardName + LaunchScreen + UIMainStoryboardFile + Main + UISupportedInterfaceOrientations + + UIInterfaceOrientationPortrait + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + UISupportedInterfaceOrientations~ipad + + UIInterfaceOrientationPortrait + UIInterfaceOrientationPortraitUpsideDown + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + CADisableMinimumFrameDurationOnPhone + + UIApplicationSupportsIndirectInputEvents + + + diff --git a/example/ios/Runner/Runner-Bridging-Header.h b/example/ios/Runner/Runner-Bridging-Header.h new file mode 100644 index 0000000..308a2a5 --- /dev/null +++ b/example/ios/Runner/Runner-Bridging-Header.h @@ -0,0 +1 @@ +#import "GeneratedPluginRegistrant.h" diff --git a/example/ios/RunnerTests/RunnerTests.swift b/example/ios/RunnerTests/RunnerTests.swift new file mode 100644 index 0000000..86a7c3b --- /dev/null +++ b/example/ios/RunnerTests/RunnerTests.swift @@ -0,0 +1,12 @@ +import Flutter +import UIKit +import XCTest + +class RunnerTests: XCTestCase { + + func testExample() { + // If you add code to the Runner application, consider adding tests here. + // See https://developer.apple.com/documentation/xctest for more information about using XCTest. + } + +} diff --git a/example/lib/main.dart b/example/lib/main.dart new file mode 100644 index 0000000..df9e5f9 --- /dev/null +++ b/example/lib/main.dart @@ -0,0 +1,69 @@ +import 'package:flutter/material.dart'; + +void main() { + runApp(const MyApp()); +} + +class MyApp extends StatelessWidget { + const MyApp({super.key}); + @override + Widget build(BuildContext context) { + return MaterialApp( + title: 'Flutter Demo', + theme: ThemeData( + colorScheme: ColorScheme.fromSeed(seedColor: Colors.deepPurple), + useMaterial3: true, + ), + home: const MyHomePage(title: 'Flutter Demo Home Page'), + ); + } +} + +class MyHomePage extends StatefulWidget { + const MyHomePage({super.key, required this.title}); + + final String title; + + @override + State createState() => _MyHomePageState(); +} + +class _MyHomePageState extends State { + int _counter = 0; + + void _incrementCounter() { + setState(() { + _counter++; + }); + } + + @override + Widget build(BuildContext context) { + return Scaffold( + appBar: AppBar( + backgroundColor: Theme.of(context).colorScheme.inversePrimary, + title: Text(widget.title), + ), + body: Center( + child: Column( + // + mainAxisAlignment: MainAxisAlignment.center, + children: [ + const Text( + 'You have pushed the button this many times:', + ), + Text( + '$_counter', + style: Theme.of(context).textTheme.headlineMedium, + ), + ], + ), + ), + floatingActionButton: FloatingActionButton( + onPressed: _incrementCounter, + tooltip: 'Increment', + child: const Icon(Icons.add), + ), // This trailing comma makes auto-formatting nicer for build methods. + ); + } +} diff --git a/example/pubspec.yaml b/example/pubspec.yaml new file mode 100644 index 0000000..a329c11 --- /dev/null +++ b/example/pubspec.yaml @@ -0,0 +1,25 @@ +name: flutter_policy_engine_example +description: "Example for flutter_policy_engine" +publish_to: "none" +version: 1.0.0+1 + +environment: + sdk: ">=3.4.1 <4.0.0" + +dependencies: + flutter: + sdk: flutter + + cupertino_icons: ^1.0.6 + + flutter_policy_engine: + path: ../ + +dev_dependencies: + flutter_test: + sdk: flutter + + flutter_lints: ^3.0.0 + +flutter: + uses-material-design: true From 8e9542b57d631e547992b5231bd8586d89ef6d5a Mon Sep 17 00:00:00 2001 From: David Garcia Ruiz Date: Wed, 9 Jul 2025 00:04:44 +0200 Subject: [PATCH 02/18] chore(pubspec): update project description for clarity and add meta dependency --- pubspec.yaml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/pubspec.yaml b/pubspec.yaml index bd3e9ea..ba3133f 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -1,15 +1,16 @@ name: flutter_policy_engine -description: "A new Flutter package project." +description: "A lightweight, extensible policy engine for Flutter enabling Attribute-Based Access Control (ABAC) and Role-Based Access Control (RBAC) with declarative rule definitions." version: 0.0.1 homepage: environment: - sdk: '>=3.4.1 <4.0.0' + sdk: ">=3.4.1 <4.0.0" flutter: ">=1.17.0" dependencies: flutter: sdk: flutter + meta: ^1.16.0 dev_dependencies: flutter_test: From 6287ec5e1fe531cacac9e0d676b3a13c539ef220 Mon Sep 17 00:00:00 2001 From: David Garcia Ruiz Date: Wed, 9 Jul 2025 00:05:35 +0200 Subject: [PATCH 03/18] feat(policy): implement core policy management and evaluation interfaces with initial classes --- lib/core/interfaces/i_policy_evaluator.dart | 6 +++ lib/core/interfaces/i_policy_storage.dart | 8 ++++ lib/core/policy_manager.dart | 21 ++++++++++ lib/core/role_evaluator.dart | 16 ++++++++ lib/models/policy.dart | 43 +++++++++++++++++++++ 5 files changed, 94 insertions(+) create mode 100644 lib/core/interfaces/i_policy_evaluator.dart create mode 100644 lib/core/interfaces/i_policy_storage.dart create mode 100644 lib/core/policy_manager.dart create mode 100644 lib/core/role_evaluator.dart create mode 100644 lib/models/policy.dart diff --git a/lib/core/interfaces/i_policy_evaluator.dart b/lib/core/interfaces/i_policy_evaluator.dart new file mode 100644 index 0000000..bd20e59 --- /dev/null +++ b/lib/core/interfaces/i_policy_evaluator.dart @@ -0,0 +1,6 @@ +import 'package:meta/meta.dart'; + +@immutable +abstract class IPolicyEvaluator { + Future evaluate(String roleName, String content); +} diff --git a/lib/core/interfaces/i_policy_storage.dart b/lib/core/interfaces/i_policy_storage.dart new file mode 100644 index 0000000..ea92973 --- /dev/null +++ b/lib/core/interfaces/i_policy_storage.dart @@ -0,0 +1,8 @@ +import 'package:meta/meta.dart'; + +@immutable +abstract class IPolicyStorage { + Future> loadPolicies(); + Future savePolicies(Map policies); + Future clearPolicies(); +} diff --git a/lib/core/policy_manager.dart b/lib/core/policy_manager.dart new file mode 100644 index 0000000..578d727 --- /dev/null +++ b/lib/core/policy_manager.dart @@ -0,0 +1,21 @@ +import 'package:flutter/foundation.dart'; +import 'package:flutter_policy_engine/core/interfaces/i_policy_storage.dart'; +import 'package:flutter_policy_engine/models/policy.dart'; + +class PolicyManager extends ChangeNotifier { + PolicyManager({ + required this.storage, + }); + + final IPolicyStorage storage; + Map _policies = {}; + bool _isInitialized = false; + + bool get isInitialized => _isInitialized; + + Map get policies => Map.unmodifiable(_policies); + + Future loadPolicies() async { + throw UnimplementedError(); + } +} diff --git a/lib/core/role_evaluator.dart b/lib/core/role_evaluator.dart new file mode 100644 index 0000000..117f2b5 --- /dev/null +++ b/lib/core/role_evaluator.dart @@ -0,0 +1,16 @@ +import 'package:flutter_policy_engine/core/interfaces/i_policy_evaluator.dart'; +import 'package:flutter_policy_engine/models/policy.dart'; +import 'package:meta/meta.dart'; + +@immutable +class RoleEvaluator implements IPolicyEvaluator { + const RoleEvaluator(this._policies); + + final Map _policies; + + @override + Future evaluate(String roleName, String content) { + // TODO: implement evaluate + throw UnimplementedError(); + } +} diff --git a/lib/models/policy.dart b/lib/models/policy.dart new file mode 100644 index 0000000..1b5843f --- /dev/null +++ b/lib/models/policy.dart @@ -0,0 +1,43 @@ +import 'package:meta/meta.dart'; + +@immutable +class Policy { + const Policy({ + required this.roleName, + required this.allowedContent, + this.metadata = const {}, + }); + + final String roleName; + final List allowedContent; + final Map metadata; + + Policy copyWith({ + String? roleName, + List? allowedContent, + Map? metadata, + }) => + Policy( + roleName: roleName ?? this.roleName, + allowedContent: allowedContent ?? this.allowedContent, + metadata: metadata ?? this.metadata, + ); + + bool isContentAllowed(String content) => allowedContent.contains(content); + + @override + bool operator ==(Object other) => + identical(this, other) || + other is Policy && + roleName == other.roleName && + allowedContent.length == other.allowedContent.length && + allowedContent + .every((content) => other.allowedContent.contains(content)); + + @override + int get hashCode => roleName.hashCode ^ allowedContent.hashCode; + + @override + String toString() => + 'Policy(roleName: $roleName, allowedContent: $allowedContent, metadata: $metadata)'; +} From 85a5ee83bc95cfc866583f9fa0a692b4aaaa0fb5 Mon Sep 17 00:00:00 2001 From: David Garcia Ruiz Date: Thu, 10 Jul 2025 00:48:18 +0200 Subject: [PATCH 04/18] feat(logging): introduce LogHandler for structured logging and configurable log levels --- lib/utils/log_handler.dart | 315 +++++++++++++ test/utils/log_handler_test.dart | 771 +++++++++++++++++++++++++++++++ 2 files changed, 1086 insertions(+) create mode 100644 lib/utils/log_handler.dart create mode 100644 test/utils/log_handler_test.dart diff --git a/lib/utils/log_handler.dart b/lib/utils/log_handler.dart new file mode 100644 index 0000000..6e02ae1 --- /dev/null +++ b/lib/utils/log_handler.dart @@ -0,0 +1,315 @@ +import 'dart:developer' as developer; +import 'dart:io'; +import 'package:flutter/foundation.dart'; + +/// Configurable log levels +enum LogLevel { + debug(0), + info(1), + warning(2), + error(3); + + const LogLevel(this.value); + final int value; +} + +/// Structured log data for better debugging +class LogData { + final String message; + final LogLevel level; + final String? tag; + final String? screen; + final String? operation; + final Duration? duration; + final Object? error; + final StackTrace? stackTrace; + final Map? context; + final DateTime timestamp; + + LogData({ + required this.message, + required this.level, + this.tag, + this.screen, + this.operation, + this.duration, + this.error, + this.stackTrace, + this.context, + DateTime? timestamp, + }) : timestamp = timestamp ?? DateTime.now(); + + /// Convert to structured log format + Map toStructuredLog() { + return { + 'message': message, + 'level': level.name, + 'timestamp': timestamp.toIso8601String(), + if (tag != null) 'tag': tag, + if (screen != null) 'screen': screen, + if (operation != null) 'operation': operation, + if (duration != null) 'duration_ms': duration!.inMilliseconds, + if (error != null) 'error': error.toString(), + if (context != null && context!.isNotEmpty) 'context': context, + }; + } +} + +class LogHandler { + static const String _defaultTag = '[PolicyEngine]'; + static bool _isDebugMode = kDebugMode; + static String _tag = _defaultTag; + static String _currentScreen = ''; + static bool _includeTimestamp = true; + static bool _includeStackTrace = true; + static bool _includeSystemInfo = false; + static LogLevel _minLogLevel = LogLevel.debug; + static bool _useStructuredLogging = true; + static bool _useDeveloperLog = true; + + /// Set the current screen for logging context + static void setScreen(String screenName) { + _currentScreen = screenName; + _updateTag(); + } + + /// Set a custom tag for the current screen + static void setScreenTag(String screenName, String customTag) { + _currentScreen = screenName; + _tag = customTag; + } + + /// Get the current screen name + static String get currentScreen => _currentScreen; + + /// Get the current tag + static String get currentTag => _tag; + + /// Update tag based on current screen + static void _updateTag() { + if (_currentScreen.isNotEmpty) { + _tag = '[$_currentScreen]'; + } else { + _tag = _defaultTag; + } + } + + /// Configure the LogHandler settings + static void configure({ + String? tag, + String? screen, + bool? isDebugMode, + bool? includeTimestamp, + bool? includeStackTrace, + bool? includeSystemInfo, + LogLevel? minLogLevel, + bool? useStructuredLogging, + bool? useDeveloperLog, + }) { + _tag = tag ?? _defaultTag; + _currentScreen = screen ?? ''; + _isDebugMode = isDebugMode ?? kDebugMode; + _includeTimestamp = includeTimestamp ?? true; + _includeStackTrace = includeStackTrace ?? true; + _includeSystemInfo = includeSystemInfo ?? false; + _minLogLevel = minLogLevel ?? LogLevel.debug; + _useStructuredLogging = useStructuredLogging ?? true; + _useDeveloperLog = useDeveloperLog ?? true; + + // Only update tag if no custom tag was provided + if (screen != null && tag == null) { + _updateTag(); + } + } + + /// Internal method to output logs using dart:developer + static void _logWithDeveloper(LogData logData) { + if (!_useDeveloperLog) return; + + final structuredData = logData.toStructuredLog(); + + // Use developer.log with structured data + developer.log( + logData.message, + name: logData.tag ?? _tag, + error: logData.error, + stackTrace: logData.stackTrace, + time: logData.timestamp, + ); + + // Log structured data as separate entries for better debugging + if (_useStructuredLogging && structuredData.length > 2) { + developer.log( + 'Structured Data: ${structuredData.toString()}', + name: '${logData.tag ?? _tag}_structured', + time: logData.timestamp, + ); + } + } + + /// Generic log method with configurable parameters + static void output( + String message, { + LogLevel level = LogLevel.debug, + Object? error, + StackTrace? stackTrace, + Map? context, + String? operation, + Duration? duration, + String? screenOverride, + }) { + if (!_isDebugMode || level.value < _minLogLevel.value) return; + + final logData = LogData( + message: message, + level: level, + tag: screenOverride != null ? '[$screenOverride]' : _tag, + screen: screenOverride ?? _currentScreen, + operation: operation, + duration: duration, + error: error, + stackTrace: stackTrace, + context: context, + ); + + // Use developer.log for better debugging experience + _logWithDeveloper(logData); + } + + /// Convenience methods for different log levels + static void debug( + String message, { + Object? error, + StackTrace? stackTrace, + Map? context, + String? operation, + Duration? duration, + String? screenOverride, + }) { + output( + message, + level: LogLevel.debug, + error: error, + stackTrace: stackTrace, + context: context, + operation: operation, + duration: duration, + screenOverride: screenOverride, + ); + } + + static void info( + String message, { + Object? error, + StackTrace? stackTrace, + Map? context, + String? operation, + Duration? duration, + String? screenOverride, + }) { + output( + message, + level: LogLevel.info, + error: error, + stackTrace: stackTrace, + context: context, + operation: operation, + duration: duration, + screenOverride: screenOverride, + ); + } + + static void warning( + String message, { + Object? error, + StackTrace? stackTrace, + Map? context, + String? operation, + Duration? duration, + String? screenOverride, + }) { + output( + message, + level: LogLevel.warning, + error: error, + stackTrace: stackTrace, + context: context, + operation: operation, + duration: duration, + screenOverride: screenOverride, + ); + } + + static void error( + String message, { + Object? error, + StackTrace? stackTrace, + Map? context, + String? operation, + Duration? duration, + String? screenOverride, + }) { + output( + message, + level: LogLevel.error, + error: error, + stackTrace: stackTrace, + context: context, + operation: operation, + duration: duration, + screenOverride: screenOverride, + ); + } + + /// Performance logging with timing + static void time(String operation, void Function() callback) { + final stopwatch = Stopwatch()..start(); + try { + callback(); + } finally { + stopwatch.stop(); + info( + 'Operation completed', + operation: operation, + duration: stopwatch.elapsed, + ); + } + } + + /// Async performance logging + static Future timeAsync( + String operation, + Future Function() callback, + ) async { + final stopwatch = Stopwatch()..start(); + try { + final result = await callback(); + return result; + } finally { + stopwatch.stop(); + info( + 'Async operation completed', + operation: operation, + duration: stopwatch.elapsed, + ); + } + } + + /// Legacy method for backward compatibility + static void show(String message, {Object? error, StackTrace? stackTrace}) { + debug(message, error: error, stackTrace: stackTrace); + } + + /// Reset configuration to defaults + static void reset() { + _tag = _defaultTag; + _currentScreen = ''; + _isDebugMode = kDebugMode; + _includeTimestamp = true; + _includeStackTrace = true; + _includeSystemInfo = false; + _minLogLevel = LogLevel.debug; + _useStructuredLogging = true; + _useDeveloperLog = true; + } +} diff --git a/test/utils/log_handler_test.dart b/test/utils/log_handler_test.dart new file mode 100644 index 0000000..f2ea897 --- /dev/null +++ b/test/utils/log_handler_test.dart @@ -0,0 +1,771 @@ +import 'package:flutter_test/flutter_test.dart'; +import 'package:flutter_policy_engine/utils/log_handler.dart'; + +void main() { + group('LogHandler', () { + setUp(() { + // Reset LogHandler to default state before each test + LogHandler.reset(); + }); + + group('LogLevel enum', () { + test('should have correct values', () { + expect(LogLevel.debug.value, 0); + expect(LogLevel.info.value, 1); + expect(LogLevel.warning.value, 2); + expect(LogLevel.error.value, 3); + }); + + test('should have correct names', () { + expect(LogLevel.debug.name, 'debug'); + expect(LogLevel.info.name, 'info'); + expect(LogLevel.warning.name, 'warning'); + expect(LogLevel.error.name, 'error'); + }); + + test('should compare levels correctly', () { + expect(LogLevel.debug.value < LogLevel.info.value, true); + expect(LogLevel.info.value < LogLevel.warning.value, true); + expect(LogLevel.warning.value < LogLevel.error.value, true); + expect(LogLevel.error.value > LogLevel.debug.value, true); + }); + }); + + group('LogData class', () { + test('should create LogData with required fields', () { + final logData = LogData( + message: 'Test message', + level: LogLevel.info, + ); + + expect(logData.message, 'Test message'); + expect(logData.level, LogLevel.info); + expect(logData.timestamp, isA()); + }); + + test('should create LogData with all optional fields', () { + final timestamp = DateTime.now(); + final logData = LogData( + message: 'Test message', + level: LogLevel.warning, + tag: '[CustomTag]', + screen: 'TestScreen', + operation: 'test_operation', + duration: const Duration(milliseconds: 100), + error: Exception('Test error'), + stackTrace: StackTrace.current, + context: {'key': 'value'}, + timestamp: timestamp, + ); + + expect(logData.message, 'Test message'); + expect(logData.level, LogLevel.warning); + expect(logData.tag, '[CustomTag]'); + expect(logData.screen, 'TestScreen'); + expect(logData.operation, 'test_operation'); + expect(logData.duration, const Duration(milliseconds: 100)); + expect(logData.error, isA()); + expect(logData.stackTrace, isA()); + expect(logData.context, {'key': 'value'}); + expect(logData.timestamp, timestamp); + }); + + test('should convert to structured log format', () { + final logData = LogData( + message: 'Test message', + level: LogLevel.info, + tag: '[CustomTag]', + screen: 'TestScreen', + operation: 'test_operation', + duration: const Duration(milliseconds: 100), + context: {'key': 'value'}, + ); + + final structured = logData.toStructuredLog(); + + expect(structured['message'], 'Test message'); + expect(structured['level'], 'info'); + expect(structured['tag'], '[CustomTag]'); + expect(structured['screen'], 'TestScreen'); + expect(structured['operation'], 'test_operation'); + expect(structured['duration_ms'], 100); + expect(structured['context'], {'key': 'value'}); + expect(structured['timestamp'], isA()); + }); + + test('should handle null values in structured log', () { + final logData = LogData( + message: 'Test message', + level: LogLevel.debug, + ); + + final structured = logData.toStructuredLog(); + + expect(structured['message'], 'Test message'); + expect(structured['level'], 'debug'); + expect(structured['timestamp'], isA()); + expect(structured.containsKey('tag'), false); + expect(structured.containsKey('screen'), false); + expect(structured.containsKey('operation'), false); + expect(structured.containsKey('duration_ms'), false); + expect(structured.containsKey('error'), false); + expect(structured.containsKey('context'), false); + }); + + test('should handle empty context map in structured log', () { + final logData = LogData( + message: 'Test message', + level: LogLevel.info, + context: {}, + ); + + final structured = logData.toStructuredLog(); + + expect(structured['message'], 'Test message'); + expect(structured['level'], 'info'); + expect(structured.containsKey('context'), false); + }); + + test('should handle error object in structured log', () { + final error = Exception('Test exception'); + final logData = LogData( + message: 'Test message', + level: LogLevel.error, + error: error, + ); + + final structured = logData.toStructuredLog(); + + expect(structured['error'], error.toString()); + }); + }); + + group('Configuration', () { + test('should configure with all parameters', () { + LogHandler.configure( + tag: '[CustomTag]', + screen: 'TestScreen', + isDebugMode: true, + includeTimestamp: false, + includeStackTrace: false, + includeSystemInfo: true, + minLogLevel: LogLevel.warning, + useStructuredLogging: false, + useDeveloperLog: false, + ); + + expect(LogHandler.currentTag, '[CustomTag]'); + expect(LogHandler.currentScreen, 'TestScreen'); + }); + + test('should use default values when parameters are null', () { + LogHandler.configure(); + + expect(LogHandler.currentTag, '[PolicyEngine]'); + expect(LogHandler.currentScreen, ''); + }); + + test('should update tag when screen is provided', () { + LogHandler.configure(screen: 'HomeScreen'); + expect(LogHandler.currentTag, '[HomeScreen]'); + }); + + test('should preserve custom tag when both tag and screen are provided', + () { + LogHandler.configure( + tag: '[CustomTag]', + screen: 'HomeScreen', + ); + expect(LogHandler.currentTag, '[CustomTag]'); + expect(LogHandler.currentScreen, 'HomeScreen'); + }); + + test('should handle empty screen name', () { + LogHandler.configure(screen: ''); + expect(LogHandler.currentTag, '[PolicyEngine]'); + expect(LogHandler.currentScreen, ''); + }); + + test('should handle whitespace in screen name', () { + LogHandler.configure(screen: ' '); + expect(LogHandler.currentTag, '[ ]'); + expect(LogHandler.currentScreen, ' '); + }); + }); + + group('Screen management', () { + test('should set screen and update tag', () { + LogHandler.setScreen('LoginScreen'); + expect(LogHandler.currentScreen, 'LoginScreen'); + expect(LogHandler.currentTag, '[LoginScreen]'); + }); + + test('should set screen with custom tag', () { + LogHandler.setScreenTag('ProfileScreen', '[UserProfile]'); + expect(LogHandler.currentScreen, 'ProfileScreen'); + expect(LogHandler.currentTag, '[UserProfile]'); + }); + + test('should reset tag to default when screen is empty', () { + LogHandler.setScreen('TestScreen'); + expect(LogHandler.currentTag, '[TestScreen]'); + + LogHandler.setScreen(''); + expect(LogHandler.currentTag, '[PolicyEngine]'); + }); + + test('should handle screen with special characters', () { + LogHandler.setScreen('User-Profile_Screen'); + expect(LogHandler.currentTag, '[User-Profile_Screen]'); + }); + + test('should handle screen with numbers', () { + LogHandler.setScreen('Screen123'); + expect(LogHandler.currentTag, '[Screen123]'); + }); + + test('should handle very long screen names', () { + final longScreenName = 'A' * 100; + LogHandler.setScreen(longScreenName); + expect(LogHandler.currentTag, '[$longScreenName]'); + }); + }); + + group('Log methods', () { + test('should log debug message', () { + expect(() { + LogHandler.debug('Test debug message'); + }, returnsNormally); + }); + + test('should log info message', () { + expect(() { + LogHandler.info('Test info message'); + }, returnsNormally); + }); + + test('should log warning message', () { + expect(() { + LogHandler.warning('Test warning message'); + }, returnsNormally); + }); + + test('should log error message', () { + expect(() { + LogHandler.error('Test error message'); + }, returnsNormally); + }); + + test('should log with all optional parameters', () { + expect(() { + LogHandler.output( + 'Test message', + level: LogLevel.info, + error: Exception('Test exception'), + stackTrace: StackTrace.current, + context: {'key': 'value', 'number': 42}, + operation: 'test_operation', + duration: const Duration(milliseconds: 100), + screenOverride: 'OverrideScreen', + ); + }, returnsNormally); + }); + + test('should handle null parameters gracefully', () { + expect(() { + LogHandler.output( + 'Test message', + level: LogLevel.debug, + error: null, + stackTrace: null, + context: null, + operation: null, + duration: null, + screenOverride: null, + ); + }, returnsNormally); + }); + + test('should handle empty context map', () { + expect(() { + LogHandler.output( + 'Test message', + context: {}, + ); + }, returnsNormally); + }); + + test('should handle screen override parameter', () { + LogHandler.setScreen('OriginalScreen'); + + expect(() { + LogHandler.output( + 'Test message', + screenOverride: 'OverrideScreen', + ); + }, returnsNormally); + }); + + test('should handle operation parameter', () { + expect(() { + LogHandler.output( + 'Test message', + operation: 'fetch_data', + ); + }, returnsNormally); + }); + + test('should handle duration parameter', () { + expect(() { + LogHandler.output( + 'Test message', + duration: const Duration(seconds: 5), + ); + }, returnsNormally); + }); + }); + + group('Performance logging', () { + test('should time synchronous operations', () { + expect(() { + LogHandler.time('test_operation', () { + // Simulate some work + for (int i = 0; i < 1000; i++) { + // Do nothing + } + }); + }, returnsNormally); + }); + + test('should time asynchronous operations', () async { + expect(() async { + final result = + await LogHandler.timeAsync('async_test_operation', () async { + // Simulate async work + await Future.delayed(const Duration(milliseconds: 10)); + return 'test_result'; + }); + expect(result, 'test_result'); + }, returnsNormally); + }); + + test('should handle exceptions in timed operations', () { + expect(() { + LogHandler.time('error_operation', () { + throw Exception('Test exception'); + }); + }, throwsException); + }); + + test('should handle exceptions in async timed operations', () async { + expect(() async { + await LogHandler.timeAsync('async_error_operation', () async { + await Future.delayed(const Duration(milliseconds: 10)); + throw Exception('Test async exception'); + }); + }, throwsException); + }); + + test('should handle empty operation names', () { + expect(() { + LogHandler.time('', () { + // Do nothing + }); + }, returnsNormally); + }); + + test('should handle very long operation names', () { + final longOperationName = 'A' * 100; + expect(() { + LogHandler.time(longOperationName, () { + // Do nothing + }); + }, returnsNormally); + }); + + test('should handle async operations that return null', () async { + expect(() async { + final result = await LogHandler.timeAsync('null_operation', () async { + await Future.delayed(const Duration(milliseconds: 5)); + return null; + }); + expect(result, isNull); + }, returnsNormally); + }); + }); + + group('Legacy compatibility', () { + test('should support legacy show method', () { + expect(() { + LogHandler.show('Legacy message'); + }, returnsNormally); + }); + + test('should support legacy show method with error', () { + expect(() { + LogHandler.show( + 'Legacy message with error', + error: Exception('Test error'), + stackTrace: StackTrace.current, + ); + }, returnsNormally); + }); + + test('should support legacy show method with null parameters', () { + expect(() { + LogHandler.show('Legacy message', error: null, stackTrace: null); + }, returnsNormally); + }); + }); + + group('Log level filtering', () { + test('should respect minimum log level', () { + LogHandler.configure(minLogLevel: LogLevel.warning); + + // These should not log anything (below minimum level) + expect(() { + LogHandler.debug('Debug message'); + LogHandler.info('Info message'); + }, returnsNormally); + + // These should log (at or above minimum level) + expect(() { + LogHandler.warning('Warning message'); + LogHandler.error('Error message'); + }, returnsNormally); + }); + + test('should allow all levels when minimum is debug', () { + LogHandler.configure(minLogLevel: LogLevel.debug); + + expect(() { + LogHandler.debug('Debug message'); + LogHandler.info('Info message'); + LogHandler.warning('Warning message'); + LogHandler.error('Error message'); + }, returnsNormally); + }); + + test('should only allow error level when minimum is error', () { + LogHandler.configure(minLogLevel: LogLevel.error); + + expect(() { + LogHandler.debug('Debug message'); + LogHandler.info('Info message'); + LogHandler.warning('Warning message'); + LogHandler.error('Error message'); + }, returnsNormally); + }); + + test('should handle exact level matching', () { + LogHandler.configure(minLogLevel: LogLevel.info); + + expect(() { + LogHandler.debug('Debug message'); // Should not log + LogHandler.info('Info message'); // Should log + LogHandler.warning('Warning message'); // Should log + LogHandler.error('Error message'); // Should log + }, returnsNormally); + }); + }); + + group('Debug mode behavior', () { + test('should respect debug mode setting', () { + LogHandler.configure(isDebugMode: false); + + // Should not log anything in non-debug mode + expect(() { + LogHandler.debug('Debug message'); + LogHandler.info('Info message'); + LogHandler.warning('Warning message'); + LogHandler.error('Error message'); + }, returnsNormally); + }); + + test('should log in debug mode', () { + LogHandler.configure(isDebugMode: true); + + expect(() { + LogHandler.debug('Debug message'); + LogHandler.info('Info message'); + LogHandler.warning('Warning message'); + LogHandler.error('Error message'); + }, returnsNormally); + }); + }); + + group('Reset functionality', () { + test('should reset to default values', () { + // Configure with custom values + LogHandler.configure( + tag: '[CustomTag]', + screen: 'TestScreen', + isDebugMode: false, + includeTimestamp: false, + includeStackTrace: false, + includeSystemInfo: true, + minLogLevel: LogLevel.error, + useStructuredLogging: false, + useDeveloperLog: false, + ); + + // Reset + LogHandler.reset(); + + // Verify defaults + expect(LogHandler.currentTag, '[PolicyEngine]'); + expect(LogHandler.currentScreen, ''); + }); + + test('should reset after multiple configurations', () { + // First configuration + LogHandler.configure(tag: '[FirstTag]', screen: 'FirstScreen'); + expect(LogHandler.currentTag, '[FirstTag]'); + expect(LogHandler.currentScreen, 'FirstScreen'); + + // Second configuration + LogHandler.configure(tag: '[SecondTag]', screen: 'SecondScreen'); + expect(LogHandler.currentTag, '[SecondTag]'); + expect(LogHandler.currentScreen, 'SecondScreen'); + + // Reset + LogHandler.reset(); + expect(LogHandler.currentTag, '[PolicyEngine]'); + expect(LogHandler.currentScreen, ''); + }); + }); + + group('Edge cases', () { + test('should handle empty message', () { + expect(() { + LogHandler.output(''); + }, returnsNormally); + }); + + test('should handle very long message', () { + final longMessage = 'A' * 1000; + expect(() { + LogHandler.output(longMessage); + }, returnsNormally); + }); + + test('should handle special characters in message', () { + expect(() { + LogHandler.output( + 'Message with special chars: !@#\$%^&*()_+-=[]{}|;:,.<>?'); + }, returnsNormally); + }); + + test('should handle unicode characters', () { + expect(() { + LogHandler.output('Message with unicode: 🚀 📱 💻'); + }, returnsNormally); + }); + + test('should handle complex context objects', () { + final complexContext = { + 'string': 'value', + 'number': 42, + 'boolean': true, + 'null': null, + 'list': [1, 2, 3], + 'map': {'nested': 'value'}, + }; + + expect(() { + LogHandler.output('Test message', context: complexContext); + }, returnsNormally); + }); + + test('should handle nested context objects', () { + final nestedContext = { + 'level1': { + 'level2': { + 'level3': 'deep_value', + 'array': [1, 2, 3], + }, + }, + }; + + expect(() { + LogHandler.output('Test message', context: nestedContext); + }, returnsNormally); + }); + + test('should handle context with function references', () { + final contextWithFunction = { + 'function': () => 'test', + 'string': 'value', + }; + + expect(() { + LogHandler.output('Test message', context: contextWithFunction); + }, returnsNormally); + }); + + test('should handle very large context objects', () { + final largeContext = {}; + for (int i = 0; i < 100; i++) { + largeContext['key_$i'] = 'value_$i'; + } + + expect(() { + LogHandler.output('Test message', context: largeContext); + }, returnsNormally); + }); + + test('should handle error objects with complex toString', () { + final complexError = + Exception('Complex error with special chars: !@#\$%^&*()'); + expect(() { + LogHandler.output('Test message', error: complexError); + }, returnsNormally); + }); + + test('should handle custom error objects', () { + final customError = CustomError('Custom error message'); + expect(() { + LogHandler.output('Test message', error: customError); + }, returnsNormally); + }); + }); + + group('Integration scenarios', () { + test('should handle typical logging workflow', () { + // Configure for a specific screen + LogHandler.setScreen('UserProfile'); + + // Log various levels + expect(() { + LogHandler.debug('User profile loaded'); + LogHandler.info('User data fetched successfully'); + LogHandler.warning('Some optional data missing'); + LogHandler.error('Failed to load user avatar'); + }, returnsNormally); + + // Verify screen context is maintained + expect(LogHandler.currentScreen, 'UserProfile'); + expect(LogHandler.currentTag, '[UserProfile]'); + }); + + test('should handle screen transitions', () { + // Start on login screen + LogHandler.setScreen('LoginScreen'); + expect(LogHandler.currentTag, '[LoginScreen]'); + + // Transition to home screen + LogHandler.setScreen('HomeScreen'); + expect(LogHandler.currentTag, '[HomeScreen]'); + + // Log during transition + expect(() { + LogHandler.info('Screen transition completed'); + }, returnsNormally); + }); + + test('should handle performance monitoring workflow', () async { + // Configure logging + LogHandler.setScreen('DataProcessing'); + + // Monitor performance + expect(() async { + await LogHandler.timeAsync('data_fetch', () async { + await Future.delayed(const Duration(milliseconds: 50)); + return 'data_result'; + }); + }, returnsNormally); + + // Verify logging occurred + expect(LogHandler.currentScreen, 'DataProcessing'); + }); + + test('should handle complex application flow', () async { + // Initial setup + LogHandler.setScreen('AppStartup'); + LogHandler.info('Application starting'); + + // Screen transition + LogHandler.setScreen('LoginScreen'); + LogHandler.info('User attempting login'); + + // Performance monitoring + await LogHandler.timeAsync('login_process', () async { + await Future.delayed(const Duration(milliseconds: 100)); + return 'login_success'; + }); + + // Error handling + LogHandler.warning('Some optional features unavailable'); + + // Final transition + LogHandler.setScreen('HomeScreen'); + LogHandler.info('User successfully logged in'); + + expect(LogHandler.currentScreen, 'HomeScreen'); + expect(LogHandler.currentTag, '[HomeScreen]'); + }); + + test('should handle error recovery workflow', () { + LogHandler.setScreen('ErrorHandling'); + + // Log initial state + LogHandler.info('Starting error recovery process'); + + // Log error + LogHandler.error( + 'Network connection failed', + error: Exception('Connection timeout'), + context: {'retry_count': 3, 'timeout_ms': 5000}, + ); + + // Log recovery attempt + LogHandler.warning('Attempting to reconnect...'); + + // Log success + LogHandler.info('Connection restored successfully'); + + expect(LogHandler.currentScreen, 'ErrorHandling'); + }); + }); + + group('Stress testing', () { + test('should handle rapid logging calls', () { + expect(() { + for (int i = 0; i < 100; i++) { + LogHandler.debug('Rapid log message $i'); + } + }, returnsNormally); + }); + + test('should handle concurrent screen changes', () { + expect(() { + for (int i = 0; i < 50; i++) { + LogHandler.setScreen('Screen$i'); + LogHandler.info('Message from screen $i'); + } + }, returnsNormally); + }); + + test('should handle mixed log levels rapidly', () { + expect(() { + for (int i = 0; i < 50; i++) { + LogHandler.debug('Debug $i'); + LogHandler.info('Info $i'); + LogHandler.warning('Warning $i'); + LogHandler.error('Error $i'); + } + }, returnsNormally); + }); + }); + }); +} + +/// Custom error class for testing +class CustomError implements Exception { + final String message; + + CustomError(this.message); + + @override + String toString() => 'CustomError: $message'; +} From a1c79932c3c26ca72ea7baa83caa9d23d8f28a2a Mon Sep 17 00:00:00 2001 From: David Garcia Ruiz Date: Tue, 15 Jul 2025 22:54:41 +0200 Subject: [PATCH 05/18] feat(json): implement JsonHandler for robust JSON conversion and validation utilities --- lib/utils/json_handler.dart | 169 ++++++++ test/utils/json_handler_test.dart | 670 ++++++++++++++++++++++++++++++ 2 files changed, 839 insertions(+) create mode 100644 lib/utils/json_handler.dart create mode 100644 test/utils/json_handler_test.dart diff --git a/lib/utils/json_handler.dart b/lib/utils/json_handler.dart new file mode 100644 index 0000000..624fd29 --- /dev/null +++ b/lib/utils/json_handler.dart @@ -0,0 +1,169 @@ +import 'dart:convert'; + +import 'package:flutter_policy_engine/utils/log_handler.dart'; + +/// A utility class for handling JSON conversions with generic type support. +/// +/// This class provides methods to convert JSON strings to strongly-typed objects +/// and vice versa, with proper error handling and type safety. +class JsonHandler { + /// Converts a JSON string to an object of type T. + /// + /// [jsonString] - The JSON string to parse + /// [fromJson] - A factory function that creates an instance of T from a Map + /// + /// Returns an instance of T if successful, null otherwise. + /// + /// Example: + /// ```dart + /// final policy = JsonHandler.fromJson( + /// jsonString, + /// (json) => Policy.fromJson(json), + /// ); + /// ``` + static T? fromJson( + String jsonString, + T Function(Map json) fromJson, + ) { + try { + final Map jsonMap = jsonDecode(jsonString); + return fromJson(jsonMap); + } on FormatException catch (e) { + LogHandler.error('JSON format error: $e'); + return null; + } on TypeError catch (e) { + LogHandler.error('Type conversion error: $e'); + return null; + } catch (e) { + LogHandler.error('Stack trace: ${e.toString()}'); + return null; + } + } + + /// Converts a JSON string to a list of objects of type T. + /// + /// [jsonString] - The JSON string to parse (should be a JSON array) + /// [fromJson] - A factory function that creates an instance of T from a Map + /// + /// Returns a List if successful, empty list otherwise. + /// + /// Example: + /// ```dart + /// final policies = JsonHandler.fromJsonList( + /// jsonString, + /// (json) => Policy.fromJson(json), + /// ); + /// ``` + static List fromJsonList( + String jsonString, + T Function(Map json) fromJson, + ) { + try { + final List jsonList = jsonDecode(jsonString); + return jsonList + .map((item) => fromJson(item as Map)) + .toList(); + } on FormatException catch (e) { + LogHandler.error('JSON format error: $e'); + return []; + } on TypeError catch (e) { + LogHandler.error('Type conversion error: $e'); + return []; + } catch (e) { + LogHandler.error('Stack trace: ${e.toString()}'); + return []; + } + } + + /// Converts an object to a JSON string. + /// + /// [object] - The object to convert + /// [toJson] - A function that converts the object to a Map + /// + /// Returns a JSON string if successful, null otherwise. + /// + /// Example: + /// ```dart + /// final jsonString = JsonHandler.toJson( + /// policy, + /// (policy) => policy.toJson(), + /// ); + /// ``` + static String? toJson( + T object, + Map Function(T object) toJson, + ) { + try { + final Map jsonMap = toJson(object); + return jsonEncode(jsonMap); + } on TypeError catch (e) { + LogHandler.error('Type conversion error: $e'); + return null; + } catch (e) { + LogHandler.error('Stack trace: ${e.toString()}'); + return null; + } + } + + /// Converts a list of objects to a JSON string. + /// + /// [objects] - The list of objects to convert + /// [toJson] - A function that converts an object to a Map + /// + /// Returns a JSON string if successful, null otherwise. + /// + /// Example: + /// ```dart + /// final jsonString = JsonHandler.toJsonList( + /// policies, + /// (policy) => policy.toJson(), + /// ); + /// ``` + static String? toJsonList( + List objects, + Map Function(T object) toJson, + ) { + try { + final List> jsonList = + objects.map((object) => toJson(object)).toList(); + return jsonEncode(jsonList); + } on TypeError catch (e) { + LogHandler.error('Type conversion error: $e'); + return null; + } catch (e) { + LogHandler.error('Stack trace: ${e.toString()}'); + return null; + } + } + + /// Safely parses a JSON string and returns the raw Map. + /// + /// [jsonString] - The JSON string to parse + /// + /// Returns a Map if successful, null otherwise. + static Map? parseJson(String jsonString) { + try { + return jsonDecode(jsonString) as Map; + } on FormatException catch (e) { + LogHandler.error('JSON format error: $e'); + return null; + } catch (e) { + LogHandler.error('Stack trace: ${e.toString()}'); + return null; + } + } + + /// Validates if a string is valid JSON. + /// + /// [jsonString] - The string to validate + /// + /// Returns true if the string is valid JSON, false otherwise. + static bool isValidJson(String jsonString) { + try { + jsonDecode(jsonString); + return true; + } catch (e) { + return false; + } + } +} diff --git a/test/utils/json_handler_test.dart b/test/utils/json_handler_test.dart new file mode 100644 index 0000000..c1220ff --- /dev/null +++ b/test/utils/json_handler_test.dart @@ -0,0 +1,670 @@ +import 'package:flutter_test/flutter_test.dart'; +import 'package:flutter_policy_engine/utils/json_handler.dart'; + +// Test data classes for JSON conversion testing +class TestUser { + final String name; + final int age; + final List hobbies; + final Map metadata; + + const TestUser({ + required this.name, + required this.age, + required this.hobbies, + this.metadata = const {}, + }); + + factory TestUser.fromJson(Map json) { + return TestUser( + name: json['name'] as String, + age: json['age'] as int, + hobbies: List.from(json['hobbies'] ?? []), + metadata: Map.from(json['metadata'] ?? {}), + ); + } + + Map toJson() { + return { + 'name': name, + 'age': age, + 'hobbies': hobbies, + 'metadata': metadata, + }; + } + + @override + bool operator ==(Object other) => + identical(this, other) || + other is TestUser && + name == other.name && + age == other.age && + hobbies.length == other.hobbies.length && + hobbies.every((hobby) => other.hobbies.contains(hobby)) && + metadata.length == other.metadata.length && + metadata.entries + .every((entry) => other.metadata[entry.key] == entry.value); + + @override + int get hashCode => name.hashCode ^ age.hashCode ^ hobbies.hashCode; + + @override + String toString() => + 'TestUser(name: $name, age: $age, hobbies: $hobbies, metadata: $metadata)'; +} + +class TestPolicy { + final String roleName; + final List allowedContent; + final Map metadata; + + const TestPolicy({ + required this.roleName, + required this.allowedContent, + this.metadata = const {}, + }); + + factory TestPolicy.fromJson(Map json) { + return TestPolicy( + roleName: json['roleName'] as String, + allowedContent: List.from(json['allowedContent'] ?? []), + metadata: Map.from(json['metadata'] ?? {}), + ); + } + + Map toJson() { + return { + 'roleName': roleName, + 'allowedContent': allowedContent, + 'metadata': metadata, + }; + } + + @override + bool operator ==(Object other) => + identical(this, other) || + other is TestPolicy && + roleName == other.roleName && + allowedContent.length == other.allowedContent.length && + allowedContent + .every((content) => other.allowedContent.contains(content)) && + metadata.length == other.metadata.length && + metadata.entries.every((entry) { + final otherValue = other.metadata[entry.key]; + if (entry.value is List && otherValue is List) { + return entry.value.length == otherValue.length && + (entry.value as List) + .every((item) => otherValue.contains(item)); + } + return entry.value == otherValue; + }); + + @override + int get hashCode => + roleName.hashCode ^ allowedContent.hashCode ^ metadata.hashCode; + + @override + String toString() => + 'TestPolicy(roleName: $roleName, allowedContent: $allowedContent, metadata: $metadata)'; +} + +void main() { + group('JsonHandler', () { + group('fromJson', () { + test('should convert valid JSON string to object', () { + const jsonString = ''' + { + "name": "John Doe", + "age": 30, + "hobbies": ["reading", "swimming"], + "metadata": {"city": "New York"} + } + '''; + + final result = JsonHandler.fromJson( + jsonString, + (json) => TestUser.fromJson(json), + ); + + expect(result, isNotNull); + expect(result!.name, 'John Doe'); + expect(result.age, 30); + expect(result.hobbies, ['reading', 'swimming']); + expect(result.metadata, {'city': 'New York'}); + }); + + test('should return null for invalid JSON format', () { + const invalidJson = '{"name": "John", "age": 30,}'; // Trailing comma + + final result = JsonHandler.fromJson( + invalidJson, + (json) => TestUser.fromJson(json), + ); + + expect(result, isNull); + }); + + test('should return null for malformed JSON', () { + const malformedJson = + '{"name": "John", "age": "invalid"}'; // age should be int + + final result = JsonHandler.fromJson( + malformedJson, + (json) => TestUser.fromJson(json), + ); + + expect(result, isNull); + }); + + test('should return null for empty string', () { + const emptyString = ''; + + final result = JsonHandler.fromJson( + emptyString, + (json) => TestUser.fromJson(json), + ); + + expect(result, isNull); + }); + + // Note: null string tests removed as JsonHandler doesn't handle null strings + // The method signature requires a non-null String parameter + + test('should handle JSON with missing optional fields', () { + const jsonString = '{"name": "Jane", "age": 25}'; + + final result = JsonHandler.fromJson( + jsonString, + (json) => TestUser.fromJson(json), + ); + + expect(result, isNotNull); + expect(result!.name, 'Jane'); + expect(result.age, 25); + expect(result.hobbies, isEmpty); + expect(result.metadata, isEmpty); + }); + }); + + group('fromJsonList', () { + test('should convert valid JSON array to list of objects', () { + const jsonString = ''' + [ + { + "name": "John Doe", + "age": 30, + "hobbies": ["reading"], + "metadata": {"city": "NYC"} + }, + { + "name": "Jane Smith", + "age": 25, + "hobbies": ["swimming", "coding"], + "metadata": {"city": "LA"} + } + ] + '''; + + final result = JsonHandler.fromJsonList( + jsonString, + (json) => TestUser.fromJson(json), + ); + + expect(result, hasLength(2)); + expect(result[0].name, 'John Doe'); + expect(result[0].age, 30); + expect(result[1].name, 'Jane Smith'); + expect(result[1].age, 25); + }); + + test('should return empty list for invalid JSON format', () { + const invalidJson = '[{"name": "John", "age": 30,}]'; // Trailing comma + + final result = JsonHandler.fromJsonList( + invalidJson, + (json) => TestUser.fromJson(json), + ); + + expect(result, isEmpty); + }); + + test('should return empty list for malformed JSON', () { + const malformedJson = '[{"name": "John", "age": "invalid"}]'; + + final result = JsonHandler.fromJsonList( + malformedJson, + (json) => TestUser.fromJson(json), + ); + + expect(result, isEmpty); + }); + + test('should return empty list for empty string', () { + const emptyString = ''; + + final result = JsonHandler.fromJsonList( + emptyString, + (json) => TestUser.fromJson(json), + ); + + expect(result, isEmpty); + }); + + // Note: null string tests removed as JsonHandler doesn't handle null strings + // The method signature requires a non-null String parameter + + test('should handle empty JSON array', () { + const emptyArray = '[]'; + + final result = JsonHandler.fromJsonList( + emptyArray, + (json) => TestUser.fromJson(json), + ); + + expect(result, isEmpty); + }); + + test('should handle JSON array with missing optional fields', () { + const jsonString = ''' + [ + {"name": "John", "age": 30}, + {"name": "Jane", "age": 25} + ] + '''; + + final result = JsonHandler.fromJsonList( + jsonString, + (json) => TestUser.fromJson(json), + ); + + expect(result, hasLength(2)); + expect(result[0].hobbies, isEmpty); + expect(result[0].metadata, isEmpty); + expect(result[1].hobbies, isEmpty); + expect(result[1].metadata, isEmpty); + }); + }); + + group('toJson', () { + test('should convert object to valid JSON string', () { + const user = TestUser( + name: 'John Doe', + age: 30, + hobbies: ['reading', 'swimming'], + metadata: {'city': 'New York'}, + ); + + final result = JsonHandler.toJson( + user, + (user) => user.toJson(), + ); + + expect(result, isNotNull); + expect(result, contains('"name":"John Doe"')); + expect(result, contains('"age":30')); + expect(result, contains('"hobbies":["reading","swimming"]')); + expect(result, contains('"metadata":{"city":"New York"}')); + }); + + test('should handle object with empty collections', () { + const user = TestUser( + name: 'Jane Smith', + age: 25, + hobbies: [], + metadata: {}, + ); + + final result = JsonHandler.toJson( + user, + (user) => user.toJson(), + ); + + expect(result, isNotNull); + expect(result, contains('"hobbies":[]')); + expect(result, contains('"metadata":{}')); + }); + + // Note: null object tests removed as JsonHandler doesn't handle null objects + // The method signature requires a non-null object parameter + + test('should handle complex nested objects', () { + const policy = TestPolicy( + roleName: 'admin', + allowedContent: ['read', 'write', 'delete'], + metadata: { + 'permissions': ['user_management', 'system_config'], + 'level': 5, + 'active': true, + }, + ); + + final result = JsonHandler.toJson( + policy, + (policy) => policy.toJson(), + ); + + expect(result, isNotNull); + expect(result, contains('"roleName":"admin"')); + expect(result, contains('"allowedContent":["read","write","delete"]')); + expect(result, + contains('"permissions":["user_management","system_config"]')); + expect(result, contains('"level":5')); + expect(result, contains('"active":true')); + }); + }); + + group('toJsonList', () { + test('should convert list of objects to valid JSON string', () { + const users = [ + TestUser( + name: 'John Doe', + age: 30, + hobbies: ['reading'], + metadata: {'city': 'NYC'}, + ), + TestUser( + name: 'Jane Smith', + age: 25, + hobbies: ['swimming', 'coding'], + metadata: {'city': 'LA'}, + ), + ]; + + final result = JsonHandler.toJsonList( + users, + (user) => user.toJson(), + ); + + expect(result, isNotNull); + expect(result, startsWith('[')); + expect(result, endsWith(']')); + expect(result, contains('"name":"John Doe"')); + expect(result, contains('"name":"Jane Smith"')); + }); + + test('should handle empty list', () { + const users = []; + + final result = JsonHandler.toJsonList( + users, + (user) => user.toJson(), + ); + + expect(result, isNotNull); + expect(result, '[]'); + }); + + // Note: null list tests removed as JsonHandler doesn't handle null lists + // The method signature requires a non-null List parameter + + test('should handle list with objects containing empty collections', () { + const users = [ + TestUser(name: 'John', age: 30, hobbies: [], metadata: {}), + TestUser(name: 'Jane', age: 25, hobbies: [], metadata: {}), + ]; + + final result = JsonHandler.toJsonList( + users, + (user) => user.toJson(), + ); + + expect(result, isNotNull); + expect(result, contains('"hobbies":[]')); + expect(result, contains('"metadata":{}')); + }); + }); + + group('parseJson', () { + test('should parse valid JSON string to Map', () { + const jsonString = ''' + { + "name": "John Doe", + "age": 30, + "hobbies": ["reading", "swimming"], + "metadata": {"city": "New York"} + } + '''; + + final result = JsonHandler.parseJson(jsonString); + + expect(result, isNotNull); + expect(result!['name'], 'John Doe'); + expect(result['age'], 30); + expect(result['hobbies'], ['reading', 'swimming']); + expect(result['metadata'], {'city': 'New York'}); + }); + + test('should return null for invalid JSON format', () { + const invalidJson = '{"name": "John", "age": 30,}'; // Trailing comma + + final result = JsonHandler.parseJson(invalidJson); + + expect(result, isNull); + }); + + test('should return null for malformed JSON', () { + const malformedJson = '{"name": "John", "age": 30,}'; // Trailing comma + + final result = JsonHandler.parseJson(malformedJson); + + expect(result, isNull); + }); + + test('should return null for empty string', () { + const emptyString = ''; + + final result = JsonHandler.parseJson(emptyString); + + expect(result, isNull); + }); + + // Note: null string tests removed as JsonHandler doesn't handle null strings + // The method signature requires a non-null String parameter + + test('should handle JSON with nested objects', () { + const jsonString = ''' + { + "user": { + "name": "John", + "profile": { + "age": 30, + "preferences": { + "theme": "dark", + "notifications": true + } + } + } + } + '''; + + final result = JsonHandler.parseJson(jsonString); + + expect(result, isNotNull); + expect(result!['user']['name'], 'John'); + expect(result['user']['profile']['age'], 30); + expect(result['user']['profile']['preferences']['theme'], 'dark'); + expect(result['user']['profile']['preferences']['notifications'], true); + }); + }); + + group('isValidJson', () { + test('should return true for valid JSON object', () { + const validJson = '{"name": "John", "age": 30}'; + + final result = JsonHandler.isValidJson(validJson); + + expect(result, isTrue); + }); + + test('should return true for valid JSON array', () { + const validJson = '[{"name": "John"}, {"name": "Jane"}]'; + + final result = JsonHandler.isValidJson(validJson); + + expect(result, isTrue); + }); + + test('should return true for valid JSON with nested structures', () { + const validJson = ''' + { + "users": [ + {"name": "John", "metadata": {"city": "NYC"}}, + {"name": "Jane", "metadata": {"city": "LA"}} + ] + } + '''; + + final result = JsonHandler.isValidJson(validJson); + + expect(result, isTrue); + }); + + test('should return false for invalid JSON format', () { + const invalidJson = '{"name": "John", "age": 30,}'; // Trailing comma + + final result = JsonHandler.isValidJson(invalidJson); + + expect(result, isFalse); + }); + + test('should return false for malformed JSON', () { + const malformedJson = '{"name": "John", "age": 30,}'; // Trailing comma + + final result = JsonHandler.isValidJson(malformedJson); + + expect(result, isFalse); + }); + + test('should return false for empty string', () { + const emptyString = ''; + + final result = JsonHandler.isValidJson(emptyString); + + expect(result, isFalse); + }); + + // Note: null string tests removed as JsonHandler doesn't handle null strings + // The method signature requires a non-null String parameter + + test('should return false for plain text', () { + const plainText = 'This is not JSON'; + + final result = JsonHandler.isValidJson(plainText); + + expect(result, isFalse); + }); + + test('should return false for incomplete JSON', () { + const incompleteJson = '{"name": "John"'; + + final result = JsonHandler.isValidJson(incompleteJson); + + expect(result, isFalse); + }); + }); + + group('Integration tests', () { + test('should handle round-trip conversion for single object', () { + const originalUser = TestUser( + name: 'John Doe', + age: 30, + hobbies: ['reading', 'swimming'], + metadata: {'city': 'New York', 'country': 'USA'}, + ); + + // Convert to JSON + final jsonString = JsonHandler.toJson( + originalUser, + (user) => user.toJson(), + ); + + expect(jsonString, isNotNull); + + // Convert back from JSON + final convertedUser = JsonHandler.fromJson( + jsonString!, + (json) => TestUser.fromJson(json), + ); + + expect(convertedUser, isNotNull); + expect(convertedUser, equals(originalUser)); + }); + + test('should handle round-trip conversion for list of objects', () { + const originalUsers = [ + TestUser( + name: 'John Doe', + age: 30, + hobbies: ['reading'], + metadata: {'city': 'NYC'}, + ), + TestUser( + name: 'Jane Smith', + age: 25, + hobbies: ['swimming', 'coding'], + metadata: {'city': 'LA'}, + ), + ]; + + // Convert to JSON + final jsonString = JsonHandler.toJsonList( + originalUsers, + (user) => user.toJson(), + ); + + expect(jsonString, isNotNull); + + // Convert back from JSON + final convertedUsers = JsonHandler.fromJsonList( + jsonString!, + (json) => TestUser.fromJson(json), + ); + + expect(convertedUsers, hasLength(2)); + expect(convertedUsers[0], equals(originalUsers[0])); + expect(convertedUsers[1], equals(originalUsers[1])); + }); + + test('should handle complex nested structures', () { + const originalPolicies = [ + TestPolicy( + roleName: 'admin', + allowedContent: ['read', 'write', 'delete'], + metadata: { + 'permissions': ['user_management'], + 'level': 5, + 'active': true, + }, + ), + TestPolicy( + roleName: 'user', + allowedContent: ['read'], + metadata: { + 'permissions': ['basic_access'], + 'level': 1, + 'active': true, + }, + ), + ]; + + // Convert to JSON + final jsonString = JsonHandler.toJsonList( + originalPolicies, + (policy) => policy.toJson(), + ); + + expect(jsonString, isNotNull); + + // Convert back from JSON + final convertedPolicies = JsonHandler.fromJsonList( + jsonString!, + (json) => TestPolicy.fromJson(json), + ); + + expect(convertedPolicies, hasLength(2)); + expect(convertedPolicies[0], equals(originalPolicies[0])); + expect(convertedPolicies[1], equals(originalPolicies[1])); + }); + }); + }); +} From c6ac2ee78f4ff85d7cd0e2ef96c7d3a9a60a413a Mon Sep 17 00:00:00 2001 From: David Garcia Ruiz Date: Tue, 15 Jul 2025 23:10:18 +0200 Subject: [PATCH 06/18] chore(analysis): update analysis options and linter rules for improved code quality and consistency --- analysis_options.yaml | 22 ++++++++++++++++++++++ pubspec.yaml | 4 ++-- 2 files changed, 24 insertions(+), 2 deletions(-) diff --git a/analysis_options.yaml b/analysis_options.yaml index a5744c1..63d4716 100644 --- a/analysis_options.yaml +++ b/analysis_options.yaml @@ -2,3 +2,25 @@ include: package:flutter_lints/flutter.yaml # Additional information about this file can be found at # https://dart.dev/guides/language/analysis-options + +linter: + rules: + # Documentation + public_member_api_docs: true + + # Performance + avoid_print: true + prefer_const_constructors: true + prefer_const_declarations: true + + # Style + prefer_final_locals: true + prefer_single_quotes: true + + # Safety + avoid_dynamic_calls: true + avoid_type_to_string: true + + # Library specific + library_private_types_in_public_api: true + missing_whitespace_between_adjacent_strings: true diff --git a/pubspec.yaml b/pubspec.yaml index ba3133f..8f0f11c 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -10,12 +10,12 @@ environment: dependencies: flutter: sdk: flutter - meta: ^1.16.0 + meta: ^1.12.0 dev_dependencies: flutter_test: sdk: flutter - flutter_lints: ^3.0.0 + flutter_lints: ^4.0.0 # For information on the generic Dart part of this file, see the # following page: https://dart.dev/tools/pub/pubspec From 4facc99a219a255a7b59a930e2313843c6252a55 Mon Sep 17 00:00:00 2001 From: David Garcia Ruiz Date: Tue, 15 Jul 2025 23:12:13 +0200 Subject: [PATCH 07/18] feat(logging): implement LogHandler for structured logging and enhanced debugging capabilities --- lib/{ => src}/utils/json_handler.dart | 0 lib/{ => src}/utils/log_handler.dart | 1 - 2 files changed, 1 deletion(-) rename lib/{ => src}/utils/json_handler.dart (100%) rename lib/{ => src}/utils/log_handler.dart (99%) diff --git a/lib/utils/json_handler.dart b/lib/src/utils/json_handler.dart similarity index 100% rename from lib/utils/json_handler.dart rename to lib/src/utils/json_handler.dart diff --git a/lib/utils/log_handler.dart b/lib/src/utils/log_handler.dart similarity index 99% rename from lib/utils/log_handler.dart rename to lib/src/utils/log_handler.dart index 6e02ae1..f9bdc15 100644 --- a/lib/utils/log_handler.dart +++ b/lib/src/utils/log_handler.dart @@ -1,5 +1,4 @@ import 'dart:developer' as developer; -import 'dart:io'; import 'package:flutter/foundation.dart'; /// Configurable log levels From b05031cd85fb32fc6635aee18f38087fefdae758 Mon Sep 17 00:00:00 2001 From: David Garcia Ruiz Date: Tue, 15 Jul 2025 23:41:03 +0200 Subject: [PATCH 08/18] refactor(json): streamline JSON parsing and serialization, replacing deprecated methods --- lib/src/utils/json_handler.dart | 180 +------- test/utils/json_handler_test.dart | 689 +++++++++--------------------- test/utils/log_handler_test.dart | 2 +- 3 files changed, 222 insertions(+), 649 deletions(-) diff --git a/lib/src/utils/json_handler.dart b/lib/src/utils/json_handler.dart index 624fd29..91a0fe3 100644 --- a/lib/src/utils/json_handler.dart +++ b/lib/src/utils/json_handler.dart @@ -1,169 +1,31 @@ -import 'dart:convert'; - -import 'package:flutter_policy_engine/utils/log_handler.dart'; - -/// A utility class for handling JSON conversions with generic type support. +/// Utility for type-safe JSON conversions with generic support. /// -/// This class provides methods to convert JSON strings to strongly-typed objects -/// and vice versa, with proper error handling and type safety. +/// Provides strongly-typed parsing and serialization to prevent runtime errors +/// when working with dynamic JSON data structures. class JsonHandler { - /// Converts a JSON string to an object of type T. - /// - /// [jsonString] - The JSON string to parse - /// [fromJson] - A factory function that creates an instance of T from a Map - /// - /// Returns an instance of T if successful, null otherwise. - /// - /// Example: - /// ```dart - /// final policy = JsonHandler.fromJson( - /// jsonString, - /// (json) => Policy.fromJson(json), - /// ); - /// ``` - static T? fromJson( - String jsonString, - T Function(Map json) fromJson, - ) { - try { - final Map jsonMap = jsonDecode(jsonString); - return fromJson(jsonMap); - } on FormatException catch (e) { - LogHandler.error('JSON format error: $e'); - return null; - } on TypeError catch (e) { - LogHandler.error('Type conversion error: $e'); - return null; - } catch (e) { - LogHandler.error('Stack trace: ${e.toString()}'); - return null; - } - } - - /// Converts a JSON string to a list of objects of type T. - /// - /// [jsonString] - The JSON string to parse (should be a JSON array) - /// [fromJson] - A factory function that creates an instance of T from a Map - /// - /// Returns a List if successful, empty list otherwise. - /// - /// Example: - /// ```dart - /// final policies = JsonHandler.fromJsonList( - /// jsonString, - /// (json) => Policy.fromJson(json), - /// ); - /// ``` - static List fromJsonList( - String jsonString, - T Function(Map json) fromJson, - ) { - try { - final List jsonList = jsonDecode(jsonString); - return jsonList - .map((item) => fromJson(item as Map)) - .toList(); - } on FormatException catch (e) { - LogHandler.error('JSON format error: $e'); - return []; - } on TypeError catch (e) { - LogHandler.error('Type conversion error: $e'); - return []; - } catch (e) { - LogHandler.error('Stack trace: ${e.toString()}'); - return []; - } - } - - /// Converts an object to a JSON string. - /// - /// [object] - The object to convert - /// [toJson] - A function that converts the object to a Map + /// Converts JSON map to strongly-typed map using provided constructor. /// - /// Returns a JSON string if successful, null otherwise. - /// - /// Example: - /// ```dart - /// final jsonString = JsonHandler.toJson( - /// policy, - /// (policy) => policy.toJson(), - /// ); - /// ``` - static String? toJson( - T object, - Map Function(T object) toJson, + /// Use this when you need to parse a collection of JSON objects into + /// a specific type while maintaining type safety. + static Map parseMap( + Map jsonMap, + T Function(Map) fromJson, ) { - try { - final Map jsonMap = toJson(object); - return jsonEncode(jsonMap); - } on TypeError catch (e) { - LogHandler.error('Type conversion error: $e'); - return null; - } catch (e) { - LogHandler.error('Stack trace: ${e.toString()}'); - return null; - } + return jsonMap.map( + (key, value) => MapEntry(key, fromJson(value as Map)), + ); } - /// Converts a list of objects to a JSON string. - /// - /// [objects] - The list of objects to convert - /// [toJson] - A function that converts an object to a Map + /// Converts typed map to JSON-serializable format using provided serializer. /// - /// Returns a JSON string if successful, null otherwise. - /// - /// Example: - /// ```dart - /// final jsonString = JsonHandler.toJsonList( - /// policies, - /// (policy) => policy.toJson(), - /// ); - /// ``` - static String? toJsonList( - List objects, - Map Function(T object) toJson, + /// Use this when you need to serialize a collection of typed objects + /// back to JSON format for storage or transmission. + static Map mapToJson( + Map items, + Map Function(T) toJson, ) { - try { - final List> jsonList = - objects.map((object) => toJson(object)).toList(); - return jsonEncode(jsonList); - } on TypeError catch (e) { - LogHandler.error('Type conversion error: $e'); - return null; - } catch (e) { - LogHandler.error('Stack trace: ${e.toString()}'); - return null; - } - } - - /// Safely parses a JSON string and returns the raw Map. - /// - /// [jsonString] - The JSON string to parse - /// - /// Returns a Map if successful, null otherwise. - static Map? parseJson(String jsonString) { - try { - return jsonDecode(jsonString) as Map; - } on FormatException catch (e) { - LogHandler.error('JSON format error: $e'); - return null; - } catch (e) { - LogHandler.error('Stack trace: ${e.toString()}'); - return null; - } - } - - /// Validates if a string is valid JSON. - /// - /// [jsonString] - The string to validate - /// - /// Returns true if the string is valid JSON, false otherwise. - static bool isValidJson(String jsonString) { - try { - jsonDecode(jsonString); - return true; - } catch (e) { - return false; - } + return items.map( + (key, value) => MapEntry(key, toJson(value)), + ); } } diff --git a/test/utils/json_handler_test.dart b/test/utils/json_handler_test.dart index c1220ff..db4b4e9 100644 --- a/test/utils/json_handler_test.dart +++ b/test/utils/json_handler_test.dart @@ -1,5 +1,5 @@ import 'package:flutter_test/flutter_test.dart'; -import 'package:flutter_policy_engine/utils/json_handler.dart'; +import 'package:flutter_policy_engine/src/utils/json_handler.dart'; // Test data classes for JSON conversion testing class TestUser { @@ -110,560 +110,271 @@ class TestPolicy { void main() { group('JsonHandler', () { - group('fromJson', () { - test('should convert valid JSON string to object', () { - const jsonString = ''' - { - "name": "John Doe", - "age": 30, - "hobbies": ["reading", "swimming"], - "metadata": {"city": "New York"} - } - '''; - - final result = JsonHandler.fromJson( - jsonString, - (json) => TestUser.fromJson(json), - ); - - expect(result, isNotNull); - expect(result!.name, 'John Doe'); - expect(result.age, 30); - expect(result.hobbies, ['reading', 'swimming']); - expect(result.metadata, {'city': 'New York'}); - }); - - test('should return null for invalid JSON format', () { - const invalidJson = '{"name": "John", "age": 30,}'; // Trailing comma - - final result = JsonHandler.fromJson( - invalidJson, - (json) => TestUser.fromJson(json), - ); - - expect(result, isNull); - }); - - test('should return null for malformed JSON', () { - const malformedJson = - '{"name": "John", "age": "invalid"}'; // age should be int - - final result = JsonHandler.fromJson( - malformedJson, - (json) => TestUser.fromJson(json), - ); - - expect(result, isNull); - }); - - test('should return null for empty string', () { - const emptyString = ''; - - final result = JsonHandler.fromJson( - emptyString, - (json) => TestUser.fromJson(json), - ); - - expect(result, isNull); - }); - - // Note: null string tests removed as JsonHandler doesn't handle null strings - // The method signature requires a non-null String parameter - - test('should handle JSON with missing optional fields', () { - const jsonString = '{"name": "Jane", "age": 25}'; - - final result = JsonHandler.fromJson( - jsonString, - (json) => TestUser.fromJson(json), - ); - - expect(result, isNotNull); - expect(result!.name, 'Jane'); - expect(result.age, 25); - expect(result.hobbies, isEmpty); - expect(result.metadata, isEmpty); - }); - }); - - group('fromJsonList', () { - test('should convert valid JSON array to list of objects', () { - const jsonString = ''' - [ - { - "name": "John Doe", - "age": 30, - "hobbies": ["reading"], - "metadata": {"city": "NYC"} + group('parseMap', () { + test('should convert JSON map to strongly-typed map', () { + final jsonMap = { + 'user1': { + 'name': 'John Doe', + 'age': 30, + 'hobbies': ['reading', 'swimming'], + 'metadata': {'city': 'New York'} }, - { - "name": "Jane Smith", - "age": 25, - "hobbies": ["swimming", "coding"], - "metadata": {"city": "LA"} + 'user2': { + 'name': 'Jane Smith', + 'age': 25, + 'hobbies': ['coding', 'gaming'], + 'metadata': {'city': 'Los Angeles'} } - ] - '''; + }; - final result = JsonHandler.fromJsonList( - jsonString, + final result = JsonHandler.parseMap( + jsonMap, (json) => TestUser.fromJson(json), ); expect(result, hasLength(2)); - expect(result[0].name, 'John Doe'); - expect(result[0].age, 30); - expect(result[1].name, 'Jane Smith'); - expect(result[1].age, 25); - }); - - test('should return empty list for invalid JSON format', () { - const invalidJson = '[{"name": "John", "age": 30,}]'; // Trailing comma - - final result = JsonHandler.fromJsonList( - invalidJson, - (json) => TestUser.fromJson(json), - ); - - expect(result, isEmpty); - }); - - test('should return empty list for malformed JSON', () { - const malformedJson = '[{"name": "John", "age": "invalid"}]'; - - final result = JsonHandler.fromJsonList( - malformedJson, - (json) => TestUser.fromJson(json), - ); - - expect(result, isEmpty); - }); - - test('should return empty list for empty string', () { - const emptyString = ''; - - final result = JsonHandler.fromJsonList( - emptyString, - (json) => TestUser.fromJson(json), - ); - - expect(result, isEmpty); + expect(result['user1']!.name, 'John Doe'); + expect(result['user1']!.age, 30); + expect(result['user1']!.hobbies, ['reading', 'swimming']); + expect(result['user1']!.metadata, {'city': 'New York'}); + expect(result['user2']!.name, 'Jane Smith'); + expect(result['user2']!.age, 25); + expect(result['user2']!.hobbies, ['coding', 'gaming']); + expect(result['user2']!.metadata, {'city': 'Los Angeles'}); }); - // Note: null string tests removed as JsonHandler doesn't handle null strings - // The method signature requires a non-null String parameter - - test('should handle empty JSON array', () { - const emptyArray = '[]'; + test('should handle empty map', () { + final emptyMap = {}; - final result = JsonHandler.fromJsonList( - emptyArray, + final result = JsonHandler.parseMap( + emptyMap, (json) => TestUser.fromJson(json), ); expect(result, isEmpty); }); - test('should handle JSON array with missing optional fields', () { - const jsonString = ''' - [ - {"name": "John", "age": 30}, - {"name": "Jane", "age": 25} - ] - '''; + test('should handle map with missing optional fields', () { + final jsonMap = { + 'user1': { + 'name': 'John Doe', + 'age': 30, + }, + 'user2': { + 'name': 'Jane Smith', + 'age': 25, + } + }; - final result = JsonHandler.fromJsonList( - jsonString, + final result = JsonHandler.parseMap( + jsonMap, (json) => TestUser.fromJson(json), ); expect(result, hasLength(2)); - expect(result[0].hobbies, isEmpty); - expect(result[0].metadata, isEmpty); - expect(result[1].hobbies, isEmpty); - expect(result[1].metadata, isEmpty); - }); - }); - - group('toJson', () { - test('should convert object to valid JSON string', () { - const user = TestUser( - name: 'John Doe', - age: 30, - hobbies: ['reading', 'swimming'], - metadata: {'city': 'New York'}, - ); - - final result = JsonHandler.toJson( - user, - (user) => user.toJson(), - ); - - expect(result, isNotNull); - expect(result, contains('"name":"John Doe"')); - expect(result, contains('"age":30')); - expect(result, contains('"hobbies":["reading","swimming"]')); - expect(result, contains('"metadata":{"city":"New York"}')); - }); - - test('should handle object with empty collections', () { - const user = TestUser( - name: 'Jane Smith', - age: 25, - hobbies: [], - metadata: {}, - ); - - final result = JsonHandler.toJson( - user, - (user) => user.toJson(), - ); - - expect(result, isNotNull); - expect(result, contains('"hobbies":[]')); - expect(result, contains('"metadata":{}')); - }); - - // Note: null object tests removed as JsonHandler doesn't handle null objects - // The method signature requires a non-null object parameter - - test('should handle complex nested objects', () { - const policy = TestPolicy( - roleName: 'admin', - allowedContent: ['read', 'write', 'delete'], - metadata: { - 'permissions': ['user_management', 'system_config'], - 'level': 5, - 'active': true, + expect(result['user1']!.hobbies, isEmpty); + expect(result['user1']!.metadata, isEmpty); + expect(result['user2']!.hobbies, isEmpty); + expect(result['user2']!.metadata, isEmpty); + }); + + test('should handle different object types', () { + final jsonMap = { + 'admin': { + 'roleName': 'admin', + 'allowedContent': ['read', 'write', 'delete'], + 'metadata': {'level': 5, 'active': true} }, - ); + 'user': { + 'roleName': 'user', + 'allowedContent': ['read'], + 'metadata': {'level': 1, 'active': true} + } + }; - final result = JsonHandler.toJson( - policy, - (policy) => policy.toJson(), + final result = JsonHandler.parseMap( + jsonMap, + (json) => TestPolicy.fromJson(json), ); - expect(result, isNotNull); - expect(result, contains('"roleName":"admin"')); - expect(result, contains('"allowedContent":["read","write","delete"]')); - expect(result, - contains('"permissions":["user_management","system_config"]')); - expect(result, contains('"level":5')); - expect(result, contains('"active":true')); + expect(result, hasLength(2)); + expect(result['admin']!.roleName, 'admin'); + expect(result['admin']!.allowedContent, ['read', 'write', 'delete']); + expect(result['admin']!.metadata, {'level': 5, 'active': true}); + expect(result['user']!.roleName, 'user'); + expect(result['user']!.allowedContent, ['read']); + expect(result['user']!.metadata, {'level': 1, 'active': true}); }); }); - group('toJsonList', () { - test('should convert list of objects to valid JSON string', () { - const users = [ - TestUser( - name: 'John Doe', - age: 30, - hobbies: ['reading'], - metadata: {'city': 'NYC'}, - ), - TestUser( - name: 'Jane Smith', - age: 25, - hobbies: ['swimming', 'coding'], - metadata: {'city': 'LA'}, - ), - ]; - - final result = JsonHandler.toJsonList( + group('mapToJson', () { + test('should convert typed map to JSON-serializable map', () { + final users = { + 'user1': const TestUser( + name: 'John Doe', + age: 30, + hobbies: ['reading', 'swimming'], + metadata: {'city': 'New York'}), + 'user2': const TestUser( + name: 'Jane Smith', + age: 25, + hobbies: ['coding', 'gaming'], + metadata: {'city': 'Los Angeles'}) + }; + + final result = JsonHandler.mapToJson( users, (user) => user.toJson(), ); - expect(result, isNotNull); - expect(result, startsWith('[')); - expect(result, endsWith(']')); - expect(result, contains('"name":"John Doe"')); - expect(result, contains('"name":"Jane Smith"')); - }); - - test('should handle empty list', () { - const users = []; - - final result = JsonHandler.toJsonList( - users, + expect(result, hasLength(2)); + expect((result['user1'] as Map)['name'], 'John Doe'); + expect((result['user1'] as Map)['age'], 30); + expect((result['user1'] as Map)['hobbies'], + ['reading', 'swimming']); + expect((result['user1'] as Map)['metadata'], + {'city': 'New York'}); + expect((result['user2'] as Map)['name'], 'Jane Smith'); + expect((result['user2'] as Map)['age'], 25); + expect((result['user2'] as Map)['hobbies'], + ['coding', 'gaming']); + expect((result['user2'] as Map)['metadata'], + {'city': 'Los Angeles'}); + }); + + test('should handle empty map', () { + final emptyMap = {}; + + final result = JsonHandler.mapToJson( + emptyMap, (user) => user.toJson(), ); - expect(result, isNotNull); - expect(result, '[]'); + expect(result, isEmpty); }); - // Note: null list tests removed as JsonHandler doesn't handle null lists - // The method signature requires a non-null List parameter - - test('should handle list with objects containing empty collections', () { - const users = [ - TestUser(name: 'John', age: 30, hobbies: [], metadata: {}), - TestUser(name: 'Jane', age: 25, hobbies: [], metadata: {}), - ]; + test('should handle objects with empty collections', () { + final users = { + 'user1': const TestUser( + name: 'John Doe', age: 30, hobbies: [], metadata: {}), + 'user2': const TestUser( + name: 'Jane Smith', age: 25, hobbies: [], metadata: {}) + }; - final result = JsonHandler.toJsonList( + final result = JsonHandler.mapToJson( users, (user) => user.toJson(), ); - expect(result, isNotNull); - expect(result, contains('"hobbies":[]')); - expect(result, contains('"metadata":{}')); - }); - }); - - group('parseJson', () { - test('should parse valid JSON string to Map', () { - const jsonString = ''' - { - "name": "John Doe", - "age": 30, - "hobbies": ["reading", "swimming"], - "metadata": {"city": "New York"} - } - '''; - - final result = JsonHandler.parseJson(jsonString); - - expect(result, isNotNull); - expect(result!['name'], 'John Doe'); - expect(result['age'], 30); - expect(result['hobbies'], ['reading', 'swimming']); - expect(result['metadata'], {'city': 'New York'}); - }); - - test('should return null for invalid JSON format', () { - const invalidJson = '{"name": "John", "age": 30,}'; // Trailing comma - - final result = JsonHandler.parseJson(invalidJson); - - expect(result, isNull); - }); - - test('should return null for malformed JSON', () { - const malformedJson = '{"name": "John", "age": 30,}'; // Trailing comma - - final result = JsonHandler.parseJson(malformedJson); - - expect(result, isNull); - }); - - test('should return null for empty string', () { - const emptyString = ''; - - final result = JsonHandler.parseJson(emptyString); - - expect(result, isNull); - }); - - // Note: null string tests removed as JsonHandler doesn't handle null strings - // The method signature requires a non-null String parameter - - test('should handle JSON with nested objects', () { - const jsonString = ''' - { - "user": { - "name": "John", - "profile": { - "age": 30, - "preferences": { - "theme": "dark", - "notifications": true - } - } - } - } - '''; - - final result = JsonHandler.parseJson(jsonString); - - expect(result, isNotNull); - expect(result!['user']['name'], 'John'); - expect(result['user']['profile']['age'], 30); - expect(result['user']['profile']['preferences']['theme'], 'dark'); - expect(result['user']['profile']['preferences']['notifications'], true); - }); - }); - - group('isValidJson', () { - test('should return true for valid JSON object', () { - const validJson = '{"name": "John", "age": 30}'; - - final result = JsonHandler.isValidJson(validJson); - - expect(result, isTrue); - }); - - test('should return true for valid JSON array', () { - const validJson = '[{"name": "John"}, {"name": "Jane"}]'; - - final result = JsonHandler.isValidJson(validJson); - - expect(result, isTrue); - }); - - test('should return true for valid JSON with nested structures', () { - const validJson = ''' - { - "users": [ - {"name": "John", "metadata": {"city": "NYC"}}, - {"name": "Jane", "metadata": {"city": "LA"}} - ] - } - '''; - - final result = JsonHandler.isValidJson(validJson); - - expect(result, isTrue); - }); - - test('should return false for invalid JSON format', () { - const invalidJson = '{"name": "John", "age": 30,}'; // Trailing comma - - final result = JsonHandler.isValidJson(invalidJson); - - expect(result, isFalse); - }); - - test('should return false for malformed JSON', () { - const malformedJson = '{"name": "John", "age": 30,}'; // Trailing comma - - final result = JsonHandler.isValidJson(malformedJson); - - expect(result, isFalse); - }); - - test('should return false for empty string', () { - const emptyString = ''; - - final result = JsonHandler.isValidJson(emptyString); - - expect(result, isFalse); - }); - - // Note: null string tests removed as JsonHandler doesn't handle null strings - // The method signature requires a non-null String parameter - - test('should return false for plain text', () { - const plainText = 'This is not JSON'; - - final result = JsonHandler.isValidJson(plainText); - - expect(result, isFalse); - }); - - test('should return false for incomplete JSON', () { - const incompleteJson = '{"name": "John"'; - - final result = JsonHandler.isValidJson(incompleteJson); + expect(result, hasLength(2)); + expect((result['user1'] as Map)['hobbies'], isEmpty); + expect((result['user1'] as Map)['metadata'], isEmpty); + expect((result['user2'] as Map)['hobbies'], isEmpty); + expect((result['user2'] as Map)['metadata'], isEmpty); + }); + + test('should handle different object types', () { + final policies = { + 'admin': const TestPolicy( + roleName: 'admin', + allowedContent: ['read', 'write', 'delete'], + metadata: {'level': 5, 'active': true}), + 'user': const TestPolicy( + roleName: 'user', + allowedContent: ['read'], + metadata: {'level': 1, 'active': true}) + }; + + final result = JsonHandler.mapToJson( + policies, + (policy) => policy.toJson(), + ); - expect(result, isFalse); + expect(result, hasLength(2)); + expect((result['admin'] as Map)['roleName'], 'admin'); + expect((result['admin'] as Map)['allowedContent'], + ['read', 'write', 'delete']); + expect((result['admin'] as Map)['metadata'], + {'level': 5, 'active': true}); + expect((result['user'] as Map)['roleName'], 'user'); + expect((result['user'] as Map)['allowedContent'], + ['read']); + expect((result['user'] as Map)['metadata'], + {'level': 1, 'active': true}); }); }); group('Integration tests', () { - test('should handle round-trip conversion for single object', () { - const originalUser = TestUser( - name: 'John Doe', - age: 30, - hobbies: ['reading', 'swimming'], - metadata: {'city': 'New York', 'country': 'USA'}, - ); - - // Convert to JSON - final jsonString = JsonHandler.toJson( - originalUser, - (user) => user.toJson(), - ); - - expect(jsonString, isNotNull); - - // Convert back from JSON - final convertedUser = JsonHandler.fromJson( - jsonString!, - (json) => TestUser.fromJson(json), - ); - - expect(convertedUser, isNotNull); - expect(convertedUser, equals(originalUser)); - }); - - test('should handle round-trip conversion for list of objects', () { - const originalUsers = [ - TestUser( - name: 'John Doe', - age: 30, - hobbies: ['reading'], - metadata: {'city': 'NYC'}, - ), - TestUser( - name: 'Jane Smith', - age: 25, - hobbies: ['swimming', 'coding'], - metadata: {'city': 'LA'}, - ), - ]; - - // Convert to JSON - final jsonString = JsonHandler.toJsonList( + test('should handle round-trip conversion for map of objects', () { + final originalUsers = { + 'user1': const TestUser( + name: 'John Doe', + age: 30, + hobbies: ['reading', 'swimming'], + metadata: {'city': 'New York', 'country': 'USA'}), + 'user2': const TestUser( + name: 'Jane Smith', + age: 25, + hobbies: ['coding', 'gaming'], + metadata: {'city': 'Los Angeles', 'country': 'USA'}) + }; + + // Convert to JSON map + final jsonMap = JsonHandler.mapToJson( originalUsers, (user) => user.toJson(), ); - expect(jsonString, isNotNull); + expect(jsonMap, hasLength(2)); - // Convert back from JSON - final convertedUsers = JsonHandler.fromJsonList( - jsonString!, + // Convert back from JSON map + final convertedUsers = JsonHandler.parseMap( + jsonMap, (json) => TestUser.fromJson(json), ); expect(convertedUsers, hasLength(2)); - expect(convertedUsers[0], equals(originalUsers[0])); - expect(convertedUsers[1], equals(originalUsers[1])); - }); + expect(convertedUsers['user1'], equals(originalUsers['user1'])); + expect(convertedUsers['user2'], equals(originalUsers['user2'])); + }); + + test('should handle round-trip conversion for policy map', () { + final originalPolicies = { + 'admin': const TestPolicy(roleName: 'admin', allowedContent: [ + 'read', + 'write', + 'delete' + ], metadata: { + 'permissions': ['user_management'], + 'level': 5, + 'active': true, + }), + 'user': const TestPolicy(roleName: 'user', allowedContent: [ + 'read' + ], metadata: { + 'permissions': ['basic_access'], + 'level': 1, + 'active': true, + }) + }; - test('should handle complex nested structures', () { - const originalPolicies = [ - TestPolicy( - roleName: 'admin', - allowedContent: ['read', 'write', 'delete'], - metadata: { - 'permissions': ['user_management'], - 'level': 5, - 'active': true, - }, - ), - TestPolicy( - roleName: 'user', - allowedContent: ['read'], - metadata: { - 'permissions': ['basic_access'], - 'level': 1, - 'active': true, - }, - ), - ]; - - // Convert to JSON - final jsonString = JsonHandler.toJsonList( + // Convert to JSON map + final jsonMap = JsonHandler.mapToJson( originalPolicies, (policy) => policy.toJson(), ); - expect(jsonString, isNotNull); + expect(jsonMap, hasLength(2)); - // Convert back from JSON - final convertedPolicies = JsonHandler.fromJsonList( - jsonString!, + // Convert back from JSON map + final convertedPolicies = JsonHandler.parseMap( + jsonMap, (json) => TestPolicy.fromJson(json), ); expect(convertedPolicies, hasLength(2)); - expect(convertedPolicies[0], equals(originalPolicies[0])); - expect(convertedPolicies[1], equals(originalPolicies[1])); + expect(convertedPolicies['admin'], equals(originalPolicies['admin'])); + expect(convertedPolicies['user'], equals(originalPolicies['user'])); }); }); }); diff --git a/test/utils/log_handler_test.dart b/test/utils/log_handler_test.dart index f2ea897..1b10d91 100644 --- a/test/utils/log_handler_test.dart +++ b/test/utils/log_handler_test.dart @@ -1,5 +1,5 @@ import 'package:flutter_test/flutter_test.dart'; -import 'package:flutter_policy_engine/utils/log_handler.dart'; +import 'package:flutter_policy_engine/src/utils/log_handler.dart'; void main() { group('LogHandler', () { From 2ea9d97af43501509c4eff95368a2e4924c65276 Mon Sep 17 00:00:00 2001 From: David Garcia Ruiz Date: Wed, 16 Jul 2025 00:15:56 +0200 Subject: [PATCH 09/18] refactor(policy): consolidate policy management and evaluation and enhancing PolicyManager --- lib/core/interfaces/i_policy_evaluator.dart | 6 - lib/core/interfaces/i_policy_storage.dart | 8 - lib/core/policy_manager.dart | 21 -- lib/core/role_evaluator.dart | 16 - lib/models/policy.dart | 43 --- .../core/interfaces/i_policy_evaluator.dart | 41 +++ lib/src/core/interfaces/i_policy_storage.dart | 42 +++ lib/src/core/memory_policy_storage.dart | 75 +++++ lib/src/core/policy_manager.dart | 132 +++++++++ lib/src/core/role_evaluator.dart | 75 +++++ lib/src/exceptions/policy_sdk_exceptions.dart | 114 +++++++ lib/src/models/policy.dart | 158 ++++++++++ lib/src/utils/json_handler.dart | 249 +++++++++++++++- test/utils/json_handler_test.dart | 280 ++++++++++++++++++ 14 files changed, 1158 insertions(+), 102 deletions(-) delete mode 100644 lib/core/interfaces/i_policy_evaluator.dart delete mode 100644 lib/core/interfaces/i_policy_storage.dart delete mode 100644 lib/core/policy_manager.dart delete mode 100644 lib/core/role_evaluator.dart delete mode 100644 lib/models/policy.dart create mode 100644 lib/src/core/interfaces/i_policy_evaluator.dart create mode 100644 lib/src/core/interfaces/i_policy_storage.dart create mode 100644 lib/src/core/memory_policy_storage.dart create mode 100644 lib/src/core/policy_manager.dart create mode 100644 lib/src/core/role_evaluator.dart create mode 100644 lib/src/exceptions/policy_sdk_exceptions.dart create mode 100644 lib/src/models/policy.dart diff --git a/lib/core/interfaces/i_policy_evaluator.dart b/lib/core/interfaces/i_policy_evaluator.dart deleted file mode 100644 index bd20e59..0000000 --- a/lib/core/interfaces/i_policy_evaluator.dart +++ /dev/null @@ -1,6 +0,0 @@ -import 'package:meta/meta.dart'; - -@immutable -abstract class IPolicyEvaluator { - Future evaluate(String roleName, String content); -} diff --git a/lib/core/interfaces/i_policy_storage.dart b/lib/core/interfaces/i_policy_storage.dart deleted file mode 100644 index ea92973..0000000 --- a/lib/core/interfaces/i_policy_storage.dart +++ /dev/null @@ -1,8 +0,0 @@ -import 'package:meta/meta.dart'; - -@immutable -abstract class IPolicyStorage { - Future> loadPolicies(); - Future savePolicies(Map policies); - Future clearPolicies(); -} diff --git a/lib/core/policy_manager.dart b/lib/core/policy_manager.dart deleted file mode 100644 index 578d727..0000000 --- a/lib/core/policy_manager.dart +++ /dev/null @@ -1,21 +0,0 @@ -import 'package:flutter/foundation.dart'; -import 'package:flutter_policy_engine/core/interfaces/i_policy_storage.dart'; -import 'package:flutter_policy_engine/models/policy.dart'; - -class PolicyManager extends ChangeNotifier { - PolicyManager({ - required this.storage, - }); - - final IPolicyStorage storage; - Map _policies = {}; - bool _isInitialized = false; - - bool get isInitialized => _isInitialized; - - Map get policies => Map.unmodifiable(_policies); - - Future loadPolicies() async { - throw UnimplementedError(); - } -} diff --git a/lib/core/role_evaluator.dart b/lib/core/role_evaluator.dart deleted file mode 100644 index 117f2b5..0000000 --- a/lib/core/role_evaluator.dart +++ /dev/null @@ -1,16 +0,0 @@ -import 'package:flutter_policy_engine/core/interfaces/i_policy_evaluator.dart'; -import 'package:flutter_policy_engine/models/policy.dart'; -import 'package:meta/meta.dart'; - -@immutable -class RoleEvaluator implements IPolicyEvaluator { - const RoleEvaluator(this._policies); - - final Map _policies; - - @override - Future evaluate(String roleName, String content) { - // TODO: implement evaluate - throw UnimplementedError(); - } -} diff --git a/lib/models/policy.dart b/lib/models/policy.dart deleted file mode 100644 index 1b5843f..0000000 --- a/lib/models/policy.dart +++ /dev/null @@ -1,43 +0,0 @@ -import 'package:meta/meta.dart'; - -@immutable -class Policy { - const Policy({ - required this.roleName, - required this.allowedContent, - this.metadata = const {}, - }); - - final String roleName; - final List allowedContent; - final Map metadata; - - Policy copyWith({ - String? roleName, - List? allowedContent, - Map? metadata, - }) => - Policy( - roleName: roleName ?? this.roleName, - allowedContent: allowedContent ?? this.allowedContent, - metadata: metadata ?? this.metadata, - ); - - bool isContentAllowed(String content) => allowedContent.contains(content); - - @override - bool operator ==(Object other) => - identical(this, other) || - other is Policy && - roleName == other.roleName && - allowedContent.length == other.allowedContent.length && - allowedContent - .every((content) => other.allowedContent.contains(content)); - - @override - int get hashCode => roleName.hashCode ^ allowedContent.hashCode; - - @override - String toString() => - 'Policy(roleName: $roleName, allowedContent: $allowedContent, metadata: $metadata)'; -} diff --git a/lib/src/core/interfaces/i_policy_evaluator.dart b/lib/src/core/interfaces/i_policy_evaluator.dart new file mode 100644 index 0000000..0c18ea7 --- /dev/null +++ b/lib/src/core/interfaces/i_policy_evaluator.dart @@ -0,0 +1,41 @@ +import 'package:meta/meta.dart'; + +/// Abstract interface for evaluating policies based on role and content. +/// +/// This interface defines the contract for policy evaluation implementations +/// that determine whether a given role has permission to access specific content. +/// Implementations should provide the logic for checking role-based access control +/// according to defined policy rules. +/// +/// Example usage: +/// ```dart +/// class SimplePolicyEvaluator implements IPolicyEvaluator { +/// @override +/// bool evaluate(String roleName, String content) { +/// // Implementation logic here +/// return true; +/// } +/// } +/// ``` +@immutable +abstract class IPolicyEvaluator { + /// Evaluates whether a role has permission to access specific content. + /// + /// This method performs the core policy evaluation logic by checking + /// if the specified role has the necessary permissions to access the + /// given content according to the defined policy rules. + /// + /// [roleName] The name of the role to evaluate permissions for. + /// Must not be null or empty. + /// + /// [content] The content identifier or path to check access for. + /// Must not be null or empty. + /// + /// Returns `true` if the role has permission to access the content, + /// `false` otherwise. + /// + /// Throws: + /// - [ArgumentError] if [roleName] or [content] is null or empty + /// - [StateError] if the policy evaluator is not properly initialized + bool evaluate(String roleName, String content); +} diff --git a/lib/src/core/interfaces/i_policy_storage.dart b/lib/src/core/interfaces/i_policy_storage.dart new file mode 100644 index 0000000..2a37168 --- /dev/null +++ b/lib/src/core/interfaces/i_policy_storage.dart @@ -0,0 +1,42 @@ +import 'package:meta/meta.dart'; + +/// Abstract interface for policy storage operations. +/// +/// This interface defines the contract for storing and retrieving policy data +/// in the Flutter Policy Engine. Implementations can provide different storage +/// backends such as local file storage, secure storage, or remote storage. +/// +/// All methods are asynchronous to support various storage mechanisms that +/// may require I/O operations. +@immutable +abstract class IPolicyStorage { + /// Loads all policies from storage. + /// + /// Returns a [Map] containing the policy data where: + /// - Keys represent policy identifiers + /// - Values represent the policy configuration and rules + /// + /// Throws a [StateError] if the storage is not accessible or corrupted. + /// Returns an empty map if no policies are stored. + Future> loadPolicies(); + + /// Saves policies to storage. + /// + /// [policies] should be a [Map] where: + /// - Keys represent policy identifiers + /// - Values represent the policy configuration and rules + /// + /// This method will overwrite any existing policies in storage. + /// Throws a [StateError] if the storage is not writable or if the data + /// format is invalid. + Future savePolicies(Map policies); + + /// Removes all policies from storage. + /// + /// This operation is irreversible and will permanently delete all stored + /// policy data. Use with caution. + /// + /// Throws a [StateError] if the storage is not accessible or if the + /// clear operation fails. + Future clearPolicies(); +} diff --git a/lib/src/core/memory_policy_storage.dart b/lib/src/core/memory_policy_storage.dart new file mode 100644 index 0000000..5a1e7fc --- /dev/null +++ b/lib/src/core/memory_policy_storage.dart @@ -0,0 +1,75 @@ +import 'package:flutter_policy_engine/src/core/interfaces/i_policy_storage.dart'; + +/// An in-memory implementation of [IPolicyStorage] that stores policies +/// in a Map during the application's runtime. +/// +/// This storage implementation is suitable for: +/// - Testing scenarios where persistence is not required +/// - Temporary policy storage during development +/// - Cases where policies are loaded at startup and don't need to persist +/// between application sessions +/// +/// **Note:** All data stored in this implementation will be lost when the +/// application is terminated or the object is garbage collected. +class MemoryPolicyStorage implements IPolicyStorage { + /// Internal storage for policies using a Map with String keys and dynamic values. + /// + /// The Map structure allows for flexible policy storage where keys represent + /// policy identifiers and values contain the policy data. + Map _policies = {}; + + /// Loads all stored policies from memory. + /// + /// Returns a copy of the internal policies map to prevent external + /// modifications from affecting the internal state. + /// + /// **Returns:** A [Future] that completes with a [Map] + /// containing all stored policies. + /// + /// **Example:** + /// ```dart + /// final storage = MemoryPolicyStorage(); + /// final policies = await storage.loadPolicies(); + /// print('Loaded ${policies.length} policies'); + /// ``` + @override + Future> loadPolicies() async { + return Map.from(_policies); + } + + /// Saves the provided policies to memory storage. + /// + /// Creates a deep copy of the input policies to ensure the internal + /// storage is not affected by subsequent modifications to the input map. + /// + /// **Parameters:** + /// - [policies]: A [Map] containing the policies to store. + /// Keys should be policy identifiers and values should contain policy data. + /// + /// **Example:** + /// ```dart + /// final storage = MemoryPolicyStorage(); + /// final policies = {'user_policy': {'role': 'admin'}}; + /// await storage.savePolicies(policies); + /// ``` + @override + Future savePolicies(Map policies) async { + _policies = Map.from(policies); + } + + /// Removes all stored policies from memory. + /// + /// This operation is immediate and irreversible. All policy data + /// will be permanently lost after calling this method. + /// + /// **Example:** + /// ```dart + /// final storage = MemoryPolicyStorage(); + /// await storage.clearPolicies(); + /// // All policies have been removed + /// ``` + @override + Future clearPolicies() async { + _policies.clear(); + } +} diff --git a/lib/src/core/policy_manager.dart b/lib/src/core/policy_manager.dart new file mode 100644 index 0000000..e8be36a --- /dev/null +++ b/lib/src/core/policy_manager.dart @@ -0,0 +1,132 @@ +import 'package:flutter/foundation.dart'; +import 'package:flutter_policy_engine/src/core/interfaces/i_policy_evaluator.dart'; +import 'package:flutter_policy_engine/src/core/interfaces/i_policy_storage.dart'; +import 'package:flutter_policy_engine/src/core/memory_policy_storage.dart'; +import 'package:flutter_policy_engine/src/core/role_evaluator.dart'; +import 'package:flutter_policy_engine/src/models/policy.dart'; +import 'package:flutter_policy_engine/src/utils/json_handler.dart'; +import 'package:flutter_policy_engine/src/utils/log_handler.dart'; + +/// Manages policy lifecycle and provides centralized access to policy operations. +/// +/// The [PolicyManager] serves as the main entry point for policy-related operations, +/// coordinating between storage, evaluation, and policy state management. It extends +/// [ChangeNotifier] to notify listeners of policy state changes. +/// +/// Example usage: +/// ```dart +/// final policyManager = PolicyManager( +/// storage: MyPolicyStorage(), +/// evaluator: MyPolicyEvaluator(), +/// ); +/// +/// await policyManager.initialize(policyJsonData); +/// ``` +class PolicyManager extends ChangeNotifier { + /// Creates a new [PolicyManager] instance. + /// + /// [storage] is responsible for persisting and retrieving policy data. + /// [evaluator] handles policy evaluation logic and decision making. + PolicyManager({ + IPolicyStorage? storage, + IPolicyEvaluator? evaluator, + }) : _storage = storage ?? MemoryPolicyStorage(), + _evaluator = evaluator; + + /// The storage implementation for policy persistence. + final IPolicyStorage _storage; + + /// The evaluator implementation for policy decision making. + IPolicyEvaluator? _evaluator; + + /// Internal cache of loaded policies, keyed by policy identifier. + Map _policies = {}; + + /// Indicates whether the policy manager has been initialized with policy data. + bool _isInitialized = false; + + /// Returns whether the policy manager has been initialized. + /// + /// Returns `true` if [initialize] has been called successfully, `false` otherwise. + bool get isInitialized => _isInitialized; + + /// Returns an unmodifiable view of all loaded policies. + /// + /// The returned map cannot be modified directly. Use [initialize] to update + /// the policy collection. + Map get policies => Map.unmodifiable(_policies); + + /// Initializes the policy manager with policy data from JSON. + /// + /// Parses the provided [jsonPolicies] and loads them into the internal cache. + /// This method should be called before using any policy-related functionality. + /// + /// [jsonPolicies] should be a map where keys are policy identifiers and values + /// are JSON representations of [Policy] objects. + /// + /// Throws: + /// - [JsonParseException] if policy parsing fails completely + /// - [FormatException] if the JSON data is malformed + /// - [ArgumentError] if policy parsing fails + Future initialize(Map jsonPolicies) async { + try { + LogHandler.info( + 'Initializing policy manager', + context: { + 'policy_count': jsonPolicies.length, + 'policy_keys': jsonPolicies.keys.take(5).toList(), + }, + operation: 'policy_manager_initialize', + ); + + _policies = JsonHandler.parseMap( + jsonPolicies, + (json) => Policy.fromJson(json), + context: 'policy_manager', + allowPartialSuccess: + true, // Allow partial success for graceful degradation + ); + + // Only create evaluator if we have at least some policies + if (_policies.isNotEmpty) { + _evaluator = RoleEvaluator(_policies); + await _storage.savePolicies(_policies); + _isInitialized = true; + + LogHandler.info( + 'Policy manager initialized successfully', + context: { + 'loaded_policies': _policies.length, + 'total_policies': jsonPolicies.length, + }, + operation: 'policy_manager_initialized', + ); + } else { + LogHandler.warning( + 'Policy manager initialized with no valid policies', + context: { + 'total_policies': jsonPolicies.length, + }, + operation: 'policy_manager_empty', + ); + // Still mark as initialized but with empty policies + _isInitialized = true; + } + + notifyListeners(); + } catch (e, stackTrace) { + LogHandler.error( + 'Failed to initialize policy manager', + error: e, + stackTrace: stackTrace, + context: { + 'policy_count': jsonPolicies.length, + }, + operation: 'policy_manager_initialize_error', + ); + + // Re-throw to allow caller to handle the error + rethrow; + } + } +} diff --git a/lib/src/core/role_evaluator.dart b/lib/src/core/role_evaluator.dart new file mode 100644 index 0000000..cfdc3f4 --- /dev/null +++ b/lib/src/core/role_evaluator.dart @@ -0,0 +1,75 @@ +import 'package:flutter_policy_engine/src/core/interfaces/i_policy_evaluator.dart'; +import 'package:flutter_policy_engine/src/models/policy.dart'; +import 'package:meta/meta.dart'; + +/// A policy evaluator that determines access permissions based on role-based policies. +/// +/// The [RoleEvaluator] implements the [IPolicyEvaluator] interface to provide +/// role-based access control functionality. It evaluates whether content is +/// allowed for a specific role by checking against predefined policies. +/// +/// Each role is associated with a [Policy] that defines the rules for content +/// evaluation. If no policy exists for a given role, access is denied by default. +/// +/// Example usage: +/// ```dart +/// final policies = { +/// 'admin': Policy(...), +/// 'user': Policy(...), +/// }; +/// final evaluator = RoleEvaluator(policies); +/// final hasAccess = evaluator.evaluate('admin', 'sensitive_content'); +/// ``` +@immutable +class RoleEvaluator implements IPolicyEvaluator { + /// Creates a new [RoleEvaluator] with the specified policies. + /// + /// The [policies] parameter should contain a mapping of role names to their + /// corresponding [Policy] objects. Each policy defines the rules for content + /// evaluation for that specific role. + /// + /// Throws an [ArgumentError] if [policies] is null. + const RoleEvaluator(this._policies); + + /// The collection of policies mapped by role name. + /// + /// This map contains all available policies that can be evaluated by this + /// evaluator. The key is the role name and the value is the corresponding + /// [Policy] object. + final Map _policies; + + /// Evaluates whether the specified content is allowed for the given role. + /// + /// This method checks if a policy exists for the [roleName] and then + /// evaluates whether the [content] is allowed according to that policy's rules. + /// + /// Returns `true` if: + /// - A policy exists for the [roleName] + /// - The policy's [Policy.isContentAllowed] method returns `true` for the [content] + /// + /// Returns `false` if: + /// - No policy exists for the [roleName] + /// - The policy's [Policy.isContentAllowed] method returns `false` for the [content] + /// + /// Parameters: + /// - [roleName]: The name of the role to evaluate permissions for + /// - [content]: The content to check against the role's policy + /// + /// Returns `true` if the content is allowed for the role, `false` otherwise. + /// + /// Example: + /// ```dart + /// final hasAccess = evaluator.evaluate('admin', 'confidential_document'); + /// if (hasAccess) { + /// // Allow access to confidential document + /// } + /// ``` + @override + bool evaluate(String roleName, String content) { + final policy = _policies[roleName]; + if (policy == null) { + return false; + } + return policy.isContentAllowed(content); + } +} diff --git a/lib/src/exceptions/policy_sdk_exceptions.dart b/lib/src/exceptions/policy_sdk_exceptions.dart new file mode 100644 index 0000000..5444788 --- /dev/null +++ b/lib/src/exceptions/policy_sdk_exceptions.dart @@ -0,0 +1,114 @@ +/// Base exception class for all policy SDK related errors. +/// +/// This abstract class provides a common interface for all exceptions +/// thrown by the policy engine, ensuring consistent error handling +/// and messaging across the SDK. +abstract class PolicySDKException implements Exception { + /// Creates a new PolicySDKException with the given error message. + /// + /// [message] should provide a clear description of what went wrong. + const PolicySDKException(this.message); + + /// The error message describing the exception. + final String message; + + @override + String toString() => 'PolicySDKException: $message'; +} + +/// Exception thrown when JSON parsing fails during policy evaluation. +/// +/// This exception is raised when the policy engine encounters malformed +/// or invalid JSON data that cannot be parsed into the expected format. +/// It provides detailed context about the parsing failure including +/// the specific key that failed, the original error, and any additional +/// validation errors. +class JsonParseException implements PolicySDKException { + @override + final String message; + + /// The specific JSON key that caused the parsing failure, if applicable. + final String? key; + + /// The original error object from the JSON parsing library. + final Object? originalError; + + /// A map of field-specific validation errors encountered during parsing. + final Map? errors; + + /// Creates a new JsonParseException. + /// + /// [message] should describe the parsing failure. + /// [key] optionally specifies which JSON key caused the failure. + /// [originalError] optionally provides the original parsing error. + /// [errors] optionally provides a map of field-specific validation errors. + JsonParseException( + this.message, { + this.key, + this.originalError, + this.errors, + }); + + @override + String toString() { + final buffer = StringBuffer('JsonParseException: $message'); + if (key != null) { + buffer.write(' (key: $key)'); + } + if (originalError != null) { + buffer.write(' (original: $originalError)'); + } + if (errors != null && errors!.isNotEmpty) { + buffer.write(' (${errors!.length} total errors)'); + } + return buffer.toString(); + } +} + +/// Exception thrown when JSON serialization fails during policy operations. +/// +/// This exception is raised when the policy engine cannot serialize +/// policy objects or data structures to JSON format. This typically +/// occurs when policy objects contain non-serializable data types +/// or circular references. +class JsonSerializeException implements PolicySDKException { + @override + final String message; + + /// The specific object key that caused the serialization failure, if applicable. + final String? key; + + /// The original error object from the JSON serialization library. + final Object? originalError; + + /// A map of field-specific serialization errors encountered. + final Map? errors; + + /// Creates a new JsonSerializeException. + /// + /// [message] should describe the serialization failure. + /// [key] optionally specifies which object key caused the failure. + /// [originalError] optionally provides the original serialization error. + /// [errors] optionally provides a map of field-specific serialization errors. + JsonSerializeException( + this.message, { + this.key, + this.originalError, + this.errors, + }); + + @override + String toString() { + final buffer = StringBuffer('JsonSerializeException: $message'); + if (key != null) { + buffer.write(' (key: $key)'); + } + if (originalError != null) { + buffer.write(' (original: $originalError)'); + } + if (errors != null && errors!.isNotEmpty) { + buffer.write(' (${errors!.length} total errors)'); + } + return buffer.toString(); + } +} diff --git a/lib/src/models/policy.dart b/lib/src/models/policy.dart new file mode 100644 index 0000000..ebcc4ad --- /dev/null +++ b/lib/src/models/policy.dart @@ -0,0 +1,158 @@ +import 'package:meta/meta.dart'; + +/// Represents a policy that defines content access permissions for a specific role. +/// +/// A policy consists of a role name, a list of allowed content types or actions, +/// and optional metadata for additional configuration. Policies are used by the +/// policy engine to determine whether a user with a specific role can access +/// certain content or perform specific actions. +/// +/// Example: +/// ```dart +/// final policy = Policy( +/// roleName: 'admin', +/// allowedContent: ['read', 'write', 'delete'], +/// metadata: {'priority': 'high', 'expiresAt': '2024-12-31'}, +/// ); +/// ``` +@immutable +class Policy { + /// Creates a new policy with the specified role name and allowed content. + /// + /// The [roleName] identifies the role this policy applies to. + /// The [allowedContent] list contains the content types or actions that are + /// permitted for this role. The [metadata] provides additional configuration + /// options and defaults to an empty map if not specified. + /// + /// Throws an [ArgumentError] if [roleName] is empty or [allowedContent] is null. + const Policy({ + required this.roleName, + required this.allowedContent, + this.metadata = const {}, + }); + + /// The name of the role this policy applies to. + /// + /// This should be a unique identifier for the role within your application. + final String roleName; + + /// List of content types or actions that are allowed for this role. + /// + /// Each string in this list represents a permission or content type that + /// users with this role can access or perform. + final List allowedContent; + + /// Additional configuration data for this policy. + /// + /// This map can contain any additional information needed to configure + /// the policy behavior, such as expiration dates, priority levels, or + /// other metadata. + final Map metadata; + + /// Creates a copy of this policy with the given fields replaced by new values. + /// + /// Returns a new [Policy] instance with the same values as this one, + /// except for the fields that are explicitly provided in the parameters. + /// + /// Example: + /// ```dart + /// final updatedPolicy = policy.copyWith( + /// allowedContent: ['read', 'write'], + /// metadata: {'priority': 'low'}, + /// ); + /// ``` + Policy copyWith({ + String? roleName, + List? allowedContent, + Map? metadata, + }) => + Policy( + roleName: roleName ?? this.roleName, + allowedContent: allowedContent ?? this.allowedContent, + metadata: metadata ?? this.metadata, + ); + + /// Checks if the specified content is allowed for this policy. + /// + /// Returns `true` if [content] is present in the [allowedContent] list, + /// `false` otherwise. + /// + /// Example: + /// ```dart + /// if (policy.isContentAllowed('read')) { + /// // User can read content + /// } + /// ``` + bool isContentAllowed(String content) => allowedContent.contains(content); + + /// Compares this policy with another object for equality. + /// + /// Two policies are considered equal if they have the same [roleName] and + /// the same [allowedContent] (regardless of order). The [metadata] is not + /// considered in the equality comparison. + @override + bool operator ==(Object other) => + identical(this, other) || + other is Policy && + roleName == other.roleName && + allowedContent.length == other.allowedContent.length && + allowedContent + .every((content) => other.allowedContent.contains(content)); + + /// Returns the hash code for this policy. + /// + /// The hash code is based on the [roleName] and [allowedContent] fields. + @override + int get hashCode => roleName.hashCode ^ allowedContent.hashCode; + + /// Returns a string representation of this policy. + /// + /// The string includes the role name, allowed content, and metadata. + @override + String toString() => + 'Policy(roleName: $roleName, allowedContent: $allowedContent, metadata: $metadata)'; + + /// Creates a [Policy] instance from a JSON map. + /// + /// The JSON map should contain: + /// - `roleName`: A string representing the role name + /// - `allowedContent`: A list of strings representing allowed content + /// - `metadata`: A map of string keys to dynamic values (optional) + /// + /// Throws a [FormatException] if the JSON structure is invalid. + /// + /// Example: + /// ```dart + /// final json = { + /// 'roleName': 'user', + /// 'allowedContent': ['read'], + /// 'metadata': {'priority': 'normal'}, + /// }; + /// final policy = Policy.fromJson(json); + /// ``` + factory Policy.fromJson(Map json) => Policy( + roleName: json['roleName'] as String, + allowedContent: json['allowedContent'] as List, + metadata: json['metadata'] as Map, + ); + + /// Converts this policy to a JSON map. + /// + /// Returns a map containing the role name, allowed content, and metadata + /// that can be serialized to JSON. + /// + /// Example: + /// ```dart + /// final json = policy.toJson(); + /// // json = { + /// // 'roleName': 'admin', + /// // 'allowedContent': ['read', 'write'], + /// // 'metadata': {'priority': 'high'}, + /// // } + /// ``` + Map toJson() => { + 'roleName': roleName, + 'allowedContent': allowedContent, + 'metadata': metadata, + }; +} diff --git a/lib/src/utils/json_handler.dart b/lib/src/utils/json_handler.dart index 91a0fe3..1afd265 100644 --- a/lib/src/utils/json_handler.dart +++ b/lib/src/utils/json_handler.dart @@ -1,31 +1,264 @@ +import 'package:flutter_policy_engine/src/exceptions/policy_sdk_exceptions.dart'; +import 'package:flutter_policy_engine/src/utils/log_handler.dart'; + /// Utility for type-safe JSON conversions with generic support. /// /// Provides strongly-typed parsing and serialization to prevent runtime errors /// when working with dynamic JSON data structures. +/// +/// Includes comprehensive error handling and logging for debugging and monitoring. class JsonHandler { /// Converts JSON map to strongly-typed map using provided constructor. /// /// Use this when you need to parse a collection of JSON objects into /// a specific type while maintaining type safety. + /// + /// Returns a map containing successfully parsed items. Failed items are logged + /// and skipped, allowing partial success scenarios. + /// + /// Throws [JsonParseException] if no items could be parsed successfully. static Map parseMap( Map jsonMap, - T Function(Map) fromJson, - ) { - return jsonMap.map( - (key, value) => MapEntry(key, fromJson(value as Map)), + T Function(Map) fromJson, { + String? context, + bool allowPartialSuccess = true, + }) { + final result = {}; + final errors = {}; + + LogHandler.debug( + 'Starting JSON map parsing', + context: { + 'total_items': jsonMap.length, + 'context': context ?? 'unknown', + 'allow_partial_success': allowPartialSuccess, + }, + operation: 'json_parse_map', + ); + + for (final entry in jsonMap.entries) { + final key = entry.key; + final value = entry.value; + + try { + // Validate value is a map before casting + if (value is! Map) { + throw TypeError(); + } + + final parsed = fromJson(value); + result[key] = parsed; + + LogHandler.debug( + 'Successfully parsed item', + context: {'key': key, 'type': T.toString()}, + operation: 'json_parse_item', + ); + } catch (e, stackTrace) { + final errorMessage = + 'Failed to parse item with key "$key": ${e.toString()}'; + errors[key] = errorMessage; + + LogHandler.error( + errorMessage, + error: e, + stackTrace: stackTrace, + context: { + 'key': key, + 'value_type': value.runtimeType.toString(), + 'expected_type': 'Map', + 'context': context ?? 'unknown', + }, + operation: 'json_parse_error', + ); + + if (!allowPartialSuccess) { + throw JsonParseException( + 'Failed to parse item "$key": ${e.toString()}', + key: key, + originalError: e, + ); + } + } + } + + // Log summary + LogHandler.info( + 'JSON map parsing completed', + context: { + 'total_items': jsonMap.length, + 'successful_items': result.length, + 'failed_items': errors.length, + 'context': context ?? 'unknown', + }, + operation: 'json_parse_complete', ); + + // If no items were parsed successfully and partial success is not allowed + if (result.isEmpty && !allowPartialSuccess) { + final errorSummary = + errors.entries.take(3).map((e) => '${e.key}: ${e.value}').join(', '); + + throw JsonParseException( + 'Failed to parse any items. First few errors: $errorSummary', + errors: errors, + ); + } + + // Log errors summary if any + if (errors.isNotEmpty) { + LogHandler.warning( + 'Some items failed to parse', + context: { + 'failed_count': errors.length, + 'failed_keys': errors.keys.take(5).toList(), + 'context': context ?? 'unknown', + }, + operation: 'json_parse_partial_failure', + ); + } + + return result; } /// Converts typed map to JSON-serializable format using provided serializer. /// /// Use this when you need to serialize a collection of typed objects /// back to JSON format for storage or transmission. + /// + /// Returns a map containing successfully serialized items. Failed items are logged + /// and skipped, allowing partial success scenarios. + /// + /// Throws [JsonSerializeException] if no items could be serialized successfully. static Map mapToJson( Map items, - Map Function(T) toJson, - ) { - return items.map( - (key, value) => MapEntry(key, toJson(value)), + Map Function(T) toJson, { + String? context, + bool allowPartialSuccess = true, + }) { + final result = {}; + final errors = {}; + + LogHandler.debug( + 'Starting JSON map serialization', + context: { + 'total_items': items.length, + 'context': context ?? 'unknown', + 'allow_partial_success': allowPartialSuccess, + }, + operation: 'json_serialize_map', + ); + + for (final entry in items.entries) { + final key = entry.key; + final value = entry.value; + + try { + final serialized = toJson(value); + result[key] = serialized; + + LogHandler.debug( + 'Successfully serialized item', + context: {'key': key, 'type': T.toString()}, + operation: 'json_serialize_item', + ); + } catch (e, stackTrace) { + final errorMessage = + 'Failed to serialize item with key "$key": ${e.toString()}'; + errors[key] = errorMessage; + + LogHandler.error( + errorMessage, + error: e, + stackTrace: stackTrace, + context: { + 'key': key, + 'value_type': value.runtimeType.toString(), + 'context': context ?? 'unknown', + }, + operation: 'json_serialize_error', + ); + + if (!allowPartialSuccess) { + throw JsonSerializeException( + 'Failed to serialize item "$key": ${e.toString()}', + key: key, + originalError: e, + ); + } + } + } + + // Log summary + LogHandler.info( + 'JSON map serialization completed', + context: { + 'total_items': items.length, + 'successful_items': result.length, + 'failed_items': errors.length, + 'context': context ?? 'unknown', + }, + operation: 'json_serialize_complete', ); + + // If no items were serialized successfully and partial success is not allowed + if (result.isEmpty && !allowPartialSuccess) { + final errorSummary = + errors.entries.take(3).map((e) => '${e.key}: ${e.value}').join(', '); + + throw JsonSerializeException( + 'Failed to serialize any items. First few errors: $errorSummary', + errors: errors, + ); + } + + // Log errors summary if any + if (errors.isNotEmpty) { + LogHandler.warning( + 'Some items failed to serialize', + context: { + 'failed_count': errors.length, + 'failed_keys': errors.keys.take(5).toList(), + 'context': context ?? 'unknown', + }, + operation: 'json_serialize_partial_failure', + ); + } + + return result; + } + + /// Validates if a value can be safely cast to Map + static bool isValidJsonMap(dynamic value) { + return value is Map; + } + + /// Safely attempts to parse a single JSON object + static T? tryParse( + Map json, + T Function(Map) fromJson, { + String? context, + }) { + try { + final result = fromJson(json); + LogHandler.debug( + 'Successfully parsed single item', + context: {'type': T.toString(), 'context': context ?? 'unknown'}, + operation: 'json_parse_single', + ); + return result; + } catch (e, stackTrace) { + LogHandler.error( + 'Failed to parse single item', + error: e, + stackTrace: stackTrace, + context: { + 'type': T.toString(), + 'context': context ?? 'unknown', + }, + operation: 'json_parse_single_error', + ); + return null; + } } } diff --git a/test/utils/json_handler_test.dart b/test/utils/json_handler_test.dart index db4b4e9..7236761 100644 --- a/test/utils/json_handler_test.dart +++ b/test/utils/json_handler_test.dart @@ -1,3 +1,4 @@ +import 'package:flutter_policy_engine/src/exceptions/policy_sdk_exceptions.dart'; import 'package:flutter_test/flutter_test.dart'; import 'package:flutter_policy_engine/src/utils/json_handler.dart'; @@ -205,6 +206,127 @@ void main() { expect(result['user']!.allowedContent, ['read']); expect(result['user']!.metadata, {'level': 1, 'active': true}); }); + + // New error handling tests + group('Error handling', () { + test( + 'should handle invalid value types gracefully with partial success', + () { + final jsonMap = { + 'valid_user': { + 'name': 'John Doe', + 'age': 30, + 'hobbies': ['reading'], + 'metadata': {} + }, + 'invalid_user': 'not_a_map', // Invalid type + 'another_valid_user': { + 'name': 'Jane Smith', + 'age': 25, + 'hobbies': ['coding'], + 'metadata': {} + } + }; + + final result = JsonHandler.parseMap( + jsonMap, + (json) => TestUser.fromJson(json), + allowPartialSuccess: true, + ); + + expect(result, hasLength(2)); + expect(result['valid_user']!.name, 'John Doe'); + expect(result['another_valid_user']!.name, 'Jane Smith'); + expect(result.containsKey('invalid_user'), false); + }); + + test( + 'should throw JsonParseException when allowPartialSuccess is false', + () { + final jsonMap = { + 'valid_user': { + 'name': 'John Doe', + 'age': 30, + 'hobbies': ['reading'], + 'metadata': {} + }, + 'invalid_user': 'not_a_map', // Invalid type + }; + + expect( + () => JsonHandler.parseMap( + jsonMap, + (json) => TestUser.fromJson(json), + allowPartialSuccess: false, + ), + throwsA(isA()), + ); + }); + + test('should handle fromJson function throwing exceptions', () { + final jsonMap = { + 'valid_user': { + 'name': 'John Doe', + 'age': 30, + 'hobbies': ['reading'], + 'metadata': {} + }, + 'invalid_user': { + 'name': 'Jane Smith', + // Missing required 'age' field + 'hobbies': ['coding'], + 'metadata': {} + } + }; + + final result = JsonHandler.parseMap( + jsonMap, + (json) => TestUser.fromJson(json), + allowPartialSuccess: true, + ); + + expect(result, hasLength(1)); + expect(result['valid_user']!.name, 'John Doe'); + expect(result.containsKey('invalid_user'), false); + }); + + test('should throw JsonParseException when no items can be parsed', () { + final jsonMap = { + 'invalid1': 'not_a_map', + 'invalid2': 123, + 'invalid3': null, + }; + + expect( + () => JsonHandler.parseMap( + jsonMap, + (json) => TestUser.fromJson(json), + allowPartialSuccess: false, + ), + throwsA(isA()), + ); + }); + + test('should include context in error messages', () { + final jsonMap = { + 'invalid_user': 'not_a_map', + }; + + try { + JsonHandler.parseMap( + jsonMap, + (json) => TestUser.fromJson(json), + context: 'test_context', + allowPartialSuccess: false, + ); + fail('Expected JsonParseException to be thrown'); + } catch (e) { + expect(e, isA()); + // The context is logged but not included in the exception message + // This is expected behavior for logging vs exception messages + } + }); + }); }); group('mapToJson', () { @@ -302,6 +424,119 @@ void main() { expect((result['user'] as Map)['metadata'], {'level': 1, 'active': true}); }); + + // New error handling tests for serialization + group('Serialization error handling', () { + test( + 'should handle toJson function throwing exceptions with partial success', + () { + final users = { + 'valid_user': const TestUser( + name: 'John Doe', age: 30, hobbies: ['reading'], metadata: {}), + 'problematic_user': ProblematicUser('Jane Smith', 25), + }; + + final result = JsonHandler.mapToJson( + users, + (user) => user.toJson(), + allowPartialSuccess: true, + ); + + expect(result, hasLength(1)); + expect((result['valid_user'] as Map)['name'], + 'John Doe'); + expect(result.containsKey('problematic_user'), false); + }); + + test( + 'should throw JsonSerializeException when allowPartialSuccess is false', + () { + final users = { + 'valid_user': const TestUser( + name: 'John Doe', age: 30, hobbies: ['reading'], metadata: {}), + 'problematic_user': ProblematicUser('Jane Smith', 25), + }; + + expect( + () => JsonHandler.mapToJson( + users, + (user) => user.toJson(), + allowPartialSuccess: false, + ), + throwsA(isA()), + ); + }); + + test( + 'should throw JsonSerializeException when no items can be serialized', + () { + final users = { + 'problematic1': ProblematicUser('User1', 25), + 'problematic2': ProblematicUser('User2', 30), + }; + + expect( + () => JsonHandler.mapToJson( + users, + (user) => user.toJson(), + allowPartialSuccess: false, + ), + throwsA(isA()), + ); + }); + }); + }); + + group('Utility methods', () { + test('isValidJsonMap should correctly validate JSON maps', () { + expect(JsonHandler.isValidJsonMap({'key': 'value'}), true); + expect( + JsonHandler.isValidJsonMap({ + 'key': 123, + 'nested': {'a': 'b'} + }), + true); + expect(JsonHandler.isValidJsonMap('not_a_map'), false); + expect(JsonHandler.isValidJsonMap(123), false); + expect(JsonHandler.isValidJsonMap(null), false); + expect(JsonHandler.isValidJsonMap([]), false); + }); + + test('tryParse should return parsed object on success', () { + final json = { + 'name': 'John Doe', + 'age': 30, + 'hobbies': ['reading'], + 'metadata': {} + }; + + final result = JsonHandler.tryParse( + json, + (json) => TestUser.fromJson(json), + context: 'test_context', + ); + + expect(result, isNotNull); + expect(result!.name, 'John Doe'); + expect(result.age, 30); + }); + + test('tryParse should return null on failure', () { + final invalidJson = { + 'name': 'John Doe', + // Missing required 'age' field + 'hobbies': ['reading'], + 'metadata': {} + }; + + final result = JsonHandler.tryParse( + invalidJson, + (json) => TestUser.fromJson(json), + context: 'test_context', + ); + + expect(result, isNull); + }); }); group('Integration tests', () { @@ -376,6 +611,51 @@ void main() { expect(convertedPolicies['admin'], equals(originalPolicies['admin'])); expect(convertedPolicies['user'], equals(originalPolicies['user'])); }); + + test('should handle mixed valid and invalid data in round-trip', () { + final originalUsers = { + 'valid_user': const TestUser( + name: 'John Doe', age: 30, hobbies: ['reading'], metadata: {}), + 'invalid_user': const TestUser( + name: 'Jane Smith', age: 25, hobbies: ['coding'], metadata: {}), + }; + + // Convert to JSON map + final jsonMap = JsonHandler.mapToJson( + originalUsers, + (user) => user.toJson(), + ); + + // Add some invalid data to the JSON map + jsonMap['corrupted_user'] = 'not_a_map'; + jsonMap['null_user'] = null; + + // Convert back from JSON map with partial success + final convertedUsers = JsonHandler.parseMap( + jsonMap, + (json) => TestUser.fromJson(json), + allowPartialSuccess: true, + ); + + expect(convertedUsers, hasLength(2)); + expect( + convertedUsers['valid_user'], equals(originalUsers['valid_user'])); + expect(convertedUsers['invalid_user'], + equals(originalUsers['invalid_user'])); + expect(convertedUsers.containsKey('corrupted_user'), false); + expect(convertedUsers.containsKey('null_user'), false); + }); }); }); } + +// Helper class for testing serialization errors +class ProblematicUser extends TestUser { + ProblematicUser(String name, int age) + : super(name: name, age: age, hobbies: [], metadata: {}); + + @override + Map toJson() { + throw Exception('Simulated serialization error'); + } +} From 1c5d4d514aaa47e35f615a60a6c28c309c1b463e Mon Sep 17 00:00:00 2001 From: David Garcia Ruiz Date: Wed, 16 Jul 2025 00:37:56 +0200 Subject: [PATCH 10/18] chore(ios): update .gitignore and AppDelegate for Swift 5.7 compatibility --- example/.gitignore | 2 ++ .../Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme | 3 +++ example/ios/Runner/AppDelegate.swift | 2 +- 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/example/.gitignore b/example/.gitignore index 29a3a50..79c113f 100644 --- a/example/.gitignore +++ b/example/.gitignore @@ -5,9 +5,11 @@ *.swp .DS_Store .atom/ +.build/ .buildlog/ .history .svn/ +.swiftpm/ migrate_working_dir/ # IntelliJ related diff --git a/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme index 8e3ca5d..e3773d4 100644 --- a/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme +++ b/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme @@ -26,6 +26,7 @@ buildConfiguration = "Debug" selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB" selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB" + customLLDBInitFile = "$(SRCROOT)/Flutter/ephemeral/flutter_lldbinit" shouldUseLaunchSchemeArgsEnv = "YES"> diff --git a/example/ios/Runner/AppDelegate.swift b/example/ios/Runner/AppDelegate.swift index 9074fee..6266644 100644 --- a/example/ios/Runner/AppDelegate.swift +++ b/example/ios/Runner/AppDelegate.swift @@ -1,7 +1,7 @@ import Flutter import UIKit -@UIApplicationMain +@main @objc class AppDelegate: FlutterAppDelegate { override func application( _ application: UIApplication, From 70aa451ae680ee4fd74092b65cc92c424b395e0a Mon Sep 17 00:00:00 2001 From: David Garcia Ruiz Date: Wed, 16 Jul 2025 00:38:05 +0200 Subject: [PATCH 11/18] feat(policy): integrate PolicyManager into example app and enhance UI for policy loading --- example/lib/main.dart | 93 ++++++++++++++++++++-------------- lib/flutter_policy_engine.dart | 6 +-- 2 files changed, 57 insertions(+), 42 deletions(-) diff --git a/example/lib/main.dart b/example/lib/main.dart index df9e5f9..160515e 100644 --- a/example/lib/main.dart +++ b/example/lib/main.dart @@ -1,4 +1,7 @@ +import 'dart:developer'; + import 'package:flutter/material.dart'; +import 'package:flutter_policy_engine/flutter_policy_engine.dart'; void main() { runApp(const MyApp()); @@ -9,61 +12,77 @@ class MyApp extends StatelessWidget { @override Widget build(BuildContext context) { return MaterialApp( - title: 'Flutter Demo', + title: 'Policy Engine Demo', + debugShowCheckedModeBanner: false, theme: ThemeData( colorScheme: ColorScheme.fromSeed(seedColor: Colors.deepPurple), useMaterial3: true, ), - home: const MyHomePage(title: 'Flutter Demo Home Page'), + home: const PolicyEngineDemo(), ); } } -class MyHomePage extends StatefulWidget { - const MyHomePage({super.key, required this.title}); - - final String title; +class PolicyEngineDemo extends StatefulWidget { + const PolicyEngineDemo({super.key}); @override - State createState() => _MyHomePageState(); + State createState() { + return _PolicyEngineDemoState(); + } } -class _MyHomePageState extends State { - int _counter = 0; +class _PolicyEngineDemoState extends State { + late PolicyManager policyManager; + bool _isInitialized = false; - void _incrementCounter() { - setState(() { - _counter++; - }); + @override + void initState() { + super.initState(); + _initializePolicyManager(); + } + + Future _initializePolicyManager() async { + policyManager = PolicyManager(); + final policies = { + "admin": ["LoginPage", "Dashboard", "UserManagement", "Settings"], + "user": ["LoginPage", "Dashboard"], + "guest": ["LoginPage"] + }; + try { + await policyManager.initialize(policies); + setState(() { + _isInitialized = true; + }); + } catch (e) { + log(e.toString()); + setState(() { + _isInitialized = false; + }); + } } @override Widget build(BuildContext context) { - return Scaffold( - appBar: AppBar( - backgroundColor: Theme.of(context).colorScheme.inversePrimary, - title: Text(widget.title), - ), - body: Center( - child: Column( - // - mainAxisAlignment: MainAxisAlignment.center, - children: [ - const Text( - 'You have pushed the button this many times:', - ), - Text( - '$_counter', - style: Theme.of(context).textTheme.headlineMedium, - ), - ], + if (!_isInitialized) { + return Scaffold( + appBar: AppBar( + title: const Text('Policy Engine Demo'), ), - ), - floatingActionButton: FloatingActionButton( - onPressed: _incrementCounter, - tooltip: 'Increment', - child: const Icon(Icons.add), - ), // This trailing comma makes auto-formatting nicer for build methods. + body: const Center( + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + CircularProgressIndicator(), + SizedBox(height: 16), + Text('Loading policies...'), + ], + ), + ), + ); + } + return const Center( + child: Text('Policies loaded'), ); } } diff --git a/lib/flutter_policy_engine.dart b/lib/flutter_policy_engine.dart index bbab3aa..b026fb8 100644 --- a/lib/flutter_policy_engine.dart +++ b/lib/flutter_policy_engine.dart @@ -1,7 +1,3 @@ library flutter_policy_engine; -/// A Calculator. -class Calculator { - /// Returns [value] plus 1. - int addOne(int value) => value + 1; -} +export 'src/core/policy_manager.dart'; From 2c7f0cfada35ebd367babb47e276804c26172b97 Mon Sep 17 00:00:00 2001 From: David Garcia Ruiz Date: Wed, 16 Jul 2025 09:20:41 +0200 Subject: [PATCH 12/18] refactor(policy): enhance PolicyManager by optimizing JSON parsing with a mapped policy structure --- lib/src/core/policy_manager.dart | 12 +++++++++++- test/flutter_policy_engine_test.dart | 9 +-------- 2 files changed, 12 insertions(+), 9 deletions(-) diff --git a/lib/src/core/policy_manager.dart b/lib/src/core/policy_manager.dart index e8be36a..15f2e5b 100644 --- a/lib/src/core/policy_manager.dart +++ b/lib/src/core/policy_manager.dart @@ -79,8 +79,18 @@ class PolicyManager extends ChangeNotifier { operation: 'policy_manager_initialize', ); + final policyMap = jsonPolicies.map( + (key, value) => MapEntry( + key, + Policy( + roleName: key, + allowedContent: value as List, + ).toJson(), + ), + ); + _policies = JsonHandler.parseMap( - jsonPolicies, + policyMap, (json) => Policy.fromJson(json), context: 'policy_manager', allowPartialSuccess: diff --git a/test/flutter_policy_engine_test.dart b/test/flutter_policy_engine_test.dart index 930bc17..1a67f3d 100644 --- a/test/flutter_policy_engine_test.dart +++ b/test/flutter_policy_engine_test.dart @@ -2,11 +2,4 @@ import 'package:flutter_test/flutter_test.dart'; import 'package:flutter_policy_engine/flutter_policy_engine.dart'; -void main() { - test('adds one to input values', () { - final calculator = Calculator(); - expect(calculator.addOne(2), 3); - expect(calculator.addOne(-7), -6); - expect(calculator.addOne(0), 1); - }); -} +void main() {} From 7acd0aa8a1456b4aca263182eb0b199d6466a9ae Mon Sep 17 00:00:00 2001 From: David Garcia Ruiz Date: Wed, 16 Jul 2025 11:08:46 +0200 Subject: [PATCH 13/18] feat(policy): enhance management by add deep copy functionality and integrating collection package --- lib/src/core/memory_policy_storage.dart | 25 +- lib/src/core/policy_manager.dart | 68 ++- lib/src/models/policy.dart | 56 ++- pubspec.yaml | 1 + test/core/integration_test.dart | 417 +++++++++++++++++ test/core/memory_policy_storage_test.dart | 453 ++++++++++++++++++ test/core/policy_manager_test.dart | 337 ++++++++++++++ test/core/policy_test.dart | 530 ++++++++++++++++++++++ test/core/role_evaluator_test.dart | 369 +++++++++++++++ 9 files changed, 2229 insertions(+), 27 deletions(-) create mode 100644 test/core/integration_test.dart create mode 100644 test/core/memory_policy_storage_test.dart create mode 100644 test/core/policy_manager_test.dart create mode 100644 test/core/policy_test.dart create mode 100644 test/core/role_evaluator_test.dart diff --git a/lib/src/core/memory_policy_storage.dart b/lib/src/core/memory_policy_storage.dart index 5a1e7fc..fbbe54a 100644 --- a/lib/src/core/memory_policy_storage.dart +++ b/lib/src/core/memory_policy_storage.dart @@ -11,6 +11,7 @@ import 'package:flutter_policy_engine/src/core/interfaces/i_policy_storage.dart' /// /// **Note:** All data stored in this implementation will be lost when the /// application is terminated or the object is garbage collected. +// ignore: must_be_immutable class MemoryPolicyStorage implements IPolicyStorage { /// Internal storage for policies using a Map with String keys and dynamic values. /// @@ -34,7 +35,7 @@ class MemoryPolicyStorage implements IPolicyStorage { /// ``` @override Future> loadPolicies() async { - return Map.from(_policies); + return _deepCopy(_policies); } /// Saves the provided policies to memory storage. @@ -54,7 +55,7 @@ class MemoryPolicyStorage implements IPolicyStorage { /// ``` @override Future savePolicies(Map policies) async { - _policies = Map.from(policies); + _policies = _deepCopy(policies); } /// Removes all stored policies from memory. @@ -72,4 +73,24 @@ class MemoryPolicyStorage implements IPolicyStorage { Future clearPolicies() async { _policies.clear(); } + + /// Creates a deep copy of the policies map. + Map _deepCopy(Map source) { + final result = {}; + for (final entry in source.entries) { + result[entry.key] = _deepCopyValue(entry.value); + } + return result; + } + + /// Creates a deep copy of a single value. + dynamic _deepCopyValue(dynamic value) { + if (value is Map) { + return _deepCopy(Map.from(value)); + } else if (value is List) { + return value.map((item) => _deepCopyValue(item)).toList(); + } else { + return value; + } + } } diff --git a/lib/src/core/policy_manager.dart b/lib/src/core/policy_manager.dart index 15f2e5b..5d2ac66 100644 --- a/lib/src/core/policy_manager.dart +++ b/lib/src/core/policy_manager.dart @@ -79,22 +79,68 @@ class PolicyManager extends ChangeNotifier { operation: 'policy_manager_initialize', ); - final policyMap = jsonPolicies.map( - (key, value) => MapEntry( - key, - Policy( + // Create a map of valid policies, skipping invalid ones + final validPolicies = >{}; + + for (final entry in jsonPolicies.entries) { + final key = entry.key; + final value = entry.value; + + try { + if (value == null) { + LogHandler.warning( + 'Skipping null policy value', + context: {'role': key}, + operation: 'policy_validation_skip', + ); + continue; + } + + if (value is! List) { + LogHandler.warning( + 'Skipping invalid policy value type', + context: { + 'role': key, + 'expected_type': 'List', + 'actual_type': value.runtimeType.toString(), + }, + operation: 'policy_validation_skip', + ); + continue; + } + + if (value.any((item) => item is! String)) { + LogHandler.warning( + 'Skipping policy with non-string content items', + context: {'role': key}, + operation: 'policy_validation_skip', + ); + continue; + } + + // Create the policy and add to valid policies + final policy = Policy( roleName: key, - allowedContent: value as List, - ).toJson(), - ), - ); + allowedContent: value.cast(), + ); + validPolicies[key] = policy.toJson(); + } catch (e, stackTrace) { + LogHandler.error( + 'Failed to process policy', + error: e, + stackTrace: stackTrace, + context: {'role': key}, + operation: 'policy_processing_error', + ); + // Continue with other policies + } + } _policies = JsonHandler.parseMap( - policyMap, + validPolicies, (json) => Policy.fromJson(json), context: 'policy_manager', - allowPartialSuccess: - true, // Allow partial success for graceful degradation + allowPartialSuccess: true, ); // Only create evaluator if we have at least some policies diff --git a/lib/src/models/policy.dart b/lib/src/models/policy.dart index ebcc4ad..2bfd2c7 100644 --- a/lib/src/models/policy.dart +++ b/lib/src/models/policy.dart @@ -1,4 +1,5 @@ -import 'package:meta/meta.dart'; +import 'package:flutter/foundation.dart'; +import 'package:collection/collection.dart'; /// Represents a policy that defines content access permissions for a specific role. /// @@ -91,19 +92,29 @@ class Policy { /// the same [allowedContent] (regardless of order). The [metadata] is not /// considered in the equality comparison. @override - bool operator ==(Object other) => - identical(this, other) || - other is Policy && - roleName == other.roleName && - allowedContent.length == other.allowedContent.length && - allowedContent - .every((content) => other.allowedContent.contains(content)); + bool operator ==(Object other) { + if (identical(this, other)) return true; + if (other is! Policy) return false; + + if (roleName != other.roleName) return false; + if (allowedContent.length != other.allowedContent.length) return false; + + // Sort both lists to ensure order-independent comparison (same as hashCode) + final sortedThis = List.from(allowedContent)..sort(); + final sortedOther = List.from(other.allowedContent)..sort(); + + return listEquals(sortedThis, sortedOther); + } /// Returns the hash code for this policy. /// /// The hash code is based on the [roleName] and [allowedContent] fields. + /// The allowedContent is sorted to ensure consistent hash codes regardless of order. @override - int get hashCode => roleName.hashCode ^ allowedContent.hashCode; + int get hashCode { + final sortedContent = List.from(allowedContent)..sort(); + return Object.hash(roleName, const ListEquality().hash(sortedContent)); + } /// Returns a string representation of this policy. /// @@ -130,11 +141,28 @@ class Policy { /// }; /// final policy = Policy.fromJson(json); /// ``` - factory Policy.fromJson(Map json) => Policy( - roleName: json['roleName'] as String, - allowedContent: json['allowedContent'] as List, - metadata: json['metadata'] as Map, - ); + factory Policy.fromJson(Map json) { + final roleName = json['roleName']; + final allowedContent = json['allowedContent']; + final metadata = json['metadata']; + + if (roleName == null || roleName is! String) { + throw ArgumentError('roleName must be a non-null string'); + } + if (allowedContent == null || allowedContent is! List) { + throw ArgumentError('allowedContent must be a non-null list'); + } + if (allowedContent.any((item) => item is! String)) { + throw ArgumentError('All allowedContent items must be strings'); + } + + return Policy( + roleName: roleName, + allowedContent: allowedContent.cast(), + metadata: + metadata is Map ? metadata : {}, + ); + } /// Converts this policy to a JSON map. /// diff --git a/pubspec.yaml b/pubspec.yaml index 8f0f11c..247bacc 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -8,6 +8,7 @@ environment: flutter: ">=1.17.0" dependencies: + collection: ^1.19.1 flutter: sdk: flutter meta: ^1.12.0 diff --git a/test/core/integration_test.dart b/test/core/integration_test.dart new file mode 100644 index 0000000..25cde98 --- /dev/null +++ b/test/core/integration_test.dart @@ -0,0 +1,417 @@ +import 'package:flutter_test/flutter_test.dart'; +import 'package:flutter_policy_engine/src/core/policy_manager.dart'; +import 'package:flutter_policy_engine/src/core/memory_policy_storage.dart'; +import 'package:flutter_policy_engine/src/core/role_evaluator.dart'; + +void main() { + group('Core Integration Tests', () { + late PolicyManager policyManager; + late MemoryPolicyStorage storage; + + setUp(() { + storage = MemoryPolicyStorage(); + policyManager = PolicyManager(storage: storage); + }); + + group('PolicyManager with RoleEvaluator Integration', () { + test('should initialize and evaluate policies correctly', () async { + final jsonPolicies = { + 'admin': ['read', 'write', 'delete'], + 'user': ['read'], + 'guest': [], + }; + + await policyManager.initialize(jsonPolicies); + + expect(policyManager.isInitialized, isTrue); + expect(policyManager.policies.length, equals(3)); + + // Verify policies were created correctly + expect(policyManager.policies['admin']!.roleName, equals('admin')); + expect(policyManager.policies['admin']!.allowedContent, + containsAll(['read', 'write', 'delete'])); + expect(policyManager.policies['user']!.allowedContent, + containsAll(['read'])); + expect(policyManager.policies['guest']!.allowedContent, isEmpty); + }); + + test('should persist policies to storage during initialization', + () async { + final jsonPolicies = { + 'admin': ['read', 'write'], + 'user': ['read'], + }; + + await policyManager.initialize(jsonPolicies); + + // Verify policies were saved to storage + final storedPolicies = await storage.loadPolicies(); + expect(storedPolicies.length, equals(2)); + expect(storedPolicies['admin'], isNotNull); + expect(storedPolicies['user'], isNotNull); + }); + + test('should handle policy updates through re-initialization', () async { + // Initial policies + final initialPolicies = { + 'admin': ['read', 'write'], + 'user': ['read'], + }; + + await policyManager.initialize(initialPolicies); + expect(policyManager.policies.length, equals(2)); + + // Updated policies + final updatedPolicies = { + 'admin': ['read', 'write', 'delete'], + 'moderator': ['read', 'write'], + }; + + await policyManager.initialize(updatedPolicies); + expect(policyManager.policies.length, equals(2)); + expect(policyManager.policies['admin']!.allowedContent, + containsAll(['read', 'write', 'delete'])); + expect(policyManager.policies['moderator']!.allowedContent, + containsAll(['read', 'write'])); + expect(policyManager.policies['user'], isNull); // Should be removed + }); + }); + + group('RoleEvaluator Integration', () { + test('should evaluate policies correctly after initialization', () async { + final jsonPolicies = { + 'admin': ['read', 'write', 'delete'], + 'user': ['read'], + 'guest': [], + }; + + await policyManager.initialize(jsonPolicies); + + // Create evaluator with the loaded policies + final evaluator = RoleEvaluator(policyManager.policies); + + // Test admin permissions + expect(evaluator.evaluate('admin', 'read'), isTrue); + expect(evaluator.evaluate('admin', 'write'), isTrue); + expect(evaluator.evaluate('admin', 'delete'), isTrue); + expect(evaluator.evaluate('admin', 'execute'), isFalse); + + // Test user permissions + expect(evaluator.evaluate('user', 'read'), isTrue); + expect(evaluator.evaluate('user', 'write'), isFalse); + expect(evaluator.evaluate('user', 'delete'), isFalse); + + // Test guest permissions + expect(evaluator.evaluate('guest', 'read'), isFalse); + expect(evaluator.evaluate('guest', 'write'), isFalse); + + // Test non-existent role + expect(evaluator.evaluate('nonexistent', 'read'), isFalse); + }); + + test('should handle case-sensitive evaluation', () async { + final jsonPolicies = { + 'admin': ['read', 'write'], + }; + + await policyManager.initialize(jsonPolicies); + final evaluator = RoleEvaluator(policyManager.policies); + + expect(evaluator.evaluate('admin', 'read'), isTrue); + expect(evaluator.evaluate('admin', 'READ'), isFalse); + expect(evaluator.evaluate('admin', 'Read'), isFalse); + }); + + test('should handle special characters in content', () async { + final jsonPolicies = { + 'admin': ['read@domain', 'write-file', 'delete_user'], + }; + + await policyManager.initialize(jsonPolicies); + final evaluator = RoleEvaluator(policyManager.policies); + + expect(evaluator.evaluate('admin', 'read@domain'), isTrue); + expect(evaluator.evaluate('admin', 'write-file'), isTrue); + expect(evaluator.evaluate('admin', 'delete_user'), isTrue); + expect(evaluator.evaluate('admin', 'read'), isFalse); + }); + }); + + group('Storage Integration', () { + test('should maintain data consistency between manager and storage', + () async { + final jsonPolicies = { + 'admin': ['read', 'write'], + 'user': ['read'], + }; + + await policyManager.initialize(jsonPolicies); + + // Verify storage has the same data + final storedPolicies = await storage.loadPolicies(); + expect(storedPolicies.length, equals(policyManager.policies.length)); + + // Clear storage and verify manager is unaffected + await storage.clearPolicies(); + expect(await storage.loadPolicies(), isEmpty); + expect(policyManager.policies.length, + equals(2)); // Manager still has policies + }); + + test('should handle storage errors gracefully', () async { + // Create a storage that throws errors + final failingStorage = _FailingPolicyStorage(); + final failingManager = PolicyManager(storage: failingStorage); + + final jsonPolicies = { + 'admin': ['read', 'write'], + }; + + // Should throw when storage fails + expect(() => failingManager.initialize(jsonPolicies), + throwsA(isA())); + expect(failingManager.isInitialized, isFalse); + }); + + test('should handle concurrent storage operations', () async { + final jsonPolicies = { + 'admin': ['read', 'write'], + 'user': ['read'], + }; + + await policyManager.initialize(jsonPolicies); + + // Perform concurrent storage operations + final futures = [ + storage.loadPolicies(), + storage.loadPolicies(), + storage.loadPolicies(), + ]; + + final results = await Future.wait(futures); + for (final result in results) { + expect(result.length, equals(2)); + expect(result['admin'], isNotNull); + expect(result['user'], isNotNull); + } + }); + }); + + group('ChangeNotifier Integration', () { + test('should notify listeners on initialization', () async { + bool listenerCalled = false; + policyManager.addListener(() { + listenerCalled = true; + }); + + final jsonPolicies = { + 'admin': ['read', 'write'], + }; + + await policyManager.initialize(jsonPolicies); + expect(listenerCalled, isTrue); + }); + + test('should notify listeners on policy updates', () async { + int notificationCount = 0; + policyManager.addListener(() { + notificationCount++; + }); + + // Initial initialization + await policyManager.initialize({ + 'admin': ['read'], + }); + expect(notificationCount, equals(1)); + + // Policy update + await policyManager.initialize({ + 'admin': ['read', 'write'], + }); + expect(notificationCount, equals(2)); + }); + + test('should handle multiple listeners', () async { + int listener1Count = 0; + int listener2Count = 0; + + policyManager.addListener(() { + listener1Count++; + }); + policyManager.addListener(() { + listener2Count++; + }); + + final jsonPolicies = { + 'admin': ['read', 'write'], + }; + + await policyManager.initialize(jsonPolicies); + + expect(listener1Count, equals(1)); + expect(listener2Count, equals(1)); + }); + }); + + group('Error Handling Integration', () { + test('should handle malformed JSON during initialization gracefully', + () async { + final malformedPolicies = { + 'admin': 'invalid_content', // Should be List + }; + + await policyManager.initialize(malformedPolicies); + + // Should initialize successfully but skip invalid policies + expect(policyManager.isInitialized, isTrue); + expect(policyManager.policies, isEmpty); + }); + + test('should handle partial failures gracefully', () async { + final mixedPolicies = { + 'admin': ['read', 'write'], // Valid + 'user': null, // Invalid + 'guest': ['read'], // Valid + }; + + await policyManager.initialize(mixedPolicies); + + // Should still initialize with valid policies + expect(policyManager.isInitialized, isTrue); + expect(policyManager.policies.length, equals(2)); + expect(policyManager.policies['admin'], isNotNull); + expect(policyManager.policies['guest'], isNotNull); + expect(policyManager.policies['user'], isNull); + }); + + test('should handle empty policy set', () async { + final emptyPolicies = {}; + + await policyManager.initialize(emptyPolicies); + + expect(policyManager.isInitialized, isTrue); + expect(policyManager.policies, isEmpty); + }); + }); + + group('Performance Integration', () { + test('should handle large policy sets efficiently', () async { + final largePolicies = {}; + for (int i = 0; i < 1000; i++) { + largePolicies['role_$i'] = ['read', 'write']; + } + + final stopwatch = Stopwatch()..start(); + await policyManager.initialize(largePolicies); + stopwatch.stop(); + + expect(policyManager.isInitialized, isTrue); + expect(policyManager.policies.length, equals(1000)); + expect(stopwatch.elapsedMilliseconds, + lessThan(5000)); // Should complete within 5 seconds + }); + + test('should handle rapid policy evaluations', () async { + final jsonPolicies = { + 'admin': ['read', 'write'], + 'user': ['read'], + }; + + await policyManager.initialize(jsonPolicies); + final evaluator = RoleEvaluator(policyManager.policies); + + const iterations = 10000; + final stopwatch = Stopwatch()..start(); + + for (int i = 0; i < iterations; i++) { + evaluator.evaluate('admin', 'read'); + } + + stopwatch.stop(); + expect(stopwatch.elapsedMilliseconds, + lessThan(1000)); // Should complete within 1 second + }); + }); + + group('Real-world Scenarios', () { + test('should handle typical web application RBAC', () async { + final webAppPolicies = { + 'super_admin': [ + 'read', + 'write', + 'delete', + 'manage_users', + 'manage_roles' + ], + 'admin': ['read', 'write', 'delete', 'manage_users'], + 'moderator': ['read', 'write', 'moderate'], + 'user': ['read', 'write'], + 'guest': ['read'], + }; + + await policyManager.initialize(webAppPolicies); + final evaluator = RoleEvaluator(policyManager.policies); + + // Test role hierarchy + expect(evaluator.evaluate('super_admin', 'manage_roles'), isTrue); + expect(evaluator.evaluate('admin', 'manage_roles'), isFalse); + expect(evaluator.evaluate('moderator', 'delete'), isFalse); + expect(evaluator.evaluate('user', 'moderate'), isFalse); + expect(evaluator.evaluate('guest', 'write'), isFalse); + }); + + test('should handle file system permissions', () async { + final fileSystemPolicies = { + 'root': ['read', 'write', 'delete', 'execute', 'chmod', 'chown'], + 'owner': ['read', 'write', 'delete', 'chmod'], + 'group': ['read', 'write'], + 'other': ['read'], + }; + + await policyManager.initialize(fileSystemPolicies); + final evaluator = RoleEvaluator(policyManager.policies); + + // Test Unix-like permissions + expect(evaluator.evaluate('root', 'chown'), isTrue); + expect(evaluator.evaluate('owner', 'chown'), isFalse); + expect(evaluator.evaluate('group', 'delete'), isFalse); + expect(evaluator.evaluate('other', 'write'), isFalse); + }); + + test('should handle API endpoint permissions', () async { + final apiPolicies = { + 'admin': ['GET', 'POST', 'PUT', 'DELETE', 'PATCH'], + 'user': ['GET', 'POST'], + 'readonly': ['GET'], + }; + + await policyManager.initialize(apiPolicies); + final evaluator = RoleEvaluator(policyManager.policies); + + // Test REST API permissions + expect(evaluator.evaluate('admin', 'DELETE'), isTrue); + expect(evaluator.evaluate('user', 'PUT'), isFalse); + expect(evaluator.evaluate('readonly', 'POST'), isFalse); + expect(evaluator.evaluate('readonly', 'GET'), isTrue); + }); + }); + }); +} + +/// Mock storage that throws errors for testing error handling +class _FailingPolicyStorage implements MemoryPolicyStorage { + @override + Future> loadPolicies() async { + throw StateError('Storage load failed'); + } + + @override + Future savePolicies(Map policies) async { + throw StateError('Storage save failed'); + } + + @override + Future clearPolicies() async { + throw StateError('Storage clear failed'); + } +} diff --git a/test/core/memory_policy_storage_test.dart b/test/core/memory_policy_storage_test.dart new file mode 100644 index 0000000..dbc56fb --- /dev/null +++ b/test/core/memory_policy_storage_test.dart @@ -0,0 +1,453 @@ +import 'package:flutter_test/flutter_test.dart'; +import 'package:flutter_policy_engine/src/core/memory_policy_storage.dart'; + +void main() { + group('MemoryPolicyStorage', () { + late MemoryPolicyStorage storage; + + setUp(() { + storage = MemoryPolicyStorage(); + }); + + group('Constructor', () { + test('should create instance successfully', () { + expect(storage, isA()); + }); + }); + + group('loadPolicies', () { + test('should return empty map when no policies are stored', () async { + final policies = await storage.loadPolicies(); + expect(policies, isEmpty); + expect(policies, isA>()); + }); + + test('should return copy of stored policies', () async { + final testPolicies = { + 'admin': { + 'role': 'admin', + 'permissions': ['read', 'write'] + }, + 'user': { + 'role': 'user', + 'permissions': ['read'] + }, + }; + + await storage.savePolicies(testPolicies); + final loadedPolicies = await storage.loadPolicies(); + + expect(loadedPolicies, equals(testPolicies)); + expect(loadedPolicies, isNot(same(testPolicies))); // Should be a copy + }); + + test('should return deep copy of policies', () async { + final testPolicies = { + 'admin': { + 'role': 'admin', + 'permissions': ['read', 'write'] + }, + }; + + await storage.savePolicies(testPolicies); + final loadedPolicies = await storage.loadPolicies(); + + // Modify the loaded policies + (loadedPolicies['admin']!['permissions'] as List) + .add('delete'); + + // Reload to verify original wasn't modified + final reloadedPolicies = await storage.loadPolicies(); + expect(reloadedPolicies['admin']!['permissions'], + equals(['read', 'write'])); + }); + + test('should handle complex nested structures', () async { + final testPolicies = { + 'admin': { + 'role': 'admin', + 'permissions': ['read', 'write', 'delete'], + 'metadata': { + 'level': 1, + 'departments': ['IT', 'HR'], + 'nested': { + 'key': 'value', + 'array': [1, 2, 3], + }, + }, + }, + }; + + await storage.savePolicies(testPolicies); + final loadedPolicies = await storage.loadPolicies(); + + expect(loadedPolicies, equals(testPolicies)); + expect(loadedPolicies['admin']!['metadata']!['nested']!['array'], + equals([1, 2, 3])); + }); + }); + + group('savePolicies', () { + test('should save policies successfully', () async { + final testPolicies = { + 'admin': { + 'role': 'admin', + 'permissions': ['read', 'write'] + }, + 'user': { + 'role': 'user', + 'permissions': ['read'] + }, + }; + + await storage.savePolicies(testPolicies); + final loadedPolicies = await storage.loadPolicies(); + + expect(loadedPolicies, equals(testPolicies)); + }); + + test('should overwrite existing policies', () async { + final initialPolicies = { + 'admin': { + 'role': 'admin', + 'permissions': ['read'] + }, + }; + + final newPolicies = { + 'user': { + 'role': 'user', + 'permissions': ['read', 'write'] + }, + }; + + await storage.savePolicies(initialPolicies); + await storage.savePolicies(newPolicies); + + final loadedPolicies = await storage.loadPolicies(); + expect(loadedPolicies, equals(newPolicies)); + expect(loadedPolicies, isNot(equals(initialPolicies))); + }); + + test('should create deep copy of input policies', () async { + final testPolicies = { + 'admin': { + 'role': 'admin', + 'permissions': ['read', 'write'] + }, + }; + + await storage.savePolicies(testPolicies); + + // Modify the original policies + final permissions = + testPolicies['admin']!['permissions'] as List; + permissions.add('delete'); + + // Reload to verify stored policies weren't modified + final loadedPolicies = await storage.loadPolicies(); + expect( + loadedPolicies['admin']!['permissions'], equals(['read', 'write'])); + }); + + test('should handle empty policies map', () async { + final emptyPolicies = {}; + + await storage.savePolicies(emptyPolicies); + final loadedPolicies = await storage.loadPolicies(); + + expect(loadedPolicies, isEmpty); + }); + + test('should handle null values in policies', () async { + final testPolicies = { + 'admin': { + 'role': 'admin', + 'permissions': ['read'] + }, + 'user': null, + 'guest': {'role': 'guest', 'permissions': []}, + }; + + await storage.savePolicies(testPolicies); + final loadedPolicies = await storage.loadPolicies(); + + expect(loadedPolicies, equals(testPolicies)); + expect(loadedPolicies['user'], isNull); + }); + + test('should handle large policy sets', () async { + final largePolicies = {}; + for (int i = 0; i < 1000; i++) { + largePolicies['policy_$i'] = { + 'id': i, + 'permissions': ['read', 'write'], + 'metadata': {'created': DateTime.now().toIso8601String()}, + }; + } + + await storage.savePolicies(largePolicies); + final loadedPolicies = await storage.loadPolicies(); + + expect(loadedPolicies.length, equals(1000)); + expect(loadedPolicies['policy_500']!['id'], equals(500)); + }); + }); + + group('clearPolicies', () { + test('should clear all stored policies', () async { + final testPolicies = { + 'admin': { + 'role': 'admin', + 'permissions': ['read', 'write'] + }, + 'user': { + 'role': 'user', + 'permissions': ['read'] + }, + }; + + await storage.savePolicies(testPolicies); + await storage.clearPolicies(); + + final loadedPolicies = await storage.loadPolicies(); + expect(loadedPolicies, isEmpty); + }); + + test('should handle clearing empty storage', () async { + await storage.clearPolicies(); + final loadedPolicies = await storage.loadPolicies(); + + expect(loadedPolicies, isEmpty); + }); + + test('should clear policies immediately', () async { + final testPolicies = { + 'admin': { + 'role': 'admin', + 'permissions': ['read'] + }, + }; + + await storage.savePolicies(testPolicies); + await storage.clearPolicies(); + + // Verify policies are immediately cleared + final loadedPolicies = await storage.loadPolicies(); + expect(loadedPolicies, isEmpty); + }); + }); + + group('Integration tests', () { + test('should handle complete lifecycle: save, load, clear, load', + () async { + final testPolicies = { + 'admin': { + 'role': 'admin', + 'permissions': ['read', 'write', 'delete'] + }, + 'user': { + 'role': 'user', + 'permissions': ['read'] + }, + }; + + // Save policies + await storage.savePolicies(testPolicies); + var loadedPolicies = await storage.loadPolicies(); + expect(loadedPolicies, equals(testPolicies)); + + // Clear policies + await storage.clearPolicies(); + loadedPolicies = await storage.loadPolicies(); + expect(loadedPolicies, isEmpty); + + // Save new policies + final newPolicies = { + 'guest': { + 'role': 'guest', + 'permissions': ['read'] + }, + }; + await storage.savePolicies(newPolicies); + loadedPolicies = await storage.loadPolicies(); + expect(loadedPolicies, equals(newPolicies)); + }); + + test('should maintain data integrity across multiple operations', + () async { + final initialPolicies = { + 'admin': { + 'role': 'admin', + 'permissions': ['read'] + }, + }; + + await storage.savePolicies(initialPolicies); + var loadedPolicies = await storage.loadPolicies(); + expect(loadedPolicies, equals(initialPolicies)); + + // Update policies + final updatedPolicies = { + 'admin': { + 'role': 'admin', + 'permissions': ['read', 'write'] + }, + 'user': { + 'role': 'user', + 'permissions': ['read'] + }, + }; + + await storage.savePolicies(updatedPolicies); + loadedPolicies = await storage.loadPolicies(); + expect(loadedPolicies, equals(updatedPolicies)); + + // Clear and verify + await storage.clearPolicies(); + loadedPolicies = await storage.loadPolicies(); + expect(loadedPolicies, isEmpty); + }); + }); + + group('Edge cases', () { + test('should handle policies with empty string keys', () async { + final testPolicies = { + '': { + 'role': 'empty', + 'permissions': ['read'] + }, + 'admin': { + 'role': 'admin', + 'permissions': ['read', 'write'] + }, + }; + + await storage.savePolicies(testPolicies); + final loadedPolicies = await storage.loadPolicies(); + + expect(loadedPolicies, equals(testPolicies)); + expect(loadedPolicies[''], isNotNull); + }); + + test('should handle policies with special characters in keys', () async { + final testPolicies = { + 'admin@domain.com': { + 'role': 'admin', + 'permissions': ['read'] + }, + 'user-name_123': { + 'role': 'user', + 'permissions': ['read', 'write'] + }, + 'role with spaces': { + 'role': 'spaced', + 'permissions': ['read'] + }, + }; + + await storage.savePolicies(testPolicies); + final loadedPolicies = await storage.loadPolicies(); + + expect(loadedPolicies, equals(testPolicies)); + expect(loadedPolicies['admin@domain.com'], isNotNull); + expect(loadedPolicies['user-name_123'], isNotNull); + expect(loadedPolicies['role with spaces'], isNotNull); + }); + + test('should handle deeply nested structures', () async { + final testPolicies = { + 'admin': { + 'level1': { + 'level2': { + 'level3': { + 'level4': { + 'level5': { + 'value': 'deep_value', + 'array': [1, 2, 3, 4, 5], + }, + }, + }, + }, + }, + }, + }; + + await storage.savePolicies(testPolicies); + final loadedPolicies = await storage.loadPolicies(); + + expect( + loadedPolicies['admin']!['level1']!['level2']!['level3']![ + 'level4']!['level5']!['value'], + equals('deep_value')); + expect( + loadedPolicies['admin']!['level1']!['level2']!['level3']![ + 'level4']!['level5']!['array'], + equals([1, 2, 3, 4, 5])); + }); + + test('should handle policies with various data types', () async { + final testPolicies = { + 'admin': { + 'string': 'value', + 'int': 42, + 'double': 3.14, + 'bool': true, + 'list': [1, 2, 3], + 'map': {'key': 'value'}, + 'null': null, + }, + }; + + await storage.savePolicies(testPolicies); + final loadedPolicies = await storage.loadPolicies(); + + expect(loadedPolicies['admin']!['string'], equals('value')); + expect(loadedPolicies['admin']!['int'], equals(42)); + expect(loadedPolicies['admin']!['double'], equals(3.14)); + expect(loadedPolicies['admin']!['bool'], equals(true)); + expect(loadedPolicies['admin']!['list'], equals([1, 2, 3])); + expect(loadedPolicies['admin']!['map'], equals({'key': 'value'})); + expect(loadedPolicies['admin']!['null'], isNull); + }); + }); + + group('Performance considerations', () { + test('should handle rapid save operations', () async { + for (int i = 0; i < 100; i++) { + final policies = { + 'policy_$i': { + 'id': i, + 'permissions': ['read'] + }, + }; + await storage.savePolicies(policies); + } + + final loadedPolicies = await storage.loadPolicies(); + expect( + loadedPolicies.length, equals(1)); // Only last save should remain + expect(loadedPolicies['policy_99']!['id'], equals(99)); + }); + + test('should handle rapid load operations', () async { + final testPolicies = { + 'admin': { + 'role': 'admin', + 'permissions': ['read', 'write'] + }, + }; + + await storage.savePolicies(testPolicies); + + // Perform multiple load operations + final futures = List.generate(100, (_) => storage.loadPolicies()); + final results = await Future.wait(futures); + + for (final result in results) { + expect(result, equals(testPolicies)); + } + }); + }); + }); +} diff --git a/test/core/policy_manager_test.dart b/test/core/policy_manager_test.dart new file mode 100644 index 0000000..955068f --- /dev/null +++ b/test/core/policy_manager_test.dart @@ -0,0 +1,337 @@ +import 'package:flutter/foundation.dart'; +import 'package:flutter_test/flutter_test.dart'; +import 'package:flutter_policy_engine/src/core/policy_manager.dart'; +import 'package:flutter_policy_engine/src/core/interfaces/i_policy_evaluator.dart'; +import 'package:flutter_policy_engine/src/core/interfaces/i_policy_storage.dart'; +import 'package:flutter_policy_engine/src/models/policy.dart'; + +/// Mock implementation of IPolicyStorage for testing +class MockPolicyStorage implements IPolicyStorage { + Map _policies = {}; + bool _shouldThrowError = false; + bool _shouldThrowOnSave = false; + + void setShouldThrowError(bool value) => _shouldThrowError = value; + void setShouldThrowOnSave(bool value) => _shouldThrowOnSave = value; + + @override + Future> loadPolicies() async { + if (_shouldThrowError) { + throw StateError('Storage error'); + } + return Map.from(_policies); + } + + @override + Future savePolicies(Map policies) async { + if (_shouldThrowOnSave) { + throw StateError('Save error'); + } + _policies = Map.from(policies); + } + + @override + Future clearPolicies() async { + if (_shouldThrowError) { + throw StateError('Clear error'); + } + _policies.clear(); + } + + Map get storedPolicies => Map.from(_policies); +} + +/// Mock implementation of IPolicyEvaluator for testing +class MockPolicyEvaluator implements IPolicyEvaluator { + final Map _evaluationResults = {}; + bool _shouldThrowError = false; + + void setEvaluationResult(String roleName, String content, bool result) { + _evaluationResults['$roleName:$content'] = result; + } + + void setShouldThrowError(bool value) => _shouldThrowError = value; + + @override + bool evaluate(String roleName, String content) { + if (_shouldThrowError) { + throw StateError('Evaluation error'); + } + return _evaluationResults['$roleName:$content'] ?? false; + } +} + +void main() { + group('PolicyManager', () { + late PolicyManager policyManager; + late MockPolicyStorage mockStorage; + late MockPolicyEvaluator mockEvaluator; + + setUp(() { + mockStorage = MockPolicyStorage(); + mockEvaluator = MockPolicyEvaluator(); + policyManager = PolicyManager( + storage: mockStorage, + evaluator: mockEvaluator, + ); + }); + + group('Constructor', () { + test('should create instance with default storage when none provided', + () { + final manager = PolicyManager(); + expect(manager, isA()); + expect(manager.isInitialized, isFalse); + expect(manager.policies, isEmpty); + }); + + test('should create instance with custom storage and evaluator', () { + final manager = PolicyManager( + storage: mockStorage, + evaluator: mockEvaluator, + ); + expect(manager, isA()); + expect(manager.isInitialized, isFalse); + expect(manager.policies, isEmpty); + }); + + test('should extend ChangeNotifier', () { + expect(policyManager, isA()); + }); + }); + + group('Initial state', () { + test('should not be initialized by default', () { + expect(policyManager.isInitialized, isFalse); + }); + + test('should have empty policies by default', () { + expect(policyManager.policies, isEmpty); + }); + + test('should return unmodifiable policies map', () { + expect( + () => policyManager.policies['test'] = + const Policy(roleName: 'test', allowedContent: ['read']), + throwsA(isA())); + }); + }); + + group('initialize', () { + test('should initialize successfully with valid policies', () async { + final jsonPolicies = { + 'admin': ['read', 'write', 'delete'], + 'user': ['read'], + }; + + await policyManager.initialize(jsonPolicies); + + expect(policyManager.isInitialized, isTrue); + expect(policyManager.policies.length, equals(2)); + expect(policyManager.policies['admin'], isA()); + expect(policyManager.policies['user'], isA()); + expect(policyManager.policies['admin']!.allowedContent, + containsAll(['read', 'write', 'delete'])); + expect(policyManager.policies['user']!.allowedContent, + containsAll(['read'])); + }); + + test('should handle empty policies gracefully', () async { + final jsonPolicies = {}; + + await policyManager.initialize(jsonPolicies); + + expect(policyManager.isInitialized, isTrue); + expect(policyManager.policies, isEmpty); + }); + + test('should handle single policy', () async { + final jsonPolicies = { + 'admin': ['read', 'write'], + }; + + await policyManager.initialize(jsonPolicies); + + expect(policyManager.isInitialized, isTrue); + expect(policyManager.policies.length, equals(1)); + expect(policyManager.policies['admin']!.roleName, equals('admin')); + expect(policyManager.policies['admin']!.allowedContent, + containsAll(['read', 'write'])); + }); + + test('should save policies to storage after successful initialization', + () async { + final jsonPolicies = { + 'admin': ['read', 'write'], + }; + + await policyManager.initialize(jsonPolicies); + + expect(mockStorage.storedPolicies.length, equals(1)); + expect(mockStorage.storedPolicies['admin'], isA()); + }); + + test('should notify listeners after initialization', () async { + bool listenerCalled = false; + policyManager.addListener(() { + listenerCalled = true; + }); + + final jsonPolicies = { + 'admin': ['read', 'write'], + }; + + await policyManager.initialize(jsonPolicies); + + expect(listenerCalled, isTrue); + }); + + test('should handle storage save errors gracefully', () async { + mockStorage.setShouldThrowOnSave(true); + final jsonPolicies = { + 'admin': ['read', 'write'], + }; + + expect(() => policyManager.initialize(jsonPolicies), + throwsA(isA())); + expect(policyManager.isInitialized, isFalse); + }); + + test('should handle malformed JSON data gracefully', () async { + final jsonPolicies = { + 'admin': 'invalid_content', // Should be List + }; + + await policyManager.initialize(jsonPolicies); + + // Should initialize successfully but skip invalid policies + expect(policyManager.isInitialized, isTrue); + expect(policyManager.policies, isEmpty); + }); + + test('should handle null values in JSON data gracefully', () async { + final jsonPolicies = { + 'admin': null, + }; + + await policyManager.initialize(jsonPolicies); + + // Should initialize successfully but skip null policies + expect(policyManager.isInitialized, isTrue); + expect(policyManager.policies, isEmpty); + }); + + test( + 'should handle mixed valid and invalid policies with partial success', + () async { + final jsonPolicies = { + 'admin': ['read', 'write'], // Valid + 'user': null, // Invalid + 'guest': ['read'], // Valid + }; + + await policyManager.initialize(jsonPolicies); + + // Should still initialize with valid policies + expect(policyManager.isInitialized, isTrue); + expect(policyManager.policies.length, equals(2)); + expect(policyManager.policies['admin'], isNotNull); + expect(policyManager.policies['guest'], isNotNull); + expect(policyManager.policies['user'], isNull); + }); + + test('should create RoleEvaluator when policies are available', () async { + final jsonPolicies = { + 'admin': ['read', 'write'], + }; + + await policyManager.initialize(jsonPolicies); + + // The evaluator should be created internally + expect(policyManager.isInitialized, isTrue); + }); + + test('should handle initialization with no valid policies', () async { + final jsonPolicies = { + 'admin': null, // Invalid + 'user': null, // Invalid + }; + + await policyManager.initialize(jsonPolicies); + + expect(policyManager.isInitialized, isTrue); + expect(policyManager.policies, isEmpty); + }); + }); + + group('Edge cases', () { + test('should handle very large policy sets', () async { + final jsonPolicies = {}; + for (int i = 0; i < 1000; i++) { + jsonPolicies['role_$i'] = ['read', 'write']; + } + + await policyManager.initialize(jsonPolicies); + + expect(policyManager.isInitialized, isTrue); + expect(policyManager.policies.length, equals(1000)); + }); + + test('should handle policies with empty allowed content', () async { + final jsonPolicies = { + 'admin': [], + }; + + await policyManager.initialize(jsonPolicies); + + expect(policyManager.isInitialized, isTrue); + expect(policyManager.policies['admin']!.allowedContent, isEmpty); + }); + + test('should handle policies with duplicate content', () async { + final jsonPolicies = { + 'admin': ['read', 'read', 'write'], + }; + + await policyManager.initialize(jsonPolicies); + + expect(policyManager.isInitialized, isTrue); + expect(policyManager.policies['admin']!.allowedContent, + containsAll(['read', 'write'])); + }); + }); + + group('Error handling', () { + test('should rethrow exceptions from initialization', () async { + final jsonPolicies = { + 'admin': ['read', 'write'], + }; + + // Simulate an error by making storage throw + mockStorage.setShouldThrowOnSave(true); + + expect(() => policyManager.initialize(jsonPolicies), + throwsA(isA())); + expect(policyManager.isInitialized, isFalse); + }); + + test('should handle concurrent initialization calls', () async { + final jsonPolicies = { + 'admin': ['read', 'write'], + }; + + // Start multiple initialization calls + final futures = [ + policyManager.initialize(jsonPolicies), + policyManager.initialize(jsonPolicies), + policyManager.initialize(jsonPolicies), + ]; + + await Future.wait(futures); + + expect(policyManager.isInitialized, isTrue); + expect(policyManager.policies.length, equals(1)); + }); + }); + }); +} diff --git a/test/core/policy_test.dart b/test/core/policy_test.dart new file mode 100644 index 0000000..565bcd4 --- /dev/null +++ b/test/core/policy_test.dart @@ -0,0 +1,530 @@ +import 'package:flutter_test/flutter_test.dart'; +import 'package:flutter_policy_engine/src/models/policy.dart'; + +void main() { + group('Policy', () { + group('Constructor', () { + test('should create instance with required parameters', () { + const policy = Policy( + roleName: 'admin', + allowedContent: ['read', 'write'], + ); + + expect(policy.roleName, equals('admin')); + expect(policy.allowedContent, equals(['read', 'write'])); + expect(policy.metadata, equals({})); + }); + + test('should create instance with all parameters', () { + final metadata = {'level': 'high', 'department': 'IT'}; + final policy = Policy( + roleName: 'admin', + allowedContent: const ['read', 'write', 'delete'], + metadata: metadata, + ); + + expect(policy.roleName, equals('admin')); + expect(policy.allowedContent, equals(['read', 'write', 'delete'])); + expect(policy.metadata, equals(metadata)); + }); + + test('should create immutable instance', () { + const policy = Policy( + roleName: 'admin', + allowedContent: ['read'], + ); + + expect(policy, isA()); + // Verify it's const-constructible + const policyConst = Policy( + roleName: 'admin', + allowedContent: ['read'], + ); + expect(policyConst, isA()); + }); + + test('should handle empty allowed content', () { + const policy = Policy( + roleName: 'guest', + allowedContent: [], + ); + + expect(policy.roleName, equals('guest')); + expect(policy.allowedContent, isEmpty); + }); + + test('should handle empty role name', () { + const policy = Policy( + roleName: '', + allowedContent: ['read'], + ); + + expect(policy.roleName, equals('')); + expect(policy.allowedContent, equals(['read'])); + }); + }); + + group('isContentAllowed', () { + late Policy policy; + + setUp(() { + policy = const Policy( + roleName: 'admin', + allowedContent: ['read', 'write', 'delete'], + ); + }); + + test('should return true for allowed content', () { + expect(policy.isContentAllowed('read'), isTrue); + expect(policy.isContentAllowed('write'), isTrue); + expect(policy.isContentAllowed('delete'), isTrue); + }); + + test('should return false for disallowed content', () { + expect(policy.isContentAllowed('execute'), isFalse); + expect(policy.isContentAllowed('manage'), isFalse); + expect(policy.isContentAllowed('admin'), isFalse); + }); + + test('should handle case-sensitive matching', () { + expect(policy.isContentAllowed('READ'), isFalse); + expect(policy.isContentAllowed('Read'), isFalse); + expect(policy.isContentAllowed('read'), isTrue); + }); + + test('should handle empty content string', () { + expect(policy.isContentAllowed(''), isFalse); + }); + + test('should handle policy with empty allowed content', () { + const emptyPolicy = Policy( + roleName: 'guest', + allowedContent: [], + ); + + expect(emptyPolicy.isContentAllowed('read'), isFalse); + expect(emptyPolicy.isContentAllowed(''), isFalse); + expect(emptyPolicy.isContentAllowed('any_content'), isFalse); + }); + + test('should handle duplicate content in allowed list', () { + const duplicatePolicy = Policy( + roleName: 'duplicate_role', + allowedContent: ['read', 'read', 'write'], + ); + + expect(duplicatePolicy.isContentAllowed('read'), isTrue); + expect(duplicatePolicy.isContentAllowed('write'), isTrue); + expect(duplicatePolicy.isContentAllowed('delete'), isFalse); + }); + + test('should handle special characters in content', () { + const specialPolicy = Policy( + roleName: 'special_role', + allowedContent: ['read@domain', 'write-file', 'delete_user'], + ); + + expect(specialPolicy.isContentAllowed('read@domain'), isTrue); + expect(specialPolicy.isContentAllowed('write-file'), isTrue); + expect(specialPolicy.isContentAllowed('delete_user'), isTrue); + expect(specialPolicy.isContentAllowed('read'), isFalse); + }); + + test('should handle whitespace in content', () { + const whitespacePolicy = Policy( + roleName: 'whitespace_role', + allowedContent: ['read file', 'write document', 'delete record'], + ); + + expect(whitespacePolicy.isContentAllowed('read file'), isTrue); + expect(whitespacePolicy.isContentAllowed('write document'), isTrue); + expect(whitespacePolicy.isContentAllowed('delete record'), isTrue); + expect(whitespacePolicy.isContentAllowed('readfile'), isFalse); + }); + }); + + group('copyWith', () { + late Policy originalPolicy; + + setUp(() { + originalPolicy = const Policy( + roleName: 'admin', + allowedContent: ['read', 'write'], + metadata: {'level': 'high'}, + ); + }); + + test('should create copy with same values when no parameters provided', + () { + final copy = originalPolicy.copyWith(); + + expect(copy.roleName, equals(originalPolicy.roleName)); + expect(copy.allowedContent, equals(originalPolicy.allowedContent)); + expect(copy.metadata, equals(originalPolicy.metadata)); + expect(copy, isNot(same(originalPolicy))); + }); + + test('should create copy with updated role name', () { + final copy = originalPolicy.copyWith(roleName: 'super_admin'); + + expect(copy.roleName, equals('super_admin')); + expect(copy.allowedContent, equals(originalPolicy.allowedContent)); + expect(copy.metadata, equals(originalPolicy.metadata)); + }); + + test('should create copy with updated allowed content', () { + final newContent = ['read', 'write', 'delete']; + final copy = originalPolicy.copyWith(allowedContent: newContent); + + expect(copy.roleName, equals(originalPolicy.roleName)); + expect(copy.allowedContent, equals(newContent)); + expect(copy.metadata, equals(originalPolicy.metadata)); + }); + + test('should create copy with updated metadata', () { + final newMetadata = {'level': 'low', 'department': 'IT'}; + final copy = originalPolicy.copyWith(metadata: newMetadata); + + expect(copy.roleName, equals(originalPolicy.roleName)); + expect(copy.allowedContent, equals(originalPolicy.allowedContent)); + expect(copy.metadata, equals(newMetadata)); + }); + + test('should create copy with multiple updated fields', () { + final copy = originalPolicy.copyWith( + roleName: 'user', + allowedContent: ['read'], + metadata: {'level': 'normal'}, + ); + + expect(copy.roleName, equals('user')); + expect(copy.allowedContent, equals(['read'])); + expect(copy.metadata, equals({'level': 'normal'})); + }); + + test('should handle empty values in copyWith', () { + final copy = originalPolicy.copyWith( + roleName: '', + allowedContent: [], + metadata: {}, + ); + + expect(copy.roleName, equals('')); + expect(copy.allowedContent, isEmpty); + expect(copy.metadata, isEmpty); + }); + }); + + group('Equality', () { + test('should be equal to itself', () { + const policy = Policy( + roleName: 'admin', + allowedContent: ['read', 'write'], + ); + + expect(policy, equals(policy)); + expect(policy.hashCode, equals(policy.hashCode)); + }); + + test('should be equal to policy with same values', () { + const policy1 = Policy( + roleName: 'admin', + allowedContent: ['read', 'write'], + metadata: {'level': 'high'}, + ); + const policy2 = Policy( + roleName: 'admin', + allowedContent: ['read', 'write'], + metadata: {'level': 'high'}, + ); + + expect(policy1, equals(policy2)); + expect(policy1.hashCode, equals(policy2.hashCode)); + }); + + test('should not be equal to policy with different role name', () { + const policy1 = Policy( + roleName: 'admin', + allowedContent: ['read', 'write'], + ); + const policy2 = Policy( + roleName: 'user', + allowedContent: ['read', 'write'], + ); + + expect(policy1, isNot(equals(policy2))); + expect(policy1.hashCode, isNot(equals(policy2.hashCode))); + }); + + test('should not be equal to policy with different allowed content', () { + const policy1 = Policy( + roleName: 'admin', + allowedContent: ['read', 'write'], + ); + const policy2 = Policy( + roleName: 'admin', + allowedContent: ['read', 'delete'], + ); + + expect(policy1, isNot(equals(policy2))); + expect(policy1.hashCode, isNot(equals(policy2.hashCode))); + }); + + test('should be equal regardless of content order', () { + const policy1 = Policy( + roleName: 'admin', + allowedContent: ['read', 'write'], + ); + const policy2 = Policy( + roleName: 'admin', + allowedContent: ['write', 'read'], + ); + + expect(policy1, equals(policy2)); + expect(policy1.hashCode, equals(policy2.hashCode)); + }); + + test('should not be equal to different object types', () { + const policy = Policy( + roleName: 'admin', + allowedContent: ['read'], + ); + + expect(policy, isNot(equals('admin'))); + expect(policy, isNot(equals(42))); + expect(policy, isNot(equals(null))); + }); + + test('should not consider metadata in equality', () { + const policy1 = Policy( + roleName: 'admin', + allowedContent: ['read', 'write'], + metadata: {'level': 'high'}, + ); + const policy2 = Policy( + roleName: 'admin', + allowedContent: ['read', 'write'], + metadata: {'level': 'low'}, + ); + + expect(policy1, equals(policy2)); + expect(policy1.hashCode, equals(policy2.hashCode)); + }); + }); + + group('toString', () { + test('should return meaningful string representation', () { + const policy = Policy( + roleName: 'admin', + allowedContent: ['read', 'write'], + metadata: {'level': 'high'}, + ); + + final string = policy.toString(); + expect(string, contains('Policy')); + expect(string, contains('roleName: admin')); + expect(string, contains('allowedContent: [read, write]')); + expect(string, contains('metadata: {level: high}')); + }); + + test('should handle empty values in string representation', () { + const policy = Policy( + roleName: '', + allowedContent: [], + metadata: {}, + ); + + final string = policy.toString(); + expect(string, contains('roleName: ')); + expect(string, contains('allowedContent: []')); + expect(string, contains('metadata: {}')); + }); + }); + + group('JSON serialization', () { + test('should serialize to JSON correctly', () { + const policy = Policy( + roleName: 'admin', + allowedContent: ['read', 'write', 'delete'], + metadata: {'level': 'high', 'department': 'IT'}, + ); + + final json = policy.toJson(); + + expect(json, isA>()); + expect(json['roleName'], equals('admin')); + expect(json['allowedContent'], equals(['read', 'write', 'delete'])); + expect(json['metadata'], equals({'level': 'high', 'department': 'IT'})); + }); + + test('should deserialize from JSON correctly', () { + final json = { + 'roleName': 'user', + 'allowedContent': ['read'], + 'metadata': {'level': 'normal'}, + }; + + final policy = Policy.fromJson(json); + + expect(policy.roleName, equals('user')); + expect(policy.allowedContent, equals(['read'])); + expect(policy.metadata, equals({'level': 'normal'})); + }); + + test('should handle JSON with empty values', () { + final json = { + 'roleName': '', + 'allowedContent': [], + 'metadata': {}, + }; + + final policy = Policy.fromJson(json); + + expect(policy.roleName, equals('')); + expect(policy.allowedContent, isEmpty); + expect(policy.metadata, isEmpty); + }); + + test('should handle JSON without metadata', () { + final json = { + 'roleName': 'admin', + 'allowedContent': ['read', 'write'], + }; + + final policy = Policy.fromJson(json); + + expect(policy.roleName, equals('admin')); + expect(policy.allowedContent, equals(['read', 'write'])); + expect(policy.metadata, equals({})); + }); + + test('should round-trip through JSON correctly', () { + const originalPolicy = Policy( + roleName: 'admin', + allowedContent: ['read', 'write', 'delete'], + metadata: {'level': 'high', 'department': 'IT'}, + ); + + final json = originalPolicy.toJson(); + final deserializedPolicy = Policy.fromJson(json); + + expect(deserializedPolicy, equals(originalPolicy)); + }); + + test('should handle complex metadata in JSON', () { + final complexMetadata = { + 'level': 'high', + 'departments': ['IT', 'HR'], + 'nested': { + 'key': 'value', + 'array': [1, 2, 3], + 'boolean': true, + 'number': 42.5, + }, + }; + + final json = { + 'roleName': 'admin', + 'allowedContent': ['read', 'write'], + 'metadata': complexMetadata, + }; + + final policy = Policy.fromJson(json); + + expect(policy.metadata, equals(complexMetadata)); + expect(policy.metadata['nested']!['array'], equals([1, 2, 3])); + }); + }); + + group('Edge cases', () { + test('should handle very long role names', () { + final longRoleName = 'a' * 1000; + final policy = Policy( + roleName: longRoleName, + allowedContent: const ['read'], + ); + + expect(policy.roleName, equals(longRoleName)); + expect(policy.isContentAllowed('read'), isTrue); + }); + + test('should handle very long content items', () { + final longContent = 'a' * 10000; + final policy = Policy( + roleName: 'admin', + allowedContent: [longContent], + ); + + expect(policy.isContentAllowed(longContent), isTrue); + expect(policy.isContentAllowed('different'), isFalse); + }); + + test('should handle large number of allowed content items', () { + final largeContentList = List.generate(1000, (i) => 'content_$i'); + final policy = Policy( + roleName: 'admin', + allowedContent: largeContentList, + ); + + expect(policy.allowedContent.length, equals(1000)); + expect(policy.isContentAllowed('content_500'), isTrue); + expect(policy.isContentAllowed('content_999'), isTrue); + expect(policy.isContentAllowed('nonexistent'), isFalse); + }); + + test('should handle unicode characters', () { + const policy = Policy( + roleName: 'admin', + allowedContent: ['café', 'naïve', 'résumé'], + ); + + expect(policy.isContentAllowed('café'), isTrue); + expect(policy.isContentAllowed('naïve'), isTrue); + expect(policy.isContentAllowed('résumé'), isTrue); + expect(policy.isContentAllowed('cafe'), isFalse); + }); + + test('should handle numbers as content', () { + const policy = Policy( + roleName: 'admin', + allowedContent: ['123', '456', '789'], + ); + + expect(policy.isContentAllowed('123'), isTrue); + expect(policy.isContentAllowed('456'), isTrue); + expect(policy.isContentAllowed('789'), isTrue); + expect(policy.isContentAllowed('999'), isFalse); + }); + }); + + group('Error handling', () { + test('should handle null values in JSON gracefully', () { + final json = { + 'roleName': null, + 'allowedContent': null, + 'metadata': null, + }; + + expect(() => Policy.fromJson(json), throwsA(isA())); + }); + + test('should handle missing required fields in JSON', () { + final json = { + 'roleName': 'admin', + // missing allowedContent + }; + + expect(() => Policy.fromJson(json), throwsA(isA())); + }); + + test('should handle wrong types in JSON', () { + final json = { + 'roleName': 123, // should be string + 'allowedContent': ['read'], + }; + + expect(() => Policy.fromJson(json), throwsA(isA())); + }); + }); + }); +} diff --git a/test/core/role_evaluator_test.dart b/test/core/role_evaluator_test.dart new file mode 100644 index 0000000..db148fe --- /dev/null +++ b/test/core/role_evaluator_test.dart @@ -0,0 +1,369 @@ +import 'package:flutter_test/flutter_test.dart'; +import 'package:flutter_policy_engine/src/core/role_evaluator.dart'; +import 'package:flutter_policy_engine/src/models/policy.dart'; + +void main() { + group('RoleEvaluator', () { + late Map policies; + late RoleEvaluator evaluator; + + setUp(() { + policies = { + 'admin': const Policy( + roleName: 'admin', + allowedContent: ['read', 'write', 'delete'], + metadata: {'level': 'high'}, + ), + 'user': const Policy( + roleName: 'user', + allowedContent: ['read'], + metadata: {'level': 'normal'}, + ), + 'guest': const Policy( + roleName: 'guest', + allowedContent: [], + metadata: {'level': 'low'}, + ), + }; + evaluator = RoleEvaluator(policies); + }); + + group('Constructor', () { + test('should create instance with policies', () { + expect(evaluator, isA()); + }); + + test('should accept empty policies map', () { + const emptyEvaluator = RoleEvaluator({}); + expect(emptyEvaluator, isA()); + }); + + test('should be immutable', () { + expect(evaluator, isA()); + // Verify it's const-constructible + const evaluatorConst = RoleEvaluator({}); + expect(evaluatorConst, isA()); + }); + }); + + group('evaluate', () { + test('should return true for allowed content', () { + expect(evaluator.evaluate('admin', 'read'), isTrue); + expect(evaluator.evaluate('admin', 'write'), isTrue); + expect(evaluator.evaluate('admin', 'delete'), isTrue); + expect(evaluator.evaluate('user', 'read'), isTrue); + }); + + test('should return false for disallowed content', () { + expect(evaluator.evaluate('admin', 'execute'), isFalse); + expect(evaluator.evaluate('user', 'write'), isFalse); + expect(evaluator.evaluate('user', 'delete'), isFalse); + expect(evaluator.evaluate('guest', 'read'), isFalse); + }); + + test('should return false for non-existent role', () { + expect(evaluator.evaluate('nonexistent', 'read'), isFalse); + expect(evaluator.evaluate('', 'read'), isFalse); + }); + + test('should handle case-sensitive content matching', () { + expect(evaluator.evaluate('admin', 'READ'), isFalse); + expect(evaluator.evaluate('admin', 'Read'), isFalse); + expect(evaluator.evaluate('admin', 'read'), isTrue); + }); + + test('should handle empty content string', () { + expect(evaluator.evaluate('admin', ''), isFalse); + expect(evaluator.evaluate('user', ''), isFalse); + expect(evaluator.evaluate('guest', ''), isFalse); + }); + + test('should handle role with empty allowed content', () { + expect(evaluator.evaluate('guest', 'read'), isFalse); + expect(evaluator.evaluate('guest', 'write'), isFalse); + expect(evaluator.evaluate('guest', 'any_content'), isFalse); + }); + + test('should handle duplicate content in allowed list', () { + const duplicatePolicy = Policy( + roleName: 'duplicate_role', + allowedContent: ['read', 'read', 'write'], + ); + const duplicateEvaluator = + RoleEvaluator({'duplicate_role': duplicatePolicy}); + + expect(duplicateEvaluator.evaluate('duplicate_role', 'read'), isTrue); + expect(duplicateEvaluator.evaluate('duplicate_role', 'write'), isTrue); + expect( + duplicateEvaluator.evaluate('duplicate_role', 'delete'), isFalse); + }); + + test('should handle special characters in content', () { + const specialPolicy = Policy( + roleName: 'special_role', + allowedContent: ['read@domain', 'write-file', 'delete_user'], + ); + const specialEvaluator = RoleEvaluator({'special_role': specialPolicy}); + + expect( + specialEvaluator.evaluate('special_role', 'read@domain'), isTrue); + expect(specialEvaluator.evaluate('special_role', 'write-file'), isTrue); + expect( + specialEvaluator.evaluate('special_role', 'delete_user'), isTrue); + expect(specialEvaluator.evaluate('special_role', 'read'), isFalse); + }); + + test('should handle whitespace in content', () { + const whitespacePolicy = Policy( + roleName: 'whitespace_role', + allowedContent: ['read file', 'write document', 'delete record'], + ); + const whitespaceEvaluator = + RoleEvaluator({'whitespace_role': whitespacePolicy}); + + expect(whitespaceEvaluator.evaluate('whitespace_role', 'read file'), + isTrue); + expect( + whitespaceEvaluator.evaluate('whitespace_role', 'write document'), + isTrue); + expect(whitespaceEvaluator.evaluate('whitespace_role', 'delete record'), + isTrue); + expect(whitespaceEvaluator.evaluate('whitespace_role', 'readfile'), + isFalse); + }); + }); + + group('Edge cases', () { + test('should handle very long content strings', () { + final longContent = 'a' * 10000; + final longPolicy = Policy( + roleName: 'long_role', + allowedContent: [longContent], + ); + final longEvaluator = RoleEvaluator({'long_role': longPolicy}); + + expect(longEvaluator.evaluate('long_role', longContent), isTrue); + expect( + longEvaluator.evaluate('long_role', 'different_content'), isFalse); + }); + + test('should handle very long role names', () { + final longRoleName = 'a' * 1000; + final longRolePolicy = Policy( + roleName: longRoleName, + allowedContent: const ['read'], + ); + final longRoleEvaluator = RoleEvaluator({longRoleName: longRolePolicy}); + + expect(longRoleEvaluator.evaluate(longRoleName, 'read'), isTrue); + expect(longRoleEvaluator.evaluate(longRoleName, 'write'), isFalse); + }); + + test('should handle large number of allowed content items', () { + final largeContentList = List.generate(1000, (i) => 'content_$i'); + final largePolicy = Policy( + roleName: 'large_role', + allowedContent: largeContentList, + ); + final largeEvaluator = RoleEvaluator({'large_role': largePolicy}); + + expect(largeEvaluator.evaluate('large_role', 'content_500'), isTrue); + expect(largeEvaluator.evaluate('large_role', 'content_999'), isTrue); + expect(largeEvaluator.evaluate('large_role', 'content_1000'), isFalse); + expect(largeEvaluator.evaluate('large_role', 'nonexistent'), isFalse); + }); + + test('should handle unicode characters in content', () { + const unicodePolicy = Policy( + roleName: 'unicode_role', + allowedContent: ['café', 'naïve', 'résumé', 'über'], + ); + const unicodeEvaluator = RoleEvaluator({'unicode_role': unicodePolicy}); + + expect(unicodeEvaluator.evaluate('unicode_role', 'café'), isTrue); + expect(unicodeEvaluator.evaluate('unicode_role', 'naïve'), isTrue); + expect(unicodeEvaluator.evaluate('unicode_role', 'résumé'), isTrue); + expect(unicodeEvaluator.evaluate('unicode_role', 'über'), isTrue); + expect(unicodeEvaluator.evaluate('unicode_role', 'cafe'), isFalse); + }); + + test('should handle numbers as content', () { + const numberPolicy = Policy( + roleName: 'number_role', + allowedContent: ['123', '456', '789'], + ); + const numberEvaluator = RoleEvaluator({'number_role': numberPolicy}); + + expect(numberEvaluator.evaluate('number_role', '123'), isTrue); + expect(numberEvaluator.evaluate('number_role', '456'), isTrue); + expect(numberEvaluator.evaluate('number_role', '789'), isTrue); + expect(numberEvaluator.evaluate('number_role', '999'), isFalse); + }); + + test('should handle mixed content types', () { + const mixedPolicy = Policy( + roleName: 'mixed_role', + allowedContent: ['read', '123', 'café', 'read@domain', ''], + ); + const mixedEvaluator = RoleEvaluator({'mixed_role': mixedPolicy}); + + expect(mixedEvaluator.evaluate('mixed_role', 'read'), isTrue); + expect(mixedEvaluator.evaluate('mixed_role', '123'), isTrue); + expect(mixedEvaluator.evaluate('mixed_role', 'café'), isTrue); + expect(mixedEvaluator.evaluate('mixed_role', 'read@domain'), isTrue); + expect(mixedEvaluator.evaluate('mixed_role', ''), isTrue); + expect(mixedEvaluator.evaluate('mixed_role', 'write'), isFalse); + }); + }); + + group('Performance tests', () { + test('should handle rapid evaluation calls', () { + const iterations = 10000; + final stopwatch = Stopwatch()..start(); + + for (int i = 0; i < iterations; i++) { + evaluator.evaluate('admin', 'read'); + } + + stopwatch.stop(); + expect(stopwatch.elapsedMilliseconds, + lessThan(1000)); // Should complete within 1 second + }); + + test('should handle evaluation with large policy set', () { + final largePolicies = {}; + for (int i = 0; i < 1000; i++) { + largePolicies['role_$i'] = Policy( + roleName: 'role_$i', + allowedContent: const ['read', 'write'], + ); + } + final largeEvaluator = RoleEvaluator(largePolicies); + + const iterations = 1000; + final stopwatch = Stopwatch()..start(); + + for (int i = 0; i < iterations; i++) { + largeEvaluator.evaluate('role_500', 'read'); + } + + stopwatch.stop(); + expect(stopwatch.elapsedMilliseconds, + lessThan(1000)); // Should complete within 1 second + }); + }); + + group('Integration scenarios', () { + test('should handle typical RBAC scenario', () { + final rbacPolicies = { + 'super_admin': const Policy( + roleName: 'super_admin', + allowedContent: [ + 'read', + 'write', + 'delete', + 'execute', + 'manage_users' + ], + ), + 'admin': const Policy( + roleName: 'admin', + allowedContent: ['read', 'write', 'delete'], + ), + 'moderator': const Policy( + roleName: 'moderator', + allowedContent: ['read', 'write'], + ), + 'user': const Policy( + roleName: 'user', + allowedContent: ['read'], + ), + 'guest': const Policy( + roleName: 'guest', + allowedContent: [], + ), + }; + final rbacEvaluator = RoleEvaluator(rbacPolicies); + + // Test super_admin permissions + expect(rbacEvaluator.evaluate('super_admin', 'read'), isTrue); + expect(rbacEvaluator.evaluate('super_admin', 'manage_users'), isTrue); + + // Test admin permissions + expect(rbacEvaluator.evaluate('admin', 'read'), isTrue); + expect(rbacEvaluator.evaluate('admin', 'delete'), isTrue); + expect(rbacEvaluator.evaluate('admin', 'manage_users'), isFalse); + + // Test user permissions + expect(rbacEvaluator.evaluate('user', 'read'), isTrue); + expect(rbacEvaluator.evaluate('user', 'write'), isFalse); + + // Test guest permissions + expect(rbacEvaluator.evaluate('guest', 'read'), isFalse); + expect(rbacEvaluator.evaluate('guest', 'write'), isFalse); + }); + + test('should handle file system permissions scenario', () { + final filePolicies = { + 'root': const Policy( + roleName: 'root', + allowedContent: [ + 'read', + 'write', + 'delete', + 'execute', + 'chmod', + 'chown' + ], + ), + 'owner': const Policy( + roleName: 'owner', + allowedContent: ['read', 'write', 'delete', 'chmod'], + ), + 'group': const Policy( + roleName: 'group', + allowedContent: ['read', 'write'], + ), + 'other': const Policy( + roleName: 'other', + allowedContent: ['read'], + ), + }; + final fileEvaluator = RoleEvaluator(filePolicies); + + // Test root permissions + expect(fileEvaluator.evaluate('root', 'chown'), isTrue); + expect(fileEvaluator.evaluate('root', 'execute'), isTrue); + + // Test owner permissions + expect(fileEvaluator.evaluate('owner', 'chmod'), isTrue); + expect(fileEvaluator.evaluate('owner', 'chown'), isFalse); + + // Test group permissions + expect(fileEvaluator.evaluate('group', 'write'), isTrue); + expect(fileEvaluator.evaluate('group', 'delete'), isFalse); + + // Test other permissions + expect(fileEvaluator.evaluate('other', 'read'), isTrue); + expect(fileEvaluator.evaluate('other', 'write'), isFalse); + }); + }); + + group('Error handling', () { + test('should handle null role name gracefully', () { + expect(() => evaluator.evaluate('', 'read'), returnsNormally); + expect(evaluator.evaluate('', 'read'), isFalse); + }); + + test('should handle null content gracefully', () { + expect(() => evaluator.evaluate('admin', ''), returnsNormally); + expect(evaluator.evaluate('admin', ''), isFalse); + }); + + test('should handle evaluation with empty policies', () { + const emptyEvaluator = RoleEvaluator({}); + expect(emptyEvaluator.evaluate('any_role', 'any_content'), isFalse); + }); + }); + }); +} From f97aa07976f52d227b2613603703dd3c3b8be513 Mon Sep 17 00:00:00 2001 From: David Garcia Ruiz Date: Wed, 16 Jul 2025 11:16:12 +0200 Subject: [PATCH 14/18] refactor(logging): enhance LogHandler with detailed documentation and structured logging --- lib/src/utils/log_handler.dart | 234 +++++++++++++++++++++++++++++---- 1 file changed, 207 insertions(+), 27 deletions(-) diff --git a/lib/src/utils/log_handler.dart b/lib/src/utils/log_handler.dart index f9bdc15..1be9c84 100644 --- a/lib/src/utils/log_handler.dart +++ b/lib/src/utils/log_handler.dart @@ -1,30 +1,50 @@ import 'dart:developer' as developer; import 'package:flutter/foundation.dart'; -/// Configurable log levels +/// Configurable log levels for the policy engine logging system. +/// +/// Log levels are ordered from least to most severe: +/// - [debug]: Detailed information for debugging purposes +/// - [info]: General information about application flow +/// - [warning]: Indicates a potential issue that doesn't stop execution +/// - [error]: Indicates an error that may affect functionality enum LogLevel { + /// Detailed information for debugging purposes debug(0), + + /// General information about application flow info(1), + + /// Indicates a potential issue that doesn't stop execution warning(2), + + /// Indicates an error that may affect functionality error(3); const LogLevel(this.value); + + /// The numeric value representing the log level severity final int value; } -/// Structured log data for better debugging +/// Structured log data container for enhanced debugging and monitoring. +/// +/// This class encapsulates all relevant information for a log entry, +/// including contextual data, timing information, and error details. +/// It provides a consistent structure for logging across the policy engine. class LogData { - final String message; - final LogLevel level; - final String? tag; - final String? screen; - final String? operation; - final Duration? duration; - final Object? error; - final StackTrace? stackTrace; - final Map? context; - final DateTime timestamp; - + /// Creates a new LogData instance with the specified parameters. + /// + /// [message] The main log message + /// [level] The severity level of the log entry + /// [tag] Optional tag for categorizing logs + /// [screen] Current screen or context where the log was generated + /// [operation] Specific operation being performed + /// [duration] Duration of the operation (for performance logging) + /// [error] Associated error object, if any + /// [stackTrace] Stack trace for error logging + /// [context] Additional contextual data as key-value pairs + /// [timestamp] Timestamp when the log entry was created (defaults to current time) LogData({ required this.message, required this.level, @@ -38,7 +58,40 @@ class LogData { DateTime? timestamp, }) : timestamp = timestamp ?? DateTime.now(); - /// Convert to structured log format + /// The main log message + final String message; + + /// The severity level of the log entry + final LogLevel level; + + /// Optional tag for categorizing logs + final String? tag; + + /// Current screen or context where the log was generated + final String? screen; + + /// Specific operation being performed + final String? operation; + + /// Duration of the operation (for performance logging) + final Duration? duration; + + /// Associated error object, if any + final Object? error; + + /// Stack trace for error logging + final StackTrace? stackTrace; + + /// Additional contextual data as key-value pairs + final Map? context; + + /// Timestamp when the log entry was created + final DateTime timestamp; + + /// Converts the log data to a structured format suitable for external logging systems. + /// + /// Returns a [Map] containing all relevant log information in a standardized format. + /// This is particularly useful for integration with external monitoring tools. Map toStructuredLog() { return { 'message': message, @@ -54,6 +107,17 @@ class LogData { } } +/// Centralized logging handler for the Flutter Policy Engine. +/// +/// This class provides a comprehensive logging solution with the following features: +/// - Configurable log levels and filtering +/// - Structured logging for better debugging +/// - Performance timing capabilities +/// - Screen/context-aware logging +/// - Integration with Flutter's developer tools +/// +/// The LogHandler is designed to be used statically throughout the application +/// and can be configured once at startup for consistent logging behavior. class LogHandler { static const String _defaultTag = '[PolicyEngine]'; static bool _isDebugMode = kDebugMode; @@ -66,25 +130,39 @@ class LogHandler { static bool _useStructuredLogging = true; static bool _useDeveloperLog = true; - /// Set the current screen for logging context + /// Sets the current screen context for all subsequent log entries. + /// + /// This method updates the logging context to include the current screen name, + /// which helps in debugging by providing better context for log entries. + /// + /// [screenName] The name of the current screen or context static void setScreen(String screenName) { _currentScreen = screenName; _updateTag(); } - /// Set a custom tag for the current screen + /// Sets a custom tag for a specific screen while maintaining screen context. + /// + /// This method allows for more granular control over log categorization + /// by providing a custom tag for specific screens or contexts. + /// + /// [screenName] The name of the current screen or context + /// [customTag] The custom tag to use for this screen static void setScreenTag(String screenName, String customTag) { _currentScreen = screenName; _tag = customTag; } - /// Get the current screen name + /// Gets the current screen name being used for logging context. static String get currentScreen => _currentScreen; - /// Get the current tag + /// Gets the current tag being used for log categorization. static String get currentTag => _tag; - /// Update tag based on current screen + /// Updates the tag based on the current screen context. + /// + /// This internal method ensures that the tag reflects the current screen + /// when no custom tag has been explicitly set. static void _updateTag() { if (_currentScreen.isNotEmpty) { _tag = '[$_currentScreen]'; @@ -93,7 +171,20 @@ class LogHandler { } } - /// Configure the LogHandler settings + /// Configures the LogHandler with custom settings. + /// + /// This method allows for comprehensive configuration of the logging system. + /// All parameters are optional and will use sensible defaults if not provided. + /// + /// [tag] Custom tag for log categorization + /// [screen] Initial screen context + /// [isDebugMode] Whether to enable debug mode logging + /// [includeTimestamp] Whether to include timestamps in log entries + /// [includeStackTrace] Whether to include stack traces for errors + /// [includeSystemInfo] Whether to include system information in logs + /// [minLogLevel] Minimum log level to output (filters out lower levels) + /// [useStructuredLogging] Whether to use structured logging format + /// [useDeveloperLog] Whether to use Flutter's developer.log static void configure({ String? tag, String? screen, @@ -121,7 +212,12 @@ class LogHandler { } } - /// Internal method to output logs using dart:developer + /// Internal method to output logs using Flutter's developer.log. + /// + /// This method handles the actual log output using Flutter's built-in + /// developer tools for better debugging experience. + /// + /// [logData] The structured log data to output static void _logWithDeveloper(LogData logData) { if (!_useDeveloperLog) return; @@ -146,7 +242,20 @@ class LogHandler { } } - /// Generic log method with configurable parameters + /// Generic log method with configurable parameters. + /// + /// This is the core logging method that handles all log entry creation + /// and output. It respects the current configuration settings and + /// only outputs logs that meet the minimum level requirements. + /// + /// [message] The main log message + /// [level] The severity level of the log entry + /// [error] Associated error object, if any + /// [stackTrace] Stack trace for error logging + /// [context] Additional contextual data + /// [operation] Specific operation being performed + /// [duration] Duration of the operation (for performance logging) + /// [screenOverride] Override the current screen context static void output( String message, { LogLevel level = LogLevel.debug, @@ -175,7 +284,18 @@ class LogHandler { _logWithDeveloper(logData); } - /// Convenience methods for different log levels + /// Logs a debug-level message. + /// + /// Debug logs provide detailed information useful for debugging + /// and development purposes. These are typically filtered out in production. + /// + /// [message] The debug message + /// [error] Associated error object, if any + /// [stackTrace] Stack trace for error logging + /// [context] Additional contextual data + /// [operation] Specific operation being performed + /// [duration] Duration of the operation + /// [screenOverride] Override the current screen context static void debug( String message, { Object? error, @@ -197,6 +317,18 @@ class LogHandler { ); } + /// Logs an info-level message. + /// + /// Info logs provide general information about application flow + /// and are useful for understanding normal operation. + /// + /// [message] The info message + /// [error] Associated error object, if any + /// [stackTrace] Stack trace for error logging + /// [context] Additional contextual data + /// [operation] Specific operation being performed + /// [duration] Duration of the operation + /// [screenOverride] Override the current screen context static void info( String message, { Object? error, @@ -218,6 +350,18 @@ class LogHandler { ); } + /// Logs a warning-level message. + /// + /// Warning logs indicate potential issues that don't stop execution + /// but should be investigated. + /// + /// [message] The warning message + /// [error] Associated error object, if any + /// [stackTrace] Stack trace for error logging + /// [context] Additional contextual data + /// [operation] Specific operation being performed + /// [duration] Duration of the operation + /// [screenOverride] Override the current screen context static void warning( String message, { Object? error, @@ -239,6 +383,18 @@ class LogHandler { ); } + /// Logs an error-level message. + /// + /// Error logs indicate actual errors that may affect functionality + /// and should be addressed immediately. + /// + /// [message] The error message + /// [error] Associated error object, if any + /// [stackTrace] Stack trace for error logging + /// [context] Additional contextual data + /// [operation] Specific operation being performed + /// [duration] Duration of the operation + /// [screenOverride] Override the current screen context static void error( String message, { Object? error, @@ -260,7 +416,13 @@ class LogHandler { ); } - /// Performance logging with timing + /// Executes a callback function and logs its execution time. + /// + /// This method is useful for performance monitoring and debugging. + /// It automatically logs the duration of the operation upon completion. + /// + /// [operation] Name of the operation being timed + /// [callback] The function to execute and time static void time(String operation, void Function() callback) { final stopwatch = Stopwatch()..start(); try { @@ -275,7 +437,14 @@ class LogHandler { } } - /// Async performance logging + /// Executes an async callback function and logs its execution time. + /// + /// This method is useful for performance monitoring of asynchronous operations. + /// It automatically logs the duration of the operation upon completion. + /// + /// [operation] Name of the operation being timed + /// [callback] The async function to execute and time + /// Returns the result of the async operation static Future timeAsync( String operation, Future Function() callback, @@ -294,12 +463,23 @@ class LogHandler { } } - /// Legacy method for backward compatibility + /// Legacy method for backward compatibility. + /// + /// This method maintains compatibility with existing code that uses + /// the old logging interface. It delegates to the debug method. + /// + /// [message] The log message + /// [error] Associated error object, if any + /// [stackTrace] Stack trace for error logging static void show(String message, {Object? error, StackTrace? stackTrace}) { debug(message, error: error, stackTrace: stackTrace); } - /// Reset configuration to defaults + /// Resets the LogHandler configuration to default values. + /// + /// This method restores all configuration settings to their initial + /// default values, which is useful for testing or resetting the + /// logging system to a known state. static void reset() { _tag = _defaultTag; _currentScreen = ''; From c14be9c9a1007138fe3e3973a43ed3a19245e5c0 Mon Sep 17 00:00:00 2001 From: David Garcia Ruiz Date: Wed, 16 Jul 2025 11:21:24 +0200 Subject: [PATCH 15/18] refactor(tests): improve readability and maintainability by restructuring policy test cases --- lib/src/utils/log_handler.dart | 3 ++ test/core/memory_policy_storage_test.dart | 62 +++++++++++++---------- test/core/policy_manager_test.dart | 2 + test/flutter_policy_engine_test.dart | 4 -- 4 files changed, 40 insertions(+), 31 deletions(-) diff --git a/lib/src/utils/log_handler.dart b/lib/src/utils/log_handler.dart index 1be9c84..616577e 100644 --- a/lib/src/utils/log_handler.dart +++ b/lib/src/utils/log_handler.dart @@ -123,8 +123,11 @@ class LogHandler { static bool _isDebugMode = kDebugMode; static String _tag = _defaultTag; static String _currentScreen = ''; + // ignore: unused_field static bool _includeTimestamp = true; + // ignore: unused_field static bool _includeStackTrace = true; + // ignore: unused_field static bool _includeSystemInfo = false; static LogLevel _minLogLevel = LogLevel.debug; static bool _useStructuredLogging = true; diff --git a/test/core/memory_policy_storage_test.dart b/test/core/memory_policy_storage_test.dart index dbc56fb..cf1f7a4 100644 --- a/test/core/memory_policy_storage_test.dart +++ b/test/core/memory_policy_storage_test.dart @@ -53,13 +53,15 @@ void main() { final loadedPolicies = await storage.loadPolicies(); // Modify the loaded policies - (loadedPolicies['admin']!['permissions'] as List) - .add('delete'); + final adminPolicy = loadedPolicies['admin']! as Map; + final permissions = adminPolicy['permissions'] as List; + permissions.add('delete'); // Reload to verify original wasn't modified final reloadedPolicies = await storage.loadPolicies(); - expect(reloadedPolicies['admin']!['permissions'], - equals(['read', 'write'])); + final reloadedAdminPolicy = + reloadedPolicies['admin']! as Map; + expect(reloadedAdminPolicy['permissions'], equals(['read', 'write'])); }); test('should handle complex nested structures', () async { @@ -82,8 +84,10 @@ void main() { final loadedPolicies = await storage.loadPolicies(); expect(loadedPolicies, equals(testPolicies)); - expect(loadedPolicies['admin']!['metadata']!['nested']!['array'], - equals([1, 2, 3])); + final adminPolicy = loadedPolicies['admin']! as Map; + final metadata = adminPolicy['metadata'] as Map; + final nested = metadata['nested'] as Map; + expect(nested['array'], equals([1, 2, 3])); }); }); @@ -140,14 +144,15 @@ void main() { await storage.savePolicies(testPolicies); // Modify the original policies - final permissions = - testPolicies['admin']!['permissions'] as List; + final adminPolicy = testPolicies['admin']! as Map; + final permissions = adminPolicy['permissions'] as List; permissions.add('delete'); // Reload to verify stored policies weren't modified final loadedPolicies = await storage.loadPolicies(); - expect( - loadedPolicies['admin']!['permissions'], equals(['read', 'write'])); + final loadedAdminPolicy = + loadedPolicies['admin']! as Map; + expect(loadedAdminPolicy['permissions'], equals(['read', 'write'])); }); test('should handle empty policies map', () async { @@ -190,7 +195,8 @@ void main() { final loadedPolicies = await storage.loadPolicies(); expect(loadedPolicies.length, equals(1000)); - expect(loadedPolicies['policy_500']!['id'], equals(500)); + final policy500 = loadedPolicies['policy_500']! as Map; + expect(policy500['id'], equals(500)); }); }); @@ -376,14 +382,14 @@ void main() { await storage.savePolicies(testPolicies); final loadedPolicies = await storage.loadPolicies(); - expect( - loadedPolicies['admin']!['level1']!['level2']!['level3']![ - 'level4']!['level5']!['value'], - equals('deep_value')); - expect( - loadedPolicies['admin']!['level1']!['level2']!['level3']![ - 'level4']!['level5']!['array'], - equals([1, 2, 3, 4, 5])); + final adminPolicy = loadedPolicies['admin']! as Map; + final level1 = adminPolicy['level1'] as Map; + final level2 = level1['level2'] as Map; + final level3 = level2['level3'] as Map; + final level4 = level3['level4'] as Map; + final level5 = level4['level5'] as Map; + expect(level5['value'], equals('deep_value')); + expect(level5['array'], equals([1, 2, 3, 4, 5])); }); test('should handle policies with various data types', () async { @@ -402,13 +408,14 @@ void main() { await storage.savePolicies(testPolicies); final loadedPolicies = await storage.loadPolicies(); - expect(loadedPolicies['admin']!['string'], equals('value')); - expect(loadedPolicies['admin']!['int'], equals(42)); - expect(loadedPolicies['admin']!['double'], equals(3.14)); - expect(loadedPolicies['admin']!['bool'], equals(true)); - expect(loadedPolicies['admin']!['list'], equals([1, 2, 3])); - expect(loadedPolicies['admin']!['map'], equals({'key': 'value'})); - expect(loadedPolicies['admin']!['null'], isNull); + final adminPolicy = loadedPolicies['admin']! as Map; + expect(adminPolicy['string'], equals('value')); + expect(adminPolicy['int'], equals(42)); + expect(adminPolicy['double'], equals(3.14)); + expect(adminPolicy['bool'], equals(true)); + expect(adminPolicy['list'], equals([1, 2, 3])); + expect(adminPolicy['map'], equals({'key': 'value'})); + expect(adminPolicy['null'], isNull); }); }); @@ -427,7 +434,8 @@ void main() { final loadedPolicies = await storage.loadPolicies(); expect( loadedPolicies.length, equals(1)); // Only last save should remain - expect(loadedPolicies['policy_99']!['id'], equals(99)); + final policy99 = loadedPolicies['policy_99']! as Map; + expect(policy99['id'], equals(99)); }); test('should handle rapid load operations', () async { diff --git a/test/core/policy_manager_test.dart b/test/core/policy_manager_test.dart index 955068f..636dcaf 100644 --- a/test/core/policy_manager_test.dart +++ b/test/core/policy_manager_test.dart @@ -6,6 +6,7 @@ import 'package:flutter_policy_engine/src/core/interfaces/i_policy_storage.dart' import 'package:flutter_policy_engine/src/models/policy.dart'; /// Mock implementation of IPolicyStorage for testing +// ignore: must_be_immutable class MockPolicyStorage implements IPolicyStorage { Map _policies = {}; bool _shouldThrowError = false; @@ -42,6 +43,7 @@ class MockPolicyStorage implements IPolicyStorage { } /// Mock implementation of IPolicyEvaluator for testing +// ignore: must_be_immutable class MockPolicyEvaluator implements IPolicyEvaluator { final Map _evaluationResults = {}; bool _shouldThrowError = false; diff --git a/test/flutter_policy_engine_test.dart b/test/flutter_policy_engine_test.dart index 1a67f3d..ab73b3a 100644 --- a/test/flutter_policy_engine_test.dart +++ b/test/flutter_policy_engine_test.dart @@ -1,5 +1 @@ -import 'package:flutter_test/flutter_test.dart'; - -import 'package:flutter_policy_engine/flutter_policy_engine.dart'; - void main() {} From 4834a66d3f0cc019e8c2e2a99c3b3e38c8f3ef60 Mon Sep 17 00:00:00 2001 From: David Garcia Ruiz Date: Wed, 16 Jul 2025 17:22:54 +0200 Subject: [PATCH 16/18] refactor(tests): enhance type safety and readability in policy test assertions --- test/core/policy_test.dart | 5 ++++- test/utils/json_handler_test.dart | 6 +++--- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/test/core/policy_test.dart b/test/core/policy_test.dart index 565bcd4..02e800b 100644 --- a/test/core/policy_test.dart +++ b/test/core/policy_test.dart @@ -432,7 +432,10 @@ void main() { final policy = Policy.fromJson(json); expect(policy.metadata, equals(complexMetadata)); - expect(policy.metadata['nested']!['array'], equals([1, 2, 3])); + expect( + (policy.metadata['nested'] as Map)['array'], + equals([1, 2, 3]), + ); }); }); diff --git a/test/utils/json_handler_test.dart b/test/utils/json_handler_test.dart index 7236761..e6f95aa 100644 --- a/test/utils/json_handler_test.dart +++ b/test/utils/json_handler_test.dart @@ -93,9 +93,9 @@ class TestPolicy { metadata.entries.every((entry) { final otherValue = other.metadata[entry.key]; if (entry.value is List && otherValue is List) { - return entry.value.length == otherValue.length && - (entry.value as List) - .every((item) => otherValue.contains(item)); + final valueList = entry.value as List; + return valueList.length == otherValue.length && + valueList.every((item) => otherValue.contains(item)); } return entry.value == otherValue; }); From f1d5e6d40713c6b9e735b05264e89fbf24a28e2d Mon Sep 17 00:00:00 2001 From: David Garcia Ruiz Date: Wed, 16 Jul 2025 19:05:52 +0200 Subject: [PATCH 17/18] chore(android): update Flutter version to 3.29.3 and add build files for multiple architectures --- .fvmrc | 2 +- .../.cmake/api/v1/query/client-agp/cache-v2 | 0 .../api/v1/query/client-agp/cmakeFiles-v1 | 0 .../api/v1/query/client-agp/codemodel-v2 | 0 .../reply/cache-v2-231da6deb351aab7a9df.json | 1391 +++++++++++++++++ .../cmakeFiles-v1-6a251857cb72fe08653c.json | 799 ++++++++++ .../codemodel-v2-c904591b92c35ff1acfb.json | 43 + ...irectory-.-Debug-f5ebdc15457944623624.json | 14 + .../reply/index-2025-07-16T16-59-48-0167.json | 92 ++ .../Debug/28432r45/arm64-v8a/CMakeCache.txt | 405 +++++ .../3.22.1-g37088a8/CMakeCCompiler.cmake | 72 + .../3.22.1-g37088a8/CMakeCXXCompiler.cmake | 83 + .../CMakeDetermineCompilerABI_C.bin | Bin 0 -> 7912 bytes .../CMakeDetermineCompilerABI_CXX.bin | Bin 0 -> 8080 bytes .../3.22.1-g37088a8/CMakeSystem.cmake | 15 + .../CompilerIdC/CMakeCCompilerId.c | 803 ++++++++++ .../CompilerIdC/CMakeCCompilerId.o | Bin 0 -> 6064 bytes .../CompilerIdCXX/CMakeCXXCompilerId.cpp | 791 ++++++++++ .../CompilerIdCXX/CMakeCXXCompilerId.o | Bin 0 -> 6080 bytes .../CMakeFiles/TargetDirectories.txt | 2 + .../arm64-v8a/CMakeFiles/cmake.check_cache | 1 + .../28432r45/arm64-v8a/CMakeFiles/rules.ninja | 45 + .../arm64-v8a/additional_project_files.txt | 0 .../arm64-v8a/android_gradle_build.json | 28 + .../arm64-v8a/android_gradle_build_mini.json | 20 + .../.cxx/Debug/28432r45/arm64-v8a/build.ninja | 112 ++ .../28432r45/arm64-v8a/build_file_index.txt | 1 + .../28432r45/arm64-v8a/cmake_install.cmake | 54 + .../arm64-v8a/configure_fingerprint.bin | 28 + .../arm64-v8a/metadata_generation_command.txt | 20 + .../28432r45/arm64-v8a/prefab_config.json | 4 + .../arm64-v8a/symbol_folder_index.txt | 1 + .../.cmake/api/v1/query/client-agp/cache-v2 | 0 .../api/v1/query/client-agp/cmakeFiles-v1 | 0 .../api/v1/query/client-agp/codemodel-v2 | 0 .../reply/cache-v2-b53c83439c981136ff8a.json | 1391 +++++++++++++++++ .../cmakeFiles-v1-cfacb2528081544122e5.json | 799 ++++++++++ .../codemodel-v2-d52978b42d2634fbe207.json | 43 + ...irectory-.-Debug-f5ebdc15457944623624.json | 14 + .../reply/index-2025-07-16T16-59-53-0566.json | 92 ++ .../Debug/28432r45/armeabi-v7a/CMakeCache.txt | 405 +++++ .../3.22.1-g37088a8/CMakeCCompiler.cmake | 72 + .../3.22.1-g37088a8/CMakeCXXCompiler.cmake | 83 + .../CMakeDetermineCompilerABI_C.bin | Bin 0 -> 5756 bytes .../CMakeDetermineCompilerABI_CXX.bin | Bin 0 -> 5908 bytes .../3.22.1-g37088a8/CMakeSystem.cmake | 15 + .../CompilerIdC/CMakeCCompilerId.c | 803 ++++++++++ .../CompilerIdC/CMakeCCompilerId.o | Bin 0 -> 4160 bytes .../CompilerIdCXX/CMakeCXXCompilerId.cpp | 791 ++++++++++ .../CompilerIdCXX/CMakeCXXCompilerId.o | Bin 0 -> 4196 bytes .../CMakeFiles/TargetDirectories.txt | 2 + .../armeabi-v7a/CMakeFiles/cmake.check_cache | 1 + .../armeabi-v7a/CMakeFiles/rules.ninja | 45 + .../armeabi-v7a/additional_project_files.txt | 0 .../armeabi-v7a/android_gradle_build.json | 28 + .../android_gradle_build_mini.json | 20 + .../Debug/28432r45/armeabi-v7a/build.ninja | 112 ++ .../28432r45/armeabi-v7a/build_file_index.txt | 1 + .../28432r45/armeabi-v7a/cmake_install.cmake | 54 + .../armeabi-v7a/configure_fingerprint.bin | 28 + .../metadata_generation_command.txt | 20 + .../28432r45/armeabi-v7a/prefab_config.json | 4 + .../armeabi-v7a/symbol_folder_index.txt | 1 + .../app/.cxx/Debug/28432r45/hash_key.txt | 27 + .../.cmake/api/v1/query/client-agp/cache-v2 | 0 .../api/v1/query/client-agp/cmakeFiles-v1 | 0 .../api/v1/query/client-agp/codemodel-v2 | 0 .../reply/cache-v2-b0f66089ba717e3aabc8.json | 1391 +++++++++++++++++ .../cmakeFiles-v1-224224c2181f7df86e06.json | 799 ++++++++++ .../codemodel-v2-6cda0072005d68f787b9.json | 43 + ...irectory-.-Debug-f5ebdc15457944623624.json | 14 + .../reply/index-2025-07-16T16-59-53-0866.json | 92 ++ .../.cxx/Debug/28432r45/x86/CMakeCache.txt | 405 +++++ .../3.22.1-g37088a8/CMakeCCompiler.cmake | 72 + .../3.22.1-g37088a8/CMakeCXXCompiler.cmake | 83 + .../CMakeDetermineCompilerABI_C.bin | Bin 0 -> 5704 bytes .../CMakeDetermineCompilerABI_CXX.bin | Bin 0 -> 5844 bytes .../3.22.1-g37088a8/CMakeSystem.cmake | 15 + .../CompilerIdC/CMakeCCompilerId.c | 803 ++++++++++ .../CompilerIdC/CMakeCCompilerId.o | Bin 0 -> 3944 bytes .../CompilerIdCXX/CMakeCXXCompilerId.cpp | 791 ++++++++++ .../CompilerIdCXX/CMakeCXXCompilerId.o | Bin 0 -> 3976 bytes .../x86/CMakeFiles/TargetDirectories.txt | 2 + .../28432r45/x86/CMakeFiles/cmake.check_cache | 1 + .../Debug/28432r45/x86/CMakeFiles/rules.ninja | 45 + .../28432r45/x86/additional_project_files.txt | 0 .../28432r45/x86/android_gradle_build.json | 28 + .../x86/android_gradle_build_mini.json | 20 + .../app/.cxx/Debug/28432r45/x86/build.ninja | 112 ++ .../Debug/28432r45/x86/build_file_index.txt | 1 + .../Debug/28432r45/x86/cmake_install.cmake | 54 + .../28432r45/x86/configure_fingerprint.bin | 28 + .../x86/metadata_generation_command.txt | 20 + .../Debug/28432r45/x86/prefab_config.json | 4 + .../28432r45/x86/symbol_folder_index.txt | 1 + .../.cmake/api/v1/query/client-agp/cache-v2 | 0 .../api/v1/query/client-agp/cmakeFiles-v1 | 0 .../api/v1/query/client-agp/codemodel-v2 | 0 .../reply/cache-v2-8c4d4f797013eea35522.json | 1391 +++++++++++++++++ .../cmakeFiles-v1-fec6ffb157555fe499a1.json | 799 ++++++++++ .../codemodel-v2-2649df7336bb2d20f6ae.json | 43 + ...irectory-.-Debug-f5ebdc15457944623624.json | 14 + .../reply/index-2025-07-16T16-59-54-0121.json | 92 ++ .../.cxx/Debug/28432r45/x86_64/CMakeCache.txt | 405 +++++ .../3.22.1-g37088a8/CMakeCCompiler.cmake | 72 + .../3.22.1-g37088a8/CMakeCXXCompiler.cmake | 83 + .../CMakeDetermineCompilerABI_C.bin | Bin 0 -> 6928 bytes .../CMakeDetermineCompilerABI_CXX.bin | Bin 0 -> 7088 bytes .../3.22.1-g37088a8/CMakeSystem.cmake | 15 + .../CompilerIdC/CMakeCCompilerId.c | 803 ++++++++++ .../CompilerIdC/CMakeCCompilerId.o | Bin 0 -> 5440 bytes .../CompilerIdCXX/CMakeCXXCompilerId.cpp | 791 ++++++++++ .../CompilerIdCXX/CMakeCXXCompilerId.o | Bin 0 -> 5488 bytes .../x86_64/CMakeFiles/TargetDirectories.txt | 2 + .../x86_64/CMakeFiles/cmake.check_cache | 1 + .../28432r45/x86_64/CMakeFiles/rules.ninja | 45 + .../x86_64/additional_project_files.txt | 0 .../28432r45/x86_64/android_gradle_build.json | 28 + .../x86_64/android_gradle_build_mini.json | 20 + .../.cxx/Debug/28432r45/x86_64/build.ninja | 112 ++ .../28432r45/x86_64/build_file_index.txt | 1 + .../Debug/28432r45/x86_64/cmake_install.cmake | 54 + .../28432r45/x86_64/configure_fingerprint.bin | 28 + .../x86_64/metadata_generation_command.txt | 20 + .../Debug/28432r45/x86_64/prefab_config.json | 4 + .../28432r45/x86_64/symbol_folder_index.txt | 1 + example/android/app/build.gradle | 4 + .../gradle/wrapper/gradle-wrapper.properties | 4 +- example/android/settings.gradle | 4 +- 129 files changed, 19333 insertions(+), 4 deletions(-) create mode 100644 example/android/app/.cxx/Debug/28432r45/arm64-v8a/.cmake/api/v1/query/client-agp/cache-v2 create mode 100644 example/android/app/.cxx/Debug/28432r45/arm64-v8a/.cmake/api/v1/query/client-agp/cmakeFiles-v1 create mode 100644 example/android/app/.cxx/Debug/28432r45/arm64-v8a/.cmake/api/v1/query/client-agp/codemodel-v2 create mode 100644 example/android/app/.cxx/Debug/28432r45/arm64-v8a/.cmake/api/v1/reply/cache-v2-231da6deb351aab7a9df.json create mode 100644 example/android/app/.cxx/Debug/28432r45/arm64-v8a/.cmake/api/v1/reply/cmakeFiles-v1-6a251857cb72fe08653c.json create mode 100644 example/android/app/.cxx/Debug/28432r45/arm64-v8a/.cmake/api/v1/reply/codemodel-v2-c904591b92c35ff1acfb.json create mode 100644 example/android/app/.cxx/Debug/28432r45/arm64-v8a/.cmake/api/v1/reply/directory-.-Debug-f5ebdc15457944623624.json create mode 100644 example/android/app/.cxx/Debug/28432r45/arm64-v8a/.cmake/api/v1/reply/index-2025-07-16T16-59-48-0167.json create mode 100644 example/android/app/.cxx/Debug/28432r45/arm64-v8a/CMakeCache.txt create mode 100644 example/android/app/.cxx/Debug/28432r45/arm64-v8a/CMakeFiles/3.22.1-g37088a8/CMakeCCompiler.cmake create mode 100644 example/android/app/.cxx/Debug/28432r45/arm64-v8a/CMakeFiles/3.22.1-g37088a8/CMakeCXXCompiler.cmake create mode 100755 example/android/app/.cxx/Debug/28432r45/arm64-v8a/CMakeFiles/3.22.1-g37088a8/CMakeDetermineCompilerABI_C.bin create mode 100755 example/android/app/.cxx/Debug/28432r45/arm64-v8a/CMakeFiles/3.22.1-g37088a8/CMakeDetermineCompilerABI_CXX.bin create mode 100644 example/android/app/.cxx/Debug/28432r45/arm64-v8a/CMakeFiles/3.22.1-g37088a8/CMakeSystem.cmake create mode 100644 example/android/app/.cxx/Debug/28432r45/arm64-v8a/CMakeFiles/3.22.1-g37088a8/CompilerIdC/CMakeCCompilerId.c create mode 100644 example/android/app/.cxx/Debug/28432r45/arm64-v8a/CMakeFiles/3.22.1-g37088a8/CompilerIdC/CMakeCCompilerId.o create mode 100644 example/android/app/.cxx/Debug/28432r45/arm64-v8a/CMakeFiles/3.22.1-g37088a8/CompilerIdCXX/CMakeCXXCompilerId.cpp create mode 100644 example/android/app/.cxx/Debug/28432r45/arm64-v8a/CMakeFiles/3.22.1-g37088a8/CompilerIdCXX/CMakeCXXCompilerId.o create mode 100644 example/android/app/.cxx/Debug/28432r45/arm64-v8a/CMakeFiles/TargetDirectories.txt create mode 100644 example/android/app/.cxx/Debug/28432r45/arm64-v8a/CMakeFiles/cmake.check_cache create mode 100644 example/android/app/.cxx/Debug/28432r45/arm64-v8a/CMakeFiles/rules.ninja create mode 100644 example/android/app/.cxx/Debug/28432r45/arm64-v8a/additional_project_files.txt create mode 100644 example/android/app/.cxx/Debug/28432r45/arm64-v8a/android_gradle_build.json create mode 100644 example/android/app/.cxx/Debug/28432r45/arm64-v8a/android_gradle_build_mini.json create mode 100644 example/android/app/.cxx/Debug/28432r45/arm64-v8a/build.ninja create mode 100644 example/android/app/.cxx/Debug/28432r45/arm64-v8a/build_file_index.txt create mode 100644 example/android/app/.cxx/Debug/28432r45/arm64-v8a/cmake_install.cmake create mode 100644 example/android/app/.cxx/Debug/28432r45/arm64-v8a/configure_fingerprint.bin create mode 100644 example/android/app/.cxx/Debug/28432r45/arm64-v8a/metadata_generation_command.txt create mode 100644 example/android/app/.cxx/Debug/28432r45/arm64-v8a/prefab_config.json create mode 100644 example/android/app/.cxx/Debug/28432r45/arm64-v8a/symbol_folder_index.txt create mode 100644 example/android/app/.cxx/Debug/28432r45/armeabi-v7a/.cmake/api/v1/query/client-agp/cache-v2 create mode 100644 example/android/app/.cxx/Debug/28432r45/armeabi-v7a/.cmake/api/v1/query/client-agp/cmakeFiles-v1 create mode 100644 example/android/app/.cxx/Debug/28432r45/armeabi-v7a/.cmake/api/v1/query/client-agp/codemodel-v2 create mode 100644 example/android/app/.cxx/Debug/28432r45/armeabi-v7a/.cmake/api/v1/reply/cache-v2-b53c83439c981136ff8a.json create mode 100644 example/android/app/.cxx/Debug/28432r45/armeabi-v7a/.cmake/api/v1/reply/cmakeFiles-v1-cfacb2528081544122e5.json create mode 100644 example/android/app/.cxx/Debug/28432r45/armeabi-v7a/.cmake/api/v1/reply/codemodel-v2-d52978b42d2634fbe207.json create mode 100644 example/android/app/.cxx/Debug/28432r45/armeabi-v7a/.cmake/api/v1/reply/directory-.-Debug-f5ebdc15457944623624.json create mode 100644 example/android/app/.cxx/Debug/28432r45/armeabi-v7a/.cmake/api/v1/reply/index-2025-07-16T16-59-53-0566.json create mode 100644 example/android/app/.cxx/Debug/28432r45/armeabi-v7a/CMakeCache.txt create mode 100644 example/android/app/.cxx/Debug/28432r45/armeabi-v7a/CMakeFiles/3.22.1-g37088a8/CMakeCCompiler.cmake create mode 100644 example/android/app/.cxx/Debug/28432r45/armeabi-v7a/CMakeFiles/3.22.1-g37088a8/CMakeCXXCompiler.cmake create mode 100755 example/android/app/.cxx/Debug/28432r45/armeabi-v7a/CMakeFiles/3.22.1-g37088a8/CMakeDetermineCompilerABI_C.bin create mode 100755 example/android/app/.cxx/Debug/28432r45/armeabi-v7a/CMakeFiles/3.22.1-g37088a8/CMakeDetermineCompilerABI_CXX.bin create mode 100644 example/android/app/.cxx/Debug/28432r45/armeabi-v7a/CMakeFiles/3.22.1-g37088a8/CMakeSystem.cmake create mode 100644 example/android/app/.cxx/Debug/28432r45/armeabi-v7a/CMakeFiles/3.22.1-g37088a8/CompilerIdC/CMakeCCompilerId.c create mode 100644 example/android/app/.cxx/Debug/28432r45/armeabi-v7a/CMakeFiles/3.22.1-g37088a8/CompilerIdC/CMakeCCompilerId.o create mode 100644 example/android/app/.cxx/Debug/28432r45/armeabi-v7a/CMakeFiles/3.22.1-g37088a8/CompilerIdCXX/CMakeCXXCompilerId.cpp create mode 100644 example/android/app/.cxx/Debug/28432r45/armeabi-v7a/CMakeFiles/3.22.1-g37088a8/CompilerIdCXX/CMakeCXXCompilerId.o create mode 100644 example/android/app/.cxx/Debug/28432r45/armeabi-v7a/CMakeFiles/TargetDirectories.txt create mode 100644 example/android/app/.cxx/Debug/28432r45/armeabi-v7a/CMakeFiles/cmake.check_cache create mode 100644 example/android/app/.cxx/Debug/28432r45/armeabi-v7a/CMakeFiles/rules.ninja create mode 100644 example/android/app/.cxx/Debug/28432r45/armeabi-v7a/additional_project_files.txt create mode 100644 example/android/app/.cxx/Debug/28432r45/armeabi-v7a/android_gradle_build.json create mode 100644 example/android/app/.cxx/Debug/28432r45/armeabi-v7a/android_gradle_build_mini.json create mode 100644 example/android/app/.cxx/Debug/28432r45/armeabi-v7a/build.ninja create mode 100644 example/android/app/.cxx/Debug/28432r45/armeabi-v7a/build_file_index.txt create mode 100644 example/android/app/.cxx/Debug/28432r45/armeabi-v7a/cmake_install.cmake create mode 100644 example/android/app/.cxx/Debug/28432r45/armeabi-v7a/configure_fingerprint.bin create mode 100644 example/android/app/.cxx/Debug/28432r45/armeabi-v7a/metadata_generation_command.txt create mode 100644 example/android/app/.cxx/Debug/28432r45/armeabi-v7a/prefab_config.json create mode 100644 example/android/app/.cxx/Debug/28432r45/armeabi-v7a/symbol_folder_index.txt create mode 100644 example/android/app/.cxx/Debug/28432r45/hash_key.txt create mode 100644 example/android/app/.cxx/Debug/28432r45/x86/.cmake/api/v1/query/client-agp/cache-v2 create mode 100644 example/android/app/.cxx/Debug/28432r45/x86/.cmake/api/v1/query/client-agp/cmakeFiles-v1 create mode 100644 example/android/app/.cxx/Debug/28432r45/x86/.cmake/api/v1/query/client-agp/codemodel-v2 create mode 100644 example/android/app/.cxx/Debug/28432r45/x86/.cmake/api/v1/reply/cache-v2-b0f66089ba717e3aabc8.json create mode 100644 example/android/app/.cxx/Debug/28432r45/x86/.cmake/api/v1/reply/cmakeFiles-v1-224224c2181f7df86e06.json create mode 100644 example/android/app/.cxx/Debug/28432r45/x86/.cmake/api/v1/reply/codemodel-v2-6cda0072005d68f787b9.json create mode 100644 example/android/app/.cxx/Debug/28432r45/x86/.cmake/api/v1/reply/directory-.-Debug-f5ebdc15457944623624.json create mode 100644 example/android/app/.cxx/Debug/28432r45/x86/.cmake/api/v1/reply/index-2025-07-16T16-59-53-0866.json create mode 100644 example/android/app/.cxx/Debug/28432r45/x86/CMakeCache.txt create mode 100644 example/android/app/.cxx/Debug/28432r45/x86/CMakeFiles/3.22.1-g37088a8/CMakeCCompiler.cmake create mode 100644 example/android/app/.cxx/Debug/28432r45/x86/CMakeFiles/3.22.1-g37088a8/CMakeCXXCompiler.cmake create mode 100755 example/android/app/.cxx/Debug/28432r45/x86/CMakeFiles/3.22.1-g37088a8/CMakeDetermineCompilerABI_C.bin create mode 100755 example/android/app/.cxx/Debug/28432r45/x86/CMakeFiles/3.22.1-g37088a8/CMakeDetermineCompilerABI_CXX.bin create mode 100644 example/android/app/.cxx/Debug/28432r45/x86/CMakeFiles/3.22.1-g37088a8/CMakeSystem.cmake create mode 100644 example/android/app/.cxx/Debug/28432r45/x86/CMakeFiles/3.22.1-g37088a8/CompilerIdC/CMakeCCompilerId.c create mode 100644 example/android/app/.cxx/Debug/28432r45/x86/CMakeFiles/3.22.1-g37088a8/CompilerIdC/CMakeCCompilerId.o create mode 100644 example/android/app/.cxx/Debug/28432r45/x86/CMakeFiles/3.22.1-g37088a8/CompilerIdCXX/CMakeCXXCompilerId.cpp create mode 100644 example/android/app/.cxx/Debug/28432r45/x86/CMakeFiles/3.22.1-g37088a8/CompilerIdCXX/CMakeCXXCompilerId.o create mode 100644 example/android/app/.cxx/Debug/28432r45/x86/CMakeFiles/TargetDirectories.txt create mode 100644 example/android/app/.cxx/Debug/28432r45/x86/CMakeFiles/cmake.check_cache create mode 100644 example/android/app/.cxx/Debug/28432r45/x86/CMakeFiles/rules.ninja create mode 100644 example/android/app/.cxx/Debug/28432r45/x86/additional_project_files.txt create mode 100644 example/android/app/.cxx/Debug/28432r45/x86/android_gradle_build.json create mode 100644 example/android/app/.cxx/Debug/28432r45/x86/android_gradle_build_mini.json create mode 100644 example/android/app/.cxx/Debug/28432r45/x86/build.ninja create mode 100644 example/android/app/.cxx/Debug/28432r45/x86/build_file_index.txt create mode 100644 example/android/app/.cxx/Debug/28432r45/x86/cmake_install.cmake create mode 100644 example/android/app/.cxx/Debug/28432r45/x86/configure_fingerprint.bin create mode 100644 example/android/app/.cxx/Debug/28432r45/x86/metadata_generation_command.txt create mode 100644 example/android/app/.cxx/Debug/28432r45/x86/prefab_config.json create mode 100644 example/android/app/.cxx/Debug/28432r45/x86/symbol_folder_index.txt create mode 100644 example/android/app/.cxx/Debug/28432r45/x86_64/.cmake/api/v1/query/client-agp/cache-v2 create mode 100644 example/android/app/.cxx/Debug/28432r45/x86_64/.cmake/api/v1/query/client-agp/cmakeFiles-v1 create mode 100644 example/android/app/.cxx/Debug/28432r45/x86_64/.cmake/api/v1/query/client-agp/codemodel-v2 create mode 100644 example/android/app/.cxx/Debug/28432r45/x86_64/.cmake/api/v1/reply/cache-v2-8c4d4f797013eea35522.json create mode 100644 example/android/app/.cxx/Debug/28432r45/x86_64/.cmake/api/v1/reply/cmakeFiles-v1-fec6ffb157555fe499a1.json create mode 100644 example/android/app/.cxx/Debug/28432r45/x86_64/.cmake/api/v1/reply/codemodel-v2-2649df7336bb2d20f6ae.json create mode 100644 example/android/app/.cxx/Debug/28432r45/x86_64/.cmake/api/v1/reply/directory-.-Debug-f5ebdc15457944623624.json create mode 100644 example/android/app/.cxx/Debug/28432r45/x86_64/.cmake/api/v1/reply/index-2025-07-16T16-59-54-0121.json create mode 100644 example/android/app/.cxx/Debug/28432r45/x86_64/CMakeCache.txt create mode 100644 example/android/app/.cxx/Debug/28432r45/x86_64/CMakeFiles/3.22.1-g37088a8/CMakeCCompiler.cmake create mode 100644 example/android/app/.cxx/Debug/28432r45/x86_64/CMakeFiles/3.22.1-g37088a8/CMakeCXXCompiler.cmake create mode 100755 example/android/app/.cxx/Debug/28432r45/x86_64/CMakeFiles/3.22.1-g37088a8/CMakeDetermineCompilerABI_C.bin create mode 100755 example/android/app/.cxx/Debug/28432r45/x86_64/CMakeFiles/3.22.1-g37088a8/CMakeDetermineCompilerABI_CXX.bin create mode 100644 example/android/app/.cxx/Debug/28432r45/x86_64/CMakeFiles/3.22.1-g37088a8/CMakeSystem.cmake create mode 100644 example/android/app/.cxx/Debug/28432r45/x86_64/CMakeFiles/3.22.1-g37088a8/CompilerIdC/CMakeCCompilerId.c create mode 100644 example/android/app/.cxx/Debug/28432r45/x86_64/CMakeFiles/3.22.1-g37088a8/CompilerIdC/CMakeCCompilerId.o create mode 100644 example/android/app/.cxx/Debug/28432r45/x86_64/CMakeFiles/3.22.1-g37088a8/CompilerIdCXX/CMakeCXXCompilerId.cpp create mode 100644 example/android/app/.cxx/Debug/28432r45/x86_64/CMakeFiles/3.22.1-g37088a8/CompilerIdCXX/CMakeCXXCompilerId.o create mode 100644 example/android/app/.cxx/Debug/28432r45/x86_64/CMakeFiles/TargetDirectories.txt create mode 100644 example/android/app/.cxx/Debug/28432r45/x86_64/CMakeFiles/cmake.check_cache create mode 100644 example/android/app/.cxx/Debug/28432r45/x86_64/CMakeFiles/rules.ninja create mode 100644 example/android/app/.cxx/Debug/28432r45/x86_64/additional_project_files.txt create mode 100644 example/android/app/.cxx/Debug/28432r45/x86_64/android_gradle_build.json create mode 100644 example/android/app/.cxx/Debug/28432r45/x86_64/android_gradle_build_mini.json create mode 100644 example/android/app/.cxx/Debug/28432r45/x86_64/build.ninja create mode 100644 example/android/app/.cxx/Debug/28432r45/x86_64/build_file_index.txt create mode 100644 example/android/app/.cxx/Debug/28432r45/x86_64/cmake_install.cmake create mode 100644 example/android/app/.cxx/Debug/28432r45/x86_64/configure_fingerprint.bin create mode 100644 example/android/app/.cxx/Debug/28432r45/x86_64/metadata_generation_command.txt create mode 100644 example/android/app/.cxx/Debug/28432r45/x86_64/prefab_config.json create mode 100644 example/android/app/.cxx/Debug/28432r45/x86_64/symbol_folder_index.txt diff --git a/.fvmrc b/.fvmrc index c300356..b987073 100644 --- a/.fvmrc +++ b/.fvmrc @@ -1,3 +1,3 @@ { - "flutter": "stable" + "flutter": "3.29.3" } \ No newline at end of file diff --git a/example/android/app/.cxx/Debug/28432r45/arm64-v8a/.cmake/api/v1/query/client-agp/cache-v2 b/example/android/app/.cxx/Debug/28432r45/arm64-v8a/.cmake/api/v1/query/client-agp/cache-v2 new file mode 100644 index 0000000..e69de29 diff --git a/example/android/app/.cxx/Debug/28432r45/arm64-v8a/.cmake/api/v1/query/client-agp/cmakeFiles-v1 b/example/android/app/.cxx/Debug/28432r45/arm64-v8a/.cmake/api/v1/query/client-agp/cmakeFiles-v1 new file mode 100644 index 0000000..e69de29 diff --git a/example/android/app/.cxx/Debug/28432r45/arm64-v8a/.cmake/api/v1/query/client-agp/codemodel-v2 b/example/android/app/.cxx/Debug/28432r45/arm64-v8a/.cmake/api/v1/query/client-agp/codemodel-v2 new file mode 100644 index 0000000..e69de29 diff --git a/example/android/app/.cxx/Debug/28432r45/arm64-v8a/.cmake/api/v1/reply/cache-v2-231da6deb351aab7a9df.json b/example/android/app/.cxx/Debug/28432r45/arm64-v8a/.cmake/api/v1/reply/cache-v2-231da6deb351aab7a9df.json new file mode 100644 index 0000000..4a5f6b6 --- /dev/null +++ b/example/android/app/.cxx/Debug/28432r45/arm64-v8a/.cmake/api/v1/reply/cache-v2-231da6deb351aab7a9df.json @@ -0,0 +1,1391 @@ +{ + "entries" : + [ + { + "name" : "ANDROID_ABI", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "No help, variable specified on the command line." + } + ], + "type" : "UNINITIALIZED", + "value" : "arm64-v8a" + }, + { + "name" : "ANDROID_NDK", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "No help, variable specified on the command line." + } + ], + "type" : "UNINITIALIZED", + "value" : "/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264" + }, + { + "name" : "ANDROID_PLATFORM", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "No help, variable specified on the command line." + } + ], + "type" : "UNINITIALIZED", + "value" : "android-21" + }, + { + "name" : "CMAKE_ADDR2LINE", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Path to a program." + } + ], + "type" : "FILEPATH", + "value" : "/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-addr2line" + }, + { + "name" : "CMAKE_ANDROID_ARCH_ABI", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "No help, variable specified on the command line." + } + ], + "type" : "UNINITIALIZED", + "value" : "arm64-v8a" + }, + { + "name" : "CMAKE_ANDROID_NDK", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "No help, variable specified on the command line." + } + ], + "type" : "UNINITIALIZED", + "value" : "/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264" + }, + { + "name" : "CMAKE_AR", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Archiver" + } + ], + "type" : "FILEPATH", + "value" : "/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ar" + }, + { + "name" : "CMAKE_ASM_FLAGS", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Flags used by the compiler during all build types." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_ASM_FLAGS_DEBUG", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Flags used by the compiler during debug builds." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_ASM_FLAGS_RELEASE", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Flags used by the compiler during release builds." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_BUILD_TYPE", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Choose the type of build, options are: None Debug Release RelWithDebInfo MinSizeRel ..." + } + ], + "type" : "STRING", + "value" : "Debug" + }, + { + "name" : "CMAKE_CACHEFILE_DIR", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "This is the directory where this CMakeCache.txt was created" + } + ], + "type" : "INTERNAL", + "value" : "/Users/dgarcia/Documents/flutter_policy_engine/example/android/app/.cxx/Debug/28432r45/arm64-v8a" + }, + { + "name" : "CMAKE_CACHE_MAJOR_VERSION", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Major version of cmake used to create the current loaded cache" + } + ], + "type" : "INTERNAL", + "value" : "3" + }, + { + "name" : "CMAKE_CACHE_MINOR_VERSION", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Minor version of cmake used to create the current loaded cache" + } + ], + "type" : "INTERNAL", + "value" : "22" + }, + { + "name" : "CMAKE_CACHE_PATCH_VERSION", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Patch version of cmake used to create the current loaded cache" + } + ], + "type" : "INTERNAL", + "value" : "1" + }, + { + "name" : "CMAKE_COMMAND", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Path to CMake executable." + } + ], + "type" : "INTERNAL", + "value" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/bin/cmake" + }, + { + "name" : "CMAKE_CPACK_COMMAND", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Path to cpack program executable." + } + ], + "type" : "INTERNAL", + "value" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/bin/cpack" + }, + { + "name" : "CMAKE_CTEST_COMMAND", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Path to ctest program executable." + } + ], + "type" : "INTERNAL", + "value" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/bin/ctest" + }, + { + "name" : "CMAKE_CXX_COMPILER", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "(This variable does not exist and should not be used)" + } + ], + "type" : "UNINITIALIZED", + "value" : "" + }, + { + "name" : "CMAKE_CXX_COMPILER_AR", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "LLVM archiver" + } + ], + "type" : "FILEPATH", + "value" : "/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ar" + }, + { + "name" : "CMAKE_CXX_COMPILER_RANLIB", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Generate index for LLVM archive" + } + ], + "type" : "FILEPATH", + "value" : "/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ranlib" + }, + { + "name" : "CMAKE_CXX_FLAGS", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the compiler during all build types." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_CXX_FLAGS_DEBUG", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the compiler during debug builds." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_CXX_FLAGS_MINSIZEREL", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the CXX compiler during MINSIZEREL builds." + } + ], + "type" : "STRING", + "value" : "-Os -DNDEBUG" + }, + { + "name" : "CMAKE_CXX_FLAGS_RELEASE", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the compiler during release builds." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_CXX_FLAGS_RELWITHDEBINFO", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the CXX compiler during RELWITHDEBINFO builds." + } + ], + "type" : "STRING", + "value" : "-O2 -g -DNDEBUG" + }, + { + "name" : "CMAKE_CXX_STANDARD_LIBRARIES", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Libraries linked by default with all C++ applications." + } + ], + "type" : "STRING", + "value" : "-latomic -lm" + }, + { + "name" : "CMAKE_C_COMPILER", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "(This variable does not exist and should not be used)" + } + ], + "type" : "UNINITIALIZED", + "value" : "" + }, + { + "name" : "CMAKE_C_COMPILER_AR", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "LLVM archiver" + } + ], + "type" : "FILEPATH", + "value" : "/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ar" + }, + { + "name" : "CMAKE_C_COMPILER_RANLIB", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Generate index for LLVM archive" + } + ], + "type" : "FILEPATH", + "value" : "/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ranlib" + }, + { + "name" : "CMAKE_C_FLAGS", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the compiler during all build types." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_C_FLAGS_DEBUG", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the compiler during debug builds." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_C_FLAGS_MINSIZEREL", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the C compiler during MINSIZEREL builds." + } + ], + "type" : "STRING", + "value" : "-Os -DNDEBUG" + }, + { + "name" : "CMAKE_C_FLAGS_RELEASE", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the compiler during release builds." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_C_FLAGS_RELWITHDEBINFO", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the C compiler during RELWITHDEBINFO builds." + } + ], + "type" : "STRING", + "value" : "-O2 -g -DNDEBUG" + }, + { + "name" : "CMAKE_C_STANDARD_LIBRARIES", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Libraries linked by default with all C applications." + } + ], + "type" : "STRING", + "value" : "-latomic -lm" + }, + { + "name" : "CMAKE_DLLTOOL", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Path to a program." + } + ], + "type" : "FILEPATH", + "value" : "CMAKE_DLLTOOL-NOTFOUND" + }, + { + "name" : "CMAKE_EDIT_COMMAND", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Path to cache edit program executable." + } + ], + "type" : "INTERNAL", + "value" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/bin/ccmake" + }, + { + "name" : "CMAKE_ERROR_DEPRECATED", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Whether to issue deprecation errors for macros and functions." + } + ], + "type" : "INTERNAL", + "value" : "FALSE" + }, + { + "name" : "CMAKE_EXECUTABLE_FORMAT", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Executable file format" + } + ], + "type" : "INTERNAL", + "value" : "ELF" + }, + { + "name" : "CMAKE_EXE_LINKER_FLAGS", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the linker." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_EXE_LINKER_FLAGS_DEBUG", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the linker during DEBUG builds." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_EXE_LINKER_FLAGS_MINSIZEREL", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the linker during MINSIZEREL builds." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_EXE_LINKER_FLAGS_RELEASE", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the linker during RELEASE builds." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the linker during RELWITHDEBINFO builds." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_EXPORT_COMPILE_COMMANDS", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "No help, variable specified on the command line." + } + ], + "type" : "UNINITIALIZED", + "value" : "ON" + }, + { + "name" : "CMAKE_EXTRA_GENERATOR", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Name of external makefile project generator." + } + ], + "type" : "INTERNAL", + "value" : "" + }, + { + "name" : "CMAKE_GENERATOR", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Name of generator." + } + ], + "type" : "INTERNAL", + "value" : "Ninja" + }, + { + "name" : "CMAKE_GENERATOR_INSTANCE", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Generator instance identifier." + } + ], + "type" : "INTERNAL", + "value" : "" + }, + { + "name" : "CMAKE_GENERATOR_PLATFORM", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Name of generator platform." + } + ], + "type" : "INTERNAL", + "value" : "" + }, + { + "name" : "CMAKE_GENERATOR_TOOLSET", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Name of generator toolset." + } + ], + "type" : "INTERNAL", + "value" : "" + }, + { + "name" : "CMAKE_HOME_DIRECTORY", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Source directory with the top level CMakeLists.txt file for this project" + } + ], + "type" : "INTERNAL", + "value" : "/Users/dgarcia/fvm/versions/3.29.3/packages/flutter_tools/gradle/src/main/groovy" + }, + { + "name" : "CMAKE_INSTALL_PREFIX", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Install path prefix, prepended onto install directories." + } + ], + "type" : "PATH", + "value" : "/usr/local" + }, + { + "name" : "CMAKE_INSTALL_SO_NO_EXE", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Install .so files without execute permission." + } + ], + "type" : "INTERNAL", + "value" : "0" + }, + { + "name" : "CMAKE_LIBRARY_OUTPUT_DIRECTORY", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "No help, variable specified on the command line." + } + ], + "type" : "UNINITIALIZED", + "value" : "/Users/dgarcia/Documents/flutter_policy_engine/example/build/app/intermediates/cxx/Debug/28432r45/obj/arm64-v8a" + }, + { + "name" : "CMAKE_LINKER", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Path to a program." + } + ], + "type" : "FILEPATH", + "value" : "/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/toolchains/llvm/prebuilt/darwin-x86_64/bin/ld.lld" + }, + { + "name" : "CMAKE_MAKE_PROGRAM", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "No help, variable specified on the command line." + } + ], + "type" : "UNINITIALIZED", + "value" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/bin/ninja" + }, + { + "name" : "CMAKE_MODULE_LINKER_FLAGS", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the linker during the creation of modules." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_MODULE_LINKER_FLAGS_DEBUG", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the linker during the creation of modules during DEBUG builds." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the linker during the creation of modules during MINSIZEREL builds." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_MODULE_LINKER_FLAGS_RELEASE", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the linker during the creation of modules during RELEASE builds." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the linker during the creation of modules during RELWITHDEBINFO builds." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_NM", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Path to a program." + } + ], + "type" : "FILEPATH", + "value" : "/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-nm" + }, + { + "name" : "CMAKE_NUMBER_OF_MAKEFILES", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "number of local generators" + } + ], + "type" : "INTERNAL", + "value" : "1" + }, + { + "name" : "CMAKE_OBJCOPY", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Path to a program." + } + ], + "type" : "FILEPATH", + "value" : "/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-objcopy" + }, + { + "name" : "CMAKE_OBJDUMP", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Path to a program." + } + ], + "type" : "FILEPATH", + "value" : "/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-objdump" + }, + { + "name" : "CMAKE_PLATFORM_INFO_INITIALIZED", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Platform information initialized" + } + ], + "type" : "INTERNAL", + "value" : "1" + }, + { + "name" : "CMAKE_PROJECT_DESCRIPTION", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Value Computed by CMake" + } + ], + "type" : "STATIC", + "value" : "" + }, + { + "name" : "CMAKE_PROJECT_HOMEPAGE_URL", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Value Computed by CMake" + } + ], + "type" : "STATIC", + "value" : "" + }, + { + "name" : "CMAKE_PROJECT_NAME", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Value Computed by CMake" + } + ], + "type" : "STATIC", + "value" : "Project" + }, + { + "name" : "CMAKE_RANLIB", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Ranlib" + } + ], + "type" : "FILEPATH", + "value" : "/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ranlib" + }, + { + "name" : "CMAKE_READELF", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Path to a program." + } + ], + "type" : "FILEPATH", + "value" : "/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-readelf" + }, + { + "name" : "CMAKE_ROOT", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Path to CMake installation." + } + ], + "type" : "INTERNAL", + "value" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22" + }, + { + "name" : "CMAKE_RUNTIME_OUTPUT_DIRECTORY", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "No help, variable specified on the command line." + } + ], + "type" : "UNINITIALIZED", + "value" : "/Users/dgarcia/Documents/flutter_policy_engine/example/build/app/intermediates/cxx/Debug/28432r45/obj/arm64-v8a" + }, + { + "name" : "CMAKE_SHARED_LINKER_FLAGS", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the linker during the creation of dll's." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_SHARED_LINKER_FLAGS_DEBUG", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the linker during the creation of shared libraries during DEBUG builds." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the linker during the creation of shared libraries during MINSIZEREL builds." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_SHARED_LINKER_FLAGS_RELEASE", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the linker during the creation of shared libraries during RELEASE builds." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the linker during the creation of shared libraries during RELWITHDEBINFO builds." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_SKIP_INSTALL_RPATH", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "If set, runtime paths are not added when installing shared libraries, but are added when building." + } + ], + "type" : "BOOL", + "value" : "NO" + }, + { + "name" : "CMAKE_SKIP_RPATH", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "If set, runtime paths are not added when using shared libraries." + } + ], + "type" : "BOOL", + "value" : "NO" + }, + { + "name" : "CMAKE_STATIC_LINKER_FLAGS", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the linker during the creation of static libraries during all build types." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_STATIC_LINKER_FLAGS_DEBUG", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the linker during the creation of static libraries during DEBUG builds." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the linker during the creation of static libraries during MINSIZEREL builds." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_STATIC_LINKER_FLAGS_RELEASE", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the linker during the creation of static libraries during RELEASE builds." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the linker during the creation of static libraries during RELWITHDEBINFO builds." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_STRIP", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Strip" + } + ], + "type" : "FILEPATH", + "value" : "/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-strip" + }, + { + "name" : "CMAKE_SUPPRESS_DEVELOPER_ERRORS", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Suppress errors that are meant for the author of the CMakeLists.txt files." + } + ], + "type" : "INTERNAL", + "value" : "TRUE" + }, + { + "name" : "CMAKE_SUPPRESS_DEVELOPER_WARNINGS", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Suppress Warnings that are meant for the author of the CMakeLists.txt files." + } + ], + "type" : "INTERNAL", + "value" : "TRUE" + }, + { + "name" : "CMAKE_SYSTEM_NAME", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "No help, variable specified on the command line." + } + ], + "type" : "UNINITIALIZED", + "value" : "Android" + }, + { + "name" : "CMAKE_SYSTEM_VERSION", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "No help, variable specified on the command line." + } + ], + "type" : "UNINITIALIZED", + "value" : "21" + }, + { + "name" : "CMAKE_TOOLCHAIN_FILE", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "The CMake toolchain file" + } + ], + "type" : "FILEPATH", + "value" : "/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/build/cmake/android.toolchain.cmake" + }, + { + "name" : "CMAKE_UNAME", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "uname command" + } + ], + "type" : "INTERNAL", + "value" : "/usr/bin/uname" + }, + { + "name" : "CMAKE_VERBOSE_MAKEFILE", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "If this value is on, makefiles will be generated without the .SILENT directive, and all commands will be echoed to the console during the make. This is useful for debugging only. With Visual Studio IDE projects all commands are done without /nologo." + } + ], + "type" : "BOOL", + "value" : "FALSE" + }, + { + "name" : "CMAKE_WARN_DEPRECATED", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Whether to issue warnings for deprecated functionality." + } + ], + "type" : "INTERNAL", + "value" : "FALSE" + }, + { + "name" : "Project_BINARY_DIR", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Value Computed by CMake" + } + ], + "type" : "STATIC", + "value" : "/Users/dgarcia/Documents/flutter_policy_engine/example/android/app/.cxx/Debug/28432r45/arm64-v8a" + }, + { + "name" : "Project_IS_TOP_LEVEL", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Value Computed by CMake" + } + ], + "type" : "STATIC", + "value" : "ON" + }, + { + "name" : "Project_SOURCE_DIR", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Value Computed by CMake" + } + ], + "type" : "STATIC", + "value" : "/Users/dgarcia/fvm/versions/3.29.3/packages/flutter_tools/gradle/src/main/groovy" + } + ], + "kind" : "cache", + "version" : + { + "major" : 2, + "minor" : 0 + } +} diff --git a/example/android/app/.cxx/Debug/28432r45/arm64-v8a/.cmake/api/v1/reply/cmakeFiles-v1-6a251857cb72fe08653c.json b/example/android/app/.cxx/Debug/28432r45/arm64-v8a/.cmake/api/v1/reply/cmakeFiles-v1-6a251857cb72fe08653c.json new file mode 100644 index 0000000..5abc263 --- /dev/null +++ b/example/android/app/.cxx/Debug/28432r45/arm64-v8a/.cmake/api/v1/reply/cmakeFiles-v1-6a251857cb72fe08653c.json @@ -0,0 +1,799 @@ +{ + "inputs" : + [ + { + "path" : "CMakeLists.txt" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineSystem.cmake" + }, + { + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/build/cmake/android.toolchain.cmake" + }, + { + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/build/cmake/android-legacy.toolchain.cmake" + }, + { + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/build/cmake/platforms.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Determine.cmake" + }, + { + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/build/cmake/hooks/pre/Android-Determine.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeSystem.cmake.in" + }, + { + "isGenerated" : true, + "path" : "/Users/dgarcia/Documents/flutter_policy_engine/example/android/app/.cxx/Debug/28432r45/arm64-v8a/CMakeFiles/3.22.1-g37088a8/CMakeSystem.cmake" + }, + { + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/build/cmake/android.toolchain.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeSystemSpecificInitialize.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Initialize.cmake" + }, + { + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/build/cmake/hooks/pre/Android-Initialize.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Determine-C.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android/Determine-Compiler.cmake" + }, + { + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/build/cmake/hooks/pre/Determine-Compiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCompilerId.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCompilerIdDetection.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/ADSP-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/ARMCC-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/ARMClang-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/AppleClang-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-DetermineCompilerInternal.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Borland-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Bruce-C-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-DetermineCompilerInternal.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Compaq-C-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Cray-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Embarcadero-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Fujitsu-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/FujitsuClang-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/GHS-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/GNU-C-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/HP-C-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IAR-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Intel-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IntelLLVM-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/MSVC-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/NVHPC-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/NVIDIA-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/OpenWatcom-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/PGI-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/PathScale-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/SCO-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/SDCC-C-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/SunPro-C-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/TI-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/TinyCC-C-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/VisualAge-C-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IBMCPP-C-DetermineVersionInternal.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Watcom-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/XL-C-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IBMCPP-C-DetermineVersionInternal.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/XLClang-C-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/zOS-C-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IBMCPP-C-DetermineVersionInternal.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeFindBinUtils.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-FindBinUtils.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCCompiler.cmake.in" + }, + { + "isGenerated" : true, + "path" : "/Users/dgarcia/Documents/flutter_policy_engine/example/android/app/.cxx/Debug/28432r45/arm64-v8a/CMakeFiles/3.22.1-g37088a8/CMakeCCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCXXCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Determine-CXX.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android/Determine-Compiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCompilerId.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCompilerIdDetection.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/ADSP-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/ARMCC-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/ARMClang-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/AppleClang-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-DetermineCompilerInternal.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Borland-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-DetermineCompilerInternal.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Comeau-CXX-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Compaq-CXX-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Cray-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Embarcadero-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Fujitsu-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/FujitsuClang-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/GHS-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/GNU-CXX-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/HP-CXX-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IAR-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Intel-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IntelLLVM-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/MSVC-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/NVHPC-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/NVIDIA-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/OpenWatcom-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/PGI-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/PathScale-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/SCO-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/SunPro-CXX-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/TI-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/VisualAge-CXX-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IBMCPP-CXX-DetermineVersionInternal.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Watcom-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/XL-CXX-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IBMCPP-CXX-DetermineVersionInternal.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/XLClang-CXX-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/zOS-CXX-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IBMCPP-CXX-DetermineVersionInternal.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeFindBinUtils.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-FindBinUtils.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCXXCompiler.cmake.in" + }, + { + "isGenerated" : true, + "path" : "/Users/dgarcia/Documents/flutter_policy_engine/example/android/app/.cxx/Debug/28432r45/arm64-v8a/CMakeFiles/3.22.1-g37088a8/CMakeCXXCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeSystemSpecificInformation.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeGenericSystem.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeInitializeConfigs.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android.cmake" + }, + { + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/build/cmake/hooks/pre/Android.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Linux.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/UnixPaths.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCInformation.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeLanguageInformation.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-C.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/CMakeCommonCompilerMacros.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/GNU.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/CMakeCommonCompilerMacros.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Clang-C.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Clang.cmake" + }, + { + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/build/cmake/hooks/pre/Android-Clang.cmake" + }, + { + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/build/cmake/flags.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCommonLanguageInclude.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeTestCCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeTestCompilerCommon.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCompilerABI.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeParseImplicitIncludeInfo.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeParseImplicitLinkInfo.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeParseLibraryArchitecture.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeTestCompilerCommon.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCCompilerABI.c" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCompileFeatures.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Internal/FeatureTesting.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCCompiler.cmake.in" + }, + { + "isGenerated" : true, + "path" : "/Users/dgarcia/Documents/flutter_policy_engine/example/android/app/.cxx/Debug/28432r45/arm64-v8a/CMakeFiles/3.22.1-g37088a8/CMakeCCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCXXInformation.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeLanguageInformation.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-CXX.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Clang-CXX.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Clang.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCommonLanguageInclude.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeTestCXXCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeTestCompilerCommon.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCompilerABI.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeParseImplicitIncludeInfo.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeParseImplicitLinkInfo.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeParseLibraryArchitecture.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeTestCompilerCommon.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCXXCompilerABI.cpp" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCompileFeatures.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Internal/FeatureTesting.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCXXCompiler.cmake.in" + }, + { + "isGenerated" : true, + "path" : "/Users/dgarcia/Documents/flutter_policy_engine/example/android/app/.cxx/Debug/28432r45/arm64-v8a/CMakeFiles/3.22.1-g37088a8/CMakeCXXCompiler.cmake" + } + ], + "kind" : "cmakeFiles", + "paths" : + { + "build" : "/Users/dgarcia/Documents/flutter_policy_engine/example/android/app/.cxx/Debug/28432r45/arm64-v8a", + "source" : "/Users/dgarcia/fvm/versions/3.29.3/packages/flutter_tools/gradle/src/main/groovy" + }, + "version" : + { + "major" : 1, + "minor" : 0 + } +} diff --git a/example/android/app/.cxx/Debug/28432r45/arm64-v8a/.cmake/api/v1/reply/codemodel-v2-c904591b92c35ff1acfb.json b/example/android/app/.cxx/Debug/28432r45/arm64-v8a/.cmake/api/v1/reply/codemodel-v2-c904591b92c35ff1acfb.json new file mode 100644 index 0000000..fc6cffb --- /dev/null +++ b/example/android/app/.cxx/Debug/28432r45/arm64-v8a/.cmake/api/v1/reply/codemodel-v2-c904591b92c35ff1acfb.json @@ -0,0 +1,43 @@ +{ + "configurations" : + [ + { + "directories" : + [ + { + "build" : ".", + "jsonFile" : "directory-.-Debug-f5ebdc15457944623624.json", + "minimumCMakeVersion" : + { + "string" : "3.6.0" + }, + "projectIndex" : 0, + "source" : "." + } + ], + "name" : "Debug", + "projects" : + [ + { + "directoryIndexes" : + [ + 0 + ], + "name" : "Project" + } + ], + "targets" : [] + } + ], + "kind" : "codemodel", + "paths" : + { + "build" : "/Users/dgarcia/Documents/flutter_policy_engine/example/android/app/.cxx/Debug/28432r45/arm64-v8a", + "source" : "/Users/dgarcia/fvm/versions/3.29.3/packages/flutter_tools/gradle/src/main/groovy" + }, + "version" : + { + "major" : 2, + "minor" : 3 + } +} diff --git a/example/android/app/.cxx/Debug/28432r45/arm64-v8a/.cmake/api/v1/reply/directory-.-Debug-f5ebdc15457944623624.json b/example/android/app/.cxx/Debug/28432r45/arm64-v8a/.cmake/api/v1/reply/directory-.-Debug-f5ebdc15457944623624.json new file mode 100644 index 0000000..3a67af9 --- /dev/null +++ b/example/android/app/.cxx/Debug/28432r45/arm64-v8a/.cmake/api/v1/reply/directory-.-Debug-f5ebdc15457944623624.json @@ -0,0 +1,14 @@ +{ + "backtraceGraph" : + { + "commands" : [], + "files" : [], + "nodes" : [] + }, + "installers" : [], + "paths" : + { + "build" : ".", + "source" : "." + } +} diff --git a/example/android/app/.cxx/Debug/28432r45/arm64-v8a/.cmake/api/v1/reply/index-2025-07-16T16-59-48-0167.json b/example/android/app/.cxx/Debug/28432r45/arm64-v8a/.cmake/api/v1/reply/index-2025-07-16T16-59-48-0167.json new file mode 100644 index 0000000..e2359ba --- /dev/null +++ b/example/android/app/.cxx/Debug/28432r45/arm64-v8a/.cmake/api/v1/reply/index-2025-07-16T16-59-48-0167.json @@ -0,0 +1,92 @@ +{ + "cmake" : + { + "generator" : + { + "multiConfig" : false, + "name" : "Ninja" + }, + "paths" : + { + "cmake" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/bin/cmake", + "cpack" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/bin/cpack", + "ctest" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/bin/ctest", + "root" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22" + }, + "version" : + { + "isDirty" : false, + "major" : 3, + "minor" : 22, + "patch" : 1, + "string" : "3.22.1-g37088a8", + "suffix" : "g37088a8" + } + }, + "objects" : + [ + { + "jsonFile" : "codemodel-v2-c904591b92c35ff1acfb.json", + "kind" : "codemodel", + "version" : + { + "major" : 2, + "minor" : 3 + } + }, + { + "jsonFile" : "cache-v2-231da6deb351aab7a9df.json", + "kind" : "cache", + "version" : + { + "major" : 2, + "minor" : 0 + } + }, + { + "jsonFile" : "cmakeFiles-v1-6a251857cb72fe08653c.json", + "kind" : "cmakeFiles", + "version" : + { + "major" : 1, + "minor" : 0 + } + } + ], + "reply" : + { + "client-agp" : + { + "cache-v2" : + { + "jsonFile" : "cache-v2-231da6deb351aab7a9df.json", + "kind" : "cache", + "version" : + { + "major" : 2, + "minor" : 0 + } + }, + "cmakeFiles-v1" : + { + "jsonFile" : "cmakeFiles-v1-6a251857cb72fe08653c.json", + "kind" : "cmakeFiles", + "version" : + { + "major" : 1, + "minor" : 0 + } + }, + "codemodel-v2" : + { + "jsonFile" : "codemodel-v2-c904591b92c35ff1acfb.json", + "kind" : "codemodel", + "version" : + { + "major" : 2, + "minor" : 3 + } + } + } + } +} diff --git a/example/android/app/.cxx/Debug/28432r45/arm64-v8a/CMakeCache.txt b/example/android/app/.cxx/Debug/28432r45/arm64-v8a/CMakeCache.txt new file mode 100644 index 0000000..8822fe9 --- /dev/null +++ b/example/android/app/.cxx/Debug/28432r45/arm64-v8a/CMakeCache.txt @@ -0,0 +1,405 @@ +# This is the CMakeCache file. +# For build in directory: /Users/dgarcia/Documents/flutter_policy_engine/example/android/app/.cxx/Debug/28432r45/arm64-v8a +# It was generated by CMake: /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/bin/cmake +# You can edit this file to change values found and used by cmake. +# If you do not want to change any of the values, simply exit the editor. +# If you do want to change a value, simply edit, save, and exit the editor. +# The syntax for the file is as follows: +# KEY:TYPE=VALUE +# KEY is the name of a variable in the cache. +# TYPE is a hint to GUIs for the type of VALUE, DO NOT EDIT TYPE!. +# VALUE is the current value for the KEY. + +######################## +# EXTERNAL cache entries +######################## + +//No help, variable specified on the command line. +ANDROID_ABI:UNINITIALIZED=arm64-v8a + +//No help, variable specified on the command line. +ANDROID_NDK:UNINITIALIZED=/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264 + +//No help, variable specified on the command line. +ANDROID_PLATFORM:UNINITIALIZED=android-21 + +//Path to a program. +CMAKE_ADDR2LINE:FILEPATH=/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-addr2line + +//No help, variable specified on the command line. +CMAKE_ANDROID_ARCH_ABI:UNINITIALIZED=arm64-v8a + +//No help, variable specified on the command line. +CMAKE_ANDROID_NDK:UNINITIALIZED=/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264 + +//Archiver +CMAKE_AR:FILEPATH=/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ar + +//Flags used by the compiler during all build types. +CMAKE_ASM_FLAGS:STRING= + +//Flags used by the compiler during debug builds. +CMAKE_ASM_FLAGS_DEBUG:STRING= + +//Flags used by the compiler during release builds. +CMAKE_ASM_FLAGS_RELEASE:STRING= + +//Choose the type of build, options are: None Debug Release RelWithDebInfo +// MinSizeRel ... +CMAKE_BUILD_TYPE:STRING=Debug + +//LLVM archiver +CMAKE_CXX_COMPILER_AR:FILEPATH=/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ar + +//Generate index for LLVM archive +CMAKE_CXX_COMPILER_RANLIB:FILEPATH=/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ranlib + +//Flags used by the compiler during all build types. +CMAKE_CXX_FLAGS:STRING= + +//Flags used by the compiler during debug builds. +CMAKE_CXX_FLAGS_DEBUG:STRING= + +//Flags used by the CXX compiler during MINSIZEREL builds. +CMAKE_CXX_FLAGS_MINSIZEREL:STRING=-Os -DNDEBUG + +//Flags used by the compiler during release builds. +CMAKE_CXX_FLAGS_RELEASE:STRING= + +//Flags used by the CXX compiler during RELWITHDEBINFO builds. +CMAKE_CXX_FLAGS_RELWITHDEBINFO:STRING=-O2 -g -DNDEBUG + +//Libraries linked by default with all C++ applications. +CMAKE_CXX_STANDARD_LIBRARIES:STRING=-latomic -lm + +//LLVM archiver +CMAKE_C_COMPILER_AR:FILEPATH=/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ar + +//Generate index for LLVM archive +CMAKE_C_COMPILER_RANLIB:FILEPATH=/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ranlib + +//Flags used by the compiler during all build types. +CMAKE_C_FLAGS:STRING= + +//Flags used by the compiler during debug builds. +CMAKE_C_FLAGS_DEBUG:STRING= + +//Flags used by the C compiler during MINSIZEREL builds. +CMAKE_C_FLAGS_MINSIZEREL:STRING=-Os -DNDEBUG + +//Flags used by the compiler during release builds. +CMAKE_C_FLAGS_RELEASE:STRING= + +//Flags used by the C compiler during RELWITHDEBINFO builds. +CMAKE_C_FLAGS_RELWITHDEBINFO:STRING=-O2 -g -DNDEBUG + +//Libraries linked by default with all C applications. +CMAKE_C_STANDARD_LIBRARIES:STRING=-latomic -lm + +//Path to a program. +CMAKE_DLLTOOL:FILEPATH=CMAKE_DLLTOOL-NOTFOUND + +//Flags used by the linker. +CMAKE_EXE_LINKER_FLAGS:STRING= + +//Flags used by the linker during DEBUG builds. +CMAKE_EXE_LINKER_FLAGS_DEBUG:STRING= + +//Flags used by the linker during MINSIZEREL builds. +CMAKE_EXE_LINKER_FLAGS_MINSIZEREL:STRING= + +//Flags used by the linker during RELEASE builds. +CMAKE_EXE_LINKER_FLAGS_RELEASE:STRING= + +//Flags used by the linker during RELWITHDEBINFO builds. +CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO:STRING= + +//No help, variable specified on the command line. +CMAKE_EXPORT_COMPILE_COMMANDS:UNINITIALIZED=ON + +//Install path prefix, prepended onto install directories. +CMAKE_INSTALL_PREFIX:PATH=/usr/local + +//No help, variable specified on the command line. +CMAKE_LIBRARY_OUTPUT_DIRECTORY:UNINITIALIZED=/Users/dgarcia/Documents/flutter_policy_engine/example/build/app/intermediates/cxx/Debug/28432r45/obj/arm64-v8a + +//Path to a program. +CMAKE_LINKER:FILEPATH=/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/toolchains/llvm/prebuilt/darwin-x86_64/bin/ld.lld + +//No help, variable specified on the command line. +CMAKE_MAKE_PROGRAM:UNINITIALIZED=/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/bin/ninja + +//Flags used by the linker during the creation of modules. +CMAKE_MODULE_LINKER_FLAGS:STRING= + +//Flags used by the linker during the creation of modules during +// DEBUG builds. +CMAKE_MODULE_LINKER_FLAGS_DEBUG:STRING= + +//Flags used by the linker during the creation of modules during +// MINSIZEREL builds. +CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL:STRING= + +//Flags used by the linker during the creation of modules during +// RELEASE builds. +CMAKE_MODULE_LINKER_FLAGS_RELEASE:STRING= + +//Flags used by the linker during the creation of modules during +// RELWITHDEBINFO builds. +CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO:STRING= + +//Path to a program. +CMAKE_NM:FILEPATH=/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-nm + +//Path to a program. +CMAKE_OBJCOPY:FILEPATH=/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-objcopy + +//Path to a program. +CMAKE_OBJDUMP:FILEPATH=/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-objdump + +//Value Computed by CMake +CMAKE_PROJECT_DESCRIPTION:STATIC= + +//Value Computed by CMake +CMAKE_PROJECT_HOMEPAGE_URL:STATIC= + +//Value Computed by CMake +CMAKE_PROJECT_NAME:STATIC=Project + +//Ranlib +CMAKE_RANLIB:FILEPATH=/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ranlib + +//Path to a program. +CMAKE_READELF:FILEPATH=/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-readelf + +//No help, variable specified on the command line. +CMAKE_RUNTIME_OUTPUT_DIRECTORY:UNINITIALIZED=/Users/dgarcia/Documents/flutter_policy_engine/example/build/app/intermediates/cxx/Debug/28432r45/obj/arm64-v8a + +//Flags used by the linker during the creation of dll's. +CMAKE_SHARED_LINKER_FLAGS:STRING= + +//Flags used by the linker during the creation of shared libraries +// during DEBUG builds. +CMAKE_SHARED_LINKER_FLAGS_DEBUG:STRING= + +//Flags used by the linker during the creation of shared libraries +// during MINSIZEREL builds. +CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL:STRING= + +//Flags used by the linker during the creation of shared libraries +// during RELEASE builds. +CMAKE_SHARED_LINKER_FLAGS_RELEASE:STRING= + +//Flags used by the linker during the creation of shared libraries +// during RELWITHDEBINFO builds. +CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO:STRING= + +//If set, runtime paths are not added when installing shared libraries, +// but are added when building. +CMAKE_SKIP_INSTALL_RPATH:BOOL=NO + +//If set, runtime paths are not added when using shared libraries. +CMAKE_SKIP_RPATH:BOOL=NO + +//Flags used by the linker during the creation of static libraries +// during all build types. +CMAKE_STATIC_LINKER_FLAGS:STRING= + +//Flags used by the linker during the creation of static libraries +// during DEBUG builds. +CMAKE_STATIC_LINKER_FLAGS_DEBUG:STRING= + +//Flags used by the linker during the creation of static libraries +// during MINSIZEREL builds. +CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL:STRING= + +//Flags used by the linker during the creation of static libraries +// during RELEASE builds. +CMAKE_STATIC_LINKER_FLAGS_RELEASE:STRING= + +//Flags used by the linker during the creation of static libraries +// during RELWITHDEBINFO builds. +CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO:STRING= + +//Strip +CMAKE_STRIP:FILEPATH=/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-strip + +//No help, variable specified on the command line. +CMAKE_SYSTEM_NAME:UNINITIALIZED=Android + +//No help, variable specified on the command line. +CMAKE_SYSTEM_VERSION:UNINITIALIZED=21 + +//The CMake toolchain file +CMAKE_TOOLCHAIN_FILE:FILEPATH=/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/build/cmake/android.toolchain.cmake + +//If this value is on, makefiles will be generated without the +// .SILENT directive, and all commands will be echoed to the console +// during the make. This is useful for debugging only. With Visual +// Studio IDE projects all commands are done without /nologo. +CMAKE_VERBOSE_MAKEFILE:BOOL=FALSE + +//Value Computed by CMake +Project_BINARY_DIR:STATIC=/Users/dgarcia/Documents/flutter_policy_engine/example/android/app/.cxx/Debug/28432r45/arm64-v8a + +//Value Computed by CMake +Project_IS_TOP_LEVEL:STATIC=ON + +//Value Computed by CMake +Project_SOURCE_DIR:STATIC=/Users/dgarcia/fvm/versions/3.29.3/packages/flutter_tools/gradle/src/main/groovy + + +######################## +# INTERNAL cache entries +######################## + +//ADVANCED property for variable: CMAKE_ADDR2LINE +CMAKE_ADDR2LINE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_AR +CMAKE_AR-ADVANCED:INTERNAL=1 +//This is the directory where this CMakeCache.txt was created +CMAKE_CACHEFILE_DIR:INTERNAL=/Users/dgarcia/Documents/flutter_policy_engine/example/android/app/.cxx/Debug/28432r45/arm64-v8a +//Major version of cmake used to create the current loaded cache +CMAKE_CACHE_MAJOR_VERSION:INTERNAL=3 +//Minor version of cmake used to create the current loaded cache +CMAKE_CACHE_MINOR_VERSION:INTERNAL=22 +//Patch version of cmake used to create the current loaded cache +CMAKE_CACHE_PATCH_VERSION:INTERNAL=1 +//Path to CMake executable. +CMAKE_COMMAND:INTERNAL=/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/bin/cmake +//Path to cpack program executable. +CMAKE_CPACK_COMMAND:INTERNAL=/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/bin/cpack +//Path to ctest program executable. +CMAKE_CTEST_COMMAND:INTERNAL=/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/bin/ctest +//ADVANCED property for variable: CMAKE_CXX_COMPILER_AR +CMAKE_CXX_COMPILER_AR-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_COMPILER_RANLIB +CMAKE_CXX_COMPILER_RANLIB-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_FLAGS +CMAKE_CXX_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_FLAGS_DEBUG +CMAKE_CXX_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_FLAGS_MINSIZEREL +CMAKE_CXX_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_FLAGS_RELEASE +CMAKE_CXX_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_FLAGS_RELWITHDEBINFO +CMAKE_CXX_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_STANDARD_LIBRARIES +CMAKE_CXX_STANDARD_LIBRARIES-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_COMPILER_AR +CMAKE_C_COMPILER_AR-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_COMPILER_RANLIB +CMAKE_C_COMPILER_RANLIB-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_FLAGS +CMAKE_C_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_FLAGS_DEBUG +CMAKE_C_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_FLAGS_MINSIZEREL +CMAKE_C_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_FLAGS_RELEASE +CMAKE_C_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_FLAGS_RELWITHDEBINFO +CMAKE_C_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_STANDARD_LIBRARIES +CMAKE_C_STANDARD_LIBRARIES-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_DLLTOOL +CMAKE_DLLTOOL-ADVANCED:INTERNAL=1 +//Path to cache edit program executable. +CMAKE_EDIT_COMMAND:INTERNAL=/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/bin/ccmake +//Whether to issue deprecation errors for macros and functions. +CMAKE_ERROR_DEPRECATED:INTERNAL=FALSE +//Executable file format +CMAKE_EXECUTABLE_FORMAT:INTERNAL=ELF +//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS +CMAKE_EXE_LINKER_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_DEBUG +CMAKE_EXE_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_MINSIZEREL +CMAKE_EXE_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_RELEASE +CMAKE_EXE_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO +CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//Name of external makefile project generator. +CMAKE_EXTRA_GENERATOR:INTERNAL= +//Name of generator. +CMAKE_GENERATOR:INTERNAL=Ninja +//Generator instance identifier. +CMAKE_GENERATOR_INSTANCE:INTERNAL= +//Name of generator platform. +CMAKE_GENERATOR_PLATFORM:INTERNAL= +//Name of generator toolset. +CMAKE_GENERATOR_TOOLSET:INTERNAL= +//Source directory with the top level CMakeLists.txt file for this +// project +CMAKE_HOME_DIRECTORY:INTERNAL=/Users/dgarcia/fvm/versions/3.29.3/packages/flutter_tools/gradle/src/main/groovy +//Install .so files without execute permission. +CMAKE_INSTALL_SO_NO_EXE:INTERNAL=0 +//ADVANCED property for variable: CMAKE_LINKER +CMAKE_LINKER-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS +CMAKE_MODULE_LINKER_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_DEBUG +CMAKE_MODULE_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL +CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_RELEASE +CMAKE_MODULE_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO +CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_NM +CMAKE_NM-ADVANCED:INTERNAL=1 +//number of local generators +CMAKE_NUMBER_OF_MAKEFILES:INTERNAL=1 +//ADVANCED property for variable: CMAKE_OBJCOPY +CMAKE_OBJCOPY-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_OBJDUMP +CMAKE_OBJDUMP-ADVANCED:INTERNAL=1 +//Platform information initialized +CMAKE_PLATFORM_INFO_INITIALIZED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_RANLIB +CMAKE_RANLIB-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_READELF +CMAKE_READELF-ADVANCED:INTERNAL=1 +//Path to CMake installation. +CMAKE_ROOT:INTERNAL=/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22 +//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS +CMAKE_SHARED_LINKER_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_DEBUG +CMAKE_SHARED_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL +CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_RELEASE +CMAKE_SHARED_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO +CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SKIP_INSTALL_RPATH +CMAKE_SKIP_INSTALL_RPATH-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SKIP_RPATH +CMAKE_SKIP_RPATH-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS +CMAKE_STATIC_LINKER_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_DEBUG +CMAKE_STATIC_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL +CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_RELEASE +CMAKE_STATIC_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO +CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STRIP +CMAKE_STRIP-ADVANCED:INTERNAL=1 +//Suppress errors that are meant for the author of the CMakeLists.txt +// files. +CMAKE_SUPPRESS_DEVELOPER_ERRORS:INTERNAL=TRUE +//Suppress Warnings that are meant for the author of the CMakeLists.txt +// files. +CMAKE_SUPPRESS_DEVELOPER_WARNINGS:INTERNAL=TRUE +//uname command +CMAKE_UNAME:INTERNAL=/usr/bin/uname +//ADVANCED property for variable: CMAKE_VERBOSE_MAKEFILE +CMAKE_VERBOSE_MAKEFILE-ADVANCED:INTERNAL=1 +//Whether to issue warnings for deprecated functionality. +CMAKE_WARN_DEPRECATED:INTERNAL=FALSE + diff --git a/example/android/app/.cxx/Debug/28432r45/arm64-v8a/CMakeFiles/3.22.1-g37088a8/CMakeCCompiler.cmake b/example/android/app/.cxx/Debug/28432r45/arm64-v8a/CMakeFiles/3.22.1-g37088a8/CMakeCCompiler.cmake new file mode 100644 index 0000000..acf4227 --- /dev/null +++ b/example/android/app/.cxx/Debug/28432r45/arm64-v8a/CMakeFiles/3.22.1-g37088a8/CMakeCCompiler.cmake @@ -0,0 +1,72 @@ +set(CMAKE_C_COMPILER "/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/toolchains/llvm/prebuilt/darwin-x86_64/bin/clang") +set(CMAKE_C_COMPILER_ARG1 "") +set(CMAKE_C_COMPILER_ID "Clang") +set(CMAKE_C_COMPILER_VERSION "17.0.2") +set(CMAKE_C_COMPILER_VERSION_INTERNAL "") +set(CMAKE_C_COMPILER_WRAPPER "") +set(CMAKE_C_STANDARD_COMPUTED_DEFAULT "17") +set(CMAKE_C_EXTENSIONS_COMPUTED_DEFAULT "ON") +set(CMAKE_C_COMPILE_FEATURES "c_std_90;c_function_prototypes;c_std_99;c_restrict;c_variadic_macros;c_std_11;c_static_assert;c_std_17;c_std_23") +set(CMAKE_C90_COMPILE_FEATURES "c_std_90;c_function_prototypes") +set(CMAKE_C99_COMPILE_FEATURES "c_std_99;c_restrict;c_variadic_macros") +set(CMAKE_C11_COMPILE_FEATURES "c_std_11;c_static_assert") +set(CMAKE_C17_COMPILE_FEATURES "c_std_17") +set(CMAKE_C23_COMPILE_FEATURES "c_std_23") + +set(CMAKE_C_PLATFORM_ID "Linux") +set(CMAKE_C_SIMULATE_ID "") +set(CMAKE_C_COMPILER_FRONTEND_VARIANT "GNU") +set(CMAKE_C_SIMULATE_VERSION "") + + + + +set(CMAKE_AR "/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ar") +set(CMAKE_C_COMPILER_AR "/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ar") +set(CMAKE_RANLIB "/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ranlib") +set(CMAKE_C_COMPILER_RANLIB "/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ranlib") +set(CMAKE_LINKER "/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/toolchains/llvm/prebuilt/darwin-x86_64/bin/ld.lld") +set(CMAKE_MT "") +set(CMAKE_COMPILER_IS_GNUCC ) +set(CMAKE_C_COMPILER_LOADED 1) +set(CMAKE_C_COMPILER_WORKS TRUE) +set(CMAKE_C_ABI_COMPILED TRUE) + +set(CMAKE_C_COMPILER_ENV_VAR "CC") + +set(CMAKE_C_COMPILER_ID_RUN 1) +set(CMAKE_C_SOURCE_FILE_EXTENSIONS c;m) +set(CMAKE_C_IGNORE_EXTENSIONS h;H;o;O;obj;OBJ;def;DEF;rc;RC) +set(CMAKE_C_LINKER_PREFERENCE 10) + +# Save compiler ABI information. +set(CMAKE_C_SIZEOF_DATA_PTR "8") +set(CMAKE_C_COMPILER_ABI "ELF") +set(CMAKE_C_BYTE_ORDER "LITTLE_ENDIAN") +set(CMAKE_C_LIBRARY_ARCHITECTURE "") + +if(CMAKE_C_SIZEOF_DATA_PTR) + set(CMAKE_SIZEOF_VOID_P "${CMAKE_C_SIZEOF_DATA_PTR}") +endif() + +if(CMAKE_C_COMPILER_ABI) + set(CMAKE_INTERNAL_PLATFORM_ABI "${CMAKE_C_COMPILER_ABI}") +endif() + +if(CMAKE_C_LIBRARY_ARCHITECTURE) + set(CMAKE_LIBRARY_ARCHITECTURE "") +endif() + +set(CMAKE_C_CL_SHOWINCLUDES_PREFIX "") +if(CMAKE_C_CL_SHOWINCLUDES_PREFIX) + set(CMAKE_CL_SHOWINCLUDES_PREFIX "${CMAKE_C_CL_SHOWINCLUDES_PREFIX}") +endif() + + + + + +set(CMAKE_C_IMPLICIT_INCLUDE_DIRECTORIES "/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/toolchains/llvm/prebuilt/darwin-x86_64/lib/clang/17/include;/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/toolchains/llvm/prebuilt/darwin-x86_64/sysroot/usr/include/aarch64-linux-android;/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/toolchains/llvm/prebuilt/darwin-x86_64/sysroot/usr/include") +set(CMAKE_C_IMPLICIT_LINK_LIBRARIES "-l:libunwind.a;dl;c;-l:libunwind.a;dl") +set(CMAKE_C_IMPLICIT_LINK_DIRECTORIES "/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/toolchains/llvm/prebuilt/darwin-x86_64/lib/clang/17/lib/linux/aarch64;/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/toolchains/llvm/prebuilt/darwin-x86_64/sysroot/usr/lib/aarch64-linux-android/21;/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/toolchains/llvm/prebuilt/darwin-x86_64/sysroot/usr/lib/aarch64-linux-android;/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/toolchains/llvm/prebuilt/darwin-x86_64/sysroot/usr/lib") +set(CMAKE_C_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "") diff --git a/example/android/app/.cxx/Debug/28432r45/arm64-v8a/CMakeFiles/3.22.1-g37088a8/CMakeCXXCompiler.cmake b/example/android/app/.cxx/Debug/28432r45/arm64-v8a/CMakeFiles/3.22.1-g37088a8/CMakeCXXCompiler.cmake new file mode 100644 index 0000000..a9fbfdc --- /dev/null +++ b/example/android/app/.cxx/Debug/28432r45/arm64-v8a/CMakeFiles/3.22.1-g37088a8/CMakeCXXCompiler.cmake @@ -0,0 +1,83 @@ +set(CMAKE_CXX_COMPILER "/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/toolchains/llvm/prebuilt/darwin-x86_64/bin/clang++") +set(CMAKE_CXX_COMPILER_ARG1 "") +set(CMAKE_CXX_COMPILER_ID "Clang") +set(CMAKE_CXX_COMPILER_VERSION "17.0.2") +set(CMAKE_CXX_COMPILER_VERSION_INTERNAL "") +set(CMAKE_CXX_COMPILER_WRAPPER "") +set(CMAKE_CXX_STANDARD_COMPUTED_DEFAULT "17") +set(CMAKE_CXX_EXTENSIONS_COMPUTED_DEFAULT "ON") +set(CMAKE_CXX_COMPILE_FEATURES "cxx_std_98;cxx_template_template_parameters;cxx_std_11;cxx_alias_templates;cxx_alignas;cxx_alignof;cxx_attributes;cxx_auto_type;cxx_constexpr;cxx_decltype;cxx_decltype_incomplete_return_types;cxx_default_function_template_args;cxx_defaulted_functions;cxx_defaulted_move_initializers;cxx_delegating_constructors;cxx_deleted_functions;cxx_enum_forward_declarations;cxx_explicit_conversions;cxx_extended_friend_declarations;cxx_extern_templates;cxx_final;cxx_func_identifier;cxx_generalized_initializers;cxx_inheriting_constructors;cxx_inline_namespaces;cxx_lambdas;cxx_local_type_template_args;cxx_long_long_type;cxx_noexcept;cxx_nonstatic_member_init;cxx_nullptr;cxx_override;cxx_range_for;cxx_raw_string_literals;cxx_reference_qualified_functions;cxx_right_angle_brackets;cxx_rvalue_references;cxx_sizeof_member;cxx_static_assert;cxx_strong_enums;cxx_thread_local;cxx_trailing_return_types;cxx_unicode_literals;cxx_uniform_initialization;cxx_unrestricted_unions;cxx_user_literals;cxx_variadic_macros;cxx_variadic_templates;cxx_std_14;cxx_aggregate_default_initializers;cxx_attribute_deprecated;cxx_binary_literals;cxx_contextual_conversions;cxx_decltype_auto;cxx_digit_separators;cxx_generic_lambdas;cxx_lambda_init_captures;cxx_relaxed_constexpr;cxx_return_type_deduction;cxx_variable_templates;cxx_std_17;cxx_std_20;cxx_std_23") +set(CMAKE_CXX98_COMPILE_FEATURES "cxx_std_98;cxx_template_template_parameters") +set(CMAKE_CXX11_COMPILE_FEATURES "cxx_std_11;cxx_alias_templates;cxx_alignas;cxx_alignof;cxx_attributes;cxx_auto_type;cxx_constexpr;cxx_decltype;cxx_decltype_incomplete_return_types;cxx_default_function_template_args;cxx_defaulted_functions;cxx_defaulted_move_initializers;cxx_delegating_constructors;cxx_deleted_functions;cxx_enum_forward_declarations;cxx_explicit_conversions;cxx_extended_friend_declarations;cxx_extern_templates;cxx_final;cxx_func_identifier;cxx_generalized_initializers;cxx_inheriting_constructors;cxx_inline_namespaces;cxx_lambdas;cxx_local_type_template_args;cxx_long_long_type;cxx_noexcept;cxx_nonstatic_member_init;cxx_nullptr;cxx_override;cxx_range_for;cxx_raw_string_literals;cxx_reference_qualified_functions;cxx_right_angle_brackets;cxx_rvalue_references;cxx_sizeof_member;cxx_static_assert;cxx_strong_enums;cxx_thread_local;cxx_trailing_return_types;cxx_unicode_literals;cxx_uniform_initialization;cxx_unrestricted_unions;cxx_user_literals;cxx_variadic_macros;cxx_variadic_templates") +set(CMAKE_CXX14_COMPILE_FEATURES "cxx_std_14;cxx_aggregate_default_initializers;cxx_attribute_deprecated;cxx_binary_literals;cxx_contextual_conversions;cxx_decltype_auto;cxx_digit_separators;cxx_generic_lambdas;cxx_lambda_init_captures;cxx_relaxed_constexpr;cxx_return_type_deduction;cxx_variable_templates") +set(CMAKE_CXX17_COMPILE_FEATURES "cxx_std_17") +set(CMAKE_CXX20_COMPILE_FEATURES "cxx_std_20") +set(CMAKE_CXX23_COMPILE_FEATURES "cxx_std_23") + +set(CMAKE_CXX_PLATFORM_ID "Linux") +set(CMAKE_CXX_SIMULATE_ID "") +set(CMAKE_CXX_COMPILER_FRONTEND_VARIANT "GNU") +set(CMAKE_CXX_SIMULATE_VERSION "") + + + + +set(CMAKE_AR "/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ar") +set(CMAKE_CXX_COMPILER_AR "/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ar") +set(CMAKE_RANLIB "/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ranlib") +set(CMAKE_CXX_COMPILER_RANLIB "/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ranlib") +set(CMAKE_LINKER "/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/toolchains/llvm/prebuilt/darwin-x86_64/bin/ld.lld") +set(CMAKE_MT "") +set(CMAKE_COMPILER_IS_GNUCXX ) +set(CMAKE_CXX_COMPILER_LOADED 1) +set(CMAKE_CXX_COMPILER_WORKS TRUE) +set(CMAKE_CXX_ABI_COMPILED TRUE) + +set(CMAKE_CXX_COMPILER_ENV_VAR "CXX") + +set(CMAKE_CXX_COMPILER_ID_RUN 1) +set(CMAKE_CXX_SOURCE_FILE_EXTENSIONS C;M;c++;cc;cpp;cxx;m;mm;mpp;CPP;ixx;cppm) +set(CMAKE_CXX_IGNORE_EXTENSIONS inl;h;hpp;HPP;H;o;O;obj;OBJ;def;DEF;rc;RC) + +foreach (lang C OBJC OBJCXX) + if (CMAKE_${lang}_COMPILER_ID_RUN) + foreach(extension IN LISTS CMAKE_${lang}_SOURCE_FILE_EXTENSIONS) + list(REMOVE_ITEM CMAKE_CXX_SOURCE_FILE_EXTENSIONS ${extension}) + endforeach() + endif() +endforeach() + +set(CMAKE_CXX_LINKER_PREFERENCE 30) +set(CMAKE_CXX_LINKER_PREFERENCE_PROPAGATES 1) + +# Save compiler ABI information. +set(CMAKE_CXX_SIZEOF_DATA_PTR "8") +set(CMAKE_CXX_COMPILER_ABI "ELF") +set(CMAKE_CXX_BYTE_ORDER "LITTLE_ENDIAN") +set(CMAKE_CXX_LIBRARY_ARCHITECTURE "") + +if(CMAKE_CXX_SIZEOF_DATA_PTR) + set(CMAKE_SIZEOF_VOID_P "${CMAKE_CXX_SIZEOF_DATA_PTR}") +endif() + +if(CMAKE_CXX_COMPILER_ABI) + set(CMAKE_INTERNAL_PLATFORM_ABI "${CMAKE_CXX_COMPILER_ABI}") +endif() + +if(CMAKE_CXX_LIBRARY_ARCHITECTURE) + set(CMAKE_LIBRARY_ARCHITECTURE "") +endif() + +set(CMAKE_CXX_CL_SHOWINCLUDES_PREFIX "") +if(CMAKE_CXX_CL_SHOWINCLUDES_PREFIX) + set(CMAKE_CL_SHOWINCLUDES_PREFIX "${CMAKE_CXX_CL_SHOWINCLUDES_PREFIX}") +endif() + + + + + +set(CMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES "/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/toolchains/llvm/prebuilt/darwin-x86_64/sysroot/usr/include/c++/v1;/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/toolchains/llvm/prebuilt/darwin-x86_64/lib/clang/17/include;/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/toolchains/llvm/prebuilt/darwin-x86_64/sysroot/usr/include/aarch64-linux-android;/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/toolchains/llvm/prebuilt/darwin-x86_64/sysroot/usr/include") +set(CMAKE_CXX_IMPLICIT_LINK_LIBRARIES "c++;m;-l:libunwind.a;dl;c;-l:libunwind.a;dl") +set(CMAKE_CXX_IMPLICIT_LINK_DIRECTORIES "/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/toolchains/llvm/prebuilt/darwin-x86_64/lib/clang/17/lib/linux/aarch64;/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/toolchains/llvm/prebuilt/darwin-x86_64/sysroot/usr/lib/aarch64-linux-android/21;/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/toolchains/llvm/prebuilt/darwin-x86_64/sysroot/usr/lib/aarch64-linux-android;/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/toolchains/llvm/prebuilt/darwin-x86_64/sysroot/usr/lib") +set(CMAKE_CXX_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "") diff --git a/example/android/app/.cxx/Debug/28432r45/arm64-v8a/CMakeFiles/3.22.1-g37088a8/CMakeDetermineCompilerABI_C.bin b/example/android/app/.cxx/Debug/28432r45/arm64-v8a/CMakeFiles/3.22.1-g37088a8/CMakeDetermineCompilerABI_C.bin new file mode 100755 index 0000000000000000000000000000000000000000..0789fb3490b995982006acf8b8a2a17a4a30dee5 GIT binary patch literal 7912 zcmdT}eQX@n5ue@j`Rg2iC6J^};)8_Zw8`DszS!rWg6*6`4jki#(3VE+X76@wUvppG zTe~(O5fv&$YAeMOMN}d*{iCg*QWc>}B@_gxA3|zX6;zO_R;m%L6cDW_r9~D6cjoPk zZ@saBLjUQU-kUeSH}l@?+xId1?(VVi!@8z{PzZhkBt0AUkYTR4bR`#%4MPf=F^|G7 zs7JX@VP5^P$FSC;gua$HG9E%sb``D<@+(+RxOhmMU1N>4EZX47!lB)h$&P##Ji3+j zm>*$3ga_?rnmqlPy=%EA0myTS9W_V&O|n0e+>h|z@&gGM`(uA`EgF~i^K*#}WLzfM zZU+xekndwhg;O6ypGG_K^S>psr*wwLEy$nX28Bz1@#;d=wTtm=z7#LyOQ&pSAW5q9 zIQL?r=NTzkPC0J@y?du`z(V$+skisQ;835}$A@Wz{N93z=If0Ux51O0=g!}uzx~XX zIqmCj{i5{B%df%x@6|3nPv<%cn>N4!bo|jcXz(%QJbfXziC(M@S7S~@?UGN#NzYG& zQzG)(^2)2ZVHEP&oRKf(T`-K?ylI%OJ&yvxv1%E{Goyz{unHs*MYns_A%2mvetH6U zg6DZ6fDbdC3gDAG`98D%e$OFw{zUu}cs(FfDZLjd;~*zQSyAHN=gM?mj>@#&E9B4IC~+#LW+}z26gMTxrFVbAB*Jc>vul&Fpl$ujz`kV?W5N$M)4WQ7fGt_M_8Bj z>XiH_%3t;56($~Ld|ZzUCUf#S);oc=j|KbURhBK4D}Qw=N+p7A0N;|lMqSl zPAUn2k0mwF2wLX$SRHuT!5Ic*4JFuK_K9I$XEG0^UpX6&uwsPmXg(6jS^Or~&#@A)3%dhzRbEJs;i_LHkv#`mCz-2&NHx&rkwuCl+#ni2cgc|6W?fA6yV0L%C` zW&FA2{|#H>ffLSWTC}IPw?8@5*O%HC{bXgjjCrU6!sSjgk{aDZAHtasFO?$ z4kicfz0q93EKNt}Y^Rz>ymv5`i1kH#W?Z*YJs6Lh-iaBTE|;eZcC|d~XZKru z{R4e_VO*Wj2czTTY3>#G#SZP7*3IEiYx~x&)())`A5~96s5P_shV2I<*F|)k93f51 zY{u>KD#&ae#7PtWI2JG@+Jk!6M~fKHzQE@ zS#BZzO`ifiArjyH?@$r1tF`b1tFWq?6Iu*|q%~N)~Ki1b5 z>y1}&9BmKUPf+}5*_y@W7e90qwGJIB7c2RK?Tn0OV!2@B>2hwiXqVh-e5x?(y0&9f z%7uImBbU;2zGTPkd9zq4*s`+YW~CC3<>u$(X*)YR9q&se`}>^afw<`u2a@~eQl{7G zVeF9mKVGb0a5r-7*vRe1t(nh{8OLv*95W0so#`B9b1++~=BG=z(^O~5jtfQHCU8(( z*orfy4t|a^MbosmTQ?D-nS@DOJ4P6*e8fTWjnNEs@KM`aJLu$foeoX9tfNr77H(+% zN4WduaBKZd;mG6Rz4bqp;=WpOYyA^~HrGEH4%J6)(i?Fcu)Xz3^#p&Xb+?9El+?ER zJuQ_TSkR#j{>ZC7%@sQp?*KUuMgMA5=v+Mq1^42N%^>HW;NExMR*>&i!7)Zd+6KQ8 zfcb#pt#E|>k?QNPprNPoefI!YOekK%MgLaDAH+?^PZUqn6WfpG>rw8#Wd5WP@4%m|N0}#| zQFv`V3T`XBwjKp{xqaD)C;%Z^P`Fq2=Z|iHKc(8Q&6Cydg&6MKwo`#vsqES@2?+BR zo-vF~mu6$x*?hs;k9R9EYoSzKC_;=-4lCCPhU1AdW_1Q)UQRYH;*MP~sR1rk3fP5H zwoKQAm_1`mIcCu|W-Qbc31WD`fLcnm;@EWcV3>|$E&w`SD^H;yICfwb^Eq^*jFy;r z*4b(mD7K~36CZ<)L&MBw9eYkB3Ie38{PmRZy2*wZKD29Qky+xMqZ{bm_CzAey{vXG>fBEd?K0&ygFk&bEt41;VA|?uLq<^`8 z5FW)kBC!v03+pIE5qr7s5KiOkCmKUP6;Ply#a`}ngr8((=~w)h@tBHAg!T!BCt!6LxGQx-b##n9-$UkIE!c>U|DW literal 0 HcmV?d00001 diff --git a/example/android/app/.cxx/Debug/28432r45/arm64-v8a/CMakeFiles/3.22.1-g37088a8/CMakeDetermineCompilerABI_CXX.bin b/example/android/app/.cxx/Debug/28432r45/arm64-v8a/CMakeFiles/3.22.1-g37088a8/CMakeDetermineCompilerABI_CXX.bin new file mode 100755 index 0000000000000000000000000000000000000000..7874a0ac43bd257c0440d03065bfd493c255fcb5 GIT binary patch literal 8080 zcmdT}Yiu0V6+S!b^&^}38JeUf@dgYyZM-jU{771`lXb|Zj&Y5V3{g9t-5uN8?5nfm z)CSb10<}>EQY@j0RzTqgt&)P2AC=mqP$G~}rM`dy67-L0sS5p3rIfa^5V+^uIcGf{ z;-m%s^sMfjd%kp1J#t;gN%y&j&(&_$iR|Lcl==x!}|m&LA6ve%OG|5bS_j zlxq~`ln*)#OC5@8Yk586e&l3V=5jB;iuHtxhs4=6)>zA;b&f0?njM+!$XCIm+#lhS z?1yl#-N^>0o|C)Qaz_G?eu*7bN9|3qKU3VE@Fnh$aIqi%vz?`JxssnRuz`%r7~6I7 z;CT6Nc2qdELG(qmBR~IFB6~_FdEC7GDXvhsv=^x?RBW>lN#}}@e6D!Rw0aYyO5M2^ z6ZL1Pn6*l|EYRFr@!l-5k4&-Hp1y&&)5b@sg#6x&iPr1Qqqo79*QUoG``v5LE&Tqs zk3184QajN0^6QtYm-^Fs358AT-~bx_XdHa-Y2>_oA+w1lR)cHsNksLMPsB;jO@vb- za_VyO)u*oKbLotpE9Pv_^~}7X8@4%*0>R-*2}V-;50FqG0eLo08KS{$PAz_(P}x6+ zJoq55_c0GX#`vTMpX5b2&$x#5Q{RM6xNu%_swg#j@Rq%m+?{4=TF;hk>u9w9O8}#( zTMnl8+6%gAmCWo>E45$0d2~3H9328IRW|7b+tf=|*0hd}q$VathV|jmWNK(s%8hjH zD83s}1Yf&r>j5v*Qpe2HB3*DUqDj z?{Yb=IYqSIiT?S4)4!i_x%l-m%ORzO=OH_~lVzM2MeG*H`=;GfF5@ci9ob7_f04)I z6u0*Q%MY@Q^DE=eHGeYfA`hH!KJ!9du~<)HARh1E9r|o}ri9OQDQ_do+bDDw@`R<0 zikS_SiXkh}-`AJuGk1kDd80TJI&NB(9OALQa5Nkbb5 zptiM$uPeXLmukb;=uSwr_2HrkT#p$HnL1JL#$XVUI?4uvH)6Ivj8(SQ4sP`~QVprL zn{e720-#j^fDMT?Vz5co2NB#j&YG(C(OTRIb-V??hg?pbQ&^(SB5(jRzM2OA1zv}T zaX2uHZ8qe%I7i|^b}`uMKfZ~8-;S-l+7P8%H>En zGd~|mn(4WjNW4GM6Soq3B8FAyO>`gcHylq7qL1wKM4_yl8t^)`c2sqJXncI=cKz1W z9mD#>?PJ5b4u&<8A={YKAx}5^s}q5G$6>Bm$;}k;l~$Q8SvC~#eT1W9!!}%#HSkMZ zlRlsCy~a(%Xw72stsM*umOkeExF%g)^-_Ejlth(qpzWjN@}Wp-%DW&W;AGm zH~CeQWi0`mPVcuZxs!mk8i-m7>cj7b2& z_&(%5^i;k#A7p$~@l~8*xRvpT@Ga*iitDMz4|wny#zTDmD-j=M#vk?Q-_7`v2Y(VL zK+~F_i_dw9o1SOtUve6SJZ0F!v} z0^@Q(Nu0UFxST^Fl!^T057r|`k9=V?BMz?mNg}$6ajD-y@!OPfsbBC8#-)D2I~6Wb zouB}_6fV)+DjrsNdo|9Kk{*SBcwO}?{KM<&^9q;QkXkSxPj`HUij{=|gbC#^c8#E0jyP*nW+Ci6$;L+9GV=yiz`1fBo3Kh*!!{sn&g#>a zQ84w{ENY4bVZ87_Eu~tvOu7ou4a+hX$nn+uGzx-a14bd2K{rZhi4Vs*U8w-Y(sUGK zH|T8Djda>FkBdZyo#d6jjuKvfnGnWK+eRAsEEYLAheO7)(0lThK{0zwmw~6eni{=0 zS4f){tQW(eW6|}G`O8K#6zyCou()GnHB!JH#Hf3h={J`4lga=+Vo~*Undth#@u4H? zq6Z@sR7vod;w9MF_;6}8HNlaLj)+G*h;p@5&B5ARH0K6QpT%Lv7*GG2h2a(s9AB*I zdbU#H!nId!dh+(sp(82!@c1MMwoR=ScWPWJ_Mn8aSrS>bZtk}i?F z#~cZO;sv+8oTI`!MUlDJK8iSg@m1TGdxa`zJMxqIDeo=0Z=ibx`eqmZ<-1-uAG=k* zMNjxJ+S46?$Z`)LJcQ*$(!SS!`hxnG%URyVKkLc8l5m<|BC`J! zCa?Vo#N6xm0yiW)jpc3Q@5uj$UVX3pH?*bpqnO+z_P=(6nCIcB@_)N9x9S96 zyx!*qFQFU23Z+iB>Jr;KarJ76SGR@jz5cgtbZoxk*|1_S{A#veZNbSs%pV}zMUfRe zBG3(&rwOHbffgmwgS_E7F#j1$GXC=ZilV*D9q9{Aa-hB6)1XI$z3bS2pFhMddJH@w F{0HZ&HpTz| literal 0 HcmV?d00001 diff --git a/example/android/app/.cxx/Debug/28432r45/arm64-v8a/CMakeFiles/3.22.1-g37088a8/CMakeSystem.cmake b/example/android/app/.cxx/Debug/28432r45/arm64-v8a/CMakeFiles/3.22.1-g37088a8/CMakeSystem.cmake new file mode 100644 index 0000000..afe5385 --- /dev/null +++ b/example/android/app/.cxx/Debug/28432r45/arm64-v8a/CMakeFiles/3.22.1-g37088a8/CMakeSystem.cmake @@ -0,0 +1,15 @@ +set(CMAKE_HOST_SYSTEM "Darwin-24.5.0") +set(CMAKE_HOST_SYSTEM_NAME "Darwin") +set(CMAKE_HOST_SYSTEM_VERSION "24.5.0") +set(CMAKE_HOST_SYSTEM_PROCESSOR "arm64") + +include("/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/build/cmake/android.toolchain.cmake") + +set(CMAKE_SYSTEM "Android-1") +set(CMAKE_SYSTEM_NAME "Android") +set(CMAKE_SYSTEM_VERSION "1") +set(CMAKE_SYSTEM_PROCESSOR "aarch64") + +set(CMAKE_CROSSCOMPILING "TRUE") + +set(CMAKE_SYSTEM_LOADED 1) diff --git a/example/android/app/.cxx/Debug/28432r45/arm64-v8a/CMakeFiles/3.22.1-g37088a8/CompilerIdC/CMakeCCompilerId.c b/example/android/app/.cxx/Debug/28432r45/arm64-v8a/CMakeFiles/3.22.1-g37088a8/CompilerIdC/CMakeCCompilerId.c new file mode 100644 index 0000000..41b99d7 --- /dev/null +++ b/example/android/app/.cxx/Debug/28432r45/arm64-v8a/CMakeFiles/3.22.1-g37088a8/CompilerIdC/CMakeCCompilerId.c @@ -0,0 +1,803 @@ +#ifdef __cplusplus +# error "A C++ compiler has been selected for C." +#endif + +#if defined(__18CXX) +# define ID_VOID_MAIN +#endif +#if defined(__CLASSIC_C__) +/* cv-qualifiers did not exist in K&R C */ +# define const +# define volatile +#endif + +#if !defined(__has_include) +/* If the compiler does not have __has_include, pretend the answer is + always no. */ +# define __has_include(x) 0 +#endif + + +/* Version number components: V=Version, R=Revision, P=Patch + Version date components: YYYY=Year, MM=Month, DD=Day */ + +#if defined(__INTEL_COMPILER) || defined(__ICC) +# define COMPILER_ID "Intel" +# if defined(_MSC_VER) +# define SIMULATE_ID "MSVC" +# endif +# if defined(__GNUC__) +# define SIMULATE_ID "GNU" +# endif + /* __INTEL_COMPILER = VRP prior to 2021, and then VVVV for 2021 and later, + except that a few beta releases use the old format with V=2021. */ +# if __INTEL_COMPILER < 2021 || __INTEL_COMPILER == 202110 || __INTEL_COMPILER == 202111 +# define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER/100) +# define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER/10 % 10) +# if defined(__INTEL_COMPILER_UPDATE) +# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER_UPDATE) +# else +# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER % 10) +# endif +# else +# define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER) +# define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER_UPDATE) + /* The third version component from --version is an update index, + but no macro is provided for it. */ +# define COMPILER_VERSION_PATCH DEC(0) +# endif +# if defined(__INTEL_COMPILER_BUILD_DATE) + /* __INTEL_COMPILER_BUILD_DATE = YYYYMMDD */ +# define COMPILER_VERSION_TWEAK DEC(__INTEL_COMPILER_BUILD_DATE) +# endif +# if defined(_MSC_VER) + /* _MSC_VER = VVRR */ +# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) +# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) +# endif +# if defined(__GNUC__) +# define SIMULATE_VERSION_MAJOR DEC(__GNUC__) +# elif defined(__GNUG__) +# define SIMULATE_VERSION_MAJOR DEC(__GNUG__) +# endif +# if defined(__GNUC_MINOR__) +# define SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__) +# endif +# if defined(__GNUC_PATCHLEVEL__) +# define SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) +# endif + +#elif (defined(__clang__) && defined(__INTEL_CLANG_COMPILER)) || defined(__INTEL_LLVM_COMPILER) +# define COMPILER_ID "IntelLLVM" +#if defined(_MSC_VER) +# define SIMULATE_ID "MSVC" +#endif +#if defined(__GNUC__) +# define SIMULATE_ID "GNU" +#endif +/* __INTEL_LLVM_COMPILER = VVVVRP prior to 2021.2.0, VVVVRRPP for 2021.2.0 and + * later. Look for 6 digit vs. 8 digit version number to decide encoding. + * VVVV is no smaller than the current year when a version is released. + */ +#if __INTEL_LLVM_COMPILER < 1000000L +# define COMPILER_VERSION_MAJOR DEC(__INTEL_LLVM_COMPILER/100) +# define COMPILER_VERSION_MINOR DEC(__INTEL_LLVM_COMPILER/10 % 10) +# define COMPILER_VERSION_PATCH DEC(__INTEL_LLVM_COMPILER % 10) +#else +# define COMPILER_VERSION_MAJOR DEC(__INTEL_LLVM_COMPILER/10000) +# define COMPILER_VERSION_MINOR DEC(__INTEL_LLVM_COMPILER/100 % 100) +# define COMPILER_VERSION_PATCH DEC(__INTEL_LLVM_COMPILER % 100) +#endif +#if defined(_MSC_VER) + /* _MSC_VER = VVRR */ +# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) +# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) +#endif +#if defined(__GNUC__) +# define SIMULATE_VERSION_MAJOR DEC(__GNUC__) +#elif defined(__GNUG__) +# define SIMULATE_VERSION_MAJOR DEC(__GNUG__) +#endif +#if defined(__GNUC_MINOR__) +# define SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__) +#endif +#if defined(__GNUC_PATCHLEVEL__) +# define SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) +#endif + +#elif defined(__PATHCC__) +# define COMPILER_ID "PathScale" +# define COMPILER_VERSION_MAJOR DEC(__PATHCC__) +# define COMPILER_VERSION_MINOR DEC(__PATHCC_MINOR__) +# if defined(__PATHCC_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__PATHCC_PATCHLEVEL__) +# endif + +#elif defined(__BORLANDC__) && defined(__CODEGEARC_VERSION__) +# define COMPILER_ID "Embarcadero" +# define COMPILER_VERSION_MAJOR HEX(__CODEGEARC_VERSION__>>24 & 0x00FF) +# define COMPILER_VERSION_MINOR HEX(__CODEGEARC_VERSION__>>16 & 0x00FF) +# define COMPILER_VERSION_PATCH DEC(__CODEGEARC_VERSION__ & 0xFFFF) + +#elif defined(__BORLANDC__) +# define COMPILER_ID "Borland" + /* __BORLANDC__ = 0xVRR */ +# define COMPILER_VERSION_MAJOR HEX(__BORLANDC__>>8) +# define COMPILER_VERSION_MINOR HEX(__BORLANDC__ & 0xFF) + +#elif defined(__WATCOMC__) && __WATCOMC__ < 1200 +# define COMPILER_ID "Watcom" + /* __WATCOMC__ = VVRR */ +# define COMPILER_VERSION_MAJOR DEC(__WATCOMC__ / 100) +# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10) +# if (__WATCOMC__ % 10) > 0 +# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10) +# endif + +#elif defined(__WATCOMC__) +# define COMPILER_ID "OpenWatcom" + /* __WATCOMC__ = VVRP + 1100 */ +# define COMPILER_VERSION_MAJOR DEC((__WATCOMC__ - 1100) / 100) +# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10) +# if (__WATCOMC__ % 10) > 0 +# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10) +# endif + +#elif defined(__SUNPRO_C) +# define COMPILER_ID "SunPro" +# if __SUNPRO_C >= 0x5100 + /* __SUNPRO_C = 0xVRRP */ +# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_C>>12) +# define COMPILER_VERSION_MINOR HEX(__SUNPRO_C>>4 & 0xFF) +# define COMPILER_VERSION_PATCH HEX(__SUNPRO_C & 0xF) +# else + /* __SUNPRO_CC = 0xVRP */ +# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_C>>8) +# define COMPILER_VERSION_MINOR HEX(__SUNPRO_C>>4 & 0xF) +# define COMPILER_VERSION_PATCH HEX(__SUNPRO_C & 0xF) +# endif + +#elif defined(__HP_cc) +# define COMPILER_ID "HP" + /* __HP_cc = VVRRPP */ +# define COMPILER_VERSION_MAJOR DEC(__HP_cc/10000) +# define COMPILER_VERSION_MINOR DEC(__HP_cc/100 % 100) +# define COMPILER_VERSION_PATCH DEC(__HP_cc % 100) + +#elif defined(__DECC) +# define COMPILER_ID "Compaq" + /* __DECC_VER = VVRRTPPPP */ +# define COMPILER_VERSION_MAJOR DEC(__DECC_VER/10000000) +# define COMPILER_VERSION_MINOR DEC(__DECC_VER/100000 % 100) +# define COMPILER_VERSION_PATCH DEC(__DECC_VER % 10000) + +#elif defined(__IBMC__) && defined(__COMPILER_VER__) +# define COMPILER_ID "zOS" + /* __IBMC__ = VRP */ +# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100) +# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10) +# define COMPILER_VERSION_PATCH DEC(__IBMC__ % 10) + +#elif defined(__ibmxl__) && defined(__clang__) +# define COMPILER_ID "XLClang" +# define COMPILER_VERSION_MAJOR DEC(__ibmxl_version__) +# define COMPILER_VERSION_MINOR DEC(__ibmxl_release__) +# define COMPILER_VERSION_PATCH DEC(__ibmxl_modification__) +# define COMPILER_VERSION_TWEAK DEC(__ibmxl_ptf_fix_level__) + + +#elif defined(__IBMC__) && !defined(__COMPILER_VER__) && __IBMC__ >= 800 +# define COMPILER_ID "XL" + /* __IBMC__ = VRP */ +# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100) +# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10) +# define COMPILER_VERSION_PATCH DEC(__IBMC__ % 10) + +#elif defined(__IBMC__) && !defined(__COMPILER_VER__) && __IBMC__ < 800 +# define COMPILER_ID "VisualAge" + /* __IBMC__ = VRP */ +# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100) +# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10) +# define COMPILER_VERSION_PATCH DEC(__IBMC__ % 10) + +#elif defined(__NVCOMPILER) +# define COMPILER_ID "NVHPC" +# define COMPILER_VERSION_MAJOR DEC(__NVCOMPILER_MAJOR__) +# define COMPILER_VERSION_MINOR DEC(__NVCOMPILER_MINOR__) +# if defined(__NVCOMPILER_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__NVCOMPILER_PATCHLEVEL__) +# endif + +#elif defined(__PGI) +# define COMPILER_ID "PGI" +# define COMPILER_VERSION_MAJOR DEC(__PGIC__) +# define COMPILER_VERSION_MINOR DEC(__PGIC_MINOR__) +# if defined(__PGIC_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__PGIC_PATCHLEVEL__) +# endif + +#elif defined(_CRAYC) +# define COMPILER_ID "Cray" +# define COMPILER_VERSION_MAJOR DEC(_RELEASE_MAJOR) +# define COMPILER_VERSION_MINOR DEC(_RELEASE_MINOR) + +#elif defined(__TI_COMPILER_VERSION__) +# define COMPILER_ID "TI" + /* __TI_COMPILER_VERSION__ = VVVRRRPPP */ +# define COMPILER_VERSION_MAJOR DEC(__TI_COMPILER_VERSION__/1000000) +# define COMPILER_VERSION_MINOR DEC(__TI_COMPILER_VERSION__/1000 % 1000) +# define COMPILER_VERSION_PATCH DEC(__TI_COMPILER_VERSION__ % 1000) + +#elif defined(__CLANG_FUJITSU) +# define COMPILER_ID "FujitsuClang" +# define COMPILER_VERSION_MAJOR DEC(__FCC_major__) +# define COMPILER_VERSION_MINOR DEC(__FCC_minor__) +# define COMPILER_VERSION_PATCH DEC(__FCC_patchlevel__) +# define COMPILER_VERSION_INTERNAL_STR __clang_version__ + + +#elif defined(__FUJITSU) +# define COMPILER_ID "Fujitsu" +# if defined(__FCC_version__) +# define COMPILER_VERSION __FCC_version__ +# elif defined(__FCC_major__) +# define COMPILER_VERSION_MAJOR DEC(__FCC_major__) +# define COMPILER_VERSION_MINOR DEC(__FCC_minor__) +# define COMPILER_VERSION_PATCH DEC(__FCC_patchlevel__) +# endif +# if defined(__fcc_version) +# define COMPILER_VERSION_INTERNAL DEC(__fcc_version) +# elif defined(__FCC_VERSION) +# define COMPILER_VERSION_INTERNAL DEC(__FCC_VERSION) +# endif + + +#elif defined(__ghs__) +# define COMPILER_ID "GHS" +/* __GHS_VERSION_NUMBER = VVVVRP */ +# ifdef __GHS_VERSION_NUMBER +# define COMPILER_VERSION_MAJOR DEC(__GHS_VERSION_NUMBER / 100) +# define COMPILER_VERSION_MINOR DEC(__GHS_VERSION_NUMBER / 10 % 10) +# define COMPILER_VERSION_PATCH DEC(__GHS_VERSION_NUMBER % 10) +# endif + +#elif defined(__TINYC__) +# define COMPILER_ID "TinyCC" + +#elif defined(__BCC__) +# define COMPILER_ID "Bruce" + +#elif defined(__SCO_VERSION__) +# define COMPILER_ID "SCO" + +#elif defined(__ARMCC_VERSION) && !defined(__clang__) +# define COMPILER_ID "ARMCC" +#if __ARMCC_VERSION >= 1000000 + /* __ARMCC_VERSION = VRRPPPP */ + # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/1000000) + # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 100) + # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000) +#else + /* __ARMCC_VERSION = VRPPPP */ + # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/100000) + # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 10) + # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000) +#endif + + +#elif defined(__clang__) && defined(__apple_build_version__) +# define COMPILER_ID "AppleClang" +# if defined(_MSC_VER) +# define SIMULATE_ID "MSVC" +# endif +# define COMPILER_VERSION_MAJOR DEC(__clang_major__) +# define COMPILER_VERSION_MINOR DEC(__clang_minor__) +# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__) +# if defined(_MSC_VER) + /* _MSC_VER = VVRR */ +# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) +# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) +# endif +# define COMPILER_VERSION_TWEAK DEC(__apple_build_version__) + +#elif defined(__clang__) && defined(__ARMCOMPILER_VERSION) +# define COMPILER_ID "ARMClang" + # define COMPILER_VERSION_MAJOR DEC(__ARMCOMPILER_VERSION/1000000) + # define COMPILER_VERSION_MINOR DEC(__ARMCOMPILER_VERSION/10000 % 100) + # define COMPILER_VERSION_PATCH DEC(__ARMCOMPILER_VERSION % 10000) +# define COMPILER_VERSION_INTERNAL DEC(__ARMCOMPILER_VERSION) + +#elif defined(__clang__) +# define COMPILER_ID "Clang" +# if defined(_MSC_VER) +# define SIMULATE_ID "MSVC" +# endif +# define COMPILER_VERSION_MAJOR DEC(__clang_major__) +# define COMPILER_VERSION_MINOR DEC(__clang_minor__) +# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__) +# if defined(_MSC_VER) + /* _MSC_VER = VVRR */ +# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) +# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) +# endif + +#elif defined(__GNUC__) +# define COMPILER_ID "GNU" +# define COMPILER_VERSION_MAJOR DEC(__GNUC__) +# if defined(__GNUC_MINOR__) +# define COMPILER_VERSION_MINOR DEC(__GNUC_MINOR__) +# endif +# if defined(__GNUC_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) +# endif + +#elif defined(_MSC_VER) +# define COMPILER_ID "MSVC" + /* _MSC_VER = VVRR */ +# define COMPILER_VERSION_MAJOR DEC(_MSC_VER / 100) +# define COMPILER_VERSION_MINOR DEC(_MSC_VER % 100) +# if defined(_MSC_FULL_VER) +# if _MSC_VER >= 1400 + /* _MSC_FULL_VER = VVRRPPPPP */ +# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 100000) +# else + /* _MSC_FULL_VER = VVRRPPPP */ +# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 10000) +# endif +# endif +# if defined(_MSC_BUILD) +# define COMPILER_VERSION_TWEAK DEC(_MSC_BUILD) +# endif + +#elif defined(__VISUALDSPVERSION__) || defined(__ADSPBLACKFIN__) || defined(__ADSPTS__) || defined(__ADSP21000__) +# define COMPILER_ID "ADSP" +#if defined(__VISUALDSPVERSION__) + /* __VISUALDSPVERSION__ = 0xVVRRPP00 */ +# define COMPILER_VERSION_MAJOR HEX(__VISUALDSPVERSION__>>24) +# define COMPILER_VERSION_MINOR HEX(__VISUALDSPVERSION__>>16 & 0xFF) +# define COMPILER_VERSION_PATCH HEX(__VISUALDSPVERSION__>>8 & 0xFF) +#endif + +#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC) +# define COMPILER_ID "IAR" +# if defined(__VER__) && defined(__ICCARM__) +# define COMPILER_VERSION_MAJOR DEC((__VER__) / 1000000) +# define COMPILER_VERSION_MINOR DEC(((__VER__) / 1000) % 1000) +# define COMPILER_VERSION_PATCH DEC((__VER__) % 1000) +# define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__) +# elif defined(__VER__) && (defined(__ICCAVR__) || defined(__ICCRX__) || defined(__ICCRH850__) || defined(__ICCRL78__) || defined(__ICC430__) || defined(__ICCRISCV__) || defined(__ICCV850__) || defined(__ICC8051__) || defined(__ICCSTM8__)) +# define COMPILER_VERSION_MAJOR DEC((__VER__) / 100) +# define COMPILER_VERSION_MINOR DEC((__VER__) - (((__VER__) / 100)*100)) +# define COMPILER_VERSION_PATCH DEC(__SUBVERSION__) +# define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__) +# endif + +#elif defined(__SDCC_VERSION_MAJOR) || defined(SDCC) +# define COMPILER_ID "SDCC" +# if defined(__SDCC_VERSION_MAJOR) +# define COMPILER_VERSION_MAJOR DEC(__SDCC_VERSION_MAJOR) +# define COMPILER_VERSION_MINOR DEC(__SDCC_VERSION_MINOR) +# define COMPILER_VERSION_PATCH DEC(__SDCC_VERSION_PATCH) +# else + /* SDCC = VRP */ +# define COMPILER_VERSION_MAJOR DEC(SDCC/100) +# define COMPILER_VERSION_MINOR DEC(SDCC/10 % 10) +# define COMPILER_VERSION_PATCH DEC(SDCC % 10) +# endif + + +/* These compilers are either not known or too old to define an + identification macro. Try to identify the platform and guess that + it is the native compiler. */ +#elif defined(__hpux) || defined(__hpua) +# define COMPILER_ID "HP" + +#else /* unknown compiler */ +# define COMPILER_ID "" +#endif + +/* Construct the string literal in pieces to prevent the source from + getting matched. Store it in a pointer rather than an array + because some compilers will just produce instructions to fill the + array rather than assigning a pointer to a static array. */ +char const* info_compiler = "INFO" ":" "compiler[" COMPILER_ID "]"; +#ifdef SIMULATE_ID +char const* info_simulate = "INFO" ":" "simulate[" SIMULATE_ID "]"; +#endif + +#ifdef __QNXNTO__ +char const* qnxnto = "INFO" ":" "qnxnto[]"; +#endif + +#if defined(__CRAYXT_COMPUTE_LINUX_TARGET) +char const *info_cray = "INFO" ":" "compiler_wrapper[CrayPrgEnv]"; +#endif + +#define STRINGIFY_HELPER(X) #X +#define STRINGIFY(X) STRINGIFY_HELPER(X) + +/* Identify known platforms by name. */ +#if defined(__linux) || defined(__linux__) || defined(linux) +# define PLATFORM_ID "Linux" + +#elif defined(__MSYS__) +# define PLATFORM_ID "MSYS" + +#elif defined(__CYGWIN__) +# define PLATFORM_ID "Cygwin" + +#elif defined(__MINGW32__) +# define PLATFORM_ID "MinGW" + +#elif defined(__APPLE__) +# define PLATFORM_ID "Darwin" + +#elif defined(_WIN32) || defined(__WIN32__) || defined(WIN32) +# define PLATFORM_ID "Windows" + +#elif defined(__FreeBSD__) || defined(__FreeBSD) +# define PLATFORM_ID "FreeBSD" + +#elif defined(__NetBSD__) || defined(__NetBSD) +# define PLATFORM_ID "NetBSD" + +#elif defined(__OpenBSD__) || defined(__OPENBSD) +# define PLATFORM_ID "OpenBSD" + +#elif defined(__sun) || defined(sun) +# define PLATFORM_ID "SunOS" + +#elif defined(_AIX) || defined(__AIX) || defined(__AIX__) || defined(__aix) || defined(__aix__) +# define PLATFORM_ID "AIX" + +#elif defined(__hpux) || defined(__hpux__) +# define PLATFORM_ID "HP-UX" + +#elif defined(__HAIKU__) +# define PLATFORM_ID "Haiku" + +#elif defined(__BeOS) || defined(__BEOS__) || defined(_BEOS) +# define PLATFORM_ID "BeOS" + +#elif defined(__QNX__) || defined(__QNXNTO__) +# define PLATFORM_ID "QNX" + +#elif defined(__tru64) || defined(_tru64) || defined(__TRU64__) +# define PLATFORM_ID "Tru64" + +#elif defined(__riscos) || defined(__riscos__) +# define PLATFORM_ID "RISCos" + +#elif defined(__sinix) || defined(__sinix__) || defined(__SINIX__) +# define PLATFORM_ID "SINIX" + +#elif defined(__UNIX_SV__) +# define PLATFORM_ID "UNIX_SV" + +#elif defined(__bsdos__) +# define PLATFORM_ID "BSDOS" + +#elif defined(_MPRAS) || defined(MPRAS) +# define PLATFORM_ID "MP-RAS" + +#elif defined(__osf) || defined(__osf__) +# define PLATFORM_ID "OSF1" + +#elif defined(_SCO_SV) || defined(SCO_SV) || defined(sco_sv) +# define PLATFORM_ID "SCO_SV" + +#elif defined(__ultrix) || defined(__ultrix__) || defined(_ULTRIX) +# define PLATFORM_ID "ULTRIX" + +#elif defined(__XENIX__) || defined(_XENIX) || defined(XENIX) +# define PLATFORM_ID "Xenix" + +#elif defined(__WATCOMC__) +# if defined(__LINUX__) +# define PLATFORM_ID "Linux" + +# elif defined(__DOS__) +# define PLATFORM_ID "DOS" + +# elif defined(__OS2__) +# define PLATFORM_ID "OS2" + +# elif defined(__WINDOWS__) +# define PLATFORM_ID "Windows3x" + +# elif defined(__VXWORKS__) +# define PLATFORM_ID "VxWorks" + +# else /* unknown platform */ +# define PLATFORM_ID +# endif + +#elif defined(__INTEGRITY) +# if defined(INT_178B) +# define PLATFORM_ID "Integrity178" + +# else /* regular Integrity */ +# define PLATFORM_ID "Integrity" +# endif + +#else /* unknown platform */ +# define PLATFORM_ID + +#endif + +/* For windows compilers MSVC and Intel we can determine + the architecture of the compiler being used. This is because + the compilers do not have flags that can change the architecture, + but rather depend on which compiler is being used +*/ +#if defined(_WIN32) && defined(_MSC_VER) +# if defined(_M_IA64) +# define ARCHITECTURE_ID "IA64" + +# elif defined(_M_ARM64EC) +# define ARCHITECTURE_ID "ARM64EC" + +# elif defined(_M_X64) || defined(_M_AMD64) +# define ARCHITECTURE_ID "x64" + +# elif defined(_M_IX86) +# define ARCHITECTURE_ID "X86" + +# elif defined(_M_ARM64) +# define ARCHITECTURE_ID "ARM64" + +# elif defined(_M_ARM) +# if _M_ARM == 4 +# define ARCHITECTURE_ID "ARMV4I" +# elif _M_ARM == 5 +# define ARCHITECTURE_ID "ARMV5I" +# else +# define ARCHITECTURE_ID "ARMV" STRINGIFY(_M_ARM) +# endif + +# elif defined(_M_MIPS) +# define ARCHITECTURE_ID "MIPS" + +# elif defined(_M_SH) +# define ARCHITECTURE_ID "SHx" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#elif defined(__WATCOMC__) +# if defined(_M_I86) +# define ARCHITECTURE_ID "I86" + +# elif defined(_M_IX86) +# define ARCHITECTURE_ID "X86" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC) +# if defined(__ICCARM__) +# define ARCHITECTURE_ID "ARM" + +# elif defined(__ICCRX__) +# define ARCHITECTURE_ID "RX" + +# elif defined(__ICCRH850__) +# define ARCHITECTURE_ID "RH850" + +# elif defined(__ICCRL78__) +# define ARCHITECTURE_ID "RL78" + +# elif defined(__ICCRISCV__) +# define ARCHITECTURE_ID "RISCV" + +# elif defined(__ICCAVR__) +# define ARCHITECTURE_ID "AVR" + +# elif defined(__ICC430__) +# define ARCHITECTURE_ID "MSP430" + +# elif defined(__ICCV850__) +# define ARCHITECTURE_ID "V850" + +# elif defined(__ICC8051__) +# define ARCHITECTURE_ID "8051" + +# elif defined(__ICCSTM8__) +# define ARCHITECTURE_ID "STM8" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#elif defined(__ghs__) +# if defined(__PPC64__) +# define ARCHITECTURE_ID "PPC64" + +# elif defined(__ppc__) +# define ARCHITECTURE_ID "PPC" + +# elif defined(__ARM__) +# define ARCHITECTURE_ID "ARM" + +# elif defined(__x86_64__) +# define ARCHITECTURE_ID "x64" + +# elif defined(__i386__) +# define ARCHITECTURE_ID "X86" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#elif defined(__TI_COMPILER_VERSION__) +# if defined(__TI_ARM__) +# define ARCHITECTURE_ID "ARM" + +# elif defined(__MSP430__) +# define ARCHITECTURE_ID "MSP430" + +# elif defined(__TMS320C28XX__) +# define ARCHITECTURE_ID "TMS320C28x" + +# elif defined(__TMS320C6X__) || defined(_TMS320C6X) +# define ARCHITECTURE_ID "TMS320C6x" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#else +# define ARCHITECTURE_ID +#endif + +/* Convert integer to decimal digit literals. */ +#define DEC(n) \ + ('0' + (((n) / 10000000)%10)), \ + ('0' + (((n) / 1000000)%10)), \ + ('0' + (((n) / 100000)%10)), \ + ('0' + (((n) / 10000)%10)), \ + ('0' + (((n) / 1000)%10)), \ + ('0' + (((n) / 100)%10)), \ + ('0' + (((n) / 10)%10)), \ + ('0' + ((n) % 10)) + +/* Convert integer to hex digit literals. */ +#define HEX(n) \ + ('0' + ((n)>>28 & 0xF)), \ + ('0' + ((n)>>24 & 0xF)), \ + ('0' + ((n)>>20 & 0xF)), \ + ('0' + ((n)>>16 & 0xF)), \ + ('0' + ((n)>>12 & 0xF)), \ + ('0' + ((n)>>8 & 0xF)), \ + ('0' + ((n)>>4 & 0xF)), \ + ('0' + ((n) & 0xF)) + +/* Construct a string literal encoding the version number. */ +#ifdef COMPILER_VERSION +char const* info_version = "INFO" ":" "compiler_version[" COMPILER_VERSION "]"; + +/* Construct a string literal encoding the version number components. */ +#elif defined(COMPILER_VERSION_MAJOR) +char const info_version[] = { + 'I', 'N', 'F', 'O', ':', + 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','[', + COMPILER_VERSION_MAJOR, +# ifdef COMPILER_VERSION_MINOR + '.', COMPILER_VERSION_MINOR, +# ifdef COMPILER_VERSION_PATCH + '.', COMPILER_VERSION_PATCH, +# ifdef COMPILER_VERSION_TWEAK + '.', COMPILER_VERSION_TWEAK, +# endif +# endif +# endif + ']','\0'}; +#endif + +/* Construct a string literal encoding the internal version number. */ +#ifdef COMPILER_VERSION_INTERNAL +char const info_version_internal[] = { + 'I', 'N', 'F', 'O', ':', + 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','_', + 'i','n','t','e','r','n','a','l','[', + COMPILER_VERSION_INTERNAL,']','\0'}; +#elif defined(COMPILER_VERSION_INTERNAL_STR) +char const* info_version_internal = "INFO" ":" "compiler_version_internal[" COMPILER_VERSION_INTERNAL_STR "]"; +#endif + +/* Construct a string literal encoding the version number components. */ +#ifdef SIMULATE_VERSION_MAJOR +char const info_simulate_version[] = { + 'I', 'N', 'F', 'O', ':', + 's','i','m','u','l','a','t','e','_','v','e','r','s','i','o','n','[', + SIMULATE_VERSION_MAJOR, +# ifdef SIMULATE_VERSION_MINOR + '.', SIMULATE_VERSION_MINOR, +# ifdef SIMULATE_VERSION_PATCH + '.', SIMULATE_VERSION_PATCH, +# ifdef SIMULATE_VERSION_TWEAK + '.', SIMULATE_VERSION_TWEAK, +# endif +# endif +# endif + ']','\0'}; +#endif + +/* Construct the string literal in pieces to prevent the source from + getting matched. Store it in a pointer rather than an array + because some compilers will just produce instructions to fill the + array rather than assigning a pointer to a static array. */ +char const* info_platform = "INFO" ":" "platform[" PLATFORM_ID "]"; +char const* info_arch = "INFO" ":" "arch[" ARCHITECTURE_ID "]"; + + + +#if !defined(__STDC__) && !defined(__clang__) +# if defined(_MSC_VER) || defined(__ibmxl__) || defined(__IBMC__) +# define C_VERSION "90" +# else +# define C_VERSION +# endif +#elif __STDC_VERSION__ > 201710L +# define C_VERSION "23" +#elif __STDC_VERSION__ >= 201710L +# define C_VERSION "17" +#elif __STDC_VERSION__ >= 201000L +# define C_VERSION "11" +#elif __STDC_VERSION__ >= 199901L +# define C_VERSION "99" +#else +# define C_VERSION "90" +#endif +const char* info_language_standard_default = + "INFO" ":" "standard_default[" C_VERSION "]"; + +const char* info_language_extensions_default = "INFO" ":" "extensions_default[" +/* !defined(_MSC_VER) to exclude Clang's MSVC compatibility mode. */ +#if (defined(__clang__) || defined(__GNUC__) || \ + defined(__TI_COMPILER_VERSION__)) && \ + !defined(__STRICT_ANSI__) && !defined(_MSC_VER) + "ON" +#else + "OFF" +#endif +"]"; + +/*--------------------------------------------------------------------------*/ + +#ifdef ID_VOID_MAIN +void main() {} +#else +# if defined(__CLASSIC_C__) +int main(argc, argv) int argc; char *argv[]; +# else +int main(int argc, char* argv[]) +# endif +{ + int require = 0; + require += info_compiler[argc]; + require += info_platform[argc]; + require += info_arch[argc]; +#ifdef COMPILER_VERSION_MAJOR + require += info_version[argc]; +#endif +#ifdef COMPILER_VERSION_INTERNAL + require += info_version_internal[argc]; +#endif +#ifdef SIMULATE_ID + require += info_simulate[argc]; +#endif +#ifdef SIMULATE_VERSION_MAJOR + require += info_simulate_version[argc]; +#endif +#if defined(__CRAYXT_COMPUTE_LINUX_TARGET) + require += info_cray[argc]; +#endif + require += info_language_standard_default[argc]; + require += info_language_extensions_default[argc]; + (void)argv; + return require; +} +#endif diff --git a/example/android/app/.cxx/Debug/28432r45/arm64-v8a/CMakeFiles/3.22.1-g37088a8/CompilerIdC/CMakeCCompilerId.o b/example/android/app/.cxx/Debug/28432r45/arm64-v8a/CMakeFiles/3.22.1-g37088a8/CompilerIdC/CMakeCCompilerId.o new file mode 100644 index 0000000000000000000000000000000000000000..e3dfe3a2e918dacb5e08442a65ae4656da1cdf49 GIT binary patch literal 6064 zcmdT|Z-`u16+drgXEM99on*7drrk6hZPZ4)@6Es6nT^tJ*d%q+G+WXJ8<#k|oq0Pu z=FPn6o44z>h%L6D6_ExJ3Q{b#VkKW%KiF)Q67Wk@5dVNgs5F9L1cllnQWfJl_uVt^ z&Yf8a>KAXAd(ZjZ-#zEtzwc}wKYHR=%rJn90k1-&F$(bVu1KC2;ymm_=JhAx=httC zt*cY8_1iSOdwnNtr2w8u8T0S{Vd{yk(Pp!9ZRh+}${0;w`!D*)R%jQ_|F3Lb#kes3 z^Oxe)UoD$YF7 z)}2**-3^xWW!d9w22Q)%^xEBC-_psm(L$os=eN4y_(WgMiIOjyp^(e5Q0O1sXR1#z zCX5ecCKK_@uA8Sa6UOc&K&%9dlZVnDO~m#B#0_I{5@6(gh?Ua-i31SN+?`INm?SZs zz8l3IB@`DY@41DCrFJ48VDy8c88gw%?&SR5c!mfcx`n6!=>)_iMC9>Op9c0?E>`}k4SCHP`Pe9=Bap#f`?^3)njzJ3lUZ(}EnXZDJ(#GWMlt z`QUK7?t9I8_Rf61Seh#oDtBc+(rI{DuXt{NjT@jc-Es+AvAa$^>$S6fsZuVN%Fe-T zjjmKy9`Gz3ZL^TQb1euu-9wgzH;Am84bN-1PS;!aYmSN6(F#1zt*zP3w&l7Tt?7>M zecGu7+4|gSWp1@p&(F@z7V9&)e8HKi<>pFrGpogwV$P{K#d@JQTQ~>{_uJ>3g#~%D z7wcvXtkYe*XI8y|x43CrN4(m4%V`H)Yt>y30>`g*JhxeUwCc1Q&9-AXn|7rw*T~KDhYFqt%DbJaDvHg=TxztMX$MYI5O1g`cEQqqiuOXo=VDhEvs_ zB&~b!U4j-aF|q=%{YH(d4e*^u)|==6|k-0CiFZuaI z=6E7~JdsI$U(@#X`lgaUz<#8?hD|*4T4K7_MZ>I~HipD_GJQOj!kF0KKzkQ`VBYfN1@B#eXgEXq_34q5TPn)|v5F1fMm40_s#w<8K0@^=HOG zfk*4lIIqkk`gt!IkcIEvehtsbe&VaERFXLHRs4j)XPX2)pzu|kzQ|O_zPhTN5QaS( z{*=Utf2)+K`J$959u4elGBqzsnfNNs6uQb`GQ>#OGOnK_#_5Gp3*)mYh%)26 zE__00|HT(y@>wQ4+D$rZVPX8D)Ok+{#~iO$cuko96WOz0wiHkAwM2~fm*ZqZi&9`a z58^l~JP*bnmiQ;aZeZM%cwORTpJOKIGaCOf$>)71zIsl+so0_Y;(fWG+4+LB!|OzL z)N}h|%?|J5o0^@kNjra3`09E7r-D;Fyzg}WsPH;`L+V-CQarpz#49K`+2QrQSK@5v zb*YE%XLzpE^L$pZqweoH&CZ)r=k;d$*CZZ(U!wT`B=Ki8J8w(H)Kq)f>(|26ktlNQYirlQ1Xbs7vw&e~aWzuCg z@CO|9l0Rup#73@>=|ypHRv5AX|`dJMgU(QJExW8Qo6^fX3OJ2&80^|C}_CVd7qpCtxnW|Z;W~eGrl`m2)s(gV&QRVZZuQy4w znm0o%2M0FIoZP+tytxO@!?0`z|F9M1C3$|>gQkkNkuZKonK#dZ*3z9)%MVfccjGUs zWR&&suS;xR<2^hU0({TuZqhvYd(3agSI{~6=kIzrivErcCH_t_E@3f-u&3}xn7)Q# zeiQj4E*174Y5QhQ^vP>RYG34T3-grswyLsZ9z*p&zJ zds?Ta!n4R77XMo^{%g_>oqx)`^!NkB$fo`h9weh!{-!x(m0QYNhK;{NK4@FQN>uSU zZhtSwM~qNe{V4C^@qGU# yq<^-@?Jn_ueE{EPK(-XCTE@5W|JD%ylt1eJDX-G!PWCTK|If=#@=JTAkN+1j#)?e< literal 0 HcmV?d00001 diff --git a/example/android/app/.cxx/Debug/28432r45/arm64-v8a/CMakeFiles/3.22.1-g37088a8/CompilerIdCXX/CMakeCXXCompilerId.cpp b/example/android/app/.cxx/Debug/28432r45/arm64-v8a/CMakeFiles/3.22.1-g37088a8/CompilerIdCXX/CMakeCXXCompilerId.cpp new file mode 100644 index 0000000..25c62a8 --- /dev/null +++ b/example/android/app/.cxx/Debug/28432r45/arm64-v8a/CMakeFiles/3.22.1-g37088a8/CompilerIdCXX/CMakeCXXCompilerId.cpp @@ -0,0 +1,791 @@ +/* This source file must have a .cpp extension so that all C++ compilers + recognize the extension without flags. Borland does not know .cxx for + example. */ +#ifndef __cplusplus +# error "A C compiler has been selected for C++." +#endif + +#if !defined(__has_include) +/* If the compiler does not have __has_include, pretend the answer is + always no. */ +# define __has_include(x) 0 +#endif + + +/* Version number components: V=Version, R=Revision, P=Patch + Version date components: YYYY=Year, MM=Month, DD=Day */ + +#if defined(__COMO__) +# define COMPILER_ID "Comeau" + /* __COMO_VERSION__ = VRR */ +# define COMPILER_VERSION_MAJOR DEC(__COMO_VERSION__ / 100) +# define COMPILER_VERSION_MINOR DEC(__COMO_VERSION__ % 100) + +#elif defined(__INTEL_COMPILER) || defined(__ICC) +# define COMPILER_ID "Intel" +# if defined(_MSC_VER) +# define SIMULATE_ID "MSVC" +# endif +# if defined(__GNUC__) +# define SIMULATE_ID "GNU" +# endif + /* __INTEL_COMPILER = VRP prior to 2021, and then VVVV for 2021 and later, + except that a few beta releases use the old format with V=2021. */ +# if __INTEL_COMPILER < 2021 || __INTEL_COMPILER == 202110 || __INTEL_COMPILER == 202111 +# define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER/100) +# define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER/10 % 10) +# if defined(__INTEL_COMPILER_UPDATE) +# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER_UPDATE) +# else +# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER % 10) +# endif +# else +# define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER) +# define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER_UPDATE) + /* The third version component from --version is an update index, + but no macro is provided for it. */ +# define COMPILER_VERSION_PATCH DEC(0) +# endif +# if defined(__INTEL_COMPILER_BUILD_DATE) + /* __INTEL_COMPILER_BUILD_DATE = YYYYMMDD */ +# define COMPILER_VERSION_TWEAK DEC(__INTEL_COMPILER_BUILD_DATE) +# endif +# if defined(_MSC_VER) + /* _MSC_VER = VVRR */ +# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) +# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) +# endif +# if defined(__GNUC__) +# define SIMULATE_VERSION_MAJOR DEC(__GNUC__) +# elif defined(__GNUG__) +# define SIMULATE_VERSION_MAJOR DEC(__GNUG__) +# endif +# if defined(__GNUC_MINOR__) +# define SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__) +# endif +# if defined(__GNUC_PATCHLEVEL__) +# define SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) +# endif + +#elif (defined(__clang__) && defined(__INTEL_CLANG_COMPILER)) || defined(__INTEL_LLVM_COMPILER) +# define COMPILER_ID "IntelLLVM" +#if defined(_MSC_VER) +# define SIMULATE_ID "MSVC" +#endif +#if defined(__GNUC__) +# define SIMULATE_ID "GNU" +#endif +/* __INTEL_LLVM_COMPILER = VVVVRP prior to 2021.2.0, VVVVRRPP for 2021.2.0 and + * later. Look for 6 digit vs. 8 digit version number to decide encoding. + * VVVV is no smaller than the current year when a version is released. + */ +#if __INTEL_LLVM_COMPILER < 1000000L +# define COMPILER_VERSION_MAJOR DEC(__INTEL_LLVM_COMPILER/100) +# define COMPILER_VERSION_MINOR DEC(__INTEL_LLVM_COMPILER/10 % 10) +# define COMPILER_VERSION_PATCH DEC(__INTEL_LLVM_COMPILER % 10) +#else +# define COMPILER_VERSION_MAJOR DEC(__INTEL_LLVM_COMPILER/10000) +# define COMPILER_VERSION_MINOR DEC(__INTEL_LLVM_COMPILER/100 % 100) +# define COMPILER_VERSION_PATCH DEC(__INTEL_LLVM_COMPILER % 100) +#endif +#if defined(_MSC_VER) + /* _MSC_VER = VVRR */ +# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) +# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) +#endif +#if defined(__GNUC__) +# define SIMULATE_VERSION_MAJOR DEC(__GNUC__) +#elif defined(__GNUG__) +# define SIMULATE_VERSION_MAJOR DEC(__GNUG__) +#endif +#if defined(__GNUC_MINOR__) +# define SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__) +#endif +#if defined(__GNUC_PATCHLEVEL__) +# define SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) +#endif + +#elif defined(__PATHCC__) +# define COMPILER_ID "PathScale" +# define COMPILER_VERSION_MAJOR DEC(__PATHCC__) +# define COMPILER_VERSION_MINOR DEC(__PATHCC_MINOR__) +# if defined(__PATHCC_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__PATHCC_PATCHLEVEL__) +# endif + +#elif defined(__BORLANDC__) && defined(__CODEGEARC_VERSION__) +# define COMPILER_ID "Embarcadero" +# define COMPILER_VERSION_MAJOR HEX(__CODEGEARC_VERSION__>>24 & 0x00FF) +# define COMPILER_VERSION_MINOR HEX(__CODEGEARC_VERSION__>>16 & 0x00FF) +# define COMPILER_VERSION_PATCH DEC(__CODEGEARC_VERSION__ & 0xFFFF) + +#elif defined(__BORLANDC__) +# define COMPILER_ID "Borland" + /* __BORLANDC__ = 0xVRR */ +# define COMPILER_VERSION_MAJOR HEX(__BORLANDC__>>8) +# define COMPILER_VERSION_MINOR HEX(__BORLANDC__ & 0xFF) + +#elif defined(__WATCOMC__) && __WATCOMC__ < 1200 +# define COMPILER_ID "Watcom" + /* __WATCOMC__ = VVRR */ +# define COMPILER_VERSION_MAJOR DEC(__WATCOMC__ / 100) +# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10) +# if (__WATCOMC__ % 10) > 0 +# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10) +# endif + +#elif defined(__WATCOMC__) +# define COMPILER_ID "OpenWatcom" + /* __WATCOMC__ = VVRP + 1100 */ +# define COMPILER_VERSION_MAJOR DEC((__WATCOMC__ - 1100) / 100) +# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10) +# if (__WATCOMC__ % 10) > 0 +# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10) +# endif + +#elif defined(__SUNPRO_CC) +# define COMPILER_ID "SunPro" +# if __SUNPRO_CC >= 0x5100 + /* __SUNPRO_CC = 0xVRRP */ +# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_CC>>12) +# define COMPILER_VERSION_MINOR HEX(__SUNPRO_CC>>4 & 0xFF) +# define COMPILER_VERSION_PATCH HEX(__SUNPRO_CC & 0xF) +# else + /* __SUNPRO_CC = 0xVRP */ +# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_CC>>8) +# define COMPILER_VERSION_MINOR HEX(__SUNPRO_CC>>4 & 0xF) +# define COMPILER_VERSION_PATCH HEX(__SUNPRO_CC & 0xF) +# endif + +#elif defined(__HP_aCC) +# define COMPILER_ID "HP" + /* __HP_aCC = VVRRPP */ +# define COMPILER_VERSION_MAJOR DEC(__HP_aCC/10000) +# define COMPILER_VERSION_MINOR DEC(__HP_aCC/100 % 100) +# define COMPILER_VERSION_PATCH DEC(__HP_aCC % 100) + +#elif defined(__DECCXX) +# define COMPILER_ID "Compaq" + /* __DECCXX_VER = VVRRTPPPP */ +# define COMPILER_VERSION_MAJOR DEC(__DECCXX_VER/10000000) +# define COMPILER_VERSION_MINOR DEC(__DECCXX_VER/100000 % 100) +# define COMPILER_VERSION_PATCH DEC(__DECCXX_VER % 10000) + +#elif defined(__IBMCPP__) && defined(__COMPILER_VER__) +# define COMPILER_ID "zOS" + /* __IBMCPP__ = VRP */ +# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100) +# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10) +# define COMPILER_VERSION_PATCH DEC(__IBMCPP__ % 10) + +#elif defined(__ibmxl__) && defined(__clang__) +# define COMPILER_ID "XLClang" +# define COMPILER_VERSION_MAJOR DEC(__ibmxl_version__) +# define COMPILER_VERSION_MINOR DEC(__ibmxl_release__) +# define COMPILER_VERSION_PATCH DEC(__ibmxl_modification__) +# define COMPILER_VERSION_TWEAK DEC(__ibmxl_ptf_fix_level__) + + +#elif defined(__IBMCPP__) && !defined(__COMPILER_VER__) && __IBMCPP__ >= 800 +# define COMPILER_ID "XL" + /* __IBMCPP__ = VRP */ +# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100) +# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10) +# define COMPILER_VERSION_PATCH DEC(__IBMCPP__ % 10) + +#elif defined(__IBMCPP__) && !defined(__COMPILER_VER__) && __IBMCPP__ < 800 +# define COMPILER_ID "VisualAge" + /* __IBMCPP__ = VRP */ +# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100) +# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10) +# define COMPILER_VERSION_PATCH DEC(__IBMCPP__ % 10) + +#elif defined(__NVCOMPILER) +# define COMPILER_ID "NVHPC" +# define COMPILER_VERSION_MAJOR DEC(__NVCOMPILER_MAJOR__) +# define COMPILER_VERSION_MINOR DEC(__NVCOMPILER_MINOR__) +# if defined(__NVCOMPILER_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__NVCOMPILER_PATCHLEVEL__) +# endif + +#elif defined(__PGI) +# define COMPILER_ID "PGI" +# define COMPILER_VERSION_MAJOR DEC(__PGIC__) +# define COMPILER_VERSION_MINOR DEC(__PGIC_MINOR__) +# if defined(__PGIC_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__PGIC_PATCHLEVEL__) +# endif + +#elif defined(_CRAYC) +# define COMPILER_ID "Cray" +# define COMPILER_VERSION_MAJOR DEC(_RELEASE_MAJOR) +# define COMPILER_VERSION_MINOR DEC(_RELEASE_MINOR) + +#elif defined(__TI_COMPILER_VERSION__) +# define COMPILER_ID "TI" + /* __TI_COMPILER_VERSION__ = VVVRRRPPP */ +# define COMPILER_VERSION_MAJOR DEC(__TI_COMPILER_VERSION__/1000000) +# define COMPILER_VERSION_MINOR DEC(__TI_COMPILER_VERSION__/1000 % 1000) +# define COMPILER_VERSION_PATCH DEC(__TI_COMPILER_VERSION__ % 1000) + +#elif defined(__CLANG_FUJITSU) +# define COMPILER_ID "FujitsuClang" +# define COMPILER_VERSION_MAJOR DEC(__FCC_major__) +# define COMPILER_VERSION_MINOR DEC(__FCC_minor__) +# define COMPILER_VERSION_PATCH DEC(__FCC_patchlevel__) +# define COMPILER_VERSION_INTERNAL_STR __clang_version__ + + +#elif defined(__FUJITSU) +# define COMPILER_ID "Fujitsu" +# if defined(__FCC_version__) +# define COMPILER_VERSION __FCC_version__ +# elif defined(__FCC_major__) +# define COMPILER_VERSION_MAJOR DEC(__FCC_major__) +# define COMPILER_VERSION_MINOR DEC(__FCC_minor__) +# define COMPILER_VERSION_PATCH DEC(__FCC_patchlevel__) +# endif +# if defined(__fcc_version) +# define COMPILER_VERSION_INTERNAL DEC(__fcc_version) +# elif defined(__FCC_VERSION) +# define COMPILER_VERSION_INTERNAL DEC(__FCC_VERSION) +# endif + + +#elif defined(__ghs__) +# define COMPILER_ID "GHS" +/* __GHS_VERSION_NUMBER = VVVVRP */ +# ifdef __GHS_VERSION_NUMBER +# define COMPILER_VERSION_MAJOR DEC(__GHS_VERSION_NUMBER / 100) +# define COMPILER_VERSION_MINOR DEC(__GHS_VERSION_NUMBER / 10 % 10) +# define COMPILER_VERSION_PATCH DEC(__GHS_VERSION_NUMBER % 10) +# endif + +#elif defined(__SCO_VERSION__) +# define COMPILER_ID "SCO" + +#elif defined(__ARMCC_VERSION) && !defined(__clang__) +# define COMPILER_ID "ARMCC" +#if __ARMCC_VERSION >= 1000000 + /* __ARMCC_VERSION = VRRPPPP */ + # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/1000000) + # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 100) + # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000) +#else + /* __ARMCC_VERSION = VRPPPP */ + # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/100000) + # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 10) + # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000) +#endif + + +#elif defined(__clang__) && defined(__apple_build_version__) +# define COMPILER_ID "AppleClang" +# if defined(_MSC_VER) +# define SIMULATE_ID "MSVC" +# endif +# define COMPILER_VERSION_MAJOR DEC(__clang_major__) +# define COMPILER_VERSION_MINOR DEC(__clang_minor__) +# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__) +# if defined(_MSC_VER) + /* _MSC_VER = VVRR */ +# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) +# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) +# endif +# define COMPILER_VERSION_TWEAK DEC(__apple_build_version__) + +#elif defined(__clang__) && defined(__ARMCOMPILER_VERSION) +# define COMPILER_ID "ARMClang" + # define COMPILER_VERSION_MAJOR DEC(__ARMCOMPILER_VERSION/1000000) + # define COMPILER_VERSION_MINOR DEC(__ARMCOMPILER_VERSION/10000 % 100) + # define COMPILER_VERSION_PATCH DEC(__ARMCOMPILER_VERSION % 10000) +# define COMPILER_VERSION_INTERNAL DEC(__ARMCOMPILER_VERSION) + +#elif defined(__clang__) +# define COMPILER_ID "Clang" +# if defined(_MSC_VER) +# define SIMULATE_ID "MSVC" +# endif +# define COMPILER_VERSION_MAJOR DEC(__clang_major__) +# define COMPILER_VERSION_MINOR DEC(__clang_minor__) +# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__) +# if defined(_MSC_VER) + /* _MSC_VER = VVRR */ +# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) +# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) +# endif + +#elif defined(__GNUC__) || defined(__GNUG__) +# define COMPILER_ID "GNU" +# if defined(__GNUC__) +# define COMPILER_VERSION_MAJOR DEC(__GNUC__) +# else +# define COMPILER_VERSION_MAJOR DEC(__GNUG__) +# endif +# if defined(__GNUC_MINOR__) +# define COMPILER_VERSION_MINOR DEC(__GNUC_MINOR__) +# endif +# if defined(__GNUC_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) +# endif + +#elif defined(_MSC_VER) +# define COMPILER_ID "MSVC" + /* _MSC_VER = VVRR */ +# define COMPILER_VERSION_MAJOR DEC(_MSC_VER / 100) +# define COMPILER_VERSION_MINOR DEC(_MSC_VER % 100) +# if defined(_MSC_FULL_VER) +# if _MSC_VER >= 1400 + /* _MSC_FULL_VER = VVRRPPPPP */ +# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 100000) +# else + /* _MSC_FULL_VER = VVRRPPPP */ +# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 10000) +# endif +# endif +# if defined(_MSC_BUILD) +# define COMPILER_VERSION_TWEAK DEC(_MSC_BUILD) +# endif + +#elif defined(__VISUALDSPVERSION__) || defined(__ADSPBLACKFIN__) || defined(__ADSPTS__) || defined(__ADSP21000__) +# define COMPILER_ID "ADSP" +#if defined(__VISUALDSPVERSION__) + /* __VISUALDSPVERSION__ = 0xVVRRPP00 */ +# define COMPILER_VERSION_MAJOR HEX(__VISUALDSPVERSION__>>24) +# define COMPILER_VERSION_MINOR HEX(__VISUALDSPVERSION__>>16 & 0xFF) +# define COMPILER_VERSION_PATCH HEX(__VISUALDSPVERSION__>>8 & 0xFF) +#endif + +#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC) +# define COMPILER_ID "IAR" +# if defined(__VER__) && defined(__ICCARM__) +# define COMPILER_VERSION_MAJOR DEC((__VER__) / 1000000) +# define COMPILER_VERSION_MINOR DEC(((__VER__) / 1000) % 1000) +# define COMPILER_VERSION_PATCH DEC((__VER__) % 1000) +# define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__) +# elif defined(__VER__) && (defined(__ICCAVR__) || defined(__ICCRX__) || defined(__ICCRH850__) || defined(__ICCRL78__) || defined(__ICC430__) || defined(__ICCRISCV__) || defined(__ICCV850__) || defined(__ICC8051__) || defined(__ICCSTM8__)) +# define COMPILER_VERSION_MAJOR DEC((__VER__) / 100) +# define COMPILER_VERSION_MINOR DEC((__VER__) - (((__VER__) / 100)*100)) +# define COMPILER_VERSION_PATCH DEC(__SUBVERSION__) +# define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__) +# endif + + +/* These compilers are either not known or too old to define an + identification macro. Try to identify the platform and guess that + it is the native compiler. */ +#elif defined(__hpux) || defined(__hpua) +# define COMPILER_ID "HP" + +#else /* unknown compiler */ +# define COMPILER_ID "" +#endif + +/* Construct the string literal in pieces to prevent the source from + getting matched. Store it in a pointer rather than an array + because some compilers will just produce instructions to fill the + array rather than assigning a pointer to a static array. */ +char const* info_compiler = "INFO" ":" "compiler[" COMPILER_ID "]"; +#ifdef SIMULATE_ID +char const* info_simulate = "INFO" ":" "simulate[" SIMULATE_ID "]"; +#endif + +#ifdef __QNXNTO__ +char const* qnxnto = "INFO" ":" "qnxnto[]"; +#endif + +#if defined(__CRAYXT_COMPUTE_LINUX_TARGET) +char const *info_cray = "INFO" ":" "compiler_wrapper[CrayPrgEnv]"; +#endif + +#define STRINGIFY_HELPER(X) #X +#define STRINGIFY(X) STRINGIFY_HELPER(X) + +/* Identify known platforms by name. */ +#if defined(__linux) || defined(__linux__) || defined(linux) +# define PLATFORM_ID "Linux" + +#elif defined(__MSYS__) +# define PLATFORM_ID "MSYS" + +#elif defined(__CYGWIN__) +# define PLATFORM_ID "Cygwin" + +#elif defined(__MINGW32__) +# define PLATFORM_ID "MinGW" + +#elif defined(__APPLE__) +# define PLATFORM_ID "Darwin" + +#elif defined(_WIN32) || defined(__WIN32__) || defined(WIN32) +# define PLATFORM_ID "Windows" + +#elif defined(__FreeBSD__) || defined(__FreeBSD) +# define PLATFORM_ID "FreeBSD" + +#elif defined(__NetBSD__) || defined(__NetBSD) +# define PLATFORM_ID "NetBSD" + +#elif defined(__OpenBSD__) || defined(__OPENBSD) +# define PLATFORM_ID "OpenBSD" + +#elif defined(__sun) || defined(sun) +# define PLATFORM_ID "SunOS" + +#elif defined(_AIX) || defined(__AIX) || defined(__AIX__) || defined(__aix) || defined(__aix__) +# define PLATFORM_ID "AIX" + +#elif defined(__hpux) || defined(__hpux__) +# define PLATFORM_ID "HP-UX" + +#elif defined(__HAIKU__) +# define PLATFORM_ID "Haiku" + +#elif defined(__BeOS) || defined(__BEOS__) || defined(_BEOS) +# define PLATFORM_ID "BeOS" + +#elif defined(__QNX__) || defined(__QNXNTO__) +# define PLATFORM_ID "QNX" + +#elif defined(__tru64) || defined(_tru64) || defined(__TRU64__) +# define PLATFORM_ID "Tru64" + +#elif defined(__riscos) || defined(__riscos__) +# define PLATFORM_ID "RISCos" + +#elif defined(__sinix) || defined(__sinix__) || defined(__SINIX__) +# define PLATFORM_ID "SINIX" + +#elif defined(__UNIX_SV__) +# define PLATFORM_ID "UNIX_SV" + +#elif defined(__bsdos__) +# define PLATFORM_ID "BSDOS" + +#elif defined(_MPRAS) || defined(MPRAS) +# define PLATFORM_ID "MP-RAS" + +#elif defined(__osf) || defined(__osf__) +# define PLATFORM_ID "OSF1" + +#elif defined(_SCO_SV) || defined(SCO_SV) || defined(sco_sv) +# define PLATFORM_ID "SCO_SV" + +#elif defined(__ultrix) || defined(__ultrix__) || defined(_ULTRIX) +# define PLATFORM_ID "ULTRIX" + +#elif defined(__XENIX__) || defined(_XENIX) || defined(XENIX) +# define PLATFORM_ID "Xenix" + +#elif defined(__WATCOMC__) +# if defined(__LINUX__) +# define PLATFORM_ID "Linux" + +# elif defined(__DOS__) +# define PLATFORM_ID "DOS" + +# elif defined(__OS2__) +# define PLATFORM_ID "OS2" + +# elif defined(__WINDOWS__) +# define PLATFORM_ID "Windows3x" + +# elif defined(__VXWORKS__) +# define PLATFORM_ID "VxWorks" + +# else /* unknown platform */ +# define PLATFORM_ID +# endif + +#elif defined(__INTEGRITY) +# if defined(INT_178B) +# define PLATFORM_ID "Integrity178" + +# else /* regular Integrity */ +# define PLATFORM_ID "Integrity" +# endif + +#else /* unknown platform */ +# define PLATFORM_ID + +#endif + +/* For windows compilers MSVC and Intel we can determine + the architecture of the compiler being used. This is because + the compilers do not have flags that can change the architecture, + but rather depend on which compiler is being used +*/ +#if defined(_WIN32) && defined(_MSC_VER) +# if defined(_M_IA64) +# define ARCHITECTURE_ID "IA64" + +# elif defined(_M_ARM64EC) +# define ARCHITECTURE_ID "ARM64EC" + +# elif defined(_M_X64) || defined(_M_AMD64) +# define ARCHITECTURE_ID "x64" + +# elif defined(_M_IX86) +# define ARCHITECTURE_ID "X86" + +# elif defined(_M_ARM64) +# define ARCHITECTURE_ID "ARM64" + +# elif defined(_M_ARM) +# if _M_ARM == 4 +# define ARCHITECTURE_ID "ARMV4I" +# elif _M_ARM == 5 +# define ARCHITECTURE_ID "ARMV5I" +# else +# define ARCHITECTURE_ID "ARMV" STRINGIFY(_M_ARM) +# endif + +# elif defined(_M_MIPS) +# define ARCHITECTURE_ID "MIPS" + +# elif defined(_M_SH) +# define ARCHITECTURE_ID "SHx" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#elif defined(__WATCOMC__) +# if defined(_M_I86) +# define ARCHITECTURE_ID "I86" + +# elif defined(_M_IX86) +# define ARCHITECTURE_ID "X86" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC) +# if defined(__ICCARM__) +# define ARCHITECTURE_ID "ARM" + +# elif defined(__ICCRX__) +# define ARCHITECTURE_ID "RX" + +# elif defined(__ICCRH850__) +# define ARCHITECTURE_ID "RH850" + +# elif defined(__ICCRL78__) +# define ARCHITECTURE_ID "RL78" + +# elif defined(__ICCRISCV__) +# define ARCHITECTURE_ID "RISCV" + +# elif defined(__ICCAVR__) +# define ARCHITECTURE_ID "AVR" + +# elif defined(__ICC430__) +# define ARCHITECTURE_ID "MSP430" + +# elif defined(__ICCV850__) +# define ARCHITECTURE_ID "V850" + +# elif defined(__ICC8051__) +# define ARCHITECTURE_ID "8051" + +# elif defined(__ICCSTM8__) +# define ARCHITECTURE_ID "STM8" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#elif defined(__ghs__) +# if defined(__PPC64__) +# define ARCHITECTURE_ID "PPC64" + +# elif defined(__ppc__) +# define ARCHITECTURE_ID "PPC" + +# elif defined(__ARM__) +# define ARCHITECTURE_ID "ARM" + +# elif defined(__x86_64__) +# define ARCHITECTURE_ID "x64" + +# elif defined(__i386__) +# define ARCHITECTURE_ID "X86" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#elif defined(__TI_COMPILER_VERSION__) +# if defined(__TI_ARM__) +# define ARCHITECTURE_ID "ARM" + +# elif defined(__MSP430__) +# define ARCHITECTURE_ID "MSP430" + +# elif defined(__TMS320C28XX__) +# define ARCHITECTURE_ID "TMS320C28x" + +# elif defined(__TMS320C6X__) || defined(_TMS320C6X) +# define ARCHITECTURE_ID "TMS320C6x" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#else +# define ARCHITECTURE_ID +#endif + +/* Convert integer to decimal digit literals. */ +#define DEC(n) \ + ('0' + (((n) / 10000000)%10)), \ + ('0' + (((n) / 1000000)%10)), \ + ('0' + (((n) / 100000)%10)), \ + ('0' + (((n) / 10000)%10)), \ + ('0' + (((n) / 1000)%10)), \ + ('0' + (((n) / 100)%10)), \ + ('0' + (((n) / 10)%10)), \ + ('0' + ((n) % 10)) + +/* Convert integer to hex digit literals. */ +#define HEX(n) \ + ('0' + ((n)>>28 & 0xF)), \ + ('0' + ((n)>>24 & 0xF)), \ + ('0' + ((n)>>20 & 0xF)), \ + ('0' + ((n)>>16 & 0xF)), \ + ('0' + ((n)>>12 & 0xF)), \ + ('0' + ((n)>>8 & 0xF)), \ + ('0' + ((n)>>4 & 0xF)), \ + ('0' + ((n) & 0xF)) + +/* Construct a string literal encoding the version number. */ +#ifdef COMPILER_VERSION +char const* info_version = "INFO" ":" "compiler_version[" COMPILER_VERSION "]"; + +/* Construct a string literal encoding the version number components. */ +#elif defined(COMPILER_VERSION_MAJOR) +char const info_version[] = { + 'I', 'N', 'F', 'O', ':', + 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','[', + COMPILER_VERSION_MAJOR, +# ifdef COMPILER_VERSION_MINOR + '.', COMPILER_VERSION_MINOR, +# ifdef COMPILER_VERSION_PATCH + '.', COMPILER_VERSION_PATCH, +# ifdef COMPILER_VERSION_TWEAK + '.', COMPILER_VERSION_TWEAK, +# endif +# endif +# endif + ']','\0'}; +#endif + +/* Construct a string literal encoding the internal version number. */ +#ifdef COMPILER_VERSION_INTERNAL +char const info_version_internal[] = { + 'I', 'N', 'F', 'O', ':', + 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','_', + 'i','n','t','e','r','n','a','l','[', + COMPILER_VERSION_INTERNAL,']','\0'}; +#elif defined(COMPILER_VERSION_INTERNAL_STR) +char const* info_version_internal = "INFO" ":" "compiler_version_internal[" COMPILER_VERSION_INTERNAL_STR "]"; +#endif + +/* Construct a string literal encoding the version number components. */ +#ifdef SIMULATE_VERSION_MAJOR +char const info_simulate_version[] = { + 'I', 'N', 'F', 'O', ':', + 's','i','m','u','l','a','t','e','_','v','e','r','s','i','o','n','[', + SIMULATE_VERSION_MAJOR, +# ifdef SIMULATE_VERSION_MINOR + '.', SIMULATE_VERSION_MINOR, +# ifdef SIMULATE_VERSION_PATCH + '.', SIMULATE_VERSION_PATCH, +# ifdef SIMULATE_VERSION_TWEAK + '.', SIMULATE_VERSION_TWEAK, +# endif +# endif +# endif + ']','\0'}; +#endif + +/* Construct the string literal in pieces to prevent the source from + getting matched. Store it in a pointer rather than an array + because some compilers will just produce instructions to fill the + array rather than assigning a pointer to a static array. */ +char const* info_platform = "INFO" ":" "platform[" PLATFORM_ID "]"; +char const* info_arch = "INFO" ":" "arch[" ARCHITECTURE_ID "]"; + + + +#if defined(__INTEL_COMPILER) && defined(_MSVC_LANG) && _MSVC_LANG < 201403L +# if defined(__INTEL_CXX11_MODE__) +# if defined(__cpp_aggregate_nsdmi) +# define CXX_STD 201402L +# else +# define CXX_STD 201103L +# endif +# else +# define CXX_STD 199711L +# endif +#elif defined(_MSC_VER) && defined(_MSVC_LANG) +# define CXX_STD _MSVC_LANG +#else +# define CXX_STD __cplusplus +#endif + +const char* info_language_standard_default = "INFO" ":" "standard_default[" +#if CXX_STD > 202002L + "23" +#elif CXX_STD > 201703L + "20" +#elif CXX_STD >= 201703L + "17" +#elif CXX_STD >= 201402L + "14" +#elif CXX_STD >= 201103L + "11" +#else + "98" +#endif +"]"; + +const char* info_language_extensions_default = "INFO" ":" "extensions_default[" +/* !defined(_MSC_VER) to exclude Clang's MSVC compatibility mode. */ +#if (defined(__clang__) || defined(__GNUC__) || \ + defined(__TI_COMPILER_VERSION__)) && \ + !defined(__STRICT_ANSI__) && !defined(_MSC_VER) + "ON" +#else + "OFF" +#endif +"]"; + +/*--------------------------------------------------------------------------*/ + +int main(int argc, char* argv[]) +{ + int require = 0; + require += info_compiler[argc]; + require += info_platform[argc]; +#ifdef COMPILER_VERSION_MAJOR + require += info_version[argc]; +#endif +#ifdef COMPILER_VERSION_INTERNAL + require += info_version_internal[argc]; +#endif +#ifdef SIMULATE_ID + require += info_simulate[argc]; +#endif +#ifdef SIMULATE_VERSION_MAJOR + require += info_simulate_version[argc]; +#endif +#if defined(__CRAYXT_COMPUTE_LINUX_TARGET) + require += info_cray[argc]; +#endif + require += info_language_standard_default[argc]; + require += info_language_extensions_default[argc]; + (void)argv; + return require; +} diff --git a/example/android/app/.cxx/Debug/28432r45/arm64-v8a/CMakeFiles/3.22.1-g37088a8/CompilerIdCXX/CMakeCXXCompilerId.o b/example/android/app/.cxx/Debug/28432r45/arm64-v8a/CMakeFiles/3.22.1-g37088a8/CompilerIdCXX/CMakeCXXCompilerId.o new file mode 100644 index 0000000000000000000000000000000000000000..0c9183dbe25002cd7a7fd473ae4be84063a8c1b4 GIT binary patch literal 6080 zcmdT|Yit}>6+W}$b!@M*iEYxFI!d=9MG4^9r|oruf}=dBLz+Y(k&?P$JKi0ym(K2N zX2+I`DjJ{?4^hq1c*PVLP)fTN&z9!f)J`em~-yjvvc?E zxDEW{MtkqM-~GuF$!>JcO)+eaRK%sbL(^PtE~rN^R+41 zd_4tkZ|#E3A%N$HjD@%VICX7vxX~!z-L{)oFOGPIv6=nJdv^y^GWnQ)S)p$<$I#l>D3(3b`B$g)3l;84sr? zl4g4M{Zr{NV|)-GQG&&ZL#e~b#3X=e7>g4C0}mlKmjXz>9|eHH{a~h#q*93NATgCX zg5ppK#l?w_yqC3ycM0}Lh=*t^4Un?X@A%-tq?sm=Q~*Ykkmv#cJ4-!X_#qyo0Wtp} zaikuKU5lHDCO(Xn@vJdyGR1rZrGX1r?SbT@*x)oVTw{l5cHou+T*Y6H(l9B7wtk+7 zY(-=hO?;2kf1&UqpQ8}zsEouPNay#lIu9s1DkCw8lQ;evtFu?pQ5hrX1}>1^i;5nB zQH%w^{R;~%q2ZBiY$a}>+GyfBo&>ckt}l+hgrhqX*GI*uVG=o9+T_6S%h(yFwT7du zn(sAgnFINJu{2*Ols}aDV7u;Nz3jOGHg15O>84BAvfXiN8LyS`OXaz_(wuWJQ>D9= zk*7IB=h!M_4y*=2yK^X;#j8Ztt-9ycU8m!%`BlfldzlS9&#kW7jaJrm*PGLA-}|If z4KlU)mGb;bsg|Feoh{a8a`}QYQ_ann=4V!l%f*~ib&9n@akg*}jy-BW=^VRs>6pCa zi#4m-ZbSBB2QOB(R>v#du(QX#>RQuj1)c1QyA}kFUuk=8qxw|EY1JDoC+lq3&9>`s zoLRfw&RW%tjqGt}d99u;luN~eUz*93VT4S1#M- zY!nK{1von&DwU(>&mX;9`S{{vCn^^%pF2^hK%=$dRrqZRd;BPcJ$j8oiPm<_t~(X| zQPPI{U#5^Cw*@MXoz548Uq+g^^vDUo_Ul!u*1>nKt~Gq;|My7HamK=*FXL0^!FYO~ zF*W)i&=nEa1Y5d7a6Fw!dvNulIf2n_YQtGnLd?Fol2$$f28!L27inQ4&27ZOy5pU_Ykw)-Ut%S!PKe55Jtit zV%irF8-TaAVurxPe|otojP>I`MWWGNHGqPmXhKryh2mF*oqqiD0vC^WkIvHq7q4s& zepTS&{p-P9fs1FW2d@h}+_Rnm?3haYJhm+Od>R-HTNB250qk87{C@nBz{mUe1eoxi zKK$E)-;aM;;CuS`pAq=|eK-Lo;I~&R>w@2pzk$4QW#7d)N9;@Z8w+24VTpI*?*iu@ zesRSpz(s*a>(BT>fk*4l_&$th45EExoL681$NBD&3zkWbWx{h*VIjUcyHW@P@m2hs z#EBn8iyu>o@6qs8h5vw*sd1%D_Er2@iIe>)DO2+WDHC7CnL?Mg|8~&p65{#^VEhAY zK(>s}ZiDmu`Nk#CezZH$nh>s@YCg$~-;(z4lP%$DjJzhy|E1*ZlP$&BeF+ic{o?o~ z4bDh`?OaAZDsx+WEJ_=QSs2w;bp7e6=3!Rl$27U2$t`-wpFtO+Y$*=HwBByv9{&*rEAh< zC-D0mbTh$iGFs_GgiH~k0Z)Y2pVWm^nvW&&J3YQ`nrXGXz_C7h=HfI)T79xFCXs=v zj$KTaCCgc@toU{lyEvP`UdHyRCbj!();v{Zs^+MgrD}$%5>@#k)uPH5NEB5*FUGpl zLaTWz#B#8I!{X0^+|B>Jp>y7!{or?RS7`J5@;tEztqVjWjNe=4EwG@q;orj%_&XHe zN&jX<6_T$18$=0P5TjAmmY?1?B}8|g=E>h-ej~q*&dI-;-;v6nslvkF!LS!{NhTdC z^gSe5U&Amziu@6m3i}Ux0MDQh7ylFTk6VtD;-@ucea8QSSe*YSWPr>^nkahzPl(3( z--z)~x~$LsC(%!w|J8f+PkBU~|L0@;)0XP~&mtD*zkQGXPi-^*8!`UrJD~f2-!}d? z?$JNx3vu(m6XT!q7~TIJ>A&YKN9>yPub*oPBO@%-*D)ITfds!B(z>nD?5zNfT)^w$*YGd?Z-vpsGn q#eXyce3Jp$>hT}g#{Zi!{wbf-{Zl@r&z)S|lKyYWLGl|H|9=3Bos1U% literal 0 HcmV?d00001 diff --git a/example/android/app/.cxx/Debug/28432r45/arm64-v8a/CMakeFiles/TargetDirectories.txt b/example/android/app/.cxx/Debug/28432r45/arm64-v8a/CMakeFiles/TargetDirectories.txt new file mode 100644 index 0000000..54dca61 --- /dev/null +++ b/example/android/app/.cxx/Debug/28432r45/arm64-v8a/CMakeFiles/TargetDirectories.txt @@ -0,0 +1,2 @@ +/Users/dgarcia/Documents/flutter_policy_engine/example/android/app/.cxx/Debug/28432r45/arm64-v8a/CMakeFiles/edit_cache.dir +/Users/dgarcia/Documents/flutter_policy_engine/example/android/app/.cxx/Debug/28432r45/arm64-v8a/CMakeFiles/rebuild_cache.dir diff --git a/example/android/app/.cxx/Debug/28432r45/arm64-v8a/CMakeFiles/cmake.check_cache b/example/android/app/.cxx/Debug/28432r45/arm64-v8a/CMakeFiles/cmake.check_cache new file mode 100644 index 0000000..3dccd73 --- /dev/null +++ b/example/android/app/.cxx/Debug/28432r45/arm64-v8a/CMakeFiles/cmake.check_cache @@ -0,0 +1 @@ +# This file is generated by cmake for dependency checking of the CMakeCache.txt file diff --git a/example/android/app/.cxx/Debug/28432r45/arm64-v8a/CMakeFiles/rules.ninja b/example/android/app/.cxx/Debug/28432r45/arm64-v8a/CMakeFiles/rules.ninja new file mode 100644 index 0000000..7de1ed9 --- /dev/null +++ b/example/android/app/.cxx/Debug/28432r45/arm64-v8a/CMakeFiles/rules.ninja @@ -0,0 +1,45 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Ninja" Generator, CMake Version 3.22 + +# This file contains all the rules used to get the outputs files +# built from the input files. +# It is included in the main 'build.ninja'. + +# ============================================================================= +# Project: Project +# Configurations: Debug +# ============================================================================= +# ============================================================================= + +############################################# +# Rule for running custom commands. + +rule CUSTOM_COMMAND + command = $COMMAND + description = $DESC + + +############################################# +# Rule for re-running cmake. + +rule RERUN_CMAKE + command = /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/bin/cmake --regenerate-during-build -S/Users/dgarcia/fvm/versions/3.29.3/packages/flutter_tools/gradle/src/main/groovy -B/Users/dgarcia/Documents/flutter_policy_engine/example/android/app/.cxx/Debug/28432r45/arm64-v8a + description = Re-running CMake... + generator = 1 + + +############################################# +# Rule for cleaning all built files. + +rule CLEAN + command = /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/bin/ninja $FILE_ARG -t clean $TARGETS + description = Cleaning all built files... + + +############################################# +# Rule for printing all primary targets available. + +rule HELP + command = /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/bin/ninja -t targets + description = All primary targets available: + diff --git a/example/android/app/.cxx/Debug/28432r45/arm64-v8a/additional_project_files.txt b/example/android/app/.cxx/Debug/28432r45/arm64-v8a/additional_project_files.txt new file mode 100644 index 0000000..e69de29 diff --git a/example/android/app/.cxx/Debug/28432r45/arm64-v8a/android_gradle_build.json b/example/android/app/.cxx/Debug/28432r45/arm64-v8a/android_gradle_build.json new file mode 100644 index 0000000..d075574 --- /dev/null +++ b/example/android/app/.cxx/Debug/28432r45/arm64-v8a/android_gradle_build.json @@ -0,0 +1,28 @@ +{ + "buildFiles": [ + "/Users/dgarcia/fvm/versions/3.29.3/packages/flutter_tools/gradle/src/main/groovy/CMakeLists.txt" + ], + "cleanCommandsComponents": [ + [ + "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/bin/ninja", + "-C", + "/Users/dgarcia/Documents/flutter_policy_engine/example/android/app/.cxx/Debug/28432r45/arm64-v8a", + "clean" + ] + ], + "buildTargetsCommandComponents": [ + "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/bin/ninja", + "-C", + "/Users/dgarcia/Documents/flutter_policy_engine/example/android/app/.cxx/Debug/28432r45/arm64-v8a", + "{LIST_OF_TARGETS_TO_BUILD}" + ], + "libraries": {}, + "toolchains": { + "toolchain": { + "cCompilerExecutable": "/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/toolchains/llvm/prebuilt/darwin-x86_64/bin/clang.lld", + "cppCompilerExecutable": "/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/toolchains/llvm/prebuilt/darwin-x86_64/bin/clang++.lld" + } + }, + "cFileExtensions": [], + "cppFileExtensions": [] +} \ No newline at end of file diff --git a/example/android/app/.cxx/Debug/28432r45/arm64-v8a/android_gradle_build_mini.json b/example/android/app/.cxx/Debug/28432r45/arm64-v8a/android_gradle_build_mini.json new file mode 100644 index 0000000..abb960e --- /dev/null +++ b/example/android/app/.cxx/Debug/28432r45/arm64-v8a/android_gradle_build_mini.json @@ -0,0 +1,20 @@ +{ + "buildFiles": [ + "/Users/dgarcia/fvm/versions/3.29.3/packages/flutter_tools/gradle/src/main/groovy/CMakeLists.txt" + ], + "cleanCommandsComponents": [ + [ + "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/bin/ninja", + "-C", + "/Users/dgarcia/Documents/flutter_policy_engine/example/android/app/.cxx/Debug/28432r45/arm64-v8a", + "clean" + ] + ], + "buildTargetsCommandComponents": [ + "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/bin/ninja", + "-C", + "/Users/dgarcia/Documents/flutter_policy_engine/example/android/app/.cxx/Debug/28432r45/arm64-v8a", + "{LIST_OF_TARGETS_TO_BUILD}" + ], + "libraries": {} +} \ No newline at end of file diff --git a/example/android/app/.cxx/Debug/28432r45/arm64-v8a/build.ninja b/example/android/app/.cxx/Debug/28432r45/arm64-v8a/build.ninja new file mode 100644 index 0000000..7f99e2d --- /dev/null +++ b/example/android/app/.cxx/Debug/28432r45/arm64-v8a/build.ninja @@ -0,0 +1,112 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Ninja" Generator, CMake Version 3.22 + +# This file contains all the build statements describing the +# compilation DAG. + +# ============================================================================= +# Write statements declared in CMakeLists.txt: +# +# Which is the root file. +# ============================================================================= + +# ============================================================================= +# Project: Project +# Configurations: Debug +# ============================================================================= + +############################################# +# Minimal version of Ninja required by this file + +ninja_required_version = 1.5 + + +############################################# +# Set configuration variable for custom commands. + +CONFIGURATION = Debug +# ============================================================================= +# Include auxiliary files. + + +############################################# +# Include rules file. + +include CMakeFiles/rules.ninja + +# ============================================================================= + +############################################# +# Logical path to working directory; prefix for absolute paths. + +cmake_ninja_workdir = /Users/dgarcia/Documents/flutter_policy_engine/example/android/app/.cxx/Debug/28432r45/arm64-v8a/ + +############################################# +# Utility command for edit_cache + +build CMakeFiles/edit_cache.util: CUSTOM_COMMAND + COMMAND = cd /Users/dgarcia/Documents/flutter_policy_engine/example/android/app/.cxx/Debug/28432r45/arm64-v8a && /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/bin/ccmake -S/Users/dgarcia/fvm/versions/3.29.3/packages/flutter_tools/gradle/src/main/groovy -B/Users/dgarcia/Documents/flutter_policy_engine/example/android/app/.cxx/Debug/28432r45/arm64-v8a + DESC = Running CMake cache editor... + pool = console + restat = 1 + +build edit_cache: phony CMakeFiles/edit_cache.util + + +############################################# +# Utility command for rebuild_cache + +build CMakeFiles/rebuild_cache.util: CUSTOM_COMMAND + COMMAND = cd /Users/dgarcia/Documents/flutter_policy_engine/example/android/app/.cxx/Debug/28432r45/arm64-v8a && /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/bin/cmake --regenerate-during-build -S/Users/dgarcia/fvm/versions/3.29.3/packages/flutter_tools/gradle/src/main/groovy -B/Users/dgarcia/Documents/flutter_policy_engine/example/android/app/.cxx/Debug/28432r45/arm64-v8a + DESC = Running CMake to regenerate build system... + pool = console + restat = 1 + +build rebuild_cache: phony CMakeFiles/rebuild_cache.util + +# ============================================================================= +# Target aliases. + +# ============================================================================= +# Folder targets. + +# ============================================================================= + +############################################# +# Folder: /Users/dgarcia/Documents/flutter_policy_engine/example/android/app/.cxx/Debug/28432r45/arm64-v8a + +build all: phony + +# ============================================================================= +# Built-in targets + + +############################################# +# Re-run CMake if any of its inputs changed. + +build build.ninja: RERUN_CMAKE | /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCCompiler.cmake.in /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCCompilerABI.c /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCInformation.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCXXCompiler.cmake.in /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCXXCompilerABI.cpp /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCXXInformation.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCommonLanguageInclude.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCompilerIdDetection.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCXXCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCompileFeatures.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCompilerABI.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCompilerId.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineSystem.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeFindBinUtils.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeGenericSystem.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeInitializeConfigs.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeLanguageInformation.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeParseImplicitIncludeInfo.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeParseImplicitLinkInfo.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeParseLibraryArchitecture.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeSystem.cmake.in /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeSystemSpecificInformation.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeSystemSpecificInitialize.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeTestCCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeTestCXXCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeTestCompilerCommon.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/ADSP-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/ARMCC-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/ARMClang-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/AppleClang-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Borland-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Bruce-C-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/CMakeCommonCompilerMacros.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-C.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-CXX.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-DetermineCompilerInternal.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-FindBinUtils.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Comeau-CXX-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Compaq-C-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Compaq-CXX-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Cray-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Embarcadero-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Fujitsu-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/FujitsuClang-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/GHS-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/GNU-C-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/GNU-CXX-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/GNU.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/HP-C-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/HP-CXX-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IAR-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IBMCPP-C-DetermineVersionInternal.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IBMCPP-CXX-DetermineVersionInternal.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Intel-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IntelLLVM-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/MSVC-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/NVHPC-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/NVIDIA-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/OpenWatcom-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/PGI-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/PathScale-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/SCO-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/SDCC-C-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/SunPro-C-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/SunPro-CXX-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/TI-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/TinyCC-C-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/VisualAge-C-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/VisualAge-CXX-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Watcom-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/XL-C-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/XL-CXX-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/XLClang-C-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/XLClang-CXX-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/zOS-C-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/zOS-CXX-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Internal/FeatureTesting.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Clang-C.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Clang-CXX.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Clang.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Determine-C.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Determine-CXX.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Determine.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Initialize.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android/Determine-Compiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Linux.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/UnixPaths.cmake /Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/build/cmake/android-legacy.toolchain.cmake /Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/build/cmake/android.toolchain.cmake /Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/build/cmake/flags.cmake /Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/build/cmake/hooks/pre/Android-Clang.cmake /Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/build/cmake/hooks/pre/Android-Determine.cmake /Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/build/cmake/hooks/pre/Android-Initialize.cmake /Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/build/cmake/hooks/pre/Android.cmake /Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/build/cmake/hooks/pre/Determine-Compiler.cmake /Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/build/cmake/platforms.cmake /Users/dgarcia/fvm/versions/3.29.3/packages/flutter_tools/gradle/src/main/groovy/CMakeLists.txt CMakeCache.txt CMakeFiles/3.22.1-g37088a8/CMakeCCompiler.cmake CMakeFiles/3.22.1-g37088a8/CMakeCXXCompiler.cmake CMakeFiles/3.22.1-g37088a8/CMakeSystem.cmake + pool = console + + +############################################# +# A missing CMake input file is not an error. + +build /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCCompiler.cmake.in /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCCompilerABI.c /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCInformation.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCXXCompiler.cmake.in /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCXXCompilerABI.cpp /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCXXInformation.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCommonLanguageInclude.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCompilerIdDetection.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCXXCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCompileFeatures.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCompilerABI.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCompilerId.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineSystem.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeFindBinUtils.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeGenericSystem.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeInitializeConfigs.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeLanguageInformation.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeParseImplicitIncludeInfo.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeParseImplicitLinkInfo.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeParseLibraryArchitecture.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeSystem.cmake.in /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeSystemSpecificInformation.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeSystemSpecificInitialize.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeTestCCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeTestCXXCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeTestCompilerCommon.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/ADSP-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/ARMCC-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/ARMClang-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/AppleClang-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Borland-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Bruce-C-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/CMakeCommonCompilerMacros.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-C.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-CXX.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-DetermineCompilerInternal.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-FindBinUtils.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Comeau-CXX-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Compaq-C-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Compaq-CXX-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Cray-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Embarcadero-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Fujitsu-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/FujitsuClang-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/GHS-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/GNU-C-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/GNU-CXX-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/GNU.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/HP-C-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/HP-CXX-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IAR-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IBMCPP-C-DetermineVersionInternal.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IBMCPP-CXX-DetermineVersionInternal.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Intel-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IntelLLVM-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/MSVC-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/NVHPC-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/NVIDIA-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/OpenWatcom-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/PGI-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/PathScale-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/SCO-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/SDCC-C-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/SunPro-C-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/SunPro-CXX-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/TI-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/TinyCC-C-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/VisualAge-C-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/VisualAge-CXX-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Watcom-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/XL-C-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/XL-CXX-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/XLClang-C-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/XLClang-CXX-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/zOS-C-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/zOS-CXX-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Internal/FeatureTesting.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Clang-C.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Clang-CXX.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Clang.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Determine-C.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Determine-CXX.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Determine.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Initialize.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android/Determine-Compiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Linux.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/UnixPaths.cmake /Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/build/cmake/android-legacy.toolchain.cmake /Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/build/cmake/android.toolchain.cmake /Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/build/cmake/flags.cmake /Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/build/cmake/hooks/pre/Android-Clang.cmake /Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/build/cmake/hooks/pre/Android-Determine.cmake /Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/build/cmake/hooks/pre/Android-Initialize.cmake /Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/build/cmake/hooks/pre/Android.cmake /Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/build/cmake/hooks/pre/Determine-Compiler.cmake /Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/build/cmake/platforms.cmake /Users/dgarcia/fvm/versions/3.29.3/packages/flutter_tools/gradle/src/main/groovy/CMakeLists.txt CMakeCache.txt CMakeFiles/3.22.1-g37088a8/CMakeCCompiler.cmake CMakeFiles/3.22.1-g37088a8/CMakeCXXCompiler.cmake CMakeFiles/3.22.1-g37088a8/CMakeSystem.cmake: phony + + +############################################# +# Clean all the built files. + +build clean: CLEAN + + +############################################# +# Print all primary targets available. + +build help: HELP + + +############################################# +# Make the all target the default. + +default all diff --git a/example/android/app/.cxx/Debug/28432r45/arm64-v8a/build_file_index.txt b/example/android/app/.cxx/Debug/28432r45/arm64-v8a/build_file_index.txt new file mode 100644 index 0000000..26c3ceb --- /dev/null +++ b/example/android/app/.cxx/Debug/28432r45/arm64-v8a/build_file_index.txt @@ -0,0 +1 @@ +/Users/dgarcia/fvm/versions/3.29.3/packages/flutter_tools/gradle/src/main/groovy/CMakeLists.txt \ No newline at end of file diff --git a/example/android/app/.cxx/Debug/28432r45/arm64-v8a/cmake_install.cmake b/example/android/app/.cxx/Debug/28432r45/arm64-v8a/cmake_install.cmake new file mode 100644 index 0000000..644a05b --- /dev/null +++ b/example/android/app/.cxx/Debug/28432r45/arm64-v8a/cmake_install.cmake @@ -0,0 +1,54 @@ +# Install script for directory: /Users/dgarcia/fvm/versions/3.29.3/packages/flutter_tools/gradle/src/main/groovy + +# Set the install prefix +if(NOT DEFINED CMAKE_INSTALL_PREFIX) + set(CMAKE_INSTALL_PREFIX "/usr/local") +endif() +string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}") + +# Set the install configuration name. +if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME) + if(BUILD_TYPE) + string(REGEX REPLACE "^[^A-Za-z0-9_]+" "" + CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}") + else() + set(CMAKE_INSTALL_CONFIG_NAME "Debug") + endif() + message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"") +endif() + +# Set the component getting installed. +if(NOT CMAKE_INSTALL_COMPONENT) + if(COMPONENT) + message(STATUS "Install component: \"${COMPONENT}\"") + set(CMAKE_INSTALL_COMPONENT "${COMPONENT}") + else() + set(CMAKE_INSTALL_COMPONENT) + endif() +endif() + +# Install shared libraries without execute permission? +if(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE) + set(CMAKE_INSTALL_SO_NO_EXE "0") +endif() + +# Is this installation the result of a crosscompile? +if(NOT DEFINED CMAKE_CROSSCOMPILING) + set(CMAKE_CROSSCOMPILING "TRUE") +endif() + +# Set default install directory permissions. +if(NOT DEFINED CMAKE_OBJDUMP) + set(CMAKE_OBJDUMP "/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-objdump") +endif() + +if(CMAKE_INSTALL_COMPONENT) + set(CMAKE_INSTALL_MANIFEST "install_manifest_${CMAKE_INSTALL_COMPONENT}.txt") +else() + set(CMAKE_INSTALL_MANIFEST "install_manifest.txt") +endif() + +string(REPLACE ";" "\n" CMAKE_INSTALL_MANIFEST_CONTENT + "${CMAKE_INSTALL_MANIFEST_FILES}") +file(WRITE "/Users/dgarcia/Documents/flutter_policy_engine/example/android/app/.cxx/Debug/28432r45/arm64-v8a/${CMAKE_INSTALL_MANIFEST}" + "${CMAKE_INSTALL_MANIFEST_CONTENT}") diff --git a/example/android/app/.cxx/Debug/28432r45/arm64-v8a/configure_fingerprint.bin b/example/android/app/.cxx/Debug/28432r45/arm64-v8a/configure_fingerprint.bin new file mode 100644 index 0000000..2a7a6ce --- /dev/null +++ b/example/android/app/.cxx/Debug/28432r45/arm64-v8a/configure_fingerprint.bin @@ -0,0 +1,28 @@ +C/C++ Structured Log + +}/Users/dgarcia/Documents/flutter_policy_engine/example/android/app/.cxx/Debug/28432r45/arm64-v8a/additional_project_files.txtC +A +?com.android.build.gradle.internal.cxx.io.EncodedFileFingerPrint  ȡ3  Ψ3~ +| +z/Users/dgarcia/Documents/flutter_policy_engine/example/android/app/.cxx/Debug/28432r45/arm64-v8a/android_gradle_build.json  ȡ3 Ш3 + +/Users/dgarcia/Documents/flutter_policy_engine/example/android/app/.cxx/Debug/28432r45/arm64-v8a/android_gradle_build_mini.json  ȡ3 Ө3p +n +l/Users/dgarcia/Documents/flutter_policy_engine/example/android/app/.cxx/Debug/28432r45/arm64-v8a/build.ninja  ȡ3 3t +r +p/Users/dgarcia/Documents/flutter_policy_engine/example/android/app/.cxx/Debug/28432r45/arm64-v8a/build.ninja.txt  ȡ3y +w +u/Users/dgarcia/Documents/flutter_policy_engine/example/android/app/.cxx/Debug/28432r45/arm64-v8a/build_file_index.txt  ȡ3 _ Ԩ3z +x +v/Users/dgarcia/Documents/flutter_policy_engine/example/android/app/.cxx/Debug/28432r45/arm64-v8a/compile_commands.json  ȡ3~ +| +z/Users/dgarcia/Documents/flutter_policy_engine/example/android/app/.cxx/Debug/28432r45/arm64-v8a/compile_commands.json.bin  ȡ3  + +/Users/dgarcia/Documents/flutter_policy_engine/example/android/app/.cxx/Debug/28432r45/arm64-v8a/metadata_generation_command.txt  ȡ3 + Ө3w +u +s/Users/dgarcia/Documents/flutter_policy_engine/example/android/app/.cxx/Debug/28432r45/arm64-v8a/prefab_config.json  ȡ3  ( Ө3| +z +x/Users/dgarcia/Documents/flutter_policy_engine/example/android/app/.cxx/Debug/28432r45/arm64-v8a/symbol_folder_index.txt  ȡ3  o Ԩ3c +a +_/Users/dgarcia/fvm/versions/3.29.3/packages/flutter_tools/gradle/src/main/groovy/CMakeLists.txt  ȡ3  ٳ2 \ No newline at end of file diff --git a/example/android/app/.cxx/Debug/28432r45/arm64-v8a/metadata_generation_command.txt b/example/android/app/.cxx/Debug/28432r45/arm64-v8a/metadata_generation_command.txt new file mode 100644 index 0000000..f32da97 --- /dev/null +++ b/example/android/app/.cxx/Debug/28432r45/arm64-v8a/metadata_generation_command.txt @@ -0,0 +1,20 @@ + -H/Users/dgarcia/fvm/versions/3.29.3/packages/flutter_tools/gradle/src/main/groovy +-DCMAKE_SYSTEM_NAME=Android +-DCMAKE_EXPORT_COMPILE_COMMANDS=ON +-DCMAKE_SYSTEM_VERSION=21 +-DANDROID_PLATFORM=android-21 +-DANDROID_ABI=arm64-v8a +-DCMAKE_ANDROID_ARCH_ABI=arm64-v8a +-DANDROID_NDK=/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264 +-DCMAKE_ANDROID_NDK=/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264 +-DCMAKE_TOOLCHAIN_FILE=/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/build/cmake/android.toolchain.cmake +-DCMAKE_MAKE_PROGRAM=/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/bin/ninja +-DCMAKE_LIBRARY_OUTPUT_DIRECTORY=/Users/dgarcia/Documents/flutter_policy_engine/example/build/app/intermediates/cxx/Debug/28432r45/obj/arm64-v8a +-DCMAKE_RUNTIME_OUTPUT_DIRECTORY=/Users/dgarcia/Documents/flutter_policy_engine/example/build/app/intermediates/cxx/Debug/28432r45/obj/arm64-v8a +-DCMAKE_BUILD_TYPE=Debug +-B/Users/dgarcia/Documents/flutter_policy_engine/example/android/app/.cxx/Debug/28432r45/arm64-v8a +-GNinja +-Wno-dev +--no-warn-unused-cli + Build command args: [] + Version: 2 \ No newline at end of file diff --git a/example/android/app/.cxx/Debug/28432r45/arm64-v8a/prefab_config.json b/example/android/app/.cxx/Debug/28432r45/arm64-v8a/prefab_config.json new file mode 100644 index 0000000..e799de8 --- /dev/null +++ b/example/android/app/.cxx/Debug/28432r45/arm64-v8a/prefab_config.json @@ -0,0 +1,4 @@ +{ + "enabled": false, + "packages": [] +} \ No newline at end of file diff --git a/example/android/app/.cxx/Debug/28432r45/arm64-v8a/symbol_folder_index.txt b/example/android/app/.cxx/Debug/28432r45/arm64-v8a/symbol_folder_index.txt new file mode 100644 index 0000000..6b5eb6a --- /dev/null +++ b/example/android/app/.cxx/Debug/28432r45/arm64-v8a/symbol_folder_index.txt @@ -0,0 +1 @@ +/Users/dgarcia/Documents/flutter_policy_engine/example/build/app/intermediates/cxx/Debug/28432r45/obj/arm64-v8a \ No newline at end of file diff --git a/example/android/app/.cxx/Debug/28432r45/armeabi-v7a/.cmake/api/v1/query/client-agp/cache-v2 b/example/android/app/.cxx/Debug/28432r45/armeabi-v7a/.cmake/api/v1/query/client-agp/cache-v2 new file mode 100644 index 0000000..e69de29 diff --git a/example/android/app/.cxx/Debug/28432r45/armeabi-v7a/.cmake/api/v1/query/client-agp/cmakeFiles-v1 b/example/android/app/.cxx/Debug/28432r45/armeabi-v7a/.cmake/api/v1/query/client-agp/cmakeFiles-v1 new file mode 100644 index 0000000..e69de29 diff --git a/example/android/app/.cxx/Debug/28432r45/armeabi-v7a/.cmake/api/v1/query/client-agp/codemodel-v2 b/example/android/app/.cxx/Debug/28432r45/armeabi-v7a/.cmake/api/v1/query/client-agp/codemodel-v2 new file mode 100644 index 0000000..e69de29 diff --git a/example/android/app/.cxx/Debug/28432r45/armeabi-v7a/.cmake/api/v1/reply/cache-v2-b53c83439c981136ff8a.json b/example/android/app/.cxx/Debug/28432r45/armeabi-v7a/.cmake/api/v1/reply/cache-v2-b53c83439c981136ff8a.json new file mode 100644 index 0000000..3aacc55 --- /dev/null +++ b/example/android/app/.cxx/Debug/28432r45/armeabi-v7a/.cmake/api/v1/reply/cache-v2-b53c83439c981136ff8a.json @@ -0,0 +1,1391 @@ +{ + "entries" : + [ + { + "name" : "ANDROID_ABI", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "No help, variable specified on the command line." + } + ], + "type" : "UNINITIALIZED", + "value" : "armeabi-v7a" + }, + { + "name" : "ANDROID_NDK", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "No help, variable specified on the command line." + } + ], + "type" : "UNINITIALIZED", + "value" : "/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264" + }, + { + "name" : "ANDROID_PLATFORM", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "No help, variable specified on the command line." + } + ], + "type" : "UNINITIALIZED", + "value" : "android-21" + }, + { + "name" : "CMAKE_ADDR2LINE", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Path to a program." + } + ], + "type" : "FILEPATH", + "value" : "/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-addr2line" + }, + { + "name" : "CMAKE_ANDROID_ARCH_ABI", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "No help, variable specified on the command line." + } + ], + "type" : "UNINITIALIZED", + "value" : "armeabi-v7a" + }, + { + "name" : "CMAKE_ANDROID_NDK", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "No help, variable specified on the command line." + } + ], + "type" : "UNINITIALIZED", + "value" : "/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264" + }, + { + "name" : "CMAKE_AR", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Archiver" + } + ], + "type" : "FILEPATH", + "value" : "/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ar" + }, + { + "name" : "CMAKE_ASM_FLAGS", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Flags used by the compiler during all build types." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_ASM_FLAGS_DEBUG", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Flags used by the compiler during debug builds." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_ASM_FLAGS_RELEASE", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Flags used by the compiler during release builds." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_BUILD_TYPE", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Choose the type of build, options are: None Debug Release RelWithDebInfo MinSizeRel ..." + } + ], + "type" : "STRING", + "value" : "Debug" + }, + { + "name" : "CMAKE_CACHEFILE_DIR", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "This is the directory where this CMakeCache.txt was created" + } + ], + "type" : "INTERNAL", + "value" : "/Users/dgarcia/Documents/flutter_policy_engine/example/android/app/.cxx/Debug/28432r45/armeabi-v7a" + }, + { + "name" : "CMAKE_CACHE_MAJOR_VERSION", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Major version of cmake used to create the current loaded cache" + } + ], + "type" : "INTERNAL", + "value" : "3" + }, + { + "name" : "CMAKE_CACHE_MINOR_VERSION", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Minor version of cmake used to create the current loaded cache" + } + ], + "type" : "INTERNAL", + "value" : "22" + }, + { + "name" : "CMAKE_CACHE_PATCH_VERSION", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Patch version of cmake used to create the current loaded cache" + } + ], + "type" : "INTERNAL", + "value" : "1" + }, + { + "name" : "CMAKE_COMMAND", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Path to CMake executable." + } + ], + "type" : "INTERNAL", + "value" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/bin/cmake" + }, + { + "name" : "CMAKE_CPACK_COMMAND", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Path to cpack program executable." + } + ], + "type" : "INTERNAL", + "value" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/bin/cpack" + }, + { + "name" : "CMAKE_CTEST_COMMAND", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Path to ctest program executable." + } + ], + "type" : "INTERNAL", + "value" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/bin/ctest" + }, + { + "name" : "CMAKE_CXX_COMPILER", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "(This variable does not exist and should not be used)" + } + ], + "type" : "UNINITIALIZED", + "value" : "" + }, + { + "name" : "CMAKE_CXX_COMPILER_AR", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "LLVM archiver" + } + ], + "type" : "FILEPATH", + "value" : "/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ar" + }, + { + "name" : "CMAKE_CXX_COMPILER_RANLIB", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Generate index for LLVM archive" + } + ], + "type" : "FILEPATH", + "value" : "/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ranlib" + }, + { + "name" : "CMAKE_CXX_FLAGS", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the compiler during all build types." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_CXX_FLAGS_DEBUG", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the compiler during debug builds." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_CXX_FLAGS_MINSIZEREL", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the CXX compiler during MINSIZEREL builds." + } + ], + "type" : "STRING", + "value" : "-Os -DNDEBUG" + }, + { + "name" : "CMAKE_CXX_FLAGS_RELEASE", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the compiler during release builds." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_CXX_FLAGS_RELWITHDEBINFO", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the CXX compiler during RELWITHDEBINFO builds." + } + ], + "type" : "STRING", + "value" : "-O2 -g -DNDEBUG" + }, + { + "name" : "CMAKE_CXX_STANDARD_LIBRARIES", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Libraries linked by default with all C++ applications." + } + ], + "type" : "STRING", + "value" : "-latomic -lm" + }, + { + "name" : "CMAKE_C_COMPILER", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "(This variable does not exist and should not be used)" + } + ], + "type" : "UNINITIALIZED", + "value" : "" + }, + { + "name" : "CMAKE_C_COMPILER_AR", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "LLVM archiver" + } + ], + "type" : "FILEPATH", + "value" : "/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ar" + }, + { + "name" : "CMAKE_C_COMPILER_RANLIB", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Generate index for LLVM archive" + } + ], + "type" : "FILEPATH", + "value" : "/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ranlib" + }, + { + "name" : "CMAKE_C_FLAGS", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the compiler during all build types." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_C_FLAGS_DEBUG", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the compiler during debug builds." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_C_FLAGS_MINSIZEREL", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the C compiler during MINSIZEREL builds." + } + ], + "type" : "STRING", + "value" : "-Os -DNDEBUG" + }, + { + "name" : "CMAKE_C_FLAGS_RELEASE", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the compiler during release builds." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_C_FLAGS_RELWITHDEBINFO", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the C compiler during RELWITHDEBINFO builds." + } + ], + "type" : "STRING", + "value" : "-O2 -g -DNDEBUG" + }, + { + "name" : "CMAKE_C_STANDARD_LIBRARIES", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Libraries linked by default with all C applications." + } + ], + "type" : "STRING", + "value" : "-latomic -lm" + }, + { + "name" : "CMAKE_DLLTOOL", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Path to a program." + } + ], + "type" : "FILEPATH", + "value" : "CMAKE_DLLTOOL-NOTFOUND" + }, + { + "name" : "CMAKE_EDIT_COMMAND", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Path to cache edit program executable." + } + ], + "type" : "INTERNAL", + "value" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/bin/ccmake" + }, + { + "name" : "CMAKE_ERROR_DEPRECATED", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Whether to issue deprecation errors for macros and functions." + } + ], + "type" : "INTERNAL", + "value" : "FALSE" + }, + { + "name" : "CMAKE_EXECUTABLE_FORMAT", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Executable file format" + } + ], + "type" : "INTERNAL", + "value" : "ELF" + }, + { + "name" : "CMAKE_EXE_LINKER_FLAGS", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the linker." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_EXE_LINKER_FLAGS_DEBUG", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the linker during DEBUG builds." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_EXE_LINKER_FLAGS_MINSIZEREL", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the linker during MINSIZEREL builds." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_EXE_LINKER_FLAGS_RELEASE", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the linker during RELEASE builds." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the linker during RELWITHDEBINFO builds." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_EXPORT_COMPILE_COMMANDS", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "No help, variable specified on the command line." + } + ], + "type" : "UNINITIALIZED", + "value" : "ON" + }, + { + "name" : "CMAKE_EXTRA_GENERATOR", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Name of external makefile project generator." + } + ], + "type" : "INTERNAL", + "value" : "" + }, + { + "name" : "CMAKE_GENERATOR", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Name of generator." + } + ], + "type" : "INTERNAL", + "value" : "Ninja" + }, + { + "name" : "CMAKE_GENERATOR_INSTANCE", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Generator instance identifier." + } + ], + "type" : "INTERNAL", + "value" : "" + }, + { + "name" : "CMAKE_GENERATOR_PLATFORM", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Name of generator platform." + } + ], + "type" : "INTERNAL", + "value" : "" + }, + { + "name" : "CMAKE_GENERATOR_TOOLSET", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Name of generator toolset." + } + ], + "type" : "INTERNAL", + "value" : "" + }, + { + "name" : "CMAKE_HOME_DIRECTORY", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Source directory with the top level CMakeLists.txt file for this project" + } + ], + "type" : "INTERNAL", + "value" : "/Users/dgarcia/fvm/versions/3.29.3/packages/flutter_tools/gradle/src/main/groovy" + }, + { + "name" : "CMAKE_INSTALL_PREFIX", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Install path prefix, prepended onto install directories." + } + ], + "type" : "PATH", + "value" : "/usr/local" + }, + { + "name" : "CMAKE_INSTALL_SO_NO_EXE", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Install .so files without execute permission." + } + ], + "type" : "INTERNAL", + "value" : "0" + }, + { + "name" : "CMAKE_LIBRARY_OUTPUT_DIRECTORY", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "No help, variable specified on the command line." + } + ], + "type" : "UNINITIALIZED", + "value" : "/Users/dgarcia/Documents/flutter_policy_engine/example/build/app/intermediates/cxx/Debug/28432r45/obj/armeabi-v7a" + }, + { + "name" : "CMAKE_LINKER", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Path to a program." + } + ], + "type" : "FILEPATH", + "value" : "/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/toolchains/llvm/prebuilt/darwin-x86_64/bin/ld.lld" + }, + { + "name" : "CMAKE_MAKE_PROGRAM", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "No help, variable specified on the command line." + } + ], + "type" : "UNINITIALIZED", + "value" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/bin/ninja" + }, + { + "name" : "CMAKE_MODULE_LINKER_FLAGS", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the linker during the creation of modules." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_MODULE_LINKER_FLAGS_DEBUG", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the linker during the creation of modules during DEBUG builds." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the linker during the creation of modules during MINSIZEREL builds." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_MODULE_LINKER_FLAGS_RELEASE", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the linker during the creation of modules during RELEASE builds." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the linker during the creation of modules during RELWITHDEBINFO builds." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_NM", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Path to a program." + } + ], + "type" : "FILEPATH", + "value" : "/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-nm" + }, + { + "name" : "CMAKE_NUMBER_OF_MAKEFILES", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "number of local generators" + } + ], + "type" : "INTERNAL", + "value" : "1" + }, + { + "name" : "CMAKE_OBJCOPY", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Path to a program." + } + ], + "type" : "FILEPATH", + "value" : "/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-objcopy" + }, + { + "name" : "CMAKE_OBJDUMP", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Path to a program." + } + ], + "type" : "FILEPATH", + "value" : "/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-objdump" + }, + { + "name" : "CMAKE_PLATFORM_INFO_INITIALIZED", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Platform information initialized" + } + ], + "type" : "INTERNAL", + "value" : "1" + }, + { + "name" : "CMAKE_PROJECT_DESCRIPTION", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Value Computed by CMake" + } + ], + "type" : "STATIC", + "value" : "" + }, + { + "name" : "CMAKE_PROJECT_HOMEPAGE_URL", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Value Computed by CMake" + } + ], + "type" : "STATIC", + "value" : "" + }, + { + "name" : "CMAKE_PROJECT_NAME", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Value Computed by CMake" + } + ], + "type" : "STATIC", + "value" : "Project" + }, + { + "name" : "CMAKE_RANLIB", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Ranlib" + } + ], + "type" : "FILEPATH", + "value" : "/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ranlib" + }, + { + "name" : "CMAKE_READELF", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Path to a program." + } + ], + "type" : "FILEPATH", + "value" : "/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-readelf" + }, + { + "name" : "CMAKE_ROOT", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Path to CMake installation." + } + ], + "type" : "INTERNAL", + "value" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22" + }, + { + "name" : "CMAKE_RUNTIME_OUTPUT_DIRECTORY", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "No help, variable specified on the command line." + } + ], + "type" : "UNINITIALIZED", + "value" : "/Users/dgarcia/Documents/flutter_policy_engine/example/build/app/intermediates/cxx/Debug/28432r45/obj/armeabi-v7a" + }, + { + "name" : "CMAKE_SHARED_LINKER_FLAGS", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the linker during the creation of dll's." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_SHARED_LINKER_FLAGS_DEBUG", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the linker during the creation of shared libraries during DEBUG builds." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the linker during the creation of shared libraries during MINSIZEREL builds." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_SHARED_LINKER_FLAGS_RELEASE", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the linker during the creation of shared libraries during RELEASE builds." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the linker during the creation of shared libraries during RELWITHDEBINFO builds." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_SKIP_INSTALL_RPATH", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "If set, runtime paths are not added when installing shared libraries, but are added when building." + } + ], + "type" : "BOOL", + "value" : "NO" + }, + { + "name" : "CMAKE_SKIP_RPATH", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "If set, runtime paths are not added when using shared libraries." + } + ], + "type" : "BOOL", + "value" : "NO" + }, + { + "name" : "CMAKE_STATIC_LINKER_FLAGS", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the linker during the creation of static libraries during all build types." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_STATIC_LINKER_FLAGS_DEBUG", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the linker during the creation of static libraries during DEBUG builds." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the linker during the creation of static libraries during MINSIZEREL builds." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_STATIC_LINKER_FLAGS_RELEASE", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the linker during the creation of static libraries during RELEASE builds." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the linker during the creation of static libraries during RELWITHDEBINFO builds." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_STRIP", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Strip" + } + ], + "type" : "FILEPATH", + "value" : "/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-strip" + }, + { + "name" : "CMAKE_SUPPRESS_DEVELOPER_ERRORS", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Suppress errors that are meant for the author of the CMakeLists.txt files." + } + ], + "type" : "INTERNAL", + "value" : "TRUE" + }, + { + "name" : "CMAKE_SUPPRESS_DEVELOPER_WARNINGS", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Suppress Warnings that are meant for the author of the CMakeLists.txt files." + } + ], + "type" : "INTERNAL", + "value" : "TRUE" + }, + { + "name" : "CMAKE_SYSTEM_NAME", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "No help, variable specified on the command line." + } + ], + "type" : "UNINITIALIZED", + "value" : "Android" + }, + { + "name" : "CMAKE_SYSTEM_VERSION", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "No help, variable specified on the command line." + } + ], + "type" : "UNINITIALIZED", + "value" : "21" + }, + { + "name" : "CMAKE_TOOLCHAIN_FILE", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "The CMake toolchain file" + } + ], + "type" : "FILEPATH", + "value" : "/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/build/cmake/android.toolchain.cmake" + }, + { + "name" : "CMAKE_UNAME", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "uname command" + } + ], + "type" : "INTERNAL", + "value" : "/usr/bin/uname" + }, + { + "name" : "CMAKE_VERBOSE_MAKEFILE", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "If this value is on, makefiles will be generated without the .SILENT directive, and all commands will be echoed to the console during the make. This is useful for debugging only. With Visual Studio IDE projects all commands are done without /nologo." + } + ], + "type" : "BOOL", + "value" : "FALSE" + }, + { + "name" : "CMAKE_WARN_DEPRECATED", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Whether to issue warnings for deprecated functionality." + } + ], + "type" : "INTERNAL", + "value" : "FALSE" + }, + { + "name" : "Project_BINARY_DIR", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Value Computed by CMake" + } + ], + "type" : "STATIC", + "value" : "/Users/dgarcia/Documents/flutter_policy_engine/example/android/app/.cxx/Debug/28432r45/armeabi-v7a" + }, + { + "name" : "Project_IS_TOP_LEVEL", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Value Computed by CMake" + } + ], + "type" : "STATIC", + "value" : "ON" + }, + { + "name" : "Project_SOURCE_DIR", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Value Computed by CMake" + } + ], + "type" : "STATIC", + "value" : "/Users/dgarcia/fvm/versions/3.29.3/packages/flutter_tools/gradle/src/main/groovy" + } + ], + "kind" : "cache", + "version" : + { + "major" : 2, + "minor" : 0 + } +} diff --git a/example/android/app/.cxx/Debug/28432r45/armeabi-v7a/.cmake/api/v1/reply/cmakeFiles-v1-cfacb2528081544122e5.json b/example/android/app/.cxx/Debug/28432r45/armeabi-v7a/.cmake/api/v1/reply/cmakeFiles-v1-cfacb2528081544122e5.json new file mode 100644 index 0000000..5c9bf48 --- /dev/null +++ b/example/android/app/.cxx/Debug/28432r45/armeabi-v7a/.cmake/api/v1/reply/cmakeFiles-v1-cfacb2528081544122e5.json @@ -0,0 +1,799 @@ +{ + "inputs" : + [ + { + "path" : "CMakeLists.txt" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineSystem.cmake" + }, + { + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/build/cmake/android.toolchain.cmake" + }, + { + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/build/cmake/android-legacy.toolchain.cmake" + }, + { + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/build/cmake/platforms.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Determine.cmake" + }, + { + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/build/cmake/hooks/pre/Android-Determine.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeSystem.cmake.in" + }, + { + "isGenerated" : true, + "path" : "/Users/dgarcia/Documents/flutter_policy_engine/example/android/app/.cxx/Debug/28432r45/armeabi-v7a/CMakeFiles/3.22.1-g37088a8/CMakeSystem.cmake" + }, + { + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/build/cmake/android.toolchain.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeSystemSpecificInitialize.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Initialize.cmake" + }, + { + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/build/cmake/hooks/pre/Android-Initialize.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Determine-C.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android/Determine-Compiler.cmake" + }, + { + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/build/cmake/hooks/pre/Determine-Compiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCompilerId.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCompilerIdDetection.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/ADSP-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/ARMCC-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/ARMClang-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/AppleClang-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-DetermineCompilerInternal.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Borland-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Bruce-C-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-DetermineCompilerInternal.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Compaq-C-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Cray-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Embarcadero-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Fujitsu-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/FujitsuClang-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/GHS-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/GNU-C-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/HP-C-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IAR-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Intel-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IntelLLVM-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/MSVC-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/NVHPC-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/NVIDIA-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/OpenWatcom-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/PGI-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/PathScale-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/SCO-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/SDCC-C-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/SunPro-C-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/TI-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/TinyCC-C-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/VisualAge-C-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IBMCPP-C-DetermineVersionInternal.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Watcom-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/XL-C-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IBMCPP-C-DetermineVersionInternal.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/XLClang-C-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/zOS-C-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IBMCPP-C-DetermineVersionInternal.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeFindBinUtils.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-FindBinUtils.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCCompiler.cmake.in" + }, + { + "isGenerated" : true, + "path" : "/Users/dgarcia/Documents/flutter_policy_engine/example/android/app/.cxx/Debug/28432r45/armeabi-v7a/CMakeFiles/3.22.1-g37088a8/CMakeCCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCXXCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Determine-CXX.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android/Determine-Compiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCompilerId.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCompilerIdDetection.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/ADSP-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/ARMCC-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/ARMClang-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/AppleClang-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-DetermineCompilerInternal.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Borland-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-DetermineCompilerInternal.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Comeau-CXX-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Compaq-CXX-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Cray-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Embarcadero-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Fujitsu-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/FujitsuClang-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/GHS-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/GNU-CXX-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/HP-CXX-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IAR-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Intel-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IntelLLVM-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/MSVC-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/NVHPC-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/NVIDIA-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/OpenWatcom-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/PGI-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/PathScale-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/SCO-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/SunPro-CXX-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/TI-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/VisualAge-CXX-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IBMCPP-CXX-DetermineVersionInternal.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Watcom-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/XL-CXX-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IBMCPP-CXX-DetermineVersionInternal.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/XLClang-CXX-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/zOS-CXX-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IBMCPP-CXX-DetermineVersionInternal.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeFindBinUtils.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-FindBinUtils.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCXXCompiler.cmake.in" + }, + { + "isGenerated" : true, + "path" : "/Users/dgarcia/Documents/flutter_policy_engine/example/android/app/.cxx/Debug/28432r45/armeabi-v7a/CMakeFiles/3.22.1-g37088a8/CMakeCXXCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeSystemSpecificInformation.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeGenericSystem.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeInitializeConfigs.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android.cmake" + }, + { + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/build/cmake/hooks/pre/Android.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Linux.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/UnixPaths.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCInformation.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeLanguageInformation.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-C.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/CMakeCommonCompilerMacros.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/GNU.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/CMakeCommonCompilerMacros.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Clang-C.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Clang.cmake" + }, + { + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/build/cmake/hooks/pre/Android-Clang.cmake" + }, + { + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/build/cmake/flags.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCommonLanguageInclude.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeTestCCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeTestCompilerCommon.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCompilerABI.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeParseImplicitIncludeInfo.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeParseImplicitLinkInfo.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeParseLibraryArchitecture.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeTestCompilerCommon.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCCompilerABI.c" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCompileFeatures.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Internal/FeatureTesting.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCCompiler.cmake.in" + }, + { + "isGenerated" : true, + "path" : "/Users/dgarcia/Documents/flutter_policy_engine/example/android/app/.cxx/Debug/28432r45/armeabi-v7a/CMakeFiles/3.22.1-g37088a8/CMakeCCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCXXInformation.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeLanguageInformation.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-CXX.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Clang-CXX.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Clang.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCommonLanguageInclude.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeTestCXXCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeTestCompilerCommon.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCompilerABI.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeParseImplicitIncludeInfo.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeParseImplicitLinkInfo.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeParseLibraryArchitecture.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeTestCompilerCommon.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCXXCompilerABI.cpp" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCompileFeatures.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Internal/FeatureTesting.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCXXCompiler.cmake.in" + }, + { + "isGenerated" : true, + "path" : "/Users/dgarcia/Documents/flutter_policy_engine/example/android/app/.cxx/Debug/28432r45/armeabi-v7a/CMakeFiles/3.22.1-g37088a8/CMakeCXXCompiler.cmake" + } + ], + "kind" : "cmakeFiles", + "paths" : + { + "build" : "/Users/dgarcia/Documents/flutter_policy_engine/example/android/app/.cxx/Debug/28432r45/armeabi-v7a", + "source" : "/Users/dgarcia/fvm/versions/3.29.3/packages/flutter_tools/gradle/src/main/groovy" + }, + "version" : + { + "major" : 1, + "minor" : 0 + } +} diff --git a/example/android/app/.cxx/Debug/28432r45/armeabi-v7a/.cmake/api/v1/reply/codemodel-v2-d52978b42d2634fbe207.json b/example/android/app/.cxx/Debug/28432r45/armeabi-v7a/.cmake/api/v1/reply/codemodel-v2-d52978b42d2634fbe207.json new file mode 100644 index 0000000..53f76af --- /dev/null +++ b/example/android/app/.cxx/Debug/28432r45/armeabi-v7a/.cmake/api/v1/reply/codemodel-v2-d52978b42d2634fbe207.json @@ -0,0 +1,43 @@ +{ + "configurations" : + [ + { + "directories" : + [ + { + "build" : ".", + "jsonFile" : "directory-.-Debug-f5ebdc15457944623624.json", + "minimumCMakeVersion" : + { + "string" : "3.6.0" + }, + "projectIndex" : 0, + "source" : "." + } + ], + "name" : "Debug", + "projects" : + [ + { + "directoryIndexes" : + [ + 0 + ], + "name" : "Project" + } + ], + "targets" : [] + } + ], + "kind" : "codemodel", + "paths" : + { + "build" : "/Users/dgarcia/Documents/flutter_policy_engine/example/android/app/.cxx/Debug/28432r45/armeabi-v7a", + "source" : "/Users/dgarcia/fvm/versions/3.29.3/packages/flutter_tools/gradle/src/main/groovy" + }, + "version" : + { + "major" : 2, + "minor" : 3 + } +} diff --git a/example/android/app/.cxx/Debug/28432r45/armeabi-v7a/.cmake/api/v1/reply/directory-.-Debug-f5ebdc15457944623624.json b/example/android/app/.cxx/Debug/28432r45/armeabi-v7a/.cmake/api/v1/reply/directory-.-Debug-f5ebdc15457944623624.json new file mode 100644 index 0000000..3a67af9 --- /dev/null +++ b/example/android/app/.cxx/Debug/28432r45/armeabi-v7a/.cmake/api/v1/reply/directory-.-Debug-f5ebdc15457944623624.json @@ -0,0 +1,14 @@ +{ + "backtraceGraph" : + { + "commands" : [], + "files" : [], + "nodes" : [] + }, + "installers" : [], + "paths" : + { + "build" : ".", + "source" : "." + } +} diff --git a/example/android/app/.cxx/Debug/28432r45/armeabi-v7a/.cmake/api/v1/reply/index-2025-07-16T16-59-53-0566.json b/example/android/app/.cxx/Debug/28432r45/armeabi-v7a/.cmake/api/v1/reply/index-2025-07-16T16-59-53-0566.json new file mode 100644 index 0000000..265c8b8 --- /dev/null +++ b/example/android/app/.cxx/Debug/28432r45/armeabi-v7a/.cmake/api/v1/reply/index-2025-07-16T16-59-53-0566.json @@ -0,0 +1,92 @@ +{ + "cmake" : + { + "generator" : + { + "multiConfig" : false, + "name" : "Ninja" + }, + "paths" : + { + "cmake" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/bin/cmake", + "cpack" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/bin/cpack", + "ctest" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/bin/ctest", + "root" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22" + }, + "version" : + { + "isDirty" : false, + "major" : 3, + "minor" : 22, + "patch" : 1, + "string" : "3.22.1-g37088a8", + "suffix" : "g37088a8" + } + }, + "objects" : + [ + { + "jsonFile" : "codemodel-v2-d52978b42d2634fbe207.json", + "kind" : "codemodel", + "version" : + { + "major" : 2, + "minor" : 3 + } + }, + { + "jsonFile" : "cache-v2-b53c83439c981136ff8a.json", + "kind" : "cache", + "version" : + { + "major" : 2, + "minor" : 0 + } + }, + { + "jsonFile" : "cmakeFiles-v1-cfacb2528081544122e5.json", + "kind" : "cmakeFiles", + "version" : + { + "major" : 1, + "minor" : 0 + } + } + ], + "reply" : + { + "client-agp" : + { + "cache-v2" : + { + "jsonFile" : "cache-v2-b53c83439c981136ff8a.json", + "kind" : "cache", + "version" : + { + "major" : 2, + "minor" : 0 + } + }, + "cmakeFiles-v1" : + { + "jsonFile" : "cmakeFiles-v1-cfacb2528081544122e5.json", + "kind" : "cmakeFiles", + "version" : + { + "major" : 1, + "minor" : 0 + } + }, + "codemodel-v2" : + { + "jsonFile" : "codemodel-v2-d52978b42d2634fbe207.json", + "kind" : "codemodel", + "version" : + { + "major" : 2, + "minor" : 3 + } + } + } + } +} diff --git a/example/android/app/.cxx/Debug/28432r45/armeabi-v7a/CMakeCache.txt b/example/android/app/.cxx/Debug/28432r45/armeabi-v7a/CMakeCache.txt new file mode 100644 index 0000000..8e08ecc --- /dev/null +++ b/example/android/app/.cxx/Debug/28432r45/armeabi-v7a/CMakeCache.txt @@ -0,0 +1,405 @@ +# This is the CMakeCache file. +# For build in directory: /Users/dgarcia/Documents/flutter_policy_engine/example/android/app/.cxx/Debug/28432r45/armeabi-v7a +# It was generated by CMake: /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/bin/cmake +# You can edit this file to change values found and used by cmake. +# If you do not want to change any of the values, simply exit the editor. +# If you do want to change a value, simply edit, save, and exit the editor. +# The syntax for the file is as follows: +# KEY:TYPE=VALUE +# KEY is the name of a variable in the cache. +# TYPE is a hint to GUIs for the type of VALUE, DO NOT EDIT TYPE!. +# VALUE is the current value for the KEY. + +######################## +# EXTERNAL cache entries +######################## + +//No help, variable specified on the command line. +ANDROID_ABI:UNINITIALIZED=armeabi-v7a + +//No help, variable specified on the command line. +ANDROID_NDK:UNINITIALIZED=/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264 + +//No help, variable specified on the command line. +ANDROID_PLATFORM:UNINITIALIZED=android-21 + +//Path to a program. +CMAKE_ADDR2LINE:FILEPATH=/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-addr2line + +//No help, variable specified on the command line. +CMAKE_ANDROID_ARCH_ABI:UNINITIALIZED=armeabi-v7a + +//No help, variable specified on the command line. +CMAKE_ANDROID_NDK:UNINITIALIZED=/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264 + +//Archiver +CMAKE_AR:FILEPATH=/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ar + +//Flags used by the compiler during all build types. +CMAKE_ASM_FLAGS:STRING= + +//Flags used by the compiler during debug builds. +CMAKE_ASM_FLAGS_DEBUG:STRING= + +//Flags used by the compiler during release builds. +CMAKE_ASM_FLAGS_RELEASE:STRING= + +//Choose the type of build, options are: None Debug Release RelWithDebInfo +// MinSizeRel ... +CMAKE_BUILD_TYPE:STRING=Debug + +//LLVM archiver +CMAKE_CXX_COMPILER_AR:FILEPATH=/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ar + +//Generate index for LLVM archive +CMAKE_CXX_COMPILER_RANLIB:FILEPATH=/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ranlib + +//Flags used by the compiler during all build types. +CMAKE_CXX_FLAGS:STRING= + +//Flags used by the compiler during debug builds. +CMAKE_CXX_FLAGS_DEBUG:STRING= + +//Flags used by the CXX compiler during MINSIZEREL builds. +CMAKE_CXX_FLAGS_MINSIZEREL:STRING=-Os -DNDEBUG + +//Flags used by the compiler during release builds. +CMAKE_CXX_FLAGS_RELEASE:STRING= + +//Flags used by the CXX compiler during RELWITHDEBINFO builds. +CMAKE_CXX_FLAGS_RELWITHDEBINFO:STRING=-O2 -g -DNDEBUG + +//Libraries linked by default with all C++ applications. +CMAKE_CXX_STANDARD_LIBRARIES:STRING=-latomic -lm + +//LLVM archiver +CMAKE_C_COMPILER_AR:FILEPATH=/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ar + +//Generate index for LLVM archive +CMAKE_C_COMPILER_RANLIB:FILEPATH=/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ranlib + +//Flags used by the compiler during all build types. +CMAKE_C_FLAGS:STRING= + +//Flags used by the compiler during debug builds. +CMAKE_C_FLAGS_DEBUG:STRING= + +//Flags used by the C compiler during MINSIZEREL builds. +CMAKE_C_FLAGS_MINSIZEREL:STRING=-Os -DNDEBUG + +//Flags used by the compiler during release builds. +CMAKE_C_FLAGS_RELEASE:STRING= + +//Flags used by the C compiler during RELWITHDEBINFO builds. +CMAKE_C_FLAGS_RELWITHDEBINFO:STRING=-O2 -g -DNDEBUG + +//Libraries linked by default with all C applications. +CMAKE_C_STANDARD_LIBRARIES:STRING=-latomic -lm + +//Path to a program. +CMAKE_DLLTOOL:FILEPATH=CMAKE_DLLTOOL-NOTFOUND + +//Flags used by the linker. +CMAKE_EXE_LINKER_FLAGS:STRING= + +//Flags used by the linker during DEBUG builds. +CMAKE_EXE_LINKER_FLAGS_DEBUG:STRING= + +//Flags used by the linker during MINSIZEREL builds. +CMAKE_EXE_LINKER_FLAGS_MINSIZEREL:STRING= + +//Flags used by the linker during RELEASE builds. +CMAKE_EXE_LINKER_FLAGS_RELEASE:STRING= + +//Flags used by the linker during RELWITHDEBINFO builds. +CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO:STRING= + +//No help, variable specified on the command line. +CMAKE_EXPORT_COMPILE_COMMANDS:UNINITIALIZED=ON + +//Install path prefix, prepended onto install directories. +CMAKE_INSTALL_PREFIX:PATH=/usr/local + +//No help, variable specified on the command line. +CMAKE_LIBRARY_OUTPUT_DIRECTORY:UNINITIALIZED=/Users/dgarcia/Documents/flutter_policy_engine/example/build/app/intermediates/cxx/Debug/28432r45/obj/armeabi-v7a + +//Path to a program. +CMAKE_LINKER:FILEPATH=/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/toolchains/llvm/prebuilt/darwin-x86_64/bin/ld.lld + +//No help, variable specified on the command line. +CMAKE_MAKE_PROGRAM:UNINITIALIZED=/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/bin/ninja + +//Flags used by the linker during the creation of modules. +CMAKE_MODULE_LINKER_FLAGS:STRING= + +//Flags used by the linker during the creation of modules during +// DEBUG builds. +CMAKE_MODULE_LINKER_FLAGS_DEBUG:STRING= + +//Flags used by the linker during the creation of modules during +// MINSIZEREL builds. +CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL:STRING= + +//Flags used by the linker during the creation of modules during +// RELEASE builds. +CMAKE_MODULE_LINKER_FLAGS_RELEASE:STRING= + +//Flags used by the linker during the creation of modules during +// RELWITHDEBINFO builds. +CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO:STRING= + +//Path to a program. +CMAKE_NM:FILEPATH=/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-nm + +//Path to a program. +CMAKE_OBJCOPY:FILEPATH=/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-objcopy + +//Path to a program. +CMAKE_OBJDUMP:FILEPATH=/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-objdump + +//Value Computed by CMake +CMAKE_PROJECT_DESCRIPTION:STATIC= + +//Value Computed by CMake +CMAKE_PROJECT_HOMEPAGE_URL:STATIC= + +//Value Computed by CMake +CMAKE_PROJECT_NAME:STATIC=Project + +//Ranlib +CMAKE_RANLIB:FILEPATH=/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ranlib + +//Path to a program. +CMAKE_READELF:FILEPATH=/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-readelf + +//No help, variable specified on the command line. +CMAKE_RUNTIME_OUTPUT_DIRECTORY:UNINITIALIZED=/Users/dgarcia/Documents/flutter_policy_engine/example/build/app/intermediates/cxx/Debug/28432r45/obj/armeabi-v7a + +//Flags used by the linker during the creation of dll's. +CMAKE_SHARED_LINKER_FLAGS:STRING= + +//Flags used by the linker during the creation of shared libraries +// during DEBUG builds. +CMAKE_SHARED_LINKER_FLAGS_DEBUG:STRING= + +//Flags used by the linker during the creation of shared libraries +// during MINSIZEREL builds. +CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL:STRING= + +//Flags used by the linker during the creation of shared libraries +// during RELEASE builds. +CMAKE_SHARED_LINKER_FLAGS_RELEASE:STRING= + +//Flags used by the linker during the creation of shared libraries +// during RELWITHDEBINFO builds. +CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO:STRING= + +//If set, runtime paths are not added when installing shared libraries, +// but are added when building. +CMAKE_SKIP_INSTALL_RPATH:BOOL=NO + +//If set, runtime paths are not added when using shared libraries. +CMAKE_SKIP_RPATH:BOOL=NO + +//Flags used by the linker during the creation of static libraries +// during all build types. +CMAKE_STATIC_LINKER_FLAGS:STRING= + +//Flags used by the linker during the creation of static libraries +// during DEBUG builds. +CMAKE_STATIC_LINKER_FLAGS_DEBUG:STRING= + +//Flags used by the linker during the creation of static libraries +// during MINSIZEREL builds. +CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL:STRING= + +//Flags used by the linker during the creation of static libraries +// during RELEASE builds. +CMAKE_STATIC_LINKER_FLAGS_RELEASE:STRING= + +//Flags used by the linker during the creation of static libraries +// during RELWITHDEBINFO builds. +CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO:STRING= + +//Strip +CMAKE_STRIP:FILEPATH=/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-strip + +//No help, variable specified on the command line. +CMAKE_SYSTEM_NAME:UNINITIALIZED=Android + +//No help, variable specified on the command line. +CMAKE_SYSTEM_VERSION:UNINITIALIZED=21 + +//The CMake toolchain file +CMAKE_TOOLCHAIN_FILE:FILEPATH=/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/build/cmake/android.toolchain.cmake + +//If this value is on, makefiles will be generated without the +// .SILENT directive, and all commands will be echoed to the console +// during the make. This is useful for debugging only. With Visual +// Studio IDE projects all commands are done without /nologo. +CMAKE_VERBOSE_MAKEFILE:BOOL=FALSE + +//Value Computed by CMake +Project_BINARY_DIR:STATIC=/Users/dgarcia/Documents/flutter_policy_engine/example/android/app/.cxx/Debug/28432r45/armeabi-v7a + +//Value Computed by CMake +Project_IS_TOP_LEVEL:STATIC=ON + +//Value Computed by CMake +Project_SOURCE_DIR:STATIC=/Users/dgarcia/fvm/versions/3.29.3/packages/flutter_tools/gradle/src/main/groovy + + +######################## +# INTERNAL cache entries +######################## + +//ADVANCED property for variable: CMAKE_ADDR2LINE +CMAKE_ADDR2LINE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_AR +CMAKE_AR-ADVANCED:INTERNAL=1 +//This is the directory where this CMakeCache.txt was created +CMAKE_CACHEFILE_DIR:INTERNAL=/Users/dgarcia/Documents/flutter_policy_engine/example/android/app/.cxx/Debug/28432r45/armeabi-v7a +//Major version of cmake used to create the current loaded cache +CMAKE_CACHE_MAJOR_VERSION:INTERNAL=3 +//Minor version of cmake used to create the current loaded cache +CMAKE_CACHE_MINOR_VERSION:INTERNAL=22 +//Patch version of cmake used to create the current loaded cache +CMAKE_CACHE_PATCH_VERSION:INTERNAL=1 +//Path to CMake executable. +CMAKE_COMMAND:INTERNAL=/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/bin/cmake +//Path to cpack program executable. +CMAKE_CPACK_COMMAND:INTERNAL=/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/bin/cpack +//Path to ctest program executable. +CMAKE_CTEST_COMMAND:INTERNAL=/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/bin/ctest +//ADVANCED property for variable: CMAKE_CXX_COMPILER_AR +CMAKE_CXX_COMPILER_AR-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_COMPILER_RANLIB +CMAKE_CXX_COMPILER_RANLIB-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_FLAGS +CMAKE_CXX_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_FLAGS_DEBUG +CMAKE_CXX_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_FLAGS_MINSIZEREL +CMAKE_CXX_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_FLAGS_RELEASE +CMAKE_CXX_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_FLAGS_RELWITHDEBINFO +CMAKE_CXX_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_STANDARD_LIBRARIES +CMAKE_CXX_STANDARD_LIBRARIES-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_COMPILER_AR +CMAKE_C_COMPILER_AR-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_COMPILER_RANLIB +CMAKE_C_COMPILER_RANLIB-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_FLAGS +CMAKE_C_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_FLAGS_DEBUG +CMAKE_C_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_FLAGS_MINSIZEREL +CMAKE_C_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_FLAGS_RELEASE +CMAKE_C_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_FLAGS_RELWITHDEBINFO +CMAKE_C_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_STANDARD_LIBRARIES +CMAKE_C_STANDARD_LIBRARIES-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_DLLTOOL +CMAKE_DLLTOOL-ADVANCED:INTERNAL=1 +//Path to cache edit program executable. +CMAKE_EDIT_COMMAND:INTERNAL=/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/bin/ccmake +//Whether to issue deprecation errors for macros and functions. +CMAKE_ERROR_DEPRECATED:INTERNAL=FALSE +//Executable file format +CMAKE_EXECUTABLE_FORMAT:INTERNAL=ELF +//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS +CMAKE_EXE_LINKER_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_DEBUG +CMAKE_EXE_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_MINSIZEREL +CMAKE_EXE_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_RELEASE +CMAKE_EXE_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO +CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//Name of external makefile project generator. +CMAKE_EXTRA_GENERATOR:INTERNAL= +//Name of generator. +CMAKE_GENERATOR:INTERNAL=Ninja +//Generator instance identifier. +CMAKE_GENERATOR_INSTANCE:INTERNAL= +//Name of generator platform. +CMAKE_GENERATOR_PLATFORM:INTERNAL= +//Name of generator toolset. +CMAKE_GENERATOR_TOOLSET:INTERNAL= +//Source directory with the top level CMakeLists.txt file for this +// project +CMAKE_HOME_DIRECTORY:INTERNAL=/Users/dgarcia/fvm/versions/3.29.3/packages/flutter_tools/gradle/src/main/groovy +//Install .so files without execute permission. +CMAKE_INSTALL_SO_NO_EXE:INTERNAL=0 +//ADVANCED property for variable: CMAKE_LINKER +CMAKE_LINKER-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS +CMAKE_MODULE_LINKER_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_DEBUG +CMAKE_MODULE_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL +CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_RELEASE +CMAKE_MODULE_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO +CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_NM +CMAKE_NM-ADVANCED:INTERNAL=1 +//number of local generators +CMAKE_NUMBER_OF_MAKEFILES:INTERNAL=1 +//ADVANCED property for variable: CMAKE_OBJCOPY +CMAKE_OBJCOPY-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_OBJDUMP +CMAKE_OBJDUMP-ADVANCED:INTERNAL=1 +//Platform information initialized +CMAKE_PLATFORM_INFO_INITIALIZED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_RANLIB +CMAKE_RANLIB-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_READELF +CMAKE_READELF-ADVANCED:INTERNAL=1 +//Path to CMake installation. +CMAKE_ROOT:INTERNAL=/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22 +//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS +CMAKE_SHARED_LINKER_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_DEBUG +CMAKE_SHARED_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL +CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_RELEASE +CMAKE_SHARED_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO +CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SKIP_INSTALL_RPATH +CMAKE_SKIP_INSTALL_RPATH-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SKIP_RPATH +CMAKE_SKIP_RPATH-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS +CMAKE_STATIC_LINKER_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_DEBUG +CMAKE_STATIC_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL +CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_RELEASE +CMAKE_STATIC_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO +CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STRIP +CMAKE_STRIP-ADVANCED:INTERNAL=1 +//Suppress errors that are meant for the author of the CMakeLists.txt +// files. +CMAKE_SUPPRESS_DEVELOPER_ERRORS:INTERNAL=TRUE +//Suppress Warnings that are meant for the author of the CMakeLists.txt +// files. +CMAKE_SUPPRESS_DEVELOPER_WARNINGS:INTERNAL=TRUE +//uname command +CMAKE_UNAME:INTERNAL=/usr/bin/uname +//ADVANCED property for variable: CMAKE_VERBOSE_MAKEFILE +CMAKE_VERBOSE_MAKEFILE-ADVANCED:INTERNAL=1 +//Whether to issue warnings for deprecated functionality. +CMAKE_WARN_DEPRECATED:INTERNAL=FALSE + diff --git a/example/android/app/.cxx/Debug/28432r45/armeabi-v7a/CMakeFiles/3.22.1-g37088a8/CMakeCCompiler.cmake b/example/android/app/.cxx/Debug/28432r45/armeabi-v7a/CMakeFiles/3.22.1-g37088a8/CMakeCCompiler.cmake new file mode 100644 index 0000000..6f6e860 --- /dev/null +++ b/example/android/app/.cxx/Debug/28432r45/armeabi-v7a/CMakeFiles/3.22.1-g37088a8/CMakeCCompiler.cmake @@ -0,0 +1,72 @@ +set(CMAKE_C_COMPILER "/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/toolchains/llvm/prebuilt/darwin-x86_64/bin/clang") +set(CMAKE_C_COMPILER_ARG1 "") +set(CMAKE_C_COMPILER_ID "Clang") +set(CMAKE_C_COMPILER_VERSION "17.0.2") +set(CMAKE_C_COMPILER_VERSION_INTERNAL "") +set(CMAKE_C_COMPILER_WRAPPER "") +set(CMAKE_C_STANDARD_COMPUTED_DEFAULT "17") +set(CMAKE_C_EXTENSIONS_COMPUTED_DEFAULT "ON") +set(CMAKE_C_COMPILE_FEATURES "c_std_90;c_function_prototypes;c_std_99;c_restrict;c_variadic_macros;c_std_11;c_static_assert;c_std_17;c_std_23") +set(CMAKE_C90_COMPILE_FEATURES "c_std_90;c_function_prototypes") +set(CMAKE_C99_COMPILE_FEATURES "c_std_99;c_restrict;c_variadic_macros") +set(CMAKE_C11_COMPILE_FEATURES "c_std_11;c_static_assert") +set(CMAKE_C17_COMPILE_FEATURES "c_std_17") +set(CMAKE_C23_COMPILE_FEATURES "c_std_23") + +set(CMAKE_C_PLATFORM_ID "Linux") +set(CMAKE_C_SIMULATE_ID "") +set(CMAKE_C_COMPILER_FRONTEND_VARIANT "GNU") +set(CMAKE_C_SIMULATE_VERSION "") + + + + +set(CMAKE_AR "/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ar") +set(CMAKE_C_COMPILER_AR "/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ar") +set(CMAKE_RANLIB "/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ranlib") +set(CMAKE_C_COMPILER_RANLIB "/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ranlib") +set(CMAKE_LINKER "/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/toolchains/llvm/prebuilt/darwin-x86_64/bin/ld.lld") +set(CMAKE_MT "") +set(CMAKE_COMPILER_IS_GNUCC ) +set(CMAKE_C_COMPILER_LOADED 1) +set(CMAKE_C_COMPILER_WORKS TRUE) +set(CMAKE_C_ABI_COMPILED TRUE) + +set(CMAKE_C_COMPILER_ENV_VAR "CC") + +set(CMAKE_C_COMPILER_ID_RUN 1) +set(CMAKE_C_SOURCE_FILE_EXTENSIONS c;m) +set(CMAKE_C_IGNORE_EXTENSIONS h;H;o;O;obj;OBJ;def;DEF;rc;RC) +set(CMAKE_C_LINKER_PREFERENCE 10) + +# Save compiler ABI information. +set(CMAKE_C_SIZEOF_DATA_PTR "4") +set(CMAKE_C_COMPILER_ABI "ELF") +set(CMAKE_C_BYTE_ORDER "LITTLE_ENDIAN") +set(CMAKE_C_LIBRARY_ARCHITECTURE "") + +if(CMAKE_C_SIZEOF_DATA_PTR) + set(CMAKE_SIZEOF_VOID_P "${CMAKE_C_SIZEOF_DATA_PTR}") +endif() + +if(CMAKE_C_COMPILER_ABI) + set(CMAKE_INTERNAL_PLATFORM_ABI "${CMAKE_C_COMPILER_ABI}") +endif() + +if(CMAKE_C_LIBRARY_ARCHITECTURE) + set(CMAKE_LIBRARY_ARCHITECTURE "") +endif() + +set(CMAKE_C_CL_SHOWINCLUDES_PREFIX "") +if(CMAKE_C_CL_SHOWINCLUDES_PREFIX) + set(CMAKE_CL_SHOWINCLUDES_PREFIX "${CMAKE_C_CL_SHOWINCLUDES_PREFIX}") +endif() + + + + + +set(CMAKE_C_IMPLICIT_INCLUDE_DIRECTORIES "/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/toolchains/llvm/prebuilt/darwin-x86_64/lib/clang/17/include;/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/toolchains/llvm/prebuilt/darwin-x86_64/sysroot/usr/include/arm-linux-androideabi;/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/toolchains/llvm/prebuilt/darwin-x86_64/sysroot/usr/include") +set(CMAKE_C_IMPLICIT_LINK_LIBRARIES "-l:libunwind.a;dl;c;-l:libunwind.a;dl") +set(CMAKE_C_IMPLICIT_LINK_DIRECTORIES "/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/toolchains/llvm/prebuilt/darwin-x86_64/lib/clang/17/lib/linux/arm;/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/toolchains/llvm/prebuilt/darwin-x86_64/sysroot/usr/lib/arm-linux-androideabi/21;/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/toolchains/llvm/prebuilt/darwin-x86_64/sysroot/usr/lib/arm-linux-androideabi;/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/toolchains/llvm/prebuilt/darwin-x86_64/sysroot/usr/lib") +set(CMAKE_C_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "") diff --git a/example/android/app/.cxx/Debug/28432r45/armeabi-v7a/CMakeFiles/3.22.1-g37088a8/CMakeCXXCompiler.cmake b/example/android/app/.cxx/Debug/28432r45/armeabi-v7a/CMakeFiles/3.22.1-g37088a8/CMakeCXXCompiler.cmake new file mode 100644 index 0000000..8d8dda7 --- /dev/null +++ b/example/android/app/.cxx/Debug/28432r45/armeabi-v7a/CMakeFiles/3.22.1-g37088a8/CMakeCXXCompiler.cmake @@ -0,0 +1,83 @@ +set(CMAKE_CXX_COMPILER "/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/toolchains/llvm/prebuilt/darwin-x86_64/bin/clang++") +set(CMAKE_CXX_COMPILER_ARG1 "") +set(CMAKE_CXX_COMPILER_ID "Clang") +set(CMAKE_CXX_COMPILER_VERSION "17.0.2") +set(CMAKE_CXX_COMPILER_VERSION_INTERNAL "") +set(CMAKE_CXX_COMPILER_WRAPPER "") +set(CMAKE_CXX_STANDARD_COMPUTED_DEFAULT "17") +set(CMAKE_CXX_EXTENSIONS_COMPUTED_DEFAULT "ON") +set(CMAKE_CXX_COMPILE_FEATURES "cxx_std_98;cxx_template_template_parameters;cxx_std_11;cxx_alias_templates;cxx_alignas;cxx_alignof;cxx_attributes;cxx_auto_type;cxx_constexpr;cxx_decltype;cxx_decltype_incomplete_return_types;cxx_default_function_template_args;cxx_defaulted_functions;cxx_defaulted_move_initializers;cxx_delegating_constructors;cxx_deleted_functions;cxx_enum_forward_declarations;cxx_explicit_conversions;cxx_extended_friend_declarations;cxx_extern_templates;cxx_final;cxx_func_identifier;cxx_generalized_initializers;cxx_inheriting_constructors;cxx_inline_namespaces;cxx_lambdas;cxx_local_type_template_args;cxx_long_long_type;cxx_noexcept;cxx_nonstatic_member_init;cxx_nullptr;cxx_override;cxx_range_for;cxx_raw_string_literals;cxx_reference_qualified_functions;cxx_right_angle_brackets;cxx_rvalue_references;cxx_sizeof_member;cxx_static_assert;cxx_strong_enums;cxx_thread_local;cxx_trailing_return_types;cxx_unicode_literals;cxx_uniform_initialization;cxx_unrestricted_unions;cxx_user_literals;cxx_variadic_macros;cxx_variadic_templates;cxx_std_14;cxx_aggregate_default_initializers;cxx_attribute_deprecated;cxx_binary_literals;cxx_contextual_conversions;cxx_decltype_auto;cxx_digit_separators;cxx_generic_lambdas;cxx_lambda_init_captures;cxx_relaxed_constexpr;cxx_return_type_deduction;cxx_variable_templates;cxx_std_17;cxx_std_20;cxx_std_23") +set(CMAKE_CXX98_COMPILE_FEATURES "cxx_std_98;cxx_template_template_parameters") +set(CMAKE_CXX11_COMPILE_FEATURES "cxx_std_11;cxx_alias_templates;cxx_alignas;cxx_alignof;cxx_attributes;cxx_auto_type;cxx_constexpr;cxx_decltype;cxx_decltype_incomplete_return_types;cxx_default_function_template_args;cxx_defaulted_functions;cxx_defaulted_move_initializers;cxx_delegating_constructors;cxx_deleted_functions;cxx_enum_forward_declarations;cxx_explicit_conversions;cxx_extended_friend_declarations;cxx_extern_templates;cxx_final;cxx_func_identifier;cxx_generalized_initializers;cxx_inheriting_constructors;cxx_inline_namespaces;cxx_lambdas;cxx_local_type_template_args;cxx_long_long_type;cxx_noexcept;cxx_nonstatic_member_init;cxx_nullptr;cxx_override;cxx_range_for;cxx_raw_string_literals;cxx_reference_qualified_functions;cxx_right_angle_brackets;cxx_rvalue_references;cxx_sizeof_member;cxx_static_assert;cxx_strong_enums;cxx_thread_local;cxx_trailing_return_types;cxx_unicode_literals;cxx_uniform_initialization;cxx_unrestricted_unions;cxx_user_literals;cxx_variadic_macros;cxx_variadic_templates") +set(CMAKE_CXX14_COMPILE_FEATURES "cxx_std_14;cxx_aggregate_default_initializers;cxx_attribute_deprecated;cxx_binary_literals;cxx_contextual_conversions;cxx_decltype_auto;cxx_digit_separators;cxx_generic_lambdas;cxx_lambda_init_captures;cxx_relaxed_constexpr;cxx_return_type_deduction;cxx_variable_templates") +set(CMAKE_CXX17_COMPILE_FEATURES "cxx_std_17") +set(CMAKE_CXX20_COMPILE_FEATURES "cxx_std_20") +set(CMAKE_CXX23_COMPILE_FEATURES "cxx_std_23") + +set(CMAKE_CXX_PLATFORM_ID "Linux") +set(CMAKE_CXX_SIMULATE_ID "") +set(CMAKE_CXX_COMPILER_FRONTEND_VARIANT "GNU") +set(CMAKE_CXX_SIMULATE_VERSION "") + + + + +set(CMAKE_AR "/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ar") +set(CMAKE_CXX_COMPILER_AR "/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ar") +set(CMAKE_RANLIB "/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ranlib") +set(CMAKE_CXX_COMPILER_RANLIB "/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ranlib") +set(CMAKE_LINKER "/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/toolchains/llvm/prebuilt/darwin-x86_64/bin/ld.lld") +set(CMAKE_MT "") +set(CMAKE_COMPILER_IS_GNUCXX ) +set(CMAKE_CXX_COMPILER_LOADED 1) +set(CMAKE_CXX_COMPILER_WORKS TRUE) +set(CMAKE_CXX_ABI_COMPILED TRUE) + +set(CMAKE_CXX_COMPILER_ENV_VAR "CXX") + +set(CMAKE_CXX_COMPILER_ID_RUN 1) +set(CMAKE_CXX_SOURCE_FILE_EXTENSIONS C;M;c++;cc;cpp;cxx;m;mm;mpp;CPP;ixx;cppm) +set(CMAKE_CXX_IGNORE_EXTENSIONS inl;h;hpp;HPP;H;o;O;obj;OBJ;def;DEF;rc;RC) + +foreach (lang C OBJC OBJCXX) + if (CMAKE_${lang}_COMPILER_ID_RUN) + foreach(extension IN LISTS CMAKE_${lang}_SOURCE_FILE_EXTENSIONS) + list(REMOVE_ITEM CMAKE_CXX_SOURCE_FILE_EXTENSIONS ${extension}) + endforeach() + endif() +endforeach() + +set(CMAKE_CXX_LINKER_PREFERENCE 30) +set(CMAKE_CXX_LINKER_PREFERENCE_PROPAGATES 1) + +# Save compiler ABI information. +set(CMAKE_CXX_SIZEOF_DATA_PTR "4") +set(CMAKE_CXX_COMPILER_ABI "ELF") +set(CMAKE_CXX_BYTE_ORDER "LITTLE_ENDIAN") +set(CMAKE_CXX_LIBRARY_ARCHITECTURE "") + +if(CMAKE_CXX_SIZEOF_DATA_PTR) + set(CMAKE_SIZEOF_VOID_P "${CMAKE_CXX_SIZEOF_DATA_PTR}") +endif() + +if(CMAKE_CXX_COMPILER_ABI) + set(CMAKE_INTERNAL_PLATFORM_ABI "${CMAKE_CXX_COMPILER_ABI}") +endif() + +if(CMAKE_CXX_LIBRARY_ARCHITECTURE) + set(CMAKE_LIBRARY_ARCHITECTURE "") +endif() + +set(CMAKE_CXX_CL_SHOWINCLUDES_PREFIX "") +if(CMAKE_CXX_CL_SHOWINCLUDES_PREFIX) + set(CMAKE_CL_SHOWINCLUDES_PREFIX "${CMAKE_CXX_CL_SHOWINCLUDES_PREFIX}") +endif() + + + + + +set(CMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES "/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/toolchains/llvm/prebuilt/darwin-x86_64/sysroot/usr/include/c++/v1;/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/toolchains/llvm/prebuilt/darwin-x86_64/lib/clang/17/include;/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/toolchains/llvm/prebuilt/darwin-x86_64/sysroot/usr/include/arm-linux-androideabi;/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/toolchains/llvm/prebuilt/darwin-x86_64/sysroot/usr/include") +set(CMAKE_CXX_IMPLICIT_LINK_LIBRARIES "c++;m;-l:libunwind.a;dl;c;-l:libunwind.a;dl") +set(CMAKE_CXX_IMPLICIT_LINK_DIRECTORIES "/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/toolchains/llvm/prebuilt/darwin-x86_64/lib/clang/17/lib/linux/arm;/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/toolchains/llvm/prebuilt/darwin-x86_64/sysroot/usr/lib/arm-linux-androideabi/21;/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/toolchains/llvm/prebuilt/darwin-x86_64/sysroot/usr/lib/arm-linux-androideabi;/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/toolchains/llvm/prebuilt/darwin-x86_64/sysroot/usr/lib") +set(CMAKE_CXX_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "") diff --git a/example/android/app/.cxx/Debug/28432r45/armeabi-v7a/CMakeFiles/3.22.1-g37088a8/CMakeDetermineCompilerABI_C.bin b/example/android/app/.cxx/Debug/28432r45/armeabi-v7a/CMakeFiles/3.22.1-g37088a8/CMakeDetermineCompilerABI_C.bin new file mode 100755 index 0000000000000000000000000000000000000000..c83e9f4f9bcf415822e612e629046b8a73ae67a1 GIT binary patch literal 5756 zcmdT|U2Ggz6}~gOYj6CsUOP#Xv}wDk+}443X1(6naf;eHwv#M!TqkvfN?InfJLB~> zyF1J5Y_L%aRfPnVC`~IQiWC&T1CoW15Tc+;R0yFw1n3J;2`8y(Nc)hYQW;vseBaDm zXYIBiwND)D>^Ved`j)WlQg5oz) z@OLXpd~%-(om>H`xGThr!?nbcev+solY%&by#8w#!h1IWE`2A$c;~p3RwL*`3285 z9M`hllaslbnaK%bVro1$IwkF9zH}1%77!g+ydsttuXKvVOKWRu*Tm8OzjrPzUP@j( zb~&9qzYinCU5N}2Ckv_n_e;0g} z`(I37xnoUNl56@U_+IJ|=T|!5FU0f9YU=sryM?&6jK(kQ!5Ust4~taftoowzf;g*w zzw7Ay_~>KerT92eCs2B|J1KG7CfwTOEnbQ))sDP(V{PpQxC8NbgQLs+E8=g@UskSt z=knw`zgl^16N%rz_PcLi&c5@qZu3^ou1l_Kf1P4Ia1XIAbI3T1NH@NnEB-a$Hk4`bKX0r# z=YSdOrzle>nFIHrWIMaStH8H~*xwiE-0l!xM?XB&!<0EsqQp4a|Cbew6wL3#+5BcCj=3&JC2)Fr9){rQ0wBB^rx7hQ$~e1BgC^pY0-c6or4N#g*2#;TUg? zzX4SdtaQdAF8%8OzJHg9&C|aPtEyFv{}S?9I`+gOXE!(|Mf@)?{FuglvB=VfRuf{2 z?3?n1T?nOi{R@t5>Qiy*`FVZZ&NqsB z=0J8Z<7W5krd#1=?LRYY2F)HulVJ~LDm5JEqbE*`K59Ii`{IN#^XT-1VF=SL7Wi{U zG^+Jdv5I_DpL1MKRFF(CEgsegb1`#%6q`nQGSR_133Vj7AP*&y{`nmhuR@Dk@%xER z7FcLphswtJM4tbY6WTPNb8O(##@qOT*y|{6?ka~DNh-0{wqL~V)MJSjE!I98+uKqM z#AjmrZi+iv=A=VgODPs z8Fj083wC}l?t>om;vXm_@qTlI0QUuk=!Qop>htap;BK)SnD>YPCxr&gJH;vZGv33% zk{GW7%rl60scyasH0({=tqHB_c(x`l1|f zu>lxv0O!p5oX~<_*72Zs?K0~NZS=%34UYk9KG4<5Xv=jh(=&yJR|1f)s<}4b4~FTw z<^p?qQ=SEodW1A9r2^V@P!m5v?R>p1c&TAZ44O1O&n@K}o(+S=oM)K%ylbD4hzVZG zeuo36S=X%CQjf2?xM@Kfo;brXcgWDC1C1o&fW` zL78t3atd;DJV5^(crWzh8;86TdKpiaUxJQTTA2MekbDP8J4>%PIS*M9^`sZT^yAzzACs>`mL%Kdc_RIIPLLmzPAJ(2(m60?gz@w9b@*|7l4QIe zLcy`ok9mFdWBh&wdspb^4-g;cqvHJ^l5p z-=SWg=ifK^3A~{h9Nk>?oVPMSNKzbv(A13BhYQg(6e;*Ir!XGB&;9V@97}o{+>pA^B!%hh&e&eE zyR*!WgWVrd6&{Mzk`~dDii+eBi9Q6W0wf9wLP8bdp@=>pic}}T6xu$d5>yebYQAq~ zu01xSp!SJtojvC}=iGDu&zOhvLT%V?2TWNO~DM5@VBKYV>0gB<+HZ zB<*^0vFX`0y;P~|)k^(@?Fx~E{To4DFK2~9$ zw}7~&2dC~6&yT!u%VG7|TR-*osj(NI+x`1vy+8it#=sc=YUzg5xr&4!=7!=LDfqh% z982z(awivE6*q^Nao8?7{bZqz#1g~_0&uHJA$g4u+YqE9Z1LAaYf~XTHd!;KaaoYym8u1pV-Cr!fwxNh$!}gmeFW&y{%f3zGY={xckF}9=9Wfq%J@t@t58epkS$%(H#eq+f zDTIa7(}7LN{ha|Z-_h@%@Z%ZczM6)e`<45h`?nYSgJ+9%nOi1cL>lt#JPEG>w}Fp> z{_)|8^8zqqy#$^CXM)%P#&)hH2fjYU{<#9)9^%XBhlhHYLgx{1jFZnQu1nZ~Sx-;z`Hz^Wd=K&?t$$!ywI#;IrA{OHI?e#G9L zDOb(2oR%FEEp4siNoAAT7VA(_VzZJ~y43FY7G8|Z@WI#rF3KM)VzqL3O#$nW_Sq7<+P;yXm4X9SCy z*a-p4+y}oq+S{RNrP$tn2gIa?klihJ^~O?+Q0Tc6%eg5b)KvvGLVg`=-|WW|+pvhi za>W(ynH{1vT-N8o?}zC@Xw^9Yj#!B&VixvZ5nCX35Q_M{_}MBFMKJ$TdB`D##;Wzh30ux+pz0a#jFe8%DubMtyGznKCbe#o)raUk{mhv2pU{`>bk zwMM0CyW{%`TDj2(`VhI^gmJ8x8~%u%ZRpX2Q=YHcb+4(JfT zY-6|9&#PgKA2~99)VQ~BY|@xMdU(<>gz3(fS$8lP(uRSKt}X@qPKx<@voc#p;%m-1 zt|w~9T9_X%$mzUe;yA6!BdHF46Upx$x%2m>(xMmJH!fa*6<_7=r#i{Fy+O+QdBY+8 zgi9G&$2m6eN#p(d)?m-$cs-~b;s`w*TiitbJC%$ zrILuXv}-ZvvuYX>fne)OR1p{Nu5`f4cS}%G{=NDK;AtpSkrFq6Zx50sq?G@i*&o5Y z?+-_CKQO=XPlGFna3}Z+tBtCn0Q{W@W-84f3k5|L4?s8@vCjc7MeuRRY@hvB)s+8U z8U@aTm~Hco!!9Z6HDVE57LNBB08VUBQsOxXKZxM(0W;a-N*4;g!hZzLM9yy*;@^QY zS7$=}cW|a=TwlJOGk$(G-ewU8el>!5(=0`B8}K_3+zEU+f|<2Hh~Q^|`9AZD+9P^^ zxqdts-RQ-2z_ReWY9}ziQy8KP9(#cK%@W`)F+u-ToED!4=C{m)P&3}cw1`u}set8eSza$~>6$zPAoU1o)+%MR z>!2ong4(5KQ}E-7c{OO#^gOpxn)hrNEGACFER|gQq(sbPQuaF>IL)|b&6avRRv}{w zJhKEo2fsiHxG1|`$wtoB%A(KIvchP3rt2Ag7VNXML27dX(vaYc8{v!_!HoMVe;#}Z zf;YDM>1T-CihmTCI)A+MzgfCcQ4s(XP*Z8W7YY;;ZAGYgW zxrSjiozPPl6Gx}U4;A*yjsHJz9upE%S@eH6vZ_2ro1kb7{g|s{u9SZAs59?MKjueL zpL7D3et2{G?;p0yw-AXsw!=2*$K1g85Z^EKxza^`uD<-#e7~<{@PuN8w0k@HuDf_-5;z8y&! z$kBLw+s%Ver|~#=^nXgs(=5{eG02R!55%`7iStD}(xT59@0%d@f$j2sAeA7?LOl!b z7y5B-nU_hIAv;GyQC91`@q8Y0cC^BB z0{iCBkM~0QDt^C$568fG{{IBw$8m73SlBN6@mmnb;kS#oc@mXm-=X&X$a!x{Kfd96 z;m3EpEOH!wgo1Gy&;MT~{G^S(Qhoz6<7KHt;r}+-7g=Z{{S|~*4XM8ZzuP4Mrw_{& zkd%q@IDAi12#d6}K#(#`=izsKL?OlQ&`53qR-%OFrn@$L>24 & 0x00FF) +# define COMPILER_VERSION_MINOR HEX(__CODEGEARC_VERSION__>>16 & 0x00FF) +# define COMPILER_VERSION_PATCH DEC(__CODEGEARC_VERSION__ & 0xFFFF) + +#elif defined(__BORLANDC__) +# define COMPILER_ID "Borland" + /* __BORLANDC__ = 0xVRR */ +# define COMPILER_VERSION_MAJOR HEX(__BORLANDC__>>8) +# define COMPILER_VERSION_MINOR HEX(__BORLANDC__ & 0xFF) + +#elif defined(__WATCOMC__) && __WATCOMC__ < 1200 +# define COMPILER_ID "Watcom" + /* __WATCOMC__ = VVRR */ +# define COMPILER_VERSION_MAJOR DEC(__WATCOMC__ / 100) +# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10) +# if (__WATCOMC__ % 10) > 0 +# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10) +# endif + +#elif defined(__WATCOMC__) +# define COMPILER_ID "OpenWatcom" + /* __WATCOMC__ = VVRP + 1100 */ +# define COMPILER_VERSION_MAJOR DEC((__WATCOMC__ - 1100) / 100) +# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10) +# if (__WATCOMC__ % 10) > 0 +# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10) +# endif + +#elif defined(__SUNPRO_C) +# define COMPILER_ID "SunPro" +# if __SUNPRO_C >= 0x5100 + /* __SUNPRO_C = 0xVRRP */ +# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_C>>12) +# define COMPILER_VERSION_MINOR HEX(__SUNPRO_C>>4 & 0xFF) +# define COMPILER_VERSION_PATCH HEX(__SUNPRO_C & 0xF) +# else + /* __SUNPRO_CC = 0xVRP */ +# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_C>>8) +# define COMPILER_VERSION_MINOR HEX(__SUNPRO_C>>4 & 0xF) +# define COMPILER_VERSION_PATCH HEX(__SUNPRO_C & 0xF) +# endif + +#elif defined(__HP_cc) +# define COMPILER_ID "HP" + /* __HP_cc = VVRRPP */ +# define COMPILER_VERSION_MAJOR DEC(__HP_cc/10000) +# define COMPILER_VERSION_MINOR DEC(__HP_cc/100 % 100) +# define COMPILER_VERSION_PATCH DEC(__HP_cc % 100) + +#elif defined(__DECC) +# define COMPILER_ID "Compaq" + /* __DECC_VER = VVRRTPPPP */ +# define COMPILER_VERSION_MAJOR DEC(__DECC_VER/10000000) +# define COMPILER_VERSION_MINOR DEC(__DECC_VER/100000 % 100) +# define COMPILER_VERSION_PATCH DEC(__DECC_VER % 10000) + +#elif defined(__IBMC__) && defined(__COMPILER_VER__) +# define COMPILER_ID "zOS" + /* __IBMC__ = VRP */ +# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100) +# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10) +# define COMPILER_VERSION_PATCH DEC(__IBMC__ % 10) + +#elif defined(__ibmxl__) && defined(__clang__) +# define COMPILER_ID "XLClang" +# define COMPILER_VERSION_MAJOR DEC(__ibmxl_version__) +# define COMPILER_VERSION_MINOR DEC(__ibmxl_release__) +# define COMPILER_VERSION_PATCH DEC(__ibmxl_modification__) +# define COMPILER_VERSION_TWEAK DEC(__ibmxl_ptf_fix_level__) + + +#elif defined(__IBMC__) && !defined(__COMPILER_VER__) && __IBMC__ >= 800 +# define COMPILER_ID "XL" + /* __IBMC__ = VRP */ +# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100) +# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10) +# define COMPILER_VERSION_PATCH DEC(__IBMC__ % 10) + +#elif defined(__IBMC__) && !defined(__COMPILER_VER__) && __IBMC__ < 800 +# define COMPILER_ID "VisualAge" + /* __IBMC__ = VRP */ +# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100) +# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10) +# define COMPILER_VERSION_PATCH DEC(__IBMC__ % 10) + +#elif defined(__NVCOMPILER) +# define COMPILER_ID "NVHPC" +# define COMPILER_VERSION_MAJOR DEC(__NVCOMPILER_MAJOR__) +# define COMPILER_VERSION_MINOR DEC(__NVCOMPILER_MINOR__) +# if defined(__NVCOMPILER_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__NVCOMPILER_PATCHLEVEL__) +# endif + +#elif defined(__PGI) +# define COMPILER_ID "PGI" +# define COMPILER_VERSION_MAJOR DEC(__PGIC__) +# define COMPILER_VERSION_MINOR DEC(__PGIC_MINOR__) +# if defined(__PGIC_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__PGIC_PATCHLEVEL__) +# endif + +#elif defined(_CRAYC) +# define COMPILER_ID "Cray" +# define COMPILER_VERSION_MAJOR DEC(_RELEASE_MAJOR) +# define COMPILER_VERSION_MINOR DEC(_RELEASE_MINOR) + +#elif defined(__TI_COMPILER_VERSION__) +# define COMPILER_ID "TI" + /* __TI_COMPILER_VERSION__ = VVVRRRPPP */ +# define COMPILER_VERSION_MAJOR DEC(__TI_COMPILER_VERSION__/1000000) +# define COMPILER_VERSION_MINOR DEC(__TI_COMPILER_VERSION__/1000 % 1000) +# define COMPILER_VERSION_PATCH DEC(__TI_COMPILER_VERSION__ % 1000) + +#elif defined(__CLANG_FUJITSU) +# define COMPILER_ID "FujitsuClang" +# define COMPILER_VERSION_MAJOR DEC(__FCC_major__) +# define COMPILER_VERSION_MINOR DEC(__FCC_minor__) +# define COMPILER_VERSION_PATCH DEC(__FCC_patchlevel__) +# define COMPILER_VERSION_INTERNAL_STR __clang_version__ + + +#elif defined(__FUJITSU) +# define COMPILER_ID "Fujitsu" +# if defined(__FCC_version__) +# define COMPILER_VERSION __FCC_version__ +# elif defined(__FCC_major__) +# define COMPILER_VERSION_MAJOR DEC(__FCC_major__) +# define COMPILER_VERSION_MINOR DEC(__FCC_minor__) +# define COMPILER_VERSION_PATCH DEC(__FCC_patchlevel__) +# endif +# if defined(__fcc_version) +# define COMPILER_VERSION_INTERNAL DEC(__fcc_version) +# elif defined(__FCC_VERSION) +# define COMPILER_VERSION_INTERNAL DEC(__FCC_VERSION) +# endif + + +#elif defined(__ghs__) +# define COMPILER_ID "GHS" +/* __GHS_VERSION_NUMBER = VVVVRP */ +# ifdef __GHS_VERSION_NUMBER +# define COMPILER_VERSION_MAJOR DEC(__GHS_VERSION_NUMBER / 100) +# define COMPILER_VERSION_MINOR DEC(__GHS_VERSION_NUMBER / 10 % 10) +# define COMPILER_VERSION_PATCH DEC(__GHS_VERSION_NUMBER % 10) +# endif + +#elif defined(__TINYC__) +# define COMPILER_ID "TinyCC" + +#elif defined(__BCC__) +# define COMPILER_ID "Bruce" + +#elif defined(__SCO_VERSION__) +# define COMPILER_ID "SCO" + +#elif defined(__ARMCC_VERSION) && !defined(__clang__) +# define COMPILER_ID "ARMCC" +#if __ARMCC_VERSION >= 1000000 + /* __ARMCC_VERSION = VRRPPPP */ + # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/1000000) + # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 100) + # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000) +#else + /* __ARMCC_VERSION = VRPPPP */ + # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/100000) + # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 10) + # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000) +#endif + + +#elif defined(__clang__) && defined(__apple_build_version__) +# define COMPILER_ID "AppleClang" +# if defined(_MSC_VER) +# define SIMULATE_ID "MSVC" +# endif +# define COMPILER_VERSION_MAJOR DEC(__clang_major__) +# define COMPILER_VERSION_MINOR DEC(__clang_minor__) +# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__) +# if defined(_MSC_VER) + /* _MSC_VER = VVRR */ +# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) +# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) +# endif +# define COMPILER_VERSION_TWEAK DEC(__apple_build_version__) + +#elif defined(__clang__) && defined(__ARMCOMPILER_VERSION) +# define COMPILER_ID "ARMClang" + # define COMPILER_VERSION_MAJOR DEC(__ARMCOMPILER_VERSION/1000000) + # define COMPILER_VERSION_MINOR DEC(__ARMCOMPILER_VERSION/10000 % 100) + # define COMPILER_VERSION_PATCH DEC(__ARMCOMPILER_VERSION % 10000) +# define COMPILER_VERSION_INTERNAL DEC(__ARMCOMPILER_VERSION) + +#elif defined(__clang__) +# define COMPILER_ID "Clang" +# if defined(_MSC_VER) +# define SIMULATE_ID "MSVC" +# endif +# define COMPILER_VERSION_MAJOR DEC(__clang_major__) +# define COMPILER_VERSION_MINOR DEC(__clang_minor__) +# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__) +# if defined(_MSC_VER) + /* _MSC_VER = VVRR */ +# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) +# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) +# endif + +#elif defined(__GNUC__) +# define COMPILER_ID "GNU" +# define COMPILER_VERSION_MAJOR DEC(__GNUC__) +# if defined(__GNUC_MINOR__) +# define COMPILER_VERSION_MINOR DEC(__GNUC_MINOR__) +# endif +# if defined(__GNUC_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) +# endif + +#elif defined(_MSC_VER) +# define COMPILER_ID "MSVC" + /* _MSC_VER = VVRR */ +# define COMPILER_VERSION_MAJOR DEC(_MSC_VER / 100) +# define COMPILER_VERSION_MINOR DEC(_MSC_VER % 100) +# if defined(_MSC_FULL_VER) +# if _MSC_VER >= 1400 + /* _MSC_FULL_VER = VVRRPPPPP */ +# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 100000) +# else + /* _MSC_FULL_VER = VVRRPPPP */ +# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 10000) +# endif +# endif +# if defined(_MSC_BUILD) +# define COMPILER_VERSION_TWEAK DEC(_MSC_BUILD) +# endif + +#elif defined(__VISUALDSPVERSION__) || defined(__ADSPBLACKFIN__) || defined(__ADSPTS__) || defined(__ADSP21000__) +# define COMPILER_ID "ADSP" +#if defined(__VISUALDSPVERSION__) + /* __VISUALDSPVERSION__ = 0xVVRRPP00 */ +# define COMPILER_VERSION_MAJOR HEX(__VISUALDSPVERSION__>>24) +# define COMPILER_VERSION_MINOR HEX(__VISUALDSPVERSION__>>16 & 0xFF) +# define COMPILER_VERSION_PATCH HEX(__VISUALDSPVERSION__>>8 & 0xFF) +#endif + +#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC) +# define COMPILER_ID "IAR" +# if defined(__VER__) && defined(__ICCARM__) +# define COMPILER_VERSION_MAJOR DEC((__VER__) / 1000000) +# define COMPILER_VERSION_MINOR DEC(((__VER__) / 1000) % 1000) +# define COMPILER_VERSION_PATCH DEC((__VER__) % 1000) +# define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__) +# elif defined(__VER__) && (defined(__ICCAVR__) || defined(__ICCRX__) || defined(__ICCRH850__) || defined(__ICCRL78__) || defined(__ICC430__) || defined(__ICCRISCV__) || defined(__ICCV850__) || defined(__ICC8051__) || defined(__ICCSTM8__)) +# define COMPILER_VERSION_MAJOR DEC((__VER__) / 100) +# define COMPILER_VERSION_MINOR DEC((__VER__) - (((__VER__) / 100)*100)) +# define COMPILER_VERSION_PATCH DEC(__SUBVERSION__) +# define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__) +# endif + +#elif defined(__SDCC_VERSION_MAJOR) || defined(SDCC) +# define COMPILER_ID "SDCC" +# if defined(__SDCC_VERSION_MAJOR) +# define COMPILER_VERSION_MAJOR DEC(__SDCC_VERSION_MAJOR) +# define COMPILER_VERSION_MINOR DEC(__SDCC_VERSION_MINOR) +# define COMPILER_VERSION_PATCH DEC(__SDCC_VERSION_PATCH) +# else + /* SDCC = VRP */ +# define COMPILER_VERSION_MAJOR DEC(SDCC/100) +# define COMPILER_VERSION_MINOR DEC(SDCC/10 % 10) +# define COMPILER_VERSION_PATCH DEC(SDCC % 10) +# endif + + +/* These compilers are either not known or too old to define an + identification macro. Try to identify the platform and guess that + it is the native compiler. */ +#elif defined(__hpux) || defined(__hpua) +# define COMPILER_ID "HP" + +#else /* unknown compiler */ +# define COMPILER_ID "" +#endif + +/* Construct the string literal in pieces to prevent the source from + getting matched. Store it in a pointer rather than an array + because some compilers will just produce instructions to fill the + array rather than assigning a pointer to a static array. */ +char const* info_compiler = "INFO" ":" "compiler[" COMPILER_ID "]"; +#ifdef SIMULATE_ID +char const* info_simulate = "INFO" ":" "simulate[" SIMULATE_ID "]"; +#endif + +#ifdef __QNXNTO__ +char const* qnxnto = "INFO" ":" "qnxnto[]"; +#endif + +#if defined(__CRAYXT_COMPUTE_LINUX_TARGET) +char const *info_cray = "INFO" ":" "compiler_wrapper[CrayPrgEnv]"; +#endif + +#define STRINGIFY_HELPER(X) #X +#define STRINGIFY(X) STRINGIFY_HELPER(X) + +/* Identify known platforms by name. */ +#if defined(__linux) || defined(__linux__) || defined(linux) +# define PLATFORM_ID "Linux" + +#elif defined(__MSYS__) +# define PLATFORM_ID "MSYS" + +#elif defined(__CYGWIN__) +# define PLATFORM_ID "Cygwin" + +#elif defined(__MINGW32__) +# define PLATFORM_ID "MinGW" + +#elif defined(__APPLE__) +# define PLATFORM_ID "Darwin" + +#elif defined(_WIN32) || defined(__WIN32__) || defined(WIN32) +# define PLATFORM_ID "Windows" + +#elif defined(__FreeBSD__) || defined(__FreeBSD) +# define PLATFORM_ID "FreeBSD" + +#elif defined(__NetBSD__) || defined(__NetBSD) +# define PLATFORM_ID "NetBSD" + +#elif defined(__OpenBSD__) || defined(__OPENBSD) +# define PLATFORM_ID "OpenBSD" + +#elif defined(__sun) || defined(sun) +# define PLATFORM_ID "SunOS" + +#elif defined(_AIX) || defined(__AIX) || defined(__AIX__) || defined(__aix) || defined(__aix__) +# define PLATFORM_ID "AIX" + +#elif defined(__hpux) || defined(__hpux__) +# define PLATFORM_ID "HP-UX" + +#elif defined(__HAIKU__) +# define PLATFORM_ID "Haiku" + +#elif defined(__BeOS) || defined(__BEOS__) || defined(_BEOS) +# define PLATFORM_ID "BeOS" + +#elif defined(__QNX__) || defined(__QNXNTO__) +# define PLATFORM_ID "QNX" + +#elif defined(__tru64) || defined(_tru64) || defined(__TRU64__) +# define PLATFORM_ID "Tru64" + +#elif defined(__riscos) || defined(__riscos__) +# define PLATFORM_ID "RISCos" + +#elif defined(__sinix) || defined(__sinix__) || defined(__SINIX__) +# define PLATFORM_ID "SINIX" + +#elif defined(__UNIX_SV__) +# define PLATFORM_ID "UNIX_SV" + +#elif defined(__bsdos__) +# define PLATFORM_ID "BSDOS" + +#elif defined(_MPRAS) || defined(MPRAS) +# define PLATFORM_ID "MP-RAS" + +#elif defined(__osf) || defined(__osf__) +# define PLATFORM_ID "OSF1" + +#elif defined(_SCO_SV) || defined(SCO_SV) || defined(sco_sv) +# define PLATFORM_ID "SCO_SV" + +#elif defined(__ultrix) || defined(__ultrix__) || defined(_ULTRIX) +# define PLATFORM_ID "ULTRIX" + +#elif defined(__XENIX__) || defined(_XENIX) || defined(XENIX) +# define PLATFORM_ID "Xenix" + +#elif defined(__WATCOMC__) +# if defined(__LINUX__) +# define PLATFORM_ID "Linux" + +# elif defined(__DOS__) +# define PLATFORM_ID "DOS" + +# elif defined(__OS2__) +# define PLATFORM_ID "OS2" + +# elif defined(__WINDOWS__) +# define PLATFORM_ID "Windows3x" + +# elif defined(__VXWORKS__) +# define PLATFORM_ID "VxWorks" + +# else /* unknown platform */ +# define PLATFORM_ID +# endif + +#elif defined(__INTEGRITY) +# if defined(INT_178B) +# define PLATFORM_ID "Integrity178" + +# else /* regular Integrity */ +# define PLATFORM_ID "Integrity" +# endif + +#else /* unknown platform */ +# define PLATFORM_ID + +#endif + +/* For windows compilers MSVC and Intel we can determine + the architecture of the compiler being used. This is because + the compilers do not have flags that can change the architecture, + but rather depend on which compiler is being used +*/ +#if defined(_WIN32) && defined(_MSC_VER) +# if defined(_M_IA64) +# define ARCHITECTURE_ID "IA64" + +# elif defined(_M_ARM64EC) +# define ARCHITECTURE_ID "ARM64EC" + +# elif defined(_M_X64) || defined(_M_AMD64) +# define ARCHITECTURE_ID "x64" + +# elif defined(_M_IX86) +# define ARCHITECTURE_ID "X86" + +# elif defined(_M_ARM64) +# define ARCHITECTURE_ID "ARM64" + +# elif defined(_M_ARM) +# if _M_ARM == 4 +# define ARCHITECTURE_ID "ARMV4I" +# elif _M_ARM == 5 +# define ARCHITECTURE_ID "ARMV5I" +# else +# define ARCHITECTURE_ID "ARMV" STRINGIFY(_M_ARM) +# endif + +# elif defined(_M_MIPS) +# define ARCHITECTURE_ID "MIPS" + +# elif defined(_M_SH) +# define ARCHITECTURE_ID "SHx" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#elif defined(__WATCOMC__) +# if defined(_M_I86) +# define ARCHITECTURE_ID "I86" + +# elif defined(_M_IX86) +# define ARCHITECTURE_ID "X86" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC) +# if defined(__ICCARM__) +# define ARCHITECTURE_ID "ARM" + +# elif defined(__ICCRX__) +# define ARCHITECTURE_ID "RX" + +# elif defined(__ICCRH850__) +# define ARCHITECTURE_ID "RH850" + +# elif defined(__ICCRL78__) +# define ARCHITECTURE_ID "RL78" + +# elif defined(__ICCRISCV__) +# define ARCHITECTURE_ID "RISCV" + +# elif defined(__ICCAVR__) +# define ARCHITECTURE_ID "AVR" + +# elif defined(__ICC430__) +# define ARCHITECTURE_ID "MSP430" + +# elif defined(__ICCV850__) +# define ARCHITECTURE_ID "V850" + +# elif defined(__ICC8051__) +# define ARCHITECTURE_ID "8051" + +# elif defined(__ICCSTM8__) +# define ARCHITECTURE_ID "STM8" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#elif defined(__ghs__) +# if defined(__PPC64__) +# define ARCHITECTURE_ID "PPC64" + +# elif defined(__ppc__) +# define ARCHITECTURE_ID "PPC" + +# elif defined(__ARM__) +# define ARCHITECTURE_ID "ARM" + +# elif defined(__x86_64__) +# define ARCHITECTURE_ID "x64" + +# elif defined(__i386__) +# define ARCHITECTURE_ID "X86" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#elif defined(__TI_COMPILER_VERSION__) +# if defined(__TI_ARM__) +# define ARCHITECTURE_ID "ARM" + +# elif defined(__MSP430__) +# define ARCHITECTURE_ID "MSP430" + +# elif defined(__TMS320C28XX__) +# define ARCHITECTURE_ID "TMS320C28x" + +# elif defined(__TMS320C6X__) || defined(_TMS320C6X) +# define ARCHITECTURE_ID "TMS320C6x" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#else +# define ARCHITECTURE_ID +#endif + +/* Convert integer to decimal digit literals. */ +#define DEC(n) \ + ('0' + (((n) / 10000000)%10)), \ + ('0' + (((n) / 1000000)%10)), \ + ('0' + (((n) / 100000)%10)), \ + ('0' + (((n) / 10000)%10)), \ + ('0' + (((n) / 1000)%10)), \ + ('0' + (((n) / 100)%10)), \ + ('0' + (((n) / 10)%10)), \ + ('0' + ((n) % 10)) + +/* Convert integer to hex digit literals. */ +#define HEX(n) \ + ('0' + ((n)>>28 & 0xF)), \ + ('0' + ((n)>>24 & 0xF)), \ + ('0' + ((n)>>20 & 0xF)), \ + ('0' + ((n)>>16 & 0xF)), \ + ('0' + ((n)>>12 & 0xF)), \ + ('0' + ((n)>>8 & 0xF)), \ + ('0' + ((n)>>4 & 0xF)), \ + ('0' + ((n) & 0xF)) + +/* Construct a string literal encoding the version number. */ +#ifdef COMPILER_VERSION +char const* info_version = "INFO" ":" "compiler_version[" COMPILER_VERSION "]"; + +/* Construct a string literal encoding the version number components. */ +#elif defined(COMPILER_VERSION_MAJOR) +char const info_version[] = { + 'I', 'N', 'F', 'O', ':', + 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','[', + COMPILER_VERSION_MAJOR, +# ifdef COMPILER_VERSION_MINOR + '.', COMPILER_VERSION_MINOR, +# ifdef COMPILER_VERSION_PATCH + '.', COMPILER_VERSION_PATCH, +# ifdef COMPILER_VERSION_TWEAK + '.', COMPILER_VERSION_TWEAK, +# endif +# endif +# endif + ']','\0'}; +#endif + +/* Construct a string literal encoding the internal version number. */ +#ifdef COMPILER_VERSION_INTERNAL +char const info_version_internal[] = { + 'I', 'N', 'F', 'O', ':', + 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','_', + 'i','n','t','e','r','n','a','l','[', + COMPILER_VERSION_INTERNAL,']','\0'}; +#elif defined(COMPILER_VERSION_INTERNAL_STR) +char const* info_version_internal = "INFO" ":" "compiler_version_internal[" COMPILER_VERSION_INTERNAL_STR "]"; +#endif + +/* Construct a string literal encoding the version number components. */ +#ifdef SIMULATE_VERSION_MAJOR +char const info_simulate_version[] = { + 'I', 'N', 'F', 'O', ':', + 's','i','m','u','l','a','t','e','_','v','e','r','s','i','o','n','[', + SIMULATE_VERSION_MAJOR, +# ifdef SIMULATE_VERSION_MINOR + '.', SIMULATE_VERSION_MINOR, +# ifdef SIMULATE_VERSION_PATCH + '.', SIMULATE_VERSION_PATCH, +# ifdef SIMULATE_VERSION_TWEAK + '.', SIMULATE_VERSION_TWEAK, +# endif +# endif +# endif + ']','\0'}; +#endif + +/* Construct the string literal in pieces to prevent the source from + getting matched. Store it in a pointer rather than an array + because some compilers will just produce instructions to fill the + array rather than assigning a pointer to a static array. */ +char const* info_platform = "INFO" ":" "platform[" PLATFORM_ID "]"; +char const* info_arch = "INFO" ":" "arch[" ARCHITECTURE_ID "]"; + + + +#if !defined(__STDC__) && !defined(__clang__) +# if defined(_MSC_VER) || defined(__ibmxl__) || defined(__IBMC__) +# define C_VERSION "90" +# else +# define C_VERSION +# endif +#elif __STDC_VERSION__ > 201710L +# define C_VERSION "23" +#elif __STDC_VERSION__ >= 201710L +# define C_VERSION "17" +#elif __STDC_VERSION__ >= 201000L +# define C_VERSION "11" +#elif __STDC_VERSION__ >= 199901L +# define C_VERSION "99" +#else +# define C_VERSION "90" +#endif +const char* info_language_standard_default = + "INFO" ":" "standard_default[" C_VERSION "]"; + +const char* info_language_extensions_default = "INFO" ":" "extensions_default[" +/* !defined(_MSC_VER) to exclude Clang's MSVC compatibility mode. */ +#if (defined(__clang__) || defined(__GNUC__) || \ + defined(__TI_COMPILER_VERSION__)) && \ + !defined(__STRICT_ANSI__) && !defined(_MSC_VER) + "ON" +#else + "OFF" +#endif +"]"; + +/*--------------------------------------------------------------------------*/ + +#ifdef ID_VOID_MAIN +void main() {} +#else +# if defined(__CLASSIC_C__) +int main(argc, argv) int argc; char *argv[]; +# else +int main(int argc, char* argv[]) +# endif +{ + int require = 0; + require += info_compiler[argc]; + require += info_platform[argc]; + require += info_arch[argc]; +#ifdef COMPILER_VERSION_MAJOR + require += info_version[argc]; +#endif +#ifdef COMPILER_VERSION_INTERNAL + require += info_version_internal[argc]; +#endif +#ifdef SIMULATE_ID + require += info_simulate[argc]; +#endif +#ifdef SIMULATE_VERSION_MAJOR + require += info_simulate_version[argc]; +#endif +#if defined(__CRAYXT_COMPUTE_LINUX_TARGET) + require += info_cray[argc]; +#endif + require += info_language_standard_default[argc]; + require += info_language_extensions_default[argc]; + (void)argv; + return require; +} +#endif diff --git a/example/android/app/.cxx/Debug/28432r45/armeabi-v7a/CMakeFiles/3.22.1-g37088a8/CompilerIdC/CMakeCCompilerId.o b/example/android/app/.cxx/Debug/28432r45/armeabi-v7a/CMakeFiles/3.22.1-g37088a8/CompilerIdC/CMakeCCompilerId.o new file mode 100644 index 0000000000000000000000000000000000000000..d0c9f96b4c504a63e0db9bf45bd1fee70e8f19e6 GIT binary patch literal 4160 zcmdT{Ym6J!6+ScLv7PnC`y%97a8VkT$Ikeb^=_!bE}Lvvi6kfxA=n@@_KdwIV~-h+ zw~iEAgiuvfkOHWJsQpuwszUH1LV#KoRHX6)0Yd!XCl9riiiCs^PgN=sd}n;Gch)4R ze|uN=p4WHJIrnwO`-{W3EGvpavMDr88xql4DzxaukWAB+us(D_U8an7PJLW?jLz-6 zxp#=x)bop{=&9r(I(PYyJT)Y%=f|Lt=&eK6ks+C$id|?Qp}*aO__w3qjD7$;kG>C` z+l33-11ratj~}Rd&340e{M9AbYSr(iP}z2^pyv6_)ms{^ZcivJzq+<6_)cK8Y|FRH zwo|jZZm^mw35(MUoK~mdwK@aa@nd&~F*n64uRA`&R1u#us*IX$D-qlc7W@om8P>@Mv+9NI%CNh#^Ic z;cfU4{W+9~-W2o^P-Kf$JfY|sE42j-u_G9^k$w`>l1lt8CW%A~}i(2IYN7ys_E>hH&O6C7zU6wn9(pKQSm@ zK;i?~!0w{N?aNrA zx_;F$@O;d`^W5s1)o7WnyWX5>``*1yHOScWwYm9P(az1z&KB(b*<9Y)U(L=J=l9nN zl|t63It4pln9W~9OGmBK&eD>2i7U2ICG%tl@58j~cy$fSJmgioO{W!f%$nN`0>>}6 zJ-1OkQ+8VQM$0jsp4Du-j?B@t+HKRQ_Ilq zWxV~4SupZ>BR5kol(KVk)||PK$`WB^K9$RhCr&KhS-x%MuEXWq@4WSJxlD~#%`40D z(U-*5^#xf(`Vv=F{x}(N3>BTO=HTqGNDe!E>pJAc5R2UQ`x0nrR>ASAIFSu z(PAh)%GvbjR>-WAjo;W!>2dl4Xe_Lx_;UR>y_G;PozRtw-M?_Yt}@Xcjw^a%ZJw?ZY!QRPV?)HH?qp zI43Duj6VBT@=P`S{W4-_jSo2(fWlf6krD%*8I4fIBTb{rBNE$p4as}x6KFUj@9QKG zPYMJV{s~IbH=E=X?G^d;?OW*;Vdro01j^uToA6`!CDCtv{6x4G4PUGt)Y@pj>T5XU z2Ut!MJ;Zd3=vPd|!CxC58;Z9MCE5>Bd_PIW0N12qdnN_tolv(>xC5-ef@S#4GKJqo zf#cs6Y(FmODW=Hxw2(P(6?s0+6!Un$82>a=1btrU|1R|JFva>l5c*Grp7&M7I!Cad z>}NMq_?c#kboKjI#y3Pf+|+AT>#}hbhk!lnk3IX4$G#d}p1E09A;% z%5(K4!*^W6wgSrti{GGBs~+fj=B>P;2|X!#p_; z;Jl5bWDO2M?Az%z>|VGKBdnjHf!7rgH>MA&w$bte$2fBA!LwgHm$1!2kU6k|ZQQ;_XI{p2A;?&4m;C48qj8^$#6<}i#JvLZqyG4( zqVy5D+N$#dnUrOc{>i~L1~QG{s=xA_btTz4|JT*W$1Dpd_Q@*e0t|`fZq)H zW0C)@h~j>O%lQ}RWMdn5uGLIsJ0>5LP)M5(8KK%y+)t$dDseXr`FjNZrXx6cCk_G^ zUGHlU#)0GY@)upMH$UX>1^D|@#Gj074EcK({;-9iKmLA5fA<0>-v+xmh40R|h{6Bx IFpl&14g*PJ3;+NC literal 0 HcmV?d00001 diff --git a/example/android/app/.cxx/Debug/28432r45/armeabi-v7a/CMakeFiles/3.22.1-g37088a8/CompilerIdCXX/CMakeCXXCompilerId.cpp b/example/android/app/.cxx/Debug/28432r45/armeabi-v7a/CMakeFiles/3.22.1-g37088a8/CompilerIdCXX/CMakeCXXCompilerId.cpp new file mode 100644 index 0000000..25c62a8 --- /dev/null +++ b/example/android/app/.cxx/Debug/28432r45/armeabi-v7a/CMakeFiles/3.22.1-g37088a8/CompilerIdCXX/CMakeCXXCompilerId.cpp @@ -0,0 +1,791 @@ +/* This source file must have a .cpp extension so that all C++ compilers + recognize the extension without flags. Borland does not know .cxx for + example. */ +#ifndef __cplusplus +# error "A C compiler has been selected for C++." +#endif + +#if !defined(__has_include) +/* If the compiler does not have __has_include, pretend the answer is + always no. */ +# define __has_include(x) 0 +#endif + + +/* Version number components: V=Version, R=Revision, P=Patch + Version date components: YYYY=Year, MM=Month, DD=Day */ + +#if defined(__COMO__) +# define COMPILER_ID "Comeau" + /* __COMO_VERSION__ = VRR */ +# define COMPILER_VERSION_MAJOR DEC(__COMO_VERSION__ / 100) +# define COMPILER_VERSION_MINOR DEC(__COMO_VERSION__ % 100) + +#elif defined(__INTEL_COMPILER) || defined(__ICC) +# define COMPILER_ID "Intel" +# if defined(_MSC_VER) +# define SIMULATE_ID "MSVC" +# endif +# if defined(__GNUC__) +# define SIMULATE_ID "GNU" +# endif + /* __INTEL_COMPILER = VRP prior to 2021, and then VVVV for 2021 and later, + except that a few beta releases use the old format with V=2021. */ +# if __INTEL_COMPILER < 2021 || __INTEL_COMPILER == 202110 || __INTEL_COMPILER == 202111 +# define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER/100) +# define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER/10 % 10) +# if defined(__INTEL_COMPILER_UPDATE) +# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER_UPDATE) +# else +# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER % 10) +# endif +# else +# define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER) +# define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER_UPDATE) + /* The third version component from --version is an update index, + but no macro is provided for it. */ +# define COMPILER_VERSION_PATCH DEC(0) +# endif +# if defined(__INTEL_COMPILER_BUILD_DATE) + /* __INTEL_COMPILER_BUILD_DATE = YYYYMMDD */ +# define COMPILER_VERSION_TWEAK DEC(__INTEL_COMPILER_BUILD_DATE) +# endif +# if defined(_MSC_VER) + /* _MSC_VER = VVRR */ +# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) +# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) +# endif +# if defined(__GNUC__) +# define SIMULATE_VERSION_MAJOR DEC(__GNUC__) +# elif defined(__GNUG__) +# define SIMULATE_VERSION_MAJOR DEC(__GNUG__) +# endif +# if defined(__GNUC_MINOR__) +# define SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__) +# endif +# if defined(__GNUC_PATCHLEVEL__) +# define SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) +# endif + +#elif (defined(__clang__) && defined(__INTEL_CLANG_COMPILER)) || defined(__INTEL_LLVM_COMPILER) +# define COMPILER_ID "IntelLLVM" +#if defined(_MSC_VER) +# define SIMULATE_ID "MSVC" +#endif +#if defined(__GNUC__) +# define SIMULATE_ID "GNU" +#endif +/* __INTEL_LLVM_COMPILER = VVVVRP prior to 2021.2.0, VVVVRRPP for 2021.2.0 and + * later. Look for 6 digit vs. 8 digit version number to decide encoding. + * VVVV is no smaller than the current year when a version is released. + */ +#if __INTEL_LLVM_COMPILER < 1000000L +# define COMPILER_VERSION_MAJOR DEC(__INTEL_LLVM_COMPILER/100) +# define COMPILER_VERSION_MINOR DEC(__INTEL_LLVM_COMPILER/10 % 10) +# define COMPILER_VERSION_PATCH DEC(__INTEL_LLVM_COMPILER % 10) +#else +# define COMPILER_VERSION_MAJOR DEC(__INTEL_LLVM_COMPILER/10000) +# define COMPILER_VERSION_MINOR DEC(__INTEL_LLVM_COMPILER/100 % 100) +# define COMPILER_VERSION_PATCH DEC(__INTEL_LLVM_COMPILER % 100) +#endif +#if defined(_MSC_VER) + /* _MSC_VER = VVRR */ +# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) +# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) +#endif +#if defined(__GNUC__) +# define SIMULATE_VERSION_MAJOR DEC(__GNUC__) +#elif defined(__GNUG__) +# define SIMULATE_VERSION_MAJOR DEC(__GNUG__) +#endif +#if defined(__GNUC_MINOR__) +# define SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__) +#endif +#if defined(__GNUC_PATCHLEVEL__) +# define SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) +#endif + +#elif defined(__PATHCC__) +# define COMPILER_ID "PathScale" +# define COMPILER_VERSION_MAJOR DEC(__PATHCC__) +# define COMPILER_VERSION_MINOR DEC(__PATHCC_MINOR__) +# if defined(__PATHCC_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__PATHCC_PATCHLEVEL__) +# endif + +#elif defined(__BORLANDC__) && defined(__CODEGEARC_VERSION__) +# define COMPILER_ID "Embarcadero" +# define COMPILER_VERSION_MAJOR HEX(__CODEGEARC_VERSION__>>24 & 0x00FF) +# define COMPILER_VERSION_MINOR HEX(__CODEGEARC_VERSION__>>16 & 0x00FF) +# define COMPILER_VERSION_PATCH DEC(__CODEGEARC_VERSION__ & 0xFFFF) + +#elif defined(__BORLANDC__) +# define COMPILER_ID "Borland" + /* __BORLANDC__ = 0xVRR */ +# define COMPILER_VERSION_MAJOR HEX(__BORLANDC__>>8) +# define COMPILER_VERSION_MINOR HEX(__BORLANDC__ & 0xFF) + +#elif defined(__WATCOMC__) && __WATCOMC__ < 1200 +# define COMPILER_ID "Watcom" + /* __WATCOMC__ = VVRR */ +# define COMPILER_VERSION_MAJOR DEC(__WATCOMC__ / 100) +# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10) +# if (__WATCOMC__ % 10) > 0 +# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10) +# endif + +#elif defined(__WATCOMC__) +# define COMPILER_ID "OpenWatcom" + /* __WATCOMC__ = VVRP + 1100 */ +# define COMPILER_VERSION_MAJOR DEC((__WATCOMC__ - 1100) / 100) +# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10) +# if (__WATCOMC__ % 10) > 0 +# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10) +# endif + +#elif defined(__SUNPRO_CC) +# define COMPILER_ID "SunPro" +# if __SUNPRO_CC >= 0x5100 + /* __SUNPRO_CC = 0xVRRP */ +# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_CC>>12) +# define COMPILER_VERSION_MINOR HEX(__SUNPRO_CC>>4 & 0xFF) +# define COMPILER_VERSION_PATCH HEX(__SUNPRO_CC & 0xF) +# else + /* __SUNPRO_CC = 0xVRP */ +# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_CC>>8) +# define COMPILER_VERSION_MINOR HEX(__SUNPRO_CC>>4 & 0xF) +# define COMPILER_VERSION_PATCH HEX(__SUNPRO_CC & 0xF) +# endif + +#elif defined(__HP_aCC) +# define COMPILER_ID "HP" + /* __HP_aCC = VVRRPP */ +# define COMPILER_VERSION_MAJOR DEC(__HP_aCC/10000) +# define COMPILER_VERSION_MINOR DEC(__HP_aCC/100 % 100) +# define COMPILER_VERSION_PATCH DEC(__HP_aCC % 100) + +#elif defined(__DECCXX) +# define COMPILER_ID "Compaq" + /* __DECCXX_VER = VVRRTPPPP */ +# define COMPILER_VERSION_MAJOR DEC(__DECCXX_VER/10000000) +# define COMPILER_VERSION_MINOR DEC(__DECCXX_VER/100000 % 100) +# define COMPILER_VERSION_PATCH DEC(__DECCXX_VER % 10000) + +#elif defined(__IBMCPP__) && defined(__COMPILER_VER__) +# define COMPILER_ID "zOS" + /* __IBMCPP__ = VRP */ +# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100) +# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10) +# define COMPILER_VERSION_PATCH DEC(__IBMCPP__ % 10) + +#elif defined(__ibmxl__) && defined(__clang__) +# define COMPILER_ID "XLClang" +# define COMPILER_VERSION_MAJOR DEC(__ibmxl_version__) +# define COMPILER_VERSION_MINOR DEC(__ibmxl_release__) +# define COMPILER_VERSION_PATCH DEC(__ibmxl_modification__) +# define COMPILER_VERSION_TWEAK DEC(__ibmxl_ptf_fix_level__) + + +#elif defined(__IBMCPP__) && !defined(__COMPILER_VER__) && __IBMCPP__ >= 800 +# define COMPILER_ID "XL" + /* __IBMCPP__ = VRP */ +# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100) +# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10) +# define COMPILER_VERSION_PATCH DEC(__IBMCPP__ % 10) + +#elif defined(__IBMCPP__) && !defined(__COMPILER_VER__) && __IBMCPP__ < 800 +# define COMPILER_ID "VisualAge" + /* __IBMCPP__ = VRP */ +# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100) +# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10) +# define COMPILER_VERSION_PATCH DEC(__IBMCPP__ % 10) + +#elif defined(__NVCOMPILER) +# define COMPILER_ID "NVHPC" +# define COMPILER_VERSION_MAJOR DEC(__NVCOMPILER_MAJOR__) +# define COMPILER_VERSION_MINOR DEC(__NVCOMPILER_MINOR__) +# if defined(__NVCOMPILER_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__NVCOMPILER_PATCHLEVEL__) +# endif + +#elif defined(__PGI) +# define COMPILER_ID "PGI" +# define COMPILER_VERSION_MAJOR DEC(__PGIC__) +# define COMPILER_VERSION_MINOR DEC(__PGIC_MINOR__) +# if defined(__PGIC_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__PGIC_PATCHLEVEL__) +# endif + +#elif defined(_CRAYC) +# define COMPILER_ID "Cray" +# define COMPILER_VERSION_MAJOR DEC(_RELEASE_MAJOR) +# define COMPILER_VERSION_MINOR DEC(_RELEASE_MINOR) + +#elif defined(__TI_COMPILER_VERSION__) +# define COMPILER_ID "TI" + /* __TI_COMPILER_VERSION__ = VVVRRRPPP */ +# define COMPILER_VERSION_MAJOR DEC(__TI_COMPILER_VERSION__/1000000) +# define COMPILER_VERSION_MINOR DEC(__TI_COMPILER_VERSION__/1000 % 1000) +# define COMPILER_VERSION_PATCH DEC(__TI_COMPILER_VERSION__ % 1000) + +#elif defined(__CLANG_FUJITSU) +# define COMPILER_ID "FujitsuClang" +# define COMPILER_VERSION_MAJOR DEC(__FCC_major__) +# define COMPILER_VERSION_MINOR DEC(__FCC_minor__) +# define COMPILER_VERSION_PATCH DEC(__FCC_patchlevel__) +# define COMPILER_VERSION_INTERNAL_STR __clang_version__ + + +#elif defined(__FUJITSU) +# define COMPILER_ID "Fujitsu" +# if defined(__FCC_version__) +# define COMPILER_VERSION __FCC_version__ +# elif defined(__FCC_major__) +# define COMPILER_VERSION_MAJOR DEC(__FCC_major__) +# define COMPILER_VERSION_MINOR DEC(__FCC_minor__) +# define COMPILER_VERSION_PATCH DEC(__FCC_patchlevel__) +# endif +# if defined(__fcc_version) +# define COMPILER_VERSION_INTERNAL DEC(__fcc_version) +# elif defined(__FCC_VERSION) +# define COMPILER_VERSION_INTERNAL DEC(__FCC_VERSION) +# endif + + +#elif defined(__ghs__) +# define COMPILER_ID "GHS" +/* __GHS_VERSION_NUMBER = VVVVRP */ +# ifdef __GHS_VERSION_NUMBER +# define COMPILER_VERSION_MAJOR DEC(__GHS_VERSION_NUMBER / 100) +# define COMPILER_VERSION_MINOR DEC(__GHS_VERSION_NUMBER / 10 % 10) +# define COMPILER_VERSION_PATCH DEC(__GHS_VERSION_NUMBER % 10) +# endif + +#elif defined(__SCO_VERSION__) +# define COMPILER_ID "SCO" + +#elif defined(__ARMCC_VERSION) && !defined(__clang__) +# define COMPILER_ID "ARMCC" +#if __ARMCC_VERSION >= 1000000 + /* __ARMCC_VERSION = VRRPPPP */ + # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/1000000) + # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 100) + # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000) +#else + /* __ARMCC_VERSION = VRPPPP */ + # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/100000) + # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 10) + # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000) +#endif + + +#elif defined(__clang__) && defined(__apple_build_version__) +# define COMPILER_ID "AppleClang" +# if defined(_MSC_VER) +# define SIMULATE_ID "MSVC" +# endif +# define COMPILER_VERSION_MAJOR DEC(__clang_major__) +# define COMPILER_VERSION_MINOR DEC(__clang_minor__) +# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__) +# if defined(_MSC_VER) + /* _MSC_VER = VVRR */ +# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) +# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) +# endif +# define COMPILER_VERSION_TWEAK DEC(__apple_build_version__) + +#elif defined(__clang__) && defined(__ARMCOMPILER_VERSION) +# define COMPILER_ID "ARMClang" + # define COMPILER_VERSION_MAJOR DEC(__ARMCOMPILER_VERSION/1000000) + # define COMPILER_VERSION_MINOR DEC(__ARMCOMPILER_VERSION/10000 % 100) + # define COMPILER_VERSION_PATCH DEC(__ARMCOMPILER_VERSION % 10000) +# define COMPILER_VERSION_INTERNAL DEC(__ARMCOMPILER_VERSION) + +#elif defined(__clang__) +# define COMPILER_ID "Clang" +# if defined(_MSC_VER) +# define SIMULATE_ID "MSVC" +# endif +# define COMPILER_VERSION_MAJOR DEC(__clang_major__) +# define COMPILER_VERSION_MINOR DEC(__clang_minor__) +# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__) +# if defined(_MSC_VER) + /* _MSC_VER = VVRR */ +# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) +# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) +# endif + +#elif defined(__GNUC__) || defined(__GNUG__) +# define COMPILER_ID "GNU" +# if defined(__GNUC__) +# define COMPILER_VERSION_MAJOR DEC(__GNUC__) +# else +# define COMPILER_VERSION_MAJOR DEC(__GNUG__) +# endif +# if defined(__GNUC_MINOR__) +# define COMPILER_VERSION_MINOR DEC(__GNUC_MINOR__) +# endif +# if defined(__GNUC_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) +# endif + +#elif defined(_MSC_VER) +# define COMPILER_ID "MSVC" + /* _MSC_VER = VVRR */ +# define COMPILER_VERSION_MAJOR DEC(_MSC_VER / 100) +# define COMPILER_VERSION_MINOR DEC(_MSC_VER % 100) +# if defined(_MSC_FULL_VER) +# if _MSC_VER >= 1400 + /* _MSC_FULL_VER = VVRRPPPPP */ +# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 100000) +# else + /* _MSC_FULL_VER = VVRRPPPP */ +# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 10000) +# endif +# endif +# if defined(_MSC_BUILD) +# define COMPILER_VERSION_TWEAK DEC(_MSC_BUILD) +# endif + +#elif defined(__VISUALDSPVERSION__) || defined(__ADSPBLACKFIN__) || defined(__ADSPTS__) || defined(__ADSP21000__) +# define COMPILER_ID "ADSP" +#if defined(__VISUALDSPVERSION__) + /* __VISUALDSPVERSION__ = 0xVVRRPP00 */ +# define COMPILER_VERSION_MAJOR HEX(__VISUALDSPVERSION__>>24) +# define COMPILER_VERSION_MINOR HEX(__VISUALDSPVERSION__>>16 & 0xFF) +# define COMPILER_VERSION_PATCH HEX(__VISUALDSPVERSION__>>8 & 0xFF) +#endif + +#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC) +# define COMPILER_ID "IAR" +# if defined(__VER__) && defined(__ICCARM__) +# define COMPILER_VERSION_MAJOR DEC((__VER__) / 1000000) +# define COMPILER_VERSION_MINOR DEC(((__VER__) / 1000) % 1000) +# define COMPILER_VERSION_PATCH DEC((__VER__) % 1000) +# define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__) +# elif defined(__VER__) && (defined(__ICCAVR__) || defined(__ICCRX__) || defined(__ICCRH850__) || defined(__ICCRL78__) || defined(__ICC430__) || defined(__ICCRISCV__) || defined(__ICCV850__) || defined(__ICC8051__) || defined(__ICCSTM8__)) +# define COMPILER_VERSION_MAJOR DEC((__VER__) / 100) +# define COMPILER_VERSION_MINOR DEC((__VER__) - (((__VER__) / 100)*100)) +# define COMPILER_VERSION_PATCH DEC(__SUBVERSION__) +# define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__) +# endif + + +/* These compilers are either not known or too old to define an + identification macro. Try to identify the platform and guess that + it is the native compiler. */ +#elif defined(__hpux) || defined(__hpua) +# define COMPILER_ID "HP" + +#else /* unknown compiler */ +# define COMPILER_ID "" +#endif + +/* Construct the string literal in pieces to prevent the source from + getting matched. Store it in a pointer rather than an array + because some compilers will just produce instructions to fill the + array rather than assigning a pointer to a static array. */ +char const* info_compiler = "INFO" ":" "compiler[" COMPILER_ID "]"; +#ifdef SIMULATE_ID +char const* info_simulate = "INFO" ":" "simulate[" SIMULATE_ID "]"; +#endif + +#ifdef __QNXNTO__ +char const* qnxnto = "INFO" ":" "qnxnto[]"; +#endif + +#if defined(__CRAYXT_COMPUTE_LINUX_TARGET) +char const *info_cray = "INFO" ":" "compiler_wrapper[CrayPrgEnv]"; +#endif + +#define STRINGIFY_HELPER(X) #X +#define STRINGIFY(X) STRINGIFY_HELPER(X) + +/* Identify known platforms by name. */ +#if defined(__linux) || defined(__linux__) || defined(linux) +# define PLATFORM_ID "Linux" + +#elif defined(__MSYS__) +# define PLATFORM_ID "MSYS" + +#elif defined(__CYGWIN__) +# define PLATFORM_ID "Cygwin" + +#elif defined(__MINGW32__) +# define PLATFORM_ID "MinGW" + +#elif defined(__APPLE__) +# define PLATFORM_ID "Darwin" + +#elif defined(_WIN32) || defined(__WIN32__) || defined(WIN32) +# define PLATFORM_ID "Windows" + +#elif defined(__FreeBSD__) || defined(__FreeBSD) +# define PLATFORM_ID "FreeBSD" + +#elif defined(__NetBSD__) || defined(__NetBSD) +# define PLATFORM_ID "NetBSD" + +#elif defined(__OpenBSD__) || defined(__OPENBSD) +# define PLATFORM_ID "OpenBSD" + +#elif defined(__sun) || defined(sun) +# define PLATFORM_ID "SunOS" + +#elif defined(_AIX) || defined(__AIX) || defined(__AIX__) || defined(__aix) || defined(__aix__) +# define PLATFORM_ID "AIX" + +#elif defined(__hpux) || defined(__hpux__) +# define PLATFORM_ID "HP-UX" + +#elif defined(__HAIKU__) +# define PLATFORM_ID "Haiku" + +#elif defined(__BeOS) || defined(__BEOS__) || defined(_BEOS) +# define PLATFORM_ID "BeOS" + +#elif defined(__QNX__) || defined(__QNXNTO__) +# define PLATFORM_ID "QNX" + +#elif defined(__tru64) || defined(_tru64) || defined(__TRU64__) +# define PLATFORM_ID "Tru64" + +#elif defined(__riscos) || defined(__riscos__) +# define PLATFORM_ID "RISCos" + +#elif defined(__sinix) || defined(__sinix__) || defined(__SINIX__) +# define PLATFORM_ID "SINIX" + +#elif defined(__UNIX_SV__) +# define PLATFORM_ID "UNIX_SV" + +#elif defined(__bsdos__) +# define PLATFORM_ID "BSDOS" + +#elif defined(_MPRAS) || defined(MPRAS) +# define PLATFORM_ID "MP-RAS" + +#elif defined(__osf) || defined(__osf__) +# define PLATFORM_ID "OSF1" + +#elif defined(_SCO_SV) || defined(SCO_SV) || defined(sco_sv) +# define PLATFORM_ID "SCO_SV" + +#elif defined(__ultrix) || defined(__ultrix__) || defined(_ULTRIX) +# define PLATFORM_ID "ULTRIX" + +#elif defined(__XENIX__) || defined(_XENIX) || defined(XENIX) +# define PLATFORM_ID "Xenix" + +#elif defined(__WATCOMC__) +# if defined(__LINUX__) +# define PLATFORM_ID "Linux" + +# elif defined(__DOS__) +# define PLATFORM_ID "DOS" + +# elif defined(__OS2__) +# define PLATFORM_ID "OS2" + +# elif defined(__WINDOWS__) +# define PLATFORM_ID "Windows3x" + +# elif defined(__VXWORKS__) +# define PLATFORM_ID "VxWorks" + +# else /* unknown platform */ +# define PLATFORM_ID +# endif + +#elif defined(__INTEGRITY) +# if defined(INT_178B) +# define PLATFORM_ID "Integrity178" + +# else /* regular Integrity */ +# define PLATFORM_ID "Integrity" +# endif + +#else /* unknown platform */ +# define PLATFORM_ID + +#endif + +/* For windows compilers MSVC and Intel we can determine + the architecture of the compiler being used. This is because + the compilers do not have flags that can change the architecture, + but rather depend on which compiler is being used +*/ +#if defined(_WIN32) && defined(_MSC_VER) +# if defined(_M_IA64) +# define ARCHITECTURE_ID "IA64" + +# elif defined(_M_ARM64EC) +# define ARCHITECTURE_ID "ARM64EC" + +# elif defined(_M_X64) || defined(_M_AMD64) +# define ARCHITECTURE_ID "x64" + +# elif defined(_M_IX86) +# define ARCHITECTURE_ID "X86" + +# elif defined(_M_ARM64) +# define ARCHITECTURE_ID "ARM64" + +# elif defined(_M_ARM) +# if _M_ARM == 4 +# define ARCHITECTURE_ID "ARMV4I" +# elif _M_ARM == 5 +# define ARCHITECTURE_ID "ARMV5I" +# else +# define ARCHITECTURE_ID "ARMV" STRINGIFY(_M_ARM) +# endif + +# elif defined(_M_MIPS) +# define ARCHITECTURE_ID "MIPS" + +# elif defined(_M_SH) +# define ARCHITECTURE_ID "SHx" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#elif defined(__WATCOMC__) +# if defined(_M_I86) +# define ARCHITECTURE_ID "I86" + +# elif defined(_M_IX86) +# define ARCHITECTURE_ID "X86" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC) +# if defined(__ICCARM__) +# define ARCHITECTURE_ID "ARM" + +# elif defined(__ICCRX__) +# define ARCHITECTURE_ID "RX" + +# elif defined(__ICCRH850__) +# define ARCHITECTURE_ID "RH850" + +# elif defined(__ICCRL78__) +# define ARCHITECTURE_ID "RL78" + +# elif defined(__ICCRISCV__) +# define ARCHITECTURE_ID "RISCV" + +# elif defined(__ICCAVR__) +# define ARCHITECTURE_ID "AVR" + +# elif defined(__ICC430__) +# define ARCHITECTURE_ID "MSP430" + +# elif defined(__ICCV850__) +# define ARCHITECTURE_ID "V850" + +# elif defined(__ICC8051__) +# define ARCHITECTURE_ID "8051" + +# elif defined(__ICCSTM8__) +# define ARCHITECTURE_ID "STM8" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#elif defined(__ghs__) +# if defined(__PPC64__) +# define ARCHITECTURE_ID "PPC64" + +# elif defined(__ppc__) +# define ARCHITECTURE_ID "PPC" + +# elif defined(__ARM__) +# define ARCHITECTURE_ID "ARM" + +# elif defined(__x86_64__) +# define ARCHITECTURE_ID "x64" + +# elif defined(__i386__) +# define ARCHITECTURE_ID "X86" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#elif defined(__TI_COMPILER_VERSION__) +# if defined(__TI_ARM__) +# define ARCHITECTURE_ID "ARM" + +# elif defined(__MSP430__) +# define ARCHITECTURE_ID "MSP430" + +# elif defined(__TMS320C28XX__) +# define ARCHITECTURE_ID "TMS320C28x" + +# elif defined(__TMS320C6X__) || defined(_TMS320C6X) +# define ARCHITECTURE_ID "TMS320C6x" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#else +# define ARCHITECTURE_ID +#endif + +/* Convert integer to decimal digit literals. */ +#define DEC(n) \ + ('0' + (((n) / 10000000)%10)), \ + ('0' + (((n) / 1000000)%10)), \ + ('0' + (((n) / 100000)%10)), \ + ('0' + (((n) / 10000)%10)), \ + ('0' + (((n) / 1000)%10)), \ + ('0' + (((n) / 100)%10)), \ + ('0' + (((n) / 10)%10)), \ + ('0' + ((n) % 10)) + +/* Convert integer to hex digit literals. */ +#define HEX(n) \ + ('0' + ((n)>>28 & 0xF)), \ + ('0' + ((n)>>24 & 0xF)), \ + ('0' + ((n)>>20 & 0xF)), \ + ('0' + ((n)>>16 & 0xF)), \ + ('0' + ((n)>>12 & 0xF)), \ + ('0' + ((n)>>8 & 0xF)), \ + ('0' + ((n)>>4 & 0xF)), \ + ('0' + ((n) & 0xF)) + +/* Construct a string literal encoding the version number. */ +#ifdef COMPILER_VERSION +char const* info_version = "INFO" ":" "compiler_version[" COMPILER_VERSION "]"; + +/* Construct a string literal encoding the version number components. */ +#elif defined(COMPILER_VERSION_MAJOR) +char const info_version[] = { + 'I', 'N', 'F', 'O', ':', + 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','[', + COMPILER_VERSION_MAJOR, +# ifdef COMPILER_VERSION_MINOR + '.', COMPILER_VERSION_MINOR, +# ifdef COMPILER_VERSION_PATCH + '.', COMPILER_VERSION_PATCH, +# ifdef COMPILER_VERSION_TWEAK + '.', COMPILER_VERSION_TWEAK, +# endif +# endif +# endif + ']','\0'}; +#endif + +/* Construct a string literal encoding the internal version number. */ +#ifdef COMPILER_VERSION_INTERNAL +char const info_version_internal[] = { + 'I', 'N', 'F', 'O', ':', + 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','_', + 'i','n','t','e','r','n','a','l','[', + COMPILER_VERSION_INTERNAL,']','\0'}; +#elif defined(COMPILER_VERSION_INTERNAL_STR) +char const* info_version_internal = "INFO" ":" "compiler_version_internal[" COMPILER_VERSION_INTERNAL_STR "]"; +#endif + +/* Construct a string literal encoding the version number components. */ +#ifdef SIMULATE_VERSION_MAJOR +char const info_simulate_version[] = { + 'I', 'N', 'F', 'O', ':', + 's','i','m','u','l','a','t','e','_','v','e','r','s','i','o','n','[', + SIMULATE_VERSION_MAJOR, +# ifdef SIMULATE_VERSION_MINOR + '.', SIMULATE_VERSION_MINOR, +# ifdef SIMULATE_VERSION_PATCH + '.', SIMULATE_VERSION_PATCH, +# ifdef SIMULATE_VERSION_TWEAK + '.', SIMULATE_VERSION_TWEAK, +# endif +# endif +# endif + ']','\0'}; +#endif + +/* Construct the string literal in pieces to prevent the source from + getting matched. Store it in a pointer rather than an array + because some compilers will just produce instructions to fill the + array rather than assigning a pointer to a static array. */ +char const* info_platform = "INFO" ":" "platform[" PLATFORM_ID "]"; +char const* info_arch = "INFO" ":" "arch[" ARCHITECTURE_ID "]"; + + + +#if defined(__INTEL_COMPILER) && defined(_MSVC_LANG) && _MSVC_LANG < 201403L +# if defined(__INTEL_CXX11_MODE__) +# if defined(__cpp_aggregate_nsdmi) +# define CXX_STD 201402L +# else +# define CXX_STD 201103L +# endif +# else +# define CXX_STD 199711L +# endif +#elif defined(_MSC_VER) && defined(_MSVC_LANG) +# define CXX_STD _MSVC_LANG +#else +# define CXX_STD __cplusplus +#endif + +const char* info_language_standard_default = "INFO" ":" "standard_default[" +#if CXX_STD > 202002L + "23" +#elif CXX_STD > 201703L + "20" +#elif CXX_STD >= 201703L + "17" +#elif CXX_STD >= 201402L + "14" +#elif CXX_STD >= 201103L + "11" +#else + "98" +#endif +"]"; + +const char* info_language_extensions_default = "INFO" ":" "extensions_default[" +/* !defined(_MSC_VER) to exclude Clang's MSVC compatibility mode. */ +#if (defined(__clang__) || defined(__GNUC__) || \ + defined(__TI_COMPILER_VERSION__)) && \ + !defined(__STRICT_ANSI__) && !defined(_MSC_VER) + "ON" +#else + "OFF" +#endif +"]"; + +/*--------------------------------------------------------------------------*/ + +int main(int argc, char* argv[]) +{ + int require = 0; + require += info_compiler[argc]; + require += info_platform[argc]; +#ifdef COMPILER_VERSION_MAJOR + require += info_version[argc]; +#endif +#ifdef COMPILER_VERSION_INTERNAL + require += info_version_internal[argc]; +#endif +#ifdef SIMULATE_ID + require += info_simulate[argc]; +#endif +#ifdef SIMULATE_VERSION_MAJOR + require += info_simulate_version[argc]; +#endif +#if defined(__CRAYXT_COMPUTE_LINUX_TARGET) + require += info_cray[argc]; +#endif + require += info_language_standard_default[argc]; + require += info_language_extensions_default[argc]; + (void)argv; + return require; +} diff --git a/example/android/app/.cxx/Debug/28432r45/armeabi-v7a/CMakeFiles/3.22.1-g37088a8/CompilerIdCXX/CMakeCXXCompilerId.o b/example/android/app/.cxx/Debug/28432r45/armeabi-v7a/CMakeFiles/3.22.1-g37088a8/CompilerIdCXX/CMakeCXXCompilerId.o new file mode 100644 index 0000000000000000000000000000000000000000..1a6e32e7f4f7206d614a56101244fb491c087eec GIT binary patch literal 4196 zcmdT{O^h5@5w7l@o}Hapw|Cbz**F$VEE8=)wtN1(KQ;=x?0Ul@+lib+#9qwMGu<;g zxMzCk=~;~h5mppM96&fx1U4d4E?goGE5soYNcg}Z2Yw|Ehyy|#K#Dj7P9Oy4t2gh> z_KsP^mA86bud2RRRqvEz^+}2;$ zUZdM5J~h~&9sTawXX#F6gKp1`@%mj05~ZCQ(@u`@bSJgfeVTs!Ec|VtFQVJ%r_s6X z?HRYWE^j__t{%3#t-z1A*8{iHyiP*c4cxd9M(yp3txkU+g>F>e*_Pv8>~=gi@~WQS zaQi{LU0jkHe-QhfUMuYMM!IJ%Ul%@4;QItR$HH+P@L%2aBc8Th5Usdm4+n*U8kDY+ zHluyiI%XQy^h1wWGumvLNUzY=v2(feranhxXxi2>qST|1En&ya$1osDpCQ9~Dwl&~ zf`_@>Qy69{7;YW=#KUU#$0Ewv@H?Acoii*J@)V*elk|~*=t$)NOE2T_ zQ&=Ou;u<_k?+A|Q7m^M@5j>Ihie?%tG*$XdvC1bBYaFz=C;DJ7IM;mf{*qGaC}Dl*prm` zw!*SjU_W5&U%~NN?qg3;=3RwlEn~C4h2#vn_8lqt6BuI^DiKSGa2`awCE92H&ba$J zuXaj*DWmI2HZ?J1zXa_O{Usov)eHtx`d|2(smWU)le~Yl*72gS<>lv##d2k(R9b#A z|FLc}#J3g(F-Q=DS!f3=tGPYj%ZHtOR9RkHsx0}B=j)skd3iJQd?)Qvetsv8yS;Oc zgA`!vb~6l{f!_=JQQfzZPfi?$L4C(1|rWv^6TEIm%^m)slv`in2F%jDeh?0UCL&I>&xiQ_eqiY?dK z2>;+1U>UkrCDxQMI~u<;vRC>T_Gy zE>xet`s{^jm0F!fSXEVJ$fYfNbt9o43_ z8GSZ&TsuJz8FSjh+DZMi_LxS~m~bC0g{q`|*_t{6o@J_W>V49hrn{gi@lxP5`-gP| z$t7Mjq?C5pwG=i?BqCD!zNwiL*&mvgW1dPkOv^TNwrQoC3GR{f4kS=Ooi?n7xo`mJ zjJPa-MmlF3@84|b#}SEebnx@t1e>D2+)uD%;O`p;CK<$a!yADN`n4RFKsA~jX?S4J z#27!W$J>%<27M^O@%)ox{3)6g8#yd>vp{@HBKWPCp$yH*c!zwJo;#qo@T+3jhWcq* zJ%FDQYcp`TJAfH@y8@;rQJ3jaqL`^X_$S1Xq3Yuq<@VnwL-Y(PGSf*CJH?b&tfP4I zN}2yKQ`jvq#iUIsza;7NlDbS0C&$CMn^OKNQ^fs-l=Jzr-S0DhB7aMtW}E35&n}K)hOP+qOl!$M%r=BYU@Gd|d0e{Q#ZogK8W*_tzvQ}J~V=!@%>cVL)j6n0(brkDyD&_j|<06FKhV=qf(GpFBrp-Zyd3$5pUW z$9n$%B#C<)m-Ai7RAU`?{9F-K$?Gcdq<}HpB6PUw3I-p>eOxi13ir7&dv5_ZpTMcR zcn!D%>jlH-!0YArO|AFxn7#L4@6Cig<(J=-q`eQo@D{Q?en*tO9&m~6q8<58u^n|! HIgWn=Z8&I* literal 0 HcmV?d00001 diff --git a/example/android/app/.cxx/Debug/28432r45/armeabi-v7a/CMakeFiles/TargetDirectories.txt b/example/android/app/.cxx/Debug/28432r45/armeabi-v7a/CMakeFiles/TargetDirectories.txt new file mode 100644 index 0000000..55e9bc9 --- /dev/null +++ b/example/android/app/.cxx/Debug/28432r45/armeabi-v7a/CMakeFiles/TargetDirectories.txt @@ -0,0 +1,2 @@ +/Users/dgarcia/Documents/flutter_policy_engine/example/android/app/.cxx/Debug/28432r45/armeabi-v7a/CMakeFiles/edit_cache.dir +/Users/dgarcia/Documents/flutter_policy_engine/example/android/app/.cxx/Debug/28432r45/armeabi-v7a/CMakeFiles/rebuild_cache.dir diff --git a/example/android/app/.cxx/Debug/28432r45/armeabi-v7a/CMakeFiles/cmake.check_cache b/example/android/app/.cxx/Debug/28432r45/armeabi-v7a/CMakeFiles/cmake.check_cache new file mode 100644 index 0000000..3dccd73 --- /dev/null +++ b/example/android/app/.cxx/Debug/28432r45/armeabi-v7a/CMakeFiles/cmake.check_cache @@ -0,0 +1 @@ +# This file is generated by cmake for dependency checking of the CMakeCache.txt file diff --git a/example/android/app/.cxx/Debug/28432r45/armeabi-v7a/CMakeFiles/rules.ninja b/example/android/app/.cxx/Debug/28432r45/armeabi-v7a/CMakeFiles/rules.ninja new file mode 100644 index 0000000..623723d --- /dev/null +++ b/example/android/app/.cxx/Debug/28432r45/armeabi-v7a/CMakeFiles/rules.ninja @@ -0,0 +1,45 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Ninja" Generator, CMake Version 3.22 + +# This file contains all the rules used to get the outputs files +# built from the input files. +# It is included in the main 'build.ninja'. + +# ============================================================================= +# Project: Project +# Configurations: Debug +# ============================================================================= +# ============================================================================= + +############################################# +# Rule for running custom commands. + +rule CUSTOM_COMMAND + command = $COMMAND + description = $DESC + + +############################################# +# Rule for re-running cmake. + +rule RERUN_CMAKE + command = /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/bin/cmake --regenerate-during-build -S/Users/dgarcia/fvm/versions/3.29.3/packages/flutter_tools/gradle/src/main/groovy -B/Users/dgarcia/Documents/flutter_policy_engine/example/android/app/.cxx/Debug/28432r45/armeabi-v7a + description = Re-running CMake... + generator = 1 + + +############################################# +# Rule for cleaning all built files. + +rule CLEAN + command = /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/bin/ninja $FILE_ARG -t clean $TARGETS + description = Cleaning all built files... + + +############################################# +# Rule for printing all primary targets available. + +rule HELP + command = /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/bin/ninja -t targets + description = All primary targets available: + diff --git a/example/android/app/.cxx/Debug/28432r45/armeabi-v7a/additional_project_files.txt b/example/android/app/.cxx/Debug/28432r45/armeabi-v7a/additional_project_files.txt new file mode 100644 index 0000000..e69de29 diff --git a/example/android/app/.cxx/Debug/28432r45/armeabi-v7a/android_gradle_build.json b/example/android/app/.cxx/Debug/28432r45/armeabi-v7a/android_gradle_build.json new file mode 100644 index 0000000..900f64a --- /dev/null +++ b/example/android/app/.cxx/Debug/28432r45/armeabi-v7a/android_gradle_build.json @@ -0,0 +1,28 @@ +{ + "buildFiles": [ + "/Users/dgarcia/fvm/versions/3.29.3/packages/flutter_tools/gradle/src/main/groovy/CMakeLists.txt" + ], + "cleanCommandsComponents": [ + [ + "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/bin/ninja", + "-C", + "/Users/dgarcia/Documents/flutter_policy_engine/example/android/app/.cxx/Debug/28432r45/armeabi-v7a", + "clean" + ] + ], + "buildTargetsCommandComponents": [ + "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/bin/ninja", + "-C", + "/Users/dgarcia/Documents/flutter_policy_engine/example/android/app/.cxx/Debug/28432r45/armeabi-v7a", + "{LIST_OF_TARGETS_TO_BUILD}" + ], + "libraries": {}, + "toolchains": { + "toolchain": { + "cCompilerExecutable": "/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/toolchains/llvm/prebuilt/darwin-x86_64/bin/clang.lld", + "cppCompilerExecutable": "/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/toolchains/llvm/prebuilt/darwin-x86_64/bin/clang++.lld" + } + }, + "cFileExtensions": [], + "cppFileExtensions": [] +} \ No newline at end of file diff --git a/example/android/app/.cxx/Debug/28432r45/armeabi-v7a/android_gradle_build_mini.json b/example/android/app/.cxx/Debug/28432r45/armeabi-v7a/android_gradle_build_mini.json new file mode 100644 index 0000000..b6e455c --- /dev/null +++ b/example/android/app/.cxx/Debug/28432r45/armeabi-v7a/android_gradle_build_mini.json @@ -0,0 +1,20 @@ +{ + "buildFiles": [ + "/Users/dgarcia/fvm/versions/3.29.3/packages/flutter_tools/gradle/src/main/groovy/CMakeLists.txt" + ], + "cleanCommandsComponents": [ + [ + "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/bin/ninja", + "-C", + "/Users/dgarcia/Documents/flutter_policy_engine/example/android/app/.cxx/Debug/28432r45/armeabi-v7a", + "clean" + ] + ], + "buildTargetsCommandComponents": [ + "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/bin/ninja", + "-C", + "/Users/dgarcia/Documents/flutter_policy_engine/example/android/app/.cxx/Debug/28432r45/armeabi-v7a", + "{LIST_OF_TARGETS_TO_BUILD}" + ], + "libraries": {} +} \ No newline at end of file diff --git a/example/android/app/.cxx/Debug/28432r45/armeabi-v7a/build.ninja b/example/android/app/.cxx/Debug/28432r45/armeabi-v7a/build.ninja new file mode 100644 index 0000000..d964a86 --- /dev/null +++ b/example/android/app/.cxx/Debug/28432r45/armeabi-v7a/build.ninja @@ -0,0 +1,112 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Ninja" Generator, CMake Version 3.22 + +# This file contains all the build statements describing the +# compilation DAG. + +# ============================================================================= +# Write statements declared in CMakeLists.txt: +# +# Which is the root file. +# ============================================================================= + +# ============================================================================= +# Project: Project +# Configurations: Debug +# ============================================================================= + +############################################# +# Minimal version of Ninja required by this file + +ninja_required_version = 1.5 + + +############################################# +# Set configuration variable for custom commands. + +CONFIGURATION = Debug +# ============================================================================= +# Include auxiliary files. + + +############################################# +# Include rules file. + +include CMakeFiles/rules.ninja + +# ============================================================================= + +############################################# +# Logical path to working directory; prefix for absolute paths. + +cmake_ninja_workdir = /Users/dgarcia/Documents/flutter_policy_engine/example/android/app/.cxx/Debug/28432r45/armeabi-v7a/ + +############################################# +# Utility command for edit_cache + +build CMakeFiles/edit_cache.util: CUSTOM_COMMAND + COMMAND = cd /Users/dgarcia/Documents/flutter_policy_engine/example/android/app/.cxx/Debug/28432r45/armeabi-v7a && /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/bin/ccmake -S/Users/dgarcia/fvm/versions/3.29.3/packages/flutter_tools/gradle/src/main/groovy -B/Users/dgarcia/Documents/flutter_policy_engine/example/android/app/.cxx/Debug/28432r45/armeabi-v7a + DESC = Running CMake cache editor... + pool = console + restat = 1 + +build edit_cache: phony CMakeFiles/edit_cache.util + + +############################################# +# Utility command for rebuild_cache + +build CMakeFiles/rebuild_cache.util: CUSTOM_COMMAND + COMMAND = cd /Users/dgarcia/Documents/flutter_policy_engine/example/android/app/.cxx/Debug/28432r45/armeabi-v7a && /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/bin/cmake --regenerate-during-build -S/Users/dgarcia/fvm/versions/3.29.3/packages/flutter_tools/gradle/src/main/groovy -B/Users/dgarcia/Documents/flutter_policy_engine/example/android/app/.cxx/Debug/28432r45/armeabi-v7a + DESC = Running CMake to regenerate build system... + pool = console + restat = 1 + +build rebuild_cache: phony CMakeFiles/rebuild_cache.util + +# ============================================================================= +# Target aliases. + +# ============================================================================= +# Folder targets. + +# ============================================================================= + +############################################# +# Folder: /Users/dgarcia/Documents/flutter_policy_engine/example/android/app/.cxx/Debug/28432r45/armeabi-v7a + +build all: phony + +# ============================================================================= +# Built-in targets + + +############################################# +# Re-run CMake if any of its inputs changed. + +build build.ninja: RERUN_CMAKE | /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCCompiler.cmake.in /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCCompilerABI.c /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCInformation.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCXXCompiler.cmake.in /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCXXCompilerABI.cpp /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCXXInformation.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCommonLanguageInclude.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCompilerIdDetection.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCXXCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCompileFeatures.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCompilerABI.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCompilerId.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineSystem.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeFindBinUtils.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeGenericSystem.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeInitializeConfigs.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeLanguageInformation.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeParseImplicitIncludeInfo.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeParseImplicitLinkInfo.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeParseLibraryArchitecture.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeSystem.cmake.in /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeSystemSpecificInformation.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeSystemSpecificInitialize.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeTestCCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeTestCXXCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeTestCompilerCommon.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/ADSP-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/ARMCC-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/ARMClang-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/AppleClang-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Borland-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Bruce-C-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/CMakeCommonCompilerMacros.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-C.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-CXX.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-DetermineCompilerInternal.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-FindBinUtils.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Comeau-CXX-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Compaq-C-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Compaq-CXX-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Cray-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Embarcadero-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Fujitsu-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/FujitsuClang-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/GHS-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/GNU-C-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/GNU-CXX-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/GNU.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/HP-C-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/HP-CXX-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IAR-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IBMCPP-C-DetermineVersionInternal.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IBMCPP-CXX-DetermineVersionInternal.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Intel-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IntelLLVM-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/MSVC-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/NVHPC-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/NVIDIA-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/OpenWatcom-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/PGI-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/PathScale-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/SCO-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/SDCC-C-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/SunPro-C-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/SunPro-CXX-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/TI-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/TinyCC-C-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/VisualAge-C-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/VisualAge-CXX-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Watcom-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/XL-C-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/XL-CXX-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/XLClang-C-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/XLClang-CXX-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/zOS-C-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/zOS-CXX-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Internal/FeatureTesting.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Clang-C.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Clang-CXX.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Clang.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Determine-C.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Determine-CXX.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Determine.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Initialize.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android/Determine-Compiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Linux.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/UnixPaths.cmake /Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/build/cmake/android-legacy.toolchain.cmake /Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/build/cmake/android.toolchain.cmake /Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/build/cmake/flags.cmake /Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/build/cmake/hooks/pre/Android-Clang.cmake /Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/build/cmake/hooks/pre/Android-Determine.cmake /Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/build/cmake/hooks/pre/Android-Initialize.cmake /Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/build/cmake/hooks/pre/Android.cmake /Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/build/cmake/hooks/pre/Determine-Compiler.cmake /Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/build/cmake/platforms.cmake /Users/dgarcia/fvm/versions/3.29.3/packages/flutter_tools/gradle/src/main/groovy/CMakeLists.txt CMakeCache.txt CMakeFiles/3.22.1-g37088a8/CMakeCCompiler.cmake CMakeFiles/3.22.1-g37088a8/CMakeCXXCompiler.cmake CMakeFiles/3.22.1-g37088a8/CMakeSystem.cmake + pool = console + + +############################################# +# A missing CMake input file is not an error. + +build /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCCompiler.cmake.in /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCCompilerABI.c /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCInformation.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCXXCompiler.cmake.in /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCXXCompilerABI.cpp /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCXXInformation.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCommonLanguageInclude.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCompilerIdDetection.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCXXCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCompileFeatures.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCompilerABI.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCompilerId.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineSystem.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeFindBinUtils.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeGenericSystem.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeInitializeConfigs.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeLanguageInformation.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeParseImplicitIncludeInfo.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeParseImplicitLinkInfo.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeParseLibraryArchitecture.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeSystem.cmake.in /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeSystemSpecificInformation.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeSystemSpecificInitialize.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeTestCCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeTestCXXCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeTestCompilerCommon.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/ADSP-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/ARMCC-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/ARMClang-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/AppleClang-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Borland-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Bruce-C-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/CMakeCommonCompilerMacros.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-C.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-CXX.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-DetermineCompilerInternal.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-FindBinUtils.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Comeau-CXX-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Compaq-C-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Compaq-CXX-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Cray-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Embarcadero-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Fujitsu-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/FujitsuClang-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/GHS-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/GNU-C-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/GNU-CXX-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/GNU.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/HP-C-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/HP-CXX-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IAR-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IBMCPP-C-DetermineVersionInternal.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IBMCPP-CXX-DetermineVersionInternal.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Intel-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IntelLLVM-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/MSVC-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/NVHPC-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/NVIDIA-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/OpenWatcom-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/PGI-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/PathScale-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/SCO-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/SDCC-C-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/SunPro-C-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/SunPro-CXX-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/TI-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/TinyCC-C-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/VisualAge-C-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/VisualAge-CXX-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Watcom-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/XL-C-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/XL-CXX-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/XLClang-C-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/XLClang-CXX-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/zOS-C-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/zOS-CXX-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Internal/FeatureTesting.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Clang-C.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Clang-CXX.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Clang.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Determine-C.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Determine-CXX.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Determine.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Initialize.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android/Determine-Compiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Linux.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/UnixPaths.cmake /Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/build/cmake/android-legacy.toolchain.cmake /Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/build/cmake/android.toolchain.cmake /Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/build/cmake/flags.cmake /Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/build/cmake/hooks/pre/Android-Clang.cmake /Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/build/cmake/hooks/pre/Android-Determine.cmake /Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/build/cmake/hooks/pre/Android-Initialize.cmake /Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/build/cmake/hooks/pre/Android.cmake /Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/build/cmake/hooks/pre/Determine-Compiler.cmake /Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/build/cmake/platforms.cmake /Users/dgarcia/fvm/versions/3.29.3/packages/flutter_tools/gradle/src/main/groovy/CMakeLists.txt CMakeCache.txt CMakeFiles/3.22.1-g37088a8/CMakeCCompiler.cmake CMakeFiles/3.22.1-g37088a8/CMakeCXXCompiler.cmake CMakeFiles/3.22.1-g37088a8/CMakeSystem.cmake: phony + + +############################################# +# Clean all the built files. + +build clean: CLEAN + + +############################################# +# Print all primary targets available. + +build help: HELP + + +############################################# +# Make the all target the default. + +default all diff --git a/example/android/app/.cxx/Debug/28432r45/armeabi-v7a/build_file_index.txt b/example/android/app/.cxx/Debug/28432r45/armeabi-v7a/build_file_index.txt new file mode 100644 index 0000000..26c3ceb --- /dev/null +++ b/example/android/app/.cxx/Debug/28432r45/armeabi-v7a/build_file_index.txt @@ -0,0 +1 @@ +/Users/dgarcia/fvm/versions/3.29.3/packages/flutter_tools/gradle/src/main/groovy/CMakeLists.txt \ No newline at end of file diff --git a/example/android/app/.cxx/Debug/28432r45/armeabi-v7a/cmake_install.cmake b/example/android/app/.cxx/Debug/28432r45/armeabi-v7a/cmake_install.cmake new file mode 100644 index 0000000..8f502d3 --- /dev/null +++ b/example/android/app/.cxx/Debug/28432r45/armeabi-v7a/cmake_install.cmake @@ -0,0 +1,54 @@ +# Install script for directory: /Users/dgarcia/fvm/versions/3.29.3/packages/flutter_tools/gradle/src/main/groovy + +# Set the install prefix +if(NOT DEFINED CMAKE_INSTALL_PREFIX) + set(CMAKE_INSTALL_PREFIX "/usr/local") +endif() +string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}") + +# Set the install configuration name. +if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME) + if(BUILD_TYPE) + string(REGEX REPLACE "^[^A-Za-z0-9_]+" "" + CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}") + else() + set(CMAKE_INSTALL_CONFIG_NAME "Debug") + endif() + message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"") +endif() + +# Set the component getting installed. +if(NOT CMAKE_INSTALL_COMPONENT) + if(COMPONENT) + message(STATUS "Install component: \"${COMPONENT}\"") + set(CMAKE_INSTALL_COMPONENT "${COMPONENT}") + else() + set(CMAKE_INSTALL_COMPONENT) + endif() +endif() + +# Install shared libraries without execute permission? +if(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE) + set(CMAKE_INSTALL_SO_NO_EXE "0") +endif() + +# Is this installation the result of a crosscompile? +if(NOT DEFINED CMAKE_CROSSCOMPILING) + set(CMAKE_CROSSCOMPILING "TRUE") +endif() + +# Set default install directory permissions. +if(NOT DEFINED CMAKE_OBJDUMP) + set(CMAKE_OBJDUMP "/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-objdump") +endif() + +if(CMAKE_INSTALL_COMPONENT) + set(CMAKE_INSTALL_MANIFEST "install_manifest_${CMAKE_INSTALL_COMPONENT}.txt") +else() + set(CMAKE_INSTALL_MANIFEST "install_manifest.txt") +endif() + +string(REPLACE ";" "\n" CMAKE_INSTALL_MANIFEST_CONTENT + "${CMAKE_INSTALL_MANIFEST_FILES}") +file(WRITE "/Users/dgarcia/Documents/flutter_policy_engine/example/android/app/.cxx/Debug/28432r45/armeabi-v7a/${CMAKE_INSTALL_MANIFEST}" + "${CMAKE_INSTALL_MANIFEST_CONTENT}") diff --git a/example/android/app/.cxx/Debug/28432r45/armeabi-v7a/configure_fingerprint.bin b/example/android/app/.cxx/Debug/28432r45/armeabi-v7a/configure_fingerprint.bin new file mode 100644 index 0000000..7cb7dbf --- /dev/null +++ b/example/android/app/.cxx/Debug/28432r45/armeabi-v7a/configure_fingerprint.bin @@ -0,0 +1,28 @@ +C/C++ Structured Log + +/Users/dgarcia/Documents/flutter_policy_engine/example/android/app/.cxx/Debug/28432r45/armeabi-v7a/additional_project_files.txtC +A +?com.android.build.gradle.internal.cxx.io.EncodedFileFingerPrint  š3  Ҷ3 +~ +|/Users/dgarcia/Documents/flutter_policy_engine/example/android/app/.cxx/Debug/28432r45/armeabi-v7a/android_gradle_build.json  š3 Ҷ3 + +/Users/dgarcia/Documents/flutter_policy_engine/example/android/app/.cxx/Debug/28432r45/armeabi-v7a/android_gradle_build_mini.json  š3 Ҷ3r +p +n/Users/dgarcia/Documents/flutter_policy_engine/example/android/app/.cxx/Debug/28432r45/armeabi-v7a/build.ninja  š3 Ҷ3v +t +r/Users/dgarcia/Documents/flutter_policy_engine/example/android/app/.cxx/Debug/28432r45/armeabi-v7a/build.ninja.txt  š3{ +y +w/Users/dgarcia/Documents/flutter_policy_engine/example/android/app/.cxx/Debug/28432r45/armeabi-v7a/build_file_index.txt  š3 _ Ҷ3| +z +x/Users/dgarcia/Documents/flutter_policy_engine/example/android/app/.cxx/Debug/28432r45/armeabi-v7a/compile_commands.json  š3 +~ +|/Users/dgarcia/Documents/flutter_policy_engine/example/android/app/.cxx/Debug/28432r45/armeabi-v7a/compile_commands.json.bin  š3  + +/Users/dgarcia/Documents/flutter_policy_engine/example/android/app/.cxx/Debug/28432r45/armeabi-v7a/metadata_generation_command.txt  š3 + Ҷ3y +w +u/Users/dgarcia/Documents/flutter_policy_engine/example/android/app/.cxx/Debug/28432r45/armeabi-v7a/prefab_config.json  š3  ( Ҷ3~ +| +z/Users/dgarcia/Documents/flutter_policy_engine/example/android/app/.cxx/Debug/28432r45/armeabi-v7a/symbol_folder_index.txt  š3  q Ҷ3c +a +_/Users/dgarcia/fvm/versions/3.29.3/packages/flutter_tools/gradle/src/main/groovy/CMakeLists.txt  š3  ٳ2 \ No newline at end of file diff --git a/example/android/app/.cxx/Debug/28432r45/armeabi-v7a/metadata_generation_command.txt b/example/android/app/.cxx/Debug/28432r45/armeabi-v7a/metadata_generation_command.txt new file mode 100644 index 0000000..f9ddca8 --- /dev/null +++ b/example/android/app/.cxx/Debug/28432r45/armeabi-v7a/metadata_generation_command.txt @@ -0,0 +1,20 @@ + -H/Users/dgarcia/fvm/versions/3.29.3/packages/flutter_tools/gradle/src/main/groovy +-DCMAKE_SYSTEM_NAME=Android +-DCMAKE_EXPORT_COMPILE_COMMANDS=ON +-DCMAKE_SYSTEM_VERSION=21 +-DANDROID_PLATFORM=android-21 +-DANDROID_ABI=armeabi-v7a +-DCMAKE_ANDROID_ARCH_ABI=armeabi-v7a +-DANDROID_NDK=/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264 +-DCMAKE_ANDROID_NDK=/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264 +-DCMAKE_TOOLCHAIN_FILE=/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/build/cmake/android.toolchain.cmake +-DCMAKE_MAKE_PROGRAM=/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/bin/ninja +-DCMAKE_LIBRARY_OUTPUT_DIRECTORY=/Users/dgarcia/Documents/flutter_policy_engine/example/build/app/intermediates/cxx/Debug/28432r45/obj/armeabi-v7a +-DCMAKE_RUNTIME_OUTPUT_DIRECTORY=/Users/dgarcia/Documents/flutter_policy_engine/example/build/app/intermediates/cxx/Debug/28432r45/obj/armeabi-v7a +-DCMAKE_BUILD_TYPE=Debug +-B/Users/dgarcia/Documents/flutter_policy_engine/example/android/app/.cxx/Debug/28432r45/armeabi-v7a +-GNinja +-Wno-dev +--no-warn-unused-cli + Build command args: [] + Version: 2 \ No newline at end of file diff --git a/example/android/app/.cxx/Debug/28432r45/armeabi-v7a/prefab_config.json b/example/android/app/.cxx/Debug/28432r45/armeabi-v7a/prefab_config.json new file mode 100644 index 0000000..e799de8 --- /dev/null +++ b/example/android/app/.cxx/Debug/28432r45/armeabi-v7a/prefab_config.json @@ -0,0 +1,4 @@ +{ + "enabled": false, + "packages": [] +} \ No newline at end of file diff --git a/example/android/app/.cxx/Debug/28432r45/armeabi-v7a/symbol_folder_index.txt b/example/android/app/.cxx/Debug/28432r45/armeabi-v7a/symbol_folder_index.txt new file mode 100644 index 0000000..75ef671 --- /dev/null +++ b/example/android/app/.cxx/Debug/28432r45/armeabi-v7a/symbol_folder_index.txt @@ -0,0 +1 @@ +/Users/dgarcia/Documents/flutter_policy_engine/example/build/app/intermediates/cxx/Debug/28432r45/obj/armeabi-v7a \ No newline at end of file diff --git a/example/android/app/.cxx/Debug/28432r45/hash_key.txt b/example/android/app/.cxx/Debug/28432r45/hash_key.txt new file mode 100644 index 0000000..00d63bf --- /dev/null +++ b/example/android/app/.cxx/Debug/28432r45/hash_key.txt @@ -0,0 +1,27 @@ +# Values used to calculate the hash in this folder name. +# Should not depend on the absolute path of the project itself. +# - AGP: 8.1.4. +# - $NDK is the path to NDK 26.3.11579264. +# - $PROJECT is the path to the parent folder of the root Gradle build file. +# - $ABI is the ABI to be built with. The specific value doesn't contribute to the value of the hash. +# - $HASH is the hash value computed from this text. +# - $CMAKE is the path to CMake 3.22.1. +# - $NINJA is the path to Ninja. +-H/Users/dgarcia/fvm/versions/3.29.3/packages/flutter_tools/gradle/src/main/groovy +-DCMAKE_SYSTEM_NAME=Android +-DCMAKE_EXPORT_COMPILE_COMMANDS=ON +-DCMAKE_SYSTEM_VERSION=21 +-DANDROID_PLATFORM=android-21 +-DANDROID_ABI=$ABI +-DCMAKE_ANDROID_ARCH_ABI=$ABI +-DANDROID_NDK=$NDK +-DCMAKE_ANDROID_NDK=$NDK +-DCMAKE_TOOLCHAIN_FILE=$NDK/build/cmake/android.toolchain.cmake +-DCMAKE_MAKE_PROGRAM=$NINJA +-DCMAKE_LIBRARY_OUTPUT_DIRECTORY=/Users/dgarcia/Documents/flutter_policy_engine/example/build/app/intermediates/cxx/Debug/$HASH/obj/$ABI +-DCMAKE_RUNTIME_OUTPUT_DIRECTORY=/Users/dgarcia/Documents/flutter_policy_engine/example/build/app/intermediates/cxx/Debug/$HASH/obj/$ABI +-DCMAKE_BUILD_TYPE=Debug +-B$PROJECT/app/.cxx/Debug/$HASH/$ABI +-GNinja +-Wno-dev +--no-warn-unused-cli \ No newline at end of file diff --git a/example/android/app/.cxx/Debug/28432r45/x86/.cmake/api/v1/query/client-agp/cache-v2 b/example/android/app/.cxx/Debug/28432r45/x86/.cmake/api/v1/query/client-agp/cache-v2 new file mode 100644 index 0000000..e69de29 diff --git a/example/android/app/.cxx/Debug/28432r45/x86/.cmake/api/v1/query/client-agp/cmakeFiles-v1 b/example/android/app/.cxx/Debug/28432r45/x86/.cmake/api/v1/query/client-agp/cmakeFiles-v1 new file mode 100644 index 0000000..e69de29 diff --git a/example/android/app/.cxx/Debug/28432r45/x86/.cmake/api/v1/query/client-agp/codemodel-v2 b/example/android/app/.cxx/Debug/28432r45/x86/.cmake/api/v1/query/client-agp/codemodel-v2 new file mode 100644 index 0000000..e69de29 diff --git a/example/android/app/.cxx/Debug/28432r45/x86/.cmake/api/v1/reply/cache-v2-b0f66089ba717e3aabc8.json b/example/android/app/.cxx/Debug/28432r45/x86/.cmake/api/v1/reply/cache-v2-b0f66089ba717e3aabc8.json new file mode 100644 index 0000000..29becd5 --- /dev/null +++ b/example/android/app/.cxx/Debug/28432r45/x86/.cmake/api/v1/reply/cache-v2-b0f66089ba717e3aabc8.json @@ -0,0 +1,1391 @@ +{ + "entries" : + [ + { + "name" : "ANDROID_ABI", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "No help, variable specified on the command line." + } + ], + "type" : "UNINITIALIZED", + "value" : "x86" + }, + { + "name" : "ANDROID_NDK", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "No help, variable specified on the command line." + } + ], + "type" : "UNINITIALIZED", + "value" : "/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264" + }, + { + "name" : "ANDROID_PLATFORM", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "No help, variable specified on the command line." + } + ], + "type" : "UNINITIALIZED", + "value" : "android-21" + }, + { + "name" : "CMAKE_ADDR2LINE", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Path to a program." + } + ], + "type" : "FILEPATH", + "value" : "/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-addr2line" + }, + { + "name" : "CMAKE_ANDROID_ARCH_ABI", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "No help, variable specified on the command line." + } + ], + "type" : "UNINITIALIZED", + "value" : "x86" + }, + { + "name" : "CMAKE_ANDROID_NDK", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "No help, variable specified on the command line." + } + ], + "type" : "UNINITIALIZED", + "value" : "/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264" + }, + { + "name" : "CMAKE_AR", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Archiver" + } + ], + "type" : "FILEPATH", + "value" : "/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ar" + }, + { + "name" : "CMAKE_ASM_FLAGS", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Flags used by the compiler during all build types." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_ASM_FLAGS_DEBUG", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Flags used by the compiler during debug builds." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_ASM_FLAGS_RELEASE", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Flags used by the compiler during release builds." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_BUILD_TYPE", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Choose the type of build, options are: None Debug Release RelWithDebInfo MinSizeRel ..." + } + ], + "type" : "STRING", + "value" : "Debug" + }, + { + "name" : "CMAKE_CACHEFILE_DIR", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "This is the directory where this CMakeCache.txt was created" + } + ], + "type" : "INTERNAL", + "value" : "/Users/dgarcia/Documents/flutter_policy_engine/example/android/app/.cxx/Debug/28432r45/x86" + }, + { + "name" : "CMAKE_CACHE_MAJOR_VERSION", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Major version of cmake used to create the current loaded cache" + } + ], + "type" : "INTERNAL", + "value" : "3" + }, + { + "name" : "CMAKE_CACHE_MINOR_VERSION", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Minor version of cmake used to create the current loaded cache" + } + ], + "type" : "INTERNAL", + "value" : "22" + }, + { + "name" : "CMAKE_CACHE_PATCH_VERSION", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Patch version of cmake used to create the current loaded cache" + } + ], + "type" : "INTERNAL", + "value" : "1" + }, + { + "name" : "CMAKE_COMMAND", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Path to CMake executable." + } + ], + "type" : "INTERNAL", + "value" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/bin/cmake" + }, + { + "name" : "CMAKE_CPACK_COMMAND", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Path to cpack program executable." + } + ], + "type" : "INTERNAL", + "value" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/bin/cpack" + }, + { + "name" : "CMAKE_CTEST_COMMAND", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Path to ctest program executable." + } + ], + "type" : "INTERNAL", + "value" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/bin/ctest" + }, + { + "name" : "CMAKE_CXX_COMPILER", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "(This variable does not exist and should not be used)" + } + ], + "type" : "UNINITIALIZED", + "value" : "" + }, + { + "name" : "CMAKE_CXX_COMPILER_AR", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "LLVM archiver" + } + ], + "type" : "FILEPATH", + "value" : "/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ar" + }, + { + "name" : "CMAKE_CXX_COMPILER_RANLIB", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Generate index for LLVM archive" + } + ], + "type" : "FILEPATH", + "value" : "/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ranlib" + }, + { + "name" : "CMAKE_CXX_FLAGS", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the compiler during all build types." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_CXX_FLAGS_DEBUG", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the compiler during debug builds." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_CXX_FLAGS_MINSIZEREL", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the CXX compiler during MINSIZEREL builds." + } + ], + "type" : "STRING", + "value" : "-Os -DNDEBUG" + }, + { + "name" : "CMAKE_CXX_FLAGS_RELEASE", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the compiler during release builds." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_CXX_FLAGS_RELWITHDEBINFO", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the CXX compiler during RELWITHDEBINFO builds." + } + ], + "type" : "STRING", + "value" : "-O2 -g -DNDEBUG" + }, + { + "name" : "CMAKE_CXX_STANDARD_LIBRARIES", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Libraries linked by default with all C++ applications." + } + ], + "type" : "STRING", + "value" : "-latomic -lm" + }, + { + "name" : "CMAKE_C_COMPILER", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "(This variable does not exist and should not be used)" + } + ], + "type" : "UNINITIALIZED", + "value" : "" + }, + { + "name" : "CMAKE_C_COMPILER_AR", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "LLVM archiver" + } + ], + "type" : "FILEPATH", + "value" : "/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ar" + }, + { + "name" : "CMAKE_C_COMPILER_RANLIB", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Generate index for LLVM archive" + } + ], + "type" : "FILEPATH", + "value" : "/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ranlib" + }, + { + "name" : "CMAKE_C_FLAGS", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the compiler during all build types." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_C_FLAGS_DEBUG", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the compiler during debug builds." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_C_FLAGS_MINSIZEREL", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the C compiler during MINSIZEREL builds." + } + ], + "type" : "STRING", + "value" : "-Os -DNDEBUG" + }, + { + "name" : "CMAKE_C_FLAGS_RELEASE", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the compiler during release builds." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_C_FLAGS_RELWITHDEBINFO", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the C compiler during RELWITHDEBINFO builds." + } + ], + "type" : "STRING", + "value" : "-O2 -g -DNDEBUG" + }, + { + "name" : "CMAKE_C_STANDARD_LIBRARIES", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Libraries linked by default with all C applications." + } + ], + "type" : "STRING", + "value" : "-latomic -lm" + }, + { + "name" : "CMAKE_DLLTOOL", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Path to a program." + } + ], + "type" : "FILEPATH", + "value" : "CMAKE_DLLTOOL-NOTFOUND" + }, + { + "name" : "CMAKE_EDIT_COMMAND", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Path to cache edit program executable." + } + ], + "type" : "INTERNAL", + "value" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/bin/ccmake" + }, + { + "name" : "CMAKE_ERROR_DEPRECATED", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Whether to issue deprecation errors for macros and functions." + } + ], + "type" : "INTERNAL", + "value" : "FALSE" + }, + { + "name" : "CMAKE_EXECUTABLE_FORMAT", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Executable file format" + } + ], + "type" : "INTERNAL", + "value" : "ELF" + }, + { + "name" : "CMAKE_EXE_LINKER_FLAGS", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the linker." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_EXE_LINKER_FLAGS_DEBUG", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the linker during DEBUG builds." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_EXE_LINKER_FLAGS_MINSIZEREL", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the linker during MINSIZEREL builds." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_EXE_LINKER_FLAGS_RELEASE", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the linker during RELEASE builds." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the linker during RELWITHDEBINFO builds." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_EXPORT_COMPILE_COMMANDS", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "No help, variable specified on the command line." + } + ], + "type" : "UNINITIALIZED", + "value" : "ON" + }, + { + "name" : "CMAKE_EXTRA_GENERATOR", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Name of external makefile project generator." + } + ], + "type" : "INTERNAL", + "value" : "" + }, + { + "name" : "CMAKE_GENERATOR", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Name of generator." + } + ], + "type" : "INTERNAL", + "value" : "Ninja" + }, + { + "name" : "CMAKE_GENERATOR_INSTANCE", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Generator instance identifier." + } + ], + "type" : "INTERNAL", + "value" : "" + }, + { + "name" : "CMAKE_GENERATOR_PLATFORM", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Name of generator platform." + } + ], + "type" : "INTERNAL", + "value" : "" + }, + { + "name" : "CMAKE_GENERATOR_TOOLSET", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Name of generator toolset." + } + ], + "type" : "INTERNAL", + "value" : "" + }, + { + "name" : "CMAKE_HOME_DIRECTORY", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Source directory with the top level CMakeLists.txt file for this project" + } + ], + "type" : "INTERNAL", + "value" : "/Users/dgarcia/fvm/versions/3.29.3/packages/flutter_tools/gradle/src/main/groovy" + }, + { + "name" : "CMAKE_INSTALL_PREFIX", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Install path prefix, prepended onto install directories." + } + ], + "type" : "PATH", + "value" : "/usr/local" + }, + { + "name" : "CMAKE_INSTALL_SO_NO_EXE", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Install .so files without execute permission." + } + ], + "type" : "INTERNAL", + "value" : "0" + }, + { + "name" : "CMAKE_LIBRARY_OUTPUT_DIRECTORY", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "No help, variable specified on the command line." + } + ], + "type" : "UNINITIALIZED", + "value" : "/Users/dgarcia/Documents/flutter_policy_engine/example/build/app/intermediates/cxx/Debug/28432r45/obj/x86" + }, + { + "name" : "CMAKE_LINKER", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Path to a program." + } + ], + "type" : "FILEPATH", + "value" : "/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/toolchains/llvm/prebuilt/darwin-x86_64/bin/ld.lld" + }, + { + "name" : "CMAKE_MAKE_PROGRAM", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "No help, variable specified on the command line." + } + ], + "type" : "UNINITIALIZED", + "value" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/bin/ninja" + }, + { + "name" : "CMAKE_MODULE_LINKER_FLAGS", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the linker during the creation of modules." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_MODULE_LINKER_FLAGS_DEBUG", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the linker during the creation of modules during DEBUG builds." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the linker during the creation of modules during MINSIZEREL builds." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_MODULE_LINKER_FLAGS_RELEASE", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the linker during the creation of modules during RELEASE builds." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the linker during the creation of modules during RELWITHDEBINFO builds." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_NM", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Path to a program." + } + ], + "type" : "FILEPATH", + "value" : "/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-nm" + }, + { + "name" : "CMAKE_NUMBER_OF_MAKEFILES", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "number of local generators" + } + ], + "type" : "INTERNAL", + "value" : "1" + }, + { + "name" : "CMAKE_OBJCOPY", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Path to a program." + } + ], + "type" : "FILEPATH", + "value" : "/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-objcopy" + }, + { + "name" : "CMAKE_OBJDUMP", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Path to a program." + } + ], + "type" : "FILEPATH", + "value" : "/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-objdump" + }, + { + "name" : "CMAKE_PLATFORM_INFO_INITIALIZED", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Platform information initialized" + } + ], + "type" : "INTERNAL", + "value" : "1" + }, + { + "name" : "CMAKE_PROJECT_DESCRIPTION", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Value Computed by CMake" + } + ], + "type" : "STATIC", + "value" : "" + }, + { + "name" : "CMAKE_PROJECT_HOMEPAGE_URL", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Value Computed by CMake" + } + ], + "type" : "STATIC", + "value" : "" + }, + { + "name" : "CMAKE_PROJECT_NAME", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Value Computed by CMake" + } + ], + "type" : "STATIC", + "value" : "Project" + }, + { + "name" : "CMAKE_RANLIB", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Ranlib" + } + ], + "type" : "FILEPATH", + "value" : "/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ranlib" + }, + { + "name" : "CMAKE_READELF", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Path to a program." + } + ], + "type" : "FILEPATH", + "value" : "/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-readelf" + }, + { + "name" : "CMAKE_ROOT", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Path to CMake installation." + } + ], + "type" : "INTERNAL", + "value" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22" + }, + { + "name" : "CMAKE_RUNTIME_OUTPUT_DIRECTORY", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "No help, variable specified on the command line." + } + ], + "type" : "UNINITIALIZED", + "value" : "/Users/dgarcia/Documents/flutter_policy_engine/example/build/app/intermediates/cxx/Debug/28432r45/obj/x86" + }, + { + "name" : "CMAKE_SHARED_LINKER_FLAGS", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the linker during the creation of dll's." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_SHARED_LINKER_FLAGS_DEBUG", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the linker during the creation of shared libraries during DEBUG builds." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the linker during the creation of shared libraries during MINSIZEREL builds." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_SHARED_LINKER_FLAGS_RELEASE", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the linker during the creation of shared libraries during RELEASE builds." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the linker during the creation of shared libraries during RELWITHDEBINFO builds." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_SKIP_INSTALL_RPATH", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "If set, runtime paths are not added when installing shared libraries, but are added when building." + } + ], + "type" : "BOOL", + "value" : "NO" + }, + { + "name" : "CMAKE_SKIP_RPATH", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "If set, runtime paths are not added when using shared libraries." + } + ], + "type" : "BOOL", + "value" : "NO" + }, + { + "name" : "CMAKE_STATIC_LINKER_FLAGS", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the linker during the creation of static libraries during all build types." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_STATIC_LINKER_FLAGS_DEBUG", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the linker during the creation of static libraries during DEBUG builds." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the linker during the creation of static libraries during MINSIZEREL builds." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_STATIC_LINKER_FLAGS_RELEASE", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the linker during the creation of static libraries during RELEASE builds." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the linker during the creation of static libraries during RELWITHDEBINFO builds." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_STRIP", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Strip" + } + ], + "type" : "FILEPATH", + "value" : "/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-strip" + }, + { + "name" : "CMAKE_SUPPRESS_DEVELOPER_ERRORS", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Suppress errors that are meant for the author of the CMakeLists.txt files." + } + ], + "type" : "INTERNAL", + "value" : "TRUE" + }, + { + "name" : "CMAKE_SUPPRESS_DEVELOPER_WARNINGS", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Suppress Warnings that are meant for the author of the CMakeLists.txt files." + } + ], + "type" : "INTERNAL", + "value" : "TRUE" + }, + { + "name" : "CMAKE_SYSTEM_NAME", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "No help, variable specified on the command line." + } + ], + "type" : "UNINITIALIZED", + "value" : "Android" + }, + { + "name" : "CMAKE_SYSTEM_VERSION", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "No help, variable specified on the command line." + } + ], + "type" : "UNINITIALIZED", + "value" : "21" + }, + { + "name" : "CMAKE_TOOLCHAIN_FILE", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "The CMake toolchain file" + } + ], + "type" : "FILEPATH", + "value" : "/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/build/cmake/android.toolchain.cmake" + }, + { + "name" : "CMAKE_UNAME", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "uname command" + } + ], + "type" : "INTERNAL", + "value" : "/usr/bin/uname" + }, + { + "name" : "CMAKE_VERBOSE_MAKEFILE", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "If this value is on, makefiles will be generated without the .SILENT directive, and all commands will be echoed to the console during the make. This is useful for debugging only. With Visual Studio IDE projects all commands are done without /nologo." + } + ], + "type" : "BOOL", + "value" : "FALSE" + }, + { + "name" : "CMAKE_WARN_DEPRECATED", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Whether to issue warnings for deprecated functionality." + } + ], + "type" : "INTERNAL", + "value" : "FALSE" + }, + { + "name" : "Project_BINARY_DIR", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Value Computed by CMake" + } + ], + "type" : "STATIC", + "value" : "/Users/dgarcia/Documents/flutter_policy_engine/example/android/app/.cxx/Debug/28432r45/x86" + }, + { + "name" : "Project_IS_TOP_LEVEL", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Value Computed by CMake" + } + ], + "type" : "STATIC", + "value" : "ON" + }, + { + "name" : "Project_SOURCE_DIR", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Value Computed by CMake" + } + ], + "type" : "STATIC", + "value" : "/Users/dgarcia/fvm/versions/3.29.3/packages/flutter_tools/gradle/src/main/groovy" + } + ], + "kind" : "cache", + "version" : + { + "major" : 2, + "minor" : 0 + } +} diff --git a/example/android/app/.cxx/Debug/28432r45/x86/.cmake/api/v1/reply/cmakeFiles-v1-224224c2181f7df86e06.json b/example/android/app/.cxx/Debug/28432r45/x86/.cmake/api/v1/reply/cmakeFiles-v1-224224c2181f7df86e06.json new file mode 100644 index 0000000..f211154 --- /dev/null +++ b/example/android/app/.cxx/Debug/28432r45/x86/.cmake/api/v1/reply/cmakeFiles-v1-224224c2181f7df86e06.json @@ -0,0 +1,799 @@ +{ + "inputs" : + [ + { + "path" : "CMakeLists.txt" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineSystem.cmake" + }, + { + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/build/cmake/android.toolchain.cmake" + }, + { + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/build/cmake/android-legacy.toolchain.cmake" + }, + { + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/build/cmake/platforms.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Determine.cmake" + }, + { + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/build/cmake/hooks/pre/Android-Determine.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeSystem.cmake.in" + }, + { + "isGenerated" : true, + "path" : "/Users/dgarcia/Documents/flutter_policy_engine/example/android/app/.cxx/Debug/28432r45/x86/CMakeFiles/3.22.1-g37088a8/CMakeSystem.cmake" + }, + { + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/build/cmake/android.toolchain.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeSystemSpecificInitialize.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Initialize.cmake" + }, + { + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/build/cmake/hooks/pre/Android-Initialize.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Determine-C.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android/Determine-Compiler.cmake" + }, + { + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/build/cmake/hooks/pre/Determine-Compiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCompilerId.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCompilerIdDetection.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/ADSP-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/ARMCC-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/ARMClang-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/AppleClang-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-DetermineCompilerInternal.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Borland-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Bruce-C-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-DetermineCompilerInternal.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Compaq-C-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Cray-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Embarcadero-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Fujitsu-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/FujitsuClang-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/GHS-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/GNU-C-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/HP-C-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IAR-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Intel-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IntelLLVM-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/MSVC-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/NVHPC-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/NVIDIA-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/OpenWatcom-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/PGI-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/PathScale-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/SCO-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/SDCC-C-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/SunPro-C-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/TI-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/TinyCC-C-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/VisualAge-C-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IBMCPP-C-DetermineVersionInternal.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Watcom-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/XL-C-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IBMCPP-C-DetermineVersionInternal.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/XLClang-C-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/zOS-C-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IBMCPP-C-DetermineVersionInternal.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeFindBinUtils.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-FindBinUtils.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCCompiler.cmake.in" + }, + { + "isGenerated" : true, + "path" : "/Users/dgarcia/Documents/flutter_policy_engine/example/android/app/.cxx/Debug/28432r45/x86/CMakeFiles/3.22.1-g37088a8/CMakeCCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCXXCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Determine-CXX.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android/Determine-Compiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCompilerId.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCompilerIdDetection.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/ADSP-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/ARMCC-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/ARMClang-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/AppleClang-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-DetermineCompilerInternal.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Borland-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-DetermineCompilerInternal.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Comeau-CXX-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Compaq-CXX-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Cray-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Embarcadero-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Fujitsu-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/FujitsuClang-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/GHS-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/GNU-CXX-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/HP-CXX-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IAR-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Intel-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IntelLLVM-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/MSVC-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/NVHPC-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/NVIDIA-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/OpenWatcom-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/PGI-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/PathScale-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/SCO-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/SunPro-CXX-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/TI-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/VisualAge-CXX-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IBMCPP-CXX-DetermineVersionInternal.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Watcom-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/XL-CXX-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IBMCPP-CXX-DetermineVersionInternal.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/XLClang-CXX-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/zOS-CXX-DetermineCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IBMCPP-CXX-DetermineVersionInternal.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeFindBinUtils.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-FindBinUtils.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCXXCompiler.cmake.in" + }, + { + "isGenerated" : true, + "path" : "/Users/dgarcia/Documents/flutter_policy_engine/example/android/app/.cxx/Debug/28432r45/x86/CMakeFiles/3.22.1-g37088a8/CMakeCXXCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeSystemSpecificInformation.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeGenericSystem.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeInitializeConfigs.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android.cmake" + }, + { + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/build/cmake/hooks/pre/Android.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Linux.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/UnixPaths.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCInformation.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeLanguageInformation.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-C.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/CMakeCommonCompilerMacros.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/GNU.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/CMakeCommonCompilerMacros.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Clang-C.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Clang.cmake" + }, + { + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/build/cmake/hooks/pre/Android-Clang.cmake" + }, + { + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/build/cmake/flags.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCommonLanguageInclude.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeTestCCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeTestCompilerCommon.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCompilerABI.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeParseImplicitIncludeInfo.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeParseImplicitLinkInfo.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeParseLibraryArchitecture.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeTestCompilerCommon.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCCompilerABI.c" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCompileFeatures.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Internal/FeatureTesting.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCCompiler.cmake.in" + }, + { + "isGenerated" : true, + "path" : "/Users/dgarcia/Documents/flutter_policy_engine/example/android/app/.cxx/Debug/28432r45/x86/CMakeFiles/3.22.1-g37088a8/CMakeCCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCXXInformation.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeLanguageInformation.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-CXX.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Clang-CXX.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Clang.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCommonLanguageInclude.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeTestCXXCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeTestCompilerCommon.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCompilerABI.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeParseImplicitIncludeInfo.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeParseImplicitLinkInfo.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeParseLibraryArchitecture.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeTestCompilerCommon.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCXXCompilerABI.cpp" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCompileFeatures.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Internal/FeatureTesting.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCXXCompiler.cmake.in" + }, + { + "isGenerated" : true, + "path" : "/Users/dgarcia/Documents/flutter_policy_engine/example/android/app/.cxx/Debug/28432r45/x86/CMakeFiles/3.22.1-g37088a8/CMakeCXXCompiler.cmake" + } + ], + "kind" : "cmakeFiles", + "paths" : + { + "build" : "/Users/dgarcia/Documents/flutter_policy_engine/example/android/app/.cxx/Debug/28432r45/x86", + "source" : "/Users/dgarcia/fvm/versions/3.29.3/packages/flutter_tools/gradle/src/main/groovy" + }, + "version" : + { + "major" : 1, + "minor" : 0 + } +} diff --git a/example/android/app/.cxx/Debug/28432r45/x86/.cmake/api/v1/reply/codemodel-v2-6cda0072005d68f787b9.json b/example/android/app/.cxx/Debug/28432r45/x86/.cmake/api/v1/reply/codemodel-v2-6cda0072005d68f787b9.json new file mode 100644 index 0000000..8c89c61 --- /dev/null +++ b/example/android/app/.cxx/Debug/28432r45/x86/.cmake/api/v1/reply/codemodel-v2-6cda0072005d68f787b9.json @@ -0,0 +1,43 @@ +{ + "configurations" : + [ + { + "directories" : + [ + { + "build" : ".", + "jsonFile" : "directory-.-Debug-f5ebdc15457944623624.json", + "minimumCMakeVersion" : + { + "string" : "3.6.0" + }, + "projectIndex" : 0, + "source" : "." + } + ], + "name" : "Debug", + "projects" : + [ + { + "directoryIndexes" : + [ + 0 + ], + "name" : "Project" + } + ], + "targets" : [] + } + ], + "kind" : "codemodel", + "paths" : + { + "build" : "/Users/dgarcia/Documents/flutter_policy_engine/example/android/app/.cxx/Debug/28432r45/x86", + "source" : "/Users/dgarcia/fvm/versions/3.29.3/packages/flutter_tools/gradle/src/main/groovy" + }, + "version" : + { + "major" : 2, + "minor" : 3 + } +} diff --git a/example/android/app/.cxx/Debug/28432r45/x86/.cmake/api/v1/reply/directory-.-Debug-f5ebdc15457944623624.json b/example/android/app/.cxx/Debug/28432r45/x86/.cmake/api/v1/reply/directory-.-Debug-f5ebdc15457944623624.json new file mode 100644 index 0000000..3a67af9 --- /dev/null +++ b/example/android/app/.cxx/Debug/28432r45/x86/.cmake/api/v1/reply/directory-.-Debug-f5ebdc15457944623624.json @@ -0,0 +1,14 @@ +{ + "backtraceGraph" : + { + "commands" : [], + "files" : [], + "nodes" : [] + }, + "installers" : [], + "paths" : + { + "build" : ".", + "source" : "." + } +} diff --git a/example/android/app/.cxx/Debug/28432r45/x86/.cmake/api/v1/reply/index-2025-07-16T16-59-53-0866.json b/example/android/app/.cxx/Debug/28432r45/x86/.cmake/api/v1/reply/index-2025-07-16T16-59-53-0866.json new file mode 100644 index 0000000..0a37a48 --- /dev/null +++ b/example/android/app/.cxx/Debug/28432r45/x86/.cmake/api/v1/reply/index-2025-07-16T16-59-53-0866.json @@ -0,0 +1,92 @@ +{ + "cmake" : + { + "generator" : + { + "multiConfig" : false, + "name" : "Ninja" + }, + "paths" : + { + "cmake" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/bin/cmake", + "cpack" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/bin/cpack", + "ctest" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/bin/ctest", + "root" : "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22" + }, + "version" : + { + "isDirty" : false, + "major" : 3, + "minor" : 22, + "patch" : 1, + "string" : "3.22.1-g37088a8", + "suffix" : "g37088a8" + } + }, + "objects" : + [ + { + "jsonFile" : "codemodel-v2-6cda0072005d68f787b9.json", + "kind" : "codemodel", + "version" : + { + "major" : 2, + "minor" : 3 + } + }, + { + "jsonFile" : "cache-v2-b0f66089ba717e3aabc8.json", + "kind" : "cache", + "version" : + { + "major" : 2, + "minor" : 0 + } + }, + { + "jsonFile" : "cmakeFiles-v1-224224c2181f7df86e06.json", + "kind" : "cmakeFiles", + "version" : + { + "major" : 1, + "minor" : 0 + } + } + ], + "reply" : + { + "client-agp" : + { + "cache-v2" : + { + "jsonFile" : "cache-v2-b0f66089ba717e3aabc8.json", + "kind" : "cache", + "version" : + { + "major" : 2, + "minor" : 0 + } + }, + "cmakeFiles-v1" : + { + "jsonFile" : "cmakeFiles-v1-224224c2181f7df86e06.json", + "kind" : "cmakeFiles", + "version" : + { + "major" : 1, + "minor" : 0 + } + }, + "codemodel-v2" : + { + "jsonFile" : "codemodel-v2-6cda0072005d68f787b9.json", + "kind" : "codemodel", + "version" : + { + "major" : 2, + "minor" : 3 + } + } + } + } +} diff --git a/example/android/app/.cxx/Debug/28432r45/x86/CMakeCache.txt b/example/android/app/.cxx/Debug/28432r45/x86/CMakeCache.txt new file mode 100644 index 0000000..7d77758 --- /dev/null +++ b/example/android/app/.cxx/Debug/28432r45/x86/CMakeCache.txt @@ -0,0 +1,405 @@ +# This is the CMakeCache file. +# For build in directory: /Users/dgarcia/Documents/flutter_policy_engine/example/android/app/.cxx/Debug/28432r45/x86 +# It was generated by CMake: /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/bin/cmake +# You can edit this file to change values found and used by cmake. +# If you do not want to change any of the values, simply exit the editor. +# If you do want to change a value, simply edit, save, and exit the editor. +# The syntax for the file is as follows: +# KEY:TYPE=VALUE +# KEY is the name of a variable in the cache. +# TYPE is a hint to GUIs for the type of VALUE, DO NOT EDIT TYPE!. +# VALUE is the current value for the KEY. + +######################## +# EXTERNAL cache entries +######################## + +//No help, variable specified on the command line. +ANDROID_ABI:UNINITIALIZED=x86 + +//No help, variable specified on the command line. +ANDROID_NDK:UNINITIALIZED=/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264 + +//No help, variable specified on the command line. +ANDROID_PLATFORM:UNINITIALIZED=android-21 + +//Path to a program. +CMAKE_ADDR2LINE:FILEPATH=/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-addr2line + +//No help, variable specified on the command line. +CMAKE_ANDROID_ARCH_ABI:UNINITIALIZED=x86 + +//No help, variable specified on the command line. +CMAKE_ANDROID_NDK:UNINITIALIZED=/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264 + +//Archiver +CMAKE_AR:FILEPATH=/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ar + +//Flags used by the compiler during all build types. +CMAKE_ASM_FLAGS:STRING= + +//Flags used by the compiler during debug builds. +CMAKE_ASM_FLAGS_DEBUG:STRING= + +//Flags used by the compiler during release builds. +CMAKE_ASM_FLAGS_RELEASE:STRING= + +//Choose the type of build, options are: None Debug Release RelWithDebInfo +// MinSizeRel ... +CMAKE_BUILD_TYPE:STRING=Debug + +//LLVM archiver +CMAKE_CXX_COMPILER_AR:FILEPATH=/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ar + +//Generate index for LLVM archive +CMAKE_CXX_COMPILER_RANLIB:FILEPATH=/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ranlib + +//Flags used by the compiler during all build types. +CMAKE_CXX_FLAGS:STRING= + +//Flags used by the compiler during debug builds. +CMAKE_CXX_FLAGS_DEBUG:STRING= + +//Flags used by the CXX compiler during MINSIZEREL builds. +CMAKE_CXX_FLAGS_MINSIZEREL:STRING=-Os -DNDEBUG + +//Flags used by the compiler during release builds. +CMAKE_CXX_FLAGS_RELEASE:STRING= + +//Flags used by the CXX compiler during RELWITHDEBINFO builds. +CMAKE_CXX_FLAGS_RELWITHDEBINFO:STRING=-O2 -g -DNDEBUG + +//Libraries linked by default with all C++ applications. +CMAKE_CXX_STANDARD_LIBRARIES:STRING=-latomic -lm + +//LLVM archiver +CMAKE_C_COMPILER_AR:FILEPATH=/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ar + +//Generate index for LLVM archive +CMAKE_C_COMPILER_RANLIB:FILEPATH=/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ranlib + +//Flags used by the compiler during all build types. +CMAKE_C_FLAGS:STRING= + +//Flags used by the compiler during debug builds. +CMAKE_C_FLAGS_DEBUG:STRING= + +//Flags used by the C compiler during MINSIZEREL builds. +CMAKE_C_FLAGS_MINSIZEREL:STRING=-Os -DNDEBUG + +//Flags used by the compiler during release builds. +CMAKE_C_FLAGS_RELEASE:STRING= + +//Flags used by the C compiler during RELWITHDEBINFO builds. +CMAKE_C_FLAGS_RELWITHDEBINFO:STRING=-O2 -g -DNDEBUG + +//Libraries linked by default with all C applications. +CMAKE_C_STANDARD_LIBRARIES:STRING=-latomic -lm + +//Path to a program. +CMAKE_DLLTOOL:FILEPATH=CMAKE_DLLTOOL-NOTFOUND + +//Flags used by the linker. +CMAKE_EXE_LINKER_FLAGS:STRING= + +//Flags used by the linker during DEBUG builds. +CMAKE_EXE_LINKER_FLAGS_DEBUG:STRING= + +//Flags used by the linker during MINSIZEREL builds. +CMAKE_EXE_LINKER_FLAGS_MINSIZEREL:STRING= + +//Flags used by the linker during RELEASE builds. +CMAKE_EXE_LINKER_FLAGS_RELEASE:STRING= + +//Flags used by the linker during RELWITHDEBINFO builds. +CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO:STRING= + +//No help, variable specified on the command line. +CMAKE_EXPORT_COMPILE_COMMANDS:UNINITIALIZED=ON + +//Install path prefix, prepended onto install directories. +CMAKE_INSTALL_PREFIX:PATH=/usr/local + +//No help, variable specified on the command line. +CMAKE_LIBRARY_OUTPUT_DIRECTORY:UNINITIALIZED=/Users/dgarcia/Documents/flutter_policy_engine/example/build/app/intermediates/cxx/Debug/28432r45/obj/x86 + +//Path to a program. +CMAKE_LINKER:FILEPATH=/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/toolchains/llvm/prebuilt/darwin-x86_64/bin/ld.lld + +//No help, variable specified on the command line. +CMAKE_MAKE_PROGRAM:UNINITIALIZED=/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/bin/ninja + +//Flags used by the linker during the creation of modules. +CMAKE_MODULE_LINKER_FLAGS:STRING= + +//Flags used by the linker during the creation of modules during +// DEBUG builds. +CMAKE_MODULE_LINKER_FLAGS_DEBUG:STRING= + +//Flags used by the linker during the creation of modules during +// MINSIZEREL builds. +CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL:STRING= + +//Flags used by the linker during the creation of modules during +// RELEASE builds. +CMAKE_MODULE_LINKER_FLAGS_RELEASE:STRING= + +//Flags used by the linker during the creation of modules during +// RELWITHDEBINFO builds. +CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO:STRING= + +//Path to a program. +CMAKE_NM:FILEPATH=/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-nm + +//Path to a program. +CMAKE_OBJCOPY:FILEPATH=/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-objcopy + +//Path to a program. +CMAKE_OBJDUMP:FILEPATH=/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-objdump + +//Value Computed by CMake +CMAKE_PROJECT_DESCRIPTION:STATIC= + +//Value Computed by CMake +CMAKE_PROJECT_HOMEPAGE_URL:STATIC= + +//Value Computed by CMake +CMAKE_PROJECT_NAME:STATIC=Project + +//Ranlib +CMAKE_RANLIB:FILEPATH=/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ranlib + +//Path to a program. +CMAKE_READELF:FILEPATH=/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-readelf + +//No help, variable specified on the command line. +CMAKE_RUNTIME_OUTPUT_DIRECTORY:UNINITIALIZED=/Users/dgarcia/Documents/flutter_policy_engine/example/build/app/intermediates/cxx/Debug/28432r45/obj/x86 + +//Flags used by the linker during the creation of dll's. +CMAKE_SHARED_LINKER_FLAGS:STRING= + +//Flags used by the linker during the creation of shared libraries +// during DEBUG builds. +CMAKE_SHARED_LINKER_FLAGS_DEBUG:STRING= + +//Flags used by the linker during the creation of shared libraries +// during MINSIZEREL builds. +CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL:STRING= + +//Flags used by the linker during the creation of shared libraries +// during RELEASE builds. +CMAKE_SHARED_LINKER_FLAGS_RELEASE:STRING= + +//Flags used by the linker during the creation of shared libraries +// during RELWITHDEBINFO builds. +CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO:STRING= + +//If set, runtime paths are not added when installing shared libraries, +// but are added when building. +CMAKE_SKIP_INSTALL_RPATH:BOOL=NO + +//If set, runtime paths are not added when using shared libraries. +CMAKE_SKIP_RPATH:BOOL=NO + +//Flags used by the linker during the creation of static libraries +// during all build types. +CMAKE_STATIC_LINKER_FLAGS:STRING= + +//Flags used by the linker during the creation of static libraries +// during DEBUG builds. +CMAKE_STATIC_LINKER_FLAGS_DEBUG:STRING= + +//Flags used by the linker during the creation of static libraries +// during MINSIZEREL builds. +CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL:STRING= + +//Flags used by the linker during the creation of static libraries +// during RELEASE builds. +CMAKE_STATIC_LINKER_FLAGS_RELEASE:STRING= + +//Flags used by the linker during the creation of static libraries +// during RELWITHDEBINFO builds. +CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO:STRING= + +//Strip +CMAKE_STRIP:FILEPATH=/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-strip + +//No help, variable specified on the command line. +CMAKE_SYSTEM_NAME:UNINITIALIZED=Android + +//No help, variable specified on the command line. +CMAKE_SYSTEM_VERSION:UNINITIALIZED=21 + +//The CMake toolchain file +CMAKE_TOOLCHAIN_FILE:FILEPATH=/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/build/cmake/android.toolchain.cmake + +//If this value is on, makefiles will be generated without the +// .SILENT directive, and all commands will be echoed to the console +// during the make. This is useful for debugging only. With Visual +// Studio IDE projects all commands are done without /nologo. +CMAKE_VERBOSE_MAKEFILE:BOOL=FALSE + +//Value Computed by CMake +Project_BINARY_DIR:STATIC=/Users/dgarcia/Documents/flutter_policy_engine/example/android/app/.cxx/Debug/28432r45/x86 + +//Value Computed by CMake +Project_IS_TOP_LEVEL:STATIC=ON + +//Value Computed by CMake +Project_SOURCE_DIR:STATIC=/Users/dgarcia/fvm/versions/3.29.3/packages/flutter_tools/gradle/src/main/groovy + + +######################## +# INTERNAL cache entries +######################## + +//ADVANCED property for variable: CMAKE_ADDR2LINE +CMAKE_ADDR2LINE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_AR +CMAKE_AR-ADVANCED:INTERNAL=1 +//This is the directory where this CMakeCache.txt was created +CMAKE_CACHEFILE_DIR:INTERNAL=/Users/dgarcia/Documents/flutter_policy_engine/example/android/app/.cxx/Debug/28432r45/x86 +//Major version of cmake used to create the current loaded cache +CMAKE_CACHE_MAJOR_VERSION:INTERNAL=3 +//Minor version of cmake used to create the current loaded cache +CMAKE_CACHE_MINOR_VERSION:INTERNAL=22 +//Patch version of cmake used to create the current loaded cache +CMAKE_CACHE_PATCH_VERSION:INTERNAL=1 +//Path to CMake executable. +CMAKE_COMMAND:INTERNAL=/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/bin/cmake +//Path to cpack program executable. +CMAKE_CPACK_COMMAND:INTERNAL=/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/bin/cpack +//Path to ctest program executable. +CMAKE_CTEST_COMMAND:INTERNAL=/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/bin/ctest +//ADVANCED property for variable: CMAKE_CXX_COMPILER_AR +CMAKE_CXX_COMPILER_AR-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_COMPILER_RANLIB +CMAKE_CXX_COMPILER_RANLIB-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_FLAGS +CMAKE_CXX_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_FLAGS_DEBUG +CMAKE_CXX_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_FLAGS_MINSIZEREL +CMAKE_CXX_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_FLAGS_RELEASE +CMAKE_CXX_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_FLAGS_RELWITHDEBINFO +CMAKE_CXX_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_STANDARD_LIBRARIES +CMAKE_CXX_STANDARD_LIBRARIES-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_COMPILER_AR +CMAKE_C_COMPILER_AR-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_COMPILER_RANLIB +CMAKE_C_COMPILER_RANLIB-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_FLAGS +CMAKE_C_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_FLAGS_DEBUG +CMAKE_C_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_FLAGS_MINSIZEREL +CMAKE_C_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_FLAGS_RELEASE +CMAKE_C_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_FLAGS_RELWITHDEBINFO +CMAKE_C_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_STANDARD_LIBRARIES +CMAKE_C_STANDARD_LIBRARIES-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_DLLTOOL +CMAKE_DLLTOOL-ADVANCED:INTERNAL=1 +//Path to cache edit program executable. +CMAKE_EDIT_COMMAND:INTERNAL=/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/bin/ccmake +//Whether to issue deprecation errors for macros and functions. +CMAKE_ERROR_DEPRECATED:INTERNAL=FALSE +//Executable file format +CMAKE_EXECUTABLE_FORMAT:INTERNAL=ELF +//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS +CMAKE_EXE_LINKER_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_DEBUG +CMAKE_EXE_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_MINSIZEREL +CMAKE_EXE_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_RELEASE +CMAKE_EXE_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO +CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//Name of external makefile project generator. +CMAKE_EXTRA_GENERATOR:INTERNAL= +//Name of generator. +CMAKE_GENERATOR:INTERNAL=Ninja +//Generator instance identifier. +CMAKE_GENERATOR_INSTANCE:INTERNAL= +//Name of generator platform. +CMAKE_GENERATOR_PLATFORM:INTERNAL= +//Name of generator toolset. +CMAKE_GENERATOR_TOOLSET:INTERNAL= +//Source directory with the top level CMakeLists.txt file for this +// project +CMAKE_HOME_DIRECTORY:INTERNAL=/Users/dgarcia/fvm/versions/3.29.3/packages/flutter_tools/gradle/src/main/groovy +//Install .so files without execute permission. +CMAKE_INSTALL_SO_NO_EXE:INTERNAL=0 +//ADVANCED property for variable: CMAKE_LINKER +CMAKE_LINKER-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS +CMAKE_MODULE_LINKER_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_DEBUG +CMAKE_MODULE_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL +CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_RELEASE +CMAKE_MODULE_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO +CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_NM +CMAKE_NM-ADVANCED:INTERNAL=1 +//number of local generators +CMAKE_NUMBER_OF_MAKEFILES:INTERNAL=1 +//ADVANCED property for variable: CMAKE_OBJCOPY +CMAKE_OBJCOPY-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_OBJDUMP +CMAKE_OBJDUMP-ADVANCED:INTERNAL=1 +//Platform information initialized +CMAKE_PLATFORM_INFO_INITIALIZED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_RANLIB +CMAKE_RANLIB-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_READELF +CMAKE_READELF-ADVANCED:INTERNAL=1 +//Path to CMake installation. +CMAKE_ROOT:INTERNAL=/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22 +//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS +CMAKE_SHARED_LINKER_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_DEBUG +CMAKE_SHARED_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL +CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_RELEASE +CMAKE_SHARED_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO +CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SKIP_INSTALL_RPATH +CMAKE_SKIP_INSTALL_RPATH-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SKIP_RPATH +CMAKE_SKIP_RPATH-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS +CMAKE_STATIC_LINKER_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_DEBUG +CMAKE_STATIC_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL +CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_RELEASE +CMAKE_STATIC_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO +CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STRIP +CMAKE_STRIP-ADVANCED:INTERNAL=1 +//Suppress errors that are meant for the author of the CMakeLists.txt +// files. +CMAKE_SUPPRESS_DEVELOPER_ERRORS:INTERNAL=TRUE +//Suppress Warnings that are meant for the author of the CMakeLists.txt +// files. +CMAKE_SUPPRESS_DEVELOPER_WARNINGS:INTERNAL=TRUE +//uname command +CMAKE_UNAME:INTERNAL=/usr/bin/uname +//ADVANCED property for variable: CMAKE_VERBOSE_MAKEFILE +CMAKE_VERBOSE_MAKEFILE-ADVANCED:INTERNAL=1 +//Whether to issue warnings for deprecated functionality. +CMAKE_WARN_DEPRECATED:INTERNAL=FALSE + diff --git a/example/android/app/.cxx/Debug/28432r45/x86/CMakeFiles/3.22.1-g37088a8/CMakeCCompiler.cmake b/example/android/app/.cxx/Debug/28432r45/x86/CMakeFiles/3.22.1-g37088a8/CMakeCCompiler.cmake new file mode 100644 index 0000000..2051b03 --- /dev/null +++ b/example/android/app/.cxx/Debug/28432r45/x86/CMakeFiles/3.22.1-g37088a8/CMakeCCompiler.cmake @@ -0,0 +1,72 @@ +set(CMAKE_C_COMPILER "/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/toolchains/llvm/prebuilt/darwin-x86_64/bin/clang") +set(CMAKE_C_COMPILER_ARG1 "") +set(CMAKE_C_COMPILER_ID "Clang") +set(CMAKE_C_COMPILER_VERSION "17.0.2") +set(CMAKE_C_COMPILER_VERSION_INTERNAL "") +set(CMAKE_C_COMPILER_WRAPPER "") +set(CMAKE_C_STANDARD_COMPUTED_DEFAULT "17") +set(CMAKE_C_EXTENSIONS_COMPUTED_DEFAULT "ON") +set(CMAKE_C_COMPILE_FEATURES "c_std_90;c_function_prototypes;c_std_99;c_restrict;c_variadic_macros;c_std_11;c_static_assert;c_std_17;c_std_23") +set(CMAKE_C90_COMPILE_FEATURES "c_std_90;c_function_prototypes") +set(CMAKE_C99_COMPILE_FEATURES "c_std_99;c_restrict;c_variadic_macros") +set(CMAKE_C11_COMPILE_FEATURES "c_std_11;c_static_assert") +set(CMAKE_C17_COMPILE_FEATURES "c_std_17") +set(CMAKE_C23_COMPILE_FEATURES "c_std_23") + +set(CMAKE_C_PLATFORM_ID "Linux") +set(CMAKE_C_SIMULATE_ID "") +set(CMAKE_C_COMPILER_FRONTEND_VARIANT "GNU") +set(CMAKE_C_SIMULATE_VERSION "") + + + + +set(CMAKE_AR "/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ar") +set(CMAKE_C_COMPILER_AR "/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ar") +set(CMAKE_RANLIB "/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ranlib") +set(CMAKE_C_COMPILER_RANLIB "/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ranlib") +set(CMAKE_LINKER "/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/toolchains/llvm/prebuilt/darwin-x86_64/bin/ld.lld") +set(CMAKE_MT "") +set(CMAKE_COMPILER_IS_GNUCC ) +set(CMAKE_C_COMPILER_LOADED 1) +set(CMAKE_C_COMPILER_WORKS TRUE) +set(CMAKE_C_ABI_COMPILED TRUE) + +set(CMAKE_C_COMPILER_ENV_VAR "CC") + +set(CMAKE_C_COMPILER_ID_RUN 1) +set(CMAKE_C_SOURCE_FILE_EXTENSIONS c;m) +set(CMAKE_C_IGNORE_EXTENSIONS h;H;o;O;obj;OBJ;def;DEF;rc;RC) +set(CMAKE_C_LINKER_PREFERENCE 10) + +# Save compiler ABI information. +set(CMAKE_C_SIZEOF_DATA_PTR "4") +set(CMAKE_C_COMPILER_ABI "ELF") +set(CMAKE_C_BYTE_ORDER "LITTLE_ENDIAN") +set(CMAKE_C_LIBRARY_ARCHITECTURE "") + +if(CMAKE_C_SIZEOF_DATA_PTR) + set(CMAKE_SIZEOF_VOID_P "${CMAKE_C_SIZEOF_DATA_PTR}") +endif() + +if(CMAKE_C_COMPILER_ABI) + set(CMAKE_INTERNAL_PLATFORM_ABI "${CMAKE_C_COMPILER_ABI}") +endif() + +if(CMAKE_C_LIBRARY_ARCHITECTURE) + set(CMAKE_LIBRARY_ARCHITECTURE "") +endif() + +set(CMAKE_C_CL_SHOWINCLUDES_PREFIX "") +if(CMAKE_C_CL_SHOWINCLUDES_PREFIX) + set(CMAKE_CL_SHOWINCLUDES_PREFIX "${CMAKE_C_CL_SHOWINCLUDES_PREFIX}") +endif() + + + + + +set(CMAKE_C_IMPLICIT_INCLUDE_DIRECTORIES "/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/toolchains/llvm/prebuilt/darwin-x86_64/lib/clang/17/include;/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/toolchains/llvm/prebuilt/darwin-x86_64/sysroot/usr/include/i686-linux-android;/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/toolchains/llvm/prebuilt/darwin-x86_64/sysroot/usr/include") +set(CMAKE_C_IMPLICIT_LINK_LIBRARIES "-l:libunwind.a;dl;c;-l:libunwind.a;dl") +set(CMAKE_C_IMPLICIT_LINK_DIRECTORIES "/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/toolchains/llvm/prebuilt/darwin-x86_64/lib/clang/17/lib/linux/i386;/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/toolchains/llvm/prebuilt/darwin-x86_64/sysroot/usr/lib/i686-linux-android/21;/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/toolchains/llvm/prebuilt/darwin-x86_64/sysroot/usr/lib/i686-linux-android;/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/toolchains/llvm/prebuilt/darwin-x86_64/sysroot/usr/lib") +set(CMAKE_C_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "") diff --git a/example/android/app/.cxx/Debug/28432r45/x86/CMakeFiles/3.22.1-g37088a8/CMakeCXXCompiler.cmake b/example/android/app/.cxx/Debug/28432r45/x86/CMakeFiles/3.22.1-g37088a8/CMakeCXXCompiler.cmake new file mode 100644 index 0000000..fc1d5be --- /dev/null +++ b/example/android/app/.cxx/Debug/28432r45/x86/CMakeFiles/3.22.1-g37088a8/CMakeCXXCompiler.cmake @@ -0,0 +1,83 @@ +set(CMAKE_CXX_COMPILER "/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/toolchains/llvm/prebuilt/darwin-x86_64/bin/clang++") +set(CMAKE_CXX_COMPILER_ARG1 "") +set(CMAKE_CXX_COMPILER_ID "Clang") +set(CMAKE_CXX_COMPILER_VERSION "17.0.2") +set(CMAKE_CXX_COMPILER_VERSION_INTERNAL "") +set(CMAKE_CXX_COMPILER_WRAPPER "") +set(CMAKE_CXX_STANDARD_COMPUTED_DEFAULT "17") +set(CMAKE_CXX_EXTENSIONS_COMPUTED_DEFAULT "ON") +set(CMAKE_CXX_COMPILE_FEATURES "cxx_std_98;cxx_template_template_parameters;cxx_std_11;cxx_alias_templates;cxx_alignas;cxx_alignof;cxx_attributes;cxx_auto_type;cxx_constexpr;cxx_decltype;cxx_decltype_incomplete_return_types;cxx_default_function_template_args;cxx_defaulted_functions;cxx_defaulted_move_initializers;cxx_delegating_constructors;cxx_deleted_functions;cxx_enum_forward_declarations;cxx_explicit_conversions;cxx_extended_friend_declarations;cxx_extern_templates;cxx_final;cxx_func_identifier;cxx_generalized_initializers;cxx_inheriting_constructors;cxx_inline_namespaces;cxx_lambdas;cxx_local_type_template_args;cxx_long_long_type;cxx_noexcept;cxx_nonstatic_member_init;cxx_nullptr;cxx_override;cxx_range_for;cxx_raw_string_literals;cxx_reference_qualified_functions;cxx_right_angle_brackets;cxx_rvalue_references;cxx_sizeof_member;cxx_static_assert;cxx_strong_enums;cxx_thread_local;cxx_trailing_return_types;cxx_unicode_literals;cxx_uniform_initialization;cxx_unrestricted_unions;cxx_user_literals;cxx_variadic_macros;cxx_variadic_templates;cxx_std_14;cxx_aggregate_default_initializers;cxx_attribute_deprecated;cxx_binary_literals;cxx_contextual_conversions;cxx_decltype_auto;cxx_digit_separators;cxx_generic_lambdas;cxx_lambda_init_captures;cxx_relaxed_constexpr;cxx_return_type_deduction;cxx_variable_templates;cxx_std_17;cxx_std_20;cxx_std_23") +set(CMAKE_CXX98_COMPILE_FEATURES "cxx_std_98;cxx_template_template_parameters") +set(CMAKE_CXX11_COMPILE_FEATURES "cxx_std_11;cxx_alias_templates;cxx_alignas;cxx_alignof;cxx_attributes;cxx_auto_type;cxx_constexpr;cxx_decltype;cxx_decltype_incomplete_return_types;cxx_default_function_template_args;cxx_defaulted_functions;cxx_defaulted_move_initializers;cxx_delegating_constructors;cxx_deleted_functions;cxx_enum_forward_declarations;cxx_explicit_conversions;cxx_extended_friend_declarations;cxx_extern_templates;cxx_final;cxx_func_identifier;cxx_generalized_initializers;cxx_inheriting_constructors;cxx_inline_namespaces;cxx_lambdas;cxx_local_type_template_args;cxx_long_long_type;cxx_noexcept;cxx_nonstatic_member_init;cxx_nullptr;cxx_override;cxx_range_for;cxx_raw_string_literals;cxx_reference_qualified_functions;cxx_right_angle_brackets;cxx_rvalue_references;cxx_sizeof_member;cxx_static_assert;cxx_strong_enums;cxx_thread_local;cxx_trailing_return_types;cxx_unicode_literals;cxx_uniform_initialization;cxx_unrestricted_unions;cxx_user_literals;cxx_variadic_macros;cxx_variadic_templates") +set(CMAKE_CXX14_COMPILE_FEATURES "cxx_std_14;cxx_aggregate_default_initializers;cxx_attribute_deprecated;cxx_binary_literals;cxx_contextual_conversions;cxx_decltype_auto;cxx_digit_separators;cxx_generic_lambdas;cxx_lambda_init_captures;cxx_relaxed_constexpr;cxx_return_type_deduction;cxx_variable_templates") +set(CMAKE_CXX17_COMPILE_FEATURES "cxx_std_17") +set(CMAKE_CXX20_COMPILE_FEATURES "cxx_std_20") +set(CMAKE_CXX23_COMPILE_FEATURES "cxx_std_23") + +set(CMAKE_CXX_PLATFORM_ID "Linux") +set(CMAKE_CXX_SIMULATE_ID "") +set(CMAKE_CXX_COMPILER_FRONTEND_VARIANT "GNU") +set(CMAKE_CXX_SIMULATE_VERSION "") + + + + +set(CMAKE_AR "/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ar") +set(CMAKE_CXX_COMPILER_AR "/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ar") +set(CMAKE_RANLIB "/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ranlib") +set(CMAKE_CXX_COMPILER_RANLIB "/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ranlib") +set(CMAKE_LINKER "/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/toolchains/llvm/prebuilt/darwin-x86_64/bin/ld.lld") +set(CMAKE_MT "") +set(CMAKE_COMPILER_IS_GNUCXX ) +set(CMAKE_CXX_COMPILER_LOADED 1) +set(CMAKE_CXX_COMPILER_WORKS TRUE) +set(CMAKE_CXX_ABI_COMPILED TRUE) + +set(CMAKE_CXX_COMPILER_ENV_VAR "CXX") + +set(CMAKE_CXX_COMPILER_ID_RUN 1) +set(CMAKE_CXX_SOURCE_FILE_EXTENSIONS C;M;c++;cc;cpp;cxx;m;mm;mpp;CPP;ixx;cppm) +set(CMAKE_CXX_IGNORE_EXTENSIONS inl;h;hpp;HPP;H;o;O;obj;OBJ;def;DEF;rc;RC) + +foreach (lang C OBJC OBJCXX) + if (CMAKE_${lang}_COMPILER_ID_RUN) + foreach(extension IN LISTS CMAKE_${lang}_SOURCE_FILE_EXTENSIONS) + list(REMOVE_ITEM CMAKE_CXX_SOURCE_FILE_EXTENSIONS ${extension}) + endforeach() + endif() +endforeach() + +set(CMAKE_CXX_LINKER_PREFERENCE 30) +set(CMAKE_CXX_LINKER_PREFERENCE_PROPAGATES 1) + +# Save compiler ABI information. +set(CMAKE_CXX_SIZEOF_DATA_PTR "4") +set(CMAKE_CXX_COMPILER_ABI "ELF") +set(CMAKE_CXX_BYTE_ORDER "LITTLE_ENDIAN") +set(CMAKE_CXX_LIBRARY_ARCHITECTURE "") + +if(CMAKE_CXX_SIZEOF_DATA_PTR) + set(CMAKE_SIZEOF_VOID_P "${CMAKE_CXX_SIZEOF_DATA_PTR}") +endif() + +if(CMAKE_CXX_COMPILER_ABI) + set(CMAKE_INTERNAL_PLATFORM_ABI "${CMAKE_CXX_COMPILER_ABI}") +endif() + +if(CMAKE_CXX_LIBRARY_ARCHITECTURE) + set(CMAKE_LIBRARY_ARCHITECTURE "") +endif() + +set(CMAKE_CXX_CL_SHOWINCLUDES_PREFIX "") +if(CMAKE_CXX_CL_SHOWINCLUDES_PREFIX) + set(CMAKE_CL_SHOWINCLUDES_PREFIX "${CMAKE_CXX_CL_SHOWINCLUDES_PREFIX}") +endif() + + + + + +set(CMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES "/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/toolchains/llvm/prebuilt/darwin-x86_64/sysroot/usr/include/c++/v1;/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/toolchains/llvm/prebuilt/darwin-x86_64/lib/clang/17/include;/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/toolchains/llvm/prebuilt/darwin-x86_64/sysroot/usr/include/i686-linux-android;/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/toolchains/llvm/prebuilt/darwin-x86_64/sysroot/usr/include") +set(CMAKE_CXX_IMPLICIT_LINK_LIBRARIES "c++;m;-l:libunwind.a;dl;c;-l:libunwind.a;dl") +set(CMAKE_CXX_IMPLICIT_LINK_DIRECTORIES "/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/toolchains/llvm/prebuilt/darwin-x86_64/lib/clang/17/lib/linux/i386;/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/toolchains/llvm/prebuilt/darwin-x86_64/sysroot/usr/lib/i686-linux-android/21;/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/toolchains/llvm/prebuilt/darwin-x86_64/sysroot/usr/lib/i686-linux-android;/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/toolchains/llvm/prebuilt/darwin-x86_64/sysroot/usr/lib") +set(CMAKE_CXX_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "") diff --git a/example/android/app/.cxx/Debug/28432r45/x86/CMakeFiles/3.22.1-g37088a8/CMakeDetermineCompilerABI_C.bin b/example/android/app/.cxx/Debug/28432r45/x86/CMakeFiles/3.22.1-g37088a8/CMakeDetermineCompilerABI_C.bin new file mode 100755 index 0000000000000000000000000000000000000000..b8d5275e4ffc5441b6b0eedc5b0b413ec4007a72 GIT binary patch literal 5704 zcmdT|U2I$B8UB21CvKfOKMif5KbXzXRJ3+}+$1ds>io5ylC(`z(Jo?#W1kb-t?gru zkGljWCYFL)rAVN0!Nu53(Nr!bAvS49W2jmyp-H{y1s9u`rd|{%Q;|BUpbi+`^PF?O z)X7#&f~&pOd*0vg{r=zY`~1_fiE*FLCnWfVUr>50AVd;$f4gf*il_*SZhW_jCa7qW z_!J5dQN%$%=&O(=u7^yd9cl+bmZ1#+i9u@GT)U&&01+5NAtLLQ_GB~a-{vCKj4ka7 z_-+W@C`-H!nMgbRra!Xv)$wnxxzoObu)l*&NZf%kMA^SXutWS0aO#Jae&^9%iLXH> zQqQ)L?gb+;2AN1bF;QKp+D0jnDU=h%LivPY2@!(+6p-VWD(jY6(8WFAt-b*r4-x z0w`sU635Ah-+iE15)Ne7afK-2d!EcVte2F25~w2*+&C`3{8iOrA(K@L<$^6#H9N1V znr+NOpgLYP#YB2|go0kA)V9$b|4xr~d33W!cYrpd5j~`+Fg-PXU{AI1jA72Hdd0S8 zdy-EIF_k_rp4nqBsD@=4`mB{6R`*SfrAMby0#>I?X2CX8)6xxVb|O79Gcl%)O^v2g zQ_`+w3bWX+5QT4(|B-G`j(-SskAfZrt$@yha=mf=T?Xa+5PZ)}3*S#dzD+HGz-ic6 zelzf0;5bmEBB7B;bWs_L#8Q!HmEZ2+$c|K`$625I;c^vtKhX7Uqi<&_(sno!N=4X~ z9w6KBXJ7)j$}b)1oQ!mhMm8hxbkPb~B z7YDC%dA__1h!>Lan%#J9FI=#d`jy2?q1lTsH`+fzZd|+(cxkZ{EA*wMo1fL|2kUmM z>(KRIA?D(xuGx#1kDU2v@!Hoi=+Wmdyp2LjlPyb=q4!5)PUqea#Ml#PTHiYxO5Ui~ z{VlOGEio#7cXs~|Rx9!=6z`o1ou(oXI}?a4;d|rBihIQ1>h45u3>*rd) z{k3#xN-D-0`;{uLbP^e*R6}d>1lfeE=E-Vp-?bvKLcF!gC-hqLEetlO@Z=bO%+p{~ld)HilroYF?8vS}-|3Ke%G2xsgd!iE)qh76; z&vxH~k@Z1;q;2D-NV~5C-BXgnA4#u&{N6p`N5V=M=E&zuV;%z!i1hkFOib`0Fc^v$ z{2mL3p=l-?4nGDq;m`5GKU&7o_MazNj@ zp#M1is}LOjRuP=1tAdr$tc3mm{$)CL1pTL1IJSw&KOs!DVcjEmM*B8pwg_4L<>m8>n1l4lIyjIPNxcg-p8+ywqvb@Vwim1Rcbb;4uN5OH+b)-s@Zm|V`KB5T z;ApDeXsYgLIx45T4u@tM!r_pUMOiE zUwrOsPt9XYkn7bSTgcStn)e7)RlRC@#+A=Qr!$SGk2-p6Dm9rNk*oZFQ*Hqw(?a9_ zBeJC2BKSK(G<$xH|0760nO3$m_%Rm|W6}wfdy~MsGj3;2y}Vx&sbf8?lYZRyLqOh% zVHUh66M21-ai}Mb0eOce&wDg63cfKOM8O>Rh3Ch6JCS)-#*_3%&>M#AC1JBru z$DBpXfR{i$;YFbIYyAJnG2$cZXYQ7M%+bV4(y77km!2QzfVr92&4M1Vt%Ns#RMYP& z29nq~F4FH!*vX?hC%5x|Fph%+gm>T_e0h%0k2$~VE`FC_Z}t3m7DVsjcLhFd8{;|u z%R#sfo?}m7y==!{fb56UKAcr;*aWieP%n?)-x~aQrbXe`Ne2&PKR$uXxQyrgUkE>G zqpRd^fM>luR08<_;$@e0zO)fP_o$=f2f<%o7F-{SemK)#!t3x0Hz*|A>iNlf&tpLD zlZy$3=|{ZJ^ON!Zh|Nr$1j#-GrlGj_D~{E-pyQnb4=ty^9M3p(91{s=G1+@%5GW-( Pw94-?Ci_`wZ1DRxVF2FB literal 0 HcmV?d00001 diff --git a/example/android/app/.cxx/Debug/28432r45/x86/CMakeFiles/3.22.1-g37088a8/CMakeDetermineCompilerABI_CXX.bin b/example/android/app/.cxx/Debug/28432r45/x86/CMakeFiles/3.22.1-g37088a8/CMakeDetermineCompilerABI_CXX.bin new file mode 100755 index 0000000000000000000000000000000000000000..de85dd4d05a567e88e0e12db687e63b8cdb7c712 GIT binary patch literal 5844 zcmdT|Z){uD6~BJA6Sq#Cv}tLe49w=Spr(F_ays zi9di$q@KBv9t0yX2AN1bQLQc49J8!uixst0teh}yAwtkU3FQ2xDu!(p4Y32foftAe zJ~Ipq?AGvB0a|{x; zf!QJjP|BPo&XW(nn?UhOxRBezH$)L%Y{-nmeo5&kfjT0=i{tUlr>2#P*_>9a6dj>y zxg}lG9dii+)$y7oGU?GV3S|nQMu|+%PH!D|?-yb^ePlAb-&xj7+cJ%LJ3Xo$nx06HPp1T|Zkz0~V``RdnD%@oJvWz` z&?ctG)2V4`*R#cW>|2P!x66NLFDTc66EO}l16l>Gg7UrlG3a?vt`ouc@T~AX8uIPx z2n3#njqPs+z6zWKic};t7KyGX6OmXd60PysI~wUrMf%?Sy_ikEbY%Nfq-Q*GGvXhXZJ5JLK<2s#WSggy(JevcA!JI05CiX? zy0~)b%F0^D%w@_)SJrx5X8!TB8eX2&@mO?q^-8^7Kb47vR#)HixQ^A;4?V8yS?Ztv z7}7nn4~m(~e@B$(nt*sA8L!ie*Y(sHN2y;}ITxBg`&_I2AE=EhYk_B1ws#5f?CRxr z>-Cws6YII>@=p+Rp_Vy%~scB+zue z@k}VWR)Lzws$UK4(cx=cTu4EoePu!G;XALO$5rVyVtm$l)2|_0kZK&^|}RJh&748 zW1|n7ko!3bWc{b#KjFuWuth`$cJ5DR!2Q|_CEroDWi2&e41?0no&O%>&7i};_dlsy zuR&(4w?LzyJS%PkWj{9pdm!&>$jmhgneQ0wctfnyX!i-|3!oS;^KSxUu|3;7fX;c2 zNcaG98xm~P;b`x`z+iGDkr?ia?ylx7JhN8G0Vz2U_LNK1W%ZhAM6F8HP7d$em)vLG z5zUqKN>aRX(1#tbEC=S&MegjOVPf>R47OSI~Jl zlunlSRBh`)Gv`E&k%i%rg`_bsG&D45?Cl>&n0s^mBgv7y3xnCgeluqd8i~Q7#2q5z zo+LzSu%S3YZfiT(xy8CV{$)=!CnhGpta-A6NbmNJg zSO~5wo<6SoZEjVi{6ko{8mtaV0m7YNe1V|<>v(_0v5fvhPy~+Ru|otiAbgKRo3DL0 zjG=br5+n=g+YE!DR`d@~_@pTzQL`df9JN5`nO8X{sw@LY4=e#k z*fpw=*X>+US2M+|t=r3LV?(MnnBWgFrG-n2hCWYhG&2t1f{8$|_0Xybh^uv; zzGqO}CP5X^DSAM8PvCc&51QSeuQeMfVlU)ZTjaYTA4FB~KoN(*oN2Mo(a>T)0$UeG z#&0!6=@cxQ{g8QvQ|6(^dlc)fPuVF8g_Gw#0>R z51=fCI4)fKUqRO(yYZp@5Hins7nB>sDfHhwTb1qNDh#}P^330c`H8^JvzYC-;unR? zbJ>%(2^BKWXix4IcR`j_m+i+OOW?Q2qZ?!q$182xRS~aPjv1GSZqdNzZRqlq#dvnH zSTgqD&J{P7E4Agah*R4*y4MMs?TH1wRuFOT$ufo&POql>s%&=zdH zY-$Aqeo_)~Tub2Px>jwI7Zy#oZGD+(U*i`bNIl}~>_3)jmh%5rJCA3s6+=y% zoJ~!+cQBMtZ;(PelsPh*%4kO>Cy!3dX>+Mj+|qEFoSB_SPp9V^wU?R=;w0pz)t##K zw^8pVsueJIIFGb%+Bh081&s@;rWrM>VO)Q8)yD6ePEDo94gCBhj zAWEC-_a1zR%vl1*LMQ>53(W4Fi1(r>c-bE*?nyxfbss`#;^{$68H1_iy}u)bQgPutpPmRMYPw zCX&eYl_33o1_gO^=hk@sC&%$gKzJ8^jVI3&`my%+T*vPm?41oio(a+G_+5Yxb7MUB zKSBssz;o^i?3a1`3CMA{{o>5(!6uNoL)~1zzqI)AZ0m&|@39i(IQ|9&<1(K6-zEH{ zjlPm!1J8c@sRZ!9&hsAYK4~Mq-=MA%j}U@CBZU^5AI|iba2kHQS`?D)Z1~B3e~Afs zQoc-ROh4jH4L=!gumksM8X6$k+rhLn7c=;y?`7!tEyDTXcsZYO=r|`$z#<-$L7>24 & 0x00FF) +# define COMPILER_VERSION_MINOR HEX(__CODEGEARC_VERSION__>>16 & 0x00FF) +# define COMPILER_VERSION_PATCH DEC(__CODEGEARC_VERSION__ & 0xFFFF) + +#elif defined(__BORLANDC__) +# define COMPILER_ID "Borland" + /* __BORLANDC__ = 0xVRR */ +# define COMPILER_VERSION_MAJOR HEX(__BORLANDC__>>8) +# define COMPILER_VERSION_MINOR HEX(__BORLANDC__ & 0xFF) + +#elif defined(__WATCOMC__) && __WATCOMC__ < 1200 +# define COMPILER_ID "Watcom" + /* __WATCOMC__ = VVRR */ +# define COMPILER_VERSION_MAJOR DEC(__WATCOMC__ / 100) +# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10) +# if (__WATCOMC__ % 10) > 0 +# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10) +# endif + +#elif defined(__WATCOMC__) +# define COMPILER_ID "OpenWatcom" + /* __WATCOMC__ = VVRP + 1100 */ +# define COMPILER_VERSION_MAJOR DEC((__WATCOMC__ - 1100) / 100) +# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10) +# if (__WATCOMC__ % 10) > 0 +# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10) +# endif + +#elif defined(__SUNPRO_C) +# define COMPILER_ID "SunPro" +# if __SUNPRO_C >= 0x5100 + /* __SUNPRO_C = 0xVRRP */ +# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_C>>12) +# define COMPILER_VERSION_MINOR HEX(__SUNPRO_C>>4 & 0xFF) +# define COMPILER_VERSION_PATCH HEX(__SUNPRO_C & 0xF) +# else + /* __SUNPRO_CC = 0xVRP */ +# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_C>>8) +# define COMPILER_VERSION_MINOR HEX(__SUNPRO_C>>4 & 0xF) +# define COMPILER_VERSION_PATCH HEX(__SUNPRO_C & 0xF) +# endif + +#elif defined(__HP_cc) +# define COMPILER_ID "HP" + /* __HP_cc = VVRRPP */ +# define COMPILER_VERSION_MAJOR DEC(__HP_cc/10000) +# define COMPILER_VERSION_MINOR DEC(__HP_cc/100 % 100) +# define COMPILER_VERSION_PATCH DEC(__HP_cc % 100) + +#elif defined(__DECC) +# define COMPILER_ID "Compaq" + /* __DECC_VER = VVRRTPPPP */ +# define COMPILER_VERSION_MAJOR DEC(__DECC_VER/10000000) +# define COMPILER_VERSION_MINOR DEC(__DECC_VER/100000 % 100) +# define COMPILER_VERSION_PATCH DEC(__DECC_VER % 10000) + +#elif defined(__IBMC__) && defined(__COMPILER_VER__) +# define COMPILER_ID "zOS" + /* __IBMC__ = VRP */ +# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100) +# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10) +# define COMPILER_VERSION_PATCH DEC(__IBMC__ % 10) + +#elif defined(__ibmxl__) && defined(__clang__) +# define COMPILER_ID "XLClang" +# define COMPILER_VERSION_MAJOR DEC(__ibmxl_version__) +# define COMPILER_VERSION_MINOR DEC(__ibmxl_release__) +# define COMPILER_VERSION_PATCH DEC(__ibmxl_modification__) +# define COMPILER_VERSION_TWEAK DEC(__ibmxl_ptf_fix_level__) + + +#elif defined(__IBMC__) && !defined(__COMPILER_VER__) && __IBMC__ >= 800 +# define COMPILER_ID "XL" + /* __IBMC__ = VRP */ +# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100) +# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10) +# define COMPILER_VERSION_PATCH DEC(__IBMC__ % 10) + +#elif defined(__IBMC__) && !defined(__COMPILER_VER__) && __IBMC__ < 800 +# define COMPILER_ID "VisualAge" + /* __IBMC__ = VRP */ +# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100) +# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10) +# define COMPILER_VERSION_PATCH DEC(__IBMC__ % 10) + +#elif defined(__NVCOMPILER) +# define COMPILER_ID "NVHPC" +# define COMPILER_VERSION_MAJOR DEC(__NVCOMPILER_MAJOR__) +# define COMPILER_VERSION_MINOR DEC(__NVCOMPILER_MINOR__) +# if defined(__NVCOMPILER_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__NVCOMPILER_PATCHLEVEL__) +# endif + +#elif defined(__PGI) +# define COMPILER_ID "PGI" +# define COMPILER_VERSION_MAJOR DEC(__PGIC__) +# define COMPILER_VERSION_MINOR DEC(__PGIC_MINOR__) +# if defined(__PGIC_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__PGIC_PATCHLEVEL__) +# endif + +#elif defined(_CRAYC) +# define COMPILER_ID "Cray" +# define COMPILER_VERSION_MAJOR DEC(_RELEASE_MAJOR) +# define COMPILER_VERSION_MINOR DEC(_RELEASE_MINOR) + +#elif defined(__TI_COMPILER_VERSION__) +# define COMPILER_ID "TI" + /* __TI_COMPILER_VERSION__ = VVVRRRPPP */ +# define COMPILER_VERSION_MAJOR DEC(__TI_COMPILER_VERSION__/1000000) +# define COMPILER_VERSION_MINOR DEC(__TI_COMPILER_VERSION__/1000 % 1000) +# define COMPILER_VERSION_PATCH DEC(__TI_COMPILER_VERSION__ % 1000) + +#elif defined(__CLANG_FUJITSU) +# define COMPILER_ID "FujitsuClang" +# define COMPILER_VERSION_MAJOR DEC(__FCC_major__) +# define COMPILER_VERSION_MINOR DEC(__FCC_minor__) +# define COMPILER_VERSION_PATCH DEC(__FCC_patchlevel__) +# define COMPILER_VERSION_INTERNAL_STR __clang_version__ + + +#elif defined(__FUJITSU) +# define COMPILER_ID "Fujitsu" +# if defined(__FCC_version__) +# define COMPILER_VERSION __FCC_version__ +# elif defined(__FCC_major__) +# define COMPILER_VERSION_MAJOR DEC(__FCC_major__) +# define COMPILER_VERSION_MINOR DEC(__FCC_minor__) +# define COMPILER_VERSION_PATCH DEC(__FCC_patchlevel__) +# endif +# if defined(__fcc_version) +# define COMPILER_VERSION_INTERNAL DEC(__fcc_version) +# elif defined(__FCC_VERSION) +# define COMPILER_VERSION_INTERNAL DEC(__FCC_VERSION) +# endif + + +#elif defined(__ghs__) +# define COMPILER_ID "GHS" +/* __GHS_VERSION_NUMBER = VVVVRP */ +# ifdef __GHS_VERSION_NUMBER +# define COMPILER_VERSION_MAJOR DEC(__GHS_VERSION_NUMBER / 100) +# define COMPILER_VERSION_MINOR DEC(__GHS_VERSION_NUMBER / 10 % 10) +# define COMPILER_VERSION_PATCH DEC(__GHS_VERSION_NUMBER % 10) +# endif + +#elif defined(__TINYC__) +# define COMPILER_ID "TinyCC" + +#elif defined(__BCC__) +# define COMPILER_ID "Bruce" + +#elif defined(__SCO_VERSION__) +# define COMPILER_ID "SCO" + +#elif defined(__ARMCC_VERSION) && !defined(__clang__) +# define COMPILER_ID "ARMCC" +#if __ARMCC_VERSION >= 1000000 + /* __ARMCC_VERSION = VRRPPPP */ + # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/1000000) + # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 100) + # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000) +#else + /* __ARMCC_VERSION = VRPPPP */ + # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/100000) + # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 10) + # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000) +#endif + + +#elif defined(__clang__) && defined(__apple_build_version__) +# define COMPILER_ID "AppleClang" +# if defined(_MSC_VER) +# define SIMULATE_ID "MSVC" +# endif +# define COMPILER_VERSION_MAJOR DEC(__clang_major__) +# define COMPILER_VERSION_MINOR DEC(__clang_minor__) +# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__) +# if defined(_MSC_VER) + /* _MSC_VER = VVRR */ +# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) +# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) +# endif +# define COMPILER_VERSION_TWEAK DEC(__apple_build_version__) + +#elif defined(__clang__) && defined(__ARMCOMPILER_VERSION) +# define COMPILER_ID "ARMClang" + # define COMPILER_VERSION_MAJOR DEC(__ARMCOMPILER_VERSION/1000000) + # define COMPILER_VERSION_MINOR DEC(__ARMCOMPILER_VERSION/10000 % 100) + # define COMPILER_VERSION_PATCH DEC(__ARMCOMPILER_VERSION % 10000) +# define COMPILER_VERSION_INTERNAL DEC(__ARMCOMPILER_VERSION) + +#elif defined(__clang__) +# define COMPILER_ID "Clang" +# if defined(_MSC_VER) +# define SIMULATE_ID "MSVC" +# endif +# define COMPILER_VERSION_MAJOR DEC(__clang_major__) +# define COMPILER_VERSION_MINOR DEC(__clang_minor__) +# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__) +# if defined(_MSC_VER) + /* _MSC_VER = VVRR */ +# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) +# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) +# endif + +#elif defined(__GNUC__) +# define COMPILER_ID "GNU" +# define COMPILER_VERSION_MAJOR DEC(__GNUC__) +# if defined(__GNUC_MINOR__) +# define COMPILER_VERSION_MINOR DEC(__GNUC_MINOR__) +# endif +# if defined(__GNUC_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) +# endif + +#elif defined(_MSC_VER) +# define COMPILER_ID "MSVC" + /* _MSC_VER = VVRR */ +# define COMPILER_VERSION_MAJOR DEC(_MSC_VER / 100) +# define COMPILER_VERSION_MINOR DEC(_MSC_VER % 100) +# if defined(_MSC_FULL_VER) +# if _MSC_VER >= 1400 + /* _MSC_FULL_VER = VVRRPPPPP */ +# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 100000) +# else + /* _MSC_FULL_VER = VVRRPPPP */ +# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 10000) +# endif +# endif +# if defined(_MSC_BUILD) +# define COMPILER_VERSION_TWEAK DEC(_MSC_BUILD) +# endif + +#elif defined(__VISUALDSPVERSION__) || defined(__ADSPBLACKFIN__) || defined(__ADSPTS__) || defined(__ADSP21000__) +# define COMPILER_ID "ADSP" +#if defined(__VISUALDSPVERSION__) + /* __VISUALDSPVERSION__ = 0xVVRRPP00 */ +# define COMPILER_VERSION_MAJOR HEX(__VISUALDSPVERSION__>>24) +# define COMPILER_VERSION_MINOR HEX(__VISUALDSPVERSION__>>16 & 0xFF) +# define COMPILER_VERSION_PATCH HEX(__VISUALDSPVERSION__>>8 & 0xFF) +#endif + +#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC) +# define COMPILER_ID "IAR" +# if defined(__VER__) && defined(__ICCARM__) +# define COMPILER_VERSION_MAJOR DEC((__VER__) / 1000000) +# define COMPILER_VERSION_MINOR DEC(((__VER__) / 1000) % 1000) +# define COMPILER_VERSION_PATCH DEC((__VER__) % 1000) +# define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__) +# elif defined(__VER__) && (defined(__ICCAVR__) || defined(__ICCRX__) || defined(__ICCRH850__) || defined(__ICCRL78__) || defined(__ICC430__) || defined(__ICCRISCV__) || defined(__ICCV850__) || defined(__ICC8051__) || defined(__ICCSTM8__)) +# define COMPILER_VERSION_MAJOR DEC((__VER__) / 100) +# define COMPILER_VERSION_MINOR DEC((__VER__) - (((__VER__) / 100)*100)) +# define COMPILER_VERSION_PATCH DEC(__SUBVERSION__) +# define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__) +# endif + +#elif defined(__SDCC_VERSION_MAJOR) || defined(SDCC) +# define COMPILER_ID "SDCC" +# if defined(__SDCC_VERSION_MAJOR) +# define COMPILER_VERSION_MAJOR DEC(__SDCC_VERSION_MAJOR) +# define COMPILER_VERSION_MINOR DEC(__SDCC_VERSION_MINOR) +# define COMPILER_VERSION_PATCH DEC(__SDCC_VERSION_PATCH) +# else + /* SDCC = VRP */ +# define COMPILER_VERSION_MAJOR DEC(SDCC/100) +# define COMPILER_VERSION_MINOR DEC(SDCC/10 % 10) +# define COMPILER_VERSION_PATCH DEC(SDCC % 10) +# endif + + +/* These compilers are either not known or too old to define an + identification macro. Try to identify the platform and guess that + it is the native compiler. */ +#elif defined(__hpux) || defined(__hpua) +# define COMPILER_ID "HP" + +#else /* unknown compiler */ +# define COMPILER_ID "" +#endif + +/* Construct the string literal in pieces to prevent the source from + getting matched. Store it in a pointer rather than an array + because some compilers will just produce instructions to fill the + array rather than assigning a pointer to a static array. */ +char const* info_compiler = "INFO" ":" "compiler[" COMPILER_ID "]"; +#ifdef SIMULATE_ID +char const* info_simulate = "INFO" ":" "simulate[" SIMULATE_ID "]"; +#endif + +#ifdef __QNXNTO__ +char const* qnxnto = "INFO" ":" "qnxnto[]"; +#endif + +#if defined(__CRAYXT_COMPUTE_LINUX_TARGET) +char const *info_cray = "INFO" ":" "compiler_wrapper[CrayPrgEnv]"; +#endif + +#define STRINGIFY_HELPER(X) #X +#define STRINGIFY(X) STRINGIFY_HELPER(X) + +/* Identify known platforms by name. */ +#if defined(__linux) || defined(__linux__) || defined(linux) +# define PLATFORM_ID "Linux" + +#elif defined(__MSYS__) +# define PLATFORM_ID "MSYS" + +#elif defined(__CYGWIN__) +# define PLATFORM_ID "Cygwin" + +#elif defined(__MINGW32__) +# define PLATFORM_ID "MinGW" + +#elif defined(__APPLE__) +# define PLATFORM_ID "Darwin" + +#elif defined(_WIN32) || defined(__WIN32__) || defined(WIN32) +# define PLATFORM_ID "Windows" + +#elif defined(__FreeBSD__) || defined(__FreeBSD) +# define PLATFORM_ID "FreeBSD" + +#elif defined(__NetBSD__) || defined(__NetBSD) +# define PLATFORM_ID "NetBSD" + +#elif defined(__OpenBSD__) || defined(__OPENBSD) +# define PLATFORM_ID "OpenBSD" + +#elif defined(__sun) || defined(sun) +# define PLATFORM_ID "SunOS" + +#elif defined(_AIX) || defined(__AIX) || defined(__AIX__) || defined(__aix) || defined(__aix__) +# define PLATFORM_ID "AIX" + +#elif defined(__hpux) || defined(__hpux__) +# define PLATFORM_ID "HP-UX" + +#elif defined(__HAIKU__) +# define PLATFORM_ID "Haiku" + +#elif defined(__BeOS) || defined(__BEOS__) || defined(_BEOS) +# define PLATFORM_ID "BeOS" + +#elif defined(__QNX__) || defined(__QNXNTO__) +# define PLATFORM_ID "QNX" + +#elif defined(__tru64) || defined(_tru64) || defined(__TRU64__) +# define PLATFORM_ID "Tru64" + +#elif defined(__riscos) || defined(__riscos__) +# define PLATFORM_ID "RISCos" + +#elif defined(__sinix) || defined(__sinix__) || defined(__SINIX__) +# define PLATFORM_ID "SINIX" + +#elif defined(__UNIX_SV__) +# define PLATFORM_ID "UNIX_SV" + +#elif defined(__bsdos__) +# define PLATFORM_ID "BSDOS" + +#elif defined(_MPRAS) || defined(MPRAS) +# define PLATFORM_ID "MP-RAS" + +#elif defined(__osf) || defined(__osf__) +# define PLATFORM_ID "OSF1" + +#elif defined(_SCO_SV) || defined(SCO_SV) || defined(sco_sv) +# define PLATFORM_ID "SCO_SV" + +#elif defined(__ultrix) || defined(__ultrix__) || defined(_ULTRIX) +# define PLATFORM_ID "ULTRIX" + +#elif defined(__XENIX__) || defined(_XENIX) || defined(XENIX) +# define PLATFORM_ID "Xenix" + +#elif defined(__WATCOMC__) +# if defined(__LINUX__) +# define PLATFORM_ID "Linux" + +# elif defined(__DOS__) +# define PLATFORM_ID "DOS" + +# elif defined(__OS2__) +# define PLATFORM_ID "OS2" + +# elif defined(__WINDOWS__) +# define PLATFORM_ID "Windows3x" + +# elif defined(__VXWORKS__) +# define PLATFORM_ID "VxWorks" + +# else /* unknown platform */ +# define PLATFORM_ID +# endif + +#elif defined(__INTEGRITY) +# if defined(INT_178B) +# define PLATFORM_ID "Integrity178" + +# else /* regular Integrity */ +# define PLATFORM_ID "Integrity" +# endif + +#else /* unknown platform */ +# define PLATFORM_ID + +#endif + +/* For windows compilers MSVC and Intel we can determine + the architecture of the compiler being used. This is because + the compilers do not have flags that can change the architecture, + but rather depend on which compiler is being used +*/ +#if defined(_WIN32) && defined(_MSC_VER) +# if defined(_M_IA64) +# define ARCHITECTURE_ID "IA64" + +# elif defined(_M_ARM64EC) +# define ARCHITECTURE_ID "ARM64EC" + +# elif defined(_M_X64) || defined(_M_AMD64) +# define ARCHITECTURE_ID "x64" + +# elif defined(_M_IX86) +# define ARCHITECTURE_ID "X86" + +# elif defined(_M_ARM64) +# define ARCHITECTURE_ID "ARM64" + +# elif defined(_M_ARM) +# if _M_ARM == 4 +# define ARCHITECTURE_ID "ARMV4I" +# elif _M_ARM == 5 +# define ARCHITECTURE_ID "ARMV5I" +# else +# define ARCHITECTURE_ID "ARMV" STRINGIFY(_M_ARM) +# endif + +# elif defined(_M_MIPS) +# define ARCHITECTURE_ID "MIPS" + +# elif defined(_M_SH) +# define ARCHITECTURE_ID "SHx" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#elif defined(__WATCOMC__) +# if defined(_M_I86) +# define ARCHITECTURE_ID "I86" + +# elif defined(_M_IX86) +# define ARCHITECTURE_ID "X86" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC) +# if defined(__ICCARM__) +# define ARCHITECTURE_ID "ARM" + +# elif defined(__ICCRX__) +# define ARCHITECTURE_ID "RX" + +# elif defined(__ICCRH850__) +# define ARCHITECTURE_ID "RH850" + +# elif defined(__ICCRL78__) +# define ARCHITECTURE_ID "RL78" + +# elif defined(__ICCRISCV__) +# define ARCHITECTURE_ID "RISCV" + +# elif defined(__ICCAVR__) +# define ARCHITECTURE_ID "AVR" + +# elif defined(__ICC430__) +# define ARCHITECTURE_ID "MSP430" + +# elif defined(__ICCV850__) +# define ARCHITECTURE_ID "V850" + +# elif defined(__ICC8051__) +# define ARCHITECTURE_ID "8051" + +# elif defined(__ICCSTM8__) +# define ARCHITECTURE_ID "STM8" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#elif defined(__ghs__) +# if defined(__PPC64__) +# define ARCHITECTURE_ID "PPC64" + +# elif defined(__ppc__) +# define ARCHITECTURE_ID "PPC" + +# elif defined(__ARM__) +# define ARCHITECTURE_ID "ARM" + +# elif defined(__x86_64__) +# define ARCHITECTURE_ID "x64" + +# elif defined(__i386__) +# define ARCHITECTURE_ID "X86" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#elif defined(__TI_COMPILER_VERSION__) +# if defined(__TI_ARM__) +# define ARCHITECTURE_ID "ARM" + +# elif defined(__MSP430__) +# define ARCHITECTURE_ID "MSP430" + +# elif defined(__TMS320C28XX__) +# define ARCHITECTURE_ID "TMS320C28x" + +# elif defined(__TMS320C6X__) || defined(_TMS320C6X) +# define ARCHITECTURE_ID "TMS320C6x" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#else +# define ARCHITECTURE_ID +#endif + +/* Convert integer to decimal digit literals. */ +#define DEC(n) \ + ('0' + (((n) / 10000000)%10)), \ + ('0' + (((n) / 1000000)%10)), \ + ('0' + (((n) / 100000)%10)), \ + ('0' + (((n) / 10000)%10)), \ + ('0' + (((n) / 1000)%10)), \ + ('0' + (((n) / 100)%10)), \ + ('0' + (((n) / 10)%10)), \ + ('0' + ((n) % 10)) + +/* Convert integer to hex digit literals. */ +#define HEX(n) \ + ('0' + ((n)>>28 & 0xF)), \ + ('0' + ((n)>>24 & 0xF)), \ + ('0' + ((n)>>20 & 0xF)), \ + ('0' + ((n)>>16 & 0xF)), \ + ('0' + ((n)>>12 & 0xF)), \ + ('0' + ((n)>>8 & 0xF)), \ + ('0' + ((n)>>4 & 0xF)), \ + ('0' + ((n) & 0xF)) + +/* Construct a string literal encoding the version number. */ +#ifdef COMPILER_VERSION +char const* info_version = "INFO" ":" "compiler_version[" COMPILER_VERSION "]"; + +/* Construct a string literal encoding the version number components. */ +#elif defined(COMPILER_VERSION_MAJOR) +char const info_version[] = { + 'I', 'N', 'F', 'O', ':', + 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','[', + COMPILER_VERSION_MAJOR, +# ifdef COMPILER_VERSION_MINOR + '.', COMPILER_VERSION_MINOR, +# ifdef COMPILER_VERSION_PATCH + '.', COMPILER_VERSION_PATCH, +# ifdef COMPILER_VERSION_TWEAK + '.', COMPILER_VERSION_TWEAK, +# endif +# endif +# endif + ']','\0'}; +#endif + +/* Construct a string literal encoding the internal version number. */ +#ifdef COMPILER_VERSION_INTERNAL +char const info_version_internal[] = { + 'I', 'N', 'F', 'O', ':', + 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','_', + 'i','n','t','e','r','n','a','l','[', + COMPILER_VERSION_INTERNAL,']','\0'}; +#elif defined(COMPILER_VERSION_INTERNAL_STR) +char const* info_version_internal = "INFO" ":" "compiler_version_internal[" COMPILER_VERSION_INTERNAL_STR "]"; +#endif + +/* Construct a string literal encoding the version number components. */ +#ifdef SIMULATE_VERSION_MAJOR +char const info_simulate_version[] = { + 'I', 'N', 'F', 'O', ':', + 's','i','m','u','l','a','t','e','_','v','e','r','s','i','o','n','[', + SIMULATE_VERSION_MAJOR, +# ifdef SIMULATE_VERSION_MINOR + '.', SIMULATE_VERSION_MINOR, +# ifdef SIMULATE_VERSION_PATCH + '.', SIMULATE_VERSION_PATCH, +# ifdef SIMULATE_VERSION_TWEAK + '.', SIMULATE_VERSION_TWEAK, +# endif +# endif +# endif + ']','\0'}; +#endif + +/* Construct the string literal in pieces to prevent the source from + getting matched. Store it in a pointer rather than an array + because some compilers will just produce instructions to fill the + array rather than assigning a pointer to a static array. */ +char const* info_platform = "INFO" ":" "platform[" PLATFORM_ID "]"; +char const* info_arch = "INFO" ":" "arch[" ARCHITECTURE_ID "]"; + + + +#if !defined(__STDC__) && !defined(__clang__) +# if defined(_MSC_VER) || defined(__ibmxl__) || defined(__IBMC__) +# define C_VERSION "90" +# else +# define C_VERSION +# endif +#elif __STDC_VERSION__ > 201710L +# define C_VERSION "23" +#elif __STDC_VERSION__ >= 201710L +# define C_VERSION "17" +#elif __STDC_VERSION__ >= 201000L +# define C_VERSION "11" +#elif __STDC_VERSION__ >= 199901L +# define C_VERSION "99" +#else +# define C_VERSION "90" +#endif +const char* info_language_standard_default = + "INFO" ":" "standard_default[" C_VERSION "]"; + +const char* info_language_extensions_default = "INFO" ":" "extensions_default[" +/* !defined(_MSC_VER) to exclude Clang's MSVC compatibility mode. */ +#if (defined(__clang__) || defined(__GNUC__) || \ + defined(__TI_COMPILER_VERSION__)) && \ + !defined(__STRICT_ANSI__) && !defined(_MSC_VER) + "ON" +#else + "OFF" +#endif +"]"; + +/*--------------------------------------------------------------------------*/ + +#ifdef ID_VOID_MAIN +void main() {} +#else +# if defined(__CLASSIC_C__) +int main(argc, argv) int argc; char *argv[]; +# else +int main(int argc, char* argv[]) +# endif +{ + int require = 0; + require += info_compiler[argc]; + require += info_platform[argc]; + require += info_arch[argc]; +#ifdef COMPILER_VERSION_MAJOR + require += info_version[argc]; +#endif +#ifdef COMPILER_VERSION_INTERNAL + require += info_version_internal[argc]; +#endif +#ifdef SIMULATE_ID + require += info_simulate[argc]; +#endif +#ifdef SIMULATE_VERSION_MAJOR + require += info_simulate_version[argc]; +#endif +#if defined(__CRAYXT_COMPUTE_LINUX_TARGET) + require += info_cray[argc]; +#endif + require += info_language_standard_default[argc]; + require += info_language_extensions_default[argc]; + (void)argv; + return require; +} +#endif diff --git a/example/android/app/.cxx/Debug/28432r45/x86/CMakeFiles/3.22.1-g37088a8/CompilerIdC/CMakeCCompilerId.o b/example/android/app/.cxx/Debug/28432r45/x86/CMakeFiles/3.22.1-g37088a8/CompilerIdC/CMakeCCompilerId.o new file mode 100644 index 0000000000000000000000000000000000000000..7e828066eae635e478fc8ca44b8e813dcce72aae GIT binary patch literal 3944 zcmdT{U2G%O6+UBoY$x`5Nz#Q~vLI8^HWV@w|7`3mXh}AkY=e@`D!Y+N!)iLQ$Bx;t z$Bf4zplxBH6-2vIf7q%;r4OlSC4~A?sTJ)5szfDJRh267gw!H|sM?2>fVN1LKq}uE z-|LLcrsB0nx%WGN_niBC#(83XX+cpGlB7_W_9UWsqGQSXFiuB%tVC-&e|!4fkDtCC z{|7sK_44n+fGf+%E6efMPmM)b`FdoG;mWgqzZO6EYH}!?9NS5beMZ$XhFp#F=>3O1 z=?7=eNIV=F+lh=_L4WuZB*{Yar+gr~RgvHwStVXNmG+JHT%9#s11*V>q#+K!>=lY~inS$0~ zCMPA6<$;ILzKk}7b{0(;QofKHQNyX5ZW&DtDZ^2sP@Wb?jwkL_Lx-^win2ID6uASs z0?tSsqj2g(A^|qaY$9<2Y%C9Uape9Za#;Kz{D}s>=)<6fG{e!E!{HP=eCY_g5+zg$ z2^Bjh^F1Pc6ZgYESc>>JM|}@aDxX%Q&oof3vF}Jo!H;B2GpI<<0oJd?@g zr?c7OJ?XofRR{fsV|xJGgD_FIS+`-fta93Eq}_b6P{d^s~U zHI*wLo6KabW2MRI{PeL(ZX-8om8@Jjo14nsMRUvMMQd(OJjTVcRw8|^h4-PCt9W=d zQ$OXD+I6epwe*VJ_B_iqnvPv7J!V*qYOP`E*0x!1+LoN7ZZ?~`R@&ayPgxu7s-7+8 zb6GckOy4d}>3+5aJo}cO)3RADGf~YICW}S0sP9c-j<6z^3}be6b@oBy+~U{fjq?wl zoi_}sH7brFD@R8XTh~>P#v2KFON*OTHFRJ7VB9q!sjqnoh9 z?I}PwRZ%CpCLX4Dr9n7`qxU7WPzY1vbiH(EKo_A8{u{K0@qGrkI8cdw%k z(-Hc;@Yn?oW5hxr-%ZdxBkWwHhbT&K^vDDBQIDLUUkEwt`^V{AkNp6R_s9qR84lum zd=K;k14Q>TqSCE0;;Zv8W0Gi#@c_{dV+tKe5zGHyh;JP!m^?y|g6$a=crzo6w+i`o zMjZDfBjU~q{Z|C82z-bU^SmhJZAJwDJ|o8cQ0QM|#5#T{^sfp1pBb^Pw}k#Zq5qf> z>l?)WbDU8|%y*m->z!c4{0c(P=fw6kfn|Y@2uvd$t`rqGE?;A<%vH@WH#S^ri!=`v zgSZlNg(S_jY^`j1rsfx_Zq>O#S=rC^Qw2&SY(-5`fQH$7<_2l4$Lfs6 z>7|vEvrERx!os=v^TzqvlS}hPciM2yXc_GFXQU~d6^^<~FYvvBPLgB~Lcu)WWv0&W z=MK+3zfGoB(Sm+6kay7}@q1?aEgDkM3>s4&@2?0PMdSH!JgDd)1mk#FG^V%FY@h3N zY~yxWpj^vYDCL~kQ}W*cAIxhb3FqOwyf&HlXW%(5Ut6a05ab+KW*gI=(3qEb`8yzU zv0d_i03Xcj1@f|9=KTfL` ze7?hIGOr7shjXoE`V|iF-+l2|O$+_{k QQ!%3VfgA^{@5gWW6OO7!n*aa+ literal 0 HcmV?d00001 diff --git a/example/android/app/.cxx/Debug/28432r45/x86/CMakeFiles/3.22.1-g37088a8/CompilerIdCXX/CMakeCXXCompilerId.cpp b/example/android/app/.cxx/Debug/28432r45/x86/CMakeFiles/3.22.1-g37088a8/CompilerIdCXX/CMakeCXXCompilerId.cpp new file mode 100644 index 0000000..25c62a8 --- /dev/null +++ b/example/android/app/.cxx/Debug/28432r45/x86/CMakeFiles/3.22.1-g37088a8/CompilerIdCXX/CMakeCXXCompilerId.cpp @@ -0,0 +1,791 @@ +/* This source file must have a .cpp extension so that all C++ compilers + recognize the extension without flags. Borland does not know .cxx for + example. */ +#ifndef __cplusplus +# error "A C compiler has been selected for C++." +#endif + +#if !defined(__has_include) +/* If the compiler does not have __has_include, pretend the answer is + always no. */ +# define __has_include(x) 0 +#endif + + +/* Version number components: V=Version, R=Revision, P=Patch + Version date components: YYYY=Year, MM=Month, DD=Day */ + +#if defined(__COMO__) +# define COMPILER_ID "Comeau" + /* __COMO_VERSION__ = VRR */ +# define COMPILER_VERSION_MAJOR DEC(__COMO_VERSION__ / 100) +# define COMPILER_VERSION_MINOR DEC(__COMO_VERSION__ % 100) + +#elif defined(__INTEL_COMPILER) || defined(__ICC) +# define COMPILER_ID "Intel" +# if defined(_MSC_VER) +# define SIMULATE_ID "MSVC" +# endif +# if defined(__GNUC__) +# define SIMULATE_ID "GNU" +# endif + /* __INTEL_COMPILER = VRP prior to 2021, and then VVVV for 2021 and later, + except that a few beta releases use the old format with V=2021. */ +# if __INTEL_COMPILER < 2021 || __INTEL_COMPILER == 202110 || __INTEL_COMPILER == 202111 +# define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER/100) +# define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER/10 % 10) +# if defined(__INTEL_COMPILER_UPDATE) +# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER_UPDATE) +# else +# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER % 10) +# endif +# else +# define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER) +# define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER_UPDATE) + /* The third version component from --version is an update index, + but no macro is provided for it. */ +# define COMPILER_VERSION_PATCH DEC(0) +# endif +# if defined(__INTEL_COMPILER_BUILD_DATE) + /* __INTEL_COMPILER_BUILD_DATE = YYYYMMDD */ +# define COMPILER_VERSION_TWEAK DEC(__INTEL_COMPILER_BUILD_DATE) +# endif +# if defined(_MSC_VER) + /* _MSC_VER = VVRR */ +# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) +# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) +# endif +# if defined(__GNUC__) +# define SIMULATE_VERSION_MAJOR DEC(__GNUC__) +# elif defined(__GNUG__) +# define SIMULATE_VERSION_MAJOR DEC(__GNUG__) +# endif +# if defined(__GNUC_MINOR__) +# define SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__) +# endif +# if defined(__GNUC_PATCHLEVEL__) +# define SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) +# endif + +#elif (defined(__clang__) && defined(__INTEL_CLANG_COMPILER)) || defined(__INTEL_LLVM_COMPILER) +# define COMPILER_ID "IntelLLVM" +#if defined(_MSC_VER) +# define SIMULATE_ID "MSVC" +#endif +#if defined(__GNUC__) +# define SIMULATE_ID "GNU" +#endif +/* __INTEL_LLVM_COMPILER = VVVVRP prior to 2021.2.0, VVVVRRPP for 2021.2.0 and + * later. Look for 6 digit vs. 8 digit version number to decide encoding. + * VVVV is no smaller than the current year when a version is released. + */ +#if __INTEL_LLVM_COMPILER < 1000000L +# define COMPILER_VERSION_MAJOR DEC(__INTEL_LLVM_COMPILER/100) +# define COMPILER_VERSION_MINOR DEC(__INTEL_LLVM_COMPILER/10 % 10) +# define COMPILER_VERSION_PATCH DEC(__INTEL_LLVM_COMPILER % 10) +#else +# define COMPILER_VERSION_MAJOR DEC(__INTEL_LLVM_COMPILER/10000) +# define COMPILER_VERSION_MINOR DEC(__INTEL_LLVM_COMPILER/100 % 100) +# define COMPILER_VERSION_PATCH DEC(__INTEL_LLVM_COMPILER % 100) +#endif +#if defined(_MSC_VER) + /* _MSC_VER = VVRR */ +# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) +# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) +#endif +#if defined(__GNUC__) +# define SIMULATE_VERSION_MAJOR DEC(__GNUC__) +#elif defined(__GNUG__) +# define SIMULATE_VERSION_MAJOR DEC(__GNUG__) +#endif +#if defined(__GNUC_MINOR__) +# define SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__) +#endif +#if defined(__GNUC_PATCHLEVEL__) +# define SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) +#endif + +#elif defined(__PATHCC__) +# define COMPILER_ID "PathScale" +# define COMPILER_VERSION_MAJOR DEC(__PATHCC__) +# define COMPILER_VERSION_MINOR DEC(__PATHCC_MINOR__) +# if defined(__PATHCC_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__PATHCC_PATCHLEVEL__) +# endif + +#elif defined(__BORLANDC__) && defined(__CODEGEARC_VERSION__) +# define COMPILER_ID "Embarcadero" +# define COMPILER_VERSION_MAJOR HEX(__CODEGEARC_VERSION__>>24 & 0x00FF) +# define COMPILER_VERSION_MINOR HEX(__CODEGEARC_VERSION__>>16 & 0x00FF) +# define COMPILER_VERSION_PATCH DEC(__CODEGEARC_VERSION__ & 0xFFFF) + +#elif defined(__BORLANDC__) +# define COMPILER_ID "Borland" + /* __BORLANDC__ = 0xVRR */ +# define COMPILER_VERSION_MAJOR HEX(__BORLANDC__>>8) +# define COMPILER_VERSION_MINOR HEX(__BORLANDC__ & 0xFF) + +#elif defined(__WATCOMC__) && __WATCOMC__ < 1200 +# define COMPILER_ID "Watcom" + /* __WATCOMC__ = VVRR */ +# define COMPILER_VERSION_MAJOR DEC(__WATCOMC__ / 100) +# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10) +# if (__WATCOMC__ % 10) > 0 +# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10) +# endif + +#elif defined(__WATCOMC__) +# define COMPILER_ID "OpenWatcom" + /* __WATCOMC__ = VVRP + 1100 */ +# define COMPILER_VERSION_MAJOR DEC((__WATCOMC__ - 1100) / 100) +# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10) +# if (__WATCOMC__ % 10) > 0 +# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10) +# endif + +#elif defined(__SUNPRO_CC) +# define COMPILER_ID "SunPro" +# if __SUNPRO_CC >= 0x5100 + /* __SUNPRO_CC = 0xVRRP */ +# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_CC>>12) +# define COMPILER_VERSION_MINOR HEX(__SUNPRO_CC>>4 & 0xFF) +# define COMPILER_VERSION_PATCH HEX(__SUNPRO_CC & 0xF) +# else + /* __SUNPRO_CC = 0xVRP */ +# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_CC>>8) +# define COMPILER_VERSION_MINOR HEX(__SUNPRO_CC>>4 & 0xF) +# define COMPILER_VERSION_PATCH HEX(__SUNPRO_CC & 0xF) +# endif + +#elif defined(__HP_aCC) +# define COMPILER_ID "HP" + /* __HP_aCC = VVRRPP */ +# define COMPILER_VERSION_MAJOR DEC(__HP_aCC/10000) +# define COMPILER_VERSION_MINOR DEC(__HP_aCC/100 % 100) +# define COMPILER_VERSION_PATCH DEC(__HP_aCC % 100) + +#elif defined(__DECCXX) +# define COMPILER_ID "Compaq" + /* __DECCXX_VER = VVRRTPPPP */ +# define COMPILER_VERSION_MAJOR DEC(__DECCXX_VER/10000000) +# define COMPILER_VERSION_MINOR DEC(__DECCXX_VER/100000 % 100) +# define COMPILER_VERSION_PATCH DEC(__DECCXX_VER % 10000) + +#elif defined(__IBMCPP__) && defined(__COMPILER_VER__) +# define COMPILER_ID "zOS" + /* __IBMCPP__ = VRP */ +# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100) +# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10) +# define COMPILER_VERSION_PATCH DEC(__IBMCPP__ % 10) + +#elif defined(__ibmxl__) && defined(__clang__) +# define COMPILER_ID "XLClang" +# define COMPILER_VERSION_MAJOR DEC(__ibmxl_version__) +# define COMPILER_VERSION_MINOR DEC(__ibmxl_release__) +# define COMPILER_VERSION_PATCH DEC(__ibmxl_modification__) +# define COMPILER_VERSION_TWEAK DEC(__ibmxl_ptf_fix_level__) + + +#elif defined(__IBMCPP__) && !defined(__COMPILER_VER__) && __IBMCPP__ >= 800 +# define COMPILER_ID "XL" + /* __IBMCPP__ = VRP */ +# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100) +# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10) +# define COMPILER_VERSION_PATCH DEC(__IBMCPP__ % 10) + +#elif defined(__IBMCPP__) && !defined(__COMPILER_VER__) && __IBMCPP__ < 800 +# define COMPILER_ID "VisualAge" + /* __IBMCPP__ = VRP */ +# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100) +# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10) +# define COMPILER_VERSION_PATCH DEC(__IBMCPP__ % 10) + +#elif defined(__NVCOMPILER) +# define COMPILER_ID "NVHPC" +# define COMPILER_VERSION_MAJOR DEC(__NVCOMPILER_MAJOR__) +# define COMPILER_VERSION_MINOR DEC(__NVCOMPILER_MINOR__) +# if defined(__NVCOMPILER_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__NVCOMPILER_PATCHLEVEL__) +# endif + +#elif defined(__PGI) +# define COMPILER_ID "PGI" +# define COMPILER_VERSION_MAJOR DEC(__PGIC__) +# define COMPILER_VERSION_MINOR DEC(__PGIC_MINOR__) +# if defined(__PGIC_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__PGIC_PATCHLEVEL__) +# endif + +#elif defined(_CRAYC) +# define COMPILER_ID "Cray" +# define COMPILER_VERSION_MAJOR DEC(_RELEASE_MAJOR) +# define COMPILER_VERSION_MINOR DEC(_RELEASE_MINOR) + +#elif defined(__TI_COMPILER_VERSION__) +# define COMPILER_ID "TI" + /* __TI_COMPILER_VERSION__ = VVVRRRPPP */ +# define COMPILER_VERSION_MAJOR DEC(__TI_COMPILER_VERSION__/1000000) +# define COMPILER_VERSION_MINOR DEC(__TI_COMPILER_VERSION__/1000 % 1000) +# define COMPILER_VERSION_PATCH DEC(__TI_COMPILER_VERSION__ % 1000) + +#elif defined(__CLANG_FUJITSU) +# define COMPILER_ID "FujitsuClang" +# define COMPILER_VERSION_MAJOR DEC(__FCC_major__) +# define COMPILER_VERSION_MINOR DEC(__FCC_minor__) +# define COMPILER_VERSION_PATCH DEC(__FCC_patchlevel__) +# define COMPILER_VERSION_INTERNAL_STR __clang_version__ + + +#elif defined(__FUJITSU) +# define COMPILER_ID "Fujitsu" +# if defined(__FCC_version__) +# define COMPILER_VERSION __FCC_version__ +# elif defined(__FCC_major__) +# define COMPILER_VERSION_MAJOR DEC(__FCC_major__) +# define COMPILER_VERSION_MINOR DEC(__FCC_minor__) +# define COMPILER_VERSION_PATCH DEC(__FCC_patchlevel__) +# endif +# if defined(__fcc_version) +# define COMPILER_VERSION_INTERNAL DEC(__fcc_version) +# elif defined(__FCC_VERSION) +# define COMPILER_VERSION_INTERNAL DEC(__FCC_VERSION) +# endif + + +#elif defined(__ghs__) +# define COMPILER_ID "GHS" +/* __GHS_VERSION_NUMBER = VVVVRP */ +# ifdef __GHS_VERSION_NUMBER +# define COMPILER_VERSION_MAJOR DEC(__GHS_VERSION_NUMBER / 100) +# define COMPILER_VERSION_MINOR DEC(__GHS_VERSION_NUMBER / 10 % 10) +# define COMPILER_VERSION_PATCH DEC(__GHS_VERSION_NUMBER % 10) +# endif + +#elif defined(__SCO_VERSION__) +# define COMPILER_ID "SCO" + +#elif defined(__ARMCC_VERSION) && !defined(__clang__) +# define COMPILER_ID "ARMCC" +#if __ARMCC_VERSION >= 1000000 + /* __ARMCC_VERSION = VRRPPPP */ + # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/1000000) + # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 100) + # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000) +#else + /* __ARMCC_VERSION = VRPPPP */ + # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/100000) + # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 10) + # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000) +#endif + + +#elif defined(__clang__) && defined(__apple_build_version__) +# define COMPILER_ID "AppleClang" +# if defined(_MSC_VER) +# define SIMULATE_ID "MSVC" +# endif +# define COMPILER_VERSION_MAJOR DEC(__clang_major__) +# define COMPILER_VERSION_MINOR DEC(__clang_minor__) +# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__) +# if defined(_MSC_VER) + /* _MSC_VER = VVRR */ +# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) +# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) +# endif +# define COMPILER_VERSION_TWEAK DEC(__apple_build_version__) + +#elif defined(__clang__) && defined(__ARMCOMPILER_VERSION) +# define COMPILER_ID "ARMClang" + # define COMPILER_VERSION_MAJOR DEC(__ARMCOMPILER_VERSION/1000000) + # define COMPILER_VERSION_MINOR DEC(__ARMCOMPILER_VERSION/10000 % 100) + # define COMPILER_VERSION_PATCH DEC(__ARMCOMPILER_VERSION % 10000) +# define COMPILER_VERSION_INTERNAL DEC(__ARMCOMPILER_VERSION) + +#elif defined(__clang__) +# define COMPILER_ID "Clang" +# if defined(_MSC_VER) +# define SIMULATE_ID "MSVC" +# endif +# define COMPILER_VERSION_MAJOR DEC(__clang_major__) +# define COMPILER_VERSION_MINOR DEC(__clang_minor__) +# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__) +# if defined(_MSC_VER) + /* _MSC_VER = VVRR */ +# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) +# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) +# endif + +#elif defined(__GNUC__) || defined(__GNUG__) +# define COMPILER_ID "GNU" +# if defined(__GNUC__) +# define COMPILER_VERSION_MAJOR DEC(__GNUC__) +# else +# define COMPILER_VERSION_MAJOR DEC(__GNUG__) +# endif +# if defined(__GNUC_MINOR__) +# define COMPILER_VERSION_MINOR DEC(__GNUC_MINOR__) +# endif +# if defined(__GNUC_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) +# endif + +#elif defined(_MSC_VER) +# define COMPILER_ID "MSVC" + /* _MSC_VER = VVRR */ +# define COMPILER_VERSION_MAJOR DEC(_MSC_VER / 100) +# define COMPILER_VERSION_MINOR DEC(_MSC_VER % 100) +# if defined(_MSC_FULL_VER) +# if _MSC_VER >= 1400 + /* _MSC_FULL_VER = VVRRPPPPP */ +# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 100000) +# else + /* _MSC_FULL_VER = VVRRPPPP */ +# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 10000) +# endif +# endif +# if defined(_MSC_BUILD) +# define COMPILER_VERSION_TWEAK DEC(_MSC_BUILD) +# endif + +#elif defined(__VISUALDSPVERSION__) || defined(__ADSPBLACKFIN__) || defined(__ADSPTS__) || defined(__ADSP21000__) +# define COMPILER_ID "ADSP" +#if defined(__VISUALDSPVERSION__) + /* __VISUALDSPVERSION__ = 0xVVRRPP00 */ +# define COMPILER_VERSION_MAJOR HEX(__VISUALDSPVERSION__>>24) +# define COMPILER_VERSION_MINOR HEX(__VISUALDSPVERSION__>>16 & 0xFF) +# define COMPILER_VERSION_PATCH HEX(__VISUALDSPVERSION__>>8 & 0xFF) +#endif + +#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC) +# define COMPILER_ID "IAR" +# if defined(__VER__) && defined(__ICCARM__) +# define COMPILER_VERSION_MAJOR DEC((__VER__) / 1000000) +# define COMPILER_VERSION_MINOR DEC(((__VER__) / 1000) % 1000) +# define COMPILER_VERSION_PATCH DEC((__VER__) % 1000) +# define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__) +# elif defined(__VER__) && (defined(__ICCAVR__) || defined(__ICCRX__) || defined(__ICCRH850__) || defined(__ICCRL78__) || defined(__ICC430__) || defined(__ICCRISCV__) || defined(__ICCV850__) || defined(__ICC8051__) || defined(__ICCSTM8__)) +# define COMPILER_VERSION_MAJOR DEC((__VER__) / 100) +# define COMPILER_VERSION_MINOR DEC((__VER__) - (((__VER__) / 100)*100)) +# define COMPILER_VERSION_PATCH DEC(__SUBVERSION__) +# define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__) +# endif + + +/* These compilers are either not known or too old to define an + identification macro. Try to identify the platform and guess that + it is the native compiler. */ +#elif defined(__hpux) || defined(__hpua) +# define COMPILER_ID "HP" + +#else /* unknown compiler */ +# define COMPILER_ID "" +#endif + +/* Construct the string literal in pieces to prevent the source from + getting matched. Store it in a pointer rather than an array + because some compilers will just produce instructions to fill the + array rather than assigning a pointer to a static array. */ +char const* info_compiler = "INFO" ":" "compiler[" COMPILER_ID "]"; +#ifdef SIMULATE_ID +char const* info_simulate = "INFO" ":" "simulate[" SIMULATE_ID "]"; +#endif + +#ifdef __QNXNTO__ +char const* qnxnto = "INFO" ":" "qnxnto[]"; +#endif + +#if defined(__CRAYXT_COMPUTE_LINUX_TARGET) +char const *info_cray = "INFO" ":" "compiler_wrapper[CrayPrgEnv]"; +#endif + +#define STRINGIFY_HELPER(X) #X +#define STRINGIFY(X) STRINGIFY_HELPER(X) + +/* Identify known platforms by name. */ +#if defined(__linux) || defined(__linux__) || defined(linux) +# define PLATFORM_ID "Linux" + +#elif defined(__MSYS__) +# define PLATFORM_ID "MSYS" + +#elif defined(__CYGWIN__) +# define PLATFORM_ID "Cygwin" + +#elif defined(__MINGW32__) +# define PLATFORM_ID "MinGW" + +#elif defined(__APPLE__) +# define PLATFORM_ID "Darwin" + +#elif defined(_WIN32) || defined(__WIN32__) || defined(WIN32) +# define PLATFORM_ID "Windows" + +#elif defined(__FreeBSD__) || defined(__FreeBSD) +# define PLATFORM_ID "FreeBSD" + +#elif defined(__NetBSD__) || defined(__NetBSD) +# define PLATFORM_ID "NetBSD" + +#elif defined(__OpenBSD__) || defined(__OPENBSD) +# define PLATFORM_ID "OpenBSD" + +#elif defined(__sun) || defined(sun) +# define PLATFORM_ID "SunOS" + +#elif defined(_AIX) || defined(__AIX) || defined(__AIX__) || defined(__aix) || defined(__aix__) +# define PLATFORM_ID "AIX" + +#elif defined(__hpux) || defined(__hpux__) +# define PLATFORM_ID "HP-UX" + +#elif defined(__HAIKU__) +# define PLATFORM_ID "Haiku" + +#elif defined(__BeOS) || defined(__BEOS__) || defined(_BEOS) +# define PLATFORM_ID "BeOS" + +#elif defined(__QNX__) || defined(__QNXNTO__) +# define PLATFORM_ID "QNX" + +#elif defined(__tru64) || defined(_tru64) || defined(__TRU64__) +# define PLATFORM_ID "Tru64" + +#elif defined(__riscos) || defined(__riscos__) +# define PLATFORM_ID "RISCos" + +#elif defined(__sinix) || defined(__sinix__) || defined(__SINIX__) +# define PLATFORM_ID "SINIX" + +#elif defined(__UNIX_SV__) +# define PLATFORM_ID "UNIX_SV" + +#elif defined(__bsdos__) +# define PLATFORM_ID "BSDOS" + +#elif defined(_MPRAS) || defined(MPRAS) +# define PLATFORM_ID "MP-RAS" + +#elif defined(__osf) || defined(__osf__) +# define PLATFORM_ID "OSF1" + +#elif defined(_SCO_SV) || defined(SCO_SV) || defined(sco_sv) +# define PLATFORM_ID "SCO_SV" + +#elif defined(__ultrix) || defined(__ultrix__) || defined(_ULTRIX) +# define PLATFORM_ID "ULTRIX" + +#elif defined(__XENIX__) || defined(_XENIX) || defined(XENIX) +# define PLATFORM_ID "Xenix" + +#elif defined(__WATCOMC__) +# if defined(__LINUX__) +# define PLATFORM_ID "Linux" + +# elif defined(__DOS__) +# define PLATFORM_ID "DOS" + +# elif defined(__OS2__) +# define PLATFORM_ID "OS2" + +# elif defined(__WINDOWS__) +# define PLATFORM_ID "Windows3x" + +# elif defined(__VXWORKS__) +# define PLATFORM_ID "VxWorks" + +# else /* unknown platform */ +# define PLATFORM_ID +# endif + +#elif defined(__INTEGRITY) +# if defined(INT_178B) +# define PLATFORM_ID "Integrity178" + +# else /* regular Integrity */ +# define PLATFORM_ID "Integrity" +# endif + +#else /* unknown platform */ +# define PLATFORM_ID + +#endif + +/* For windows compilers MSVC and Intel we can determine + the architecture of the compiler being used. This is because + the compilers do not have flags that can change the architecture, + but rather depend on which compiler is being used +*/ +#if defined(_WIN32) && defined(_MSC_VER) +# if defined(_M_IA64) +# define ARCHITECTURE_ID "IA64" + +# elif defined(_M_ARM64EC) +# define ARCHITECTURE_ID "ARM64EC" + +# elif defined(_M_X64) || defined(_M_AMD64) +# define ARCHITECTURE_ID "x64" + +# elif defined(_M_IX86) +# define ARCHITECTURE_ID "X86" + +# elif defined(_M_ARM64) +# define ARCHITECTURE_ID "ARM64" + +# elif defined(_M_ARM) +# if _M_ARM == 4 +# define ARCHITECTURE_ID "ARMV4I" +# elif _M_ARM == 5 +# define ARCHITECTURE_ID "ARMV5I" +# else +# define ARCHITECTURE_ID "ARMV" STRINGIFY(_M_ARM) +# endif + +# elif defined(_M_MIPS) +# define ARCHITECTURE_ID "MIPS" + +# elif defined(_M_SH) +# define ARCHITECTURE_ID "SHx" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#elif defined(__WATCOMC__) +# if defined(_M_I86) +# define ARCHITECTURE_ID "I86" + +# elif defined(_M_IX86) +# define ARCHITECTURE_ID "X86" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC) +# if defined(__ICCARM__) +# define ARCHITECTURE_ID "ARM" + +# elif defined(__ICCRX__) +# define ARCHITECTURE_ID "RX" + +# elif defined(__ICCRH850__) +# define ARCHITECTURE_ID "RH850" + +# elif defined(__ICCRL78__) +# define ARCHITECTURE_ID "RL78" + +# elif defined(__ICCRISCV__) +# define ARCHITECTURE_ID "RISCV" + +# elif defined(__ICCAVR__) +# define ARCHITECTURE_ID "AVR" + +# elif defined(__ICC430__) +# define ARCHITECTURE_ID "MSP430" + +# elif defined(__ICCV850__) +# define ARCHITECTURE_ID "V850" + +# elif defined(__ICC8051__) +# define ARCHITECTURE_ID "8051" + +# elif defined(__ICCSTM8__) +# define ARCHITECTURE_ID "STM8" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#elif defined(__ghs__) +# if defined(__PPC64__) +# define ARCHITECTURE_ID "PPC64" + +# elif defined(__ppc__) +# define ARCHITECTURE_ID "PPC" + +# elif defined(__ARM__) +# define ARCHITECTURE_ID "ARM" + +# elif defined(__x86_64__) +# define ARCHITECTURE_ID "x64" + +# elif defined(__i386__) +# define ARCHITECTURE_ID "X86" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#elif defined(__TI_COMPILER_VERSION__) +# if defined(__TI_ARM__) +# define ARCHITECTURE_ID "ARM" + +# elif defined(__MSP430__) +# define ARCHITECTURE_ID "MSP430" + +# elif defined(__TMS320C28XX__) +# define ARCHITECTURE_ID "TMS320C28x" + +# elif defined(__TMS320C6X__) || defined(_TMS320C6X) +# define ARCHITECTURE_ID "TMS320C6x" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#else +# define ARCHITECTURE_ID +#endif + +/* Convert integer to decimal digit literals. */ +#define DEC(n) \ + ('0' + (((n) / 10000000)%10)), \ + ('0' + (((n) / 1000000)%10)), \ + ('0' + (((n) / 100000)%10)), \ + ('0' + (((n) / 10000)%10)), \ + ('0' + (((n) / 1000)%10)), \ + ('0' + (((n) / 100)%10)), \ + ('0' + (((n) / 10)%10)), \ + ('0' + ((n) % 10)) + +/* Convert integer to hex digit literals. */ +#define HEX(n) \ + ('0' + ((n)>>28 & 0xF)), \ + ('0' + ((n)>>24 & 0xF)), \ + ('0' + ((n)>>20 & 0xF)), \ + ('0' + ((n)>>16 & 0xF)), \ + ('0' + ((n)>>12 & 0xF)), \ + ('0' + ((n)>>8 & 0xF)), \ + ('0' + ((n)>>4 & 0xF)), \ + ('0' + ((n) & 0xF)) + +/* Construct a string literal encoding the version number. */ +#ifdef COMPILER_VERSION +char const* info_version = "INFO" ":" "compiler_version[" COMPILER_VERSION "]"; + +/* Construct a string literal encoding the version number components. */ +#elif defined(COMPILER_VERSION_MAJOR) +char const info_version[] = { + 'I', 'N', 'F', 'O', ':', + 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','[', + COMPILER_VERSION_MAJOR, +# ifdef COMPILER_VERSION_MINOR + '.', COMPILER_VERSION_MINOR, +# ifdef COMPILER_VERSION_PATCH + '.', COMPILER_VERSION_PATCH, +# ifdef COMPILER_VERSION_TWEAK + '.', COMPILER_VERSION_TWEAK, +# endif +# endif +# endif + ']','\0'}; +#endif + +/* Construct a string literal encoding the internal version number. */ +#ifdef COMPILER_VERSION_INTERNAL +char const info_version_internal[] = { + 'I', 'N', 'F', 'O', ':', + 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','_', + 'i','n','t','e','r','n','a','l','[', + COMPILER_VERSION_INTERNAL,']','\0'}; +#elif defined(COMPILER_VERSION_INTERNAL_STR) +char const* info_version_internal = "INFO" ":" "compiler_version_internal[" COMPILER_VERSION_INTERNAL_STR "]"; +#endif + +/* Construct a string literal encoding the version number components. */ +#ifdef SIMULATE_VERSION_MAJOR +char const info_simulate_version[] = { + 'I', 'N', 'F', 'O', ':', + 's','i','m','u','l','a','t','e','_','v','e','r','s','i','o','n','[', + SIMULATE_VERSION_MAJOR, +# ifdef SIMULATE_VERSION_MINOR + '.', SIMULATE_VERSION_MINOR, +# ifdef SIMULATE_VERSION_PATCH + '.', SIMULATE_VERSION_PATCH, +# ifdef SIMULATE_VERSION_TWEAK + '.', SIMULATE_VERSION_TWEAK, +# endif +# endif +# endif + ']','\0'}; +#endif + +/* Construct the string literal in pieces to prevent the source from + getting matched. Store it in a pointer rather than an array + because some compilers will just produce instructions to fill the + array rather than assigning a pointer to a static array. */ +char const* info_platform = "INFO" ":" "platform[" PLATFORM_ID "]"; +char const* info_arch = "INFO" ":" "arch[" ARCHITECTURE_ID "]"; + + + +#if defined(__INTEL_COMPILER) && defined(_MSVC_LANG) && _MSVC_LANG < 201403L +# if defined(__INTEL_CXX11_MODE__) +# if defined(__cpp_aggregate_nsdmi) +# define CXX_STD 201402L +# else +# define CXX_STD 201103L +# endif +# else +# define CXX_STD 199711L +# endif +#elif defined(_MSC_VER) && defined(_MSVC_LANG) +# define CXX_STD _MSVC_LANG +#else +# define CXX_STD __cplusplus +#endif + +const char* info_language_standard_default = "INFO" ":" "standard_default[" +#if CXX_STD > 202002L + "23" +#elif CXX_STD > 201703L + "20" +#elif CXX_STD >= 201703L + "17" +#elif CXX_STD >= 201402L + "14" +#elif CXX_STD >= 201103L + "11" +#else + "98" +#endif +"]"; + +const char* info_language_extensions_default = "INFO" ":" "extensions_default[" +/* !defined(_MSC_VER) to exclude Clang's MSVC compatibility mode. */ +#if (defined(__clang__) || defined(__GNUC__) || \ + defined(__TI_COMPILER_VERSION__)) && \ + !defined(__STRICT_ANSI__) && !defined(_MSC_VER) + "ON" +#else + "OFF" +#endif +"]"; + +/*--------------------------------------------------------------------------*/ + +int main(int argc, char* argv[]) +{ + int require = 0; + require += info_compiler[argc]; + require += info_platform[argc]; +#ifdef COMPILER_VERSION_MAJOR + require += info_version[argc]; +#endif +#ifdef COMPILER_VERSION_INTERNAL + require += info_version_internal[argc]; +#endif +#ifdef SIMULATE_ID + require += info_simulate[argc]; +#endif +#ifdef SIMULATE_VERSION_MAJOR + require += info_simulate_version[argc]; +#endif +#if defined(__CRAYXT_COMPUTE_LINUX_TARGET) + require += info_cray[argc]; +#endif + require += info_language_standard_default[argc]; + require += info_language_extensions_default[argc]; + (void)argv; + return require; +} diff --git a/example/android/app/.cxx/Debug/28432r45/x86/CMakeFiles/3.22.1-g37088a8/CompilerIdCXX/CMakeCXXCompilerId.o b/example/android/app/.cxx/Debug/28432r45/x86/CMakeFiles/3.22.1-g37088a8/CompilerIdCXX/CMakeCXXCompilerId.o new file mode 100644 index 0000000000000000000000000000000000000000..213fd39e1e29b728d53538f37c5bf7deb11f7749 GIT binary patch literal 3976 zcmdT{TWlQF8UANyXTA2WH#ja05DRUu^!I6$n8{R8-<2kML6QKv5rBsX|B~@dQT>gJ{f4Nv*QWS+`Q%I#79MME7)D#1lps_wJ(c0xNpZVfn&s z#Rlh}dRGNpSxH}6Nq%r*JkG)o;^PcgUI@muX$m$FE?#cJaOCQ%kFdDsHpgaBOe=xMQ{I7by_79m}t|UUR+NXmz)R(DEvq z>w@n1R;y}xRkLc>tghp)=Vpb*-uCTQr{T6bJ>BZ5iyQ*lt>`~NpFuy3-WP$nWqUkv zeJW_VSv@4CrX-QSNXm$EPi9n8Gq>#9pBYj1CWvB1S{^-=I;_QR!!anz@+eXK0A#bc z4eeeKM2T@yGY_OvkPI-HN<9EFSp>N}dh~WVdvH%+Jrv4AX)8mN(y{K|#Qbe)hJ`$Z zD6LVfCm@^I^N8tGE)p-oT8fi+tAZ=L- zImO<`pnMLF@92i@9hCgFv}J8z`z_mk503BhhV2+7e4RZn%yQaC|V6O^0P0R>!Vp-B#8smS$&*v-W-23TH)D zyv!`WNj;yP*!2B&=a69_3D~<{cip;UcigU5v2|pW;k&L=*|Zuh!*RBnlWouanO*U- z)wx<}u2!t(W@csz)#<5R-kz>Z%@yaSYlV%%lwGk4)qG(le;*xRu^zFHpFe+Gq~~%~ zue94_taXqiMzxM)Y*@w#x6*CeEx%*boUZTNp4oPtM&*)ex9W|SZP?pZv+dY2PQz-q z4ZX6xZJe+-x^*L8Di-oyaoX4}%^1OoODF{$qoC*WdTz2_n4Kz>tdemf2t-8Kmq(_# zaOTXy1@r9k!;9v*3#S)NlNzm>Ysz{OaC}_p~J=}%d1y-*dovVdAH#qZ~k8&1O14fGMe(}8B!ikD*My%IH&FyWZb!N zHKBz}@>j8A!&>Y`SP*gI$4SSCuhu^^!wj4!=*n(S3~J;Mk_zd0T~oAyq1fG{TBfUw zC2Csch?aUt%OvU%ZhvAE5-6SqsF|8J*=K0k$@T zS(Ugjam%ACbW1?XK_yL+0jf9YM|SAtiH2g8Zl}+L1)t+ythXA8kXL(N=((nkP=dbc z9|r7&92q6rTKF5MM-6 zFu)Zl1H6|If6R!V3U>(pPDWhw6eIjD3Hge^a{?_!#OE`@?vju{$B0E<74kQP{B6cP zMDGguUxfT`jM&dLA^*3K58+%C>~9Yv;vHke{;oSMX80dGMUivdOCP2?SV*=7pk+yx=_8kIwP1 zKmJv1!x{VIn#1iQbSI#~fpy%U5-9g_1VR}TTT1!~(9v}t$0EEAugiOr>wXQI{YroH zyZHMOHc@}iM*Oi~>2Cz{qyA3p;%^x8s6YN|A>%`->iG+5L?pfkck#EpBfeK7{veSnegU?22yANL4-GvW{bq?G+Nn3><|!h5%FZS!z#uv z-s|DauaE=ge!Fwj@pIcfJLaAw1dogDa9HRs(&1@D?rY_z$RBgIpL@?WabE7$&uEv| z9yKEll3inRc#??k^wb4&^nvtQu%jvSfdBFz?eTeo-k+bpO6@QwHEDx(PvHVsg>Us> z!5npwwCYmTwMts1P}Yit@-fR98S-ZR1k~azOq5N>E|>yWjFT8Kfqi6($A?FEC(y%3 zCG7V-@Zd1_&mIydYD?eW^|zi-k;9FO&-|l(UP5Zn)MW2nffj zwwOupn?%7ZqJ;F*^^ytP2I!ONY!l9F1MAYW(@*TF7M{241>LN;&XIw!qilnGHvPnO zW{{NPU7BpnNktrO3 zxQ7PH#=s-EC-8lpg(n3McJygr5#SZz1Hk!Z;X6fAo}UxSVno^4-O-7A80Y%|cu;=~ z9x)Y;A~pceYw+;?M*Asva9>aef|6&8K2O8rz#}HYk#DM#J?&}6#^==yToRw&*ti&I-Wq5L3~BdL??_JMwC`Q7;SE9aopyZMA{ zF!hbPtJW{S*^rlSrA~h4FZFsIOnwNf=IW0@?|g#}rIz1&EBP<9UHiV7 zQrQDHz~iI0>h<0?+ByTtYs<-N1nx)h^|n+CIJX*jw8i{e$!ka7JbxaWXQ~hX1IAR} z_5u9&ZXSmc%6Y85dJ%eE-}YCO;f;u^7f>c@*xyA)L!^g1)>yN=R~{ssU&+mST`qL6 zlMv@CQWF&R#k07;fOxIrx$(gu%-6%U8N#o8KY{M zQM(*xmheoZ3quHWS&P9(~PPG7dd^9!?OGLNlUAI!*qiKehTVgre&K0eyU30Ql zENhoE*S3q+rn#ufpFx$jp06}ABLz7i9k5L_OT6nLXU)0 zc=-WENyCw>ZHq{+9fd^^{1g=6$gvgl_J%@$bYL+Q+6%=_&zfz!V&I{_eSCc&jL<_H zuwfzA1cgcvHWeCb5xaY(1F;!ay0>;Z6-+Ig#CqB@HQ)pEIxvK(9RNHA1*NSkaEjJj z;Bf%jJ`aEEMDQRmY0$28Tn6RNj?PN}RpC*3x&mj|<^=$xO|J-^K${?JqYkz67f?P8 zkJ8^2xbPp!5z+YvsQe`=?Cc7xutK8;VbRsxU**YrpjoxI4|=jjeR=UF@P<^uovZfZ zSVQW|#X2;q_M@g~-vBkiw(dBmZ{`vQS>I_1g&)GQR5;E!`@c1*0rv zEu>Gc(4>|r6aSUfkqphn|&0|`&WE``! z!B`>@i)&SwN6UkDA*3C!%^GY!ZSnwUO-|aSN}*^u6Z_J!tiSOoJ6kJRWw)v=6l<<) zIeNt|7P4?|DCY`gOS2Y@Ql)6|&en`dMT=z@7quxXQ_E?Iv7y0)Gc>F%j*aLeL!QTJ z@J7z(OBFZ)P0Y%wqyS^PULYUOGnSB5ZC&D)MEN)RJpMqJSi z%cM>G3YLkYC^y4B$Z#3KqqI(tfZ*`)W~ga`^622>w%0o2*y}b`bg8_F0ud$Hv8HoN zFkB0U+Ajse?KvOMOL6J*uiOcxdFqNIDVk<9=(QZje+F7H2UA0gZV~=0yc+ z_&)L~;X5Q(#qVIVHq$WSzxCl5x6s3rl&7Q!e<@i|#XCOzdBX4Y>0^jc)iA}m+vmVf z6CR;}$!Ebh;EK9V@coj{85XqPw#qy#0j|JpoMR=QPhKIM!(tRh>|FgvV8s`Yc--aFur1KtPYJw*d*oX=vg87-$GVrAR4Vw~U$Cd3TFa^+eq zQ!5nBU2v<6nM>vBQc1)RrDH;ipgW$JH>!CN^ZwDs1>CWUMyyhVh8^29TtmdHyuRQV zB}>nnP|uQx!F39>q-w>n@S>#~j$*ZQ0V>x2A(C$x3O}WNjb%$)F>(g@+2jn#n zg0$Cph~Ee2lIhv>JjHRS(0$@G$cLRh8 zC*g6h)!zS|XDcfb=QzXg02JWF+Gv;WJy?=X}QeD-BJr!2M_VJ7mx6g!3Eo4_J}7zyGiK?Wv(N z#CiU>8NdDapaL;IMsObG@4a9dV#A)>=^=ZnZm{R@!!r1gbkU7Oe* zGoDR%DNriX(p8HDs#H;lhxDy#`%sArURtyg4~eQsP5XeV_MxfDPmoe6NG*y&h5MbE za~ylfl8QX_tj6b_@1Aq-xp(e8=ib@xWM>X&k%$tCs)rOwtFZu?+;vsQ%jWs&i6>LQg?RpGu)qWv7dX-vuIv!=4Y}m zXpfswhuJR4lN08<0(B*v`XKr`?0Cuo;D7ujdwSmD_ZQ}`ay!CV&9@=D$7liEfbR%k zC7g7L^u}_-v#WZcT+=J%+DY3T8wqCpG-_!UrfQb!lr2Ro#?6dbU|*PqhDP^HWT=NP zO5`_f85-un*`w--@7{CLzIJr*^c#P;_UIc={qpQ;WajhQrV$O?K%svPTqzBIG!qeZ z7dS6_RqUq)p{Xz9mx$UWpNNxQI}y&Wh1+VcMcFVa1L z|Hy&DUT@j3UB|YLyZL>_!P#tndUi_rdcJ*O*|QDDwQTqJO#aA`nXHkWoz73qLc^~& z3+3a8gJcld8hwEF2)(~mJUKk%@DpH3@H+S)_zwsNNmz_LJ*Of|$;j5*dU{_*J-PAXabX%3a+4 zx}Z8(lPLfD)4;zgY|m=yHZG)CU-IO3mT4^$Z3&o?fox@2>SbP%JW$#bL{fi+=jR;v zkN54**9DgGdSw0r!_cqf)ex-S;iUFHbIuN_okK&zBNLg-_^#Cb^#upN1*hVHRXhm0 zs};fuX2Z5pPA%n*jPKbqvd6wJRjin`h14nAZIpoz?MV-&GpU^=&#O1~>be=^p7es_ zEL7}bkV8mp5s)CC6kg?-{*AF+nU#>R%N(ZQjNJz5-` z7?~KIA1(|J+C_WV$_$TX?o%^dp3f-lnbuuF6+Ee^@ep) zFILTywmzKBWYR-=1Jh;)&~AeCLyonG&8F`^1g-s#J+|Me*2@*!o!XaA7wh%Fhqj}G zG9I7FjD-i#=2^(2X{WeYwQF8OpRX)>p6wcSr&2EBs8L%e*KFNhGOP89Et_9A>vcU{ zTw2nn?ZV=Mo*5q*&bT9^`qKEAF*Xvoc>oTw$49Dl-=m4JN1an@7*lg|Q^$;N{68bBaz4_ ziGE_VVDUscXF?$g-P+4(dov~K;8xrF?8_$4yEJS}*|J+=J?nb6#}bRNc=x-pME637 zmwb6$cR3dAjz6er7(SX=?Y9>G_EGaPT_obzMGR~eV{(d&#~WIP3#=p8)Nj)Y{SGN1n83T% zWw}v?Bcd>m1L$XHehpluu@`N(uF^Hfv(s{rC|d|Tj4jj_(}l%y#oCSAZQ5F{HI}O? zO(-8nIt0TF#FE)4sdVs5HXd--u9)e11r587WqPJc+a+V(HLJE!vQRIQO5<7wEnl_n z+H~PFOxHD+$=&Pac?g1|53^b>qI1U!3=55hqC*hHQ20$j(J%`I*FGf@1u7}~4hBlN z-`gsUQF>+pyo9Qt6mV5^y@HJpoJJ6Ac&6(aeo&(cG<` z?G_2!fD!;AR6uKe_v30`SIWfcvlrcc#9rd7aEY^|OC)-Mq|}#CXtxi4huR^E%q7kU zO!qQGr&hai?-HJ4Me>uzDe;2x0ns=fy3>eXa_#EwJjHg> zzqG@!qWti2o4wrogvnCkjuoqS%MIg?dU&VlVen;WR((M040q z6$sSkJ_hC9ES%mC5$W8HNBo!hKLxCP{heV4h1XEuPI6Bb>^T(L?brIwD*D{Kh>Gqh z?e>z-gg?{L3<~1Ez&~MoStpX;g#SwvnTP#t7jxi@ki8S!KnYzSZ>~u@~eoC=e$0a=w!PFNF2O^50-fE)L>pC$T@@4x-G% zY4J;KSi9>24 & 0x00FF) +# define COMPILER_VERSION_MINOR HEX(__CODEGEARC_VERSION__>>16 & 0x00FF) +# define COMPILER_VERSION_PATCH DEC(__CODEGEARC_VERSION__ & 0xFFFF) + +#elif defined(__BORLANDC__) +# define COMPILER_ID "Borland" + /* __BORLANDC__ = 0xVRR */ +# define COMPILER_VERSION_MAJOR HEX(__BORLANDC__>>8) +# define COMPILER_VERSION_MINOR HEX(__BORLANDC__ & 0xFF) + +#elif defined(__WATCOMC__) && __WATCOMC__ < 1200 +# define COMPILER_ID "Watcom" + /* __WATCOMC__ = VVRR */ +# define COMPILER_VERSION_MAJOR DEC(__WATCOMC__ / 100) +# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10) +# if (__WATCOMC__ % 10) > 0 +# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10) +# endif + +#elif defined(__WATCOMC__) +# define COMPILER_ID "OpenWatcom" + /* __WATCOMC__ = VVRP + 1100 */ +# define COMPILER_VERSION_MAJOR DEC((__WATCOMC__ - 1100) / 100) +# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10) +# if (__WATCOMC__ % 10) > 0 +# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10) +# endif + +#elif defined(__SUNPRO_C) +# define COMPILER_ID "SunPro" +# if __SUNPRO_C >= 0x5100 + /* __SUNPRO_C = 0xVRRP */ +# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_C>>12) +# define COMPILER_VERSION_MINOR HEX(__SUNPRO_C>>4 & 0xFF) +# define COMPILER_VERSION_PATCH HEX(__SUNPRO_C & 0xF) +# else + /* __SUNPRO_CC = 0xVRP */ +# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_C>>8) +# define COMPILER_VERSION_MINOR HEX(__SUNPRO_C>>4 & 0xF) +# define COMPILER_VERSION_PATCH HEX(__SUNPRO_C & 0xF) +# endif + +#elif defined(__HP_cc) +# define COMPILER_ID "HP" + /* __HP_cc = VVRRPP */ +# define COMPILER_VERSION_MAJOR DEC(__HP_cc/10000) +# define COMPILER_VERSION_MINOR DEC(__HP_cc/100 % 100) +# define COMPILER_VERSION_PATCH DEC(__HP_cc % 100) + +#elif defined(__DECC) +# define COMPILER_ID "Compaq" + /* __DECC_VER = VVRRTPPPP */ +# define COMPILER_VERSION_MAJOR DEC(__DECC_VER/10000000) +# define COMPILER_VERSION_MINOR DEC(__DECC_VER/100000 % 100) +# define COMPILER_VERSION_PATCH DEC(__DECC_VER % 10000) + +#elif defined(__IBMC__) && defined(__COMPILER_VER__) +# define COMPILER_ID "zOS" + /* __IBMC__ = VRP */ +# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100) +# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10) +# define COMPILER_VERSION_PATCH DEC(__IBMC__ % 10) + +#elif defined(__ibmxl__) && defined(__clang__) +# define COMPILER_ID "XLClang" +# define COMPILER_VERSION_MAJOR DEC(__ibmxl_version__) +# define COMPILER_VERSION_MINOR DEC(__ibmxl_release__) +# define COMPILER_VERSION_PATCH DEC(__ibmxl_modification__) +# define COMPILER_VERSION_TWEAK DEC(__ibmxl_ptf_fix_level__) + + +#elif defined(__IBMC__) && !defined(__COMPILER_VER__) && __IBMC__ >= 800 +# define COMPILER_ID "XL" + /* __IBMC__ = VRP */ +# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100) +# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10) +# define COMPILER_VERSION_PATCH DEC(__IBMC__ % 10) + +#elif defined(__IBMC__) && !defined(__COMPILER_VER__) && __IBMC__ < 800 +# define COMPILER_ID "VisualAge" + /* __IBMC__ = VRP */ +# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100) +# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10) +# define COMPILER_VERSION_PATCH DEC(__IBMC__ % 10) + +#elif defined(__NVCOMPILER) +# define COMPILER_ID "NVHPC" +# define COMPILER_VERSION_MAJOR DEC(__NVCOMPILER_MAJOR__) +# define COMPILER_VERSION_MINOR DEC(__NVCOMPILER_MINOR__) +# if defined(__NVCOMPILER_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__NVCOMPILER_PATCHLEVEL__) +# endif + +#elif defined(__PGI) +# define COMPILER_ID "PGI" +# define COMPILER_VERSION_MAJOR DEC(__PGIC__) +# define COMPILER_VERSION_MINOR DEC(__PGIC_MINOR__) +# if defined(__PGIC_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__PGIC_PATCHLEVEL__) +# endif + +#elif defined(_CRAYC) +# define COMPILER_ID "Cray" +# define COMPILER_VERSION_MAJOR DEC(_RELEASE_MAJOR) +# define COMPILER_VERSION_MINOR DEC(_RELEASE_MINOR) + +#elif defined(__TI_COMPILER_VERSION__) +# define COMPILER_ID "TI" + /* __TI_COMPILER_VERSION__ = VVVRRRPPP */ +# define COMPILER_VERSION_MAJOR DEC(__TI_COMPILER_VERSION__/1000000) +# define COMPILER_VERSION_MINOR DEC(__TI_COMPILER_VERSION__/1000 % 1000) +# define COMPILER_VERSION_PATCH DEC(__TI_COMPILER_VERSION__ % 1000) + +#elif defined(__CLANG_FUJITSU) +# define COMPILER_ID "FujitsuClang" +# define COMPILER_VERSION_MAJOR DEC(__FCC_major__) +# define COMPILER_VERSION_MINOR DEC(__FCC_minor__) +# define COMPILER_VERSION_PATCH DEC(__FCC_patchlevel__) +# define COMPILER_VERSION_INTERNAL_STR __clang_version__ + + +#elif defined(__FUJITSU) +# define COMPILER_ID "Fujitsu" +# if defined(__FCC_version__) +# define COMPILER_VERSION __FCC_version__ +# elif defined(__FCC_major__) +# define COMPILER_VERSION_MAJOR DEC(__FCC_major__) +# define COMPILER_VERSION_MINOR DEC(__FCC_minor__) +# define COMPILER_VERSION_PATCH DEC(__FCC_patchlevel__) +# endif +# if defined(__fcc_version) +# define COMPILER_VERSION_INTERNAL DEC(__fcc_version) +# elif defined(__FCC_VERSION) +# define COMPILER_VERSION_INTERNAL DEC(__FCC_VERSION) +# endif + + +#elif defined(__ghs__) +# define COMPILER_ID "GHS" +/* __GHS_VERSION_NUMBER = VVVVRP */ +# ifdef __GHS_VERSION_NUMBER +# define COMPILER_VERSION_MAJOR DEC(__GHS_VERSION_NUMBER / 100) +# define COMPILER_VERSION_MINOR DEC(__GHS_VERSION_NUMBER / 10 % 10) +# define COMPILER_VERSION_PATCH DEC(__GHS_VERSION_NUMBER % 10) +# endif + +#elif defined(__TINYC__) +# define COMPILER_ID "TinyCC" + +#elif defined(__BCC__) +# define COMPILER_ID "Bruce" + +#elif defined(__SCO_VERSION__) +# define COMPILER_ID "SCO" + +#elif defined(__ARMCC_VERSION) && !defined(__clang__) +# define COMPILER_ID "ARMCC" +#if __ARMCC_VERSION >= 1000000 + /* __ARMCC_VERSION = VRRPPPP */ + # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/1000000) + # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 100) + # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000) +#else + /* __ARMCC_VERSION = VRPPPP */ + # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/100000) + # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 10) + # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000) +#endif + + +#elif defined(__clang__) && defined(__apple_build_version__) +# define COMPILER_ID "AppleClang" +# if defined(_MSC_VER) +# define SIMULATE_ID "MSVC" +# endif +# define COMPILER_VERSION_MAJOR DEC(__clang_major__) +# define COMPILER_VERSION_MINOR DEC(__clang_minor__) +# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__) +# if defined(_MSC_VER) + /* _MSC_VER = VVRR */ +# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) +# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) +# endif +# define COMPILER_VERSION_TWEAK DEC(__apple_build_version__) + +#elif defined(__clang__) && defined(__ARMCOMPILER_VERSION) +# define COMPILER_ID "ARMClang" + # define COMPILER_VERSION_MAJOR DEC(__ARMCOMPILER_VERSION/1000000) + # define COMPILER_VERSION_MINOR DEC(__ARMCOMPILER_VERSION/10000 % 100) + # define COMPILER_VERSION_PATCH DEC(__ARMCOMPILER_VERSION % 10000) +# define COMPILER_VERSION_INTERNAL DEC(__ARMCOMPILER_VERSION) + +#elif defined(__clang__) +# define COMPILER_ID "Clang" +# if defined(_MSC_VER) +# define SIMULATE_ID "MSVC" +# endif +# define COMPILER_VERSION_MAJOR DEC(__clang_major__) +# define COMPILER_VERSION_MINOR DEC(__clang_minor__) +# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__) +# if defined(_MSC_VER) + /* _MSC_VER = VVRR */ +# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) +# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) +# endif + +#elif defined(__GNUC__) +# define COMPILER_ID "GNU" +# define COMPILER_VERSION_MAJOR DEC(__GNUC__) +# if defined(__GNUC_MINOR__) +# define COMPILER_VERSION_MINOR DEC(__GNUC_MINOR__) +# endif +# if defined(__GNUC_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) +# endif + +#elif defined(_MSC_VER) +# define COMPILER_ID "MSVC" + /* _MSC_VER = VVRR */ +# define COMPILER_VERSION_MAJOR DEC(_MSC_VER / 100) +# define COMPILER_VERSION_MINOR DEC(_MSC_VER % 100) +# if defined(_MSC_FULL_VER) +# if _MSC_VER >= 1400 + /* _MSC_FULL_VER = VVRRPPPPP */ +# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 100000) +# else + /* _MSC_FULL_VER = VVRRPPPP */ +# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 10000) +# endif +# endif +# if defined(_MSC_BUILD) +# define COMPILER_VERSION_TWEAK DEC(_MSC_BUILD) +# endif + +#elif defined(__VISUALDSPVERSION__) || defined(__ADSPBLACKFIN__) || defined(__ADSPTS__) || defined(__ADSP21000__) +# define COMPILER_ID "ADSP" +#if defined(__VISUALDSPVERSION__) + /* __VISUALDSPVERSION__ = 0xVVRRPP00 */ +# define COMPILER_VERSION_MAJOR HEX(__VISUALDSPVERSION__>>24) +# define COMPILER_VERSION_MINOR HEX(__VISUALDSPVERSION__>>16 & 0xFF) +# define COMPILER_VERSION_PATCH HEX(__VISUALDSPVERSION__>>8 & 0xFF) +#endif + +#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC) +# define COMPILER_ID "IAR" +# if defined(__VER__) && defined(__ICCARM__) +# define COMPILER_VERSION_MAJOR DEC((__VER__) / 1000000) +# define COMPILER_VERSION_MINOR DEC(((__VER__) / 1000) % 1000) +# define COMPILER_VERSION_PATCH DEC((__VER__) % 1000) +# define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__) +# elif defined(__VER__) && (defined(__ICCAVR__) || defined(__ICCRX__) || defined(__ICCRH850__) || defined(__ICCRL78__) || defined(__ICC430__) || defined(__ICCRISCV__) || defined(__ICCV850__) || defined(__ICC8051__) || defined(__ICCSTM8__)) +# define COMPILER_VERSION_MAJOR DEC((__VER__) / 100) +# define COMPILER_VERSION_MINOR DEC((__VER__) - (((__VER__) / 100)*100)) +# define COMPILER_VERSION_PATCH DEC(__SUBVERSION__) +# define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__) +# endif + +#elif defined(__SDCC_VERSION_MAJOR) || defined(SDCC) +# define COMPILER_ID "SDCC" +# if defined(__SDCC_VERSION_MAJOR) +# define COMPILER_VERSION_MAJOR DEC(__SDCC_VERSION_MAJOR) +# define COMPILER_VERSION_MINOR DEC(__SDCC_VERSION_MINOR) +# define COMPILER_VERSION_PATCH DEC(__SDCC_VERSION_PATCH) +# else + /* SDCC = VRP */ +# define COMPILER_VERSION_MAJOR DEC(SDCC/100) +# define COMPILER_VERSION_MINOR DEC(SDCC/10 % 10) +# define COMPILER_VERSION_PATCH DEC(SDCC % 10) +# endif + + +/* These compilers are either not known or too old to define an + identification macro. Try to identify the platform and guess that + it is the native compiler. */ +#elif defined(__hpux) || defined(__hpua) +# define COMPILER_ID "HP" + +#else /* unknown compiler */ +# define COMPILER_ID "" +#endif + +/* Construct the string literal in pieces to prevent the source from + getting matched. Store it in a pointer rather than an array + because some compilers will just produce instructions to fill the + array rather than assigning a pointer to a static array. */ +char const* info_compiler = "INFO" ":" "compiler[" COMPILER_ID "]"; +#ifdef SIMULATE_ID +char const* info_simulate = "INFO" ":" "simulate[" SIMULATE_ID "]"; +#endif + +#ifdef __QNXNTO__ +char const* qnxnto = "INFO" ":" "qnxnto[]"; +#endif + +#if defined(__CRAYXT_COMPUTE_LINUX_TARGET) +char const *info_cray = "INFO" ":" "compiler_wrapper[CrayPrgEnv]"; +#endif + +#define STRINGIFY_HELPER(X) #X +#define STRINGIFY(X) STRINGIFY_HELPER(X) + +/* Identify known platforms by name. */ +#if defined(__linux) || defined(__linux__) || defined(linux) +# define PLATFORM_ID "Linux" + +#elif defined(__MSYS__) +# define PLATFORM_ID "MSYS" + +#elif defined(__CYGWIN__) +# define PLATFORM_ID "Cygwin" + +#elif defined(__MINGW32__) +# define PLATFORM_ID "MinGW" + +#elif defined(__APPLE__) +# define PLATFORM_ID "Darwin" + +#elif defined(_WIN32) || defined(__WIN32__) || defined(WIN32) +# define PLATFORM_ID "Windows" + +#elif defined(__FreeBSD__) || defined(__FreeBSD) +# define PLATFORM_ID "FreeBSD" + +#elif defined(__NetBSD__) || defined(__NetBSD) +# define PLATFORM_ID "NetBSD" + +#elif defined(__OpenBSD__) || defined(__OPENBSD) +# define PLATFORM_ID "OpenBSD" + +#elif defined(__sun) || defined(sun) +# define PLATFORM_ID "SunOS" + +#elif defined(_AIX) || defined(__AIX) || defined(__AIX__) || defined(__aix) || defined(__aix__) +# define PLATFORM_ID "AIX" + +#elif defined(__hpux) || defined(__hpux__) +# define PLATFORM_ID "HP-UX" + +#elif defined(__HAIKU__) +# define PLATFORM_ID "Haiku" + +#elif defined(__BeOS) || defined(__BEOS__) || defined(_BEOS) +# define PLATFORM_ID "BeOS" + +#elif defined(__QNX__) || defined(__QNXNTO__) +# define PLATFORM_ID "QNX" + +#elif defined(__tru64) || defined(_tru64) || defined(__TRU64__) +# define PLATFORM_ID "Tru64" + +#elif defined(__riscos) || defined(__riscos__) +# define PLATFORM_ID "RISCos" + +#elif defined(__sinix) || defined(__sinix__) || defined(__SINIX__) +# define PLATFORM_ID "SINIX" + +#elif defined(__UNIX_SV__) +# define PLATFORM_ID "UNIX_SV" + +#elif defined(__bsdos__) +# define PLATFORM_ID "BSDOS" + +#elif defined(_MPRAS) || defined(MPRAS) +# define PLATFORM_ID "MP-RAS" + +#elif defined(__osf) || defined(__osf__) +# define PLATFORM_ID "OSF1" + +#elif defined(_SCO_SV) || defined(SCO_SV) || defined(sco_sv) +# define PLATFORM_ID "SCO_SV" + +#elif defined(__ultrix) || defined(__ultrix__) || defined(_ULTRIX) +# define PLATFORM_ID "ULTRIX" + +#elif defined(__XENIX__) || defined(_XENIX) || defined(XENIX) +# define PLATFORM_ID "Xenix" + +#elif defined(__WATCOMC__) +# if defined(__LINUX__) +# define PLATFORM_ID "Linux" + +# elif defined(__DOS__) +# define PLATFORM_ID "DOS" + +# elif defined(__OS2__) +# define PLATFORM_ID "OS2" + +# elif defined(__WINDOWS__) +# define PLATFORM_ID "Windows3x" + +# elif defined(__VXWORKS__) +# define PLATFORM_ID "VxWorks" + +# else /* unknown platform */ +# define PLATFORM_ID +# endif + +#elif defined(__INTEGRITY) +# if defined(INT_178B) +# define PLATFORM_ID "Integrity178" + +# else /* regular Integrity */ +# define PLATFORM_ID "Integrity" +# endif + +#else /* unknown platform */ +# define PLATFORM_ID + +#endif + +/* For windows compilers MSVC and Intel we can determine + the architecture of the compiler being used. This is because + the compilers do not have flags that can change the architecture, + but rather depend on which compiler is being used +*/ +#if defined(_WIN32) && defined(_MSC_VER) +# if defined(_M_IA64) +# define ARCHITECTURE_ID "IA64" + +# elif defined(_M_ARM64EC) +# define ARCHITECTURE_ID "ARM64EC" + +# elif defined(_M_X64) || defined(_M_AMD64) +# define ARCHITECTURE_ID "x64" + +# elif defined(_M_IX86) +# define ARCHITECTURE_ID "X86" + +# elif defined(_M_ARM64) +# define ARCHITECTURE_ID "ARM64" + +# elif defined(_M_ARM) +# if _M_ARM == 4 +# define ARCHITECTURE_ID "ARMV4I" +# elif _M_ARM == 5 +# define ARCHITECTURE_ID "ARMV5I" +# else +# define ARCHITECTURE_ID "ARMV" STRINGIFY(_M_ARM) +# endif + +# elif defined(_M_MIPS) +# define ARCHITECTURE_ID "MIPS" + +# elif defined(_M_SH) +# define ARCHITECTURE_ID "SHx" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#elif defined(__WATCOMC__) +# if defined(_M_I86) +# define ARCHITECTURE_ID "I86" + +# elif defined(_M_IX86) +# define ARCHITECTURE_ID "X86" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC) +# if defined(__ICCARM__) +# define ARCHITECTURE_ID "ARM" + +# elif defined(__ICCRX__) +# define ARCHITECTURE_ID "RX" + +# elif defined(__ICCRH850__) +# define ARCHITECTURE_ID "RH850" + +# elif defined(__ICCRL78__) +# define ARCHITECTURE_ID "RL78" + +# elif defined(__ICCRISCV__) +# define ARCHITECTURE_ID "RISCV" + +# elif defined(__ICCAVR__) +# define ARCHITECTURE_ID "AVR" + +# elif defined(__ICC430__) +# define ARCHITECTURE_ID "MSP430" + +# elif defined(__ICCV850__) +# define ARCHITECTURE_ID "V850" + +# elif defined(__ICC8051__) +# define ARCHITECTURE_ID "8051" + +# elif defined(__ICCSTM8__) +# define ARCHITECTURE_ID "STM8" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#elif defined(__ghs__) +# if defined(__PPC64__) +# define ARCHITECTURE_ID "PPC64" + +# elif defined(__ppc__) +# define ARCHITECTURE_ID "PPC" + +# elif defined(__ARM__) +# define ARCHITECTURE_ID "ARM" + +# elif defined(__x86_64__) +# define ARCHITECTURE_ID "x64" + +# elif defined(__i386__) +# define ARCHITECTURE_ID "X86" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#elif defined(__TI_COMPILER_VERSION__) +# if defined(__TI_ARM__) +# define ARCHITECTURE_ID "ARM" + +# elif defined(__MSP430__) +# define ARCHITECTURE_ID "MSP430" + +# elif defined(__TMS320C28XX__) +# define ARCHITECTURE_ID "TMS320C28x" + +# elif defined(__TMS320C6X__) || defined(_TMS320C6X) +# define ARCHITECTURE_ID "TMS320C6x" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#else +# define ARCHITECTURE_ID +#endif + +/* Convert integer to decimal digit literals. */ +#define DEC(n) \ + ('0' + (((n) / 10000000)%10)), \ + ('0' + (((n) / 1000000)%10)), \ + ('0' + (((n) / 100000)%10)), \ + ('0' + (((n) / 10000)%10)), \ + ('0' + (((n) / 1000)%10)), \ + ('0' + (((n) / 100)%10)), \ + ('0' + (((n) / 10)%10)), \ + ('0' + ((n) % 10)) + +/* Convert integer to hex digit literals. */ +#define HEX(n) \ + ('0' + ((n)>>28 & 0xF)), \ + ('0' + ((n)>>24 & 0xF)), \ + ('0' + ((n)>>20 & 0xF)), \ + ('0' + ((n)>>16 & 0xF)), \ + ('0' + ((n)>>12 & 0xF)), \ + ('0' + ((n)>>8 & 0xF)), \ + ('0' + ((n)>>4 & 0xF)), \ + ('0' + ((n) & 0xF)) + +/* Construct a string literal encoding the version number. */ +#ifdef COMPILER_VERSION +char const* info_version = "INFO" ":" "compiler_version[" COMPILER_VERSION "]"; + +/* Construct a string literal encoding the version number components. */ +#elif defined(COMPILER_VERSION_MAJOR) +char const info_version[] = { + 'I', 'N', 'F', 'O', ':', + 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','[', + COMPILER_VERSION_MAJOR, +# ifdef COMPILER_VERSION_MINOR + '.', COMPILER_VERSION_MINOR, +# ifdef COMPILER_VERSION_PATCH + '.', COMPILER_VERSION_PATCH, +# ifdef COMPILER_VERSION_TWEAK + '.', COMPILER_VERSION_TWEAK, +# endif +# endif +# endif + ']','\0'}; +#endif + +/* Construct a string literal encoding the internal version number. */ +#ifdef COMPILER_VERSION_INTERNAL +char const info_version_internal[] = { + 'I', 'N', 'F', 'O', ':', + 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','_', + 'i','n','t','e','r','n','a','l','[', + COMPILER_VERSION_INTERNAL,']','\0'}; +#elif defined(COMPILER_VERSION_INTERNAL_STR) +char const* info_version_internal = "INFO" ":" "compiler_version_internal[" COMPILER_VERSION_INTERNAL_STR "]"; +#endif + +/* Construct a string literal encoding the version number components. */ +#ifdef SIMULATE_VERSION_MAJOR +char const info_simulate_version[] = { + 'I', 'N', 'F', 'O', ':', + 's','i','m','u','l','a','t','e','_','v','e','r','s','i','o','n','[', + SIMULATE_VERSION_MAJOR, +# ifdef SIMULATE_VERSION_MINOR + '.', SIMULATE_VERSION_MINOR, +# ifdef SIMULATE_VERSION_PATCH + '.', SIMULATE_VERSION_PATCH, +# ifdef SIMULATE_VERSION_TWEAK + '.', SIMULATE_VERSION_TWEAK, +# endif +# endif +# endif + ']','\0'}; +#endif + +/* Construct the string literal in pieces to prevent the source from + getting matched. Store it in a pointer rather than an array + because some compilers will just produce instructions to fill the + array rather than assigning a pointer to a static array. */ +char const* info_platform = "INFO" ":" "platform[" PLATFORM_ID "]"; +char const* info_arch = "INFO" ":" "arch[" ARCHITECTURE_ID "]"; + + + +#if !defined(__STDC__) && !defined(__clang__) +# if defined(_MSC_VER) || defined(__ibmxl__) || defined(__IBMC__) +# define C_VERSION "90" +# else +# define C_VERSION +# endif +#elif __STDC_VERSION__ > 201710L +# define C_VERSION "23" +#elif __STDC_VERSION__ >= 201710L +# define C_VERSION "17" +#elif __STDC_VERSION__ >= 201000L +# define C_VERSION "11" +#elif __STDC_VERSION__ >= 199901L +# define C_VERSION "99" +#else +# define C_VERSION "90" +#endif +const char* info_language_standard_default = + "INFO" ":" "standard_default[" C_VERSION "]"; + +const char* info_language_extensions_default = "INFO" ":" "extensions_default[" +/* !defined(_MSC_VER) to exclude Clang's MSVC compatibility mode. */ +#if (defined(__clang__) || defined(__GNUC__) || \ + defined(__TI_COMPILER_VERSION__)) && \ + !defined(__STRICT_ANSI__) && !defined(_MSC_VER) + "ON" +#else + "OFF" +#endif +"]"; + +/*--------------------------------------------------------------------------*/ + +#ifdef ID_VOID_MAIN +void main() {} +#else +# if defined(__CLASSIC_C__) +int main(argc, argv) int argc; char *argv[]; +# else +int main(int argc, char* argv[]) +# endif +{ + int require = 0; + require += info_compiler[argc]; + require += info_platform[argc]; + require += info_arch[argc]; +#ifdef COMPILER_VERSION_MAJOR + require += info_version[argc]; +#endif +#ifdef COMPILER_VERSION_INTERNAL + require += info_version_internal[argc]; +#endif +#ifdef SIMULATE_ID + require += info_simulate[argc]; +#endif +#ifdef SIMULATE_VERSION_MAJOR + require += info_simulate_version[argc]; +#endif +#if defined(__CRAYXT_COMPUTE_LINUX_TARGET) + require += info_cray[argc]; +#endif + require += info_language_standard_default[argc]; + require += info_language_extensions_default[argc]; + (void)argv; + return require; +} +#endif diff --git a/example/android/app/.cxx/Debug/28432r45/x86_64/CMakeFiles/3.22.1-g37088a8/CompilerIdC/CMakeCCompilerId.o b/example/android/app/.cxx/Debug/28432r45/x86_64/CMakeFiles/3.22.1-g37088a8/CompilerIdC/CMakeCCompilerId.o new file mode 100644 index 0000000000000000000000000000000000000000..5254511f244e2ae2919045ba95e3cf96aed57c5c GIT binary patch literal 5440 zcmdT|Ym6J!6}~fGd!2aWWV28n3CI*Egp!%{BfH*!!bZ!6T?9!KSP)&M)~r4Dnv6YW zJPr#|MJ1lgL*ns+NTpI$wNg?31b(1aNT?D&cuD+de<7tRm5Pe0m7uLEsEDBF+&Ra- zdp$wGKh9?6p7Y)Fy03G`d1(H&L#AN}CPN$$1Bp=~X0r+}*;%n0G?y0EKYDBa93tyK z`+Q-&_vu^n8z?P2m6T2O_RqJ!F_KQqZ>-O6dNGt!Sf2BocH_8^V8?U9x*xQbZ)>)DYXmw$b#=e_REOOIxTn3Ww9f82~hJ! zco{DkTN132SO9M12)r&7a_W`m6jb#7R*niqo{9(WJSDbKy4KoEpHU1N8bE#tUZ$-o0k2e2RkU^Z?ijAtV6;hLg z(`Vd;tdUOq1{`I~=hilh9THDN@0j@<<}8eiRF390Ig&mDeQBINaj;zr{AMk8Z9ZQt z%@hjd>vKQuG<blqCcZ|8zid3w4u?e57{@i^sZgXeH-TZP=U zt6|vb?ze3?J?PzP_2zk)n@ADnR=;~ zpPHH~*7i;23+}$^cY`eC*=CnGV%Q@Okr(;{ywKe-@ccs^` z3*}O=5R~@WYvrlRRLPbB4?zj(+C{5Su=0Bw#p%g%*(uwDEan6ZDiD>*!DGh`-cz|_ z@h9_@JMTFqOPMc% zh7b<}G$O8pw_zAxWVc}hW_Z^baeE57pwO7IfmdQZWh6(prmsk5d&x}d@5yYcp|z_d zC$jZTJzG<&$wVr1qiI4+_BYgC4_zbTUtbM%U~u@0qeOJ9hq@ACd9|#6{6eWUcrlJUR3*lzR1kQ^j}p!+f@6v<M|-z2<7IEuWd5W1gm z_H#e!KSDT)gWV{^uN55Ei`V5e;q2!T^276l;$XK6@vi3QI+FjY`FWoFY$*B|gXv3R zP!03pb)O(R&gUhPbJSwPYmF`n3XXnwes3Y1{k%@{or?b8^a*iX!PWIWq4_yW@`D=w z5y|Ts{!fxmY4|53|5n5QMsf}Z2ZXt(`AkbRIu|M~tQy|x6=!87a8C*=gzHk^mk53# z2rFogFg@=EzH@Hcel#-lKcvn4Q(AX+u89I~1jN)@g}Sr&iXpW&V)vWye4Rbtd+cflGt|BT zE&7}#nVUaSQF@kuUC`n|@7>@yJQ5T6@tZT^YbGSeX91m@f zbon8`;_^RA#f|gC{Be%ip7ECf!%&;f9LQYP^>OL*_h+)#^MB$S=Kns}$K}5olRrXw z{^!mUAHOM)SU-}6<Mip@v*M6 zJ;%Qiu(KH1{(T03Y>(oSX z3UuT0f1C3EnEc@W$8RP*{}3?rISG$S|Dy%{Obf^&xA?sgXa6aEto=cCO1cQK{XY~Q zai*8`f=C@~$9g{m0RDCK^LvKu%dAK(kDuYoz&LLH&QSg4eTMUQ5jAHRq6v15Ra{J)|>9mBW?>GuBz_?nAM literal 0 HcmV?d00001 diff --git a/example/android/app/.cxx/Debug/28432r45/x86_64/CMakeFiles/3.22.1-g37088a8/CompilerIdCXX/CMakeCXXCompilerId.cpp b/example/android/app/.cxx/Debug/28432r45/x86_64/CMakeFiles/3.22.1-g37088a8/CompilerIdCXX/CMakeCXXCompilerId.cpp new file mode 100644 index 0000000..25c62a8 --- /dev/null +++ b/example/android/app/.cxx/Debug/28432r45/x86_64/CMakeFiles/3.22.1-g37088a8/CompilerIdCXX/CMakeCXXCompilerId.cpp @@ -0,0 +1,791 @@ +/* This source file must have a .cpp extension so that all C++ compilers + recognize the extension without flags. Borland does not know .cxx for + example. */ +#ifndef __cplusplus +# error "A C compiler has been selected for C++." +#endif + +#if !defined(__has_include) +/* If the compiler does not have __has_include, pretend the answer is + always no. */ +# define __has_include(x) 0 +#endif + + +/* Version number components: V=Version, R=Revision, P=Patch + Version date components: YYYY=Year, MM=Month, DD=Day */ + +#if defined(__COMO__) +# define COMPILER_ID "Comeau" + /* __COMO_VERSION__ = VRR */ +# define COMPILER_VERSION_MAJOR DEC(__COMO_VERSION__ / 100) +# define COMPILER_VERSION_MINOR DEC(__COMO_VERSION__ % 100) + +#elif defined(__INTEL_COMPILER) || defined(__ICC) +# define COMPILER_ID "Intel" +# if defined(_MSC_VER) +# define SIMULATE_ID "MSVC" +# endif +# if defined(__GNUC__) +# define SIMULATE_ID "GNU" +# endif + /* __INTEL_COMPILER = VRP prior to 2021, and then VVVV for 2021 and later, + except that a few beta releases use the old format with V=2021. */ +# if __INTEL_COMPILER < 2021 || __INTEL_COMPILER == 202110 || __INTEL_COMPILER == 202111 +# define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER/100) +# define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER/10 % 10) +# if defined(__INTEL_COMPILER_UPDATE) +# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER_UPDATE) +# else +# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER % 10) +# endif +# else +# define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER) +# define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER_UPDATE) + /* The third version component from --version is an update index, + but no macro is provided for it. */ +# define COMPILER_VERSION_PATCH DEC(0) +# endif +# if defined(__INTEL_COMPILER_BUILD_DATE) + /* __INTEL_COMPILER_BUILD_DATE = YYYYMMDD */ +# define COMPILER_VERSION_TWEAK DEC(__INTEL_COMPILER_BUILD_DATE) +# endif +# if defined(_MSC_VER) + /* _MSC_VER = VVRR */ +# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) +# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) +# endif +# if defined(__GNUC__) +# define SIMULATE_VERSION_MAJOR DEC(__GNUC__) +# elif defined(__GNUG__) +# define SIMULATE_VERSION_MAJOR DEC(__GNUG__) +# endif +# if defined(__GNUC_MINOR__) +# define SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__) +# endif +# if defined(__GNUC_PATCHLEVEL__) +# define SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) +# endif + +#elif (defined(__clang__) && defined(__INTEL_CLANG_COMPILER)) || defined(__INTEL_LLVM_COMPILER) +# define COMPILER_ID "IntelLLVM" +#if defined(_MSC_VER) +# define SIMULATE_ID "MSVC" +#endif +#if defined(__GNUC__) +# define SIMULATE_ID "GNU" +#endif +/* __INTEL_LLVM_COMPILER = VVVVRP prior to 2021.2.0, VVVVRRPP for 2021.2.0 and + * later. Look for 6 digit vs. 8 digit version number to decide encoding. + * VVVV is no smaller than the current year when a version is released. + */ +#if __INTEL_LLVM_COMPILER < 1000000L +# define COMPILER_VERSION_MAJOR DEC(__INTEL_LLVM_COMPILER/100) +# define COMPILER_VERSION_MINOR DEC(__INTEL_LLVM_COMPILER/10 % 10) +# define COMPILER_VERSION_PATCH DEC(__INTEL_LLVM_COMPILER % 10) +#else +# define COMPILER_VERSION_MAJOR DEC(__INTEL_LLVM_COMPILER/10000) +# define COMPILER_VERSION_MINOR DEC(__INTEL_LLVM_COMPILER/100 % 100) +# define COMPILER_VERSION_PATCH DEC(__INTEL_LLVM_COMPILER % 100) +#endif +#if defined(_MSC_VER) + /* _MSC_VER = VVRR */ +# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) +# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) +#endif +#if defined(__GNUC__) +# define SIMULATE_VERSION_MAJOR DEC(__GNUC__) +#elif defined(__GNUG__) +# define SIMULATE_VERSION_MAJOR DEC(__GNUG__) +#endif +#if defined(__GNUC_MINOR__) +# define SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__) +#endif +#if defined(__GNUC_PATCHLEVEL__) +# define SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) +#endif + +#elif defined(__PATHCC__) +# define COMPILER_ID "PathScale" +# define COMPILER_VERSION_MAJOR DEC(__PATHCC__) +# define COMPILER_VERSION_MINOR DEC(__PATHCC_MINOR__) +# if defined(__PATHCC_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__PATHCC_PATCHLEVEL__) +# endif + +#elif defined(__BORLANDC__) && defined(__CODEGEARC_VERSION__) +# define COMPILER_ID "Embarcadero" +# define COMPILER_VERSION_MAJOR HEX(__CODEGEARC_VERSION__>>24 & 0x00FF) +# define COMPILER_VERSION_MINOR HEX(__CODEGEARC_VERSION__>>16 & 0x00FF) +# define COMPILER_VERSION_PATCH DEC(__CODEGEARC_VERSION__ & 0xFFFF) + +#elif defined(__BORLANDC__) +# define COMPILER_ID "Borland" + /* __BORLANDC__ = 0xVRR */ +# define COMPILER_VERSION_MAJOR HEX(__BORLANDC__>>8) +# define COMPILER_VERSION_MINOR HEX(__BORLANDC__ & 0xFF) + +#elif defined(__WATCOMC__) && __WATCOMC__ < 1200 +# define COMPILER_ID "Watcom" + /* __WATCOMC__ = VVRR */ +# define COMPILER_VERSION_MAJOR DEC(__WATCOMC__ / 100) +# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10) +# if (__WATCOMC__ % 10) > 0 +# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10) +# endif + +#elif defined(__WATCOMC__) +# define COMPILER_ID "OpenWatcom" + /* __WATCOMC__ = VVRP + 1100 */ +# define COMPILER_VERSION_MAJOR DEC((__WATCOMC__ - 1100) / 100) +# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10) +# if (__WATCOMC__ % 10) > 0 +# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10) +# endif + +#elif defined(__SUNPRO_CC) +# define COMPILER_ID "SunPro" +# if __SUNPRO_CC >= 0x5100 + /* __SUNPRO_CC = 0xVRRP */ +# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_CC>>12) +# define COMPILER_VERSION_MINOR HEX(__SUNPRO_CC>>4 & 0xFF) +# define COMPILER_VERSION_PATCH HEX(__SUNPRO_CC & 0xF) +# else + /* __SUNPRO_CC = 0xVRP */ +# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_CC>>8) +# define COMPILER_VERSION_MINOR HEX(__SUNPRO_CC>>4 & 0xF) +# define COMPILER_VERSION_PATCH HEX(__SUNPRO_CC & 0xF) +# endif + +#elif defined(__HP_aCC) +# define COMPILER_ID "HP" + /* __HP_aCC = VVRRPP */ +# define COMPILER_VERSION_MAJOR DEC(__HP_aCC/10000) +# define COMPILER_VERSION_MINOR DEC(__HP_aCC/100 % 100) +# define COMPILER_VERSION_PATCH DEC(__HP_aCC % 100) + +#elif defined(__DECCXX) +# define COMPILER_ID "Compaq" + /* __DECCXX_VER = VVRRTPPPP */ +# define COMPILER_VERSION_MAJOR DEC(__DECCXX_VER/10000000) +# define COMPILER_VERSION_MINOR DEC(__DECCXX_VER/100000 % 100) +# define COMPILER_VERSION_PATCH DEC(__DECCXX_VER % 10000) + +#elif defined(__IBMCPP__) && defined(__COMPILER_VER__) +# define COMPILER_ID "zOS" + /* __IBMCPP__ = VRP */ +# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100) +# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10) +# define COMPILER_VERSION_PATCH DEC(__IBMCPP__ % 10) + +#elif defined(__ibmxl__) && defined(__clang__) +# define COMPILER_ID "XLClang" +# define COMPILER_VERSION_MAJOR DEC(__ibmxl_version__) +# define COMPILER_VERSION_MINOR DEC(__ibmxl_release__) +# define COMPILER_VERSION_PATCH DEC(__ibmxl_modification__) +# define COMPILER_VERSION_TWEAK DEC(__ibmxl_ptf_fix_level__) + + +#elif defined(__IBMCPP__) && !defined(__COMPILER_VER__) && __IBMCPP__ >= 800 +# define COMPILER_ID "XL" + /* __IBMCPP__ = VRP */ +# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100) +# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10) +# define COMPILER_VERSION_PATCH DEC(__IBMCPP__ % 10) + +#elif defined(__IBMCPP__) && !defined(__COMPILER_VER__) && __IBMCPP__ < 800 +# define COMPILER_ID "VisualAge" + /* __IBMCPP__ = VRP */ +# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100) +# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10) +# define COMPILER_VERSION_PATCH DEC(__IBMCPP__ % 10) + +#elif defined(__NVCOMPILER) +# define COMPILER_ID "NVHPC" +# define COMPILER_VERSION_MAJOR DEC(__NVCOMPILER_MAJOR__) +# define COMPILER_VERSION_MINOR DEC(__NVCOMPILER_MINOR__) +# if defined(__NVCOMPILER_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__NVCOMPILER_PATCHLEVEL__) +# endif + +#elif defined(__PGI) +# define COMPILER_ID "PGI" +# define COMPILER_VERSION_MAJOR DEC(__PGIC__) +# define COMPILER_VERSION_MINOR DEC(__PGIC_MINOR__) +# if defined(__PGIC_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__PGIC_PATCHLEVEL__) +# endif + +#elif defined(_CRAYC) +# define COMPILER_ID "Cray" +# define COMPILER_VERSION_MAJOR DEC(_RELEASE_MAJOR) +# define COMPILER_VERSION_MINOR DEC(_RELEASE_MINOR) + +#elif defined(__TI_COMPILER_VERSION__) +# define COMPILER_ID "TI" + /* __TI_COMPILER_VERSION__ = VVVRRRPPP */ +# define COMPILER_VERSION_MAJOR DEC(__TI_COMPILER_VERSION__/1000000) +# define COMPILER_VERSION_MINOR DEC(__TI_COMPILER_VERSION__/1000 % 1000) +# define COMPILER_VERSION_PATCH DEC(__TI_COMPILER_VERSION__ % 1000) + +#elif defined(__CLANG_FUJITSU) +# define COMPILER_ID "FujitsuClang" +# define COMPILER_VERSION_MAJOR DEC(__FCC_major__) +# define COMPILER_VERSION_MINOR DEC(__FCC_minor__) +# define COMPILER_VERSION_PATCH DEC(__FCC_patchlevel__) +# define COMPILER_VERSION_INTERNAL_STR __clang_version__ + + +#elif defined(__FUJITSU) +# define COMPILER_ID "Fujitsu" +# if defined(__FCC_version__) +# define COMPILER_VERSION __FCC_version__ +# elif defined(__FCC_major__) +# define COMPILER_VERSION_MAJOR DEC(__FCC_major__) +# define COMPILER_VERSION_MINOR DEC(__FCC_minor__) +# define COMPILER_VERSION_PATCH DEC(__FCC_patchlevel__) +# endif +# if defined(__fcc_version) +# define COMPILER_VERSION_INTERNAL DEC(__fcc_version) +# elif defined(__FCC_VERSION) +# define COMPILER_VERSION_INTERNAL DEC(__FCC_VERSION) +# endif + + +#elif defined(__ghs__) +# define COMPILER_ID "GHS" +/* __GHS_VERSION_NUMBER = VVVVRP */ +# ifdef __GHS_VERSION_NUMBER +# define COMPILER_VERSION_MAJOR DEC(__GHS_VERSION_NUMBER / 100) +# define COMPILER_VERSION_MINOR DEC(__GHS_VERSION_NUMBER / 10 % 10) +# define COMPILER_VERSION_PATCH DEC(__GHS_VERSION_NUMBER % 10) +# endif + +#elif defined(__SCO_VERSION__) +# define COMPILER_ID "SCO" + +#elif defined(__ARMCC_VERSION) && !defined(__clang__) +# define COMPILER_ID "ARMCC" +#if __ARMCC_VERSION >= 1000000 + /* __ARMCC_VERSION = VRRPPPP */ + # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/1000000) + # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 100) + # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000) +#else + /* __ARMCC_VERSION = VRPPPP */ + # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/100000) + # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 10) + # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000) +#endif + + +#elif defined(__clang__) && defined(__apple_build_version__) +# define COMPILER_ID "AppleClang" +# if defined(_MSC_VER) +# define SIMULATE_ID "MSVC" +# endif +# define COMPILER_VERSION_MAJOR DEC(__clang_major__) +# define COMPILER_VERSION_MINOR DEC(__clang_minor__) +# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__) +# if defined(_MSC_VER) + /* _MSC_VER = VVRR */ +# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) +# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) +# endif +# define COMPILER_VERSION_TWEAK DEC(__apple_build_version__) + +#elif defined(__clang__) && defined(__ARMCOMPILER_VERSION) +# define COMPILER_ID "ARMClang" + # define COMPILER_VERSION_MAJOR DEC(__ARMCOMPILER_VERSION/1000000) + # define COMPILER_VERSION_MINOR DEC(__ARMCOMPILER_VERSION/10000 % 100) + # define COMPILER_VERSION_PATCH DEC(__ARMCOMPILER_VERSION % 10000) +# define COMPILER_VERSION_INTERNAL DEC(__ARMCOMPILER_VERSION) + +#elif defined(__clang__) +# define COMPILER_ID "Clang" +# if defined(_MSC_VER) +# define SIMULATE_ID "MSVC" +# endif +# define COMPILER_VERSION_MAJOR DEC(__clang_major__) +# define COMPILER_VERSION_MINOR DEC(__clang_minor__) +# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__) +# if defined(_MSC_VER) + /* _MSC_VER = VVRR */ +# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) +# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) +# endif + +#elif defined(__GNUC__) || defined(__GNUG__) +# define COMPILER_ID "GNU" +# if defined(__GNUC__) +# define COMPILER_VERSION_MAJOR DEC(__GNUC__) +# else +# define COMPILER_VERSION_MAJOR DEC(__GNUG__) +# endif +# if defined(__GNUC_MINOR__) +# define COMPILER_VERSION_MINOR DEC(__GNUC_MINOR__) +# endif +# if defined(__GNUC_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) +# endif + +#elif defined(_MSC_VER) +# define COMPILER_ID "MSVC" + /* _MSC_VER = VVRR */ +# define COMPILER_VERSION_MAJOR DEC(_MSC_VER / 100) +# define COMPILER_VERSION_MINOR DEC(_MSC_VER % 100) +# if defined(_MSC_FULL_VER) +# if _MSC_VER >= 1400 + /* _MSC_FULL_VER = VVRRPPPPP */ +# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 100000) +# else + /* _MSC_FULL_VER = VVRRPPPP */ +# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 10000) +# endif +# endif +# if defined(_MSC_BUILD) +# define COMPILER_VERSION_TWEAK DEC(_MSC_BUILD) +# endif + +#elif defined(__VISUALDSPVERSION__) || defined(__ADSPBLACKFIN__) || defined(__ADSPTS__) || defined(__ADSP21000__) +# define COMPILER_ID "ADSP" +#if defined(__VISUALDSPVERSION__) + /* __VISUALDSPVERSION__ = 0xVVRRPP00 */ +# define COMPILER_VERSION_MAJOR HEX(__VISUALDSPVERSION__>>24) +# define COMPILER_VERSION_MINOR HEX(__VISUALDSPVERSION__>>16 & 0xFF) +# define COMPILER_VERSION_PATCH HEX(__VISUALDSPVERSION__>>8 & 0xFF) +#endif + +#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC) +# define COMPILER_ID "IAR" +# if defined(__VER__) && defined(__ICCARM__) +# define COMPILER_VERSION_MAJOR DEC((__VER__) / 1000000) +# define COMPILER_VERSION_MINOR DEC(((__VER__) / 1000) % 1000) +# define COMPILER_VERSION_PATCH DEC((__VER__) % 1000) +# define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__) +# elif defined(__VER__) && (defined(__ICCAVR__) || defined(__ICCRX__) || defined(__ICCRH850__) || defined(__ICCRL78__) || defined(__ICC430__) || defined(__ICCRISCV__) || defined(__ICCV850__) || defined(__ICC8051__) || defined(__ICCSTM8__)) +# define COMPILER_VERSION_MAJOR DEC((__VER__) / 100) +# define COMPILER_VERSION_MINOR DEC((__VER__) - (((__VER__) / 100)*100)) +# define COMPILER_VERSION_PATCH DEC(__SUBVERSION__) +# define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__) +# endif + + +/* These compilers are either not known or too old to define an + identification macro. Try to identify the platform and guess that + it is the native compiler. */ +#elif defined(__hpux) || defined(__hpua) +# define COMPILER_ID "HP" + +#else /* unknown compiler */ +# define COMPILER_ID "" +#endif + +/* Construct the string literal in pieces to prevent the source from + getting matched. Store it in a pointer rather than an array + because some compilers will just produce instructions to fill the + array rather than assigning a pointer to a static array. */ +char const* info_compiler = "INFO" ":" "compiler[" COMPILER_ID "]"; +#ifdef SIMULATE_ID +char const* info_simulate = "INFO" ":" "simulate[" SIMULATE_ID "]"; +#endif + +#ifdef __QNXNTO__ +char const* qnxnto = "INFO" ":" "qnxnto[]"; +#endif + +#if defined(__CRAYXT_COMPUTE_LINUX_TARGET) +char const *info_cray = "INFO" ":" "compiler_wrapper[CrayPrgEnv]"; +#endif + +#define STRINGIFY_HELPER(X) #X +#define STRINGIFY(X) STRINGIFY_HELPER(X) + +/* Identify known platforms by name. */ +#if defined(__linux) || defined(__linux__) || defined(linux) +# define PLATFORM_ID "Linux" + +#elif defined(__MSYS__) +# define PLATFORM_ID "MSYS" + +#elif defined(__CYGWIN__) +# define PLATFORM_ID "Cygwin" + +#elif defined(__MINGW32__) +# define PLATFORM_ID "MinGW" + +#elif defined(__APPLE__) +# define PLATFORM_ID "Darwin" + +#elif defined(_WIN32) || defined(__WIN32__) || defined(WIN32) +# define PLATFORM_ID "Windows" + +#elif defined(__FreeBSD__) || defined(__FreeBSD) +# define PLATFORM_ID "FreeBSD" + +#elif defined(__NetBSD__) || defined(__NetBSD) +# define PLATFORM_ID "NetBSD" + +#elif defined(__OpenBSD__) || defined(__OPENBSD) +# define PLATFORM_ID "OpenBSD" + +#elif defined(__sun) || defined(sun) +# define PLATFORM_ID "SunOS" + +#elif defined(_AIX) || defined(__AIX) || defined(__AIX__) || defined(__aix) || defined(__aix__) +# define PLATFORM_ID "AIX" + +#elif defined(__hpux) || defined(__hpux__) +# define PLATFORM_ID "HP-UX" + +#elif defined(__HAIKU__) +# define PLATFORM_ID "Haiku" + +#elif defined(__BeOS) || defined(__BEOS__) || defined(_BEOS) +# define PLATFORM_ID "BeOS" + +#elif defined(__QNX__) || defined(__QNXNTO__) +# define PLATFORM_ID "QNX" + +#elif defined(__tru64) || defined(_tru64) || defined(__TRU64__) +# define PLATFORM_ID "Tru64" + +#elif defined(__riscos) || defined(__riscos__) +# define PLATFORM_ID "RISCos" + +#elif defined(__sinix) || defined(__sinix__) || defined(__SINIX__) +# define PLATFORM_ID "SINIX" + +#elif defined(__UNIX_SV__) +# define PLATFORM_ID "UNIX_SV" + +#elif defined(__bsdos__) +# define PLATFORM_ID "BSDOS" + +#elif defined(_MPRAS) || defined(MPRAS) +# define PLATFORM_ID "MP-RAS" + +#elif defined(__osf) || defined(__osf__) +# define PLATFORM_ID "OSF1" + +#elif defined(_SCO_SV) || defined(SCO_SV) || defined(sco_sv) +# define PLATFORM_ID "SCO_SV" + +#elif defined(__ultrix) || defined(__ultrix__) || defined(_ULTRIX) +# define PLATFORM_ID "ULTRIX" + +#elif defined(__XENIX__) || defined(_XENIX) || defined(XENIX) +# define PLATFORM_ID "Xenix" + +#elif defined(__WATCOMC__) +# if defined(__LINUX__) +# define PLATFORM_ID "Linux" + +# elif defined(__DOS__) +# define PLATFORM_ID "DOS" + +# elif defined(__OS2__) +# define PLATFORM_ID "OS2" + +# elif defined(__WINDOWS__) +# define PLATFORM_ID "Windows3x" + +# elif defined(__VXWORKS__) +# define PLATFORM_ID "VxWorks" + +# else /* unknown platform */ +# define PLATFORM_ID +# endif + +#elif defined(__INTEGRITY) +# if defined(INT_178B) +# define PLATFORM_ID "Integrity178" + +# else /* regular Integrity */ +# define PLATFORM_ID "Integrity" +# endif + +#else /* unknown platform */ +# define PLATFORM_ID + +#endif + +/* For windows compilers MSVC and Intel we can determine + the architecture of the compiler being used. This is because + the compilers do not have flags that can change the architecture, + but rather depend on which compiler is being used +*/ +#if defined(_WIN32) && defined(_MSC_VER) +# if defined(_M_IA64) +# define ARCHITECTURE_ID "IA64" + +# elif defined(_M_ARM64EC) +# define ARCHITECTURE_ID "ARM64EC" + +# elif defined(_M_X64) || defined(_M_AMD64) +# define ARCHITECTURE_ID "x64" + +# elif defined(_M_IX86) +# define ARCHITECTURE_ID "X86" + +# elif defined(_M_ARM64) +# define ARCHITECTURE_ID "ARM64" + +# elif defined(_M_ARM) +# if _M_ARM == 4 +# define ARCHITECTURE_ID "ARMV4I" +# elif _M_ARM == 5 +# define ARCHITECTURE_ID "ARMV5I" +# else +# define ARCHITECTURE_ID "ARMV" STRINGIFY(_M_ARM) +# endif + +# elif defined(_M_MIPS) +# define ARCHITECTURE_ID "MIPS" + +# elif defined(_M_SH) +# define ARCHITECTURE_ID "SHx" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#elif defined(__WATCOMC__) +# if defined(_M_I86) +# define ARCHITECTURE_ID "I86" + +# elif defined(_M_IX86) +# define ARCHITECTURE_ID "X86" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC) +# if defined(__ICCARM__) +# define ARCHITECTURE_ID "ARM" + +# elif defined(__ICCRX__) +# define ARCHITECTURE_ID "RX" + +# elif defined(__ICCRH850__) +# define ARCHITECTURE_ID "RH850" + +# elif defined(__ICCRL78__) +# define ARCHITECTURE_ID "RL78" + +# elif defined(__ICCRISCV__) +# define ARCHITECTURE_ID "RISCV" + +# elif defined(__ICCAVR__) +# define ARCHITECTURE_ID "AVR" + +# elif defined(__ICC430__) +# define ARCHITECTURE_ID "MSP430" + +# elif defined(__ICCV850__) +# define ARCHITECTURE_ID "V850" + +# elif defined(__ICC8051__) +# define ARCHITECTURE_ID "8051" + +# elif defined(__ICCSTM8__) +# define ARCHITECTURE_ID "STM8" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#elif defined(__ghs__) +# if defined(__PPC64__) +# define ARCHITECTURE_ID "PPC64" + +# elif defined(__ppc__) +# define ARCHITECTURE_ID "PPC" + +# elif defined(__ARM__) +# define ARCHITECTURE_ID "ARM" + +# elif defined(__x86_64__) +# define ARCHITECTURE_ID "x64" + +# elif defined(__i386__) +# define ARCHITECTURE_ID "X86" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#elif defined(__TI_COMPILER_VERSION__) +# if defined(__TI_ARM__) +# define ARCHITECTURE_ID "ARM" + +# elif defined(__MSP430__) +# define ARCHITECTURE_ID "MSP430" + +# elif defined(__TMS320C28XX__) +# define ARCHITECTURE_ID "TMS320C28x" + +# elif defined(__TMS320C6X__) || defined(_TMS320C6X) +# define ARCHITECTURE_ID "TMS320C6x" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#else +# define ARCHITECTURE_ID +#endif + +/* Convert integer to decimal digit literals. */ +#define DEC(n) \ + ('0' + (((n) / 10000000)%10)), \ + ('0' + (((n) / 1000000)%10)), \ + ('0' + (((n) / 100000)%10)), \ + ('0' + (((n) / 10000)%10)), \ + ('0' + (((n) / 1000)%10)), \ + ('0' + (((n) / 100)%10)), \ + ('0' + (((n) / 10)%10)), \ + ('0' + ((n) % 10)) + +/* Convert integer to hex digit literals. */ +#define HEX(n) \ + ('0' + ((n)>>28 & 0xF)), \ + ('0' + ((n)>>24 & 0xF)), \ + ('0' + ((n)>>20 & 0xF)), \ + ('0' + ((n)>>16 & 0xF)), \ + ('0' + ((n)>>12 & 0xF)), \ + ('0' + ((n)>>8 & 0xF)), \ + ('0' + ((n)>>4 & 0xF)), \ + ('0' + ((n) & 0xF)) + +/* Construct a string literal encoding the version number. */ +#ifdef COMPILER_VERSION +char const* info_version = "INFO" ":" "compiler_version[" COMPILER_VERSION "]"; + +/* Construct a string literal encoding the version number components. */ +#elif defined(COMPILER_VERSION_MAJOR) +char const info_version[] = { + 'I', 'N', 'F', 'O', ':', + 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','[', + COMPILER_VERSION_MAJOR, +# ifdef COMPILER_VERSION_MINOR + '.', COMPILER_VERSION_MINOR, +# ifdef COMPILER_VERSION_PATCH + '.', COMPILER_VERSION_PATCH, +# ifdef COMPILER_VERSION_TWEAK + '.', COMPILER_VERSION_TWEAK, +# endif +# endif +# endif + ']','\0'}; +#endif + +/* Construct a string literal encoding the internal version number. */ +#ifdef COMPILER_VERSION_INTERNAL +char const info_version_internal[] = { + 'I', 'N', 'F', 'O', ':', + 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','_', + 'i','n','t','e','r','n','a','l','[', + COMPILER_VERSION_INTERNAL,']','\0'}; +#elif defined(COMPILER_VERSION_INTERNAL_STR) +char const* info_version_internal = "INFO" ":" "compiler_version_internal[" COMPILER_VERSION_INTERNAL_STR "]"; +#endif + +/* Construct a string literal encoding the version number components. */ +#ifdef SIMULATE_VERSION_MAJOR +char const info_simulate_version[] = { + 'I', 'N', 'F', 'O', ':', + 's','i','m','u','l','a','t','e','_','v','e','r','s','i','o','n','[', + SIMULATE_VERSION_MAJOR, +# ifdef SIMULATE_VERSION_MINOR + '.', SIMULATE_VERSION_MINOR, +# ifdef SIMULATE_VERSION_PATCH + '.', SIMULATE_VERSION_PATCH, +# ifdef SIMULATE_VERSION_TWEAK + '.', SIMULATE_VERSION_TWEAK, +# endif +# endif +# endif + ']','\0'}; +#endif + +/* Construct the string literal in pieces to prevent the source from + getting matched. Store it in a pointer rather than an array + because some compilers will just produce instructions to fill the + array rather than assigning a pointer to a static array. */ +char const* info_platform = "INFO" ":" "platform[" PLATFORM_ID "]"; +char const* info_arch = "INFO" ":" "arch[" ARCHITECTURE_ID "]"; + + + +#if defined(__INTEL_COMPILER) && defined(_MSVC_LANG) && _MSVC_LANG < 201403L +# if defined(__INTEL_CXX11_MODE__) +# if defined(__cpp_aggregate_nsdmi) +# define CXX_STD 201402L +# else +# define CXX_STD 201103L +# endif +# else +# define CXX_STD 199711L +# endif +#elif defined(_MSC_VER) && defined(_MSVC_LANG) +# define CXX_STD _MSVC_LANG +#else +# define CXX_STD __cplusplus +#endif + +const char* info_language_standard_default = "INFO" ":" "standard_default[" +#if CXX_STD > 202002L + "23" +#elif CXX_STD > 201703L + "20" +#elif CXX_STD >= 201703L + "17" +#elif CXX_STD >= 201402L + "14" +#elif CXX_STD >= 201103L + "11" +#else + "98" +#endif +"]"; + +const char* info_language_extensions_default = "INFO" ":" "extensions_default[" +/* !defined(_MSC_VER) to exclude Clang's MSVC compatibility mode. */ +#if (defined(__clang__) || defined(__GNUC__) || \ + defined(__TI_COMPILER_VERSION__)) && \ + !defined(__STRICT_ANSI__) && !defined(_MSC_VER) + "ON" +#else + "OFF" +#endif +"]"; + +/*--------------------------------------------------------------------------*/ + +int main(int argc, char* argv[]) +{ + int require = 0; + require += info_compiler[argc]; + require += info_platform[argc]; +#ifdef COMPILER_VERSION_MAJOR + require += info_version[argc]; +#endif +#ifdef COMPILER_VERSION_INTERNAL + require += info_version_internal[argc]; +#endif +#ifdef SIMULATE_ID + require += info_simulate[argc]; +#endif +#ifdef SIMULATE_VERSION_MAJOR + require += info_simulate_version[argc]; +#endif +#if defined(__CRAYXT_COMPUTE_LINUX_TARGET) + require += info_cray[argc]; +#endif + require += info_language_standard_default[argc]; + require += info_language_extensions_default[argc]; + (void)argv; + return require; +} diff --git a/example/android/app/.cxx/Debug/28432r45/x86_64/CMakeFiles/3.22.1-g37088a8/CompilerIdCXX/CMakeCXXCompilerId.o b/example/android/app/.cxx/Debug/28432r45/x86_64/CMakeFiles/3.22.1-g37088a8/CompilerIdCXX/CMakeCXXCompilerId.o new file mode 100644 index 0000000000000000000000000000000000000000..21e6ae0ad62c51fa5a5c140a1a3d1d92acc9b72a GIT binary patch literal 5488 zcmdT{+iM(E7(X+U&83@clg4VbrEKv+t7ay9X|iccO^K^+^yB1W^zvXho%BHGbcj^Ua=2CR%*+z|Q%; z-}!x)b3c1>a?fs6Q5Y44?PP6@P{!(swmiIvaZ3U-Vuh^D5J7Jr( z@)5?tx@~$T$F0upsnnV+0h(@Mepbj0&#V8b)GV7G+!o&+ zQ`a%3Da!O9V;!3S8;vs-y9WfuI`3jyVrM)KNEeFn_)ZYJvmj0nK5#o(_pIjZRX*;c zHJIDD4sq9Xj<3@a2%-sNy)mW+0AqdGB`SLx7D@*nif+DSHboB0i-4*-;G>*YdNiVF zQy_I5g3nqO+Y1$R6Fy28R^46QSRI4k5~Ch8@_l`xwtcn9GOE6b=ATNucFbPZwvid? zw`lWCq|F_Yjm%KjLFbj9BW*TFHZo%sgkgu!?t)~8U^~Y&gZc9d4x#cW%F3d85zKnk z^R1<7U8t9!wNE{7b5+rh>LEz~l&#O1K83ybp^sbj3 zr)*mdr|A|f9X6-oIgVYJH!C&6wvShb>aO#oRq&FC;8MP_Hv%rU4tvD3)PgS4`tUr_iig zHLqcm?55{gZocl=mBNX&9afsWix3vyVYpr zM)D(Bg9qIW2TQ}q=;^ec8Y*W-hjTeIXSDNxq!@I~W%>NBg9mp#mVadW@yYz5#|}*9 z^Q=-UIe9vre2tDJU&HgrmvCU4X4%SzkEKxa^0Ub&h&f^T$M>YtJT4(s7G0IudMIw>OKeSd;?(k!-Cs~?Mn2&picC4s?Py~ zv6BFGFde>%qWqEQ!wUBb{FIfJ88pKNQh5a*Z84_Ax>j{>iY1z{c;~mVL}yvl^P<)g zr6nz^I_G0rXMBgMLOk*lS-%Eo2fMZy)u^%H7!8^~0!d;0fu0T|NR;u*RYH7GllXF@ z#s*|HkhNg61BeS6gS#SBz5{)Ylqa79z+QsifPW%!3w{oR^ee|ngDZfyGB(5UUZJ(| zEgWw@N{GJ^hIN4P^Of5WPHO>Y4_j|6`X$9#aH~L#=Plt6OE``m;jgs)u+<2vO0dso0mR=^JkoL{FPV_!+eCK^e^`CW@3lr?_E`G~(G z^jjsI#uA}BBpmsl34NoeG5=tvfSi?Zc^vi$obq`T4WZz?Vj$Hh+|wD=LLb2|7V1sS0#RM{{nVV!qLyYLVsV>yx%Qw$_MX!ENO|4>yyg%5dU+bPf2|F^f(aWe+_+ z^F#UkB6!b+{QN2OvmqQ#N?tC6@GgPB9>RYYdQx-{X>vZ>1&%ZsXL=DY|GYUj=UT^^ z?!g7i@X>+~38uT2ZR$nSGj)Ea2Dfy?HM}Bs*^MqjHavG(fZ(yP!iz@);VENA;K1SO zEx-4DD)vX`Pk?ZK!AnH1Ii96Iv~OkzGA%r{EGPa*kptWCm=Y{&K3{UpDyYyK&zyt$ zM3vVfFMv}z9kyZ){!4}Ha{28C_kvi|WikKcJEXGJ(14hHCL(tnKM@7@mR!CD<)7^7 zo+F#~jqD>|LWMrZeKq)gFAi7!tOs;G{IH*N=B^XW!w?+f%lA7rT@mfJsHs9O7OGDR zIXs3rL7;ft2tHxme>W}9|7eeIL3v{SIL2g8_>X{LsBrx8n~eVh*hYV5%KZ9Ab%A9 zPQaq#Z9d zzF(s3W8y%2S9U762$8)80?9J%AexnJ`MLBBb~xWFqC-_5Gz~~ HVf()U^T~*m literal 0 HcmV?d00001 diff --git a/example/android/app/.cxx/Debug/28432r45/x86_64/CMakeFiles/TargetDirectories.txt b/example/android/app/.cxx/Debug/28432r45/x86_64/CMakeFiles/TargetDirectories.txt new file mode 100644 index 0000000..1de7c44 --- /dev/null +++ b/example/android/app/.cxx/Debug/28432r45/x86_64/CMakeFiles/TargetDirectories.txt @@ -0,0 +1,2 @@ +/Users/dgarcia/Documents/flutter_policy_engine/example/android/app/.cxx/Debug/28432r45/x86_64/CMakeFiles/edit_cache.dir +/Users/dgarcia/Documents/flutter_policy_engine/example/android/app/.cxx/Debug/28432r45/x86_64/CMakeFiles/rebuild_cache.dir diff --git a/example/android/app/.cxx/Debug/28432r45/x86_64/CMakeFiles/cmake.check_cache b/example/android/app/.cxx/Debug/28432r45/x86_64/CMakeFiles/cmake.check_cache new file mode 100644 index 0000000..3dccd73 --- /dev/null +++ b/example/android/app/.cxx/Debug/28432r45/x86_64/CMakeFiles/cmake.check_cache @@ -0,0 +1 @@ +# This file is generated by cmake for dependency checking of the CMakeCache.txt file diff --git a/example/android/app/.cxx/Debug/28432r45/x86_64/CMakeFiles/rules.ninja b/example/android/app/.cxx/Debug/28432r45/x86_64/CMakeFiles/rules.ninja new file mode 100644 index 0000000..735eadc --- /dev/null +++ b/example/android/app/.cxx/Debug/28432r45/x86_64/CMakeFiles/rules.ninja @@ -0,0 +1,45 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Ninja" Generator, CMake Version 3.22 + +# This file contains all the rules used to get the outputs files +# built from the input files. +# It is included in the main 'build.ninja'. + +# ============================================================================= +# Project: Project +# Configurations: Debug +# ============================================================================= +# ============================================================================= + +############################################# +# Rule for running custom commands. + +rule CUSTOM_COMMAND + command = $COMMAND + description = $DESC + + +############################################# +# Rule for re-running cmake. + +rule RERUN_CMAKE + command = /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/bin/cmake --regenerate-during-build -S/Users/dgarcia/fvm/versions/3.29.3/packages/flutter_tools/gradle/src/main/groovy -B/Users/dgarcia/Documents/flutter_policy_engine/example/android/app/.cxx/Debug/28432r45/x86_64 + description = Re-running CMake... + generator = 1 + + +############################################# +# Rule for cleaning all built files. + +rule CLEAN + command = /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/bin/ninja $FILE_ARG -t clean $TARGETS + description = Cleaning all built files... + + +############################################# +# Rule for printing all primary targets available. + +rule HELP + command = /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/bin/ninja -t targets + description = All primary targets available: + diff --git a/example/android/app/.cxx/Debug/28432r45/x86_64/additional_project_files.txt b/example/android/app/.cxx/Debug/28432r45/x86_64/additional_project_files.txt new file mode 100644 index 0000000..e69de29 diff --git a/example/android/app/.cxx/Debug/28432r45/x86_64/android_gradle_build.json b/example/android/app/.cxx/Debug/28432r45/x86_64/android_gradle_build.json new file mode 100644 index 0000000..1e1102c --- /dev/null +++ b/example/android/app/.cxx/Debug/28432r45/x86_64/android_gradle_build.json @@ -0,0 +1,28 @@ +{ + "buildFiles": [ + "/Users/dgarcia/fvm/versions/3.29.3/packages/flutter_tools/gradle/src/main/groovy/CMakeLists.txt" + ], + "cleanCommandsComponents": [ + [ + "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/bin/ninja", + "-C", + "/Users/dgarcia/Documents/flutter_policy_engine/example/android/app/.cxx/Debug/28432r45/x86_64", + "clean" + ] + ], + "buildTargetsCommandComponents": [ + "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/bin/ninja", + "-C", + "/Users/dgarcia/Documents/flutter_policy_engine/example/android/app/.cxx/Debug/28432r45/x86_64", + "{LIST_OF_TARGETS_TO_BUILD}" + ], + "libraries": {}, + "toolchains": { + "toolchain": { + "cCompilerExecutable": "/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/toolchains/llvm/prebuilt/darwin-x86_64/bin/clang.lld", + "cppCompilerExecutable": "/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/toolchains/llvm/prebuilt/darwin-x86_64/bin/clang++.lld" + } + }, + "cFileExtensions": [], + "cppFileExtensions": [] +} \ No newline at end of file diff --git a/example/android/app/.cxx/Debug/28432r45/x86_64/android_gradle_build_mini.json b/example/android/app/.cxx/Debug/28432r45/x86_64/android_gradle_build_mini.json new file mode 100644 index 0000000..4914cfa --- /dev/null +++ b/example/android/app/.cxx/Debug/28432r45/x86_64/android_gradle_build_mini.json @@ -0,0 +1,20 @@ +{ + "buildFiles": [ + "/Users/dgarcia/fvm/versions/3.29.3/packages/flutter_tools/gradle/src/main/groovy/CMakeLists.txt" + ], + "cleanCommandsComponents": [ + [ + "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/bin/ninja", + "-C", + "/Users/dgarcia/Documents/flutter_policy_engine/example/android/app/.cxx/Debug/28432r45/x86_64", + "clean" + ] + ], + "buildTargetsCommandComponents": [ + "/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/bin/ninja", + "-C", + "/Users/dgarcia/Documents/flutter_policy_engine/example/android/app/.cxx/Debug/28432r45/x86_64", + "{LIST_OF_TARGETS_TO_BUILD}" + ], + "libraries": {} +} \ No newline at end of file diff --git a/example/android/app/.cxx/Debug/28432r45/x86_64/build.ninja b/example/android/app/.cxx/Debug/28432r45/x86_64/build.ninja new file mode 100644 index 0000000..a02da2f --- /dev/null +++ b/example/android/app/.cxx/Debug/28432r45/x86_64/build.ninja @@ -0,0 +1,112 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Ninja" Generator, CMake Version 3.22 + +# This file contains all the build statements describing the +# compilation DAG. + +# ============================================================================= +# Write statements declared in CMakeLists.txt: +# +# Which is the root file. +# ============================================================================= + +# ============================================================================= +# Project: Project +# Configurations: Debug +# ============================================================================= + +############################################# +# Minimal version of Ninja required by this file + +ninja_required_version = 1.5 + + +############################################# +# Set configuration variable for custom commands. + +CONFIGURATION = Debug +# ============================================================================= +# Include auxiliary files. + + +############################################# +# Include rules file. + +include CMakeFiles/rules.ninja + +# ============================================================================= + +############################################# +# Logical path to working directory; prefix for absolute paths. + +cmake_ninja_workdir = /Users/dgarcia/Documents/flutter_policy_engine/example/android/app/.cxx/Debug/28432r45/x86_64/ + +############################################# +# Utility command for edit_cache + +build CMakeFiles/edit_cache.util: CUSTOM_COMMAND + COMMAND = cd /Users/dgarcia/Documents/flutter_policy_engine/example/android/app/.cxx/Debug/28432r45/x86_64 && /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/bin/ccmake -S/Users/dgarcia/fvm/versions/3.29.3/packages/flutter_tools/gradle/src/main/groovy -B/Users/dgarcia/Documents/flutter_policy_engine/example/android/app/.cxx/Debug/28432r45/x86_64 + DESC = Running CMake cache editor... + pool = console + restat = 1 + +build edit_cache: phony CMakeFiles/edit_cache.util + + +############################################# +# Utility command for rebuild_cache + +build CMakeFiles/rebuild_cache.util: CUSTOM_COMMAND + COMMAND = cd /Users/dgarcia/Documents/flutter_policy_engine/example/android/app/.cxx/Debug/28432r45/x86_64 && /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/bin/cmake --regenerate-during-build -S/Users/dgarcia/fvm/versions/3.29.3/packages/flutter_tools/gradle/src/main/groovy -B/Users/dgarcia/Documents/flutter_policy_engine/example/android/app/.cxx/Debug/28432r45/x86_64 + DESC = Running CMake to regenerate build system... + pool = console + restat = 1 + +build rebuild_cache: phony CMakeFiles/rebuild_cache.util + +# ============================================================================= +# Target aliases. + +# ============================================================================= +# Folder targets. + +# ============================================================================= + +############################################# +# Folder: /Users/dgarcia/Documents/flutter_policy_engine/example/android/app/.cxx/Debug/28432r45/x86_64 + +build all: phony + +# ============================================================================= +# Built-in targets + + +############################################# +# Re-run CMake if any of its inputs changed. + +build build.ninja: RERUN_CMAKE | /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCCompiler.cmake.in /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCCompilerABI.c /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCInformation.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCXXCompiler.cmake.in /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCXXCompilerABI.cpp /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCXXInformation.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCommonLanguageInclude.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCompilerIdDetection.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCXXCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCompileFeatures.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCompilerABI.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCompilerId.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineSystem.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeFindBinUtils.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeGenericSystem.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeInitializeConfigs.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeLanguageInformation.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeParseImplicitIncludeInfo.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeParseImplicitLinkInfo.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeParseLibraryArchitecture.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeSystem.cmake.in /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeSystemSpecificInformation.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeSystemSpecificInitialize.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeTestCCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeTestCXXCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeTestCompilerCommon.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/ADSP-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/ARMCC-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/ARMClang-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/AppleClang-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Borland-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Bruce-C-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/CMakeCommonCompilerMacros.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-C.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-CXX.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-DetermineCompilerInternal.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-FindBinUtils.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Comeau-CXX-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Compaq-C-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Compaq-CXX-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Cray-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Embarcadero-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Fujitsu-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/FujitsuClang-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/GHS-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/GNU-C-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/GNU-CXX-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/GNU.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/HP-C-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/HP-CXX-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IAR-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IBMCPP-C-DetermineVersionInternal.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IBMCPP-CXX-DetermineVersionInternal.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Intel-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IntelLLVM-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/MSVC-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/NVHPC-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/NVIDIA-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/OpenWatcom-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/PGI-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/PathScale-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/SCO-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/SDCC-C-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/SunPro-C-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/SunPro-CXX-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/TI-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/TinyCC-C-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/VisualAge-C-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/VisualAge-CXX-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Watcom-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/XL-C-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/XL-CXX-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/XLClang-C-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/XLClang-CXX-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/zOS-C-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/zOS-CXX-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Internal/FeatureTesting.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Clang-C.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Clang-CXX.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Clang.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Determine-C.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Determine-CXX.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Determine.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Initialize.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android/Determine-Compiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Linux.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/UnixPaths.cmake /Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/build/cmake/android-legacy.toolchain.cmake /Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/build/cmake/android.toolchain.cmake /Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/build/cmake/flags.cmake /Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/build/cmake/hooks/pre/Android-Clang.cmake /Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/build/cmake/hooks/pre/Android-Determine.cmake /Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/build/cmake/hooks/pre/Android-Initialize.cmake /Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/build/cmake/hooks/pre/Android.cmake /Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/build/cmake/hooks/pre/Determine-Compiler.cmake /Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/build/cmake/platforms.cmake /Users/dgarcia/fvm/versions/3.29.3/packages/flutter_tools/gradle/src/main/groovy/CMakeLists.txt CMakeCache.txt CMakeFiles/3.22.1-g37088a8/CMakeCCompiler.cmake CMakeFiles/3.22.1-g37088a8/CMakeCXXCompiler.cmake CMakeFiles/3.22.1-g37088a8/CMakeSystem.cmake + pool = console + + +############################################# +# A missing CMake input file is not an error. + +build /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCCompiler.cmake.in /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCCompilerABI.c /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCInformation.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCXXCompiler.cmake.in /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCXXCompilerABI.cpp /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCXXInformation.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCommonLanguageInclude.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCompilerIdDetection.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCXXCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCompileFeatures.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCompilerABI.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCompilerId.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineSystem.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeFindBinUtils.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeGenericSystem.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeInitializeConfigs.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeLanguageInformation.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeParseImplicitIncludeInfo.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeParseImplicitLinkInfo.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeParseLibraryArchitecture.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeSystem.cmake.in /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeSystemSpecificInformation.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeSystemSpecificInitialize.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeTestCCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeTestCXXCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeTestCompilerCommon.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/ADSP-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/ARMCC-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/ARMClang-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/AppleClang-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Borland-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Bruce-C-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/CMakeCommonCompilerMacros.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-C.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-CXX.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-DetermineCompilerInternal.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-FindBinUtils.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Comeau-CXX-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Compaq-C-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Compaq-CXX-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Cray-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Embarcadero-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Fujitsu-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/FujitsuClang-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/GHS-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/GNU-C-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/GNU-CXX-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/GNU.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/HP-C-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/HP-CXX-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IAR-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IBMCPP-C-DetermineVersionInternal.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IBMCPP-CXX-DetermineVersionInternal.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Intel-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IntelLLVM-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/MSVC-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/NVHPC-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/NVIDIA-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/OpenWatcom-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/PGI-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/PathScale-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/SCO-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/SDCC-C-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/SunPro-C-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/SunPro-CXX-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/TI-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/TinyCC-C-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/VisualAge-C-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/VisualAge-CXX-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Watcom-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/XL-C-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/XL-CXX-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/XLClang-C-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/XLClang-CXX-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/zOS-C-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/zOS-CXX-DetermineCompiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Internal/FeatureTesting.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Clang-C.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Clang-CXX.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Clang.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Determine-C.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Determine-CXX.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Determine.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Initialize.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android/Determine-Compiler.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Linux.cmake /Users/dgarcia/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/UnixPaths.cmake /Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/build/cmake/android-legacy.toolchain.cmake /Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/build/cmake/android.toolchain.cmake /Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/build/cmake/flags.cmake /Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/build/cmake/hooks/pre/Android-Clang.cmake /Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/build/cmake/hooks/pre/Android-Determine.cmake /Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/build/cmake/hooks/pre/Android-Initialize.cmake /Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/build/cmake/hooks/pre/Android.cmake /Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/build/cmake/hooks/pre/Determine-Compiler.cmake /Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/build/cmake/platforms.cmake /Users/dgarcia/fvm/versions/3.29.3/packages/flutter_tools/gradle/src/main/groovy/CMakeLists.txt CMakeCache.txt CMakeFiles/3.22.1-g37088a8/CMakeCCompiler.cmake CMakeFiles/3.22.1-g37088a8/CMakeCXXCompiler.cmake CMakeFiles/3.22.1-g37088a8/CMakeSystem.cmake: phony + + +############################################# +# Clean all the built files. + +build clean: CLEAN + + +############################################# +# Print all primary targets available. + +build help: HELP + + +############################################# +# Make the all target the default. + +default all diff --git a/example/android/app/.cxx/Debug/28432r45/x86_64/build_file_index.txt b/example/android/app/.cxx/Debug/28432r45/x86_64/build_file_index.txt new file mode 100644 index 0000000..26c3ceb --- /dev/null +++ b/example/android/app/.cxx/Debug/28432r45/x86_64/build_file_index.txt @@ -0,0 +1 @@ +/Users/dgarcia/fvm/versions/3.29.3/packages/flutter_tools/gradle/src/main/groovy/CMakeLists.txt \ No newline at end of file diff --git a/example/android/app/.cxx/Debug/28432r45/x86_64/cmake_install.cmake b/example/android/app/.cxx/Debug/28432r45/x86_64/cmake_install.cmake new file mode 100644 index 0000000..0b12090 --- /dev/null +++ b/example/android/app/.cxx/Debug/28432r45/x86_64/cmake_install.cmake @@ -0,0 +1,54 @@ +# Install script for directory: /Users/dgarcia/fvm/versions/3.29.3/packages/flutter_tools/gradle/src/main/groovy + +# Set the install prefix +if(NOT DEFINED CMAKE_INSTALL_PREFIX) + set(CMAKE_INSTALL_PREFIX "/usr/local") +endif() +string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}") + +# Set the install configuration name. +if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME) + if(BUILD_TYPE) + string(REGEX REPLACE "^[^A-Za-z0-9_]+" "" + CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}") + else() + set(CMAKE_INSTALL_CONFIG_NAME "Debug") + endif() + message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"") +endif() + +# Set the component getting installed. +if(NOT CMAKE_INSTALL_COMPONENT) + if(COMPONENT) + message(STATUS "Install component: \"${COMPONENT}\"") + set(CMAKE_INSTALL_COMPONENT "${COMPONENT}") + else() + set(CMAKE_INSTALL_COMPONENT) + endif() +endif() + +# Install shared libraries without execute permission? +if(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE) + set(CMAKE_INSTALL_SO_NO_EXE "0") +endif() + +# Is this installation the result of a crosscompile? +if(NOT DEFINED CMAKE_CROSSCOMPILING) + set(CMAKE_CROSSCOMPILING "TRUE") +endif() + +# Set default install directory permissions. +if(NOT DEFINED CMAKE_OBJDUMP) + set(CMAKE_OBJDUMP "/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-objdump") +endif() + +if(CMAKE_INSTALL_COMPONENT) + set(CMAKE_INSTALL_MANIFEST "install_manifest_${CMAKE_INSTALL_COMPONENT}.txt") +else() + set(CMAKE_INSTALL_MANIFEST "install_manifest.txt") +endif() + +string(REPLACE ";" "\n" CMAKE_INSTALL_MANIFEST_CONTENT + "${CMAKE_INSTALL_MANIFEST_FILES}") +file(WRITE "/Users/dgarcia/Documents/flutter_policy_engine/example/android/app/.cxx/Debug/28432r45/x86_64/${CMAKE_INSTALL_MANIFEST}" + "${CMAKE_INSTALL_MANIFEST_CONTENT}") diff --git a/example/android/app/.cxx/Debug/28432r45/x86_64/configure_fingerprint.bin b/example/android/app/.cxx/Debug/28432r45/x86_64/configure_fingerprint.bin new file mode 100644 index 0000000..c8904ef --- /dev/null +++ b/example/android/app/.cxx/Debug/28432r45/x86_64/configure_fingerprint.bin @@ -0,0 +1,28 @@ +C/C++ Structured Log~ +| +z/Users/dgarcia/Documents/flutter_policy_engine/example/android/app/.cxx/Debug/28432r45/x86_64/additional_project_files.txtC +A +?com.android.build.gradle.internal.cxx.io.EncodedFileFingerPrint  š3  ׶3{ +y +w/Users/dgarcia/Documents/flutter_policy_engine/example/android/app/.cxx/Debug/28432r45/x86_64/android_gradle_build.json  š3 ׶3 +~ +|/Users/dgarcia/Documents/flutter_policy_engine/example/android/app/.cxx/Debug/28432r45/x86_64/android_gradle_build_mini.json  š3 ׶3m +k +i/Users/dgarcia/Documents/flutter_policy_engine/example/android/app/.cxx/Debug/28432r45/x86_64/build.ninja  š3 ׶3q +o +m/Users/dgarcia/Documents/flutter_policy_engine/example/android/app/.cxx/Debug/28432r45/x86_64/build.ninja.txt  š3v +t +r/Users/dgarcia/Documents/flutter_policy_engine/example/android/app/.cxx/Debug/28432r45/x86_64/build_file_index.txt  š3 _ ׶3w +u +s/Users/dgarcia/Documents/flutter_policy_engine/example/android/app/.cxx/Debug/28432r45/x86_64/compile_commands.json  š3{ +y +w/Users/dgarcia/Documents/flutter_policy_engine/example/android/app/.cxx/Debug/28432r45/x86_64/compile_commands.json.bin  š3  + +}/Users/dgarcia/Documents/flutter_policy_engine/example/android/app/.cxx/Debug/28432r45/x86_64/metadata_generation_command.txt  š3 + ׶3t +r +p/Users/dgarcia/Documents/flutter_policy_engine/example/android/app/.cxx/Debug/28432r45/x86_64/prefab_config.json  š3  ( ׶3y +w +u/Users/dgarcia/Documents/flutter_policy_engine/example/android/app/.cxx/Debug/28432r45/x86_64/symbol_folder_index.txt  š3  l ׶3c +a +_/Users/dgarcia/fvm/versions/3.29.3/packages/flutter_tools/gradle/src/main/groovy/CMakeLists.txt  š3  ٳ2 \ No newline at end of file diff --git a/example/android/app/.cxx/Debug/28432r45/x86_64/metadata_generation_command.txt b/example/android/app/.cxx/Debug/28432r45/x86_64/metadata_generation_command.txt new file mode 100644 index 0000000..61ead34 --- /dev/null +++ b/example/android/app/.cxx/Debug/28432r45/x86_64/metadata_generation_command.txt @@ -0,0 +1,20 @@ + -H/Users/dgarcia/fvm/versions/3.29.3/packages/flutter_tools/gradle/src/main/groovy +-DCMAKE_SYSTEM_NAME=Android +-DCMAKE_EXPORT_COMPILE_COMMANDS=ON +-DCMAKE_SYSTEM_VERSION=21 +-DANDROID_PLATFORM=android-21 +-DANDROID_ABI=x86_64 +-DCMAKE_ANDROID_ARCH_ABI=x86_64 +-DANDROID_NDK=/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264 +-DCMAKE_ANDROID_NDK=/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264 +-DCMAKE_TOOLCHAIN_FILE=/Users/dgarcia/Library/Android/sdk/ndk/26.3.11579264/build/cmake/android.toolchain.cmake +-DCMAKE_MAKE_PROGRAM=/Users/dgarcia/Library/Android/sdk/cmake/3.22.1/bin/ninja +-DCMAKE_LIBRARY_OUTPUT_DIRECTORY=/Users/dgarcia/Documents/flutter_policy_engine/example/build/app/intermediates/cxx/Debug/28432r45/obj/x86_64 +-DCMAKE_RUNTIME_OUTPUT_DIRECTORY=/Users/dgarcia/Documents/flutter_policy_engine/example/build/app/intermediates/cxx/Debug/28432r45/obj/x86_64 +-DCMAKE_BUILD_TYPE=Debug +-B/Users/dgarcia/Documents/flutter_policy_engine/example/android/app/.cxx/Debug/28432r45/x86_64 +-GNinja +-Wno-dev +--no-warn-unused-cli + Build command args: [] + Version: 2 \ No newline at end of file diff --git a/example/android/app/.cxx/Debug/28432r45/x86_64/prefab_config.json b/example/android/app/.cxx/Debug/28432r45/x86_64/prefab_config.json new file mode 100644 index 0000000..e799de8 --- /dev/null +++ b/example/android/app/.cxx/Debug/28432r45/x86_64/prefab_config.json @@ -0,0 +1,4 @@ +{ + "enabled": false, + "packages": [] +} \ No newline at end of file diff --git a/example/android/app/.cxx/Debug/28432r45/x86_64/symbol_folder_index.txt b/example/android/app/.cxx/Debug/28432r45/x86_64/symbol_folder_index.txt new file mode 100644 index 0000000..02edff7 --- /dev/null +++ b/example/android/app/.cxx/Debug/28432r45/x86_64/symbol_folder_index.txt @@ -0,0 +1 @@ +/Users/dgarcia/Documents/flutter_policy_engine/example/build/app/intermediates/cxx/Debug/28432r45/obj/x86_64 \ No newline at end of file diff --git a/example/android/app/build.gradle b/example/android/app/build.gradle index 228e102..3a5b247 100644 --- a/example/android/app/build.gradle +++ b/example/android/app/build.gradle @@ -33,6 +33,10 @@ android { targetCompatibility = JavaVersion.VERSION_1_8 } + kotlinOptions { + jvmTarget = "1.8" + } + defaultConfig { // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html). applicationId = "com.example.flutter_policy_engine_example" diff --git a/example/android/gradle/wrapper/gradle-wrapper.properties b/example/android/gradle/wrapper/gradle-wrapper.properties index e1ca574..1af9e09 100644 --- a/example/android/gradle/wrapper/gradle-wrapper.properties +++ b/example/android/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,7 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-8.5-bin.zip +networkTimeout=10000 +validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-7.6.3-all.zip diff --git a/example/android/settings.gradle b/example/android/settings.gradle index 536165d..19e3cca 100644 --- a/example/android/settings.gradle +++ b/example/android/settings.gradle @@ -18,8 +18,8 @@ pluginManagement { plugins { id "dev.flutter.flutter-plugin-loader" version "1.0.0" - id "com.android.application" version "7.3.0" apply false - id "org.jetbrains.kotlin.android" version "1.7.10" apply false + id "com.android.application" version '8.1.4' apply false + id "org.jetbrains.kotlin.android" version "1.9.10" apply false } include ":app" From a80f46fe0a1d314fd7e2b444b02fc3985d40b5ff Mon Sep 17 00:00:00 2001 From: David Garcia Ruiz Date: Wed, 16 Jul 2025 19:07:03 +0200 Subject: [PATCH 18/18] fix(android): update fingerprint configuration files --- .../arm64-v8a/configure_fingerprint.bin | 24 +++++++++---------- .../28432r45/x86/configure_fingerprint.bin | 24 +++++++++---------- 2 files changed, 24 insertions(+), 24 deletions(-) diff --git a/example/android/app/.cxx/Debug/28432r45/arm64-v8a/configure_fingerprint.bin b/example/android/app/.cxx/Debug/28432r45/arm64-v8a/configure_fingerprint.bin index 2a7a6ce..92d0984 100644 --- a/example/android/app/.cxx/Debug/28432r45/arm64-v8a/configure_fingerprint.bin +++ b/example/android/app/.cxx/Debug/28432r45/arm64-v8a/configure_fingerprint.bin @@ -2,27 +2,27 @@ C/C++ Structured Log  }/Users/dgarcia/Documents/flutter_policy_engine/example/android/app/.cxx/Debug/28432r45/arm64-v8a/additional_project_files.txtC A -?com.android.build.gradle.internal.cxx.io.EncodedFileFingerPrint  ȡ3  Ψ3~ +?com.android.build.gradle.internal.cxx.io.EncodedFileFingerPrint  ͡3  Ψ3~ | -z/Users/dgarcia/Documents/flutter_policy_engine/example/android/app/.cxx/Debug/28432r45/arm64-v8a/android_gradle_build.json  ȡ3 Ш3 +z/Users/dgarcia/Documents/flutter_policy_engine/example/android/app/.cxx/Debug/28432r45/arm64-v8a/android_gradle_build.json  ͡3 Ш3  -/Users/dgarcia/Documents/flutter_policy_engine/example/android/app/.cxx/Debug/28432r45/arm64-v8a/android_gradle_build_mini.json  ȡ3 Ө3p +/Users/dgarcia/Documents/flutter_policy_engine/example/android/app/.cxx/Debug/28432r45/arm64-v8a/android_gradle_build_mini.json  ͡3 Ө3p n -l/Users/dgarcia/Documents/flutter_policy_engine/example/android/app/.cxx/Debug/28432r45/arm64-v8a/build.ninja  ȡ3 3t +l/Users/dgarcia/Documents/flutter_policy_engine/example/android/app/.cxx/Debug/28432r45/arm64-v8a/build.ninja  ͡3 3t r -p/Users/dgarcia/Documents/flutter_policy_engine/example/android/app/.cxx/Debug/28432r45/arm64-v8a/build.ninja.txt  ȡ3y +p/Users/dgarcia/Documents/flutter_policy_engine/example/android/app/.cxx/Debug/28432r45/arm64-v8a/build.ninja.txt  ͡3y w -u/Users/dgarcia/Documents/flutter_policy_engine/example/android/app/.cxx/Debug/28432r45/arm64-v8a/build_file_index.txt  ȡ3 _ Ԩ3z +u/Users/dgarcia/Documents/flutter_policy_engine/example/android/app/.cxx/Debug/28432r45/arm64-v8a/build_file_index.txt  ͡3 _ Ԩ3z x -v/Users/dgarcia/Documents/flutter_policy_engine/example/android/app/.cxx/Debug/28432r45/arm64-v8a/compile_commands.json  ȡ3~ +v/Users/dgarcia/Documents/flutter_policy_engine/example/android/app/.cxx/Debug/28432r45/arm64-v8a/compile_commands.json  ͡3~ | -z/Users/dgarcia/Documents/flutter_policy_engine/example/android/app/.cxx/Debug/28432r45/arm64-v8a/compile_commands.json.bin  ȡ3  +z/Users/dgarcia/Documents/flutter_policy_engine/example/android/app/.cxx/Debug/28432r45/arm64-v8a/compile_commands.json.bin  ͡3   -/Users/dgarcia/Documents/flutter_policy_engine/example/android/app/.cxx/Debug/28432r45/arm64-v8a/metadata_generation_command.txt  ȡ3 +/Users/dgarcia/Documents/flutter_policy_engine/example/android/app/.cxx/Debug/28432r45/arm64-v8a/metadata_generation_command.txt  ͡3  Ө3w u -s/Users/dgarcia/Documents/flutter_policy_engine/example/android/app/.cxx/Debug/28432r45/arm64-v8a/prefab_config.json  ȡ3  ( Ө3| +s/Users/dgarcia/Documents/flutter_policy_engine/example/android/app/.cxx/Debug/28432r45/arm64-v8a/prefab_config.json  ͡3  ( Ө3| z -x/Users/dgarcia/Documents/flutter_policy_engine/example/android/app/.cxx/Debug/28432r45/arm64-v8a/symbol_folder_index.txt  ȡ3  o Ԩ3c +x/Users/dgarcia/Documents/flutter_policy_engine/example/android/app/.cxx/Debug/28432r45/arm64-v8a/symbol_folder_index.txt  ͡3  o Ԩ3c a -_/Users/dgarcia/fvm/versions/3.29.3/packages/flutter_tools/gradle/src/main/groovy/CMakeLists.txt  ȡ3  ٳ2 \ No newline at end of file +_/Users/dgarcia/fvm/versions/3.29.3/packages/flutter_tools/gradle/src/main/groovy/CMakeLists.txt  ͡3  ٳ2 \ No newline at end of file diff --git a/example/android/app/.cxx/Debug/28432r45/x86/configure_fingerprint.bin b/example/android/app/.cxx/Debug/28432r45/x86/configure_fingerprint.bin index fc8f707..7a3ecd9 100644 --- a/example/android/app/.cxx/Debug/28432r45/x86/configure_fingerprint.bin +++ b/example/android/app/.cxx/Debug/28432r45/x86/configure_fingerprint.bin @@ -2,27 +2,27 @@ C/C++ Structured Log{ y w/Users/dgarcia/Documents/flutter_policy_engine/example/android/app/.cxx/Debug/28432r45/x86/additional_project_files.txtC A -?com.android.build.gradle.internal.cxx.io.EncodedFileFingerPrint  š3  ն3x +?com.android.build.gradle.internal.cxx.io.EncodedFileFingerPrint  ʡ3  ն3x v -t/Users/dgarcia/Documents/flutter_policy_engine/example/android/app/.cxx/Debug/28432r45/x86/android_gradle_build.json  š3 ն3} +t/Users/dgarcia/Documents/flutter_policy_engine/example/android/app/.cxx/Debug/28432r45/x86/android_gradle_build.json  ʡ3 ն3} { -y/Users/dgarcia/Documents/flutter_policy_engine/example/android/app/.cxx/Debug/28432r45/x86/android_gradle_build_mini.json  š3 ն3j +y/Users/dgarcia/Documents/flutter_policy_engine/example/android/app/.cxx/Debug/28432r45/x86/android_gradle_build_mini.json  ʡ3 ն3j h -f/Users/dgarcia/Documents/flutter_policy_engine/example/android/app/.cxx/Debug/28432r45/x86/build.ninja  š3 ն3n +f/Users/dgarcia/Documents/flutter_policy_engine/example/android/app/.cxx/Debug/28432r45/x86/build.ninja  ʡ3 ն3n l -j/Users/dgarcia/Documents/flutter_policy_engine/example/android/app/.cxx/Debug/28432r45/x86/build.ninja.txt  š3s +j/Users/dgarcia/Documents/flutter_policy_engine/example/android/app/.cxx/Debug/28432r45/x86/build.ninja.txt  ʡ3s q -o/Users/dgarcia/Documents/flutter_policy_engine/example/android/app/.cxx/Debug/28432r45/x86/build_file_index.txt  š3 _ ն3t +o/Users/dgarcia/Documents/flutter_policy_engine/example/android/app/.cxx/Debug/28432r45/x86/build_file_index.txt  ʡ3 _ ն3t r -p/Users/dgarcia/Documents/flutter_policy_engine/example/android/app/.cxx/Debug/28432r45/x86/compile_commands.json  š3x +p/Users/dgarcia/Documents/flutter_policy_engine/example/android/app/.cxx/Debug/28432r45/x86/compile_commands.json  ʡ3x v -t/Users/dgarcia/Documents/flutter_policy_engine/example/android/app/.cxx/Debug/28432r45/x86/compile_commands.json.bin  š3 ~ +t/Users/dgarcia/Documents/flutter_policy_engine/example/android/app/.cxx/Debug/28432r45/x86/compile_commands.json.bin  ʡ3 ~ | -z/Users/dgarcia/Documents/flutter_policy_engine/example/android/app/.cxx/Debug/28432r45/x86/metadata_generation_command.txt  š3 +z/Users/dgarcia/Documents/flutter_policy_engine/example/android/app/.cxx/Debug/28432r45/x86/metadata_generation_command.txt  ʡ3  ն3q o -m/Users/dgarcia/Documents/flutter_policy_engine/example/android/app/.cxx/Debug/28432r45/x86/prefab_config.json  š3  ( ն3v +m/Users/dgarcia/Documents/flutter_policy_engine/example/android/app/.cxx/Debug/28432r45/x86/prefab_config.json  ʡ3  ( ն3v t -r/Users/dgarcia/Documents/flutter_policy_engine/example/android/app/.cxx/Debug/28432r45/x86/symbol_folder_index.txt  š3  i ն3c +r/Users/dgarcia/Documents/flutter_policy_engine/example/android/app/.cxx/Debug/28432r45/x86/symbol_folder_index.txt  ʡ3  i ն3c a -_/Users/dgarcia/fvm/versions/3.29.3/packages/flutter_tools/gradle/src/main/groovy/CMakeLists.txt  š3  ٳ2 \ No newline at end of file +_/Users/dgarcia/fvm/versions/3.29.3/packages/flutter_tools/gradle/src/main/groovy/CMakeLists.txt  ʡ3  ٳ2 \ No newline at end of file